From 970fdb2857ad302063ab26d741c3d8db590aaabe Mon Sep 17 00:00:00 2001 From: Pebrian Date: Sat, 23 Aug 2025 15:15:28 +0700 Subject: [PATCH 1/7] feat(Map): support constructor initialization with MapInitialEntries MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - Added new type alias `MapInitialEntries` = { key: K, value: V }[] - Map constructor now accepts: • An array of { key, value } objects • Any array typed as MapInitialEntries - This allows populating a Map in one step with strong typing. - Example: let myMap = new Map([ { key: "a", value: 1 }, { key: "b", value: 2 }, ]); let init: MapInitialEntries = [ { key: "x", value: 10 }, { key: "y", value: 20 }, ]; let anotherMap = new Map(init); --- NOTICE | 1 + std/assembly/index.d.ts | 10 ++++++++- std/assembly/map.ts | 47 +++++++++++++++++++++++++++++++++++++-- tests/compiler/std/map.ts | 21 +++++++++++++++++ 4 files changed, 76 insertions(+), 3 deletions(-) diff --git a/NOTICE b/NOTICE index e7a2601827..31957405f3 100644 --- a/NOTICE +++ b/NOTICE @@ -60,6 +60,7 @@ under the licensing terms detailed in LICENSE: * Fabián Heredia Montiel * Jonas Minnberg * Kam Chehresa +* Pebrian Portions of this software are derived from third-party works licensed under the following terms: diff --git a/std/assembly/index.d.ts b/std/assembly/index.d.ts index 9d629ccd10..90cbf5bf41 100644 --- a/std/assembly/index.d.ts +++ b/std/assembly/index.d.ts @@ -2394,7 +2394,7 @@ interface NewableFunction extends Function { interface IArguments {} interface RegExp {} -declare class Map { +interface Map { readonly size: i32; has(key: K): bool; set(key: K, value: V): this; @@ -2406,6 +2406,14 @@ declare class Map { toString(): string; } +type MapInitialEntries = {key: V, value:V}[] + +interface MapConstructor { + new (entries?: MapInitialEntries): Map; +} + +declare const Map: MapConstructor; + declare class Set { readonly size: i32; has(value: K): bool; diff --git a/std/assembly/map.ts b/std/assembly/map.ts index ab7302f717..09a37c1f77 100644 --- a/std/assembly/map.ts +++ b/std/assembly/map.ts @@ -54,6 +54,13 @@ function ENTRY_SIZE(): usize { return size; } +class KeyValue { + key: K; + value: V; +} + +export type MapInitialEntries = KeyValue[]; + export class Map { // buckets referencing their respective first entry, usize[bucketsMask + 1] @@ -66,8 +73,44 @@ export class Map { private entriesOffset: i32 = 0; private entriesCount: i32 = 0; - constructor() { - /* nop */ + constructor(initialEntries: MapInitialEntries = []) { + let entriesLength = initialEntries.length; + + if(entriesLength > 0) { + if(entriesLength >= this.entriesCapacity) this.bucketsMask = entriesLength; + this.rehash((this.bucketsMask << 1) | 1); + + for(let i = 0; i < entriesLength; i++){ + let key = initialEntries[i].key; + let value = initialEntries[i].value; + let hashCode = HASH(key); + let entry = this.find(key, hashCode); // unmanaged! + if (entry) { + entry.value = value; + if (isManaged()) { + __link(changetype(this), changetype(value), true); + } + } else { + // append new entry + let entries = this.entries; + let entry = changetype>(changetype(entries) + (this.entriesOffset++) * ENTRY_SIZE()); + // link with the map + entry.key = key; + if (isManaged()) { + __link(changetype(this), changetype(key), true); + } + entry.value = value; + if (isManaged()) { + __link(changetype(this), changetype(value), true); + } + ++this.entriesCount; + // link with previous entry in bucket + let bucketPtrBase = changetype(this.buckets) + (hashCode & this.bucketsMask) * BUCKET_SIZE; + entry.taggedNext = load(bucketPtrBase); + store(bucketPtrBase, changetype(entry)); + } + } + } } get size(): i32 { diff --git a/tests/compiler/std/map.ts b/tests/compiler/std/map.ts index baf1bee536..4df81e171c 100644 --- a/tests/compiler/std/map.ts +++ b/tests/compiler/std/map.ts @@ -1,3 +1,4 @@ + function testNumeric(): void { var map = new Map(); @@ -58,6 +59,26 @@ function testNumeric(): void { // clear map.clear(); assert(map.size == 0); + + const initialEntries: MapInitialEntries = []; + + for(let k: K = 0; k < 100; ++k){ + initialEntries.push({ + key: k, + value: 10 + k + }); + } + + map = new Map(initialEntries); + + assert(map.size == 100); + for(let k: K = 0; k < 100; ++k){ + assert(map.has(k)); + assert(map.get(k) == 10 + k); + map.delete(k); + assert(!map.has(k)); + } + assert(map.size == 0); } testNumeric(); From 6ac8e6a02b8fcae0f5da40090e55731a541e45bb Mon Sep 17 00:00:00 2001 From: Pebrian Date: Sat, 23 Aug 2025 22:34:55 +0700 Subject: [PATCH 2/7] fix: update std/map fixture so test passes with new Map constructor --- std/assembly/index.d.ts | 2 +- std/assembly/map.ts | 6 +- tests/compiler/std/map.debug.wat | 31331 ++++++++++++++++-------- tests/compiler/std/map.release.wat | 34604 ++++++++++++++++----------- 4 files changed, 42600 insertions(+), 23343 deletions(-) diff --git a/std/assembly/index.d.ts b/std/assembly/index.d.ts index 90cbf5bf41..262a47662c 100644 --- a/std/assembly/index.d.ts +++ b/std/assembly/index.d.ts @@ -2406,7 +2406,7 @@ interface Map { toString(): string; } -type MapInitialEntries = {key: V, value:V}[] +type MapInitialEntries = {key: K, value:V}[] interface MapConstructor { new (entries?: MapInitialEntries): Map; diff --git a/std/assembly/map.ts b/std/assembly/map.ts index 09a37c1f77..02ba2eb7b0 100644 --- a/std/assembly/map.ts +++ b/std/assembly/map.ts @@ -76,11 +76,11 @@ export class Map { constructor(initialEntries: MapInitialEntries = []) { let entriesLength = initialEntries.length; - if(entriesLength > 0) { - if(entriesLength >= this.entriesCapacity) this.bucketsMask = entriesLength; + if (entriesLength > 0) { + if (entriesLength >= this.entriesCapacity) this.bucketsMask = entriesLength; this.rehash((this.bucketsMask << 1) | 1); - for(let i = 0; i < entriesLength; i++){ + for (let i = 0; i < entriesLength; i++) { let key = initialEntries[i].key; let value = initialEntries[i].value; let hashCode = HASH(key); diff --git a/tests/compiler/std/map.debug.wat b/tests/compiler/std/map.debug.wat index da8784b71b..59d22e50c6 100644 --- a/tests/compiler/std/map.debug.wat +++ b/tests/compiler/std/map.debug.wat @@ -1,18 +1,18 @@ (module - (type $0 (func (param i32 i32))) - (type $1 (func (param i32) (result i32))) + (type $0 (func (param i32) (result i32))) + (type $1 (func (param i32 i32))) (type $2 (func (param i32 i32) (result i32))) (type $3 (func (param i32 i32 i32) (result i32))) (type $4 (func (param i32))) (type $5 (func)) - (type $6 (func (param i32 i32 i32))) - (type $7 (func (param i32) (result i64))) + (type $6 (func (param i32) (result i64))) + (type $7 (func (param i32 i32 i32))) (type $8 (func (param i32 i64))) - (type $9 (func (param i32 i64 i32) (result i32))) - (type $10 (func (param i32 i64) (result i32))) - (type $11 (func (param i32) (result f32))) - (type $12 (func (param i32 f32))) - (type $13 (func (param i32) (result f64))) + (type $9 (func (param i32) (result f32))) + (type $10 (func (param i32) (result f64))) + (type $11 (func (param i32 i64 i32) (result i32))) + (type $12 (func (param i32 i64) (result i32))) + (type $13 (func (param i32 f32))) (type $14 (func (param i32 f64))) (type $15 (func (param i32 f32 i32) (result i32))) (type $16 (func (param i32 f32) (result i32))) @@ -33,7 +33,11 @@ (type $31 (func (param i32 i32 f64))) (type $32 (func (param i32 i32) (result f64))) (type $33 (func (param i32 f64 f64) (result i32))) + (type $34 (func (param i32 i32 i32 i32) (result i32))) (import "env" "abort" (func $~lib/builtins/abort (param i32 i32 i32 i32))) + (global $~lib/shared/runtime/Runtime.Stub i32 (i32.const 0)) + (global $~lib/shared/runtime/Runtime.Minimal i32 (i32.const 1)) + (global $~lib/shared/runtime/Runtime.Incremental i32 (i32.const 2)) (global $~lib/rt/itcms/total (mut i32) (i32.const 0)) (global $~lib/rt/itcms/threshold (mut i32) (i32.const 0)) (global $~lib/rt/itcms/state (mut i32) (i32.const 0)) @@ -42,37 +46,82 @@ (global $~lib/rt/itcms/iter (mut i32) (i32.const 0)) (global $~lib/rt/itcms/toSpace (mut i32) (i32.const 0)) (global $~lib/rt/itcms/white (mut i32) (i32.const 0)) - (global $~lib/shared/runtime/Runtime.Stub i32 (i32.const 0)) - (global $~lib/shared/runtime/Runtime.Minimal i32 (i32.const 1)) - (global $~lib/shared/runtime/Runtime.Incremental i32 (i32.const 2)) (global $~lib/rt/itcms/fromSpace (mut i32) (i32.const 0)) (global $~lib/rt/tlsf/ROOT (mut i32) (i32.const 0)) (global $~lib/native/ASC_LOW_MEMORY_LIMIT i32 (i32.const 0)) (global $~lib/native/ASC_RUNTIME i32 (i32.const 2)) - (global $~lib/rt/__rtti_base i32 (i32.const 736)) - (global $~lib/memory/__data_end i32 (i32.const 872)) - (global $~lib/memory/__stack_pointer (mut i32) (i32.const 33640)) - (global $~lib/memory/__heap_base i32 (i32.const 33640)) + (global $~argumentsLength (mut i32) (i32.const 0)) + (global $~lib/rt/__rtti_base i32 (i32.const 1792)) + (global $~lib/memory/__data_end i32 (i32.const 2080)) + (global $~lib/memory/__stack_pointer (mut i32) (i32.const 34848)) + (global $~lib/memory/__heap_base i32 (i32.const 34848)) (memory $0 1) - (data $0 (i32.const 12) "<\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00(\00\00\00A\00l\00l\00o\00c\00a\00t\00i\00o\00n\00 \00t\00o\00o\00 \00l\00a\00r\00g\00e\00\00\00\00\00") - (data $1 (i32.const 76) "<\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00 \00\00\00~\00l\00i\00b\00/\00r\00t\00/\00i\00t\00c\00m\00s\00.\00t\00s\00\00\00\00\00\00\00\00\00\00\00\00\00") - (data $2 (i32.const 144) "\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00") - (data $3 (i32.const 176) "\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00") - (data $4 (i32.const 204) "<\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00$\00\00\00I\00n\00d\00e\00x\00 \00o\00u\00t\00 \00o\00f\00 \00r\00a\00n\00g\00e\00\00\00\00\00\00\00\00\00") - (data $5 (i32.const 268) ",\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\14\00\00\00~\00l\00i\00b\00/\00r\00t\00.\00t\00s\00\00\00\00\00\00\00\00\00") - (data $6 (i32.const 320) "\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00") - (data $7 (i32.const 348) "<\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\1e\00\00\00~\00l\00i\00b\00/\00r\00t\00/\00t\00l\00s\00f\00.\00t\00s\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00") - (data $8 (i32.const 412) ",\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\1c\00\00\00I\00n\00v\00a\00l\00i\00d\00 \00l\00e\00n\00g\00t\00h\00") - (data $9 (i32.const 460) "<\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00&\00\00\00~\00l\00i\00b\00/\00a\00r\00r\00a\00y\00b\00u\00f\00f\00e\00r\00.\00t\00s\00\00\00\00\00\00\00") - (data $10 (i32.const 524) ",\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\14\00\00\00s\00t\00d\00/\00m\00a\00p\00.\00t\00s\00\00\00\00\00\00\00\00\00") - (data $11 (i32.const 572) "<\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00$\00\00\00K\00e\00y\00 \00d\00o\00e\00s\00 \00n\00o\00t\00 \00e\00x\00i\00s\00t\00\00\00\00\00\00\00\00\00") - (data $12 (i32.const 636) ",\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\16\00\00\00~\00l\00i\00b\00/\00m\00a\00p\00.\00t\00s\00\00\00\00\00\00\00") - (data $13 (i32.const 684) ",\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\1a\00\00\00~\00l\00i\00b\00/\00a\00r\00r\00a\00y\00.\00t\00s\00\00\00") - (data $14 (i32.const 736) "!\00\00\00 \00\00\00 \00\00\00 \00\00\00\00\00\00\00\10\89\10\00B\08\00\00\02\t\00\00P\88\10\00\10\t\12\00\10\89\00\00B\00\00\00P\80\00\00\10\t\11\00\82\08\00\00\90\08\11\00\10\t\01\00\82\00\00\00\90\00\01\00\10\t\02\00\02\01\00\00\10\01\02\00\10\t\14\00\02\n\00\00\10\n\14\00\10\t\04\00\02\02\00\00\10\02\04\00\10\t2\00\02\19\00\00\10\192\00\10\t4\00\02\1a\00\00\10\1a4\00") + (data $0 (i32.const 12) ",\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\1c\00\00\00I\00n\00v\00a\00l\00i\00d\00 \00l\00e\00n\00g\00t\00h\00") + (data $1 (i32.const 60) "<\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00&\00\00\00~\00l\00i\00b\00/\00a\00r\00r\00a\00y\00b\00u\00f\00f\00e\00r\00.\00t\00s\00\00\00\00\00\00\00") + (data $2 (i32.const 124) "<\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00(\00\00\00A\00l\00l\00o\00c\00a\00t\00i\00o\00n\00 \00t\00o\00o\00 \00l\00a\00r\00g\00e\00\00\00\00\00") + (data $3 (i32.const 188) "<\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00 \00\00\00~\00l\00i\00b\00/\00r\00t\00/\00i\00t\00c\00m\00s\00.\00t\00s\00\00\00\00\00\00\00\00\00\00\00\00\00") + (data $4 (i32.const 256) "\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00") + (data $5 (i32.const 288) "\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00") + (data $6 (i32.const 316) "<\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00$\00\00\00I\00n\00d\00e\00x\00 \00o\00u\00t\00 \00o\00f\00 \00r\00a\00n\00g\00e\00\00\00\00\00\00\00\00\00") + (data $7 (i32.const 380) ",\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\14\00\00\00~\00l\00i\00b\00/\00r\00t\00.\00t\00s\00\00\00\00\00\00\00\00\00") + (data $8 (i32.const 432) "\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00") + (data $9 (i32.const 460) "<\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\1e\00\00\00~\00l\00i\00b\00/\00r\00t\00/\00t\00l\00s\00f\00.\00t\00s\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00") + (data $10 (i32.const 524) ",\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\1a\00\00\00~\00l\00i\00b\00/\00a\00r\00r\00a\00y\00.\00t\00s\00\00\00") + (data $11 (i32.const 572) "|\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00^\00\00\00E\00l\00e\00m\00e\00n\00t\00 \00t\00y\00p\00e\00 \00m\00u\00s\00t\00 \00b\00e\00 \00n\00u\00l\00l\00a\00b\00l\00e\00 \00i\00f\00 \00a\00r\00r\00a\00y\00 \00i\00s\00 \00h\00o\00l\00e\00y\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00") + (data $12 (i32.const 700) "\1c\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00") + (data $13 (i32.const 732) ",\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\14\00\00\00s\00t\00d\00/\00m\00a\00p\00.\00t\00s\00\00\00\00\00\00\00\00\00") + (data $14 (i32.const 780) "<\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00$\00\00\00K\00e\00y\00 \00d\00o\00e\00s\00 \00n\00o\00t\00 \00e\00x\00i\00s\00t\00\00\00\00\00\00\00\00\00") + (data $15 (i32.const 844) ",\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\16\00\00\00~\00l\00i\00b\00/\00m\00a\00p\00.\00t\00s\00\00\00\00\00\00\00") + (data $16 (i32.const 892) "\1c\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00") + (data $17 (i32.const 924) "\1c\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00") + (data $18 (i32.const 956) "\1c\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00") + (data $19 (i32.const 988) "\1c\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00") + (data $20 (i32.const 1020) "\1c\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00") + (data $21 (i32.const 1052) "\1c\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00") + (data $22 (i32.const 1084) "\1c\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00") + (data $23 (i32.const 1116) "\1c\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00") + (data $24 (i32.const 1148) "\1c\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00") + (data $25 (i32.const 1180) "\1c\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00") + (data $26 (i32.const 1212) "\1c\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00") + (data $27 (i32.const 1244) "\1c\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00") + (data $28 (i32.const 1276) "\1c\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00") + (data $29 (i32.const 1308) "\1c\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00") + (data $30 (i32.const 1340) "\1c\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00") + (data $31 (i32.const 1372) "\1c\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00") + (data $32 (i32.const 1404) "\1c\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00") + (data $33 (i32.const 1436) "\1c\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00") + (data $34 (i32.const 1468) "\1c\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00") + (data $35 (i32.const 1500) "\1c\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00") + (data $36 (i32.const 1532) "\1c\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00") + (data $37 (i32.const 1564) "\1c\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00") + (data $38 (i32.const 1596) "\1c\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00") + (data $39 (i32.const 1628) "\1c\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00") + (data $40 (i32.const 1660) "\1c\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00") + (data $41 (i32.const 1692) "\1c\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00") + (data $42 (i32.const 1724) "\1c\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00") + (data $43 (i32.const 1756) "\1c\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00") + (data $44 (i32.const 1792) "G\00\00\00 \00\00\00 \00\00\00 \00\00\00\00\00\00\00\10\89\10\00 \00\00\00\02A\00\00\02\t\00\00B\08\00\00P\88\10\00 \00\00\00\02A\00\00\10\t\12\00 \00\00\00\02A\00\00\10\89\00\00 \00\00\00\02A\00\00B\00\00\00P\80\00\00 \00\00\00\02A\00\00\10\t\11\00 \00\00\00\02A\00\00\82\08\00\00\90\08\11\00 \00\00\00\02A\00\00\10\t\01\00 \00\00\00\02A\00\00\82\00\00\00\90\00\01\00 \00\00\00\02A\00\00\10\t\02\00 \00\00\00\02A\00\00\02\01\00\00\10\01\02\00 \00\00\00\02A\00\00\10\t\14\00 \00\00\00\02A\00\00\02\n\00\00\10\n\14\00 \00\00\00\02A\00\00\10\t\04\00 \00\00\00\02A\00\00\02\02\00\00\10\02\04\00 \00\00\00\02A\00\00\10\t2\00 \00\00\00\02A\00\00\02\19\00\00\10\192\00 \00\00\00\02A\00\00\10\t4\00 \00\00\00\02A\00\00\02\1a\00\00\10\1a4\00 \00\00\00\02A\00\00") (table $0 1 1 funcref) (elem $0 (i32.const 1)) (export "memory" (memory $0)) (start $~start) + (func $"~lib/array/Array<~lib/map/KeyValue>#get:length_" (param $this i32) (result i32) + local.get $this + i32.load offset=12 + ) + (func $"~lib/map/Map#get:entriesCapacity" (param $this i32) (result i32) + local.get $this + i32.load offset=12 + ) + (func $"~lib/map/Map#set:bucketsMask" (param $this i32) (param $bucketsMask i32) + local.get $this + local.get $bucketsMask + i32.store offset=4 + ) + (func $"~lib/map/Map#get:bucketsMask" (param $this i32) (result i32) + local.get $this + i32.load offset=4 + ) (func $~lib/rt/itcms/Object#set:nextWithColor (param $this i32) (param $nextWithColor i32) local.get $this local.get $nextWithColor @@ -137,7 +186,7 @@ i32.eqz if i32.const 0 - i32.const 96 + i32.const 208 i32.const 160 i32.const 16 call $~lib/builtins/abort @@ -207,7 +256,7 @@ i32.eqz if i32.const 0 - i32.const 96 + i32.const 208 i32.const 128 i32.const 18 call $~lib/builtins/abort @@ -224,7 +273,7 @@ i32.eqz if i32.const 0 - i32.const 96 + i32.const 208 i32.const 132 i32.const 16 call $~lib/builtins/abort @@ -254,8 +303,8 @@ i32.load i32.gt_u if - i32.const 224 - i32.const 288 + i32.const 336 + i32.const 400 i32.const 21 i32.const 28 call $~lib/builtins/abort @@ -323,7 +372,7 @@ i32.eqz if (result i32) i32.const 0 - i32.const 96 + i32.const 208 i32.const 148 i32.const 30 call $~lib/builtins/abort @@ -475,7 +524,7 @@ i32.eqz if i32.const 0 - i32.const 368 + i32.const 480 i32.const 268 i32.const 14 call $~lib/builtins/abort @@ -495,7 +544,7 @@ i32.eqz if i32.const 0 - i32.const 368 + i32.const 480 i32.const 270 i32.const 14 call $~lib/builtins/abort @@ -558,7 +607,7 @@ i32.eqz if i32.const 0 - i32.const 368 + i32.const 480 i32.const 284 i32.const 14 call $~lib/builtins/abort @@ -711,7 +760,7 @@ i32.eqz if i32.const 0 - i32.const 368 + i32.const 480 i32.const 201 i32.const 14 call $~lib/builtins/abort @@ -728,7 +777,7 @@ i32.eqz if i32.const 0 - i32.const 368 + i32.const 480 i32.const 203 i32.const 14 call $~lib/builtins/abort @@ -817,7 +866,7 @@ i32.eqz if i32.const 0 - i32.const 368 + i32.const 480 i32.const 221 i32.const 16 call $~lib/builtins/abort @@ -860,7 +909,7 @@ i32.eqz if i32.const 0 - i32.const 368 + i32.const 480 i32.const 233 i32.const 14 call $~lib/builtins/abort @@ -878,7 +927,7 @@ i32.eqz if i32.const 0 - i32.const 368 + i32.const 480 i32.const 234 i32.const 14 call $~lib/builtins/abort @@ -946,7 +995,7 @@ i32.eqz if i32.const 0 - i32.const 368 + i32.const 480 i32.const 251 i32.const 14 call $~lib/builtins/abort @@ -1063,7 +1112,7 @@ i32.eqz if i32.const 0 - i32.const 368 + i32.const 480 i32.const 382 i32.const 14 call $~lib/builtins/abort @@ -1109,7 +1158,7 @@ i32.eqz if i32.const 0 - i32.const 368 + i32.const 480 i32.const 389 i32.const 16 call $~lib/builtins/abort @@ -1141,7 +1190,7 @@ i32.eqz if i32.const 0 - i32.const 368 + i32.const 480 i32.const 402 i32.const 5 call $~lib/builtins/abort @@ -1385,7 +1434,7 @@ i32.eqz if i32.const 0 - i32.const 368 + i32.const 480 i32.const 562 i32.const 3 call $~lib/builtins/abort @@ -1605,7 +1654,7 @@ i32.eqz if i32.const 0 - i32.const 96 + i32.const 208 i32.const 229 i32.const 20 call $~lib/builtins/abort @@ -1713,8 +1762,8 @@ i32.const 1073741820 i32.gt_u if - i32.const 32 - i32.const 368 + i32.const 144 + i32.const 480 i32.const 461 i32.const 29 call $~lib/builtins/abort @@ -1816,7 +1865,7 @@ i32.eqz if i32.const 0 - i32.const 368 + i32.const 480 i32.const 334 i32.const 14 call $~lib/builtins/abort @@ -1887,7 +1936,7 @@ i32.eqz if i32.const 0 - i32.const 368 + i32.const 480 i32.const 347 i32.const 18 call $~lib/builtins/abort @@ -2044,7 +2093,7 @@ i32.eqz if i32.const 0 - i32.const 368 + i32.const 480 i32.const 361 i32.const 14 call $~lib/builtins/abort @@ -2159,7 +2208,7 @@ i32.eqz if i32.const 0 - i32.const 368 + i32.const 480 i32.const 499 i32.const 16 call $~lib/builtins/abort @@ -2179,7 +2228,7 @@ i32.eqz if i32.const 0 - i32.const 368 + i32.const 480 i32.const 501 i32.const 14 call $~lib/builtins/abort @@ -2227,8 +2276,8 @@ i32.const 1073741804 i32.ge_u if - i32.const 32 - i32.const 96 + i32.const 144 + i32.const 208 i32.const 261 i32.const 31 call $~lib/builtins/abort @@ -2273,6 +2322,110 @@ local.get $ptr return ) + (func $"~lib/map/Map#get:entries" (param $this i32) (result i32) + local.get $this + i32.load offset=8 + ) + (func $"~lib/map/Map#get:entriesOffset" (param $this i32) (result i32) + local.get $this + i32.load offset=16 + ) + (func $"~lib/map/MapEntry#get:taggedNext" (param $this i32) (result i32) + local.get $this + i32.load offset=8 + ) + (func $"~lib/map/MapEntry#get:key" (param $this i32) (result i32) + local.get $this + i32.load8_s + ) + (func $"~lib/map/MapEntry#set:key" (param $this i32) (param $key i32) + local.get $this + local.get $key + i32.store8 + ) + (func $"~lib/map/MapEntry#get:value" (param $this i32) (result i32) + local.get $this + i32.load offset=4 + ) + (func $"~lib/map/MapEntry#set:value" (param $this i32) (param $value i32) + local.get $this + local.get $value + i32.store offset=4 + ) + (func $~lib/util/hash/HASH (param $key i32) (result i32) + (local $key|1 i32) + (local $len i32) + (local $h i32) + i32.const 0 + drop + i32.const 0 + drop + i32.const 0 + drop + i32.const 1 + i32.const 4 + i32.le_u + drop + block $~lib/util/hash/hash32|inlined.0 (result i32) + local.get $key + i32.extend8_s + local.set $key|1 + i32.const 1 + local.set $len + i32.const 0 + i32.const 374761393 + i32.add + local.get $len + i32.add + local.set $h + local.get $h + local.get $key|1 + i32.const -1028477379 + i32.mul + i32.add + local.set $h + local.get $h + i32.const 17 + i32.rotl + i32.const 668265263 + i32.mul + local.set $h + local.get $h + local.get $h + i32.const 15 + i32.shr_u + i32.xor + local.set $h + local.get $h + i32.const -2048144777 + i32.mul + local.set $h + local.get $h + local.get $h + i32.const 13 + i32.shr_u + i32.xor + local.set $h + local.get $h + i32.const -1028477379 + i32.mul + local.set $h + local.get $h + local.get $h + i32.const 16 + i32.shr_u + i32.xor + local.set $h + local.get $h + br $~lib/util/hash/hash32|inlined.0 + end + return + ) + (func $"~lib/map/MapEntry#set:taggedNext" (param $this i32) (param $taggedNext i32) + local.get $this + local.get $taggedNext + i32.store offset=8 + ) (func $~lib/rt/itcms/__link (param $parentPtr i32) (param $childPtr i32) (param $expectMultiple i32) (local $child i32) (local $parent i32) @@ -2288,7 +2441,7 @@ i32.eqz if i32.const 0 - i32.const 96 + i32.const 208 i32.const 295 i32.const 14 call $~lib/builtins/abort @@ -2350,11 +2503,6 @@ i32.const 0 call $~lib/rt/itcms/__link ) - (func $"~lib/map/Map#set:bucketsMask" (param $this i32) (param $bucketsMask i32) - local.get $this - local.get $bucketsMask - i32.store offset=4 - ) (func $"~lib/map/Map#set:entries" (param $this i32) (param $entries i32) local.get $this local.get $entries @@ -2369,135 +2517,51 @@ local.get $entriesCapacity i32.store offset=12 ) + (func $"~lib/map/Map#get:entriesCount" (param $this i32) (result i32) + local.get $this + i32.load offset=20 + ) (func $"~lib/map/Map#set:entriesOffset" (param $this i32) (param $entriesOffset i32) local.get $this local.get $entriesOffset i32.store offset=16 ) - (func $"~lib/map/Map#set:entriesCount" (param $this i32) (param $entriesCount i32) - local.get $this - local.get $entriesCount - i32.store offset=20 - ) - (func $~lib/util/hash/HASH (param $key i32) (result i32) - (local $key|1 i32) - (local $len i32) - (local $h i32) - i32.const 0 - drop - i32.const 0 - drop - i32.const 0 - drop - i32.const 1 - i32.const 4 - i32.le_u - drop - block $~lib/util/hash/hash32|inlined.0 (result i32) - local.get $key - i32.extend8_s - local.set $key|1 - i32.const 1 - local.set $len - i32.const 0 - i32.const 374761393 - i32.add - local.get $len - i32.add - local.set $h - local.get $h - local.get $key|1 - i32.const -1028477379 - i32.mul - i32.add - local.set $h - local.get $h - i32.const 17 - i32.rotl - i32.const 668265263 - i32.mul - local.set $h - local.get $h - local.get $h - i32.const 15 - i32.shr_u - i32.xor - local.set $h - local.get $h - i32.const -2048144777 - i32.mul - local.set $h - local.get $h - local.get $h - i32.const 13 - i32.shr_u - i32.xor - local.set $h - local.get $h - i32.const -1028477379 - i32.mul - local.set $h - local.get $h - local.get $h - i32.const 16 - i32.shr_u - i32.xor - local.set $h - local.get $h - br $~lib/util/hash/hash32|inlined.0 - end - return - ) - (func $"~lib/map/Map#get:buckets" (param $this i32) (result i32) - local.get $this - i32.load - ) - (func $"~lib/map/Map#get:bucketsMask" (param $this i32) (result i32) + (func $"~lib/array/Array<~lib/map/KeyValue>#get:dataStart" (param $this i32) (result i32) local.get $this i32.load offset=4 ) - (func $"~lib/map/MapEntry#get:taggedNext" (param $this i32) (result i32) - local.get $this - i32.load offset=8 - ) - (func $"~lib/map/MapEntry#get:key" (param $this i32) (result i32) + (func $"~lib/map/KeyValue#get:key" (param $this i32) (result i32) local.get $this i32.load8_s ) - (func $"~lib/map/MapEntry#set:value" (param $this i32) (param $value i32) + (func $"~lib/map/KeyValue#get:value" (param $this i32) (result i32) local.get $this - local.get $value - i32.store offset=4 - ) - (func $"~lib/map/Map#get:entriesOffset" (param $this i32) (result i32) - local.get $this - i32.load offset=16 - ) - (func $"~lib/map/Map#get:entriesCapacity" (param $this i32) (result i32) - local.get $this - i32.load offset=12 - ) - (func $"~lib/map/Map#get:entriesCount" (param $this i32) (result i32) - local.get $this - i32.load offset=20 - ) - (func $"~lib/map/Map#get:entries" (param $this i32) (result i32) - local.get $this - i32.load offset=8 + i32.load offset=4 ) - (func $"~lib/map/MapEntry#set:key" (param $this i32) (param $key i32) + (func $"~lib/map/Map#get:buckets" (param $this i32) (result i32) local.get $this - local.get $key - i32.store8 + i32.load ) - (func $"~lib/map/MapEntry#get:value" (param $this i32) (result i32) + (func $"~lib/map/Map#set:entriesCount" (param $this i32) (param $entriesCount i32) local.get $this - i32.load offset=4 + local.get $entriesCount + i32.store offset=20 ) - (func $"~lib/map/MapEntry#set:taggedNext" (param $this i32) (param $taggedNext i32) - local.get $this - local.get $taggedNext - i32.store offset=8 + (func $~lib/rt/__newBuffer (param $size i32) (param $id i32) (param $data i32) (result i32) + (local $buffer i32) + local.get $size + local.get $id + call $~lib/rt/itcms/__new + local.set $buffer + local.get $data + if + local.get $buffer + local.get $data + local.get $size + memory.copy + end + local.get $buffer + return ) (func $~lib/array/Array#set:buffer (param $this i32) (param $buffer i32) local.get $this @@ -2621,45 +2685,59 @@ local.get $this i32.load offset=4 ) - (func $"~lib/map/Map#set:buckets" (param $this i32) (param $buckets i32) + (func $"~lib/array/Array<~lib/map/KeyValue>#get:length_" (param $this i32) (result i32) local.get $this - local.get $buckets - i32.store + i32.load offset=12 + ) + (func $"~lib/map/Map#get:entriesCapacity" (param $this i32) (result i32) local.get $this - local.get $buckets - i32.const 0 - call $~lib/rt/itcms/__link + i32.load offset=12 ) (func $"~lib/map/Map#set:bucketsMask" (param $this i32) (param $bucketsMask i32) local.get $this local.get $bucketsMask i32.store offset=4 ) - (func $"~lib/map/Map#set:entries" (param $this i32) (param $entries i32) + (func $"~lib/map/Map#get:bucketsMask" (param $this i32) (result i32) local.get $this - local.get $entries - i32.store offset=8 + i32.load offset=4 + ) + (func $"~lib/map/Map#get:entries" (param $this i32) (result i32) local.get $this - local.get $entries - i32.const 0 - call $~lib/rt/itcms/__link + i32.load offset=8 ) - (func $"~lib/map/Map#set:entriesCapacity" (param $this i32) (param $entriesCapacity i32) + (func $"~lib/map/Map#get:entriesOffset" (param $this i32) (result i32) local.get $this - local.get $entriesCapacity - i32.store offset=12 + i32.load offset=16 ) - (func $"~lib/map/Map#set:entriesOffset" (param $this i32) (param $entriesOffset i32) + (func $"~lib/map/MapEntry#get:taggedNext" (param $this i32) (result i32) local.get $this - local.get $entriesOffset - i32.store offset=16 + i32.load offset=4 ) - (func $"~lib/map/Map#set:entriesCount" (param $this i32) (param $entriesCount i32) + (func $"~lib/map/MapEntry#get:key" (param $this i32) (result i32) local.get $this - local.get $entriesCount - i32.store offset=20 + i32.load8_s ) - (func $"~lib/map/Map#set:buckets" (param $this i32) (param $buckets i32) + (func $"~lib/map/MapEntry#set:key" (param $this i32) (param $key i32) + local.get $this + local.get $key + i32.store8 + ) + (func $"~lib/map/MapEntry#get:value" (param $this i32) (result i32) + local.get $this + i32.load8_s offset=1 + ) + (func $"~lib/map/MapEntry#set:value" (param $this i32) (param $value i32) + local.get $this + local.get $value + i32.store8 offset=1 + ) + (func $"~lib/map/MapEntry#set:taggedNext" (param $this i32) (param $taggedNext i32) + local.get $this + local.get $taggedNext + i32.store offset=4 + ) + (func $"~lib/map/Map#set:buckets" (param $this i32) (param $buckets i32) local.get $this local.get $buckets i32.store @@ -2668,12 +2746,7 @@ i32.const 0 call $~lib/rt/itcms/__link ) - (func $"~lib/map/Map#set:bucketsMask" (param $this i32) (param $bucketsMask i32) - local.get $this - local.get $bucketsMask - i32.store offset=4 - ) - (func $"~lib/map/Map#set:entries" (param $this i32) (param $entries i32) + (func $"~lib/map/Map#set:entries" (param $this i32) (param $entries i32) local.get $this local.get $entries i32.store offset=8 @@ -2682,70 +2755,86 @@ i32.const 0 call $~lib/rt/itcms/__link ) - (func $"~lib/map/Map#set:entriesCapacity" (param $this i32) (param $entriesCapacity i32) + (func $"~lib/map/Map#set:entriesCapacity" (param $this i32) (param $entriesCapacity i32) local.get $this local.get $entriesCapacity i32.store offset=12 ) - (func $"~lib/map/Map#set:entriesOffset" (param $this i32) (param $entriesOffset i32) + (func $"~lib/map/Map#get:entriesCount" (param $this i32) (result i32) + local.get $this + i32.load offset=20 + ) + (func $"~lib/map/Map#set:entriesOffset" (param $this i32) (param $entriesOffset i32) local.get $this local.get $entriesOffset i32.store offset=16 ) - (func $"~lib/map/Map#set:entriesCount" (param $this i32) (param $entriesCount i32) + (func $"~lib/array/Array<~lib/map/KeyValue>#get:dataStart" (param $this i32) (result i32) local.get $this - local.get $entriesCount - i32.store offset=20 + i32.load offset=4 + ) + (func $"~lib/map/KeyValue#get:key" (param $this i32) (result i32) + local.get $this + i32.load8_s + ) + (func $"~lib/map/KeyValue#get:value" (param $this i32) (result i32) + local.get $this + i32.load8_s offset=1 ) (func $"~lib/map/Map#get:buckets" (param $this i32) (result i32) local.get $this i32.load ) - (func $"~lib/map/Map#get:bucketsMask" (param $this i32) (result i32) + (func $"~lib/map/Map#set:entriesCount" (param $this i32) (param $entriesCount i32) local.get $this - i32.load offset=4 + local.get $entriesCount + i32.store offset=20 ) - (func $"~lib/map/MapEntry#get:taggedNext" (param $this i32) (result i32) + (func $"~lib/array/Array<~lib/map/KeyValue>#get:length_" (param $this i32) (result i32) local.get $this - i32.load offset=4 + i32.load offset=12 ) - (func $"~lib/map/MapEntry#get:key" (param $this i32) (result i32) + (func $"~lib/map/Map#get:entriesCapacity" (param $this i32) (result i32) local.get $this - i32.load8_s + i32.load offset=12 ) - (func $"~lib/map/MapEntry#set:value" (param $this i32) (param $value i32) + (func $"~lib/map/Map#set:bucketsMask" (param $this i32) (param $bucketsMask i32) local.get $this - local.get $value - i32.store8 offset=1 + local.get $bucketsMask + i32.store offset=4 ) - (func $"~lib/map/Map#get:entriesOffset" (param $this i32) (result i32) + (func $"~lib/map/Map#get:bucketsMask" (param $this i32) (result i32) local.get $this - i32.load offset=16 + i32.load offset=4 ) - (func $"~lib/map/Map#get:entriesCapacity" (param $this i32) (result i32) + (func $"~lib/map/Map#get:entries" (param $this i32) (result i32) local.get $this - i32.load offset=12 + i32.load offset=8 ) - (func $"~lib/map/Map#get:entriesCount" (param $this i32) (result i32) + (func $"~lib/map/Map#get:entriesOffset" (param $this i32) (result i32) local.get $this - i32.load offset=20 + i32.load offset=16 ) - (func $"~lib/map/Map#get:entries" (param $this i32) (result i32) + (func $"~lib/map/MapEntry#get:taggedNext" (param $this i32) (result i32) local.get $this i32.load offset=8 ) - (func $"~lib/map/MapEntry#set:key" (param $this i32) (param $key i32) + (func $"~lib/map/MapEntry#get:key" (param $this i32) (result i32) + local.get $this + i32.load + ) + (func $"~lib/map/MapEntry#set:key" (param $this i32) (param $key i32) local.get $this local.get $key - i32.store8 + i32.store ) - (func $"~lib/map/MapEntry#get:value" (param $this i32) (result i32) + (func $"~lib/map/MapEntry#get:value" (param $this i32) (result i32) local.get $this - i32.load8_s offset=1 + i32.load offset=4 ) - (func $"~lib/map/MapEntry#set:taggedNext" (param $this i32) (param $taggedNext i32) + (func $"~lib/map/MapEntry#set:value" (param $this i32) (param $value i32) local.get $this - local.get $taggedNext + local.get $value i32.store offset=4 ) (func $~lib/util/hash/HASH (param $key i32) (result i32) @@ -2816,94 +2905,125 @@ end return ) - (func $"~lib/map/Map#get:buckets" (param $this i32) (result i32) + (func $"~lib/map/MapEntry#set:taggedNext" (param $this i32) (param $taggedNext i32) local.get $this - i32.load + local.get $taggedNext + i32.store offset=8 ) - (func $"~lib/map/Map#get:bucketsMask" (param $this i32) (result i32) + (func $"~lib/map/Map#set:buckets" (param $this i32) (param $buckets i32) local.get $this - i32.load offset=4 + local.get $buckets + i32.store + local.get $this + local.get $buckets + i32.const 0 + call $~lib/rt/itcms/__link ) - (func $"~lib/map/MapEntry#get:taggedNext" (param $this i32) (result i32) + (func $"~lib/map/Map#set:entries" (param $this i32) (param $entries i32) local.get $this - i32.load offset=8 + local.get $entries + i32.store offset=8 + local.get $this + local.get $entries + i32.const 0 + call $~lib/rt/itcms/__link ) - (func $"~lib/map/MapEntry#get:key" (param $this i32) (result i32) + (func $"~lib/map/Map#set:entriesCapacity" (param $this i32) (param $entriesCapacity i32) local.get $this - i32.load + local.get $entriesCapacity + i32.store offset=12 ) - (func $"~lib/map/MapEntry#set:value" (param $this i32) (param $value i32) + (func $"~lib/map/Map#get:entriesCount" (param $this i32) (result i32) local.get $this - local.get $value - i32.store offset=4 + i32.load offset=20 ) - (func $"~lib/map/Map#get:entriesOffset" (param $this i32) (result i32) + (func $"~lib/map/Map#set:entriesOffset" (param $this i32) (param $entriesOffset i32) local.get $this - i32.load offset=16 + local.get $entriesOffset + i32.store offset=16 ) - (func $"~lib/map/Map#get:entriesCapacity" (param $this i32) (result i32) + (func $"~lib/array/Array<~lib/map/KeyValue>#get:dataStart" (param $this i32) (result i32) local.get $this - i32.load offset=12 + i32.load offset=4 ) - (func $"~lib/map/Map#get:entriesCount" (param $this i32) (result i32) + (func $"~lib/map/KeyValue#get:key" (param $this i32) (result i32) local.get $this - i32.load offset=20 + i32.load ) - (func $"~lib/map/Map#get:entries" (param $this i32) (result i32) + (func $"~lib/map/KeyValue#get:value" (param $this i32) (result i32) local.get $this - i32.load offset=8 + i32.load offset=4 ) - (func $"~lib/map/MapEntry#set:key" (param $this i32) (param $key i32) + (func $"~lib/map/Map#get:buckets" (param $this i32) (result i32) + local.get $this + i32.load + ) + (func $"~lib/map/Map#set:entriesCount" (param $this i32) (param $entriesCount i32) + local.get $this + local.get $entriesCount + i32.store offset=20 + ) + (func $"~lib/map/KeyValue#set:key" (param $this i32) (param $key i32) local.get $this local.get $key - i32.store + i32.store8 ) - (func $"~lib/map/MapEntry#get:value" (param $this i32) (result i32) + (func $"~lib/map/KeyValue#set:value" (param $this i32) (param $value i32) local.get $this - i32.load offset=4 + local.get $value + i32.store offset=4 ) - (func $"~lib/map/MapEntry#set:taggedNext" (param $this i32) (param $taggedNext i32) + (func $"~lib/array/Array<~lib/map/KeyValue>#set:length_" (param $this i32) (param $length_ i32) local.get $this - local.get $taggedNext - i32.store offset=8 + local.get $length_ + i32.store offset=12 ) - (func $"~lib/map/Map#set:buckets" (param $this i32) (param $buckets i32) + (func $"~lib/array/Array<~lib/map/KeyValue>#get:length_" (param $this i32) (result i32) local.get $this - local.get $buckets - i32.store + i32.load offset=12 + ) + (func $"~lib/map/Map#get:entriesCapacity" (param $this i32) (result i32) local.get $this - local.get $buckets - i32.const 0 - call $~lib/rt/itcms/__link + i32.load offset=12 ) (func $"~lib/map/Map#set:bucketsMask" (param $this i32) (param $bucketsMask i32) local.get $this local.get $bucketsMask i32.store offset=4 ) - (func $"~lib/map/Map#set:entries" (param $this i32) (param $entries i32) + (func $"~lib/map/Map#get:bucketsMask" (param $this i32) (result i32) local.get $this - local.get $entries - i32.store offset=8 + i32.load offset=4 + ) + (func $"~lib/map/Map#get:entries" (param $this i32) (result i32) local.get $this - local.get $entries - i32.const 0 - call $~lib/rt/itcms/__link + i32.load offset=8 ) - (func $"~lib/map/Map#set:entriesCapacity" (param $this i32) (param $entriesCapacity i32) + (func $"~lib/map/Map#get:entriesOffset" (param $this i32) (result i32) local.get $this - local.get $entriesCapacity - i32.store offset=12 + i32.load offset=16 ) - (func $"~lib/map/Map#set:entriesOffset" (param $this i32) (param $entriesOffset i32) + (func $"~lib/map/MapEntry#get:taggedNext" (param $this i32) (result i32) local.get $this - local.get $entriesOffset - i32.store offset=16 + i32.load offset=8 ) - (func $"~lib/map/Map#set:entriesCount" (param $this i32) (param $entriesCount i32) + (func $"~lib/map/MapEntry#get:key" (param $this i32) (result i32) local.get $this - local.get $entriesCount - i32.store offset=20 + i32.load8_u + ) + (func $"~lib/map/MapEntry#set:key" (param $this i32) (param $key i32) + local.get $this + local.get $key + i32.store8 + ) + (func $"~lib/map/MapEntry#get:value" (param $this i32) (result i32) + local.get $this + i32.load offset=4 + ) + (func $"~lib/map/MapEntry#set:value" (param $this i32) (param $value i32) + local.get $this + local.get $value + i32.store offset=4 ) (func $~lib/util/hash/HASH (param $key i32) (result i32) (local $key|1 i32) @@ -2975,56 +3095,63 @@ end return ) - (func $"~lib/map/Map#get:buckets" (param $this i32) (result i32) - local.get $this - i32.load - ) - (func $"~lib/map/Map#get:bucketsMask" (param $this i32) (result i32) + (func $"~lib/map/MapEntry#set:taggedNext" (param $this i32) (param $taggedNext i32) local.get $this - i32.load offset=4 + local.get $taggedNext + i32.store offset=8 ) - (func $"~lib/map/MapEntry#get:taggedNext" (param $this i32) (result i32) + (func $"~lib/map/Map#set:buckets" (param $this i32) (param $buckets i32) local.get $this - i32.load offset=8 - ) - (func $"~lib/map/MapEntry#get:key" (param $this i32) (result i32) + local.get $buckets + i32.store local.get $this - i32.load8_u + local.get $buckets + i32.const 0 + call $~lib/rt/itcms/__link ) - (func $"~lib/map/MapEntry#set:value" (param $this i32) (param $value i32) + (func $"~lib/map/Map#set:entries" (param $this i32) (param $entries i32) local.get $this - local.get $value - i32.store offset=4 - ) - (func $"~lib/map/Map#get:entriesOffset" (param $this i32) (result i32) + local.get $entries + i32.store offset=8 local.get $this - i32.load offset=16 + local.get $entries + i32.const 0 + call $~lib/rt/itcms/__link ) - (func $"~lib/map/Map#get:entriesCapacity" (param $this i32) (result i32) + (func $"~lib/map/Map#set:entriesCapacity" (param $this i32) (param $entriesCapacity i32) local.get $this - i32.load offset=12 + local.get $entriesCapacity + i32.store offset=12 ) (func $"~lib/map/Map#get:entriesCount" (param $this i32) (result i32) local.get $this i32.load offset=20 ) - (func $"~lib/map/Map#get:entries" (param $this i32) (result i32) + (func $"~lib/map/Map#set:entriesOffset" (param $this i32) (param $entriesOffset i32) local.get $this - i32.load offset=8 + local.get $entriesOffset + i32.store offset=16 ) - (func $"~lib/map/MapEntry#set:key" (param $this i32) (param $key i32) + (func $"~lib/array/Array<~lib/map/KeyValue>#get:dataStart" (param $this i32) (result i32) local.get $this - local.get $key - i32.store8 + i32.load offset=4 ) - (func $"~lib/map/MapEntry#get:value" (param $this i32) (result i32) + (func $"~lib/map/KeyValue#get:key" (param $this i32) (result i32) + local.get $this + i32.load8_u + ) + (func $"~lib/map/KeyValue#get:value" (param $this i32) (result i32) local.get $this i32.load offset=4 ) - (func $"~lib/map/MapEntry#set:taggedNext" (param $this i32) (param $taggedNext i32) + (func $"~lib/map/Map#get:buckets" (param $this i32) (result i32) local.get $this - local.get $taggedNext - i32.store offset=8 + i32.load + ) + (func $"~lib/map/Map#set:entriesCount" (param $this i32) (param $entriesCount i32) + local.get $this + local.get $entriesCount + i32.store offset=20 ) (func $~lib/array/Array#set:buffer (param $this i32) (param $buffer i32) local.get $this @@ -3058,6 +3185,58 @@ local.get $this i32.load offset=4 ) + (func $"~lib/array/Array<~lib/map/KeyValue>#get:length_" (param $this i32) (result i32) + local.get $this + i32.load offset=12 + ) + (func $"~lib/map/Map#get:entriesCapacity" (param $this i32) (result i32) + local.get $this + i32.load offset=12 + ) + (func $"~lib/map/Map#set:bucketsMask" (param $this i32) (param $bucketsMask i32) + local.get $this + local.get $bucketsMask + i32.store offset=4 + ) + (func $"~lib/map/Map#get:bucketsMask" (param $this i32) (result i32) + local.get $this + i32.load offset=4 + ) + (func $"~lib/map/Map#get:entries" (param $this i32) (result i32) + local.get $this + i32.load offset=8 + ) + (func $"~lib/map/Map#get:entriesOffset" (param $this i32) (result i32) + local.get $this + i32.load offset=16 + ) + (func $"~lib/map/MapEntry#get:taggedNext" (param $this i32) (result i32) + local.get $this + i32.load offset=4 + ) + (func $"~lib/map/MapEntry#get:key" (param $this i32) (result i32) + local.get $this + i32.load8_u + ) + (func $"~lib/map/MapEntry#set:key" (param $this i32) (param $key i32) + local.get $this + local.get $key + i32.store8 + ) + (func $"~lib/map/MapEntry#get:value" (param $this i32) (result i32) + local.get $this + i32.load8_u offset=1 + ) + (func $"~lib/map/MapEntry#set:value" (param $this i32) (param $value i32) + local.get $this + local.get $value + i32.store8 offset=1 + ) + (func $"~lib/map/MapEntry#set:taggedNext" (param $this i32) (param $taggedNext i32) + local.get $this + local.get $taggedNext + i32.store offset=4 + ) (func $"~lib/map/Map#set:buckets" (param $this i32) (param $buckets i32) local.get $this local.get $buckets @@ -3067,11 +3246,6 @@ i32.const 0 call $~lib/rt/itcms/__link ) - (func $"~lib/map/Map#set:bucketsMask" (param $this i32) (param $bucketsMask i32) - local.get $this - local.get $bucketsMask - i32.store offset=4 - ) (func $"~lib/map/Map#set:entries" (param $this i32) (param $entries i32) local.get $this local.get $entries @@ -3086,104 +3260,97 @@ local.get $entriesCapacity i32.store offset=12 ) + (func $"~lib/map/Map#get:entriesCount" (param $this i32) (result i32) + local.get $this + i32.load offset=20 + ) (func $"~lib/map/Map#set:entriesOffset" (param $this i32) (param $entriesOffset i32) local.get $this local.get $entriesOffset i32.store offset=16 ) - (func $"~lib/map/Map#set:entriesCount" (param $this i32) (param $entriesCount i32) - local.get $this - local.get $entriesCount - i32.store offset=20 - ) - (func $"~lib/map/Map#get:buckets" (param $this i32) (result i32) - local.get $this - i32.load - ) - (func $"~lib/map/Map#get:bucketsMask" (param $this i32) (result i32) + (func $"~lib/array/Array<~lib/map/KeyValue>#get:dataStart" (param $this i32) (result i32) local.get $this i32.load offset=4 ) - (func $"~lib/map/MapEntry#get:taggedNext" (param $this i32) (result i32) + (func $"~lib/map/KeyValue#get:key" (param $this i32) (result i32) local.get $this - i32.load offset=4 + i32.load8_u ) - (func $"~lib/map/MapEntry#get:key" (param $this i32) (result i32) + (func $"~lib/map/KeyValue#get:value" (param $this i32) (result i32) local.get $this - i32.load8_u + i32.load8_u offset=1 ) - (func $"~lib/map/MapEntry#set:value" (param $this i32) (param $value i32) + (func $"~lib/map/Map#get:buckets" (param $this i32) (result i32) local.get $this - local.get $value - i32.store8 offset=1 + i32.load ) - (func $"~lib/map/Map#get:entriesOffset" (param $this i32) (result i32) + (func $"~lib/map/Map#set:entriesCount" (param $this i32) (param $entriesCount i32) local.get $this - i32.load offset=16 + local.get $entriesCount + i32.store offset=20 ) - (func $"~lib/map/Map#get:entriesCapacity" (param $this i32) (result i32) + (func $"~lib/map/KeyValue#set:key" (param $this i32) (param $key i32) local.get $this - i32.load offset=12 + local.get $key + i32.store8 ) - (func $"~lib/map/Map#get:entriesCount" (param $this i32) (result i32) + (func $"~lib/map/KeyValue#set:value" (param $this i32) (param $value i32) local.get $this - i32.load offset=20 + local.get $value + i32.store offset=4 ) - (func $"~lib/map/Map#get:entries" (param $this i32) (result i32) + (func $"~lib/array/Array<~lib/map/KeyValue>#set:length_" (param $this i32) (param $length_ i32) local.get $this - i32.load offset=8 + local.get $length_ + i32.store offset=12 ) - (func $"~lib/map/MapEntry#set:key" (param $this i32) (param $key i32) + (func $"~lib/array/Array<~lib/map/KeyValue>#get:length_" (param $this i32) (result i32) local.get $this - local.get $key - i32.store8 + i32.load offset=12 ) - (func $"~lib/map/MapEntry#get:value" (param $this i32) (result i32) + (func $"~lib/map/Map#get:entriesCapacity" (param $this i32) (result i32) local.get $this - i32.load8_u offset=1 + i32.load offset=12 ) - (func $"~lib/map/MapEntry#set:taggedNext" (param $this i32) (param $taggedNext i32) + (func $"~lib/map/Map#set:bucketsMask" (param $this i32) (param $bucketsMask i32) local.get $this - local.get $taggedNext + local.get $bucketsMask i32.store offset=4 ) - (func $"~lib/map/Map#set:buckets" (param $this i32) (param $buckets i32) + (func $"~lib/map/Map#get:bucketsMask" (param $this i32) (result i32) local.get $this - local.get $buckets - i32.store + i32.load offset=4 + ) + (func $"~lib/map/Map#get:entries" (param $this i32) (result i32) local.get $this - local.get $buckets - i32.const 0 - call $~lib/rt/itcms/__link + i32.load offset=8 ) - (func $"~lib/map/Map#set:bucketsMask" (param $this i32) (param $bucketsMask i32) + (func $"~lib/map/Map#get:entriesOffset" (param $this i32) (result i32) local.get $this - local.get $bucketsMask - i32.store offset=4 + i32.load offset=16 ) - (func $"~lib/map/Map#set:entries" (param $this i32) (param $entries i32) + (func $"~lib/map/MapEntry#get:taggedNext" (param $this i32) (result i32) local.get $this - local.get $entries - i32.store offset=8 + i32.load offset=8 + ) + (func $"~lib/map/MapEntry#get:key" (param $this i32) (result i32) local.get $this - local.get $entries - i32.const 0 - call $~lib/rt/itcms/__link + i32.load16_s ) - (func $"~lib/map/Map#set:entriesCapacity" (param $this i32) (param $entriesCapacity i32) + (func $"~lib/map/MapEntry#set:key" (param $this i32) (param $key i32) local.get $this - local.get $entriesCapacity - i32.store offset=12 + local.get $key + i32.store16 ) - (func $"~lib/map/Map#set:entriesOffset" (param $this i32) (param $entriesOffset i32) + (func $"~lib/map/MapEntry#get:value" (param $this i32) (result i32) local.get $this - local.get $entriesOffset - i32.store offset=16 + i32.load offset=4 ) - (func $"~lib/map/Map#set:entriesCount" (param $this i32) (param $entriesCount i32) + (func $"~lib/map/MapEntry#set:value" (param $this i32) (param $value i32) local.get $this - local.get $entriesCount - i32.store offset=20 + local.get $value + i32.store offset=4 ) (func $~lib/util/hash/HASH (param $key i32) (result i32) (local $key|1 i32) @@ -3254,56 +3421,63 @@ end return ) - (func $"~lib/map/Map#get:buckets" (param $this i32) (result i32) - local.get $this - i32.load - ) - (func $"~lib/map/Map#get:bucketsMask" (param $this i32) (result i32) + (func $"~lib/map/MapEntry#set:taggedNext" (param $this i32) (param $taggedNext i32) local.get $this - i32.load offset=4 + local.get $taggedNext + i32.store offset=8 ) - (func $"~lib/map/MapEntry#get:taggedNext" (param $this i32) (result i32) + (func $"~lib/map/Map#set:buckets" (param $this i32) (param $buckets i32) local.get $this - i32.load offset=8 - ) - (func $"~lib/map/MapEntry#get:key" (param $this i32) (result i32) + local.get $buckets + i32.store local.get $this - i32.load16_s + local.get $buckets + i32.const 0 + call $~lib/rt/itcms/__link ) - (func $"~lib/map/MapEntry#set:value" (param $this i32) (param $value i32) + (func $"~lib/map/Map#set:entries" (param $this i32) (param $entries i32) local.get $this - local.get $value - i32.store offset=4 - ) - (func $"~lib/map/Map#get:entriesOffset" (param $this i32) (result i32) + local.get $entries + i32.store offset=8 local.get $this - i32.load offset=16 + local.get $entries + i32.const 0 + call $~lib/rt/itcms/__link ) - (func $"~lib/map/Map#get:entriesCapacity" (param $this i32) (result i32) + (func $"~lib/map/Map#set:entriesCapacity" (param $this i32) (param $entriesCapacity i32) local.get $this - i32.load offset=12 + local.get $entriesCapacity + i32.store offset=12 ) (func $"~lib/map/Map#get:entriesCount" (param $this i32) (result i32) local.get $this i32.load offset=20 ) - (func $"~lib/map/Map#get:entries" (param $this i32) (result i32) + (func $"~lib/map/Map#set:entriesOffset" (param $this i32) (param $entriesOffset i32) local.get $this - i32.load offset=8 + local.get $entriesOffset + i32.store offset=16 ) - (func $"~lib/map/MapEntry#set:key" (param $this i32) (param $key i32) + (func $"~lib/array/Array<~lib/map/KeyValue>#get:dataStart" (param $this i32) (result i32) local.get $this - local.get $key - i32.store16 + i32.load offset=4 ) - (func $"~lib/map/MapEntry#get:value" (param $this i32) (result i32) + (func $"~lib/map/KeyValue#get:key" (param $this i32) (result i32) local.get $this - i32.load offset=4 + i32.load16_s ) - (func $"~lib/map/MapEntry#set:taggedNext" (param $this i32) (param $taggedNext i32) + (func $"~lib/map/KeyValue#get:value" (param $this i32) (result i32) local.get $this - local.get $taggedNext - i32.store offset=8 + i32.load offset=4 + ) + (func $"~lib/map/Map#get:buckets" (param $this i32) (result i32) + local.get $this + i32.load + ) + (func $"~lib/map/Map#set:entriesCount" (param $this i32) (param $entriesCount i32) + local.get $this + local.get $entriesCount + i32.store offset=20 ) (func $~lib/array/Array#set:buffer (param $this i32) (param $buffer i32) local.get $this @@ -3337,6 +3511,58 @@ local.get $this i32.load offset=4 ) + (func $"~lib/array/Array<~lib/map/KeyValue>#get:length_" (param $this i32) (result i32) + local.get $this + i32.load offset=12 + ) + (func $"~lib/map/Map#get:entriesCapacity" (param $this i32) (result i32) + local.get $this + i32.load offset=12 + ) + (func $"~lib/map/Map#set:bucketsMask" (param $this i32) (param $bucketsMask i32) + local.get $this + local.get $bucketsMask + i32.store offset=4 + ) + (func $"~lib/map/Map#get:bucketsMask" (param $this i32) (result i32) + local.get $this + i32.load offset=4 + ) + (func $"~lib/map/Map#get:entries" (param $this i32) (result i32) + local.get $this + i32.load offset=8 + ) + (func $"~lib/map/Map#get:entriesOffset" (param $this i32) (result i32) + local.get $this + i32.load offset=16 + ) + (func $"~lib/map/MapEntry#get:taggedNext" (param $this i32) (result i32) + local.get $this + i32.load offset=4 + ) + (func $"~lib/map/MapEntry#get:key" (param $this i32) (result i32) + local.get $this + i32.load16_s + ) + (func $"~lib/map/MapEntry#set:key" (param $this i32) (param $key i32) + local.get $this + local.get $key + i32.store16 + ) + (func $"~lib/map/MapEntry#get:value" (param $this i32) (result i32) + local.get $this + i32.load16_s offset=2 + ) + (func $"~lib/map/MapEntry#set:value" (param $this i32) (param $value i32) + local.get $this + local.get $value + i32.store16 offset=2 + ) + (func $"~lib/map/MapEntry#set:taggedNext" (param $this i32) (param $taggedNext i32) + local.get $this + local.get $taggedNext + i32.store offset=4 + ) (func $"~lib/map/Map#set:buckets" (param $this i32) (param $buckets i32) local.get $this local.get $buckets @@ -3346,11 +3572,6 @@ i32.const 0 call $~lib/rt/itcms/__link ) - (func $"~lib/map/Map#set:bucketsMask" (param $this i32) (param $bucketsMask i32) - local.get $this - local.get $bucketsMask - i32.store offset=4 - ) (func $"~lib/map/Map#set:entries" (param $this i32) (param $entries i32) local.get $this local.get $entries @@ -3365,104 +3586,97 @@ local.get $entriesCapacity i32.store offset=12 ) + (func $"~lib/map/Map#get:entriesCount" (param $this i32) (result i32) + local.get $this + i32.load offset=20 + ) (func $"~lib/map/Map#set:entriesOffset" (param $this i32) (param $entriesOffset i32) local.get $this local.get $entriesOffset i32.store offset=16 ) - (func $"~lib/map/Map#set:entriesCount" (param $this i32) (param $entriesCount i32) - local.get $this - local.get $entriesCount - i32.store offset=20 - ) - (func $"~lib/map/Map#get:buckets" (param $this i32) (result i32) - local.get $this - i32.load - ) - (func $"~lib/map/Map#get:bucketsMask" (param $this i32) (result i32) + (func $"~lib/array/Array<~lib/map/KeyValue>#get:dataStart" (param $this i32) (result i32) local.get $this i32.load offset=4 ) - (func $"~lib/map/MapEntry#get:taggedNext" (param $this i32) (result i32) + (func $"~lib/map/KeyValue#get:key" (param $this i32) (result i32) local.get $this - i32.load offset=4 + i32.load16_s ) - (func $"~lib/map/MapEntry#get:key" (param $this i32) (result i32) + (func $"~lib/map/KeyValue#get:value" (param $this i32) (result i32) local.get $this - i32.load16_s + i32.load16_s offset=2 ) - (func $"~lib/map/MapEntry#set:value" (param $this i32) (param $value i32) + (func $"~lib/map/Map#get:buckets" (param $this i32) (result i32) local.get $this - local.get $value - i32.store16 offset=2 + i32.load ) - (func $"~lib/map/Map#get:entriesOffset" (param $this i32) (result i32) + (func $"~lib/map/Map#set:entriesCount" (param $this i32) (param $entriesCount i32) local.get $this - i32.load offset=16 + local.get $entriesCount + i32.store offset=20 ) - (func $"~lib/map/Map#get:entriesCapacity" (param $this i32) (result i32) + (func $"~lib/map/KeyValue#set:key" (param $this i32) (param $key i32) local.get $this - i32.load offset=12 + local.get $key + i32.store16 ) - (func $"~lib/map/Map#get:entriesCount" (param $this i32) (result i32) + (func $"~lib/map/KeyValue#set:value" (param $this i32) (param $value i32) local.get $this - i32.load offset=20 + local.get $value + i32.store offset=4 ) - (func $"~lib/map/Map#get:entries" (param $this i32) (result i32) + (func $"~lib/array/Array<~lib/map/KeyValue>#set:length_" (param $this i32) (param $length_ i32) local.get $this - i32.load offset=8 + local.get $length_ + i32.store offset=12 ) - (func $"~lib/map/MapEntry#set:key" (param $this i32) (param $key i32) + (func $"~lib/array/Array<~lib/map/KeyValue>#get:length_" (param $this i32) (result i32) local.get $this - local.get $key - i32.store16 + i32.load offset=12 ) - (func $"~lib/map/MapEntry#get:value" (param $this i32) (result i32) + (func $"~lib/map/Map#get:entriesCapacity" (param $this i32) (result i32) local.get $this - i32.load16_s offset=2 + i32.load offset=12 ) - (func $"~lib/map/MapEntry#set:taggedNext" (param $this i32) (param $taggedNext i32) + (func $"~lib/map/Map#set:bucketsMask" (param $this i32) (param $bucketsMask i32) local.get $this - local.get $taggedNext + local.get $bucketsMask i32.store offset=4 ) - (func $"~lib/map/Map#set:buckets" (param $this i32) (param $buckets i32) + (func $"~lib/map/Map#get:bucketsMask" (param $this i32) (result i32) local.get $this - local.get $buckets - i32.store + i32.load offset=4 + ) + (func $"~lib/map/Map#get:entries" (param $this i32) (result i32) local.get $this - local.get $buckets - i32.const 0 - call $~lib/rt/itcms/__link + i32.load offset=8 ) - (func $"~lib/map/Map#set:bucketsMask" (param $this i32) (param $bucketsMask i32) + (func $"~lib/map/Map#get:entriesOffset" (param $this i32) (result i32) local.get $this - local.get $bucketsMask - i32.store offset=4 + i32.load offset=16 ) - (func $"~lib/map/Map#set:entries" (param $this i32) (param $entries i32) + (func $"~lib/map/MapEntry#get:taggedNext" (param $this i32) (result i32) local.get $this - local.get $entries - i32.store offset=8 + i32.load offset=8 + ) + (func $"~lib/map/MapEntry#get:key" (param $this i32) (result i32) local.get $this - local.get $entries - i32.const 0 - call $~lib/rt/itcms/__link + i32.load16_u ) - (func $"~lib/map/Map#set:entriesCapacity" (param $this i32) (param $entriesCapacity i32) + (func $"~lib/map/MapEntry#set:key" (param $this i32) (param $key i32) local.get $this - local.get $entriesCapacity - i32.store offset=12 + local.get $key + i32.store16 ) - (func $"~lib/map/Map#set:entriesOffset" (param $this i32) (param $entriesOffset i32) + (func $"~lib/map/MapEntry#get:value" (param $this i32) (result i32) local.get $this - local.get $entriesOffset - i32.store offset=16 + i32.load offset=4 ) - (func $"~lib/map/Map#set:entriesCount" (param $this i32) (param $entriesCount i32) + (func $"~lib/map/MapEntry#set:value" (param $this i32) (param $value i32) local.get $this - local.get $entriesCount - i32.store offset=20 + local.get $value + i32.store offset=4 ) (func $~lib/util/hash/HASH (param $key i32) (result i32) (local $key|1 i32) @@ -3534,56 +3748,63 @@ end return ) - (func $"~lib/map/Map#get:buckets" (param $this i32) (result i32) - local.get $this - i32.load - ) - (func $"~lib/map/Map#get:bucketsMask" (param $this i32) (result i32) + (func $"~lib/map/MapEntry#set:taggedNext" (param $this i32) (param $taggedNext i32) local.get $this - i32.load offset=4 + local.get $taggedNext + i32.store offset=8 ) - (func $"~lib/map/MapEntry#get:taggedNext" (param $this i32) (result i32) + (func $"~lib/map/Map#set:buckets" (param $this i32) (param $buckets i32) local.get $this - i32.load offset=8 - ) - (func $"~lib/map/MapEntry#get:key" (param $this i32) (result i32) + local.get $buckets + i32.store local.get $this - i32.load16_u + local.get $buckets + i32.const 0 + call $~lib/rt/itcms/__link ) - (func $"~lib/map/MapEntry#set:value" (param $this i32) (param $value i32) + (func $"~lib/map/Map#set:entries" (param $this i32) (param $entries i32) local.get $this - local.get $value - i32.store offset=4 - ) - (func $"~lib/map/Map#get:entriesOffset" (param $this i32) (result i32) + local.get $entries + i32.store offset=8 local.get $this - i32.load offset=16 + local.get $entries + i32.const 0 + call $~lib/rt/itcms/__link ) - (func $"~lib/map/Map#get:entriesCapacity" (param $this i32) (result i32) + (func $"~lib/map/Map#set:entriesCapacity" (param $this i32) (param $entriesCapacity i32) local.get $this - i32.load offset=12 + local.get $entriesCapacity + i32.store offset=12 ) (func $"~lib/map/Map#get:entriesCount" (param $this i32) (result i32) local.get $this i32.load offset=20 ) - (func $"~lib/map/Map#get:entries" (param $this i32) (result i32) + (func $"~lib/map/Map#set:entriesOffset" (param $this i32) (param $entriesOffset i32) local.get $this - i32.load offset=8 + local.get $entriesOffset + i32.store offset=16 ) - (func $"~lib/map/MapEntry#set:key" (param $this i32) (param $key i32) + (func $"~lib/array/Array<~lib/map/KeyValue>#get:dataStart" (param $this i32) (result i32) local.get $this - local.get $key - i32.store16 + i32.load offset=4 ) - (func $"~lib/map/MapEntry#get:value" (param $this i32) (result i32) + (func $"~lib/map/KeyValue#get:key" (param $this i32) (result i32) + local.get $this + i32.load16_u + ) + (func $"~lib/map/KeyValue#get:value" (param $this i32) (result i32) local.get $this i32.load offset=4 ) - (func $"~lib/map/MapEntry#set:taggedNext" (param $this i32) (param $taggedNext i32) + (func $"~lib/map/Map#get:buckets" (param $this i32) (result i32) local.get $this - local.get $taggedNext - i32.store offset=8 + i32.load + ) + (func $"~lib/map/Map#set:entriesCount" (param $this i32) (param $entriesCount i32) + local.get $this + local.get $entriesCount + i32.store offset=20 ) (func $~lib/array/Array#set:buffer (param $this i32) (param $buffer i32) local.get $this @@ -3617,6 +3838,58 @@ local.get $this i32.load offset=4 ) + (func $"~lib/array/Array<~lib/map/KeyValue>#get:length_" (param $this i32) (result i32) + local.get $this + i32.load offset=12 + ) + (func $"~lib/map/Map#get:entriesCapacity" (param $this i32) (result i32) + local.get $this + i32.load offset=12 + ) + (func $"~lib/map/Map#set:bucketsMask" (param $this i32) (param $bucketsMask i32) + local.get $this + local.get $bucketsMask + i32.store offset=4 + ) + (func $"~lib/map/Map#get:bucketsMask" (param $this i32) (result i32) + local.get $this + i32.load offset=4 + ) + (func $"~lib/map/Map#get:entries" (param $this i32) (result i32) + local.get $this + i32.load offset=8 + ) + (func $"~lib/map/Map#get:entriesOffset" (param $this i32) (result i32) + local.get $this + i32.load offset=16 + ) + (func $"~lib/map/MapEntry#get:taggedNext" (param $this i32) (result i32) + local.get $this + i32.load offset=4 + ) + (func $"~lib/map/MapEntry#get:key" (param $this i32) (result i32) + local.get $this + i32.load16_u + ) + (func $"~lib/map/MapEntry#set:key" (param $this i32) (param $key i32) + local.get $this + local.get $key + i32.store16 + ) + (func $"~lib/map/MapEntry#get:value" (param $this i32) (result i32) + local.get $this + i32.load16_u offset=2 + ) + (func $"~lib/map/MapEntry#set:value" (param $this i32) (param $value i32) + local.get $this + local.get $value + i32.store16 offset=2 + ) + (func $"~lib/map/MapEntry#set:taggedNext" (param $this i32) (param $taggedNext i32) + local.get $this + local.get $taggedNext + i32.store offset=4 + ) (func $"~lib/map/Map#set:buckets" (param $this i32) (param $buckets i32) local.get $this local.get $buckets @@ -3626,11 +3899,6 @@ i32.const 0 call $~lib/rt/itcms/__link ) - (func $"~lib/map/Map#set:bucketsMask" (param $this i32) (param $bucketsMask i32) - local.get $this - local.get $bucketsMask - i32.store offset=4 - ) (func $"~lib/map/Map#set:entries" (param $this i32) (param $entries i32) local.get $this local.get $entries @@ -3645,104 +3913,112 @@ local.get $entriesCapacity i32.store offset=12 ) + (func $"~lib/map/Map#get:entriesCount" (param $this i32) (result i32) + local.get $this + i32.load offset=20 + ) (func $"~lib/map/Map#set:entriesOffset" (param $this i32) (param $entriesOffset i32) local.get $this local.get $entriesOffset i32.store offset=16 ) - (func $"~lib/map/Map#set:entriesCount" (param $this i32) (param $entriesCount i32) + (func $"~lib/array/Array<~lib/map/KeyValue>#get:dataStart" (param $this i32) (result i32) local.get $this - local.get $entriesCount - i32.store offset=20 + i32.load offset=4 ) - (func $"~lib/map/Map#get:buckets" (param $this i32) (result i32) + (func $"~lib/map/KeyValue#get:key" (param $this i32) (result i32) local.get $this - i32.load + i32.load16_u ) - (func $"~lib/map/Map#get:bucketsMask" (param $this i32) (result i32) + (func $"~lib/map/KeyValue#get:value" (param $this i32) (result i32) local.get $this - i32.load offset=4 + i32.load16_u offset=2 ) - (func $"~lib/map/MapEntry#get:taggedNext" (param $this i32) (result i32) + (func $"~lib/map/Map#get:buckets" (param $this i32) (result i32) local.get $this - i32.load offset=4 + i32.load ) - (func $"~lib/map/MapEntry#get:key" (param $this i32) (result i32) + (func $"~lib/map/Map#set:entriesCount" (param $this i32) (param $entriesCount i32) local.get $this - i32.load16_u + local.get $entriesCount + i32.store offset=20 ) - (func $"~lib/map/MapEntry#set:value" (param $this i32) (param $value i32) + (func $"~lib/map/KeyValue#set:key" (param $this i32) (param $key i32) + local.get $this + local.get $key + i32.store16 + ) + (func $"~lib/map/KeyValue#set:value" (param $this i32) (param $value i32) local.get $this local.get $value - i32.store16 offset=2 + i32.store offset=4 ) - (func $"~lib/map/Map#get:entriesOffset" (param $this i32) (result i32) + (func $"~lib/array/Array<~lib/map/KeyValue>#set:length_" (param $this i32) (param $length_ i32) local.get $this - i32.load offset=16 + local.get $length_ + i32.store offset=12 ) - (func $"~lib/map/Map#get:entriesCapacity" (param $this i32) (result i32) + (func $"~lib/map/KeyValue#set:key" (param $this i32) (param $key i32) local.get $this - i32.load offset=12 + local.get $key + i32.store ) - (func $"~lib/map/Map#get:entriesCount" (param $this i32) (result i32) + (func $"~lib/map/KeyValue#set:value" (param $this i32) (param $value i32) local.get $this - i32.load offset=20 + local.get $value + i32.store offset=4 ) - (func $"~lib/map/Map#get:entries" (param $this i32) (result i32) + (func $"~lib/array/Array<~lib/map/KeyValue>#set:length_" (param $this i32) (param $length_ i32) local.get $this - i32.load offset=8 + local.get $length_ + i32.store offset=12 ) - (func $"~lib/map/MapEntry#set:key" (param $this i32) (param $key i32) + (func $"~lib/array/Array<~lib/map/KeyValue>#get:length_" (param $this i32) (result i32) local.get $this - local.get $key - i32.store16 + i32.load offset=12 ) - (func $"~lib/map/MapEntry#get:value" (param $this i32) (result i32) + (func $"~lib/map/Map#get:entriesCapacity" (param $this i32) (result i32) local.get $this - i32.load16_u offset=2 + i32.load offset=12 ) - (func $"~lib/map/MapEntry#set:taggedNext" (param $this i32) (param $taggedNext i32) + (func $"~lib/map/Map#set:bucketsMask" (param $this i32) (param $bucketsMask i32) local.get $this - local.get $taggedNext + local.get $bucketsMask i32.store offset=4 ) - (func $"~lib/map/Map#set:buckets" (param $this i32) (param $buckets i32) + (func $"~lib/map/Map#get:bucketsMask" (param $this i32) (result i32) local.get $this - local.get $buckets - i32.store + i32.load offset=4 + ) + (func $"~lib/map/Map#get:entries" (param $this i32) (result i32) local.get $this - local.get $buckets - i32.const 0 - call $~lib/rt/itcms/__link + i32.load offset=8 ) - (func $"~lib/map/Map#set:bucketsMask" (param $this i32) (param $bucketsMask i32) + (func $"~lib/map/Map#get:entriesOffset" (param $this i32) (result i32) local.get $this - local.get $bucketsMask - i32.store offset=4 + i32.load offset=16 ) - (func $"~lib/map/Map#set:entries" (param $this i32) (param $entries i32) + (func $"~lib/map/MapEntry#get:taggedNext" (param $this i32) (result i32) local.get $this - local.get $entries - i32.store offset=8 + i32.load offset=8 + ) + (func $"~lib/map/MapEntry#get:key" (param $this i32) (result i32) local.get $this - local.get $entries - i32.const 0 - call $~lib/rt/itcms/__link + i32.load ) - (func $"~lib/map/Map#set:entriesCapacity" (param $this i32) (param $entriesCapacity i32) + (func $"~lib/map/MapEntry#set:key" (param $this i32) (param $key i32) local.get $this - local.get $entriesCapacity - i32.store offset=12 + local.get $key + i32.store ) - (func $"~lib/map/Map#set:entriesOffset" (param $this i32) (param $entriesOffset i32) + (func $"~lib/map/MapEntry#get:value" (param $this i32) (result i32) local.get $this - local.get $entriesOffset - i32.store offset=16 + i32.load offset=4 ) - (func $"~lib/map/Map#set:entriesCount" (param $this i32) (param $entriesCount i32) + (func $"~lib/map/MapEntry#set:value" (param $this i32) (param $value i32) local.get $this - local.get $entriesCount - i32.store offset=20 + local.get $value + i32.store offset=4 ) (func $~lib/util/hash/HASH (param $key i32) (result i32) (local $key|1 i32) @@ -3812,56 +4088,63 @@ end return ) - (func $"~lib/map/Map#get:buckets" (param $this i32) (result i32) - local.get $this - i32.load - ) - (func $"~lib/map/Map#get:bucketsMask" (param $this i32) (result i32) + (func $"~lib/map/MapEntry#set:taggedNext" (param $this i32) (param $taggedNext i32) local.get $this - i32.load offset=4 + local.get $taggedNext + i32.store offset=8 ) - (func $"~lib/map/MapEntry#get:taggedNext" (param $this i32) (result i32) + (func $"~lib/map/Map#set:buckets" (param $this i32) (param $buckets i32) local.get $this - i32.load offset=8 - ) - (func $"~lib/map/MapEntry#get:key" (param $this i32) (result i32) + local.get $buckets + i32.store local.get $this - i32.load + local.get $buckets + i32.const 0 + call $~lib/rt/itcms/__link ) - (func $"~lib/map/MapEntry#set:value" (param $this i32) (param $value i32) + (func $"~lib/map/Map#set:entries" (param $this i32) (param $entries i32) local.get $this - local.get $value - i32.store offset=4 - ) - (func $"~lib/map/Map#get:entriesOffset" (param $this i32) (result i32) + local.get $entries + i32.store offset=8 local.get $this - i32.load offset=16 + local.get $entries + i32.const 0 + call $~lib/rt/itcms/__link ) - (func $"~lib/map/Map#get:entriesCapacity" (param $this i32) (result i32) + (func $"~lib/map/Map#set:entriesCapacity" (param $this i32) (param $entriesCapacity i32) local.get $this - i32.load offset=12 + local.get $entriesCapacity + i32.store offset=12 ) (func $"~lib/map/Map#get:entriesCount" (param $this i32) (result i32) local.get $this i32.load offset=20 ) - (func $"~lib/map/Map#get:entries" (param $this i32) (result i32) + (func $"~lib/map/Map#set:entriesOffset" (param $this i32) (param $entriesOffset i32) local.get $this - i32.load offset=8 + local.get $entriesOffset + i32.store offset=16 ) - (func $"~lib/map/MapEntry#set:key" (param $this i32) (param $key i32) + (func $"~lib/array/Array<~lib/map/KeyValue>#get:dataStart" (param $this i32) (result i32) local.get $this - local.get $key - i32.store + i32.load offset=4 ) - (func $"~lib/map/MapEntry#get:value" (param $this i32) (result i32) + (func $"~lib/map/KeyValue#get:key" (param $this i32) (result i32) + local.get $this + i32.load + ) + (func $"~lib/map/KeyValue#get:value" (param $this i32) (result i32) local.get $this i32.load offset=4 ) - (func $"~lib/map/MapEntry#set:taggedNext" (param $this i32) (param $taggedNext i32) + (func $"~lib/map/Map#get:buckets" (param $this i32) (result i32) local.get $this - local.get $taggedNext - i32.store offset=8 + i32.load + ) + (func $"~lib/map/Map#set:entriesCount" (param $this i32) (param $entriesCount i32) + local.get $this + local.get $entriesCount + i32.store offset=20 ) (func $~lib/array/Array#set:buffer (param $this i32) (param $buffer i32) local.get $this @@ -3895,80 +4178,38 @@ local.get $this i32.load offset=4 ) - (func $"~lib/map/Map#set:buckets" (param $this i32) (param $buckets i32) + (func $"~lib/array/Array<~lib/map/KeyValue>#get:length_" (param $this i32) (result i32) local.get $this - local.get $buckets - i32.store + i32.load offset=12 + ) + (func $"~lib/map/Map#get:entriesCapacity" (param $this i32) (result i32) local.get $this - local.get $buckets - i32.const 0 - call $~lib/rt/itcms/__link + i32.load offset=12 ) (func $"~lib/map/Map#set:bucketsMask" (param $this i32) (param $bucketsMask i32) local.get $this local.get $bucketsMask i32.store offset=4 ) - (func $"~lib/map/Map#set:entries" (param $this i32) (param $entries i32) - local.get $this - local.get $entries - i32.store offset=8 - local.get $this - local.get $entries - i32.const 0 - call $~lib/rt/itcms/__link - ) - (func $"~lib/map/Map#set:entriesCapacity" (param $this i32) (param $entriesCapacity i32) - local.get $this - local.get $entriesCapacity - i32.store offset=12 - ) - (func $"~lib/map/Map#set:entriesOffset" (param $this i32) (param $entriesOffset i32) - local.get $this - local.get $entriesOffset - i32.store offset=16 - ) - (func $"~lib/map/Map#set:entriesCount" (param $this i32) (param $entriesCount i32) - local.get $this - local.get $entriesCount - i32.store offset=20 - ) - (func $"~lib/map/Map#get:buckets" (param $this i32) (result i32) - local.get $this - i32.load - ) (func $"~lib/map/Map#get:bucketsMask" (param $this i32) (result i32) local.get $this i32.load offset=4 ) - (func $"~lib/map/MapEntry#get:taggedNext" (param $this i32) (result i32) + (func $"~lib/map/Map#get:entries" (param $this i32) (result i32) local.get $this i32.load offset=8 ) - (func $"~lib/map/MapEntry#get:key" (param $this i32) (result i32) - local.get $this - i32.load - ) - (func $"~lib/map/MapEntry#set:value" (param $this i32) (param $value i32) - local.get $this - local.get $value - i32.store offset=4 - ) (func $"~lib/map/Map#get:entriesOffset" (param $this i32) (result i32) local.get $this i32.load offset=16 ) - (func $"~lib/map/Map#get:entriesCapacity" (param $this i32) (result i32) - local.get $this - i32.load offset=12 - ) - (func $"~lib/map/Map#get:entriesCount" (param $this i32) (result i32) + (func $"~lib/map/MapEntry#get:taggedNext" (param $this i32) (result i32) local.get $this - i32.load offset=20 + i32.load offset=8 ) - (func $"~lib/map/Map#get:entries" (param $this i32) (result i32) + (func $"~lib/map/MapEntry#get:key" (param $this i32) (result i32) local.get $this - i32.load offset=8 + i32.load ) (func $"~lib/map/MapEntry#set:key" (param $this i32) (param $key i32) local.get $this @@ -3979,12 +4220,17 @@ local.get $this i32.load offset=4 ) + (func $"~lib/map/MapEntry#set:value" (param $this i32) (param $value i32) + local.get $this + local.get $value + i32.store offset=4 + ) (func $"~lib/map/MapEntry#set:taggedNext" (param $this i32) (param $taggedNext i32) local.get $this local.get $taggedNext i32.store offset=8 ) - (func $"~lib/map/Map#set:buckets" (param $this i32) (param $buckets i32) + (func $"~lib/map/Map#set:buckets" (param $this i32) (param $buckets i32) local.get $this local.get $buckets i32.store @@ -3993,12 +4239,7 @@ i32.const 0 call $~lib/rt/itcms/__link ) - (func $"~lib/map/Map#set:bucketsMask" (param $this i32) (param $bucketsMask i32) - local.get $this - local.get $bucketsMask - i32.store offset=4 - ) - (func $"~lib/map/Map#set:entries" (param $this i32) (param $entries i32) + (func $"~lib/map/Map#set:entries" (param $this i32) (param $entries i32) local.get $this local.get $entries i32.store offset=8 @@ -4007,21 +4248,103 @@ i32.const 0 call $~lib/rt/itcms/__link ) - (func $"~lib/map/Map#set:entriesCapacity" (param $this i32) (param $entriesCapacity i32) + (func $"~lib/map/Map#set:entriesCapacity" (param $this i32) (param $entriesCapacity i32) local.get $this local.get $entriesCapacity i32.store offset=12 ) - (func $"~lib/map/Map#set:entriesOffset" (param $this i32) (param $entriesOffset i32) + (func $"~lib/map/Map#get:entriesCount" (param $this i32) (result i32) + local.get $this + i32.load offset=20 + ) + (func $"~lib/map/Map#set:entriesOffset" (param $this i32) (param $entriesOffset i32) local.get $this local.get $entriesOffset i32.store offset=16 ) - (func $"~lib/map/Map#set:entriesCount" (param $this i32) (param $entriesCount i32) + (func $"~lib/array/Array<~lib/map/KeyValue>#get:dataStart" (param $this i32) (result i32) + local.get $this + i32.load offset=4 + ) + (func $"~lib/map/KeyValue#get:key" (param $this i32) (result i32) + local.get $this + i32.load + ) + (func $"~lib/map/KeyValue#get:value" (param $this i32) (result i32) + local.get $this + i32.load offset=4 + ) + (func $"~lib/map/Map#get:buckets" (param $this i32) (result i32) + local.get $this + i32.load + ) + (func $"~lib/map/Map#set:entriesCount" (param $this i32) (param $entriesCount i32) local.get $this local.get $entriesCount i32.store offset=20 ) + (func $"~lib/map/KeyValue#set:key" (param $this i32) (param $key i32) + local.get $this + local.get $key + i32.store + ) + (func $"~lib/map/KeyValue#set:value" (param $this i32) (param $value i32) + local.get $this + local.get $value + i32.store offset=4 + ) + (func $"~lib/array/Array<~lib/map/KeyValue>#set:length_" (param $this i32) (param $length_ i32) + local.get $this + local.get $length_ + i32.store offset=12 + ) + (func $"~lib/array/Array<~lib/map/KeyValue>#get:length_" (param $this i32) (result i32) + local.get $this + i32.load offset=12 + ) + (func $"~lib/map/Map#get:entriesCapacity" (param $this i32) (result i32) + local.get $this + i32.load offset=12 + ) + (func $"~lib/map/Map#set:bucketsMask" (param $this i32) (param $bucketsMask i32) + local.get $this + local.get $bucketsMask + i32.store offset=4 + ) + (func $"~lib/map/Map#get:bucketsMask" (param $this i32) (result i32) + local.get $this + i32.load offset=4 + ) + (func $"~lib/map/Map#get:entries" (param $this i32) (result i32) + local.get $this + i32.load offset=8 + ) + (func $"~lib/map/Map#get:entriesOffset" (param $this i32) (result i32) + local.get $this + i32.load offset=16 + ) + (func $"~lib/map/MapEntry#get:taggedNext" (param $this i32) (result i32) + local.get $this + i32.load offset=12 + ) + (func $"~lib/map/MapEntry#get:key" (param $this i32) (result i64) + local.get $this + i64.load + ) + (func $"~lib/map/MapEntry#set:key" (param $this i32) (param $key i64) + local.get $this + local.get $key + i64.store + ) + (func $"~lib/map/MapEntry#get:value" (param $this i32) (result i32) + local.get $this + i32.load offset=8 + ) + (func $"~lib/map/MapEntry#set:value" (param $this i32) (param $value i32) + local.get $this + local.get $value + i32.store offset=8 + ) (func $~lib/util/hash/HASH (param $key i64) (result i32) (local $key|1 i64) (local $h i32) @@ -4107,56 +4430,63 @@ end return ) - (func $"~lib/map/Map#get:buckets" (param $this i32) (result i32) - local.get $this - i32.load - ) - (func $"~lib/map/Map#get:bucketsMask" (param $this i32) (result i32) + (func $"~lib/map/MapEntry#set:taggedNext" (param $this i32) (param $taggedNext i32) local.get $this - i32.load offset=4 + local.get $taggedNext + i32.store offset=12 ) - (func $"~lib/map/MapEntry#get:taggedNext" (param $this i32) (result i32) + (func $"~lib/map/Map#set:buckets" (param $this i32) (param $buckets i32) local.get $this - i32.load offset=12 - ) - (func $"~lib/map/MapEntry#get:key" (param $this i32) (result i64) + local.get $buckets + i32.store local.get $this - i64.load + local.get $buckets + i32.const 0 + call $~lib/rt/itcms/__link ) - (func $"~lib/map/MapEntry#set:value" (param $this i32) (param $value i32) + (func $"~lib/map/Map#set:entries" (param $this i32) (param $entries i32) local.get $this - local.get $value + local.get $entries i32.store offset=8 - ) - (func $"~lib/map/Map#get:entriesOffset" (param $this i32) (result i32) local.get $this - i32.load offset=16 + local.get $entries + i32.const 0 + call $~lib/rt/itcms/__link ) - (func $"~lib/map/Map#get:entriesCapacity" (param $this i32) (result i32) + (func $"~lib/map/Map#set:entriesCapacity" (param $this i32) (param $entriesCapacity i32) local.get $this - i32.load offset=12 + local.get $entriesCapacity + i32.store offset=12 ) (func $"~lib/map/Map#get:entriesCount" (param $this i32) (result i32) local.get $this i32.load offset=20 ) - (func $"~lib/map/Map#get:entries" (param $this i32) (result i32) + (func $"~lib/map/Map#set:entriesOffset" (param $this i32) (param $entriesOffset i32) local.get $this - i32.load offset=8 + local.get $entriesOffset + i32.store offset=16 ) - (func $"~lib/map/MapEntry#set:key" (param $this i32) (param $key i64) + (func $"~lib/array/Array<~lib/map/KeyValue>#get:dataStart" (param $this i32) (result i32) local.get $this - local.get $key - i64.store + i32.load offset=4 ) - (func $"~lib/map/MapEntry#get:value" (param $this i32) (result i32) + (func $"~lib/map/KeyValue#get:key" (param $this i32) (result i64) + local.get $this + i64.load + ) + (func $"~lib/map/KeyValue#get:value" (param $this i32) (result i32) local.get $this i32.load offset=8 ) - (func $"~lib/map/MapEntry#set:taggedNext" (param $this i32) (param $taggedNext i32) + (func $"~lib/map/Map#get:buckets" (param $this i32) (result i32) local.get $this - local.get $taggedNext - i32.store offset=12 + i32.load + ) + (func $"~lib/map/Map#set:entriesCount" (param $this i32) (param $entriesCount i32) + local.get $this + local.get $entriesCount + i32.store offset=20 ) (func $~lib/array/Array#set:buffer (param $this i32) (param $buffer i32) local.get $this @@ -4190,6 +4520,58 @@ local.get $this i32.load offset=4 ) + (func $"~lib/array/Array<~lib/map/KeyValue>#get:length_" (param $this i32) (result i32) + local.get $this + i32.load offset=12 + ) + (func $"~lib/map/Map#get:entriesCapacity" (param $this i32) (result i32) + local.get $this + i32.load offset=12 + ) + (func $"~lib/map/Map#set:bucketsMask" (param $this i32) (param $bucketsMask i32) + local.get $this + local.get $bucketsMask + i32.store offset=4 + ) + (func $"~lib/map/Map#get:bucketsMask" (param $this i32) (result i32) + local.get $this + i32.load offset=4 + ) + (func $"~lib/map/Map#get:entries" (param $this i32) (result i32) + local.get $this + i32.load offset=8 + ) + (func $"~lib/map/Map#get:entriesOffset" (param $this i32) (result i32) + local.get $this + i32.load offset=16 + ) + (func $"~lib/map/MapEntry#get:taggedNext" (param $this i32) (result i32) + local.get $this + i32.load offset=16 + ) + (func $"~lib/map/MapEntry#get:key" (param $this i32) (result i64) + local.get $this + i64.load + ) + (func $"~lib/map/MapEntry#set:key" (param $this i32) (param $key i64) + local.get $this + local.get $key + i64.store + ) + (func $"~lib/map/MapEntry#get:value" (param $this i32) (result i64) + local.get $this + i64.load offset=8 + ) + (func $"~lib/map/MapEntry#set:value" (param $this i32) (param $value i64) + local.get $this + local.get $value + i64.store offset=8 + ) + (func $"~lib/map/MapEntry#set:taggedNext" (param $this i32) (param $taggedNext i32) + local.get $this + local.get $taggedNext + i32.store offset=16 + ) (func $"~lib/map/Map#set:buckets" (param $this i32) (param $buckets i32) local.get $this local.get $buckets @@ -4199,11 +4581,6 @@ i32.const 0 call $~lib/rt/itcms/__link ) - (func $"~lib/map/Map#set:bucketsMask" (param $this i32) (param $bucketsMask i32) - local.get $this - local.get $bucketsMask - i32.store offset=4 - ) (func $"~lib/map/Map#set:entries" (param $this i32) (param $entries i32) local.get $this local.get $entries @@ -4218,104 +4595,97 @@ local.get $entriesCapacity i32.store offset=12 ) + (func $"~lib/map/Map#get:entriesCount" (param $this i32) (result i32) + local.get $this + i32.load offset=20 + ) (func $"~lib/map/Map#set:entriesOffset" (param $this i32) (param $entriesOffset i32) local.get $this local.get $entriesOffset i32.store offset=16 ) - (func $"~lib/map/Map#set:entriesCount" (param $this i32) (param $entriesCount i32) + (func $"~lib/array/Array<~lib/map/KeyValue>#get:dataStart" (param $this i32) (result i32) local.get $this - local.get $entriesCount - i32.store offset=20 + i32.load offset=4 ) - (func $"~lib/map/Map#get:buckets" (param $this i32) (result i32) + (func $"~lib/map/KeyValue#get:key" (param $this i32) (result i64) local.get $this - i32.load + i64.load ) - (func $"~lib/map/Map#get:bucketsMask" (param $this i32) (result i32) + (func $"~lib/map/KeyValue#get:value" (param $this i32) (result i64) local.get $this - i32.load offset=4 + i64.load offset=8 ) - (func $"~lib/map/MapEntry#get:taggedNext" (param $this i32) (result i32) + (func $"~lib/map/Map#get:buckets" (param $this i32) (result i32) local.get $this - i32.load offset=16 + i32.load ) - (func $"~lib/map/MapEntry#get:key" (param $this i32) (result i64) + (func $"~lib/map/Map#set:entriesCount" (param $this i32) (param $entriesCount i32) local.get $this - i64.load + local.get $entriesCount + i32.store offset=20 ) - (func $"~lib/map/MapEntry#set:value" (param $this i32) (param $value i64) + (func $"~lib/map/KeyValue#set:key" (param $this i32) (param $key i64) local.get $this - local.get $value - i64.store offset=8 + local.get $key + i64.store ) - (func $"~lib/map/Map#get:entriesOffset" (param $this i32) (result i32) + (func $"~lib/map/KeyValue#set:value" (param $this i32) (param $value i32) local.get $this - i32.load offset=16 + local.get $value + i32.store offset=8 ) - (func $"~lib/map/Map#get:entriesCapacity" (param $this i32) (result i32) + (func $"~lib/array/Array<~lib/map/KeyValue>#set:length_" (param $this i32) (param $length_ i32) local.get $this - i32.load offset=12 + local.get $length_ + i32.store offset=12 ) - (func $"~lib/map/Map#get:entriesCount" (param $this i32) (result i32) + (func $"~lib/array/Array<~lib/map/KeyValue>#get:length_" (param $this i32) (result i32) local.get $this - i32.load offset=20 + i32.load offset=12 ) - (func $"~lib/map/Map#get:entries" (param $this i32) (result i32) + (func $"~lib/map/Map#get:entriesCapacity" (param $this i32) (result i32) local.get $this - i32.load offset=8 + i32.load offset=12 ) - (func $"~lib/map/MapEntry#set:key" (param $this i32) (param $key i64) + (func $"~lib/map/Map#set:bucketsMask" (param $this i32) (param $bucketsMask i32) local.get $this - local.get $key - i64.store + local.get $bucketsMask + i32.store offset=4 ) - (func $"~lib/map/MapEntry#get:value" (param $this i32) (result i64) + (func $"~lib/map/Map#get:bucketsMask" (param $this i32) (result i32) local.get $this - i64.load offset=8 + i32.load offset=4 ) - (func $"~lib/map/MapEntry#set:taggedNext" (param $this i32) (param $taggedNext i32) + (func $"~lib/map/Map#get:entries" (param $this i32) (result i32) local.get $this - local.get $taggedNext - i32.store offset=16 + i32.load offset=8 ) - (func $"~lib/map/Map#set:buckets" (param $this i32) (param $buckets i32) - local.get $this - local.get $buckets - i32.store + (func $"~lib/map/Map#get:entriesOffset" (param $this i32) (result i32) local.get $this - local.get $buckets - i32.const 0 - call $~lib/rt/itcms/__link + i32.load offset=16 ) - (func $"~lib/map/Map#set:bucketsMask" (param $this i32) (param $bucketsMask i32) + (func $"~lib/map/MapEntry#get:taggedNext" (param $this i32) (result i32) local.get $this - local.get $bucketsMask - i32.store offset=4 + i32.load offset=12 ) - (func $"~lib/map/Map#set:entries" (param $this i32) (param $entries i32) - local.get $this - local.get $entries - i32.store offset=8 + (func $"~lib/map/MapEntry#get:key" (param $this i32) (result i64) local.get $this - local.get $entries - i32.const 0 - call $~lib/rt/itcms/__link + i64.load ) - (func $"~lib/map/Map#set:entriesCapacity" (param $this i32) (param $entriesCapacity i32) + (func $"~lib/map/MapEntry#set:key" (param $this i32) (param $key i64) local.get $this - local.get $entriesCapacity - i32.store offset=12 + local.get $key + i64.store ) - (func $"~lib/map/Map#set:entriesOffset" (param $this i32) (param $entriesOffset i32) + (func $"~lib/map/MapEntry#get:value" (param $this i32) (result i32) local.get $this - local.get $entriesOffset - i32.store offset=16 + i32.load offset=8 ) - (func $"~lib/map/Map#set:entriesCount" (param $this i32) (param $entriesCount i32) + (func $"~lib/map/MapEntry#set:value" (param $this i32) (param $value i32) local.get $this - local.get $entriesCount - i32.store offset=20 + local.get $value + i32.store offset=8 ) (func $~lib/util/hash/HASH (param $key i64) (result i32) (local $key|1 i64) @@ -4402,56 +4772,63 @@ end return ) - (func $"~lib/map/Map#get:buckets" (param $this i32) (result i32) - local.get $this - i32.load - ) - (func $"~lib/map/Map#get:bucketsMask" (param $this i32) (result i32) + (func $"~lib/map/MapEntry#set:taggedNext" (param $this i32) (param $taggedNext i32) local.get $this - i32.load offset=4 + local.get $taggedNext + i32.store offset=12 ) - (func $"~lib/map/MapEntry#get:taggedNext" (param $this i32) (result i32) + (func $"~lib/map/Map#set:buckets" (param $this i32) (param $buckets i32) local.get $this - i32.load offset=12 - ) - (func $"~lib/map/MapEntry#get:key" (param $this i32) (result i64) + local.get $buckets + i32.store local.get $this - i64.load + local.get $buckets + i32.const 0 + call $~lib/rt/itcms/__link ) - (func $"~lib/map/MapEntry#set:value" (param $this i32) (param $value i32) + (func $"~lib/map/Map#set:entries" (param $this i32) (param $entries i32) local.get $this - local.get $value + local.get $entries i32.store offset=8 - ) - (func $"~lib/map/Map#get:entriesOffset" (param $this i32) (result i32) local.get $this - i32.load offset=16 + local.get $entries + i32.const 0 + call $~lib/rt/itcms/__link ) - (func $"~lib/map/Map#get:entriesCapacity" (param $this i32) (result i32) + (func $"~lib/map/Map#set:entriesCapacity" (param $this i32) (param $entriesCapacity i32) local.get $this - i32.load offset=12 + local.get $entriesCapacity + i32.store offset=12 ) (func $"~lib/map/Map#get:entriesCount" (param $this i32) (result i32) local.get $this i32.load offset=20 ) - (func $"~lib/map/Map#get:entries" (param $this i32) (result i32) + (func $"~lib/map/Map#set:entriesOffset" (param $this i32) (param $entriesOffset i32) local.get $this - i32.load offset=8 + local.get $entriesOffset + i32.store offset=16 ) - (func $"~lib/map/MapEntry#set:key" (param $this i32) (param $key i64) + (func $"~lib/array/Array<~lib/map/KeyValue>#get:dataStart" (param $this i32) (result i32) local.get $this - local.get $key - i64.store + i32.load offset=4 ) - (func $"~lib/map/MapEntry#get:value" (param $this i32) (result i32) + (func $"~lib/map/KeyValue#get:key" (param $this i32) (result i64) + local.get $this + i64.load + ) + (func $"~lib/map/KeyValue#get:value" (param $this i32) (result i32) local.get $this i32.load offset=8 ) - (func $"~lib/map/MapEntry#set:taggedNext" (param $this i32) (param $taggedNext i32) + (func $"~lib/map/Map#get:buckets" (param $this i32) (result i32) local.get $this - local.get $taggedNext - i32.store offset=12 + i32.load + ) + (func $"~lib/map/Map#set:entriesCount" (param $this i32) (param $entriesCount i32) + local.get $this + local.get $entriesCount + i32.store offset=20 ) (func $~lib/array/Array#set:buffer (param $this i32) (param $buffer i32) local.get $this @@ -4485,6 +4862,58 @@ local.get $this i32.load offset=4 ) + (func $"~lib/array/Array<~lib/map/KeyValue>#get:length_" (param $this i32) (result i32) + local.get $this + i32.load offset=12 + ) + (func $"~lib/map/Map#get:entriesCapacity" (param $this i32) (result i32) + local.get $this + i32.load offset=12 + ) + (func $"~lib/map/Map#set:bucketsMask" (param $this i32) (param $bucketsMask i32) + local.get $this + local.get $bucketsMask + i32.store offset=4 + ) + (func $"~lib/map/Map#get:bucketsMask" (param $this i32) (result i32) + local.get $this + i32.load offset=4 + ) + (func $"~lib/map/Map#get:entries" (param $this i32) (result i32) + local.get $this + i32.load offset=8 + ) + (func $"~lib/map/Map#get:entriesOffset" (param $this i32) (result i32) + local.get $this + i32.load offset=16 + ) + (func $"~lib/map/MapEntry#get:taggedNext" (param $this i32) (result i32) + local.get $this + i32.load offset=16 + ) + (func $"~lib/map/MapEntry#get:key" (param $this i32) (result i64) + local.get $this + i64.load + ) + (func $"~lib/map/MapEntry#set:key" (param $this i32) (param $key i64) + local.get $this + local.get $key + i64.store + ) + (func $"~lib/map/MapEntry#get:value" (param $this i32) (result i64) + local.get $this + i64.load offset=8 + ) + (func $"~lib/map/MapEntry#set:value" (param $this i32) (param $value i64) + local.get $this + local.get $value + i64.store offset=8 + ) + (func $"~lib/map/MapEntry#set:taggedNext" (param $this i32) (param $taggedNext i32) + local.get $this + local.get $taggedNext + i32.store offset=16 + ) (func $"~lib/map/Map#set:buckets" (param $this i32) (param $buckets i32) local.get $this local.get $buckets @@ -4494,11 +4923,6 @@ i32.const 0 call $~lib/rt/itcms/__link ) - (func $"~lib/map/Map#set:bucketsMask" (param $this i32) (param $bucketsMask i32) - local.get $this - local.get $bucketsMask - i32.store offset=4 - ) (func $"~lib/map/Map#set:entries" (param $this i32) (param $entries i32) local.get $this local.get $entries @@ -4513,104 +4937,97 @@ local.get $entriesCapacity i32.store offset=12 ) + (func $"~lib/map/Map#get:entriesCount" (param $this i32) (result i32) + local.get $this + i32.load offset=20 + ) (func $"~lib/map/Map#set:entriesOffset" (param $this i32) (param $entriesOffset i32) local.get $this local.get $entriesOffset i32.store offset=16 ) - (func $"~lib/map/Map#set:entriesCount" (param $this i32) (param $entriesCount i32) + (func $"~lib/array/Array<~lib/map/KeyValue>#get:dataStart" (param $this i32) (result i32) local.get $this - local.get $entriesCount - i32.store offset=20 + i32.load offset=4 ) - (func $"~lib/map/Map#get:buckets" (param $this i32) (result i32) + (func $"~lib/map/KeyValue#get:key" (param $this i32) (result i64) local.get $this - i32.load + i64.load ) - (func $"~lib/map/Map#get:bucketsMask" (param $this i32) (result i32) + (func $"~lib/map/KeyValue#get:value" (param $this i32) (result i64) local.get $this - i32.load offset=4 + i64.load offset=8 ) - (func $"~lib/map/MapEntry#get:taggedNext" (param $this i32) (result i32) + (func $"~lib/map/Map#get:buckets" (param $this i32) (result i32) local.get $this - i32.load offset=16 + i32.load ) - (func $"~lib/map/MapEntry#get:key" (param $this i32) (result i64) + (func $"~lib/map/Map#set:entriesCount" (param $this i32) (param $entriesCount i32) local.get $this - i64.load + local.get $entriesCount + i32.store offset=20 ) - (func $"~lib/map/MapEntry#set:value" (param $this i32) (param $value i64) + (func $"~lib/map/KeyValue#set:key" (param $this i32) (param $key i64) local.get $this - local.get $value - i64.store offset=8 + local.get $key + i64.store ) - (func $"~lib/map/Map#get:entriesOffset" (param $this i32) (result i32) + (func $"~lib/map/KeyValue#set:value" (param $this i32) (param $value i32) local.get $this - i32.load offset=16 + local.get $value + i32.store offset=8 ) - (func $"~lib/map/Map#get:entriesCapacity" (param $this i32) (result i32) + (func $"~lib/array/Array<~lib/map/KeyValue>#set:length_" (param $this i32) (param $length_ i32) local.get $this - i32.load offset=12 + local.get $length_ + i32.store offset=12 ) - (func $"~lib/map/Map#get:entriesCount" (param $this i32) (result i32) + (func $"~lib/array/Array<~lib/map/KeyValue>#get:length_" (param $this i32) (result i32) local.get $this - i32.load offset=20 + i32.load offset=12 ) - (func $"~lib/map/Map#get:entries" (param $this i32) (result i32) + (func $"~lib/map/Map#get:entriesCapacity" (param $this i32) (result i32) local.get $this - i32.load offset=8 + i32.load offset=12 ) - (func $"~lib/map/MapEntry#set:key" (param $this i32) (param $key i64) + (func $"~lib/map/Map#set:bucketsMask" (param $this i32) (param $bucketsMask i32) local.get $this - local.get $key - i64.store + local.get $bucketsMask + i32.store offset=4 ) - (func $"~lib/map/MapEntry#get:value" (param $this i32) (result i64) + (func $"~lib/map/Map#get:bucketsMask" (param $this i32) (result i32) local.get $this - i64.load offset=8 + i32.load offset=4 ) - (func $"~lib/map/MapEntry#set:taggedNext" (param $this i32) (param $taggedNext i32) + (func $"~lib/map/Map#get:entries" (param $this i32) (result i32) local.get $this - local.get $taggedNext - i32.store offset=16 + i32.load offset=8 ) - (func $"~lib/map/Map#set:buckets" (param $this i32) (param $buckets i32) - local.get $this - local.get $buckets - i32.store + (func $"~lib/map/Map#get:entriesOffset" (param $this i32) (result i32) local.get $this - local.get $buckets - i32.const 0 - call $~lib/rt/itcms/__link + i32.load offset=16 ) - (func $"~lib/map/Map#set:bucketsMask" (param $this i32) (param $bucketsMask i32) + (func $"~lib/map/MapEntry#get:taggedNext" (param $this i32) (result i32) local.get $this - local.get $bucketsMask - i32.store offset=4 + i32.load offset=8 ) - (func $"~lib/map/Map#set:entries" (param $this i32) (param $entries i32) - local.get $this - local.get $entries - i32.store offset=8 + (func $"~lib/map/MapEntry#get:key" (param $this i32) (result f32) local.get $this - local.get $entries - i32.const 0 - call $~lib/rt/itcms/__link + f32.load ) - (func $"~lib/map/Map#set:entriesCapacity" (param $this i32) (param $entriesCapacity i32) + (func $"~lib/map/MapEntry#set:key" (param $this i32) (param $key f32) local.get $this - local.get $entriesCapacity - i32.store offset=12 + local.get $key + f32.store ) - (func $"~lib/map/Map#set:entriesOffset" (param $this i32) (param $entriesOffset i32) + (func $"~lib/map/MapEntry#get:value" (param $this i32) (result i32) local.get $this - local.get $entriesOffset - i32.store offset=16 + i32.load offset=4 ) - (func $"~lib/map/Map#set:entriesCount" (param $this i32) (param $entriesCount i32) + (func $"~lib/map/MapEntry#set:value" (param $this i32) (param $value i32) local.get $this - local.get $entriesCount - i32.store offset=20 + local.get $value + i32.store offset=4 ) (func $~lib/util/hash/HASH (param $key f32) (result i32) (local $key|1 i32) @@ -4681,56 +5098,63 @@ end return ) - (func $"~lib/map/Map#get:buckets" (param $this i32) (result i32) - local.get $this - i32.load - ) - (func $"~lib/map/Map#get:bucketsMask" (param $this i32) (result i32) + (func $"~lib/map/MapEntry#set:taggedNext" (param $this i32) (param $taggedNext i32) local.get $this - i32.load offset=4 + local.get $taggedNext + i32.store offset=8 ) - (func $"~lib/map/MapEntry#get:taggedNext" (param $this i32) (result i32) + (func $"~lib/map/Map#set:buckets" (param $this i32) (param $buckets i32) local.get $this - i32.load offset=8 - ) - (func $"~lib/map/MapEntry#get:key" (param $this i32) (result f32) + local.get $buckets + i32.store local.get $this - f32.load + local.get $buckets + i32.const 0 + call $~lib/rt/itcms/__link ) - (func $"~lib/map/MapEntry#set:value" (param $this i32) (param $value i32) + (func $"~lib/map/Map#set:entries" (param $this i32) (param $entries i32) local.get $this - local.get $value - i32.store offset=4 - ) - (func $"~lib/map/Map#get:entriesOffset" (param $this i32) (result i32) + local.get $entries + i32.store offset=8 local.get $this - i32.load offset=16 + local.get $entries + i32.const 0 + call $~lib/rt/itcms/__link ) - (func $"~lib/map/Map#get:entriesCapacity" (param $this i32) (result i32) + (func $"~lib/map/Map#set:entriesCapacity" (param $this i32) (param $entriesCapacity i32) local.get $this - i32.load offset=12 + local.get $entriesCapacity + i32.store offset=12 ) (func $"~lib/map/Map#get:entriesCount" (param $this i32) (result i32) local.get $this i32.load offset=20 ) - (func $"~lib/map/Map#get:entries" (param $this i32) (result i32) + (func $"~lib/map/Map#set:entriesOffset" (param $this i32) (param $entriesOffset i32) local.get $this - i32.load offset=8 + local.get $entriesOffset + i32.store offset=16 ) - (func $"~lib/map/MapEntry#set:key" (param $this i32) (param $key f32) + (func $"~lib/array/Array<~lib/map/KeyValue>#get:dataStart" (param $this i32) (result i32) local.get $this - local.get $key - f32.store + i32.load offset=4 ) - (func $"~lib/map/MapEntry#get:value" (param $this i32) (result i32) + (func $"~lib/map/KeyValue#get:key" (param $this i32) (result f32) + local.get $this + f32.load + ) + (func $"~lib/map/KeyValue#get:value" (param $this i32) (result i32) local.get $this i32.load offset=4 ) - (func $"~lib/map/MapEntry#set:taggedNext" (param $this i32) (param $taggedNext i32) + (func $"~lib/map/Map#get:buckets" (param $this i32) (result i32) local.get $this - local.get $taggedNext - i32.store offset=8 + i32.load + ) + (func $"~lib/map/Map#set:entriesCount" (param $this i32) (param $entriesCount i32) + local.get $this + local.get $entriesCount + i32.store offset=20 ) (func $~lib/array/Array#set:buffer (param $this i32) (param $buffer i32) local.get $this @@ -4764,6 +5188,58 @@ local.get $this i32.load offset=4 ) + (func $"~lib/array/Array<~lib/map/KeyValue>#get:length_" (param $this i32) (result i32) + local.get $this + i32.load offset=12 + ) + (func $"~lib/map/Map#get:entriesCapacity" (param $this i32) (result i32) + local.get $this + i32.load offset=12 + ) + (func $"~lib/map/Map#set:bucketsMask" (param $this i32) (param $bucketsMask i32) + local.get $this + local.get $bucketsMask + i32.store offset=4 + ) + (func $"~lib/map/Map#get:bucketsMask" (param $this i32) (result i32) + local.get $this + i32.load offset=4 + ) + (func $"~lib/map/Map#get:entries" (param $this i32) (result i32) + local.get $this + i32.load offset=8 + ) + (func $"~lib/map/Map#get:entriesOffset" (param $this i32) (result i32) + local.get $this + i32.load offset=16 + ) + (func $"~lib/map/MapEntry#get:taggedNext" (param $this i32) (result i32) + local.get $this + i32.load offset=8 + ) + (func $"~lib/map/MapEntry#get:key" (param $this i32) (result f32) + local.get $this + f32.load + ) + (func $"~lib/map/MapEntry#set:key" (param $this i32) (param $key f32) + local.get $this + local.get $key + f32.store + ) + (func $"~lib/map/MapEntry#get:value" (param $this i32) (result f32) + local.get $this + f32.load offset=4 + ) + (func $"~lib/map/MapEntry#set:value" (param $this i32) (param $value f32) + local.get $this + local.get $value + f32.store offset=4 + ) + (func $"~lib/map/MapEntry#set:taggedNext" (param $this i32) (param $taggedNext i32) + local.get $this + local.get $taggedNext + i32.store offset=8 + ) (func $"~lib/map/Map#set:buckets" (param $this i32) (param $buckets i32) local.get $this local.get $buckets @@ -4773,11 +5249,6 @@ i32.const 0 call $~lib/rt/itcms/__link ) - (func $"~lib/map/Map#set:bucketsMask" (param $this i32) (param $bucketsMask i32) - local.get $this - local.get $bucketsMask - i32.store offset=4 - ) (func $"~lib/map/Map#set:entries" (param $this i32) (param $entries i32) local.get $this local.get $entries @@ -4792,104 +5263,97 @@ local.get $entriesCapacity i32.store offset=12 ) + (func $"~lib/map/Map#get:entriesCount" (param $this i32) (result i32) + local.get $this + i32.load offset=20 + ) (func $"~lib/map/Map#set:entriesOffset" (param $this i32) (param $entriesOffset i32) local.get $this local.get $entriesOffset i32.store offset=16 ) - (func $"~lib/map/Map#set:entriesCount" (param $this i32) (param $entriesCount i32) + (func $"~lib/array/Array<~lib/map/KeyValue>#get:dataStart" (param $this i32) (result i32) local.get $this - local.get $entriesCount - i32.store offset=20 + i32.load offset=4 ) - (func $"~lib/map/Map#get:buckets" (param $this i32) (result i32) + (func $"~lib/map/KeyValue#get:key" (param $this i32) (result f32) local.get $this - i32.load + f32.load ) - (func $"~lib/map/Map#get:bucketsMask" (param $this i32) (result i32) + (func $"~lib/map/KeyValue#get:value" (param $this i32) (result f32) local.get $this - i32.load offset=4 + f32.load offset=4 ) - (func $"~lib/map/MapEntry#get:taggedNext" (param $this i32) (result i32) + (func $"~lib/map/Map#get:buckets" (param $this i32) (result i32) local.get $this - i32.load offset=8 + i32.load ) - (func $"~lib/map/MapEntry#get:key" (param $this i32) (result f32) + (func $"~lib/map/Map#set:entriesCount" (param $this i32) (param $entriesCount i32) local.get $this - f32.load + local.get $entriesCount + i32.store offset=20 ) - (func $"~lib/map/MapEntry#set:value" (param $this i32) (param $value f32) + (func $"~lib/map/KeyValue#set:key" (param $this i32) (param $key f32) local.get $this - local.get $value - f32.store offset=4 + local.get $key + f32.store ) - (func $"~lib/map/Map#get:entriesOffset" (param $this i32) (result i32) + (func $"~lib/map/KeyValue#set:value" (param $this i32) (param $value i32) local.get $this - i32.load offset=16 + local.get $value + i32.store offset=4 ) - (func $"~lib/map/Map#get:entriesCapacity" (param $this i32) (result i32) + (func $"~lib/array/Array<~lib/map/KeyValue>#set:length_" (param $this i32) (param $length_ i32) local.get $this - i32.load offset=12 + local.get $length_ + i32.store offset=12 ) - (func $"~lib/map/Map#get:entriesCount" (param $this i32) (result i32) + (func $"~lib/array/Array<~lib/map/KeyValue>#get:length_" (param $this i32) (result i32) local.get $this - i32.load offset=20 + i32.load offset=12 ) - (func $"~lib/map/Map#get:entries" (param $this i32) (result i32) + (func $"~lib/map/Map#get:entriesCapacity" (param $this i32) (result i32) local.get $this - i32.load offset=8 + i32.load offset=12 ) - (func $"~lib/map/MapEntry#set:key" (param $this i32) (param $key f32) + (func $"~lib/map/Map#set:bucketsMask" (param $this i32) (param $bucketsMask i32) local.get $this - local.get $key - f32.store + local.get $bucketsMask + i32.store offset=4 ) - (func $"~lib/map/MapEntry#get:value" (param $this i32) (result f32) + (func $"~lib/map/Map#get:bucketsMask" (param $this i32) (result i32) local.get $this - f32.load offset=4 + i32.load offset=4 ) - (func $"~lib/map/MapEntry#set:taggedNext" (param $this i32) (param $taggedNext i32) + (func $"~lib/map/Map#get:entries" (param $this i32) (result i32) local.get $this - local.get $taggedNext - i32.store offset=8 + i32.load offset=8 ) - (func $"~lib/map/Map#set:buckets" (param $this i32) (param $buckets i32) - local.get $this - local.get $buckets - i32.store + (func $"~lib/map/Map#get:entriesOffset" (param $this i32) (result i32) local.get $this - local.get $buckets - i32.const 0 - call $~lib/rt/itcms/__link + i32.load offset=16 ) - (func $"~lib/map/Map#set:bucketsMask" (param $this i32) (param $bucketsMask i32) + (func $"~lib/map/MapEntry#get:taggedNext" (param $this i32) (result i32) local.get $this - local.get $bucketsMask - i32.store offset=4 + i32.load offset=12 ) - (func $"~lib/map/Map#set:entries" (param $this i32) (param $entries i32) - local.get $this - local.get $entries - i32.store offset=8 + (func $"~lib/map/MapEntry#get:key" (param $this i32) (result f64) local.get $this - local.get $entries - i32.const 0 - call $~lib/rt/itcms/__link + f64.load ) - (func $"~lib/map/Map#set:entriesCapacity" (param $this i32) (param $entriesCapacity i32) + (func $"~lib/map/MapEntry#set:key" (param $this i32) (param $key f64) local.get $this - local.get $entriesCapacity - i32.store offset=12 + local.get $key + f64.store ) - (func $"~lib/map/Map#set:entriesOffset" (param $this i32) (param $entriesOffset i32) + (func $"~lib/map/MapEntry#get:value" (param $this i32) (result i32) local.get $this - local.get $entriesOffset - i32.store offset=16 + i32.load offset=8 ) - (func $"~lib/map/Map#set:entriesCount" (param $this i32) (param $entriesCount i32) + (func $"~lib/map/MapEntry#set:value" (param $this i32) (param $value i32) local.get $this - local.get $entriesCount - i32.store offset=20 + local.get $value + i32.store offset=8 ) (func $~lib/util/hash/HASH (param $key f64) (result i32) (local $key|1 i64) @@ -4977,56 +5441,63 @@ end return ) - (func $"~lib/map/Map#get:buckets" (param $this i32) (result i32) - local.get $this - i32.load - ) - (func $"~lib/map/Map#get:bucketsMask" (param $this i32) (result i32) + (func $"~lib/map/MapEntry#set:taggedNext" (param $this i32) (param $taggedNext i32) local.get $this - i32.load offset=4 + local.get $taggedNext + i32.store offset=12 ) - (func $"~lib/map/MapEntry#get:taggedNext" (param $this i32) (result i32) + (func $"~lib/map/Map#set:buckets" (param $this i32) (param $buckets i32) local.get $this - i32.load offset=12 - ) - (func $"~lib/map/MapEntry#get:key" (param $this i32) (result f64) + local.get $buckets + i32.store local.get $this - f64.load + local.get $buckets + i32.const 0 + call $~lib/rt/itcms/__link ) - (func $"~lib/map/MapEntry#set:value" (param $this i32) (param $value i32) + (func $"~lib/map/Map#set:entries" (param $this i32) (param $entries i32) local.get $this - local.get $value + local.get $entries i32.store offset=8 - ) - (func $"~lib/map/Map#get:entriesOffset" (param $this i32) (result i32) local.get $this - i32.load offset=16 + local.get $entries + i32.const 0 + call $~lib/rt/itcms/__link ) - (func $"~lib/map/Map#get:entriesCapacity" (param $this i32) (result i32) + (func $"~lib/map/Map#set:entriesCapacity" (param $this i32) (param $entriesCapacity i32) local.get $this - i32.load offset=12 + local.get $entriesCapacity + i32.store offset=12 ) (func $"~lib/map/Map#get:entriesCount" (param $this i32) (result i32) local.get $this i32.load offset=20 ) - (func $"~lib/map/Map#get:entries" (param $this i32) (result i32) + (func $"~lib/map/Map#set:entriesOffset" (param $this i32) (param $entriesOffset i32) local.get $this - i32.load offset=8 + local.get $entriesOffset + i32.store offset=16 ) - (func $"~lib/map/MapEntry#set:key" (param $this i32) (param $key f64) + (func $"~lib/array/Array<~lib/map/KeyValue>#get:dataStart" (param $this i32) (result i32) local.get $this - local.get $key - f64.store + i32.load offset=4 ) - (func $"~lib/map/MapEntry#get:value" (param $this i32) (result i32) + (func $"~lib/map/KeyValue#get:key" (param $this i32) (result f64) + local.get $this + f64.load + ) + (func $"~lib/map/KeyValue#get:value" (param $this i32) (result i32) local.get $this i32.load offset=8 ) - (func $"~lib/map/MapEntry#set:taggedNext" (param $this i32) (param $taggedNext i32) + (func $"~lib/map/Map#get:buckets" (param $this i32) (result i32) local.get $this - local.get $taggedNext - i32.store offset=12 + i32.load + ) + (func $"~lib/map/Map#set:entriesCount" (param $this i32) (param $entriesCount i32) + local.get $this + local.get $entriesCount + i32.store offset=20 ) (func $~lib/array/Array#set:buffer (param $this i32) (param $buffer i32) local.get $this @@ -5060,6 +5531,58 @@ local.get $this i32.load offset=4 ) + (func $"~lib/array/Array<~lib/map/KeyValue>#get:length_" (param $this i32) (result i32) + local.get $this + i32.load offset=12 + ) + (func $"~lib/map/Map#get:entriesCapacity" (param $this i32) (result i32) + local.get $this + i32.load offset=12 + ) + (func $"~lib/map/Map#set:bucketsMask" (param $this i32) (param $bucketsMask i32) + local.get $this + local.get $bucketsMask + i32.store offset=4 + ) + (func $"~lib/map/Map#get:bucketsMask" (param $this i32) (result i32) + local.get $this + i32.load offset=4 + ) + (func $"~lib/map/Map#get:entries" (param $this i32) (result i32) + local.get $this + i32.load offset=8 + ) + (func $"~lib/map/Map#get:entriesOffset" (param $this i32) (result i32) + local.get $this + i32.load offset=16 + ) + (func $"~lib/map/MapEntry#get:taggedNext" (param $this i32) (result i32) + local.get $this + i32.load offset=16 + ) + (func $"~lib/map/MapEntry#get:key" (param $this i32) (result f64) + local.get $this + f64.load + ) + (func $"~lib/map/MapEntry#set:key" (param $this i32) (param $key f64) + local.get $this + local.get $key + f64.store + ) + (func $"~lib/map/MapEntry#get:value" (param $this i32) (result f64) + local.get $this + f64.load offset=8 + ) + (func $"~lib/map/MapEntry#set:value" (param $this i32) (param $value f64) + local.get $this + local.get $value + f64.store offset=8 + ) + (func $"~lib/map/MapEntry#set:taggedNext" (param $this i32) (param $taggedNext i32) + local.get $this + local.get $taggedNext + i32.store offset=16 + ) (func $"~lib/map/Map#set:buckets" (param $this i32) (param $buckets i32) local.get $this local.get $buckets @@ -5069,11 +5592,6 @@ i32.const 0 call $~lib/rt/itcms/__link ) - (func $"~lib/map/Map#set:bucketsMask" (param $this i32) (param $bucketsMask i32) - local.get $this - local.get $bucketsMask - i32.store offset=4 - ) (func $"~lib/map/Map#set:entries" (param $this i32) (param $entries i32) local.get $this local.get $entries @@ -5088,66 +5606,50 @@ local.get $entriesCapacity i32.store offset=12 ) + (func $"~lib/map/Map#get:entriesCount" (param $this i32) (result i32) + local.get $this + i32.load offset=20 + ) (func $"~lib/map/Map#set:entriesOffset" (param $this i32) (param $entriesOffset i32) local.get $this local.get $entriesOffset i32.store offset=16 ) - (func $"~lib/map/Map#set:entriesCount" (param $this i32) (param $entriesCount i32) - local.get $this - local.get $entriesCount - i32.store offset=20 - ) - (func $"~lib/map/Map#get:buckets" (param $this i32) (result i32) - local.get $this - i32.load - ) - (func $"~lib/map/Map#get:bucketsMask" (param $this i32) (result i32) + (func $"~lib/array/Array<~lib/map/KeyValue>#get:dataStart" (param $this i32) (result i32) local.get $this i32.load offset=4 ) - (func $"~lib/map/MapEntry#get:taggedNext" (param $this i32) (result i32) - local.get $this - i32.load offset=16 - ) - (func $"~lib/map/MapEntry#get:key" (param $this i32) (result f64) + (func $"~lib/map/KeyValue#get:key" (param $this i32) (result f64) local.get $this f64.load ) - (func $"~lib/map/MapEntry#set:value" (param $this i32) (param $value f64) - local.get $this - local.get $value - f64.store offset=8 - ) - (func $"~lib/map/Map#get:entriesOffset" (param $this i32) (result i32) - local.get $this - i32.load offset=16 - ) - (func $"~lib/map/Map#get:entriesCapacity" (param $this i32) (result i32) + (func $"~lib/map/KeyValue#get:value" (param $this i32) (result f64) local.get $this - i32.load offset=12 + f64.load offset=8 ) - (func $"~lib/map/Map#get:entriesCount" (param $this i32) (result i32) + (func $"~lib/map/Map#get:buckets" (param $this i32) (result i32) local.get $this - i32.load offset=20 + i32.load ) - (func $"~lib/map/Map#get:entries" (param $this i32) (result i32) + (func $"~lib/map/Map#set:entriesCount" (param $this i32) (param $entriesCount i32) local.get $this - i32.load offset=8 + local.get $entriesCount + i32.store offset=20 ) - (func $"~lib/map/MapEntry#set:key" (param $this i32) (param $key f64) + (func $"~lib/map/KeyValue#set:key" (param $this i32) (param $key f64) local.get $this local.get $key f64.store ) - (func $"~lib/map/MapEntry#get:value" (param $this i32) (result f64) + (func $"~lib/map/KeyValue#set:value" (param $this i32) (param $value i32) local.get $this - f64.load offset=8 + local.get $value + i32.store offset=8 ) - (func $"~lib/map/MapEntry#set:taggedNext" (param $this i32) (param $taggedNext i32) + (func $"~lib/array/Array<~lib/map/KeyValue>#set:length_" (param $this i32) (param $length_ i32) local.get $this - local.get $taggedNext - i32.store offset=16 + local.get $length_ + i32.store offset=12 ) (func $~lib/rt/itcms/__collect i32.const 0 @@ -5204,13 +5706,13 @@ i32.const 1 i32.shr_u global.set $~lib/rt/itcms/threshold - i32.const 144 + i32.const 256 call $~lib/rt/itcms/initLazy global.set $~lib/rt/itcms/pinSpace - i32.const 176 + i32.const 288 call $~lib/rt/itcms/initLazy global.set $~lib/rt/itcms/toSpace - i32.const 320 + i32.const 432 call $~lib/rt/itcms/initLazy global.set $~lib/rt/itcms/fromSpace call $"std/map/testNumeric" @@ -5227,16 +5729,19 @@ ) (func $~lib/rt/__visit_globals (param $0 i32) (local $1 i32) - i32.const 224 + i32.const 336 local.get $0 call $~lib/rt/itcms/__visit - i32.const 432 + i32.const 32 local.get $0 call $~lib/rt/itcms/__visit i32.const 592 local.get $0 call $~lib/rt/itcms/__visit - i32.const 32 + i32.const 800 + local.get $0 + call $~lib/rt/itcms/__visit + i32.const 144 local.get $0 call $~lib/rt/itcms/__visit ) @@ -5260,17 +5765,17 @@ local.get $1 call $"~lib/map/Map#__visit" ) - (func $~lib/array/Array#get:buffer (param $this i32) (result i32) + (func $"~lib/array/Array<~lib/map/KeyValue>#get:buffer" (param $this i32) (result i32) local.get $this i32.load ) - (func $~lib/array/Array~visit (param $0 i32) (param $1 i32) + (func $"~lib/array/Array<~lib/map/KeyValue>~visit" (param $0 i32) (param $1 i32) local.get $0 local.get $1 call $~lib/object/Object~visit local.get $0 local.get $1 - call $~lib/array/Array#__visit + call $"~lib/array/Array<~lib/map/KeyValue>#__visit" ) (func $~lib/array/Array#get:buffer (param $this i32) (result i32) local.get $this @@ -5284,6 +5789,18 @@ local.get $1 call $~lib/array/Array#__visit ) + (func $~lib/array/Array#get:buffer (param $this i32) (result i32) + local.get $this + i32.load + ) + (func $~lib/array/Array~visit (param $0 i32) (param $1 i32) + local.get $0 + local.get $1 + call $~lib/object/Object~visit + local.get $0 + local.get $1 + call $~lib/array/Array#__visit + ) (func $"~lib/map/Map~visit" (param $0 i32) (param $1 i32) local.get $0 local.get $1 @@ -5292,6 +5809,18 @@ local.get $1 call $"~lib/map/Map#__visit" ) + (func $"~lib/array/Array<~lib/map/KeyValue>#get:buffer" (param $this i32) (result i32) + local.get $this + i32.load + ) + (func $"~lib/array/Array<~lib/map/KeyValue>~visit" (param $0 i32) (param $1 i32) + local.get $0 + local.get $1 + call $~lib/object/Object~visit + local.get $0 + local.get $1 + call $"~lib/array/Array<~lib/map/KeyValue>#__visit" + ) (func $"~lib/map/Map~visit" (param $0 i32) (param $1 i32) local.get $0 local.get $1 @@ -5300,6 +5829,18 @@ local.get $1 call $"~lib/map/Map#__visit" ) + (func $"~lib/array/Array<~lib/map/KeyValue>#get:buffer" (param $this i32) (result i32) + local.get $this + i32.load + ) + (func $"~lib/array/Array<~lib/map/KeyValue>~visit" (param $0 i32) (param $1 i32) + local.get $0 + local.get $1 + call $~lib/object/Object~visit + local.get $0 + local.get $1 + call $"~lib/array/Array<~lib/map/KeyValue>#__visit" + ) (func $"~lib/map/Map~visit" (param $0 i32) (param $1 i32) local.get $0 local.get $1 @@ -5308,6 +5849,18 @@ local.get $1 call $"~lib/map/Map#__visit" ) + (func $"~lib/array/Array<~lib/map/KeyValue>#get:buffer" (param $this i32) (result i32) + local.get $this + i32.load + ) + (func $"~lib/array/Array<~lib/map/KeyValue>~visit" (param $0 i32) (param $1 i32) + local.get $0 + local.get $1 + call $~lib/object/Object~visit + local.get $0 + local.get $1 + call $"~lib/array/Array<~lib/map/KeyValue>#__visit" + ) (func $~lib/array/Array#get:buffer (param $this i32) (result i32) local.get $this i32.load @@ -5328,6 +5881,18 @@ local.get $1 call $"~lib/map/Map#__visit" ) + (func $"~lib/array/Array<~lib/map/KeyValue>#get:buffer" (param $this i32) (result i32) + local.get $this + i32.load + ) + (func $"~lib/array/Array<~lib/map/KeyValue>~visit" (param $0 i32) (param $1 i32) + local.get $0 + local.get $1 + call $~lib/object/Object~visit + local.get $0 + local.get $1 + call $"~lib/array/Array<~lib/map/KeyValue>#__visit" + ) (func $"~lib/map/Map~visit" (param $0 i32) (param $1 i32) local.get $0 local.get $1 @@ -5336,6 +5901,18 @@ local.get $1 call $"~lib/map/Map#__visit" ) + (func $"~lib/array/Array<~lib/map/KeyValue>#get:buffer" (param $this i32) (result i32) + local.get $this + i32.load + ) + (func $"~lib/array/Array<~lib/map/KeyValue>~visit" (param $0 i32) (param $1 i32) + local.get $0 + local.get $1 + call $~lib/object/Object~visit + local.get $0 + local.get $1 + call $"~lib/array/Array<~lib/map/KeyValue>#__visit" + ) (func $~lib/array/Array#get:buffer (param $this i32) (result i32) local.get $this i32.load @@ -5356,6 +5933,18 @@ local.get $1 call $"~lib/map/Map#__visit" ) + (func $"~lib/array/Array<~lib/map/KeyValue>#get:buffer" (param $this i32) (result i32) + local.get $this + i32.load + ) + (func $"~lib/array/Array<~lib/map/KeyValue>~visit" (param $0 i32) (param $1 i32) + local.get $0 + local.get $1 + call $~lib/object/Object~visit + local.get $0 + local.get $1 + call $"~lib/array/Array<~lib/map/KeyValue>#__visit" + ) (func $"~lib/map/Map~visit" (param $0 i32) (param $1 i32) local.get $0 local.get $1 @@ -5364,6 +5953,18 @@ local.get $1 call $"~lib/map/Map#__visit" ) + (func $"~lib/array/Array<~lib/map/KeyValue>#get:buffer" (param $this i32) (result i32) + local.get $this + i32.load + ) + (func $"~lib/array/Array<~lib/map/KeyValue>~visit" (param $0 i32) (param $1 i32) + local.get $0 + local.get $1 + call $~lib/object/Object~visit + local.get $0 + local.get $1 + call $"~lib/array/Array<~lib/map/KeyValue>#__visit" + ) (func $~lib/array/Array#get:buffer (param $this i32) (result i32) local.get $this i32.load @@ -5384,6 +5985,18 @@ local.get $1 call $"~lib/map/Map#__visit" ) + (func $"~lib/array/Array<~lib/map/KeyValue>#get:buffer" (param $this i32) (result i32) + local.get $this + i32.load + ) + (func $"~lib/array/Array<~lib/map/KeyValue>~visit" (param $0 i32) (param $1 i32) + local.get $0 + local.get $1 + call $~lib/object/Object~visit + local.get $0 + local.get $1 + call $"~lib/array/Array<~lib/map/KeyValue>#__visit" + ) (func $"~lib/map/Map~visit" (param $0 i32) (param $1 i32) local.get $0 local.get $1 @@ -5392,6 +6005,18 @@ local.get $1 call $"~lib/map/Map#__visit" ) + (func $"~lib/array/Array<~lib/map/KeyValue>#get:buffer" (param $this i32) (result i32) + local.get $this + i32.load + ) + (func $"~lib/array/Array<~lib/map/KeyValue>~visit" (param $0 i32) (param $1 i32) + local.get $0 + local.get $1 + call $~lib/object/Object~visit + local.get $0 + local.get $1 + call $"~lib/array/Array<~lib/map/KeyValue>#__visit" + ) (func $~lib/array/Array#get:buffer (param $this i32) (result i32) local.get $this i32.load @@ -5412,6 +6037,18 @@ local.get $1 call $"~lib/map/Map#__visit" ) + (func $"~lib/array/Array<~lib/map/KeyValue>#get:buffer" (param $this i32) (result i32) + local.get $this + i32.load + ) + (func $"~lib/array/Array<~lib/map/KeyValue>~visit" (param $0 i32) (param $1 i32) + local.get $0 + local.get $1 + call $~lib/object/Object~visit + local.get $0 + local.get $1 + call $"~lib/array/Array<~lib/map/KeyValue>#__visit" + ) (func $"~lib/map/Map~visit" (param $0 i32) (param $1 i32) local.get $0 local.get $1 @@ -5420,6 +6057,18 @@ local.get $1 call $"~lib/map/Map#__visit" ) + (func $"~lib/array/Array<~lib/map/KeyValue>#get:buffer" (param $this i32) (result i32) + local.get $this + i32.load + ) + (func $"~lib/array/Array<~lib/map/KeyValue>~visit" (param $0 i32) (param $1 i32) + local.get $0 + local.get $1 + call $~lib/object/Object~visit + local.get $0 + local.get $1 + call $"~lib/array/Array<~lib/map/KeyValue>#__visit" + ) (func $~lib/array/Array#get:buffer (param $this i32) (result i32) local.get $this i32.load @@ -5440,6 +6089,18 @@ local.get $1 call $"~lib/map/Map#__visit" ) + (func $"~lib/array/Array<~lib/map/KeyValue>#get:buffer" (param $this i32) (result i32) + local.get $this + i32.load + ) + (func $"~lib/array/Array<~lib/map/KeyValue>~visit" (param $0 i32) (param $1 i32) + local.get $0 + local.get $1 + call $~lib/object/Object~visit + local.get $0 + local.get $1 + call $"~lib/array/Array<~lib/map/KeyValue>#__visit" + ) (func $"~lib/map/Map~visit" (param $0 i32) (param $1 i32) local.get $0 local.get $1 @@ -5448,11 +6109,23 @@ local.get $1 call $"~lib/map/Map#__visit" ) - (func $~lib/array/Array#get:buffer (param $this i32) (result i32) + (func $"~lib/array/Array<~lib/map/KeyValue>#get:buffer" (param $this i32) (result i32) local.get $this i32.load ) - (func $~lib/array/Array~visit (param $0 i32) (param $1 i32) + (func $"~lib/array/Array<~lib/map/KeyValue>~visit" (param $0 i32) (param $1 i32) + local.get $0 + local.get $1 + call $~lib/object/Object~visit + local.get $0 + local.get $1 + call $"~lib/array/Array<~lib/map/KeyValue>#__visit" + ) + (func $~lib/array/Array#get:buffer (param $this i32) (result i32) + local.get $this + i32.load + ) + (func $~lib/array/Array~visit (param $0 i32) (param $1 i32) local.get $0 local.get $1 call $~lib/object/Object~visit @@ -5468,6 +6141,18 @@ local.get $1 call $"~lib/map/Map#__visit" ) + (func $"~lib/array/Array<~lib/map/KeyValue>#get:buffer" (param $this i32) (result i32) + local.get $this + i32.load + ) + (func $"~lib/array/Array<~lib/map/KeyValue>~visit" (param $0 i32) (param $1 i32) + local.get $0 + local.get $1 + call $~lib/object/Object~visit + local.get $0 + local.get $1 + call $"~lib/array/Array<~lib/map/KeyValue>#__visit" + ) (func $"~lib/map/Map~visit" (param $0 i32) (param $1 i32) local.get $0 local.get $1 @@ -5476,6 +6161,18 @@ local.get $1 call $"~lib/map/Map#__visit" ) + (func $"~lib/array/Array<~lib/map/KeyValue>#get:buffer" (param $this i32) (result i32) + local.get $this + i32.load + ) + (func $"~lib/array/Array<~lib/map/KeyValue>~visit" (param $0 i32) (param $1 i32) + local.get $0 + local.get $1 + call $~lib/object/Object~visit + local.get $0 + local.get $1 + call $"~lib/array/Array<~lib/map/KeyValue>#__visit" + ) (func $~lib/array/Array#get:buffer (param $this i32) (result i32) local.get $this i32.load @@ -5496,6 +6193,18 @@ local.get $1 call $"~lib/map/Map#__visit" ) + (func $"~lib/array/Array<~lib/map/KeyValue>#get:buffer" (param $this i32) (result i32) + local.get $this + i32.load + ) + (func $"~lib/array/Array<~lib/map/KeyValue>~visit" (param $0 i32) (param $1 i32) + local.get $0 + local.get $1 + call $~lib/object/Object~visit + local.get $0 + local.get $1 + call $"~lib/array/Array<~lib/map/KeyValue>#__visit" + ) (func $"~lib/map/Map~visit" (param $0 i32) (param $1 i32) local.get $0 local.get $1 @@ -5504,6 +6213,18 @@ local.get $1 call $"~lib/map/Map#__visit" ) + (func $"~lib/array/Array<~lib/map/KeyValue>#get:buffer" (param $this i32) (result i32) + local.get $this + i32.load + ) + (func $"~lib/array/Array<~lib/map/KeyValue>~visit" (param $0 i32) (param $1 i32) + local.get $0 + local.get $1 + call $~lib/object/Object~visit + local.get $0 + local.get $1 + call $"~lib/array/Array<~lib/map/KeyValue>#__visit" + ) (func $~lib/array/Array#get:buffer (param $this i32) (result i32) local.get $this i32.load @@ -5524,201 +6245,384 @@ local.get $1 call $"~lib/map/Map#__visit" ) + (func $"~lib/array/Array<~lib/map/KeyValue>#get:buffer" (param $this i32) (result i32) + local.get $this + i32.load + ) + (func $"~lib/array/Array<~lib/map/KeyValue>~visit" (param $0 i32) (param $1 i32) + local.get $0 + local.get $1 + call $~lib/object/Object~visit + local.get $0 + local.get $1 + call $"~lib/array/Array<~lib/map/KeyValue>#__visit" + ) (func $~lib/rt/__visit_members (param $0 i32) (param $1 i32) block $invalid - block $"~lib/map/Map" - block $~lib/array/Array - block $"~lib/map/Map" - block $"~lib/map/Map" - block $~lib/array/Array - block $"~lib/map/Map" - block $"~lib/map/Map" - block $~lib/array/Array - block $"~lib/map/Map" - block $"~lib/map/Map" - block $~lib/array/Array - block $"~lib/map/Map" - block $"~lib/map/Map" - block $~lib/array/Array - block $"~lib/map/Map" - block $"~lib/map/Map" - block $~lib/array/Array - block $"~lib/map/Map" - block $"~lib/map/Map" - block $~lib/array/Array - block $"~lib/map/Map" - block $"~lib/map/Map" - block $~lib/array/Array - block $"~lib/map/Map" - block $"~lib/map/Map" - block $"~lib/map/Map" - block $~lib/array/Array - block $~lib/array/Array - block $"~lib/map/Map" - block $~lib/arraybuffer/ArrayBufferView - block $~lib/string/String - block $~lib/arraybuffer/ArrayBuffer - block $~lib/object/Object - local.get $0 - i32.const 8 - i32.sub - i32.load - br_table $~lib/object/Object $~lib/arraybuffer/ArrayBuffer $~lib/string/String $~lib/arraybuffer/ArrayBufferView $"~lib/map/Map" $~lib/array/Array $~lib/array/Array $"~lib/map/Map" $"~lib/map/Map" $"~lib/map/Map" $~lib/array/Array $"~lib/map/Map" $"~lib/map/Map" $~lib/array/Array $"~lib/map/Map" $"~lib/map/Map" $~lib/array/Array $"~lib/map/Map" $"~lib/map/Map" $~lib/array/Array $"~lib/map/Map" $"~lib/map/Map" $~lib/array/Array $"~lib/map/Map" $"~lib/map/Map" $~lib/array/Array $"~lib/map/Map" $"~lib/map/Map" $~lib/array/Array $"~lib/map/Map" $"~lib/map/Map" $~lib/array/Array $"~lib/map/Map" $invalid + block $"~lib/array/Array<~lib/map/KeyValue>" + block $"~lib/map/KeyValue" + block $"~lib/map/Map" + block $~lib/array/Array + block $"~lib/array/Array<~lib/map/KeyValue>" + block $"~lib/map/KeyValue" + block $"~lib/map/Map" + block $"~lib/array/Array<~lib/map/KeyValue>" + block $"~lib/map/KeyValue" + block $"~lib/map/Map" + block $~lib/array/Array + block $"~lib/array/Array<~lib/map/KeyValue>" + block $"~lib/map/KeyValue" + block $"~lib/map/Map" + block $"~lib/array/Array<~lib/map/KeyValue>" + block $"~lib/map/KeyValue" + block $"~lib/map/Map" + block $~lib/array/Array + block $"~lib/array/Array<~lib/map/KeyValue>" + block $"~lib/map/KeyValue" + block $"~lib/map/Map" + block $"~lib/array/Array<~lib/map/KeyValue>" + block $"~lib/map/KeyValue" + block $"~lib/map/Map" + block $~lib/array/Array + block $"~lib/array/Array<~lib/map/KeyValue>" + block $"~lib/map/KeyValue" + block $"~lib/map/Map" + block $"~lib/array/Array<~lib/map/KeyValue>" + block $"~lib/map/KeyValue" + block $"~lib/map/Map" + block $~lib/array/Array + block $"~lib/array/Array<~lib/map/KeyValue>" + block $"~lib/map/KeyValue" + block $"~lib/map/Map" + block $"~lib/array/Array<~lib/map/KeyValue>" + block $"~lib/map/KeyValue" + block $"~lib/map/Map" + block $~lib/array/Array + block $"~lib/array/Array<~lib/map/KeyValue>" + block $"~lib/map/KeyValue" + block $"~lib/map/Map" + block $"~lib/array/Array<~lib/map/KeyValue>" + block $"~lib/map/KeyValue" + block $"~lib/map/Map" + block $~lib/array/Array + block $"~lib/array/Array<~lib/map/KeyValue>" + block $"~lib/map/KeyValue" + block $"~lib/map/Map" + block $"~lib/array/Array<~lib/map/KeyValue>" + block $"~lib/map/KeyValue" + block $"~lib/map/Map" + block $~lib/array/Array + block $"~lib/array/Array<~lib/map/KeyValue>" + block $"~lib/map/KeyValue" + block $"~lib/map/Map" + block $"~lib/array/Array<~lib/map/KeyValue>" + block $"~lib/map/KeyValue" + block $"~lib/map/Map" + block $"~lib/array/Array<~lib/map/KeyValue>" + block $"~lib/map/KeyValue" + block $"~lib/map/Map" + block $~lib/array/Array + block $~lib/array/Array + block $"~lib/array/Array<~lib/map/KeyValue>" + block $"~lib/map/KeyValue" + block $"~lib/map/Map" + block $~lib/arraybuffer/ArrayBufferView + block $~lib/string/String + block $~lib/arraybuffer/ArrayBuffer + block $~lib/object/Object + local.get $0 + i32.const 8 + i32.sub + i32.load + br_table $~lib/object/Object $~lib/arraybuffer/ArrayBuffer $~lib/string/String $~lib/arraybuffer/ArrayBufferView $"~lib/map/Map" $"~lib/map/KeyValue" $"~lib/array/Array<~lib/map/KeyValue>" $~lib/array/Array $~lib/array/Array $"~lib/map/Map" $"~lib/map/KeyValue" $"~lib/array/Array<~lib/map/KeyValue>" $"~lib/map/Map" $"~lib/map/KeyValue" $"~lib/array/Array<~lib/map/KeyValue>" $"~lib/map/Map" $"~lib/map/KeyValue" $"~lib/array/Array<~lib/map/KeyValue>" $~lib/array/Array $"~lib/map/Map" $"~lib/map/KeyValue" $"~lib/array/Array<~lib/map/KeyValue>" $"~lib/map/Map" $"~lib/map/KeyValue" $"~lib/array/Array<~lib/map/KeyValue>" $~lib/array/Array $"~lib/map/Map" $"~lib/map/KeyValue" $"~lib/array/Array<~lib/map/KeyValue>" $"~lib/map/Map" $"~lib/map/KeyValue" $"~lib/array/Array<~lib/map/KeyValue>" $~lib/array/Array $"~lib/map/Map" $"~lib/map/KeyValue" $"~lib/array/Array<~lib/map/KeyValue>" $"~lib/map/Map" $"~lib/map/KeyValue" $"~lib/array/Array<~lib/map/KeyValue>" $~lib/array/Array $"~lib/map/Map" $"~lib/map/KeyValue" $"~lib/array/Array<~lib/map/KeyValue>" $"~lib/map/Map" $"~lib/map/KeyValue" $"~lib/array/Array<~lib/map/KeyValue>" $~lib/array/Array $"~lib/map/Map" $"~lib/map/KeyValue" $"~lib/array/Array<~lib/map/KeyValue>" $"~lib/map/Map" $"~lib/map/KeyValue" $"~lib/array/Array<~lib/map/KeyValue>" $~lib/array/Array $"~lib/map/Map" $"~lib/map/KeyValue" $"~lib/array/Array<~lib/map/KeyValue>" $"~lib/map/Map" $"~lib/map/KeyValue" $"~lib/array/Array<~lib/map/KeyValue>" $~lib/array/Array $"~lib/map/Map" $"~lib/map/KeyValue" $"~lib/array/Array<~lib/map/KeyValue>" $"~lib/map/Map" $"~lib/map/KeyValue" $"~lib/array/Array<~lib/map/KeyValue>" $~lib/array/Array $"~lib/map/Map" $"~lib/map/KeyValue" $"~lib/array/Array<~lib/map/KeyValue>" $invalid + end + return + end + return + end + return + end + local.get $0 + local.get $1 + call $~lib/arraybuffer/ArrayBufferView~visit + return + end + local.get $0 + local.get $1 + call $"~lib/map/Map~visit" + return + end + return + end + local.get $0 + local.get $1 + call $"~lib/array/Array<~lib/map/KeyValue>~visit" + return + end + local.get $0 + local.get $1 + call $~lib/array/Array~visit + return + end + local.get $0 + local.get $1 + call $~lib/array/Array~visit + return + end + local.get $0 + local.get $1 + call $"~lib/map/Map~visit" + return + end + return + end + local.get $0 + local.get $1 + call $"~lib/array/Array<~lib/map/KeyValue>~visit" + return + end + local.get $0 + local.get $1 + call $"~lib/map/Map~visit" + return + end + return + end + local.get $0 + local.get $1 + call $"~lib/array/Array<~lib/map/KeyValue>~visit" + return + end + local.get $0 + local.get $1 + call $"~lib/map/Map~visit" + return + end + return + end + local.get $0 + local.get $1 + call $"~lib/array/Array<~lib/map/KeyValue>~visit" + return + end + local.get $0 + local.get $1 + call $~lib/array/Array~visit + return + end + local.get $0 + local.get $1 + call $"~lib/map/Map~visit" + return + end + return + end + local.get $0 + local.get $1 + call $"~lib/array/Array<~lib/map/KeyValue>~visit" + return + end + local.get $0 + local.get $1 + call $"~lib/map/Map~visit" + return + end + return + end + local.get $0 + local.get $1 + call $"~lib/array/Array<~lib/map/KeyValue>~visit" + return + end + local.get $0 + local.get $1 + call $~lib/array/Array~visit + return + end + local.get $0 + local.get $1 + call $"~lib/map/Map~visit" + return + end + return + end + local.get $0 + local.get $1 + call $"~lib/array/Array<~lib/map/KeyValue>~visit" + return + end + local.get $0 + local.get $1 + call $"~lib/map/Map~visit" + return + end + return + end + local.get $0 + local.get $1 + call $"~lib/array/Array<~lib/map/KeyValue>~visit" + return + end + local.get $0 + local.get $1 + call $~lib/array/Array~visit + return + end + local.get $0 + local.get $1 + call $"~lib/map/Map~visit" + return + end + return + end + local.get $0 + local.get $1 + call $"~lib/array/Array<~lib/map/KeyValue>~visit" + return + end + local.get $0 + local.get $1 + call $"~lib/map/Map~visit" + return + end + return end + local.get $0 + local.get $1 + call $"~lib/array/Array<~lib/map/KeyValue>~visit" return end + local.get $0 + local.get $1 + call $~lib/array/Array~visit return end + local.get $0 + local.get $1 + call $"~lib/map/Map~visit" return end - local.get $0 - local.get $1 - call $~lib/arraybuffer/ArrayBufferView~visit return end local.get $0 local.get $1 - call $"~lib/map/Map~visit" + call $"~lib/array/Array<~lib/map/KeyValue>~visit" return end local.get $0 local.get $1 - call $~lib/array/Array~visit + call $"~lib/map/Map~visit" return end - local.get $0 - local.get $1 - call $~lib/array/Array~visit return end local.get $0 local.get $1 - call $"~lib/map/Map~visit" + call $"~lib/array/Array<~lib/map/KeyValue>~visit" return end local.get $0 local.get $1 - call $"~lib/map/Map~visit" + call $~lib/array/Array~visit return end local.get $0 local.get $1 - call $"~lib/map/Map~visit" + call $"~lib/map/Map~visit" return end - local.get $0 - local.get $1 - call $~lib/array/Array~visit return end local.get $0 local.get $1 - call $"~lib/map/Map~visit" + call $"~lib/array/Array<~lib/map/KeyValue>~visit" return end local.get $0 local.get $1 - call $"~lib/map/Map~visit" + call $"~lib/map/Map~visit" return end - local.get $0 - local.get $1 - call $~lib/array/Array~visit return end local.get $0 local.get $1 - call $"~lib/map/Map~visit" + call $"~lib/array/Array<~lib/map/KeyValue>~visit" return end local.get $0 local.get $1 - call $"~lib/map/Map~visit" + call $~lib/array/Array~visit return end local.get $0 local.get $1 - call $~lib/array/Array~visit + call $"~lib/map/Map~visit" return end - local.get $0 - local.get $1 - call $"~lib/map/Map~visit" return end local.get $0 local.get $1 - call $"~lib/map/Map~visit" + call $"~lib/array/Array<~lib/map/KeyValue>~visit" return end local.get $0 local.get $1 - call $~lib/array/Array~visit + call $"~lib/map/Map~visit" return end - local.get $0 - local.get $1 - call $"~lib/map/Map~visit" return end local.get $0 local.get $1 - call $"~lib/map/Map~visit" + call $"~lib/array/Array<~lib/map/KeyValue>~visit" return end local.get $0 local.get $1 - call $~lib/array/Array~visit + call $~lib/array/Array~visit return end local.get $0 local.get $1 - call $"~lib/map/Map~visit" + call $"~lib/map/Map~visit" return end - local.get $0 - local.get $1 - call $"~lib/map/Map~visit" return end local.get $0 local.get $1 - call $~lib/array/Array~visit + call $"~lib/array/Array<~lib/map/KeyValue>~visit" return end local.get $0 local.get $1 - call $"~lib/map/Map~visit" + call $"~lib/map/Map~visit" return end - local.get $0 - local.get $1 - call $"~lib/map/Map~visit" return end local.get $0 local.get $1 - call $~lib/array/Array~visit + call $"~lib/array/Array<~lib/map/KeyValue>~visit" return end local.get $0 local.get $1 - call $"~lib/map/Map~visit" + call $~lib/array/Array~visit return end local.get $0 local.get $1 - call $"~lib/map/Map~visit" + call $"~lib/map/Map~visit" return end - local.get $0 - local.get $1 - call $~lib/array/Array~visit return end local.get $0 local.get $1 - call $"~lib/map/Map~visit" + call $"~lib/array/Array<~lib/map/KeyValue>~visit" return end unreachable @@ -5731,225 +6635,37 @@ global.get $~lib/memory/__data_end i32.lt_s if - i32.const 33664 - i32.const 33712 + i32.const 34880 + i32.const 34928 i32.const 1 i32.const 1 call $~lib/builtins/abort unreachable end ) - (func $"~lib/map/Map#constructor" (param $this i32) (result i32) + (func $"~lib/array/Array<~lib/map/KeyValue>#get:length" (param $this i32) (result i32) (local $1 i32) global.get $~lib/memory/__stack_pointer - i32.const 12 + i32.const 4 i32.sub global.set $~lib/memory/__stack_pointer call $~stack_check global.get $~lib/memory/__stack_pointer - i64.const 0 - i64.store - global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.store offset=8 - local.get $this - i32.eqz - if - global.get $~lib/memory/__stack_pointer - i32.const 24 - i32.const 4 - call $~lib/rt/itcms/__new - local.tee $this - i32.store - end - local.get $this - local.set $1 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - local.get $1 i32.const 0 - i32.const 4 - i32.const 4 - i32.mul - call $~lib/arraybuffer/ArrayBuffer#constructor - local.set $1 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=8 - local.get $1 - call $"~lib/map/Map#set:buckets" - local.get $this - local.set $1 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - local.get $1 - i32.const 4 - i32.const 1 - i32.sub - call $"~lib/map/Map#set:bucketsMask" + i32.store local.get $this local.set $1 global.get $~lib/memory/__stack_pointer local.get $1 - i32.store offset=4 - local.get $1 - i32.const 0 - i32.const 4 - block $"~lib/map/ENTRY_SIZE|inlined.0" (result i32) - i32.const 12 - br $"~lib/map/ENTRY_SIZE|inlined.0" - end - i32.mul - call $~lib/arraybuffer/ArrayBuffer#constructor - local.set $1 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=8 + i32.store local.get $1 - call $"~lib/map/Map#set:entries" - local.get $this + call $"~lib/array/Array<~lib/map/KeyValue>#get:length_" local.set $1 global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - local.get $1 i32.const 4 - call $"~lib/map/Map#set:entriesCapacity" - local.get $this - local.set $1 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - local.get $1 - i32.const 0 - call $"~lib/map/Map#set:entriesOffset" - local.get $this - local.set $1 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - local.get $1 - i32.const 0 - call $"~lib/map/Map#set:entriesCount" - local.get $this - local.set $1 - global.get $~lib/memory/__stack_pointer - i32.const 12 i32.add global.set $~lib/memory/__stack_pointer local.get $1 - ) - (func $"~lib/map/Map#find" (param $this i32) (param $key i32) (param $hashCode i32) (result i32) - (local $entry i32) - (local $taggedNext i32) - (local $5 i32) - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.sub - global.set $~lib/memory/__stack_pointer - call $~stack_check - global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.store - local.get $this - local.set $5 - global.get $~lib/memory/__stack_pointer - local.get $5 - i32.store - local.get $5 - call $"~lib/map/Map#get:buckets" - local.get $hashCode - local.get $this - local.set $5 - global.get $~lib/memory/__stack_pointer - local.get $5 - i32.store - local.get $5 - call $"~lib/map/Map#get:bucketsMask" - i32.and - i32.const 4 - i32.mul - i32.add - i32.load - local.set $entry - loop $while-continue|0 - local.get $entry - if - local.get $entry - call $"~lib/map/MapEntry#get:taggedNext" - local.set $taggedNext - local.get $taggedNext - i32.const 1 - i32.and - i32.eqz - if (result i32) - local.get $entry - call $"~lib/map/MapEntry#get:key" - i32.extend8_s - local.get $key - i32.extend8_s - i32.eq - else - i32.const 0 - end - if - local.get $entry - local.set $5 - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $5 - return - end - local.get $taggedNext - i32.const 1 - i32.const -1 - i32.xor - i32.and - local.set $entry - br $while-continue|0 - end - end - i32.const 0 - local.set $5 - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $5 - return - ) - (func $"~lib/map/Map#has" (param $this i32) (param $key i32) (result i32) - (local $2 i32) - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.sub - global.set $~lib/memory/__stack_pointer - call $~stack_check - global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.store - local.get $this - local.set $2 - global.get $~lib/memory/__stack_pointer - local.get $2 - i32.store - local.get $2 - local.get $key - local.get $key - call $~lib/util/hash/HASH - call $"~lib/map/Map#find" - i32.const 0 - i32.ne - local.set $2 - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $2 return ) (func $"~lib/map/Map#rehash" (param $this i32) (param $newBucketsMask i32) @@ -5998,9 +6714,9 @@ global.get $~lib/memory/__stack_pointer i32.const 0 local.get $newEntriesCapacity - block $"~lib/map/ENTRY_SIZE|inlined.1" (result i32) + block $"~lib/map/ENTRY_SIZE|inlined.0" (result i32) i32.const 12 - br $"~lib/map/ENTRY_SIZE|inlined.1" + br $"~lib/map/ENTRY_SIZE|inlined.0" end i32.mul call $~lib/arraybuffer/ArrayBuffer#constructor @@ -6022,9 +6738,9 @@ i32.store offset=8 local.get $14 call $"~lib/map/Map#get:entriesOffset" - block $"~lib/map/ENTRY_SIZE|inlined.2" (result i32) + block $"~lib/map/ENTRY_SIZE|inlined.1" (result i32) i32.const 12 - br $"~lib/map/ENTRY_SIZE|inlined.2" + br $"~lib/map/ENTRY_SIZE|inlined.1" end i32.mul i32.add @@ -6075,17 +6791,17 @@ local.get $newPtr i32.store local.get $newPtr - block $"~lib/map/ENTRY_SIZE|inlined.3" (result i32) + block $"~lib/map/ENTRY_SIZE|inlined.2" (result i32) i32.const 12 - br $"~lib/map/ENTRY_SIZE|inlined.3" + br $"~lib/map/ENTRY_SIZE|inlined.2" end i32.add local.set $newPtr end local.get $oldPtr - block $"~lib/map/ENTRY_SIZE|inlined.4" (result i32) + block $"~lib/map/ENTRY_SIZE|inlined.3" (result i32) i32.const 12 - br $"~lib/map/ENTRY_SIZE|inlined.4" + br $"~lib/map/ENTRY_SIZE|inlined.3" end i32.add local.set $oldPtr @@ -6153,252 +6869,77 @@ i32.add global.set $~lib/memory/__stack_pointer ) - (func $"~lib/map/Map#set" (param $this i32) (param $key i32) (param $value i32) (result i32) - (local $hashCode i32) - (local $entry i32) - (local $entries i32) - (local $6 i32) - (local $bucketPtrBase i32) - (local $8 i32) + (func $"~lib/array/Array<~lib/map/KeyValue>#__get" (param $this i32) (param $index i32) (result i32) + (local $value i32) + (local $3 i32) global.get $~lib/memory/__stack_pointer - i32.const 12 + i32.const 8 i32.sub global.set $~lib/memory/__stack_pointer call $~stack_check global.get $~lib/memory/__stack_pointer i64.const 0 i64.store - global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.store offset=8 - local.get $key - call $~lib/util/hash/HASH - local.set $hashCode + local.get $index local.get $this - local.set $8 + local.set $3 global.get $~lib/memory/__stack_pointer - local.get $8 + local.get $3 i32.store - local.get $8 - local.get $key - local.get $hashCode - call $"~lib/map/Map#find" - local.set $entry - local.get $entry + local.get $3 + call $"~lib/array/Array<~lib/map/KeyValue>#get:length_" + i32.ge_u if - local.get $entry - local.get $value - call $"~lib/map/MapEntry#set:value" - i32.const 0 - drop - else - local.get $this - local.set $8 - global.get $~lib/memory/__stack_pointer - local.get $8 - i32.store - local.get $8 - call $"~lib/map/Map#get:entriesOffset" - local.get $this - local.set $8 - global.get $~lib/memory/__stack_pointer - local.get $8 - i32.store - local.get $8 - call $"~lib/map/Map#get:entriesCapacity" - i32.eq - if - local.get $this - local.set $8 - global.get $~lib/memory/__stack_pointer - local.get $8 - i32.store - local.get $8 - local.get $this - local.set $8 - global.get $~lib/memory/__stack_pointer - local.get $8 - i32.store offset=4 - local.get $8 - call $"~lib/map/Map#get:entriesCount" - local.get $this - local.set $8 - global.get $~lib/memory/__stack_pointer - local.get $8 - i32.store offset=4 - local.get $8 - call $"~lib/map/Map#get:entriesCapacity" - i32.const 3 - i32.mul - i32.const 4 - i32.div_s - i32.lt_s - if (result i32) - local.get $this - local.set $8 - global.get $~lib/memory/__stack_pointer - local.get $8 - i32.store offset=4 - local.get $8 - call $"~lib/map/Map#get:bucketsMask" - else - local.get $this - local.set $8 - global.get $~lib/memory/__stack_pointer - local.get $8 - i32.store offset=4 - local.get $8 - call $"~lib/map/Map#get:bucketsMask" - i32.const 1 - i32.shl - i32.const 1 - i32.or - end - call $"~lib/map/Map#rehash" - end - global.get $~lib/memory/__stack_pointer - local.get $this - local.set $8 - global.get $~lib/memory/__stack_pointer - local.get $8 - i32.store - local.get $8 - call $"~lib/map/Map#get:entries" - local.tee $entries - i32.store offset=8 - local.get $entries - local.get $this - local.set $8 - global.get $~lib/memory/__stack_pointer - local.get $8 - i32.store - local.get $8 - local.get $this - local.set $8 - global.get $~lib/memory/__stack_pointer - local.get $8 - i32.store offset=4 - local.get $8 - call $"~lib/map/Map#get:entriesOffset" - local.tee $6 - i32.const 1 - i32.add - call $"~lib/map/Map#set:entriesOffset" - local.get $6 - block $"~lib/map/ENTRY_SIZE|inlined.5" (result i32) - i32.const 12 - br $"~lib/map/ENTRY_SIZE|inlined.5" - end - i32.mul - i32.add - local.set $entry - local.get $entry - local.get $key - call $"~lib/map/MapEntry#set:key" - i32.const 0 - drop - local.get $entry - local.get $value - call $"~lib/map/MapEntry#set:value" - i32.const 0 - drop - local.get $this - local.set $8 - global.get $~lib/memory/__stack_pointer - local.get $8 - i32.store - local.get $8 - local.get $this - local.set $8 - global.get $~lib/memory/__stack_pointer - local.get $8 - i32.store offset=4 - local.get $8 - call $"~lib/map/Map#get:entriesCount" - i32.const 1 - i32.add - call $"~lib/map/Map#set:entriesCount" - local.get $this - local.set $8 - global.get $~lib/memory/__stack_pointer - local.get $8 - i32.store - local.get $8 - call $"~lib/map/Map#get:buckets" - local.get $hashCode - local.get $this - local.set $8 - global.get $~lib/memory/__stack_pointer - local.get $8 - i32.store - local.get $8 - call $"~lib/map/Map#get:bucketsMask" - i32.and - i32.const 4 - i32.mul - i32.add - local.set $bucketPtrBase - local.get $entry - local.get $bucketPtrBase - i32.load - call $"~lib/map/MapEntry#set:taggedNext" - local.get $bucketPtrBase - local.get $entry - i32.store + i32.const 336 + i32.const 544 + i32.const 114 + i32.const 42 + call $~lib/builtins/abort + unreachable end - local.get $this - local.set $8 - global.get $~lib/memory/__stack_pointer - i32.const 12 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $8 - return - ) - (func $"~lib/map/Map#get" (param $this i32) (param $key i32) (result i32) - (local $entry i32) - (local $3 i32) - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.sub - global.set $~lib/memory/__stack_pointer - call $~stack_check global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.store local.get $this local.set $3 global.get $~lib/memory/__stack_pointer local.get $3 i32.store local.get $3 - local.get $key - local.get $key - call $~lib/util/hash/HASH - call $"~lib/map/Map#find" - local.set $entry - local.get $entry + call $"~lib/array/Array<~lib/map/KeyValue>#get:dataStart" + local.get $index + i32.const 2 + i32.shl + i32.add + i32.load + local.tee $value + i32.store offset=4 + i32.const 1 + drop + i32.const 0 + i32.eqz + drop + local.get $value i32.eqz if i32.const 592 - i32.const 656 - i32.const 105 - i32.const 17 + i32.const 544 + i32.const 118 + i32.const 40 call $~lib/builtins/abort unreachable end - local.get $entry - call $"~lib/map/MapEntry#get:value" + local.get $value local.set $3 global.get $~lib/memory/__stack_pointer - i32.const 4 + i32.const 8 i32.add global.set $~lib/memory/__stack_pointer local.get $3 return ) - (func $"~lib/map/Map#get:size" (param $this i32) (result i32) - (local $1 i32) + (func $"~lib/map/Map#find" (param $this i32) (param $key i32) (param $hashCode i32) (result i32) + (local $entry i32) + (local $taggedNext i32) + (local $5 i32) global.get $~lib/memory/__stack_pointer i32.const 4 i32.sub @@ -6408,26 +6949,86 @@ i32.const 0 i32.store local.get $this - local.set $1 + local.set $5 global.get $~lib/memory/__stack_pointer - local.get $1 + local.get $5 i32.store - local.get $1 - call $"~lib/map/Map#get:entriesCount" - local.set $1 + local.get $5 + call $"~lib/map/Map#get:buckets" + local.get $hashCode + local.get $this + local.set $5 + global.get $~lib/memory/__stack_pointer + local.get $5 + i32.store + local.get $5 + call $"~lib/map/Map#get:bucketsMask" + i32.and + i32.const 4 + i32.mul + i32.add + i32.load + local.set $entry + loop $while-continue|0 + local.get $entry + if + local.get $entry + call $"~lib/map/MapEntry#get:taggedNext" + local.set $taggedNext + local.get $taggedNext + i32.const 1 + i32.and + i32.eqz + if (result i32) + local.get $entry + call $"~lib/map/MapEntry#get:key" + i32.extend8_s + local.get $key + i32.extend8_s + i32.eq + else + i32.const 0 + end + if + local.get $entry + local.set $5 + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $5 + return + end + local.get $taggedNext + i32.const 1 + i32.const -1 + i32.xor + i32.and + local.set $entry + br $while-continue|0 + end + end + i32.const 0 + local.set $5 global.get $~lib/memory/__stack_pointer i32.const 4 i32.add global.set $~lib/memory/__stack_pointer - local.get $1 + local.get $5 return ) - (func $~lib/array/Array#constructor (param $this i32) (param $length i32) (result i32) - (local $2 i32) - (local $3 i32) - (local $bufferSize i32) - (local $buffer i32) - (local $6 i32) + (func $"~lib/map/Map#constructor" (param $this i32) (param $initialEntries i32) (result i32) + (local $entriesLength i32) + (local $i i32) + (local $key i32) + (local $value i32) + (local $hashCode i32) + (local $entry i32) + (local $entries i32) + (local $9 i32) + (local $entry|10 i32) + (local $bucketPtrBase i32) + (local $12 i32) global.get $~lib/memory/__stack_pointer i32.const 16 i32.sub @@ -6443,312 +7044,348 @@ i32.eqz if global.get $~lib/memory/__stack_pointer - i32.const 16 - i32.const 5 + i32.const 24 + i32.const 4 call $~lib/rt/itcms/__new local.tee $this i32.store end local.get $this - local.set $6 + local.set $12 global.get $~lib/memory/__stack_pointer - local.get $6 + local.get $12 i32.store offset=4 - local.get $6 + local.get $12 i32.const 0 - call $~lib/array/Array#set:buffer - local.get $this - local.set $6 + i32.const 4 + i32.const 4 + i32.mul + call $~lib/arraybuffer/ArrayBuffer#constructor + local.set $12 global.get $~lib/memory/__stack_pointer - local.get $6 - i32.store offset=4 - local.get $6 - i32.const 0 - call $~lib/array/Array#set:dataStart + local.get $12 + i32.store offset=8 + local.get $12 + call $"~lib/map/Map#set:buckets" local.get $this - local.set $6 + local.set $12 global.get $~lib/memory/__stack_pointer - local.get $6 + local.get $12 i32.store offset=4 - local.get $6 - i32.const 0 - call $~lib/array/Array#set:byteLength + local.get $12 + i32.const 4 + i32.const 1 + i32.sub + call $"~lib/map/Map#set:bucketsMask" local.get $this - local.set $6 + local.set $12 global.get $~lib/memory/__stack_pointer - local.get $6 + local.get $12 i32.store offset=4 - local.get $6 - i32.const 0 - call $~lib/array/Array#set:length_ - local.get $length - i32.const 1073741820 + local.get $12 i32.const 0 - i32.shr_u - i32.gt_u - if - i32.const 432 - i32.const 704 - i32.const 70 - i32.const 60 - call $~lib/builtins/abort - unreachable + i32.const 4 + block $"~lib/map/ENTRY_SIZE|inlined.5" (result i32) + i32.const 12 + br $"~lib/map/ENTRY_SIZE|inlined.5" end - local.get $length - local.tee $2 - i32.const 8 - local.tee $3 - local.get $2 - local.get $3 - i32.gt_u - select - i32.const 0 - i32.shl - local.set $bufferSize + i32.mul + call $~lib/arraybuffer/ArrayBuffer#constructor + local.set $12 global.get $~lib/memory/__stack_pointer - local.get $bufferSize - i32.const 1 - call $~lib/rt/itcms/__new - local.tee $buffer + local.get $12 i32.store offset=8 - i32.const 2 - global.get $~lib/shared/runtime/Runtime.Incremental - i32.ne - drop + local.get $12 + call $"~lib/map/Map#set:entries" local.get $this - local.set $6 + local.set $12 global.get $~lib/memory/__stack_pointer - local.get $6 + local.get $12 i32.store offset=4 - local.get $6 - local.get $buffer - local.set $6 - global.get $~lib/memory/__stack_pointer - local.get $6 - i32.store offset=12 - local.get $6 - call $~lib/array/Array#set:buffer + local.get $12 + i32.const 4 + call $"~lib/map/Map#set:entriesCapacity" local.get $this - local.set $6 + local.set $12 global.get $~lib/memory/__stack_pointer - local.get $6 + local.get $12 i32.store offset=4 - local.get $6 - local.get $buffer - call $~lib/array/Array#set:dataStart + local.get $12 + i32.const 0 + call $"~lib/map/Map#set:entriesOffset" local.get $this - local.set $6 + local.set $12 global.get $~lib/memory/__stack_pointer - local.get $6 + local.get $12 i32.store offset=4 - local.get $6 - local.get $bufferSize - call $~lib/array/Array#set:byteLength - local.get $this - local.set $6 + local.get $12 + i32.const 0 + call $"~lib/map/Map#set:entriesCount" + local.get $initialEntries + local.set $12 global.get $~lib/memory/__stack_pointer - local.get $6 + local.get $12 i32.store offset=4 - local.get $6 - local.get $length - call $~lib/array/Array#set:length_ - local.get $this - local.set $6 - global.get $~lib/memory/__stack_pointer - i32.const 16 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $6 - ) - (func $~lib/array/ensureCapacity (param $array i32) (param $newSize i32) (param $alignLog2 i32) (param $canGrow i32) - (local $oldCapacity i32) - (local $oldData i32) - (local $6 i32) - (local $7 i32) - (local $newCapacity i32) - (local $9 i32) - (local $10 i32) - (local $11 i32) - (local $12 i32) - (local $newData i32) - (local $14 i32) - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.sub - global.set $~lib/memory/__stack_pointer - call $~stack_check - global.get $~lib/memory/__stack_pointer + local.get $12 + call $"~lib/array/Array<~lib/map/KeyValue>#get:length" + local.set $entriesLength + local.get $entriesLength i32.const 0 - i32.store - local.get $array - local.set $14 - global.get $~lib/memory/__stack_pointer - local.get $14 - i32.store - local.get $14 - call $~lib/arraybuffer/ArrayBufferView#get:byteLength - local.set $oldCapacity - local.get $newSize - local.get $oldCapacity - local.get $alignLog2 - i32.shr_u - i32.gt_u + i32.gt_s if - local.get $newSize - i32.const 1073741820 - local.get $alignLog2 - i32.shr_u - i32.gt_u - if - i32.const 432 - i32.const 704 - i32.const 19 - i32.const 48 - call $~lib/builtins/abort - unreachable - end - local.get $array - local.set $14 + local.get $entriesLength + local.get $this + local.set $12 global.get $~lib/memory/__stack_pointer - local.get $14 - i32.store - local.get $14 - call $~lib/arraybuffer/ArrayBufferView#get:buffer - local.set $oldData - local.get $newSize - local.tee $6 - i32.const 8 - local.tee $7 - local.get $6 - local.get $7 - i32.gt_u - select - local.get $alignLog2 - i32.shl - local.set $newCapacity - local.get $canGrow + local.get $12 + i32.store offset=4 + local.get $12 + call $"~lib/map/Map#get:entriesCapacity" + i32.ge_s if - local.get $oldCapacity - i32.const 1 - i32.shl - local.tee $9 - i32.const 1073741820 - local.tee $10 - local.get $9 - local.get $10 - i32.lt_u - select - local.tee $11 - local.get $newCapacity - local.tee $12 - local.get $11 + local.get $this + local.set $12 + global.get $~lib/memory/__stack_pointer local.get $12 - i32.gt_u - select - local.set $newCapacity - end - local.get $oldData - local.get $newCapacity - call $~lib/rt/itcms/__renew - local.set $newData - i32.const 2 - global.get $~lib/shared/runtime/Runtime.Incremental - i32.ne - drop - local.get $newData - local.get $oldData - i32.ne - if - local.get $array - local.get $newData - i32.store - local.get $array - local.get $newData i32.store offset=4 - local.get $array - local.get $newData - i32.const 0 - call $~lib/rt/itcms/__link + local.get $12 + local.get $entriesLength + call $"~lib/map/Map#set:bucketsMask" end - local.get $array - local.get $newCapacity + local.get $this + local.set $12 + global.get $~lib/memory/__stack_pointer + local.get $12 + i32.store offset=4 + local.get $12 + local.get $this + local.set $12 + global.get $~lib/memory/__stack_pointer + local.get $12 i32.store offset=8 + local.get $12 + call $"~lib/map/Map#get:bucketsMask" + i32.const 1 + i32.shl + i32.const 1 + i32.or + call $"~lib/map/Map#rehash" + i32.const 0 + local.set $i + loop $for-loop|0 + local.get $i + local.get $entriesLength + i32.lt_s + if + local.get $initialEntries + local.set $12 + global.get $~lib/memory/__stack_pointer + local.get $12 + i32.store offset=8 + local.get $12 + local.get $i + call $"~lib/array/Array<~lib/map/KeyValue>#__get" + local.set $12 + global.get $~lib/memory/__stack_pointer + local.get $12 + i32.store offset=4 + local.get $12 + call $"~lib/map/KeyValue#get:key" + local.set $key + local.get $initialEntries + local.set $12 + global.get $~lib/memory/__stack_pointer + local.get $12 + i32.store offset=8 + local.get $12 + local.get $i + call $"~lib/array/Array<~lib/map/KeyValue>#__get" + local.set $12 + global.get $~lib/memory/__stack_pointer + local.get $12 + i32.store offset=4 + local.get $12 + call $"~lib/map/KeyValue#get:value" + local.set $value + local.get $key + call $~lib/util/hash/HASH + local.set $hashCode + local.get $this + local.set $12 + global.get $~lib/memory/__stack_pointer + local.get $12 + i32.store offset=4 + local.get $12 + local.get $key + local.get $hashCode + call $"~lib/map/Map#find" + local.set $entry + local.get $entry + if + local.get $entry + local.get $value + call $"~lib/map/MapEntry#set:value" + i32.const 0 + drop + else + global.get $~lib/memory/__stack_pointer + local.get $this + local.set $12 + global.get $~lib/memory/__stack_pointer + local.get $12 + i32.store offset=4 + local.get $12 + call $"~lib/map/Map#get:entries" + local.tee $entries + i32.store offset=12 + local.get $entries + local.get $this + local.set $12 + global.get $~lib/memory/__stack_pointer + local.get $12 + i32.store offset=4 + local.get $12 + local.get $this + local.set $12 + global.get $~lib/memory/__stack_pointer + local.get $12 + i32.store offset=8 + local.get $12 + call $"~lib/map/Map#get:entriesOffset" + local.tee $9 + i32.const 1 + i32.add + call $"~lib/map/Map#set:entriesOffset" + local.get $9 + block $"~lib/map/ENTRY_SIZE|inlined.4" (result i32) + i32.const 12 + br $"~lib/map/ENTRY_SIZE|inlined.4" + end + i32.mul + i32.add + local.set $entry|10 + local.get $entry|10 + local.get $key + call $"~lib/map/MapEntry#set:key" + i32.const 0 + drop + local.get $entry|10 + local.get $value + call $"~lib/map/MapEntry#set:value" + i32.const 0 + drop + local.get $this + local.set $12 + global.get $~lib/memory/__stack_pointer + local.get $12 + i32.store offset=4 + local.get $12 + local.get $this + local.set $12 + global.get $~lib/memory/__stack_pointer + local.get $12 + i32.store offset=8 + local.get $12 + call $"~lib/map/Map#get:entriesCount" + i32.const 1 + i32.add + call $"~lib/map/Map#set:entriesCount" + local.get $this + local.set $12 + global.get $~lib/memory/__stack_pointer + local.get $12 + i32.store offset=4 + local.get $12 + call $"~lib/map/Map#get:buckets" + local.get $hashCode + local.get $this + local.set $12 + global.get $~lib/memory/__stack_pointer + local.get $12 + i32.store offset=4 + local.get $12 + call $"~lib/map/Map#get:bucketsMask" + i32.and + i32.const 4 + i32.mul + i32.add + local.set $bucketPtrBase + local.get $entry|10 + local.get $bucketPtrBase + i32.load + call $"~lib/map/MapEntry#set:taggedNext" + local.get $bucketPtrBase + local.get $entry|10 + i32.store + end + local.get $i + i32.const 1 + i32.add + local.set $i + br $for-loop|0 + end + end end + local.get $this + local.set $12 global.get $~lib/memory/__stack_pointer - i32.const 4 + i32.const 16 i32.add global.set $~lib/memory/__stack_pointer + local.get $12 ) - (func $~lib/array/Array#__set (param $this i32) (param $index i32) (param $value i32) + (func $"~lib/map/Map#constructor@varargs" (param $this i32) (param $initialEntries i32) (result i32) + (local $2 i32) (local $3 i32) global.get $~lib/memory/__stack_pointer - i32.const 4 + i32.const 12 i32.sub global.set $~lib/memory/__stack_pointer call $~stack_check global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.store - local.get $index - local.get $this - local.set $3 + i64.const 0 + i64.store global.get $~lib/memory/__stack_pointer - local.get $3 - i32.store - local.get $3 - call $~lib/array/Array#get:length_ - i32.ge_u - if - local.get $index - i32.const 0 - i32.lt_s - if - i32.const 224 - i32.const 704 - i32.const 130 - i32.const 22 - call $~lib/builtins/abort + i32.const 0 + i32.store offset=8 + block $1of1 + block $0of1 + block $outOfRange + global.get $~argumentsLength + br_table $0of1 $1of1 $outOfRange + end unreachable end - local.get $this - local.get $index - i32.const 1 - i32.add - i32.const 0 - i32.const 1 - call $~lib/array/ensureCapacity - local.get $this - local.set $3 global.get $~lib/memory/__stack_pointer - local.get $3 + i32.const 0 + i32.const 2 + i32.const 6 + i32.const 720 + call $~lib/rt/__newArray + local.tee $initialEntries i32.store - local.get $3 - local.get $index - i32.const 1 - i32.add - call $~lib/array/Array#set:length_ end local.get $this local.set $3 global.get $~lib/memory/__stack_pointer local.get $3 - i32.store + i32.store offset=4 local.get $3 - call $~lib/array/Array#get:dataStart - local.get $index - i32.const 0 - i32.shl - i32.add - local.get $value - i32.store8 - i32.const 0 - drop + local.get $initialEntries + local.set $3 global.get $~lib/memory/__stack_pointer - i32.const 4 + local.get $3 + i32.store offset=8 + local.get $3 + call $"~lib/map/Map#constructor" + local.set $3 + global.get $~lib/memory/__stack_pointer + i32.const 12 i32.add global.set $~lib/memory/__stack_pointer + local.get $3 ) - (func $~lib/array/Array#set:length (param $this i32) (param $newLength i32) + (func $"~lib/map/Map#has" (param $this i32) (param $key i32) (result i32) (local $2 i32) global.get $~lib/memory/__stack_pointer i32.const 4 @@ -6759,127 +7396,295 @@ i32.const 0 i32.store local.get $this - local.get $newLength - i32.const 0 - i32.const 0 - call $~lib/array/ensureCapacity - local.get $this local.set $2 global.get $~lib/memory/__stack_pointer local.get $2 i32.store local.get $2 - local.get $newLength - call $~lib/array/Array#set:length_ + local.get $key + local.get $key + call $~lib/util/hash/HASH + call $"~lib/map/Map#find" + i32.const 0 + i32.ne + local.set $2 global.get $~lib/memory/__stack_pointer i32.const 4 i32.add global.set $~lib/memory/__stack_pointer + local.get $2 + return ) - (func $"~lib/map/Map#keys" (param $this i32) (result i32) - (local $start i32) - (local $size i32) - (local $keys i32) - (local $length i32) - (local $i i32) + (func $"~lib/map/Map#set" (param $this i32) (param $key i32) (param $value i32) (result i32) + (local $hashCode i32) (local $entry i32) - (local $7 i32) + (local $entries i32) + (local $6 i32) + (local $bucketPtrBase i32) (local $8 i32) global.get $~lib/memory/__stack_pointer - i32.const 8 + i32.const 12 i32.sub global.set $~lib/memory/__stack_pointer call $~stack_check global.get $~lib/memory/__stack_pointer i64.const 0 i64.store - local.get $this - local.set $8 global.get $~lib/memory/__stack_pointer - local.get $8 - i32.store - local.get $8 - call $"~lib/map/Map#get:entries" - local.set $start + i32.const 0 + i32.store offset=8 + local.get $key + call $~lib/util/hash/HASH + local.set $hashCode local.get $this local.set $8 global.get $~lib/memory/__stack_pointer local.get $8 i32.store local.get $8 - call $"~lib/map/Map#get:entriesOffset" - local.set $size - global.get $~lib/memory/__stack_pointer - i32.const 0 - local.get $size - call $~lib/array/Array#constructor - local.tee $keys - i32.store offset=4 - i32.const 0 - local.set $length - i32.const 0 - local.set $i - loop $for-loop|0 - local.get $i - local.get $size - i32.lt_s - if - local.get $start - local.get $i - block $"~lib/map/ENTRY_SIZE|inlined.6" (result i32) - i32.const 12 - br $"~lib/map/ENTRY_SIZE|inlined.6" - end - i32.mul - i32.add - local.set $entry - local.get $entry - call $"~lib/map/MapEntry#get:taggedNext" - i32.const 1 - i32.and - i32.eqz - if - local.get $keys + local.get $key + local.get $hashCode + call $"~lib/map/Map#find" + local.set $entry + local.get $entry + if + local.get $entry + local.get $value + call $"~lib/map/MapEntry#set:value" + i32.const 0 + drop + else + local.get $this + local.set $8 + global.get $~lib/memory/__stack_pointer + local.get $8 + i32.store + local.get $8 + call $"~lib/map/Map#get:entriesOffset" + local.get $this + local.set $8 + global.get $~lib/memory/__stack_pointer + local.get $8 + i32.store + local.get $8 + call $"~lib/map/Map#get:entriesCapacity" + i32.eq + if + local.get $this + local.set $8 + global.get $~lib/memory/__stack_pointer + local.get $8 + i32.store + local.get $8 + local.get $this + local.set $8 + global.get $~lib/memory/__stack_pointer + local.get $8 + i32.store offset=4 + local.get $8 + call $"~lib/map/Map#get:entriesCount" + local.get $this + local.set $8 + global.get $~lib/memory/__stack_pointer + local.get $8 + i32.store offset=4 + local.get $8 + call $"~lib/map/Map#get:entriesCapacity" + i32.const 3 + i32.mul + i32.const 4 + i32.div_s + i32.lt_s + if (result i32) + local.get $this local.set $8 global.get $~lib/memory/__stack_pointer local.get $8 - i32.store + i32.store offset=4 local.get $8 - local.get $length - local.tee $7 + call $"~lib/map/Map#get:bucketsMask" + else + local.get $this + local.set $8 + global.get $~lib/memory/__stack_pointer + local.get $8 + i32.store offset=4 + local.get $8 + call $"~lib/map/Map#get:bucketsMask" i32.const 1 - i32.add - local.set $length - local.get $7 - local.get $entry - call $"~lib/map/MapEntry#get:key" - call $~lib/array/Array#__set + i32.shl + i32.const 1 + i32.or end - local.get $i - i32.const 1 - i32.add - local.set $i - br $for-loop|0 + call $"~lib/map/Map#rehash" + end + global.get $~lib/memory/__stack_pointer + local.get $this + local.set $8 + global.get $~lib/memory/__stack_pointer + local.get $8 + i32.store + local.get $8 + call $"~lib/map/Map#get:entries" + local.tee $entries + i32.store offset=8 + local.get $entries + local.get $this + local.set $8 + global.get $~lib/memory/__stack_pointer + local.get $8 + i32.store + local.get $8 + local.get $this + local.set $8 + global.get $~lib/memory/__stack_pointer + local.get $8 + i32.store offset=4 + local.get $8 + call $"~lib/map/Map#get:entriesOffset" + local.tee $6 + i32.const 1 + i32.add + call $"~lib/map/Map#set:entriesOffset" + local.get $6 + block $"~lib/map/ENTRY_SIZE|inlined.6" (result i32) + i32.const 12 + br $"~lib/map/ENTRY_SIZE|inlined.6" end + i32.mul + i32.add + local.set $entry + local.get $entry + local.get $key + call $"~lib/map/MapEntry#set:key" + i32.const 0 + drop + local.get $entry + local.get $value + call $"~lib/map/MapEntry#set:value" + i32.const 0 + drop + local.get $this + local.set $8 + global.get $~lib/memory/__stack_pointer + local.get $8 + i32.store + local.get $8 + local.get $this + local.set $8 + global.get $~lib/memory/__stack_pointer + local.get $8 + i32.store offset=4 + local.get $8 + call $"~lib/map/Map#get:entriesCount" + i32.const 1 + i32.add + call $"~lib/map/Map#set:entriesCount" + local.get $this + local.set $8 + global.get $~lib/memory/__stack_pointer + local.get $8 + i32.store + local.get $8 + call $"~lib/map/Map#get:buckets" + local.get $hashCode + local.get $this + local.set $8 + global.get $~lib/memory/__stack_pointer + local.get $8 + i32.store + local.get $8 + call $"~lib/map/Map#get:bucketsMask" + i32.and + i32.const 4 + i32.mul + i32.add + local.set $bucketPtrBase + local.get $entry + local.get $bucketPtrBase + i32.load + call $"~lib/map/MapEntry#set:taggedNext" + local.get $bucketPtrBase + local.get $entry + i32.store end - local.get $keys + local.get $this local.set $8 global.get $~lib/memory/__stack_pointer + i32.const 12 + i32.add + global.set $~lib/memory/__stack_pointer local.get $8 + return + ) + (func $"~lib/map/Map#get" (param $this i32) (param $key i32) (result i32) + (local $entry i32) + (local $3 i32) + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.sub + global.set $~lib/memory/__stack_pointer + call $~stack_check + global.get $~lib/memory/__stack_pointer + i32.const 0 i32.store - local.get $8 - local.get $length - call $~lib/array/Array#set:length - local.get $keys - local.set $8 + local.get $this + local.set $3 global.get $~lib/memory/__stack_pointer - i32.const 8 + local.get $3 + i32.store + local.get $3 + local.get $key + local.get $key + call $~lib/util/hash/HASH + call $"~lib/map/Map#find" + local.set $entry + local.get $entry + i32.eqz + if + i32.const 800 + i32.const 864 + i32.const 148 + i32.const 17 + call $~lib/builtins/abort + unreachable + end + local.get $entry + call $"~lib/map/MapEntry#get:value" + local.set $3 + global.get $~lib/memory/__stack_pointer + i32.const 4 i32.add global.set $~lib/memory/__stack_pointer - local.get $8 + local.get $3 return ) - (func $~lib/array/Array#constructor (param $this i32) (param $length i32) (result i32) + (func $"~lib/map/Map#get:size" (param $this i32) (result i32) + (local $1 i32) + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.sub + global.set $~lib/memory/__stack_pointer + call $~stack_check + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store + local.get $this + local.set $1 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store + local.get $1 + call $"~lib/map/Map#get:entriesCount" + local.set $1 + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $1 + return + ) + (func $~lib/array/Array#constructor (param $this i32) (param $length i32) (result i32) (local $2 i32) (local $3 i32) (local $bufferSize i32) @@ -6901,7 +7706,7 @@ if global.get $~lib/memory/__stack_pointer i32.const 16 - i32.const 6 + i32.const 8 call $~lib/rt/itcms/__new local.tee $this i32.store @@ -6913,7 +7718,7 @@ i32.store offset=4 local.get $6 i32.const 0 - call $~lib/array/Array#set:buffer + call $~lib/array/Array#set:buffer local.get $this local.set $6 global.get $~lib/memory/__stack_pointer @@ -6921,7 +7726,7 @@ i32.store offset=4 local.get $6 i32.const 0 - call $~lib/array/Array#set:dataStart + call $~lib/array/Array#set:dataStart local.get $this local.set $6 global.get $~lib/memory/__stack_pointer @@ -6929,7 +7734,7 @@ i32.store offset=4 local.get $6 i32.const 0 - call $~lib/array/Array#set:byteLength + call $~lib/array/Array#set:byteLength local.get $this local.set $6 global.get $~lib/memory/__stack_pointer @@ -6937,15 +7742,15 @@ i32.store offset=4 local.get $6 i32.const 0 - call $~lib/array/Array#set:length_ + call $~lib/array/Array#set:length_ local.get $length i32.const 1073741820 - i32.const 2 + i32.const 0 i32.shr_u i32.gt_u if - i32.const 432 - i32.const 704 + i32.const 32 + i32.const 544 i32.const 70 i32.const 60 call $~lib/builtins/abort @@ -6959,7 +7764,7 @@ local.get $3 i32.gt_u select - i32.const 2 + i32.const 0 i32.shl local.set $bufferSize global.get $~lib/memory/__stack_pointer @@ -6984,7 +7789,7 @@ local.get $6 i32.store offset=12 local.get $6 - call $~lib/array/Array#set:buffer + call $~lib/array/Array#set:buffer local.get $this local.set $6 global.get $~lib/memory/__stack_pointer @@ -6992,7 +7797,7 @@ i32.store offset=4 local.get $6 local.get $buffer - call $~lib/array/Array#set:dataStart + call $~lib/array/Array#set:dataStart local.get $this local.set $6 global.get $~lib/memory/__stack_pointer @@ -7000,7 +7805,7 @@ i32.store offset=4 local.get $6 local.get $bufferSize - call $~lib/array/Array#set:byteLength + call $~lib/array/Array#set:byteLength local.get $this local.set $6 global.get $~lib/memory/__stack_pointer @@ -7008,7 +7813,7 @@ i32.store offset=4 local.get $6 local.get $length - call $~lib/array/Array#set:length_ + call $~lib/array/Array#set:length_ local.get $this local.set $6 global.get $~lib/memory/__stack_pointer @@ -7017,7 +7822,126 @@ global.set $~lib/memory/__stack_pointer local.get $6 ) - (func $~lib/array/Array#__set (param $this i32) (param $index i32) (param $value i32) + (func $~lib/array/ensureCapacity (param $array i32) (param $newSize i32) (param $alignLog2 i32) (param $canGrow i32) + (local $oldCapacity i32) + (local $oldData i32) + (local $6 i32) + (local $7 i32) + (local $newCapacity i32) + (local $9 i32) + (local $10 i32) + (local $11 i32) + (local $12 i32) + (local $newData i32) + (local $14 i32) + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.sub + global.set $~lib/memory/__stack_pointer + call $~stack_check + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store + local.get $array + local.set $14 + global.get $~lib/memory/__stack_pointer + local.get $14 + i32.store + local.get $14 + call $~lib/arraybuffer/ArrayBufferView#get:byteLength + local.set $oldCapacity + local.get $newSize + local.get $oldCapacity + local.get $alignLog2 + i32.shr_u + i32.gt_u + if + local.get $newSize + i32.const 1073741820 + local.get $alignLog2 + i32.shr_u + i32.gt_u + if + i32.const 32 + i32.const 544 + i32.const 19 + i32.const 48 + call $~lib/builtins/abort + unreachable + end + local.get $array + local.set $14 + global.get $~lib/memory/__stack_pointer + local.get $14 + i32.store + local.get $14 + call $~lib/arraybuffer/ArrayBufferView#get:buffer + local.set $oldData + local.get $newSize + local.tee $6 + i32.const 8 + local.tee $7 + local.get $6 + local.get $7 + i32.gt_u + select + local.get $alignLog2 + i32.shl + local.set $newCapacity + local.get $canGrow + if + local.get $oldCapacity + i32.const 1 + i32.shl + local.tee $9 + i32.const 1073741820 + local.tee $10 + local.get $9 + local.get $10 + i32.lt_u + select + local.tee $11 + local.get $newCapacity + local.tee $12 + local.get $11 + local.get $12 + i32.gt_u + select + local.set $newCapacity + end + local.get $oldData + local.get $newCapacity + call $~lib/rt/itcms/__renew + local.set $newData + i32.const 2 + global.get $~lib/shared/runtime/Runtime.Incremental + i32.ne + drop + local.get $newData + local.get $oldData + i32.ne + if + local.get $array + local.get $newData + i32.store + local.get $array + local.get $newData + i32.store offset=4 + local.get $array + local.get $newData + i32.const 0 + call $~lib/rt/itcms/__link + end + local.get $array + local.get $newCapacity + i32.store offset=8 + end + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + ) + (func $~lib/array/Array#__set (param $this i32) (param $index i32) (param $value i32) (local $3 i32) global.get $~lib/memory/__stack_pointer i32.const 4 @@ -7034,15 +7958,15 @@ local.get $3 i32.store local.get $3 - call $~lib/array/Array#get:length_ + call $~lib/array/Array#get:length_ i32.ge_u if local.get $index i32.const 0 i32.lt_s if - i32.const 224 - i32.const 704 + i32.const 336 + i32.const 544 i32.const 130 i32.const 22 call $~lib/builtins/abort @@ -7052,7 +7976,7 @@ local.get $index i32.const 1 i32.add - i32.const 2 + i32.const 0 i32.const 1 call $~lib/array/ensureCapacity local.get $this @@ -7064,7 +7988,7 @@ local.get $index i32.const 1 i32.add - call $~lib/array/Array#set:length_ + call $~lib/array/Array#set:length_ end local.get $this local.set $3 @@ -7072,13 +7996,13 @@ local.get $3 i32.store local.get $3 - call $~lib/array/Array#get:dataStart + call $~lib/array/Array#get:dataStart local.get $index - i32.const 2 + i32.const 0 i32.shl i32.add local.get $value - i32.store + i32.store8 i32.const 0 drop global.get $~lib/memory/__stack_pointer @@ -7086,7 +8010,7 @@ i32.add global.set $~lib/memory/__stack_pointer ) - (func $~lib/array/Array#set:length (param $this i32) (param $newLength i32) + (func $~lib/array/Array#set:length (param $this i32) (param $newLength i32) (local $2 i32) global.get $~lib/memory/__stack_pointer i32.const 4 @@ -7098,7 +8022,7 @@ i32.store local.get $this local.get $newLength - i32.const 2 + i32.const 0 i32.const 0 call $~lib/array/ensureCapacity local.get $this @@ -7108,16 +8032,16 @@ i32.store local.get $2 local.get $newLength - call $~lib/array/Array#set:length_ + call $~lib/array/Array#set:length_ global.get $~lib/memory/__stack_pointer i32.const 4 i32.add global.set $~lib/memory/__stack_pointer ) - (func $"~lib/map/Map#values" (param $this i32) (result i32) + (func $"~lib/map/Map#keys" (param $this i32) (result i32) (local $start i32) (local $size i32) - (local $values i32) + (local $keys i32) (local $length i32) (local $i i32) (local $entry i32) @@ -7150,8 +8074,8 @@ global.get $~lib/memory/__stack_pointer i32.const 0 local.get $size - call $~lib/array/Array#constructor - local.tee $values + call $~lib/array/Array#constructor + local.tee $keys i32.store offset=4 i32.const 0 local.set $length @@ -7177,7 +8101,7 @@ i32.and i32.eqz if - local.get $values + local.get $keys local.set $8 global.get $~lib/memory/__stack_pointer local.get $8 @@ -7190,8 +8114,8 @@ local.set $length local.get $7 local.get $entry - call $"~lib/map/MapEntry#get:value" - call $~lib/array/Array#__set + call $"~lib/map/MapEntry#get:key" + call $~lib/array/Array#__set end local.get $i i32.const 1 @@ -7200,15 +8124,15 @@ br $for-loop|0 end end - local.get $values + local.get $keys local.set $8 global.get $~lib/memory/__stack_pointer local.get $8 i32.store local.get $8 local.get $length - call $~lib/array/Array#set:length - local.get $values + call $~lib/array/Array#set:length + local.get $keys local.set $8 global.get $~lib/memory/__stack_pointer i32.const 8 @@ -7217,10 +8141,14 @@ local.get $8 return ) - (func $"~lib/map/Map#constructor" (param $this i32) (result i32) - (local $1 i32) + (func $~lib/array/Array#constructor (param $this i32) (param $length i32) (result i32) + (local $2 i32) + (local $3 i32) + (local $bufferSize i32) + (local $buffer i32) + (local $6 i32) global.get $~lib/memory/__stack_pointer - i32.const 12 + i32.const 16 i32.sub global.set $~lib/memory/__stack_pointer call $~stack_check @@ -7228,226 +8156,130 @@ i64.const 0 i64.store global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.store offset=8 + i64.const 0 + i64.store offset=8 local.get $this i32.eqz if global.get $~lib/memory/__stack_pointer - i32.const 24 + i32.const 16 i32.const 7 call $~lib/rt/itcms/__new local.tee $this i32.store end local.get $this - local.set $1 + local.set $6 global.get $~lib/memory/__stack_pointer - local.get $1 + local.get $6 i32.store offset=4 - local.get $1 + local.get $6 i32.const 0 - i32.const 4 - i32.const 4 - i32.mul - call $~lib/arraybuffer/ArrayBuffer#constructor - local.set $1 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=8 - local.get $1 - call $"~lib/map/Map#set:buckets" - local.get $this - local.set $1 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - local.get $1 - i32.const 4 - i32.const 1 - i32.sub - call $"~lib/map/Map#set:bucketsMask" + call $~lib/array/Array#set:buffer local.get $this - local.set $1 + local.set $6 global.get $~lib/memory/__stack_pointer - local.get $1 + local.get $6 i32.store offset=4 - local.get $1 + local.get $6 i32.const 0 - i32.const 4 - block $"~lib/map/ENTRY_SIZE|inlined.0" (result i32) - i32.const 8 - br $"~lib/map/ENTRY_SIZE|inlined.0" - end - i32.mul - call $~lib/arraybuffer/ArrayBuffer#constructor - local.set $1 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=8 - local.get $1 - call $"~lib/map/Map#set:entries" - local.get $this - local.set $1 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - local.get $1 - i32.const 4 - call $"~lib/map/Map#set:entriesCapacity" + call $~lib/array/Array#set:dataStart local.get $this - local.set $1 + local.set $6 global.get $~lib/memory/__stack_pointer - local.get $1 + local.get $6 i32.store offset=4 - local.get $1 + local.get $6 i32.const 0 - call $"~lib/map/Map#set:entriesOffset" + call $~lib/array/Array#set:byteLength local.get $this - local.set $1 + local.set $6 global.get $~lib/memory/__stack_pointer - local.get $1 + local.get $6 i32.store offset=4 - local.get $1 + local.get $6 i32.const 0 - call $"~lib/map/Map#set:entriesCount" - local.get $this - local.set $1 - global.get $~lib/memory/__stack_pointer - i32.const 12 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $1 - ) - (func $"~lib/map/Map#constructor" (param $this i32) (result i32) - (local $1 i32) - global.get $~lib/memory/__stack_pointer - i32.const 12 - i32.sub - global.set $~lib/memory/__stack_pointer - call $~stack_check - global.get $~lib/memory/__stack_pointer - i64.const 0 - i64.store - global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.store offset=8 - local.get $this - i32.eqz + call $~lib/array/Array#set:length_ + local.get $length + i32.const 1073741820 + i32.const 2 + i32.shr_u + i32.gt_u if - global.get $~lib/memory/__stack_pointer - i32.const 24 - i32.const 8 - call $~lib/rt/itcms/__new - local.tee $this - i32.store + i32.const 32 + i32.const 544 + i32.const 70 + i32.const 60 + call $~lib/builtins/abort + unreachable end - local.get $this - local.set $1 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - local.get $1 - i32.const 0 - i32.const 4 - i32.const 4 - i32.mul - call $~lib/arraybuffer/ArrayBuffer#constructor - local.set $1 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=8 - local.get $1 - call $"~lib/map/Map#set:buckets" - local.get $this - local.set $1 + local.get $length + local.tee $2 + i32.const 8 + local.tee $3 + local.get $2 + local.get $3 + i32.gt_u + select + i32.const 2 + i32.shl + local.set $bufferSize global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - local.get $1 - i32.const 4 + local.get $bufferSize i32.const 1 - i32.sub - call $"~lib/map/Map#set:bucketsMask" + call $~lib/rt/itcms/__new + local.tee $buffer + i32.store offset=8 + i32.const 2 + global.get $~lib/shared/runtime/Runtime.Incremental + i32.ne + drop local.get $this - local.set $1 + local.set $6 global.get $~lib/memory/__stack_pointer - local.get $1 + local.get $6 i32.store offset=4 - local.get $1 - i32.const 0 - i32.const 4 - block $"~lib/map/ENTRY_SIZE|inlined.0" (result i32) - i32.const 12 - br $"~lib/map/ENTRY_SIZE|inlined.0" - end - i32.mul - call $~lib/arraybuffer/ArrayBuffer#constructor - local.set $1 + local.get $6 + local.get $buffer + local.set $6 global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=8 - local.get $1 - call $"~lib/map/Map#set:entries" + local.get $6 + i32.store offset=12 + local.get $6 + call $~lib/array/Array#set:buffer local.get $this - local.set $1 + local.set $6 global.get $~lib/memory/__stack_pointer - local.get $1 + local.get $6 i32.store offset=4 - local.get $1 - i32.const 4 - call $"~lib/map/Map#set:entriesCapacity" + local.get $6 + local.get $buffer + call $~lib/array/Array#set:dataStart local.get $this - local.set $1 + local.set $6 global.get $~lib/memory/__stack_pointer - local.get $1 + local.get $6 i32.store offset=4 - local.get $1 - i32.const 0 - call $"~lib/map/Map#set:entriesOffset" + local.get $6 + local.get $bufferSize + call $~lib/array/Array#set:byteLength local.get $this - local.set $1 + local.set $6 global.get $~lib/memory/__stack_pointer - local.get $1 + local.get $6 i32.store offset=4 - local.get $1 - i32.const 0 - call $"~lib/map/Map#set:entriesCount" - local.get $this - local.set $1 - global.get $~lib/memory/__stack_pointer - i32.const 12 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $1 - ) - (func $~lib/array/Array#get:length (param $this i32) (result i32) - (local $1 i32) - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.sub - global.set $~lib/memory/__stack_pointer - call $~stack_check - global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.store + local.get $6 + local.get $length + call $~lib/array/Array#set:length_ local.get $this - local.set $1 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store - local.get $1 - call $~lib/array/Array#get:length_ - local.set $1 + local.set $6 global.get $~lib/memory/__stack_pointer - i32.const 4 + i32.const 16 i32.add global.set $~lib/memory/__stack_pointer - local.get $1 - return + local.get $6 ) - (func $~lib/array/Array#__get (param $this i32) (param $index i32) (result i32) - (local $value i32) + (func $~lib/array/Array#__set (param $this i32) (param $index i32) (param $value i32) (local $3 i32) global.get $~lib/memory/__stack_pointer i32.const 4 @@ -7464,15 +8296,37 @@ local.get $3 i32.store local.get $3 - call $~lib/array/Array#get:length_ + call $~lib/array/Array#get:length_ i32.ge_u if - i32.const 224 - i32.const 704 - i32.const 114 - i32.const 42 - call $~lib/builtins/abort - unreachable + local.get $index + i32.const 0 + i32.lt_s + if + i32.const 336 + i32.const 544 + i32.const 130 + i32.const 22 + call $~lib/builtins/abort + unreachable + end + local.get $this + local.get $index + i32.const 1 + i32.add + i32.const 2 + i32.const 1 + call $~lib/array/ensureCapacity + local.get $this + local.set $3 + global.get $~lib/memory/__stack_pointer + local.get $3 + i32.store + local.get $3 + local.get $index + i32.const 1 + i32.add + call $~lib/array/Array#set:length_ end local.get $this local.set $3 @@ -7480,27 +8334,22 @@ local.get $3 i32.store local.get $3 - call $~lib/array/Array#get:dataStart + call $~lib/array/Array#get:dataStart local.get $index - i32.const 0 + i32.const 2 i32.shl i32.add - i32.load8_s - local.set $value + local.get $value + i32.store i32.const 0 drop - local.get $value - local.set $3 global.get $~lib/memory/__stack_pointer i32.const 4 i32.add global.set $~lib/memory/__stack_pointer - local.get $3 - return ) - (func $~lib/array/Array#__get (param $this i32) (param $index i32) (result i32) - (local $value i32) - (local $3 i32) + (func $~lib/array/Array#set:length (param $this i32) (param $newLength i32) + (local $2 i32) global.get $~lib/memory/__stack_pointer i32.const 4 i32.sub @@ -7509,126 +8358,150 @@ global.get $~lib/memory/__stack_pointer i32.const 0 i32.store - local.get $index local.get $this - local.set $3 - global.get $~lib/memory/__stack_pointer - local.get $3 - i32.store - local.get $3 - call $~lib/array/Array#get:length_ - i32.ge_u - if - i32.const 224 - i32.const 704 - i32.const 114 - i32.const 42 - call $~lib/builtins/abort - unreachable - end + local.get $newLength + i32.const 2 + i32.const 0 + call $~lib/array/ensureCapacity local.get $this - local.set $3 + local.set $2 global.get $~lib/memory/__stack_pointer - local.get $3 + local.get $2 i32.store - local.get $3 - call $~lib/array/Array#get:dataStart - local.get $index - i32.const 2 - i32.shl - i32.add - i32.load - local.set $value - i32.const 0 - drop - local.get $value - local.set $3 + local.get $2 + local.get $newLength + call $~lib/array/Array#set:length_ global.get $~lib/memory/__stack_pointer i32.const 4 i32.add global.set $~lib/memory/__stack_pointer - local.get $3 - return ) - (func $"~lib/map/Map#find" (param $this i32) (param $key i32) (param $hashCode i32) (result i32) + (func $"~lib/map/Map#values" (param $this i32) (result i32) + (local $start i32) + (local $size i32) + (local $values i32) + (local $length i32) + (local $i i32) (local $entry i32) - (local $taggedNext i32) - (local $5 i32) + (local $7 i32) + (local $8 i32) global.get $~lib/memory/__stack_pointer - i32.const 4 + i32.const 8 i32.sub global.set $~lib/memory/__stack_pointer call $~stack_check global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.store + i64.const 0 + i64.store local.get $this - local.set $5 + local.set $8 global.get $~lib/memory/__stack_pointer - local.get $5 + local.get $8 i32.store - local.get $5 - call $"~lib/map/Map#get:buckets" - local.get $hashCode + local.get $8 + call $"~lib/map/Map#get:entries" + local.set $start local.get $this - local.set $5 + local.set $8 global.get $~lib/memory/__stack_pointer - local.get $5 + local.get $8 i32.store - local.get $5 - call $"~lib/map/Map#get:bucketsMask" - i32.and - i32.const 4 - i32.mul - i32.add - i32.load - local.set $entry - loop $while-continue|0 - local.get $entry + local.get $8 + call $"~lib/map/Map#get:entriesOffset" + local.set $size + global.get $~lib/memory/__stack_pointer + i32.const 0 + local.get $size + call $~lib/array/Array#constructor + local.tee $values + i32.store offset=4 + i32.const 0 + local.set $length + i32.const 0 + local.set $i + loop $for-loop|0 + local.get $i + local.get $size + i32.lt_s if + local.get $start + local.get $i + block $"~lib/map/ENTRY_SIZE|inlined.8" (result i32) + i32.const 12 + br $"~lib/map/ENTRY_SIZE|inlined.8" + end + i32.mul + i32.add + local.set $entry local.get $entry - call $"~lib/map/MapEntry#get:taggedNext" - local.set $taggedNext - local.get $taggedNext + call $"~lib/map/MapEntry#get:taggedNext" i32.const 1 i32.and i32.eqz - if (result i32) - local.get $entry - call $"~lib/map/MapEntry#get:key" - i32.extend8_s - local.get $key - i32.extend8_s - i32.eq - else - i32.const 0 - end if - local.get $entry - local.set $5 + local.get $values + local.set $8 global.get $~lib/memory/__stack_pointer - i32.const 4 + local.get $8 + i32.store + local.get $8 + local.get $length + local.tee $7 + i32.const 1 i32.add - global.set $~lib/memory/__stack_pointer - local.get $5 - return + local.set $length + local.get $7 + local.get $entry + call $"~lib/map/MapEntry#get:value" + call $~lib/array/Array#__set end - local.get $taggedNext + local.get $i i32.const 1 - i32.const -1 - i32.xor - i32.and - local.set $entry - br $while-continue|0 + i32.add + local.set $i + br $for-loop|0 end end + local.get $values + local.set $8 + global.get $~lib/memory/__stack_pointer + local.get $8 + i32.store + local.get $8 + local.get $length + call $~lib/array/Array#set:length + local.get $values + local.set $8 + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $8 + return + ) + (func $"~lib/array/Array<~lib/map/KeyValue>#get:length" (param $this i32) (result i32) + (local $1 i32) + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.sub + global.set $~lib/memory/__stack_pointer + call $~stack_check + global.get $~lib/memory/__stack_pointer i32.const 0 - local.set $5 + i32.store + local.get $this + local.set $1 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store + local.get $1 + call $"~lib/array/Array<~lib/map/KeyValue>#get:length_" + local.set $1 global.get $~lib/memory/__stack_pointer i32.const 4 i32.add global.set $~lib/memory/__stack_pointer - local.get $5 + local.get $1 return ) (func $"~lib/map/Map#rehash" (param $this i32) (param $newBucketsMask i32) @@ -7677,9 +8550,9 @@ global.get $~lib/memory/__stack_pointer i32.const 0 local.get $newEntriesCapacity - block $"~lib/map/ENTRY_SIZE|inlined.1" (result i32) + block $"~lib/map/ENTRY_SIZE|inlined.0" (result i32) i32.const 8 - br $"~lib/map/ENTRY_SIZE|inlined.1" + br $"~lib/map/ENTRY_SIZE|inlined.0" end i32.mul call $~lib/arraybuffer/ArrayBuffer#constructor @@ -7701,9 +8574,9 @@ i32.store offset=8 local.get $14 call $"~lib/map/Map#get:entriesOffset" - block $"~lib/map/ENTRY_SIZE|inlined.2" (result i32) + block $"~lib/map/ENTRY_SIZE|inlined.1" (result i32) i32.const 8 - br $"~lib/map/ENTRY_SIZE|inlined.2" + br $"~lib/map/ENTRY_SIZE|inlined.1" end i32.mul i32.add @@ -7754,17 +8627,17 @@ local.get $newPtr i32.store local.get $newPtr - block $"~lib/map/ENTRY_SIZE|inlined.3" (result i32) + block $"~lib/map/ENTRY_SIZE|inlined.2" (result i32) i32.const 8 - br $"~lib/map/ENTRY_SIZE|inlined.3" + br $"~lib/map/ENTRY_SIZE|inlined.2" end i32.add local.set $newPtr end local.get $oldPtr - block $"~lib/map/ENTRY_SIZE|inlined.4" (result i32) + block $"~lib/map/ENTRY_SIZE|inlined.3" (result i32) i32.const 8 - br $"~lib/map/ENTRY_SIZE|inlined.4" + br $"~lib/map/ENTRY_SIZE|inlined.3" end i32.add local.set $oldPtr @@ -7832,212 +8705,524 @@ i32.add global.set $~lib/memory/__stack_pointer ) - (func $"~lib/map/Map#set" (param $this i32) (param $key i32) (param $value i32) (result i32) - (local $hashCode i32) - (local $entry i32) - (local $entries i32) - (local $6 i32) - (local $bucketPtrBase i32) - (local $8 i32) + (func $"~lib/array/Array<~lib/map/KeyValue>#__get" (param $this i32) (param $index i32) (result i32) + (local $value i32) + (local $3 i32) global.get $~lib/memory/__stack_pointer - i32.const 12 + i32.const 8 i32.sub global.set $~lib/memory/__stack_pointer call $~stack_check global.get $~lib/memory/__stack_pointer i64.const 0 i64.store + local.get $index + local.get $this + local.set $3 + global.get $~lib/memory/__stack_pointer + local.get $3 + i32.store + local.get $3 + call $"~lib/array/Array<~lib/map/KeyValue>#get:length_" + i32.ge_u + if + i32.const 336 + i32.const 544 + i32.const 114 + i32.const 42 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + local.get $this + local.set $3 + global.get $~lib/memory/__stack_pointer + local.get $3 + i32.store + local.get $3 + call $"~lib/array/Array<~lib/map/KeyValue>#get:dataStart" + local.get $index + i32.const 2 + i32.shl + i32.add + i32.load + local.tee $value + i32.store offset=4 + i32.const 1 + drop + i32.const 0 + i32.eqz + drop + local.get $value + i32.eqz + if + i32.const 592 + i32.const 544 + i32.const 118 + i32.const 40 + call $~lib/builtins/abort + unreachable + end + local.get $value + local.set $3 + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $3 + return + ) + (func $"~lib/map/Map#find" (param $this i32) (param $key i32) (param $hashCode i32) (result i32) + (local $entry i32) + (local $taggedNext i32) + (local $5 i32) + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.sub + global.set $~lib/memory/__stack_pointer + call $~stack_check global.get $~lib/memory/__stack_pointer i32.const 0 - i32.store offset=8 - local.get $key - call $~lib/util/hash/HASH - local.set $hashCode + i32.store local.get $this - local.set $8 + local.set $5 global.get $~lib/memory/__stack_pointer - local.get $8 + local.get $5 i32.store - local.get $8 - local.get $key + local.get $5 + call $"~lib/map/Map#get:buckets" local.get $hashCode - call $"~lib/map/Map#find" + local.get $this + local.set $5 + global.get $~lib/memory/__stack_pointer + local.get $5 + i32.store + local.get $5 + call $"~lib/map/Map#get:bucketsMask" + i32.and + i32.const 4 + i32.mul + i32.add + i32.load local.set $entry - local.get $entry - if + loop $while-continue|0 local.get $entry - local.get $value - call $"~lib/map/MapEntry#set:value" - i32.const 0 - drop - else - local.get $this - local.set $8 + if + local.get $entry + call $"~lib/map/MapEntry#get:taggedNext" + local.set $taggedNext + local.get $taggedNext + i32.const 1 + i32.and + i32.eqz + if (result i32) + local.get $entry + call $"~lib/map/MapEntry#get:key" + i32.extend8_s + local.get $key + i32.extend8_s + i32.eq + else + i32.const 0 + end + if + local.get $entry + local.set $5 + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $5 + return + end + local.get $taggedNext + i32.const 1 + i32.const -1 + i32.xor + i32.and + local.set $entry + br $while-continue|0 + end + end + i32.const 0 + local.set $5 + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $5 + return + ) + (func $"~lib/map/Map#constructor" (param $this i32) (param $initialEntries i32) (result i32) + (local $entriesLength i32) + (local $i i32) + (local $key i32) + (local $value i32) + (local $hashCode i32) + (local $entry i32) + (local $entries i32) + (local $9 i32) + (local $entry|10 i32) + (local $bucketPtrBase i32) + (local $12 i32) + global.get $~lib/memory/__stack_pointer + i32.const 16 + i32.sub + global.set $~lib/memory/__stack_pointer + call $~stack_check + global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store + global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store offset=8 + local.get $this + i32.eqz + if global.get $~lib/memory/__stack_pointer - local.get $8 + i32.const 24 + i32.const 9 + call $~lib/rt/itcms/__new + local.tee $this i32.store - local.get $8 - call $"~lib/map/Map#get:entriesOffset" + end + local.get $this + local.set $12 + global.get $~lib/memory/__stack_pointer + local.get $12 + i32.store offset=4 + local.get $12 + i32.const 0 + i32.const 4 + i32.const 4 + i32.mul + call $~lib/arraybuffer/ArrayBuffer#constructor + local.set $12 + global.get $~lib/memory/__stack_pointer + local.get $12 + i32.store offset=8 + local.get $12 + call $"~lib/map/Map#set:buckets" + local.get $this + local.set $12 + global.get $~lib/memory/__stack_pointer + local.get $12 + i32.store offset=4 + local.get $12 + i32.const 4 + i32.const 1 + i32.sub + call $"~lib/map/Map#set:bucketsMask" + local.get $this + local.set $12 + global.get $~lib/memory/__stack_pointer + local.get $12 + i32.store offset=4 + local.get $12 + i32.const 0 + i32.const 4 + block $"~lib/map/ENTRY_SIZE|inlined.5" (result i32) + i32.const 8 + br $"~lib/map/ENTRY_SIZE|inlined.5" + end + i32.mul + call $~lib/arraybuffer/ArrayBuffer#constructor + local.set $12 + global.get $~lib/memory/__stack_pointer + local.get $12 + i32.store offset=8 + local.get $12 + call $"~lib/map/Map#set:entries" + local.get $this + local.set $12 + global.get $~lib/memory/__stack_pointer + local.get $12 + i32.store offset=4 + local.get $12 + i32.const 4 + call $"~lib/map/Map#set:entriesCapacity" + local.get $this + local.set $12 + global.get $~lib/memory/__stack_pointer + local.get $12 + i32.store offset=4 + local.get $12 + i32.const 0 + call $"~lib/map/Map#set:entriesOffset" + local.get $this + local.set $12 + global.get $~lib/memory/__stack_pointer + local.get $12 + i32.store offset=4 + local.get $12 + i32.const 0 + call $"~lib/map/Map#set:entriesCount" + local.get $initialEntries + local.set $12 + global.get $~lib/memory/__stack_pointer + local.get $12 + i32.store offset=4 + local.get $12 + call $"~lib/array/Array<~lib/map/KeyValue>#get:length" + local.set $entriesLength + local.get $entriesLength + i32.const 0 + i32.gt_s + if + local.get $entriesLength local.get $this - local.set $8 + local.set $12 global.get $~lib/memory/__stack_pointer - local.get $8 - i32.store - local.get $8 + local.get $12 + i32.store offset=4 + local.get $12 call $"~lib/map/Map#get:entriesCapacity" - i32.eq + i32.ge_s if local.get $this - local.set $8 - global.get $~lib/memory/__stack_pointer - local.get $8 - i32.store - local.get $8 - local.get $this - local.set $8 - global.get $~lib/memory/__stack_pointer - local.get $8 - i32.store offset=4 - local.get $8 - call $"~lib/map/Map#get:entriesCount" - local.get $this - local.set $8 + local.set $12 global.get $~lib/memory/__stack_pointer - local.get $8 + local.get $12 i32.store offset=4 - local.get $8 - call $"~lib/map/Map#get:entriesCapacity" - i32.const 3 - i32.mul - i32.const 4 - i32.div_s + local.get $12 + local.get $entriesLength + call $"~lib/map/Map#set:bucketsMask" + end + local.get $this + local.set $12 + global.get $~lib/memory/__stack_pointer + local.get $12 + i32.store offset=4 + local.get $12 + local.get $this + local.set $12 + global.get $~lib/memory/__stack_pointer + local.get $12 + i32.store offset=8 + local.get $12 + call $"~lib/map/Map#get:bucketsMask" + i32.const 1 + i32.shl + i32.const 1 + i32.or + call $"~lib/map/Map#rehash" + i32.const 0 + local.set $i + loop $for-loop|0 + local.get $i + local.get $entriesLength i32.lt_s - if (result i32) - local.get $this - local.set $8 + if + local.get $initialEntries + local.set $12 global.get $~lib/memory/__stack_pointer - local.get $8 + local.get $12 + i32.store offset=8 + local.get $12 + local.get $i + call $"~lib/array/Array<~lib/map/KeyValue>#__get" + local.set $12 + global.get $~lib/memory/__stack_pointer + local.get $12 i32.store offset=4 - local.get $8 - call $"~lib/map/Map#get:bucketsMask" - else + local.get $12 + call $"~lib/map/KeyValue#get:key" + local.set $key + local.get $initialEntries + local.set $12 + global.get $~lib/memory/__stack_pointer + local.get $12 + i32.store offset=8 + local.get $12 + local.get $i + call $"~lib/array/Array<~lib/map/KeyValue>#__get" + local.set $12 + global.get $~lib/memory/__stack_pointer + local.get $12 + i32.store offset=4 + local.get $12 + call $"~lib/map/KeyValue#get:value" + local.set $value + local.get $key + call $~lib/util/hash/HASH + local.set $hashCode local.get $this - local.set $8 + local.set $12 global.get $~lib/memory/__stack_pointer - local.get $8 + local.get $12 i32.store offset=4 - local.get $8 - call $"~lib/map/Map#get:bucketsMask" - i32.const 1 - i32.shl + local.get $12 + local.get $key + local.get $hashCode + call $"~lib/map/Map#find" + local.set $entry + local.get $entry + if + local.get $entry + local.get $value + call $"~lib/map/MapEntry#set:value" + i32.const 0 + drop + else + global.get $~lib/memory/__stack_pointer + local.get $this + local.set $12 + global.get $~lib/memory/__stack_pointer + local.get $12 + i32.store offset=4 + local.get $12 + call $"~lib/map/Map#get:entries" + local.tee $entries + i32.store offset=12 + local.get $entries + local.get $this + local.set $12 + global.get $~lib/memory/__stack_pointer + local.get $12 + i32.store offset=4 + local.get $12 + local.get $this + local.set $12 + global.get $~lib/memory/__stack_pointer + local.get $12 + i32.store offset=8 + local.get $12 + call $"~lib/map/Map#get:entriesOffset" + local.tee $9 + i32.const 1 + i32.add + call $"~lib/map/Map#set:entriesOffset" + local.get $9 + block $"~lib/map/ENTRY_SIZE|inlined.4" (result i32) + i32.const 8 + br $"~lib/map/ENTRY_SIZE|inlined.4" + end + i32.mul + i32.add + local.set $entry|10 + local.get $entry|10 + local.get $key + call $"~lib/map/MapEntry#set:key" + i32.const 0 + drop + local.get $entry|10 + local.get $value + call $"~lib/map/MapEntry#set:value" + i32.const 0 + drop + local.get $this + local.set $12 + global.get $~lib/memory/__stack_pointer + local.get $12 + i32.store offset=4 + local.get $12 + local.get $this + local.set $12 + global.get $~lib/memory/__stack_pointer + local.get $12 + i32.store offset=8 + local.get $12 + call $"~lib/map/Map#get:entriesCount" + i32.const 1 + i32.add + call $"~lib/map/Map#set:entriesCount" + local.get $this + local.set $12 + global.get $~lib/memory/__stack_pointer + local.get $12 + i32.store offset=4 + local.get $12 + call $"~lib/map/Map#get:buckets" + local.get $hashCode + local.get $this + local.set $12 + global.get $~lib/memory/__stack_pointer + local.get $12 + i32.store offset=4 + local.get $12 + call $"~lib/map/Map#get:bucketsMask" + i32.and + i32.const 4 + i32.mul + i32.add + local.set $bucketPtrBase + local.get $entry|10 + local.get $bucketPtrBase + i32.load + call $"~lib/map/MapEntry#set:taggedNext" + local.get $bucketPtrBase + local.get $entry|10 + i32.store + end + local.get $i i32.const 1 - i32.or + i32.add + local.set $i + br $for-loop|0 end - call $"~lib/map/Map#rehash" end - global.get $~lib/memory/__stack_pointer - local.get $this - local.set $8 - global.get $~lib/memory/__stack_pointer - local.get $8 - i32.store - local.get $8 - call $"~lib/map/Map#get:entries" - local.tee $entries - i32.store offset=8 - local.get $entries - local.get $this - local.set $8 - global.get $~lib/memory/__stack_pointer - local.get $8 - i32.store - local.get $8 - local.get $this - local.set $8 - global.get $~lib/memory/__stack_pointer - local.get $8 - i32.store offset=4 - local.get $8 - call $"~lib/map/Map#get:entriesOffset" - local.tee $6 - i32.const 1 - i32.add - call $"~lib/map/Map#set:entriesOffset" - local.get $6 - block $"~lib/map/ENTRY_SIZE|inlined.5" (result i32) - i32.const 8 - br $"~lib/map/ENTRY_SIZE|inlined.5" + end + local.get $this + local.set $12 + global.get $~lib/memory/__stack_pointer + i32.const 16 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $12 + ) + (func $"~lib/map/Map#constructor@varargs" (param $this i32) (param $initialEntries i32) (result i32) + (local $2 i32) + (local $3 i32) + global.get $~lib/memory/__stack_pointer + i32.const 12 + i32.sub + global.set $~lib/memory/__stack_pointer + call $~stack_check + global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store offset=8 + block $1of1 + block $0of1 + block $outOfRange + global.get $~argumentsLength + br_table $0of1 $1of1 $outOfRange + end + unreachable end - i32.mul - i32.add - local.set $entry - local.get $entry - local.get $key - call $"~lib/map/MapEntry#set:key" - i32.const 0 - drop - local.get $entry - local.get $value - call $"~lib/map/MapEntry#set:value" - i32.const 0 - drop - local.get $this - local.set $8 - global.get $~lib/memory/__stack_pointer - local.get $8 - i32.store - local.get $8 - local.get $this - local.set $8 - global.get $~lib/memory/__stack_pointer - local.get $8 - i32.store offset=4 - local.get $8 - call $"~lib/map/Map#get:entriesCount" - i32.const 1 - i32.add - call $"~lib/map/Map#set:entriesCount" - local.get $this - local.set $8 - global.get $~lib/memory/__stack_pointer - local.get $8 - i32.store - local.get $8 - call $"~lib/map/Map#get:buckets" - local.get $hashCode - local.get $this - local.set $8 global.get $~lib/memory/__stack_pointer - local.get $8 - i32.store - local.get $8 - call $"~lib/map/Map#get:bucketsMask" - i32.and - i32.const 4 - i32.mul - i32.add - local.set $bucketPtrBase - local.get $entry - local.get $bucketPtrBase - i32.load - call $"~lib/map/MapEntry#set:taggedNext" - local.get $bucketPtrBase - local.get $entry + i32.const 0 + i32.const 2 + i32.const 11 + i32.const 912 + call $~lib/rt/__newArray + local.tee $initialEntries i32.store end local.get $this - local.set $8 + local.set $3 + global.get $~lib/memory/__stack_pointer + local.get $3 + i32.store offset=4 + local.get $3 + local.get $initialEntries + local.set $3 + global.get $~lib/memory/__stack_pointer + local.get $3 + i32.store offset=8 + local.get $3 + call $"~lib/map/Map#constructor" + local.set $3 global.get $~lib/memory/__stack_pointer i32.const 12 i32.add global.set $~lib/memory/__stack_pointer - local.get $8 - return + local.get $3 ) - (func $"~lib/map/Map#find" (param $this i32) (param $key i32) (param $hashCode i32) (result i32) - (local $entry i32) - (local $taggedNext i32) - (local $5 i32) + (func $"~lib/array/Array<~lib/map/KeyValue>#get:length" (param $this i32) (result i32) + (local $1 i32) global.get $~lib/memory/__stack_pointer i32.const 4 i32.sub @@ -8047,70 +9232,18 @@ i32.const 0 i32.store local.get $this - local.set $5 - global.get $~lib/memory/__stack_pointer - local.get $5 - i32.store - local.get $5 - call $"~lib/map/Map#get:buckets" - local.get $hashCode - local.get $this - local.set $5 + local.set $1 global.get $~lib/memory/__stack_pointer - local.get $5 + local.get $1 i32.store - local.get $5 - call $"~lib/map/Map#get:bucketsMask" - i32.and - i32.const 4 - i32.mul - i32.add - i32.load - local.set $entry - loop $while-continue|0 - local.get $entry - if - local.get $entry - call $"~lib/map/MapEntry#get:taggedNext" - local.set $taggedNext - local.get $taggedNext - i32.const 1 - i32.and - i32.eqz - if (result i32) - local.get $entry - call $"~lib/map/MapEntry#get:key" - local.get $key - i32.eq - else - i32.const 0 - end - if - local.get $entry - local.set $5 - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $5 - return - end - local.get $taggedNext - i32.const 1 - i32.const -1 - i32.xor - i32.and - local.set $entry - br $while-continue|0 - end - end - i32.const 0 - local.set $5 + local.get $1 + call $"~lib/array/Array<~lib/map/KeyValue>#get:length_" + local.set $1 global.get $~lib/memory/__stack_pointer i32.const 4 i32.add global.set $~lib/memory/__stack_pointer - local.get $5 + local.get $1 return ) (func $"~lib/map/Map#rehash" (param $this i32) (param $newBucketsMask i32) @@ -8159,9 +9292,9 @@ global.get $~lib/memory/__stack_pointer i32.const 0 local.get $newEntriesCapacity - block $"~lib/map/ENTRY_SIZE|inlined.1" (result i32) + block $"~lib/map/ENTRY_SIZE|inlined.0" (result i32) i32.const 12 - br $"~lib/map/ENTRY_SIZE|inlined.1" + br $"~lib/map/ENTRY_SIZE|inlined.0" end i32.mul call $~lib/arraybuffer/ArrayBuffer#constructor @@ -8183,9 +9316,9 @@ i32.store offset=8 local.get $14 call $"~lib/map/Map#get:entriesOffset" - block $"~lib/map/ENTRY_SIZE|inlined.2" (result i32) + block $"~lib/map/ENTRY_SIZE|inlined.1" (result i32) i32.const 12 - br $"~lib/map/ENTRY_SIZE|inlined.2" + br $"~lib/map/ENTRY_SIZE|inlined.1" end i32.mul i32.add @@ -8236,17 +9369,17 @@ local.get $newPtr i32.store local.get $newPtr - block $"~lib/map/ENTRY_SIZE|inlined.3" (result i32) + block $"~lib/map/ENTRY_SIZE|inlined.2" (result i32) i32.const 12 - br $"~lib/map/ENTRY_SIZE|inlined.3" + br $"~lib/map/ENTRY_SIZE|inlined.2" end i32.add local.set $newPtr end local.get $oldPtr - block $"~lib/map/ENTRY_SIZE|inlined.4" (result i32) + block $"~lib/map/ENTRY_SIZE|inlined.3" (result i32) i32.const 12 - br $"~lib/map/ENTRY_SIZE|inlined.4" + br $"~lib/map/ENTRY_SIZE|inlined.3" end i32.add local.set $oldPtr @@ -8314,59 +9447,702 @@ i32.add global.set $~lib/memory/__stack_pointer ) - (func $"~lib/map/Map#set" (param $this i32) (param $key i32) (param $value i32) (result i32) - (local $hashCode i32) - (local $entry i32) - (local $entries i32) - (local $6 i32) - (local $bucketPtrBase i32) - (local $8 i32) + (func $"~lib/array/Array<~lib/map/KeyValue>#__get" (param $this i32) (param $index i32) (result i32) + (local $value i32) + (local $3 i32) global.get $~lib/memory/__stack_pointer - i32.const 12 + i32.const 8 i32.sub global.set $~lib/memory/__stack_pointer call $~stack_check global.get $~lib/memory/__stack_pointer i64.const 0 i64.store + local.get $index + local.get $this + local.set $3 + global.get $~lib/memory/__stack_pointer + local.get $3 + i32.store + local.get $3 + call $"~lib/array/Array<~lib/map/KeyValue>#get:length_" + i32.ge_u + if + i32.const 336 + i32.const 544 + i32.const 114 + i32.const 42 + call $~lib/builtins/abort + unreachable + end global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.store offset=8 - local.get $key - call $~lib/util/hash/HASH - local.set $hashCode local.get $this - local.set $8 + local.set $3 global.get $~lib/memory/__stack_pointer - local.get $8 + local.get $3 i32.store - local.get $8 - local.get $key - local.get $hashCode - call $"~lib/map/Map#find" - local.set $entry - local.get $entry + local.get $3 + call $"~lib/array/Array<~lib/map/KeyValue>#get:dataStart" + local.get $index + i32.const 2 + i32.shl + i32.add + i32.load + local.tee $value + i32.store offset=4 + i32.const 1 + drop + i32.const 0 + i32.eqz + drop + local.get $value + i32.eqz if - local.get $entry - local.get $value - call $"~lib/map/MapEntry#set:value" - i32.const 0 - drop - else + i32.const 592 + i32.const 544 + i32.const 118 + i32.const 40 + call $~lib/builtins/abort + unreachable + end + local.get $value + local.set $3 + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $3 + return + ) + (func $"~lib/map/Map#find" (param $this i32) (param $key i32) (param $hashCode i32) (result i32) + (local $entry i32) + (local $taggedNext i32) + (local $5 i32) + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.sub + global.set $~lib/memory/__stack_pointer + call $~stack_check + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store + local.get $this + local.set $5 + global.get $~lib/memory/__stack_pointer + local.get $5 + i32.store + local.get $5 + call $"~lib/map/Map#get:buckets" + local.get $hashCode + local.get $this + local.set $5 + global.get $~lib/memory/__stack_pointer + local.get $5 + i32.store + local.get $5 + call $"~lib/map/Map#get:bucketsMask" + i32.and + i32.const 4 + i32.mul + i32.add + i32.load + local.set $entry + loop $while-continue|0 + local.get $entry + if + local.get $entry + call $"~lib/map/MapEntry#get:taggedNext" + local.set $taggedNext + local.get $taggedNext + i32.const 1 + i32.and + i32.eqz + if (result i32) + local.get $entry + call $"~lib/map/MapEntry#get:key" + local.get $key + i32.eq + else + i32.const 0 + end + if + local.get $entry + local.set $5 + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $5 + return + end + local.get $taggedNext + i32.const 1 + i32.const -1 + i32.xor + i32.and + local.set $entry + br $while-continue|0 + end + end + i32.const 0 + local.set $5 + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $5 + return + ) + (func $"~lib/map/Map#constructor" (param $this i32) (param $initialEntries i32) (result i32) + (local $entriesLength i32) + (local $i i32) + (local $key i32) + (local $value i32) + (local $hashCode i32) + (local $entry i32) + (local $entries i32) + (local $9 i32) + (local $entry|10 i32) + (local $bucketPtrBase i32) + (local $12 i32) + global.get $~lib/memory/__stack_pointer + i32.const 16 + i32.sub + global.set $~lib/memory/__stack_pointer + call $~stack_check + global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store + global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store offset=8 + local.get $this + i32.eqz + if + global.get $~lib/memory/__stack_pointer + i32.const 24 + i32.const 12 + call $~lib/rt/itcms/__new + local.tee $this + i32.store + end + local.get $this + local.set $12 + global.get $~lib/memory/__stack_pointer + local.get $12 + i32.store offset=4 + local.get $12 + i32.const 0 + i32.const 4 + i32.const 4 + i32.mul + call $~lib/arraybuffer/ArrayBuffer#constructor + local.set $12 + global.get $~lib/memory/__stack_pointer + local.get $12 + i32.store offset=8 + local.get $12 + call $"~lib/map/Map#set:buckets" + local.get $this + local.set $12 + global.get $~lib/memory/__stack_pointer + local.get $12 + i32.store offset=4 + local.get $12 + i32.const 4 + i32.const 1 + i32.sub + call $"~lib/map/Map#set:bucketsMask" + local.get $this + local.set $12 + global.get $~lib/memory/__stack_pointer + local.get $12 + i32.store offset=4 + local.get $12 + i32.const 0 + i32.const 4 + block $"~lib/map/ENTRY_SIZE|inlined.5" (result i32) + i32.const 12 + br $"~lib/map/ENTRY_SIZE|inlined.5" + end + i32.mul + call $~lib/arraybuffer/ArrayBuffer#constructor + local.set $12 + global.get $~lib/memory/__stack_pointer + local.get $12 + i32.store offset=8 + local.get $12 + call $"~lib/map/Map#set:entries" + local.get $this + local.set $12 + global.get $~lib/memory/__stack_pointer + local.get $12 + i32.store offset=4 + local.get $12 + i32.const 4 + call $"~lib/map/Map#set:entriesCapacity" + local.get $this + local.set $12 + global.get $~lib/memory/__stack_pointer + local.get $12 + i32.store offset=4 + local.get $12 + i32.const 0 + call $"~lib/map/Map#set:entriesOffset" + local.get $this + local.set $12 + global.get $~lib/memory/__stack_pointer + local.get $12 + i32.store offset=4 + local.get $12 + i32.const 0 + call $"~lib/map/Map#set:entriesCount" + local.get $initialEntries + local.set $12 + global.get $~lib/memory/__stack_pointer + local.get $12 + i32.store offset=4 + local.get $12 + call $"~lib/array/Array<~lib/map/KeyValue>#get:length" + local.set $entriesLength + local.get $entriesLength + i32.const 0 + i32.gt_s + if + local.get $entriesLength + local.get $this + local.set $12 + global.get $~lib/memory/__stack_pointer + local.get $12 + i32.store offset=4 + local.get $12 + call $"~lib/map/Map#get:entriesCapacity" + i32.ge_s + if + local.get $this + local.set $12 + global.get $~lib/memory/__stack_pointer + local.get $12 + i32.store offset=4 + local.get $12 + local.get $entriesLength + call $"~lib/map/Map#set:bucketsMask" + end + local.get $this + local.set $12 + global.get $~lib/memory/__stack_pointer + local.get $12 + i32.store offset=4 + local.get $12 + local.get $this + local.set $12 + global.get $~lib/memory/__stack_pointer + local.get $12 + i32.store offset=8 + local.get $12 + call $"~lib/map/Map#get:bucketsMask" + i32.const 1 + i32.shl + i32.const 1 + i32.or + call $"~lib/map/Map#rehash" + i32.const 0 + local.set $i + loop $for-loop|0 + local.get $i + local.get $entriesLength + i32.lt_s + if + local.get $initialEntries + local.set $12 + global.get $~lib/memory/__stack_pointer + local.get $12 + i32.store offset=8 + local.get $12 + local.get $i + call $"~lib/array/Array<~lib/map/KeyValue>#__get" + local.set $12 + global.get $~lib/memory/__stack_pointer + local.get $12 + i32.store offset=4 + local.get $12 + call $"~lib/map/KeyValue#get:key" + local.set $key + local.get $initialEntries + local.set $12 + global.get $~lib/memory/__stack_pointer + local.get $12 + i32.store offset=8 + local.get $12 + local.get $i + call $"~lib/array/Array<~lib/map/KeyValue>#__get" + local.set $12 + global.get $~lib/memory/__stack_pointer + local.get $12 + i32.store offset=4 + local.get $12 + call $"~lib/map/KeyValue#get:value" + local.set $value + local.get $key + call $~lib/util/hash/HASH + local.set $hashCode + local.get $this + local.set $12 + global.get $~lib/memory/__stack_pointer + local.get $12 + i32.store offset=4 + local.get $12 + local.get $key + local.get $hashCode + call $"~lib/map/Map#find" + local.set $entry + local.get $entry + if + local.get $entry + local.get $value + call $"~lib/map/MapEntry#set:value" + i32.const 0 + drop + else + global.get $~lib/memory/__stack_pointer + local.get $this + local.set $12 + global.get $~lib/memory/__stack_pointer + local.get $12 + i32.store offset=4 + local.get $12 + call $"~lib/map/Map#get:entries" + local.tee $entries + i32.store offset=12 + local.get $entries + local.get $this + local.set $12 + global.get $~lib/memory/__stack_pointer + local.get $12 + i32.store offset=4 + local.get $12 + local.get $this + local.set $12 + global.get $~lib/memory/__stack_pointer + local.get $12 + i32.store offset=8 + local.get $12 + call $"~lib/map/Map#get:entriesOffset" + local.tee $9 + i32.const 1 + i32.add + call $"~lib/map/Map#set:entriesOffset" + local.get $9 + block $"~lib/map/ENTRY_SIZE|inlined.4" (result i32) + i32.const 12 + br $"~lib/map/ENTRY_SIZE|inlined.4" + end + i32.mul + i32.add + local.set $entry|10 + local.get $entry|10 + local.get $key + call $"~lib/map/MapEntry#set:key" + i32.const 0 + drop + local.get $entry|10 + local.get $value + call $"~lib/map/MapEntry#set:value" + i32.const 0 + drop + local.get $this + local.set $12 + global.get $~lib/memory/__stack_pointer + local.get $12 + i32.store offset=4 + local.get $12 + local.get $this + local.set $12 + global.get $~lib/memory/__stack_pointer + local.get $12 + i32.store offset=8 + local.get $12 + call $"~lib/map/Map#get:entriesCount" + i32.const 1 + i32.add + call $"~lib/map/Map#set:entriesCount" + local.get $this + local.set $12 + global.get $~lib/memory/__stack_pointer + local.get $12 + i32.store offset=4 + local.get $12 + call $"~lib/map/Map#get:buckets" + local.get $hashCode + local.get $this + local.set $12 + global.get $~lib/memory/__stack_pointer + local.get $12 + i32.store offset=4 + local.get $12 + call $"~lib/map/Map#get:bucketsMask" + i32.and + i32.const 4 + i32.mul + i32.add + local.set $bucketPtrBase + local.get $entry|10 + local.get $bucketPtrBase + i32.load + call $"~lib/map/MapEntry#set:taggedNext" + local.get $bucketPtrBase + local.get $entry|10 + i32.store + end + local.get $i + i32.const 1 + i32.add + local.set $i + br $for-loop|0 + end + end + end + local.get $this + local.set $12 + global.get $~lib/memory/__stack_pointer + i32.const 16 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $12 + ) + (func $"~lib/map/Map#constructor@varargs" (param $this i32) (param $initialEntries i32) (result i32) + (local $2 i32) + (local $3 i32) + global.get $~lib/memory/__stack_pointer + i32.const 12 + i32.sub + global.set $~lib/memory/__stack_pointer + call $~stack_check + global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store offset=8 + block $1of1 + block $0of1 + block $outOfRange + global.get $~argumentsLength + br_table $0of1 $1of1 $outOfRange + end + unreachable + end + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.const 2 + i32.const 14 + i32.const 944 + call $~lib/rt/__newArray + local.tee $initialEntries + i32.store + end + local.get $this + local.set $3 + global.get $~lib/memory/__stack_pointer + local.get $3 + i32.store offset=4 + local.get $3 + local.get $initialEntries + local.set $3 + global.get $~lib/memory/__stack_pointer + local.get $3 + i32.store offset=8 + local.get $3 + call $"~lib/map/Map#constructor" + local.set $3 + global.get $~lib/memory/__stack_pointer + i32.const 12 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $3 + ) + (func $~lib/array/Array#get:length (param $this i32) (result i32) + (local $1 i32) + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.sub + global.set $~lib/memory/__stack_pointer + call $~stack_check + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store + local.get $this + local.set $1 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store + local.get $1 + call $~lib/array/Array#get:length_ + local.set $1 + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $1 + return + ) + (func $~lib/array/Array#__get (param $this i32) (param $index i32) (result i32) + (local $value i32) + (local $3 i32) + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.sub + global.set $~lib/memory/__stack_pointer + call $~stack_check + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store + local.get $index + local.get $this + local.set $3 + global.get $~lib/memory/__stack_pointer + local.get $3 + i32.store + local.get $3 + call $~lib/array/Array#get:length_ + i32.ge_u + if + i32.const 336 + i32.const 544 + i32.const 114 + i32.const 42 + call $~lib/builtins/abort + unreachable + end + local.get $this + local.set $3 + global.get $~lib/memory/__stack_pointer + local.get $3 + i32.store + local.get $3 + call $~lib/array/Array#get:dataStart + local.get $index + i32.const 0 + i32.shl + i32.add + i32.load8_s + local.set $value + i32.const 0 + drop + local.get $value + local.set $3 + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $3 + return + ) + (func $~lib/array/Array#__get (param $this i32) (param $index i32) (result i32) + (local $value i32) + (local $3 i32) + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.sub + global.set $~lib/memory/__stack_pointer + call $~stack_check + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store + local.get $index + local.get $this + local.set $3 + global.get $~lib/memory/__stack_pointer + local.get $3 + i32.store + local.get $3 + call $~lib/array/Array#get:length_ + i32.ge_u + if + i32.const 336 + i32.const 544 + i32.const 114 + i32.const 42 + call $~lib/builtins/abort + unreachable + end + local.get $this + local.set $3 + global.get $~lib/memory/__stack_pointer + local.get $3 + i32.store + local.get $3 + call $~lib/array/Array#get:dataStart + local.get $index + i32.const 2 + i32.shl + i32.add + i32.load + local.set $value + i32.const 0 + drop + local.get $value + local.set $3 + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $3 + return + ) + (func $"~lib/map/Map#set" (param $this i32) (param $key i32) (param $value i32) (result i32) + (local $hashCode i32) + (local $entry i32) + (local $entries i32) + (local $6 i32) + (local $bucketPtrBase i32) + (local $8 i32) + global.get $~lib/memory/__stack_pointer + i32.const 12 + i32.sub + global.set $~lib/memory/__stack_pointer + call $~stack_check + global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store offset=8 + local.get $key + call $~lib/util/hash/HASH + local.set $hashCode + local.get $this + local.set $8 + global.get $~lib/memory/__stack_pointer + local.get $8 + i32.store + local.get $8 + local.get $key + local.get $hashCode + call $"~lib/map/Map#find" + local.set $entry + local.get $entry + if + local.get $entry + local.get $value + call $"~lib/map/MapEntry#set:value" + i32.const 0 + drop + else local.get $this local.set $8 global.get $~lib/memory/__stack_pointer local.get $8 i32.store local.get $8 - call $"~lib/map/Map#get:entriesOffset" + call $"~lib/map/Map#get:entriesOffset" local.get $this local.set $8 global.get $~lib/memory/__stack_pointer local.get $8 i32.store local.get $8 - call $"~lib/map/Map#get:entriesCapacity" + call $"~lib/map/Map#get:entriesCapacity" i32.eq if local.get $this @@ -8381,14 +10157,14 @@ local.get $8 i32.store offset=4 local.get $8 - call $"~lib/map/Map#get:entriesCount" + call $"~lib/map/Map#get:entriesCount" local.get $this local.set $8 global.get $~lib/memory/__stack_pointer local.get $8 i32.store offset=4 local.get $8 - call $"~lib/map/Map#get:entriesCapacity" + call $"~lib/map/Map#get:entriesCapacity" i32.const 3 i32.mul i32.const 4 @@ -8401,7 +10177,7 @@ local.get $8 i32.store offset=4 local.get $8 - call $"~lib/map/Map#get:bucketsMask" + call $"~lib/map/Map#get:bucketsMask" else local.get $this local.set $8 @@ -8409,13 +10185,13 @@ local.get $8 i32.store offset=4 local.get $8 - call $"~lib/map/Map#get:bucketsMask" + call $"~lib/map/Map#get:bucketsMask" i32.const 1 i32.shl i32.const 1 i32.or end - call $"~lib/map/Map#rehash" + call $"~lib/map/Map#rehash" end global.get $~lib/memory/__stack_pointer local.get $this @@ -8424,7 +10200,7 @@ local.get $8 i32.store local.get $8 - call $"~lib/map/Map#get:entries" + call $"~lib/map/Map#get:entries" local.tee $entries i32.store offset=8 local.get $entries @@ -8440,27 +10216,27 @@ local.get $8 i32.store offset=4 local.get $8 - call $"~lib/map/Map#get:entriesOffset" + call $"~lib/map/Map#get:entriesOffset" local.tee $6 i32.const 1 i32.add - call $"~lib/map/Map#set:entriesOffset" + call $"~lib/map/Map#set:entriesOffset" local.get $6 - block $"~lib/map/ENTRY_SIZE|inlined.5" (result i32) - i32.const 12 - br $"~lib/map/ENTRY_SIZE|inlined.5" + block $"~lib/map/ENTRY_SIZE|inlined.6" (result i32) + i32.const 8 + br $"~lib/map/ENTRY_SIZE|inlined.6" end i32.mul i32.add local.set $entry local.get $entry local.get $key - call $"~lib/map/MapEntry#set:key" + call $"~lib/map/MapEntry#set:key" i32.const 0 drop local.get $entry local.get $value - call $"~lib/map/MapEntry#set:value" + call $"~lib/map/MapEntry#set:value" i32.const 0 drop local.get $this @@ -8475,10 +10251,212 @@ local.get $8 i32.store offset=4 local.get $8 - call $"~lib/map/Map#get:entriesCount" + call $"~lib/map/Map#get:entriesCount" i32.const 1 i32.add - call $"~lib/map/Map#set:entriesCount" + call $"~lib/map/Map#set:entriesCount" + local.get $this + local.set $8 + global.get $~lib/memory/__stack_pointer + local.get $8 + i32.store + local.get $8 + call $"~lib/map/Map#get:buckets" + local.get $hashCode + local.get $this + local.set $8 + global.get $~lib/memory/__stack_pointer + local.get $8 + i32.store + local.get $8 + call $"~lib/map/Map#get:bucketsMask" + i32.and + i32.const 4 + i32.mul + i32.add + local.set $bucketPtrBase + local.get $entry + local.get $bucketPtrBase + i32.load + call $"~lib/map/MapEntry#set:taggedNext" + local.get $bucketPtrBase + local.get $entry + i32.store + end + local.get $this + local.set $8 + global.get $~lib/memory/__stack_pointer + i32.const 12 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $8 + return + ) + (func $"~lib/map/Map#set" (param $this i32) (param $key i32) (param $value i32) (result i32) + (local $hashCode i32) + (local $entry i32) + (local $entries i32) + (local $6 i32) + (local $bucketPtrBase i32) + (local $8 i32) + global.get $~lib/memory/__stack_pointer + i32.const 12 + i32.sub + global.set $~lib/memory/__stack_pointer + call $~stack_check + global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store offset=8 + local.get $key + call $~lib/util/hash/HASH + local.set $hashCode + local.get $this + local.set $8 + global.get $~lib/memory/__stack_pointer + local.get $8 + i32.store + local.get $8 + local.get $key + local.get $hashCode + call $"~lib/map/Map#find" + local.set $entry + local.get $entry + if + local.get $entry + local.get $value + call $"~lib/map/MapEntry#set:value" + i32.const 0 + drop + else + local.get $this + local.set $8 + global.get $~lib/memory/__stack_pointer + local.get $8 + i32.store + local.get $8 + call $"~lib/map/Map#get:entriesOffset" + local.get $this + local.set $8 + global.get $~lib/memory/__stack_pointer + local.get $8 + i32.store + local.get $8 + call $"~lib/map/Map#get:entriesCapacity" + i32.eq + if + local.get $this + local.set $8 + global.get $~lib/memory/__stack_pointer + local.get $8 + i32.store + local.get $8 + local.get $this + local.set $8 + global.get $~lib/memory/__stack_pointer + local.get $8 + i32.store offset=4 + local.get $8 + call $"~lib/map/Map#get:entriesCount" + local.get $this + local.set $8 + global.get $~lib/memory/__stack_pointer + local.get $8 + i32.store offset=4 + local.get $8 + call $"~lib/map/Map#get:entriesCapacity" + i32.const 3 + i32.mul + i32.const 4 + i32.div_s + i32.lt_s + if (result i32) + local.get $this + local.set $8 + global.get $~lib/memory/__stack_pointer + local.get $8 + i32.store offset=4 + local.get $8 + call $"~lib/map/Map#get:bucketsMask" + else + local.get $this + local.set $8 + global.get $~lib/memory/__stack_pointer + local.get $8 + i32.store offset=4 + local.get $8 + call $"~lib/map/Map#get:bucketsMask" + i32.const 1 + i32.shl + i32.const 1 + i32.or + end + call $"~lib/map/Map#rehash" + end + global.get $~lib/memory/__stack_pointer + local.get $this + local.set $8 + global.get $~lib/memory/__stack_pointer + local.get $8 + i32.store + local.get $8 + call $"~lib/map/Map#get:entries" + local.tee $entries + i32.store offset=8 + local.get $entries + local.get $this + local.set $8 + global.get $~lib/memory/__stack_pointer + local.get $8 + i32.store + local.get $8 + local.get $this + local.set $8 + global.get $~lib/memory/__stack_pointer + local.get $8 + i32.store offset=4 + local.get $8 + call $"~lib/map/Map#get:entriesOffset" + local.tee $6 + i32.const 1 + i32.add + call $"~lib/map/Map#set:entriesOffset" + local.get $6 + block $"~lib/map/ENTRY_SIZE|inlined.6" (result i32) + i32.const 12 + br $"~lib/map/ENTRY_SIZE|inlined.6" + end + i32.mul + i32.add + local.set $entry + local.get $entry + local.get $key + call $"~lib/map/MapEntry#set:key" + i32.const 0 + drop + local.get $entry + local.get $value + call $"~lib/map/MapEntry#set:value" + i32.const 0 + drop + local.get $this + local.set $8 + global.get $~lib/memory/__stack_pointer + local.get $8 + i32.store + local.get $8 + local.get $this + local.set $8 + global.get $~lib/memory/__stack_pointer + local.get $8 + i32.store offset=4 + local.get $8 + call $"~lib/map/Map#get:entriesCount" + i32.const 1 + i32.add + call $"~lib/map/Map#set:entriesCount" local.get $this local.set $8 global.get $~lib/memory/__stack_pointer @@ -8740,9 +10718,9 @@ local.get $1 i32.const 0 i32.const 4 - block $"~lib/map/ENTRY_SIZE|inlined.8" (result i32) + block $"~lib/map/ENTRY_SIZE|inlined.9" (result i32) i32.const 12 - br $"~lib/map/ENTRY_SIZE|inlined.8" + br $"~lib/map/ENTRY_SIZE|inlined.9" end i32.mul call $~lib/arraybuffer/ArrayBuffer#constructor @@ -8781,6 +10759,125 @@ i32.add global.set $~lib/memory/__stack_pointer ) + (func $"~lib/map/KeyValue#constructor" (param $this i32) (result i32) + (local $1 i32) + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.sub + global.set $~lib/memory/__stack_pointer + call $~stack_check + global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store + local.get $this + i32.eqz + if + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.const 5 + call $~lib/rt/itcms/__new + local.tee $this + i32.store + end + global.get $~lib/memory/__stack_pointer + local.get $this + local.set $1 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + local.get $1 + call $~lib/object/Object#constructor + local.tee $this + i32.store + local.get $this + local.set $1 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + local.get $1 + i32.const 0 + call $"~lib/map/KeyValue#set:key" + local.get $this + local.set $1 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + local.get $1 + i32.const 0 + call $"~lib/map/KeyValue#set:value" + local.get $this + local.set $1 + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $1 + ) + (func $"~lib/array/Array<~lib/map/KeyValue>#push" (param $this i32) (param $value i32) (result i32) + (local $oldLen i32) + (local $len i32) + (local $4 i32) + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.sub + global.set $~lib/memory/__stack_pointer + call $~stack_check + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store + local.get $this + local.set $4 + global.get $~lib/memory/__stack_pointer + local.get $4 + i32.store + local.get $4 + call $"~lib/array/Array<~lib/map/KeyValue>#get:length_" + local.set $oldLen + local.get $oldLen + i32.const 1 + i32.add + local.set $len + local.get $this + local.get $len + i32.const 2 + i32.const 1 + call $~lib/array/ensureCapacity + i32.const 1 + drop + local.get $this + local.set $4 + global.get $~lib/memory/__stack_pointer + local.get $4 + i32.store + local.get $4 + call $"~lib/array/Array<~lib/map/KeyValue>#get:dataStart" + local.get $oldLen + i32.const 2 + i32.shl + i32.add + local.get $value + i32.store + local.get $this + local.get $value + i32.const 1 + call $~lib/rt/itcms/__link + local.get $this + local.set $4 + global.get $~lib/memory/__stack_pointer + local.get $4 + i32.store + local.get $4 + local.get $len + call $"~lib/array/Array<~lib/map/KeyValue>#set:length_" + local.get $len + local.set $4 + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $4 + return + ) (func $"std/map/testNumeric" (local $map i32) (local $k i32) @@ -8795,18 +10892,26 @@ (local $k|10 i32) (local $k|11 i32) (local $12 i32) + (local $initialEntries i32) + (local $k|14 i32) + (local $15 i32) + (local $k|16 i32) + (local $17 i32) global.get $~lib/memory/__stack_pointer - i32.const 24 + i32.const 40 i32.sub global.set $~lib/memory/__stack_pointer call $~stack_check global.get $~lib/memory/__stack_pointer i32.const 0 - i32.const 24 + i32.const 40 memory.fill global.get $~lib/memory/__stack_pointer i32.const 0 - call $"~lib/map/Map#constructor" + i32.const 0 + global.set $~argumentsLength + i32.const 0 + call $"~lib/map/Map#constructor@varargs" local.tee $map i32.store i32.const 0 @@ -8817,29 +10922,29 @@ i32.lt_s if local.get $map - local.set $12 + local.set $17 global.get $~lib/memory/__stack_pointer - local.get $12 + local.get $17 i32.store offset=4 - local.get $12 + local.get $17 local.get $k call $"~lib/map/Map#has" i32.eqz i32.eqz if i32.const 0 - i32.const 544 - i32.const 6 + i32.const 752 + i32.const 7 i32.const 5 call $~lib/builtins/abort unreachable end local.get $map - local.set $12 + local.set $17 global.get $~lib/memory/__stack_pointer - local.get $12 + local.get $17 i32.store offset=4 - local.get $12 + local.get $17 local.get $k i32.const 10 local.get $k @@ -8847,28 +10952,28 @@ call $"~lib/map/Map#set" drop local.get $map - local.set $12 + local.set $17 global.get $~lib/memory/__stack_pointer - local.get $12 + local.get $17 i32.store offset=4 - local.get $12 + local.get $17 local.get $k call $"~lib/map/Map#has" i32.eqz if i32.const 0 - i32.const 544 - i32.const 8 + i32.const 752 + i32.const 9 i32.const 5 call $~lib/builtins/abort unreachable end local.get $map - local.set $12 + local.set $17 global.get $~lib/memory/__stack_pointer - local.get $12 + local.get $17 i32.store offset=4 - local.get $12 + local.get $17 local.get $k call $"~lib/map/Map#get" i32.const 10 @@ -8878,8 +10983,8 @@ i32.eqz if i32.const 0 - i32.const 544 - i32.const 9 + i32.const 752 + i32.const 10 i32.const 5 call $~lib/builtins/abort unreachable @@ -8892,19 +10997,19 @@ end end local.get $map - local.set $12 + local.set $17 global.get $~lib/memory/__stack_pointer - local.get $12 + local.get $17 i32.store offset=4 - local.get $12 + local.get $17 call $"~lib/map/Map#get:size" i32.const 100 i32.eq i32.eqz if i32.const 0 - i32.const 544 - i32.const 11 + i32.const 752 + i32.const 12 i32.const 3 call $~lib/builtins/abort unreachable @@ -8917,28 +11022,28 @@ i32.lt_s if local.get $map - local.set $12 + local.set $17 global.get $~lib/memory/__stack_pointer - local.get $12 + local.get $17 i32.store offset=4 - local.get $12 + local.get $17 local.get $k|2 call $"~lib/map/Map#has" i32.eqz if i32.const 0 - i32.const 544 - i32.const 15 + i32.const 752 + i32.const 16 i32.const 5 call $~lib/builtins/abort unreachable end local.get $map - local.set $12 + local.set $17 global.get $~lib/memory/__stack_pointer - local.get $12 + local.get $17 i32.store offset=4 - local.get $12 + local.get $17 local.get $k|2 call $"~lib/map/Map#get" i32.const 10 @@ -8948,18 +11053,18 @@ i32.eqz if i32.const 0 - i32.const 544 - i32.const 16 + i32.const 752 + i32.const 17 i32.const 5 call $~lib/builtins/abort unreachable end local.get $map - local.set $12 + local.set $17 global.get $~lib/memory/__stack_pointer - local.get $12 + local.get $17 i32.store offset=4 - local.get $12 + local.get $17 local.get $k|2 i32.const 20 local.get $k|2 @@ -8967,28 +11072,28 @@ call $"~lib/map/Map#set" drop local.get $map - local.set $12 + local.set $17 global.get $~lib/memory/__stack_pointer - local.get $12 + local.get $17 i32.store offset=4 - local.get $12 + local.get $17 local.get $k|2 call $"~lib/map/Map#has" i32.eqz if i32.const 0 - i32.const 544 - i32.const 18 + i32.const 752 + i32.const 19 i32.const 5 call $~lib/builtins/abort unreachable end local.get $map - local.set $12 + local.set $17 global.get $~lib/memory/__stack_pointer - local.get $12 + local.get $17 i32.store offset=4 - local.get $12 + local.get $17 local.get $k|2 call $"~lib/map/Map#get" i32.const 20 @@ -8998,8 +11103,8 @@ i32.eqz if i32.const 0 - i32.const 544 - i32.const 19 + i32.const 752 + i32.const 20 i32.const 5 call $~lib/builtins/abort unreachable @@ -9012,51 +11117,57 @@ end end local.get $map - local.set $12 + local.set $17 global.get $~lib/memory/__stack_pointer - local.get $12 + local.get $17 i32.store offset=4 - local.get $12 + local.get $17 call $"~lib/map/Map#get:size" i32.const 100 i32.eq i32.eqz if i32.const 0 - i32.const 544 - i32.const 21 + i32.const 752 + i32.const 22 i32.const 3 call $~lib/builtins/abort unreachable end global.get $~lib/memory/__stack_pointer local.get $map - local.set $12 + local.set $17 global.get $~lib/memory/__stack_pointer - local.get $12 + local.get $17 i32.store offset=4 - local.get $12 + local.get $17 call $"~lib/map/Map#keys" local.tee $keys i32.store offset=8 global.get $~lib/memory/__stack_pointer local.get $map - local.set $12 + local.set $17 global.get $~lib/memory/__stack_pointer - local.get $12 + local.get $17 i32.store offset=4 - local.get $12 + local.get $17 call $"~lib/map/Map#values" local.tee $vals i32.store offset=12 global.get $~lib/memory/__stack_pointer i32.const 0 - call $"~lib/map/Map#constructor" + i32.const 0 + global.set $~argumentsLength + i32.const 0 + call $"~lib/map/Map#constructor@varargs" local.tee $keyMap i32.store offset=16 global.get $~lib/memory/__stack_pointer i32.const 0 - call $"~lib/map/Map#constructor" + i32.const 0 + global.set $~argumentsLength + i32.const 0 + call $"~lib/map/Map#constructor@varargs" local.tee $valMap i32.store offset=20 i32.const 0 @@ -9064,55 +11175,55 @@ loop $for-loop|2 local.get $index local.get $keys - local.set $12 + local.set $17 global.get $~lib/memory/__stack_pointer - local.get $12 + local.get $17 i32.store offset=4 - local.get $12 + local.get $17 call $~lib/array/Array#get:length i32.lt_s if local.get $keys - local.set $12 + local.set $17 global.get $~lib/memory/__stack_pointer - local.get $12 + local.get $17 i32.store offset=4 - local.get $12 + local.get $17 local.get $index call $~lib/array/Array#__get local.set $key local.get $vals - local.set $12 + local.set $17 global.get $~lib/memory/__stack_pointer - local.get $12 + local.get $17 i32.store offset=4 - local.get $12 + local.get $17 local.get $index call $~lib/array/Array#__get local.set $value local.get $map - local.set $12 + local.set $17 global.get $~lib/memory/__stack_pointer - local.get $12 + local.get $17 i32.store offset=4 - local.get $12 + local.get $17 local.get $key call $"~lib/map/Map#has" i32.eqz if i32.const 0 - i32.const 544 - i32.const 31 + i32.const 752 + i32.const 32 i32.const 5 call $~lib/builtins/abort unreachable end local.get $map - local.set $12 + local.set $17 global.get $~lib/memory/__stack_pointer - local.get $12 + local.get $17 i32.store offset=4 - local.get $12 + local.get $17 local.get $value i32.const 20 i32.sub @@ -9120,28 +11231,28 @@ i32.eqz if i32.const 0 - i32.const 544 - i32.const 32 + i32.const 752 + i32.const 33 i32.const 5 call $~lib/builtins/abort unreachable end local.get $keyMap - local.set $12 + local.set $17 global.get $~lib/memory/__stack_pointer - local.get $12 + local.get $17 i32.store offset=4 - local.get $12 + local.get $17 local.get $key local.get $key call $"~lib/map/Map#set" drop local.get $valMap - local.set $12 + local.set $17 global.get $~lib/memory/__stack_pointer - local.get $12 + local.get $17 i32.store offset=4 - local.get $12 + local.get $17 local.get $value i32.const 20 i32.sub @@ -9158,37 +11269,37 @@ end end local.get $keyMap - local.set $12 + local.set $17 global.get $~lib/memory/__stack_pointer - local.get $12 + local.get $17 i32.store offset=4 - local.get $12 + local.get $17 call $"~lib/map/Map#get:size" i32.const 100 i32.eq i32.eqz if i32.const 0 - i32.const 544 - i32.const 36 + i32.const 752 + i32.const 37 i32.const 3 call $~lib/builtins/abort unreachable end local.get $valMap - local.set $12 + local.set $17 global.get $~lib/memory/__stack_pointer - local.get $12 + local.get $17 i32.store offset=4 - local.get $12 + local.get $17 call $"~lib/map/Map#get:size" i32.const 100 i32.eq i32.eqz if i32.const 0 - i32.const 544 - i32.const 37 + i32.const 752 + i32.const 38 i32.const 3 call $~lib/builtins/abort unreachable @@ -9201,28 +11312,28 @@ i32.lt_s if local.get $map - local.set $12 + local.set $17 global.get $~lib/memory/__stack_pointer - local.get $12 + local.get $17 i32.store offset=4 - local.get $12 + local.get $17 local.get $k|10 call $"~lib/map/Map#has" i32.eqz if i32.const 0 - i32.const 544 - i32.const 41 + i32.const 752 + i32.const 42 i32.const 5 call $~lib/builtins/abort unreachable end local.get $map - local.set $12 + local.set $17 global.get $~lib/memory/__stack_pointer - local.get $12 + local.get $17 i32.store offset=4 - local.get $12 + local.get $17 local.get $k|10 call $"~lib/map/Map#get" i32.const 20 @@ -9232,35 +11343,35 @@ i32.eqz if i32.const 0 - i32.const 544 - i32.const 42 + i32.const 752 + i32.const 43 i32.const 5 call $~lib/builtins/abort unreachable end local.get $map - local.set $12 + local.set $17 global.get $~lib/memory/__stack_pointer - local.get $12 + local.get $17 i32.store offset=4 - local.get $12 + local.get $17 local.get $k|10 call $"~lib/map/Map#delete" drop local.get $map - local.set $12 + local.set $17 global.get $~lib/memory/__stack_pointer - local.get $12 + local.get $17 i32.store offset=4 - local.get $12 + local.get $17 local.get $k|10 call $"~lib/map/Map#has" i32.eqz i32.eqz if i32.const 0 - i32.const 544 - i32.const 44 + i32.const 752 + i32.const 45 i32.const 5 call $~lib/builtins/abort unreachable @@ -9273,19 +11384,19 @@ end end local.get $map - local.set $12 + local.set $17 global.get $~lib/memory/__stack_pointer - local.get $12 + local.get $17 i32.store offset=4 - local.get $12 + local.get $17 call $"~lib/map/Map#get:size" i32.const 50 i32.eq i32.eqz if i32.const 0 - i32.const 544 - i32.const 46 + i32.const 752 + i32.const 47 i32.const 3 call $~lib/builtins/abort unreachable @@ -9298,29 +11409,29 @@ i32.lt_s if local.get $map - local.set $12 + local.set $17 global.get $~lib/memory/__stack_pointer - local.get $12 + local.get $17 i32.store offset=4 - local.get $12 + local.get $17 local.get $k|11 call $"~lib/map/Map#has" i32.eqz i32.eqz if i32.const 0 - i32.const 544 - i32.const 50 + i32.const 752 + i32.const 51 i32.const 5 call $~lib/builtins/abort unreachable end local.get $map - local.set $12 + local.set $17 global.get $~lib/memory/__stack_pointer - local.get $12 + local.get $17 i32.store offset=4 - local.get $12 + local.get $17 local.get $k|11 i32.const 10 local.get $k|11 @@ -9328,45 +11439,45 @@ call $"~lib/map/Map#set" drop local.get $map - local.set $12 + local.set $17 global.get $~lib/memory/__stack_pointer - local.get $12 + local.get $17 i32.store offset=4 - local.get $12 + local.get $17 local.get $k|11 call $"~lib/map/Map#has" i32.eqz if i32.const 0 - i32.const 544 - i32.const 52 + i32.const 752 + i32.const 53 i32.const 5 call $~lib/builtins/abort unreachable end local.get $map - local.set $12 + local.set $17 global.get $~lib/memory/__stack_pointer - local.get $12 + local.get $17 i32.store offset=4 - local.get $12 + local.get $17 local.get $k|11 call $"~lib/map/Map#delete" drop local.get $map - local.set $12 + local.set $17 global.get $~lib/memory/__stack_pointer - local.get $12 + local.get $17 i32.store offset=4 - local.get $12 + local.get $17 local.get $k|11 call $"~lib/map/Map#has" i32.eqz i32.eqz if i32.const 0 - i32.const 544 - i32.const 54 + i32.const 752 + i32.const 55 i32.const 5 call $~lib/builtins/abort unreachable @@ -9379,240 +11490,240 @@ end end local.get $map - local.set $12 + local.set $17 global.get $~lib/memory/__stack_pointer - local.get $12 + local.get $17 i32.store offset=4 - local.get $12 + local.get $17 call $"~lib/map/Map#get:size" i32.const 50 i32.eq i32.eqz if i32.const 0 - i32.const 544 - i32.const 56 + i32.const 752 + i32.const 57 i32.const 3 call $~lib/builtins/abort unreachable end local.get $map - local.set $12 + local.set $17 global.get $~lib/memory/__stack_pointer - local.get $12 + local.get $17 i32.store offset=4 - local.get $12 + local.get $17 call $"~lib/map/Map#clear" local.get $map - local.set $12 + local.set $17 global.get $~lib/memory/__stack_pointer - local.get $12 + local.get $17 i32.store offset=4 - local.get $12 + local.get $17 call $"~lib/map/Map#get:size" i32.const 0 i32.eq i32.eqz if i32.const 0 - i32.const 544 - i32.const 60 + i32.const 752 + i32.const 61 i32.const 3 call $~lib/builtins/abort unreachable end global.get $~lib/memory/__stack_pointer - i32.const 24 - i32.add - global.set $~lib/memory/__stack_pointer - ) - (func $"~lib/map/Map#constructor" (param $this i32) (result i32) - (local $1 i32) - global.get $~lib/memory/__stack_pointer - i32.const 12 - i32.sub - global.set $~lib/memory/__stack_pointer - call $~stack_check - global.get $~lib/memory/__stack_pointer - i64.const 0 - i64.store - global.get $~lib/memory/__stack_pointer i32.const 0 - i32.store offset=8 - local.get $this - i32.eqz - if - global.get $~lib/memory/__stack_pointer - i32.const 24 - i32.const 9 - call $~lib/rt/itcms/__new - local.tee $this - i32.store + i32.const 2 + i32.const 6 + i32.const 976 + call $~lib/rt/__newArray + local.tee $initialEntries + i32.store offset=24 + i32.const 0 + local.set $k|14 + loop $for-loop|5 + local.get $k|14 + i32.const 100 + i32.lt_s + if + local.get $initialEntries + local.set $17 + global.get $~lib/memory/__stack_pointer + local.get $17 + i32.store offset=4 + local.get $17 + global.get $~lib/memory/__stack_pointer + i32.const 0 + call $"~lib/map/KeyValue#constructor" + local.tee $15 + i32.store offset=32 + local.get $15 + local.set $17 + global.get $~lib/memory/__stack_pointer + local.get $17 + i32.store offset=36 + local.get $17 + local.get $k|14 + call $"~lib/map/KeyValue#set:key" + local.get $15 + local.set $17 + global.get $~lib/memory/__stack_pointer + local.get $17 + i32.store offset=36 + local.get $17 + i32.const 10 + local.get $k|14 + i32.add + call $"~lib/map/KeyValue#set:value" + local.get $15 + local.set $17 + global.get $~lib/memory/__stack_pointer + local.get $17 + i32.store offset=28 + local.get $17 + call $"~lib/array/Array<~lib/map/KeyValue>#push" + drop + local.get $k|14 + i32.const 1 + i32.add + local.set $k|14 + br $for-loop|5 + end end - local.get $this - local.set $1 global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - local.get $1 i32.const 0 - i32.const 4 - i32.const 4 - i32.mul - call $~lib/arraybuffer/ArrayBuffer#constructor - local.set $1 + local.get $initialEntries + local.set $17 global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=8 - local.get $1 - call $"~lib/map/Map#set:buckets" - local.get $this - local.set $1 + local.get $17 + i32.store offset=4 + local.get $17 + call $"~lib/map/Map#constructor" + local.tee $map + i32.store + local.get $map + local.set $17 global.get $~lib/memory/__stack_pointer - local.get $1 + local.get $17 i32.store offset=4 - local.get $1 - i32.const 4 - i32.const 1 - i32.sub - call $"~lib/map/Map#set:bucketsMask" - local.get $this - local.set $1 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - local.get $1 - i32.const 0 - i32.const 4 - block $"~lib/map/ENTRY_SIZE|inlined.0" (result i32) - i32.const 12 - br $"~lib/map/ENTRY_SIZE|inlined.0" + local.get $17 + call $"~lib/map/Map#get:size" + i32.const 100 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 752 + i32.const 74 + i32.const 3 + call $~lib/builtins/abort + unreachable end - i32.mul - call $~lib/arraybuffer/ArrayBuffer#constructor - local.set $1 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=8 - local.get $1 - call $"~lib/map/Map#set:entries" - local.get $this - local.set $1 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - local.get $1 - i32.const 4 - call $"~lib/map/Map#set:entriesCapacity" - local.get $this - local.set $1 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - local.get $1 - i32.const 0 - call $"~lib/map/Map#set:entriesOffset" - local.get $this - local.set $1 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - local.get $1 - i32.const 0 - call $"~lib/map/Map#set:entriesCount" - local.get $this - local.set $1 - global.get $~lib/memory/__stack_pointer - i32.const 12 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $1 - ) - (func $"~lib/map/Map#find" (param $this i32) (param $key i32) (param $hashCode i32) (result i32) - (local $entry i32) - (local $taggedNext i32) - (local $5 i32) - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.sub - global.set $~lib/memory/__stack_pointer - call $~stack_check - global.get $~lib/memory/__stack_pointer i32.const 0 - i32.store - local.get $this - local.set $5 - global.get $~lib/memory/__stack_pointer - local.get $5 - i32.store - local.get $5 - call $"~lib/map/Map#get:buckets" - local.get $hashCode - local.get $this - local.set $5 - global.get $~lib/memory/__stack_pointer - local.get $5 - i32.store - local.get $5 - call $"~lib/map/Map#get:bucketsMask" - i32.and - i32.const 4 - i32.mul - i32.add - i32.load - local.set $entry - loop $while-continue|0 - local.get $entry + local.set $k|16 + loop $for-loop|6 + local.get $k|16 + i32.const 100 + i32.lt_s if - local.get $entry - call $"~lib/map/MapEntry#get:taggedNext" - local.set $taggedNext - local.get $taggedNext - i32.const 1 - i32.and + local.get $map + local.set $17 + global.get $~lib/memory/__stack_pointer + local.get $17 + i32.store offset=4 + local.get $17 + local.get $k|16 + call $"~lib/map/Map#has" i32.eqz - if (result i32) - local.get $entry - call $"~lib/map/MapEntry#get:key" - i32.const 255 - i32.and - local.get $key - i32.const 255 - i32.and - i32.eq - else + if + i32.const 0 + i32.const 752 + i32.const 76 + i32.const 5 + call $~lib/builtins/abort + unreachable + end + local.get $map + local.set $17 + global.get $~lib/memory/__stack_pointer + local.get $17 + i32.store offset=4 + local.get $17 + local.get $k|16 + call $"~lib/map/Map#get" + i32.const 10 + local.get $k|16 + i32.add + i32.eq + i32.eqz + if i32.const 0 + i32.const 752 + i32.const 77 + i32.const 5 + call $~lib/builtins/abort + unreachable end + local.get $map + local.set $17 + global.get $~lib/memory/__stack_pointer + local.get $17 + i32.store offset=4 + local.get $17 + local.get $k|16 + call $"~lib/map/Map#delete" + drop + local.get $map + local.set $17 + global.get $~lib/memory/__stack_pointer + local.get $17 + i32.store offset=4 + local.get $17 + local.get $k|16 + call $"~lib/map/Map#has" + i32.eqz + i32.eqz if - local.get $entry - local.set $5 - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $5 - return + i32.const 0 + i32.const 752 + i32.const 79 + i32.const 5 + call $~lib/builtins/abort + unreachable end - local.get $taggedNext + local.get $k|16 i32.const 1 - i32.const -1 - i32.xor - i32.and - local.set $entry - br $while-continue|0 + i32.add + local.set $k|16 + br $for-loop|6 end end + local.get $map + local.set $17 + global.get $~lib/memory/__stack_pointer + local.get $17 + i32.store offset=4 + local.get $17 + call $"~lib/map/Map#get:size" i32.const 0 - local.set $5 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 752 + i32.const 81 + i32.const 3 + call $~lib/builtins/abort + unreachable + end global.get $~lib/memory/__stack_pointer - i32.const 4 + i32.const 40 i32.add global.set $~lib/memory/__stack_pointer - local.get $5 - return ) - (func $"~lib/map/Map#has" (param $this i32) (param $key i32) (result i32) - (local $2 i32) + (func $"~lib/array/Array<~lib/map/KeyValue>#get:length" (param $this i32) (result i32) + (local $1 i32) global.get $~lib/memory/__stack_pointer i32.const 4 i32.sub @@ -9622,23 +11733,18 @@ i32.const 0 i32.store local.get $this - local.set $2 + local.set $1 global.get $~lib/memory/__stack_pointer - local.get $2 + local.get $1 i32.store - local.get $2 - local.get $key - local.get $key - call $~lib/util/hash/HASH - call $"~lib/map/Map#find" - i32.const 0 - i32.ne - local.set $2 + local.get $1 + call $"~lib/array/Array<~lib/map/KeyValue>#get:length_" + local.set $1 global.get $~lib/memory/__stack_pointer i32.const 4 i32.add global.set $~lib/memory/__stack_pointer - local.get $2 + local.get $1 return ) (func $"~lib/map/Map#rehash" (param $this i32) (param $newBucketsMask i32) @@ -9687,9 +11793,9 @@ global.get $~lib/memory/__stack_pointer i32.const 0 local.get $newEntriesCapacity - block $"~lib/map/ENTRY_SIZE|inlined.1" (result i32) + block $"~lib/map/ENTRY_SIZE|inlined.0" (result i32) i32.const 12 - br $"~lib/map/ENTRY_SIZE|inlined.1" + br $"~lib/map/ENTRY_SIZE|inlined.0" end i32.mul call $~lib/arraybuffer/ArrayBuffer#constructor @@ -9711,9 +11817,9 @@ i32.store offset=8 local.get $14 call $"~lib/map/Map#get:entriesOffset" - block $"~lib/map/ENTRY_SIZE|inlined.2" (result i32) + block $"~lib/map/ENTRY_SIZE|inlined.1" (result i32) i32.const 12 - br $"~lib/map/ENTRY_SIZE|inlined.2" + br $"~lib/map/ENTRY_SIZE|inlined.1" end i32.mul i32.add @@ -9764,17 +11870,17 @@ local.get $newPtr i32.store local.get $newPtr - block $"~lib/map/ENTRY_SIZE|inlined.3" (result i32) + block $"~lib/map/ENTRY_SIZE|inlined.2" (result i32) i32.const 12 - br $"~lib/map/ENTRY_SIZE|inlined.3" + br $"~lib/map/ENTRY_SIZE|inlined.2" end i32.add local.set $newPtr end local.get $oldPtr - block $"~lib/map/ENTRY_SIZE|inlined.4" (result i32) + block $"~lib/map/ENTRY_SIZE|inlined.3" (result i32) i32.const 12 - br $"~lib/map/ENTRY_SIZE|inlined.4" + br $"~lib/map/ENTRY_SIZE|inlined.3" end i32.add local.set $oldPtr @@ -9842,252 +11948,77 @@ i32.add global.set $~lib/memory/__stack_pointer ) - (func $"~lib/map/Map#set" (param $this i32) (param $key i32) (param $value i32) (result i32) - (local $hashCode i32) - (local $entry i32) - (local $entries i32) - (local $6 i32) - (local $bucketPtrBase i32) - (local $8 i32) + (func $"~lib/array/Array<~lib/map/KeyValue>#__get" (param $this i32) (param $index i32) (result i32) + (local $value i32) + (local $3 i32) global.get $~lib/memory/__stack_pointer - i32.const 12 + i32.const 8 i32.sub global.set $~lib/memory/__stack_pointer call $~stack_check global.get $~lib/memory/__stack_pointer i64.const 0 i64.store - global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.store offset=8 - local.get $key - call $~lib/util/hash/HASH - local.set $hashCode + local.get $index local.get $this - local.set $8 + local.set $3 global.get $~lib/memory/__stack_pointer - local.get $8 + local.get $3 i32.store - local.get $8 - local.get $key - local.get $hashCode - call $"~lib/map/Map#find" - local.set $entry - local.get $entry + local.get $3 + call $"~lib/array/Array<~lib/map/KeyValue>#get:length_" + i32.ge_u if - local.get $entry - local.get $value - call $"~lib/map/MapEntry#set:value" - i32.const 0 - drop - else - local.get $this - local.set $8 - global.get $~lib/memory/__stack_pointer - local.get $8 - i32.store - local.get $8 - call $"~lib/map/Map#get:entriesOffset" - local.get $this - local.set $8 - global.get $~lib/memory/__stack_pointer - local.get $8 - i32.store - local.get $8 - call $"~lib/map/Map#get:entriesCapacity" - i32.eq - if - local.get $this - local.set $8 - global.get $~lib/memory/__stack_pointer - local.get $8 - i32.store - local.get $8 - local.get $this - local.set $8 - global.get $~lib/memory/__stack_pointer - local.get $8 - i32.store offset=4 - local.get $8 - call $"~lib/map/Map#get:entriesCount" - local.get $this - local.set $8 - global.get $~lib/memory/__stack_pointer - local.get $8 - i32.store offset=4 - local.get $8 - call $"~lib/map/Map#get:entriesCapacity" - i32.const 3 - i32.mul - i32.const 4 - i32.div_s - i32.lt_s - if (result i32) - local.get $this - local.set $8 - global.get $~lib/memory/__stack_pointer - local.get $8 - i32.store offset=4 - local.get $8 - call $"~lib/map/Map#get:bucketsMask" - else - local.get $this - local.set $8 - global.get $~lib/memory/__stack_pointer - local.get $8 - i32.store offset=4 - local.get $8 - call $"~lib/map/Map#get:bucketsMask" - i32.const 1 - i32.shl - i32.const 1 - i32.or - end - call $"~lib/map/Map#rehash" - end - global.get $~lib/memory/__stack_pointer - local.get $this - local.set $8 - global.get $~lib/memory/__stack_pointer - local.get $8 - i32.store - local.get $8 - call $"~lib/map/Map#get:entries" - local.tee $entries - i32.store offset=8 - local.get $entries - local.get $this - local.set $8 - global.get $~lib/memory/__stack_pointer - local.get $8 - i32.store - local.get $8 - local.get $this - local.set $8 - global.get $~lib/memory/__stack_pointer - local.get $8 - i32.store offset=4 - local.get $8 - call $"~lib/map/Map#get:entriesOffset" - local.tee $6 - i32.const 1 - i32.add - call $"~lib/map/Map#set:entriesOffset" - local.get $6 - block $"~lib/map/ENTRY_SIZE|inlined.5" (result i32) - i32.const 12 - br $"~lib/map/ENTRY_SIZE|inlined.5" - end - i32.mul - i32.add - local.set $entry - local.get $entry - local.get $key - call $"~lib/map/MapEntry#set:key" - i32.const 0 - drop - local.get $entry - local.get $value - call $"~lib/map/MapEntry#set:value" - i32.const 0 - drop - local.get $this - local.set $8 - global.get $~lib/memory/__stack_pointer - local.get $8 - i32.store - local.get $8 - local.get $this - local.set $8 - global.get $~lib/memory/__stack_pointer - local.get $8 - i32.store offset=4 - local.get $8 - call $"~lib/map/Map#get:entriesCount" - i32.const 1 - i32.add - call $"~lib/map/Map#set:entriesCount" - local.get $this - local.set $8 - global.get $~lib/memory/__stack_pointer - local.get $8 - i32.store - local.get $8 - call $"~lib/map/Map#get:buckets" - local.get $hashCode - local.get $this - local.set $8 - global.get $~lib/memory/__stack_pointer - local.get $8 - i32.store - local.get $8 - call $"~lib/map/Map#get:bucketsMask" - i32.and - i32.const 4 - i32.mul - i32.add - local.set $bucketPtrBase - local.get $entry - local.get $bucketPtrBase - i32.load - call $"~lib/map/MapEntry#set:taggedNext" - local.get $bucketPtrBase - local.get $entry - i32.store + i32.const 336 + i32.const 544 + i32.const 114 + i32.const 42 + call $~lib/builtins/abort + unreachable end - local.get $this - local.set $8 - global.get $~lib/memory/__stack_pointer - i32.const 12 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $8 - return - ) - (func $"~lib/map/Map#get" (param $this i32) (param $key i32) (result i32) - (local $entry i32) - (local $3 i32) - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.sub - global.set $~lib/memory/__stack_pointer - call $~stack_check global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.store local.get $this local.set $3 global.get $~lib/memory/__stack_pointer local.get $3 i32.store local.get $3 - local.get $key - local.get $key - call $~lib/util/hash/HASH - call $"~lib/map/Map#find" - local.set $entry - local.get $entry + call $"~lib/array/Array<~lib/map/KeyValue>#get:dataStart" + local.get $index + i32.const 2 + i32.shl + i32.add + i32.load + local.tee $value + i32.store offset=4 + i32.const 1 + drop + i32.const 0 + i32.eqz + drop + local.get $value i32.eqz if i32.const 592 - i32.const 656 - i32.const 105 - i32.const 17 + i32.const 544 + i32.const 118 + i32.const 40 call $~lib/builtins/abort unreachable end - local.get $entry - call $"~lib/map/MapEntry#get:value" + local.get $value local.set $3 global.get $~lib/memory/__stack_pointer - i32.const 4 + i32.const 8 i32.add global.set $~lib/memory/__stack_pointer local.get $3 return ) - (func $"~lib/map/Map#get:size" (param $this i32) (result i32) - (local $1 i32) + (func $"~lib/map/Map#find" (param $this i32) (param $key i32) (param $hashCode i32) (result i32) + (local $entry i32) + (local $taggedNext i32) + (local $5 i32) global.get $~lib/memory/__stack_pointer i32.const 4 i32.sub @@ -10097,228 +12028,445 @@ i32.const 0 i32.store local.get $this - local.set $1 + local.set $5 global.get $~lib/memory/__stack_pointer - local.get $1 + local.get $5 i32.store - local.get $1 - call $"~lib/map/Map#get:entriesCount" - local.set $1 + local.get $5 + call $"~lib/map/Map#get:buckets" + local.get $hashCode + local.get $this + local.set $5 global.get $~lib/memory/__stack_pointer + local.get $5 + i32.store + local.get $5 + call $"~lib/map/Map#get:bucketsMask" + i32.and i32.const 4 + i32.mul i32.add - global.set $~lib/memory/__stack_pointer - local.get $1 - return - ) - (func $~lib/array/Array#constructor (param $this i32) (param $length i32) (result i32) - (local $2 i32) - (local $3 i32) - (local $bufferSize i32) - (local $buffer i32) - (local $6 i32) - global.get $~lib/memory/__stack_pointer - i32.const 16 - i32.sub - global.set $~lib/memory/__stack_pointer - call $~stack_check - global.get $~lib/memory/__stack_pointer - i64.const 0 - i64.store - global.get $~lib/memory/__stack_pointer - i64.const 0 - i64.store offset=8 - local.get $this - i32.eqz - if - global.get $~lib/memory/__stack_pointer - i32.const 16 - i32.const 10 - call $~lib/rt/itcms/__new - local.tee $this - i32.store - end - local.get $this - local.set $6 - global.get $~lib/memory/__stack_pointer - local.get $6 - i32.store offset=4 - local.get $6 - i32.const 0 - call $~lib/array/Array#set:buffer - local.get $this - local.set $6 - global.get $~lib/memory/__stack_pointer - local.get $6 - i32.store offset=4 - local.get $6 - i32.const 0 - call $~lib/array/Array#set:dataStart + i32.load + local.set $entry + loop $while-continue|0 + local.get $entry + if + local.get $entry + call $"~lib/map/MapEntry#get:taggedNext" + local.set $taggedNext + local.get $taggedNext + i32.const 1 + i32.and + i32.eqz + if (result i32) + local.get $entry + call $"~lib/map/MapEntry#get:key" + i32.const 255 + i32.and + local.get $key + i32.const 255 + i32.and + i32.eq + else + i32.const 0 + end + if + local.get $entry + local.set $5 + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $5 + return + end + local.get $taggedNext + i32.const 1 + i32.const -1 + i32.xor + i32.and + local.set $entry + br $while-continue|0 + end + end + i32.const 0 + local.set $5 + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $5 + return + ) + (func $"~lib/map/Map#constructor" (param $this i32) (param $initialEntries i32) (result i32) + (local $entriesLength i32) + (local $i i32) + (local $key i32) + (local $value i32) + (local $hashCode i32) + (local $entry i32) + (local $entries i32) + (local $9 i32) + (local $entry|10 i32) + (local $bucketPtrBase i32) + (local $12 i32) + global.get $~lib/memory/__stack_pointer + i32.const 16 + i32.sub + global.set $~lib/memory/__stack_pointer + call $~stack_check + global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store + global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store offset=8 local.get $this - local.set $6 + i32.eqz + if + global.get $~lib/memory/__stack_pointer + i32.const 24 + i32.const 15 + call $~lib/rt/itcms/__new + local.tee $this + i32.store + end + local.get $this + local.set $12 global.get $~lib/memory/__stack_pointer - local.get $6 + local.get $12 i32.store offset=4 - local.get $6 + local.get $12 i32.const 0 - call $~lib/array/Array#set:byteLength + i32.const 4 + i32.const 4 + i32.mul + call $~lib/arraybuffer/ArrayBuffer#constructor + local.set $12 + global.get $~lib/memory/__stack_pointer + local.get $12 + i32.store offset=8 + local.get $12 + call $"~lib/map/Map#set:buckets" local.get $this - local.set $6 + local.set $12 global.get $~lib/memory/__stack_pointer - local.get $6 + local.get $12 i32.store offset=4 - local.get $6 - i32.const 0 - call $~lib/array/Array#set:length_ - local.get $length - i32.const 1073741820 + local.get $12 + i32.const 4 + i32.const 1 + i32.sub + call $"~lib/map/Map#set:bucketsMask" + local.get $this + local.set $12 + global.get $~lib/memory/__stack_pointer + local.get $12 + i32.store offset=4 + local.get $12 i32.const 0 - i32.shr_u - i32.gt_u - if - i32.const 432 - i32.const 704 - i32.const 70 - i32.const 60 - call $~lib/builtins/abort - unreachable + i32.const 4 + block $"~lib/map/ENTRY_SIZE|inlined.5" (result i32) + i32.const 12 + br $"~lib/map/ENTRY_SIZE|inlined.5" end - local.get $length - local.tee $2 - i32.const 8 - local.tee $3 - local.get $2 - local.get $3 - i32.gt_u - select - i32.const 0 - i32.shl - local.set $bufferSize + i32.mul + call $~lib/arraybuffer/ArrayBuffer#constructor + local.set $12 global.get $~lib/memory/__stack_pointer - local.get $bufferSize - i32.const 1 - call $~lib/rt/itcms/__new - local.tee $buffer + local.get $12 i32.store offset=8 - i32.const 2 - global.get $~lib/shared/runtime/Runtime.Incremental - i32.ne - drop + local.get $12 + call $"~lib/map/Map#set:entries" local.get $this - local.set $6 + local.set $12 global.get $~lib/memory/__stack_pointer - local.get $6 + local.get $12 i32.store offset=4 - local.get $6 - local.get $buffer - local.set $6 - global.get $~lib/memory/__stack_pointer - local.get $6 - i32.store offset=12 - local.get $6 - call $~lib/array/Array#set:buffer + local.get $12 + i32.const 4 + call $"~lib/map/Map#set:entriesCapacity" local.get $this - local.set $6 + local.set $12 global.get $~lib/memory/__stack_pointer - local.get $6 + local.get $12 i32.store offset=4 - local.get $6 - local.get $buffer - call $~lib/array/Array#set:dataStart + local.get $12 + i32.const 0 + call $"~lib/map/Map#set:entriesOffset" local.get $this - local.set $6 + local.set $12 global.get $~lib/memory/__stack_pointer - local.get $6 + local.get $12 i32.store offset=4 - local.get $6 - local.get $bufferSize - call $~lib/array/Array#set:byteLength - local.get $this - local.set $6 + local.get $12 + i32.const 0 + call $"~lib/map/Map#set:entriesCount" + local.get $initialEntries + local.set $12 global.get $~lib/memory/__stack_pointer - local.get $6 + local.get $12 i32.store offset=4 - local.get $6 - local.get $length - call $~lib/array/Array#set:length_ + local.get $12 + call $"~lib/array/Array<~lib/map/KeyValue>#get:length" + local.set $entriesLength + local.get $entriesLength + i32.const 0 + i32.gt_s + if + local.get $entriesLength + local.get $this + local.set $12 + global.get $~lib/memory/__stack_pointer + local.get $12 + i32.store offset=4 + local.get $12 + call $"~lib/map/Map#get:entriesCapacity" + i32.ge_s + if + local.get $this + local.set $12 + global.get $~lib/memory/__stack_pointer + local.get $12 + i32.store offset=4 + local.get $12 + local.get $entriesLength + call $"~lib/map/Map#set:bucketsMask" + end + local.get $this + local.set $12 + global.get $~lib/memory/__stack_pointer + local.get $12 + i32.store offset=4 + local.get $12 + local.get $this + local.set $12 + global.get $~lib/memory/__stack_pointer + local.get $12 + i32.store offset=8 + local.get $12 + call $"~lib/map/Map#get:bucketsMask" + i32.const 1 + i32.shl + i32.const 1 + i32.or + call $"~lib/map/Map#rehash" + i32.const 0 + local.set $i + loop $for-loop|0 + local.get $i + local.get $entriesLength + i32.lt_s + if + local.get $initialEntries + local.set $12 + global.get $~lib/memory/__stack_pointer + local.get $12 + i32.store offset=8 + local.get $12 + local.get $i + call $"~lib/array/Array<~lib/map/KeyValue>#__get" + local.set $12 + global.get $~lib/memory/__stack_pointer + local.get $12 + i32.store offset=4 + local.get $12 + call $"~lib/map/KeyValue#get:key" + local.set $key + local.get $initialEntries + local.set $12 + global.get $~lib/memory/__stack_pointer + local.get $12 + i32.store offset=8 + local.get $12 + local.get $i + call $"~lib/array/Array<~lib/map/KeyValue>#__get" + local.set $12 + global.get $~lib/memory/__stack_pointer + local.get $12 + i32.store offset=4 + local.get $12 + call $"~lib/map/KeyValue#get:value" + local.set $value + local.get $key + call $~lib/util/hash/HASH + local.set $hashCode + local.get $this + local.set $12 + global.get $~lib/memory/__stack_pointer + local.get $12 + i32.store offset=4 + local.get $12 + local.get $key + local.get $hashCode + call $"~lib/map/Map#find" + local.set $entry + local.get $entry + if + local.get $entry + local.get $value + call $"~lib/map/MapEntry#set:value" + i32.const 0 + drop + else + global.get $~lib/memory/__stack_pointer + local.get $this + local.set $12 + global.get $~lib/memory/__stack_pointer + local.get $12 + i32.store offset=4 + local.get $12 + call $"~lib/map/Map#get:entries" + local.tee $entries + i32.store offset=12 + local.get $entries + local.get $this + local.set $12 + global.get $~lib/memory/__stack_pointer + local.get $12 + i32.store offset=4 + local.get $12 + local.get $this + local.set $12 + global.get $~lib/memory/__stack_pointer + local.get $12 + i32.store offset=8 + local.get $12 + call $"~lib/map/Map#get:entriesOffset" + local.tee $9 + i32.const 1 + i32.add + call $"~lib/map/Map#set:entriesOffset" + local.get $9 + block $"~lib/map/ENTRY_SIZE|inlined.4" (result i32) + i32.const 12 + br $"~lib/map/ENTRY_SIZE|inlined.4" + end + i32.mul + i32.add + local.set $entry|10 + local.get $entry|10 + local.get $key + call $"~lib/map/MapEntry#set:key" + i32.const 0 + drop + local.get $entry|10 + local.get $value + call $"~lib/map/MapEntry#set:value" + i32.const 0 + drop + local.get $this + local.set $12 + global.get $~lib/memory/__stack_pointer + local.get $12 + i32.store offset=4 + local.get $12 + local.get $this + local.set $12 + global.get $~lib/memory/__stack_pointer + local.get $12 + i32.store offset=8 + local.get $12 + call $"~lib/map/Map#get:entriesCount" + i32.const 1 + i32.add + call $"~lib/map/Map#set:entriesCount" + local.get $this + local.set $12 + global.get $~lib/memory/__stack_pointer + local.get $12 + i32.store offset=4 + local.get $12 + call $"~lib/map/Map#get:buckets" + local.get $hashCode + local.get $this + local.set $12 + global.get $~lib/memory/__stack_pointer + local.get $12 + i32.store offset=4 + local.get $12 + call $"~lib/map/Map#get:bucketsMask" + i32.and + i32.const 4 + i32.mul + i32.add + local.set $bucketPtrBase + local.get $entry|10 + local.get $bucketPtrBase + i32.load + call $"~lib/map/MapEntry#set:taggedNext" + local.get $bucketPtrBase + local.get $entry|10 + i32.store + end + local.get $i + i32.const 1 + i32.add + local.set $i + br $for-loop|0 + end + end + end local.get $this - local.set $6 + local.set $12 global.get $~lib/memory/__stack_pointer i32.const 16 i32.add global.set $~lib/memory/__stack_pointer - local.get $6 + local.get $12 ) - (func $~lib/array/Array#__set (param $this i32) (param $index i32) (param $value i32) + (func $"~lib/map/Map#constructor@varargs" (param $this i32) (param $initialEntries i32) (result i32) + (local $2 i32) (local $3 i32) global.get $~lib/memory/__stack_pointer - i32.const 4 + i32.const 12 i32.sub global.set $~lib/memory/__stack_pointer call $~stack_check global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.store - local.get $index - local.get $this - local.set $3 + i64.const 0 + i64.store global.get $~lib/memory/__stack_pointer - local.get $3 - i32.store - local.get $3 - call $~lib/array/Array#get:length_ - i32.ge_u - if - local.get $index - i32.const 0 - i32.lt_s - if - i32.const 224 - i32.const 704 - i32.const 130 - i32.const 22 - call $~lib/builtins/abort + i32.const 0 + i32.store offset=8 + block $1of1 + block $0of1 + block $outOfRange + global.get $~argumentsLength + br_table $0of1 $1of1 $outOfRange + end unreachable end - local.get $this - local.get $index - i32.const 1 - i32.add - i32.const 0 - i32.const 1 - call $~lib/array/ensureCapacity - local.get $this - local.set $3 global.get $~lib/memory/__stack_pointer - local.get $3 + i32.const 0 + i32.const 2 + i32.const 17 + i32.const 1008 + call $~lib/rt/__newArray + local.tee $initialEntries i32.store - local.get $3 - local.get $index - i32.const 1 - i32.add - call $~lib/array/Array#set:length_ end local.get $this local.set $3 global.get $~lib/memory/__stack_pointer local.get $3 - i32.store + i32.store offset=4 local.get $3 - call $~lib/array/Array#get:dataStart - local.get $index - i32.const 0 - i32.shl - i32.add - local.get $value - i32.store8 - i32.const 0 - drop + local.get $initialEntries + local.set $3 global.get $~lib/memory/__stack_pointer - i32.const 4 + local.get $3 + i32.store offset=8 + local.get $3 + call $"~lib/map/Map#constructor" + local.set $3 + global.get $~lib/memory/__stack_pointer + i32.const 12 i32.add global.set $~lib/memory/__stack_pointer + local.get $3 ) - (func $~lib/array/Array#set:length (param $this i32) (param $newLength i32) + (func $"~lib/map/Map#has" (param $this i32) (param $key i32) (result i32) (local $2 i32) global.get $~lib/memory/__stack_pointer i32.const 4 @@ -10329,233 +12477,302 @@ i32.const 0 i32.store local.get $this - local.get $newLength - i32.const 0 - i32.const 0 - call $~lib/array/ensureCapacity - local.get $this local.set $2 global.get $~lib/memory/__stack_pointer local.get $2 i32.store local.get $2 - local.get $newLength - call $~lib/array/Array#set:length_ + local.get $key + local.get $key + call $~lib/util/hash/HASH + call $"~lib/map/Map#find" + i32.const 0 + i32.ne + local.set $2 global.get $~lib/memory/__stack_pointer i32.const 4 i32.add global.set $~lib/memory/__stack_pointer + local.get $2 + return ) - (func $"~lib/map/Map#keys" (param $this i32) (result i32) - (local $start i32) - (local $size i32) - (local $keys i32) - (local $length i32) - (local $i i32) + (func $"~lib/map/Map#set" (param $this i32) (param $key i32) (param $value i32) (result i32) + (local $hashCode i32) (local $entry i32) - (local $7 i32) + (local $entries i32) + (local $6 i32) + (local $bucketPtrBase i32) (local $8 i32) global.get $~lib/memory/__stack_pointer - i32.const 8 + i32.const 12 i32.sub global.set $~lib/memory/__stack_pointer call $~stack_check global.get $~lib/memory/__stack_pointer i64.const 0 i64.store - local.get $this - local.set $8 global.get $~lib/memory/__stack_pointer - local.get $8 - i32.store - local.get $8 - call $"~lib/map/Map#get:entries" - local.set $start + i32.const 0 + i32.store offset=8 + local.get $key + call $~lib/util/hash/HASH + local.set $hashCode local.get $this local.set $8 global.get $~lib/memory/__stack_pointer local.get $8 i32.store local.get $8 - call $"~lib/map/Map#get:entriesOffset" - local.set $size - global.get $~lib/memory/__stack_pointer - i32.const 0 - local.get $size - call $~lib/array/Array#constructor - local.tee $keys - i32.store offset=4 - i32.const 0 - local.set $length - i32.const 0 - local.set $i - loop $for-loop|0 - local.get $i - local.get $size - i32.lt_s + local.get $key + local.get $hashCode + call $"~lib/map/Map#find" + local.set $entry + local.get $entry + if + local.get $entry + local.get $value + call $"~lib/map/MapEntry#set:value" + i32.const 0 + drop + else + local.get $this + local.set $8 + global.get $~lib/memory/__stack_pointer + local.get $8 + i32.store + local.get $8 + call $"~lib/map/Map#get:entriesOffset" + local.get $this + local.set $8 + global.get $~lib/memory/__stack_pointer + local.get $8 + i32.store + local.get $8 + call $"~lib/map/Map#get:entriesCapacity" + i32.eq if - local.get $start - local.get $i - block $"~lib/map/ENTRY_SIZE|inlined.6" (result i32) - i32.const 12 - br $"~lib/map/ENTRY_SIZE|inlined.6" - end + local.get $this + local.set $8 + global.get $~lib/memory/__stack_pointer + local.get $8 + i32.store + local.get $8 + local.get $this + local.set $8 + global.get $~lib/memory/__stack_pointer + local.get $8 + i32.store offset=4 + local.get $8 + call $"~lib/map/Map#get:entriesCount" + local.get $this + local.set $8 + global.get $~lib/memory/__stack_pointer + local.get $8 + i32.store offset=4 + local.get $8 + call $"~lib/map/Map#get:entriesCapacity" + i32.const 3 i32.mul - i32.add - local.set $entry - local.get $entry - call $"~lib/map/MapEntry#get:taggedNext" - i32.const 1 - i32.and - i32.eqz - if - local.get $keys + i32.const 4 + i32.div_s + i32.lt_s + if (result i32) + local.get $this local.set $8 global.get $~lib/memory/__stack_pointer local.get $8 - i32.store + i32.store offset=4 local.get $8 - local.get $length - local.tee $7 + call $"~lib/map/Map#get:bucketsMask" + else + local.get $this + local.set $8 + global.get $~lib/memory/__stack_pointer + local.get $8 + i32.store offset=4 + local.get $8 + call $"~lib/map/Map#get:bucketsMask" i32.const 1 - i32.add - local.set $length - local.get $7 - local.get $entry - call $"~lib/map/MapEntry#get:key" - call $~lib/array/Array#__set + i32.shl + i32.const 1 + i32.or end - local.get $i - i32.const 1 - i32.add - local.set $i - br $for-loop|0 + call $"~lib/map/Map#rehash" end - end - local.get $keys - local.set $8 - global.get $~lib/memory/__stack_pointer - local.get $8 - i32.store - local.get $8 - local.get $length - call $~lib/array/Array#set:length - local.get $keys - local.set $8 - global.get $~lib/memory/__stack_pointer - i32.const 8 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $8 - return - ) - (func $"~lib/map/Map#values" (param $this i32) (result i32) - (local $start i32) - (local $size i32) - (local $values i32) - (local $length i32) - (local $i i32) + global.get $~lib/memory/__stack_pointer + local.get $this + local.set $8 + global.get $~lib/memory/__stack_pointer + local.get $8 + i32.store + local.get $8 + call $"~lib/map/Map#get:entries" + local.tee $entries + i32.store offset=8 + local.get $entries + local.get $this + local.set $8 + global.get $~lib/memory/__stack_pointer + local.get $8 + i32.store + local.get $8 + local.get $this + local.set $8 + global.get $~lib/memory/__stack_pointer + local.get $8 + i32.store offset=4 + local.get $8 + call $"~lib/map/Map#get:entriesOffset" + local.tee $6 + i32.const 1 + i32.add + call $"~lib/map/Map#set:entriesOffset" + local.get $6 + block $"~lib/map/ENTRY_SIZE|inlined.6" (result i32) + i32.const 12 + br $"~lib/map/ENTRY_SIZE|inlined.6" + end + i32.mul + i32.add + local.set $entry + local.get $entry + local.get $key + call $"~lib/map/MapEntry#set:key" + i32.const 0 + drop + local.get $entry + local.get $value + call $"~lib/map/MapEntry#set:value" + i32.const 0 + drop + local.get $this + local.set $8 + global.get $~lib/memory/__stack_pointer + local.get $8 + i32.store + local.get $8 + local.get $this + local.set $8 + global.get $~lib/memory/__stack_pointer + local.get $8 + i32.store offset=4 + local.get $8 + call $"~lib/map/Map#get:entriesCount" + i32.const 1 + i32.add + call $"~lib/map/Map#set:entriesCount" + local.get $this + local.set $8 + global.get $~lib/memory/__stack_pointer + local.get $8 + i32.store + local.get $8 + call $"~lib/map/Map#get:buckets" + local.get $hashCode + local.get $this + local.set $8 + global.get $~lib/memory/__stack_pointer + local.get $8 + i32.store + local.get $8 + call $"~lib/map/Map#get:bucketsMask" + i32.and + i32.const 4 + i32.mul + i32.add + local.set $bucketPtrBase + local.get $entry + local.get $bucketPtrBase + i32.load + call $"~lib/map/MapEntry#set:taggedNext" + local.get $bucketPtrBase + local.get $entry + i32.store + end + local.get $this + local.set $8 + global.get $~lib/memory/__stack_pointer + i32.const 12 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $8 + return + ) + (func $"~lib/map/Map#get" (param $this i32) (param $key i32) (result i32) (local $entry i32) - (local $7 i32) - (local $8 i32) + (local $3 i32) global.get $~lib/memory/__stack_pointer - i32.const 8 + i32.const 4 i32.sub global.set $~lib/memory/__stack_pointer call $~stack_check global.get $~lib/memory/__stack_pointer - i64.const 0 - i64.store - local.get $this - local.set $8 - global.get $~lib/memory/__stack_pointer - local.get $8 + i32.const 0 i32.store - local.get $8 - call $"~lib/map/Map#get:entries" - local.set $start local.get $this - local.set $8 + local.set $3 global.get $~lib/memory/__stack_pointer - local.get $8 + local.get $3 i32.store - local.get $8 - call $"~lib/map/Map#get:entriesOffset" - local.set $size + local.get $3 + local.get $key + local.get $key + call $~lib/util/hash/HASH + call $"~lib/map/Map#find" + local.set $entry + local.get $entry + i32.eqz + if + i32.const 800 + i32.const 864 + i32.const 148 + i32.const 17 + call $~lib/builtins/abort + unreachable + end + local.get $entry + call $"~lib/map/MapEntry#get:value" + local.set $3 + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $3 + return + ) + (func $"~lib/map/Map#get:size" (param $this i32) (result i32) + (local $1 i32) + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.sub + global.set $~lib/memory/__stack_pointer + call $~stack_check global.get $~lib/memory/__stack_pointer i32.const 0 - local.get $size - call $~lib/array/Array#constructor - local.tee $values - i32.store offset=4 - i32.const 0 - local.set $length - i32.const 0 - local.set $i - loop $for-loop|0 - local.get $i - local.get $size - i32.lt_s - if - local.get $start - local.get $i - block $"~lib/map/ENTRY_SIZE|inlined.7" (result i32) - i32.const 12 - br $"~lib/map/ENTRY_SIZE|inlined.7" - end - i32.mul - i32.add - local.set $entry - local.get $entry - call $"~lib/map/MapEntry#get:taggedNext" - i32.const 1 - i32.and - i32.eqz - if - local.get $values - local.set $8 - global.get $~lib/memory/__stack_pointer - local.get $8 - i32.store - local.get $8 - local.get $length - local.tee $7 - i32.const 1 - i32.add - local.set $length - local.get $7 - local.get $entry - call $"~lib/map/MapEntry#get:value" - call $~lib/array/Array#__set - end - local.get $i - i32.const 1 - i32.add - local.set $i - br $for-loop|0 - end - end - local.get $values - local.set $8 + i32.store + local.get $this + local.set $1 global.get $~lib/memory/__stack_pointer - local.get $8 + local.get $1 i32.store - local.get $8 - local.get $length - call $~lib/array/Array#set:length - local.get $values - local.set $8 + local.get $1 + call $"~lib/map/Map#get:entriesCount" + local.set $1 global.get $~lib/memory/__stack_pointer - i32.const 8 + i32.const 4 i32.add global.set $~lib/memory/__stack_pointer - local.get $8 + local.get $1 return ) - (func $"~lib/map/Map#constructor" (param $this i32) (result i32) - (local $1 i32) + (func $~lib/array/Array#constructor (param $this i32) (param $length i32) (result i32) + (local $2 i32) + (local $3 i32) + (local $bufferSize i32) + (local $buffer i32) + (local $6 i32) global.get $~lib/memory/__stack_pointer - i32.const 12 + i32.const 16 i32.sub global.set $~lib/memory/__stack_pointer call $~stack_check @@ -10563,124 +12780,130 @@ i64.const 0 i64.store global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.store offset=8 + i64.const 0 + i64.store offset=8 local.get $this i32.eqz if global.get $~lib/memory/__stack_pointer - i32.const 24 - i32.const 11 + i32.const 16 + i32.const 18 call $~lib/rt/itcms/__new local.tee $this i32.store end local.get $this - local.set $1 + local.set $6 global.get $~lib/memory/__stack_pointer - local.get $1 + local.get $6 i32.store offset=4 - local.get $1 + local.get $6 i32.const 0 - i32.const 4 - i32.const 4 - i32.mul - call $~lib/arraybuffer/ArrayBuffer#constructor - local.set $1 + call $~lib/array/Array#set:buffer + local.get $this + local.set $6 global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=8 - local.get $1 - call $"~lib/map/Map#set:buckets" + local.get $6 + i32.store offset=4 + local.get $6 + i32.const 0 + call $~lib/array/Array#set:dataStart local.get $this - local.set $1 + local.set $6 global.get $~lib/memory/__stack_pointer - local.get $1 + local.get $6 i32.store offset=4 - local.get $1 - i32.const 4 - i32.const 1 - i32.sub - call $"~lib/map/Map#set:bucketsMask" + local.get $6 + i32.const 0 + call $~lib/array/Array#set:byteLength local.get $this - local.set $1 + local.set $6 global.get $~lib/memory/__stack_pointer - local.get $1 + local.get $6 i32.store offset=4 - local.get $1 + local.get $6 i32.const 0 - i32.const 4 - block $"~lib/map/ENTRY_SIZE|inlined.0" (result i32) - i32.const 8 - br $"~lib/map/ENTRY_SIZE|inlined.0" + call $~lib/array/Array#set:length_ + local.get $length + i32.const 1073741820 + i32.const 0 + i32.shr_u + i32.gt_u + if + i32.const 32 + i32.const 544 + i32.const 70 + i32.const 60 + call $~lib/builtins/abort + unreachable end - i32.mul - call $~lib/arraybuffer/ArrayBuffer#constructor - local.set $1 + local.get $length + local.tee $2 + i32.const 8 + local.tee $3 + local.get $2 + local.get $3 + i32.gt_u + select + i32.const 0 + i32.shl + local.set $bufferSize global.get $~lib/memory/__stack_pointer - local.get $1 + local.get $bufferSize + i32.const 1 + call $~lib/rt/itcms/__new + local.tee $buffer i32.store offset=8 - local.get $1 - call $"~lib/map/Map#set:entries" + i32.const 2 + global.get $~lib/shared/runtime/Runtime.Incremental + i32.ne + drop local.get $this - local.set $1 + local.set $6 global.get $~lib/memory/__stack_pointer - local.get $1 + local.get $6 i32.store offset=4 - local.get $1 - i32.const 4 - call $"~lib/map/Map#set:entriesCapacity" + local.get $6 + local.get $buffer + local.set $6 + global.get $~lib/memory/__stack_pointer + local.get $6 + i32.store offset=12 + local.get $6 + call $~lib/array/Array#set:buffer local.get $this - local.set $1 + local.set $6 global.get $~lib/memory/__stack_pointer - local.get $1 + local.get $6 i32.store offset=4 - local.get $1 - i32.const 0 - call $"~lib/map/Map#set:entriesOffset" + local.get $6 + local.get $buffer + call $~lib/array/Array#set:dataStart local.get $this - local.set $1 + local.set $6 global.get $~lib/memory/__stack_pointer - local.get $1 + local.get $6 i32.store offset=4 - local.get $1 - i32.const 0 - call $"~lib/map/Map#set:entriesCount" + local.get $6 + local.get $bufferSize + call $~lib/array/Array#set:byteLength local.get $this - local.set $1 - global.get $~lib/memory/__stack_pointer - i32.const 12 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $1 - ) - (func $~lib/array/Array#get:length (param $this i32) (result i32) - (local $1 i32) - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.sub - global.set $~lib/memory/__stack_pointer - call $~stack_check + local.set $6 global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.store + local.get $6 + i32.store offset=4 + local.get $6 + local.get $length + call $~lib/array/Array#set:length_ local.get $this - local.set $1 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store - local.get $1 - call $~lib/array/Array#get:length_ - local.set $1 + local.set $6 global.get $~lib/memory/__stack_pointer - i32.const 4 + i32.const 16 i32.add global.set $~lib/memory/__stack_pointer - local.get $1 - return + local.get $6 ) - (func $~lib/array/Array#__get (param $this i32) (param $index i32) (result i32) - (local $value i32) + (func $~lib/array/Array#__set (param $this i32) (param $index i32) (param $value i32) (local $3 i32) global.get $~lib/memory/__stack_pointer i32.const 4 @@ -10700,12 +12923,34 @@ call $~lib/array/Array#get:length_ i32.ge_u if - i32.const 224 - i32.const 704 - i32.const 114 - i32.const 42 - call $~lib/builtins/abort - unreachable + local.get $index + i32.const 0 + i32.lt_s + if + i32.const 336 + i32.const 544 + i32.const 130 + i32.const 22 + call $~lib/builtins/abort + unreachable + end + local.get $this + local.get $index + i32.const 1 + i32.add + i32.const 0 + i32.const 1 + call $~lib/array/ensureCapacity + local.get $this + local.set $3 + global.get $~lib/memory/__stack_pointer + local.get $3 + i32.store + local.get $3 + local.get $index + i32.const 1 + i32.add + call $~lib/array/Array#set:length_ end local.get $this local.set $3 @@ -10718,23 +12963,17 @@ i32.const 0 i32.shl i32.add - i32.load8_u - local.set $value + local.get $value + i32.store8 i32.const 0 drop - local.get $value - local.set $3 global.get $~lib/memory/__stack_pointer i32.const 4 i32.add global.set $~lib/memory/__stack_pointer - local.get $3 - return ) - (func $"~lib/map/Map#find" (param $this i32) (param $key i32) (param $hashCode i32) (result i32) - (local $entry i32) - (local $taggedNext i32) - (local $5 i32) + (func $~lib/array/Array#set:length (param $this i32) (param $newLength i32) + (local $2 i32) global.get $~lib/memory/__stack_pointer i32.const 4 i32.sub @@ -10744,74 +12983,252 @@ i32.const 0 i32.store local.get $this - local.set $5 - global.get $~lib/memory/__stack_pointer - local.get $5 - i32.store - local.get $5 - call $"~lib/map/Map#get:buckets" - local.get $hashCode + local.get $newLength + i32.const 0 + i32.const 0 + call $~lib/array/ensureCapacity local.get $this - local.set $5 + local.set $2 global.get $~lib/memory/__stack_pointer - local.get $5 + local.get $2 i32.store - local.get $5 - call $"~lib/map/Map#get:bucketsMask" - i32.and - i32.const 4 - i32.mul - i32.add - i32.load - local.set $entry - loop $while-continue|0 - local.get $entry - if - local.get $entry - call $"~lib/map/MapEntry#get:taggedNext" - local.set $taggedNext - local.get $taggedNext - i32.const 1 - i32.and - i32.eqz - if (result i32) - local.get $entry - call $"~lib/map/MapEntry#get:key" - i32.const 255 - i32.and - local.get $key - i32.const 255 - i32.and - i32.eq - else - i32.const 0 - end - if - local.get $entry - local.set $5 - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $5 - return - end - local.get $taggedNext - i32.const 1 - i32.const -1 - i32.xor - i32.and - local.set $entry - br $while-continue|0 - end - end - i32.const 0 - local.set $5 + local.get $2 + local.get $newLength + call $~lib/array/Array#set:length_ global.get $~lib/memory/__stack_pointer i32.const 4 i32.add global.set $~lib/memory/__stack_pointer - local.get $5 + ) + (func $"~lib/map/Map#keys" (param $this i32) (result i32) + (local $start i32) + (local $size i32) + (local $keys i32) + (local $length i32) + (local $i i32) + (local $entry i32) + (local $7 i32) + (local $8 i32) + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.sub + global.set $~lib/memory/__stack_pointer + call $~stack_check + global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store + local.get $this + local.set $8 + global.get $~lib/memory/__stack_pointer + local.get $8 + i32.store + local.get $8 + call $"~lib/map/Map#get:entries" + local.set $start + local.get $this + local.set $8 + global.get $~lib/memory/__stack_pointer + local.get $8 + i32.store + local.get $8 + call $"~lib/map/Map#get:entriesOffset" + local.set $size + global.get $~lib/memory/__stack_pointer + i32.const 0 + local.get $size + call $~lib/array/Array#constructor + local.tee $keys + i32.store offset=4 + i32.const 0 + local.set $length + i32.const 0 + local.set $i + loop $for-loop|0 + local.get $i + local.get $size + i32.lt_s + if + local.get $start + local.get $i + block $"~lib/map/ENTRY_SIZE|inlined.7" (result i32) + i32.const 12 + br $"~lib/map/ENTRY_SIZE|inlined.7" + end + i32.mul + i32.add + local.set $entry + local.get $entry + call $"~lib/map/MapEntry#get:taggedNext" + i32.const 1 + i32.and + i32.eqz + if + local.get $keys + local.set $8 + global.get $~lib/memory/__stack_pointer + local.get $8 + i32.store + local.get $8 + local.get $length + local.tee $7 + i32.const 1 + i32.add + local.set $length + local.get $7 + local.get $entry + call $"~lib/map/MapEntry#get:key" + call $~lib/array/Array#__set + end + local.get $i + i32.const 1 + i32.add + local.set $i + br $for-loop|0 + end + end + local.get $keys + local.set $8 + global.get $~lib/memory/__stack_pointer + local.get $8 + i32.store + local.get $8 + local.get $length + call $~lib/array/Array#set:length + local.get $keys + local.set $8 + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $8 + return + ) + (func $"~lib/map/Map#values" (param $this i32) (result i32) + (local $start i32) + (local $size i32) + (local $values i32) + (local $length i32) + (local $i i32) + (local $entry i32) + (local $7 i32) + (local $8 i32) + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.sub + global.set $~lib/memory/__stack_pointer + call $~stack_check + global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store + local.get $this + local.set $8 + global.get $~lib/memory/__stack_pointer + local.get $8 + i32.store + local.get $8 + call $"~lib/map/Map#get:entries" + local.set $start + local.get $this + local.set $8 + global.get $~lib/memory/__stack_pointer + local.get $8 + i32.store + local.get $8 + call $"~lib/map/Map#get:entriesOffset" + local.set $size + global.get $~lib/memory/__stack_pointer + i32.const 0 + local.get $size + call $~lib/array/Array#constructor + local.tee $values + i32.store offset=4 + i32.const 0 + local.set $length + i32.const 0 + local.set $i + loop $for-loop|0 + local.get $i + local.get $size + i32.lt_s + if + local.get $start + local.get $i + block $"~lib/map/ENTRY_SIZE|inlined.8" (result i32) + i32.const 12 + br $"~lib/map/ENTRY_SIZE|inlined.8" + end + i32.mul + i32.add + local.set $entry + local.get $entry + call $"~lib/map/MapEntry#get:taggedNext" + i32.const 1 + i32.and + i32.eqz + if + local.get $values + local.set $8 + global.get $~lib/memory/__stack_pointer + local.get $8 + i32.store + local.get $8 + local.get $length + local.tee $7 + i32.const 1 + i32.add + local.set $length + local.get $7 + local.get $entry + call $"~lib/map/MapEntry#get:value" + call $~lib/array/Array#__set + end + local.get $i + i32.const 1 + i32.add + local.set $i + br $for-loop|0 + end + end + local.get $values + local.set $8 + global.get $~lib/memory/__stack_pointer + local.get $8 + i32.store + local.get $8 + local.get $length + call $~lib/array/Array#set:length + local.get $values + local.set $8 + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $8 + return + ) + (func $"~lib/array/Array<~lib/map/KeyValue>#get:length" (param $this i32) (result i32) + (local $1 i32) + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.sub + global.set $~lib/memory/__stack_pointer + call $~stack_check + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store + local.get $this + local.set $1 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store + local.get $1 + call $"~lib/array/Array<~lib/map/KeyValue>#get:length_" + local.set $1 + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $1 return ) (func $"~lib/map/Map#rehash" (param $this i32) (param $newBucketsMask i32) @@ -10860,9 +13277,9 @@ global.get $~lib/memory/__stack_pointer i32.const 0 local.get $newEntriesCapacity - block $"~lib/map/ENTRY_SIZE|inlined.1" (result i32) + block $"~lib/map/ENTRY_SIZE|inlined.0" (result i32) i32.const 8 - br $"~lib/map/ENTRY_SIZE|inlined.1" + br $"~lib/map/ENTRY_SIZE|inlined.0" end i32.mul call $~lib/arraybuffer/ArrayBuffer#constructor @@ -10884,9 +13301,9 @@ i32.store offset=8 local.get $14 call $"~lib/map/Map#get:entriesOffset" - block $"~lib/map/ENTRY_SIZE|inlined.2" (result i32) + block $"~lib/map/ENTRY_SIZE|inlined.1" (result i32) i32.const 8 - br $"~lib/map/ENTRY_SIZE|inlined.2" + br $"~lib/map/ENTRY_SIZE|inlined.1" end i32.mul i32.add @@ -10937,17 +13354,17 @@ local.get $newPtr i32.store local.get $newPtr - block $"~lib/map/ENTRY_SIZE|inlined.3" (result i32) + block $"~lib/map/ENTRY_SIZE|inlined.2" (result i32) i32.const 8 - br $"~lib/map/ENTRY_SIZE|inlined.3" + br $"~lib/map/ENTRY_SIZE|inlined.2" end i32.add local.set $newPtr end local.get $oldPtr - block $"~lib/map/ENTRY_SIZE|inlined.4" (result i32) + block $"~lib/map/ENTRY_SIZE|inlined.3" (result i32) i32.const 8 - br $"~lib/map/ENTRY_SIZE|inlined.4" + br $"~lib/map/ENTRY_SIZE|inlined.3" end i32.add local.set $oldPtr @@ -11015,210 +13432,77 @@ i32.add global.set $~lib/memory/__stack_pointer ) - (func $"~lib/map/Map#set" (param $this i32) (param $key i32) (param $value i32) (result i32) - (local $hashCode i32) - (local $entry i32) - (local $entries i32) - (local $6 i32) - (local $bucketPtrBase i32) - (local $8 i32) + (func $"~lib/array/Array<~lib/map/KeyValue>#__get" (param $this i32) (param $index i32) (result i32) + (local $value i32) + (local $3 i32) global.get $~lib/memory/__stack_pointer - i32.const 12 + i32.const 8 i32.sub global.set $~lib/memory/__stack_pointer call $~stack_check global.get $~lib/memory/__stack_pointer i64.const 0 i64.store - global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.store offset=8 - local.get $key - call $~lib/util/hash/HASH - local.set $hashCode + local.get $index local.get $this - local.set $8 + local.set $3 global.get $~lib/memory/__stack_pointer - local.get $8 + local.get $3 i32.store - local.get $8 - local.get $key - local.get $hashCode - call $"~lib/map/Map#find" - local.set $entry - local.get $entry + local.get $3 + call $"~lib/array/Array<~lib/map/KeyValue>#get:length_" + i32.ge_u if - local.get $entry - local.get $value - call $"~lib/map/MapEntry#set:value" - i32.const 0 - drop - else - local.get $this - local.set $8 - global.get $~lib/memory/__stack_pointer - local.get $8 - i32.store - local.get $8 - call $"~lib/map/Map#get:entriesOffset" - local.get $this - local.set $8 - global.get $~lib/memory/__stack_pointer - local.get $8 - i32.store - local.get $8 - call $"~lib/map/Map#get:entriesCapacity" - i32.eq - if - local.get $this - local.set $8 - global.get $~lib/memory/__stack_pointer - local.get $8 - i32.store - local.get $8 - local.get $this - local.set $8 - global.get $~lib/memory/__stack_pointer - local.get $8 - i32.store offset=4 - local.get $8 - call $"~lib/map/Map#get:entriesCount" - local.get $this - local.set $8 - global.get $~lib/memory/__stack_pointer - local.get $8 - i32.store offset=4 - local.get $8 - call $"~lib/map/Map#get:entriesCapacity" - i32.const 3 - i32.mul - i32.const 4 - i32.div_s - i32.lt_s - if (result i32) - local.get $this - local.set $8 - global.get $~lib/memory/__stack_pointer - local.get $8 - i32.store offset=4 - local.get $8 - call $"~lib/map/Map#get:bucketsMask" - else - local.get $this - local.set $8 - global.get $~lib/memory/__stack_pointer - local.get $8 - i32.store offset=4 - local.get $8 - call $"~lib/map/Map#get:bucketsMask" - i32.const 1 - i32.shl - i32.const 1 - i32.or - end - call $"~lib/map/Map#rehash" - end - global.get $~lib/memory/__stack_pointer - local.get $this - local.set $8 - global.get $~lib/memory/__stack_pointer - local.get $8 - i32.store - local.get $8 - call $"~lib/map/Map#get:entries" - local.tee $entries - i32.store offset=8 - local.get $entries - local.get $this - local.set $8 - global.get $~lib/memory/__stack_pointer - local.get $8 - i32.store - local.get $8 - local.get $this - local.set $8 - global.get $~lib/memory/__stack_pointer - local.get $8 - i32.store offset=4 - local.get $8 - call $"~lib/map/Map#get:entriesOffset" - local.tee $6 - i32.const 1 - i32.add - call $"~lib/map/Map#set:entriesOffset" - local.get $6 - block $"~lib/map/ENTRY_SIZE|inlined.5" (result i32) - i32.const 8 - br $"~lib/map/ENTRY_SIZE|inlined.5" - end - i32.mul - i32.add - local.set $entry - local.get $entry - local.get $key - call $"~lib/map/MapEntry#set:key" - i32.const 0 - drop - local.get $entry - local.get $value - call $"~lib/map/MapEntry#set:value" - i32.const 0 - drop - local.get $this - local.set $8 - global.get $~lib/memory/__stack_pointer - local.get $8 - i32.store - local.get $8 - local.get $this - local.set $8 - global.get $~lib/memory/__stack_pointer - local.get $8 - i32.store offset=4 - local.get $8 - call $"~lib/map/Map#get:entriesCount" - i32.const 1 - i32.add - call $"~lib/map/Map#set:entriesCount" - local.get $this - local.set $8 - global.get $~lib/memory/__stack_pointer - local.get $8 - i32.store - local.get $8 - call $"~lib/map/Map#get:buckets" - local.get $hashCode - local.get $this - local.set $8 - global.get $~lib/memory/__stack_pointer - local.get $8 - i32.store - local.get $8 - call $"~lib/map/Map#get:bucketsMask" - i32.and - i32.const 4 - i32.mul - i32.add - local.set $bucketPtrBase - local.get $entry - local.get $bucketPtrBase - i32.load - call $"~lib/map/MapEntry#set:taggedNext" - local.get $bucketPtrBase - local.get $entry - i32.store + i32.const 336 + i32.const 544 + i32.const 114 + i32.const 42 + call $~lib/builtins/abort + unreachable end + global.get $~lib/memory/__stack_pointer local.get $this - local.set $8 + local.set $3 global.get $~lib/memory/__stack_pointer - i32.const 12 + local.get $3 + i32.store + local.get $3 + call $"~lib/array/Array<~lib/map/KeyValue>#get:dataStart" + local.get $index + i32.const 2 + i32.shl + i32.add + i32.load + local.tee $value + i32.store offset=4 + i32.const 1 + drop + i32.const 0 + i32.eqz + drop + local.get $value + i32.eqz + if + i32.const 592 + i32.const 544 + i32.const 118 + i32.const 40 + call $~lib/builtins/abort + unreachable + end + local.get $value + local.set $3 + global.get $~lib/memory/__stack_pointer + i32.const 8 i32.add global.set $~lib/memory/__stack_pointer - local.get $8 + local.get $3 return ) - (func $"~lib/map/Map#get:size" (param $this i32) (result i32) - (local $1 i32) + (func $"~lib/map/Map#find" (param $this i32) (param $key i32) (param $hashCode i32) (result i32) + (local $entry i32) + (local $taggedNext i32) + (local $5 i32) global.get $~lib/memory/__stack_pointer i32.const 4 i32.sub @@ -11228,323 +13512,1178 @@ i32.const 0 i32.store local.get $this - local.set $1 + local.set $5 global.get $~lib/memory/__stack_pointer - local.get $1 + local.get $5 i32.store - local.get $1 - call $"~lib/map/Map#get:entriesCount" - local.set $1 - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $1 - return - ) - (func $"~lib/map/Map#delete" (param $this i32) (param $key i32) (result i32) - (local $entry i32) - (local $halfBucketsMask i32) - (local $4 i32) - (local $5 i32) - (local $6 i32) - global.get $~lib/memory/__stack_pointer - i32.const 8 - i32.sub - global.set $~lib/memory/__stack_pointer - call $~stack_check - global.get $~lib/memory/__stack_pointer - i64.const 0 - i64.store + local.get $5 + call $"~lib/map/Map#get:buckets" + local.get $hashCode local.get $this - local.set $6 + local.set $5 global.get $~lib/memory/__stack_pointer - local.get $6 + local.get $5 i32.store - local.get $6 - local.get $key - local.get $key - call $~lib/util/hash/HASH - call $"~lib/map/Map#find" + local.get $5 + call $"~lib/map/Map#get:bucketsMask" + i32.and + i32.const 4 + i32.mul + i32.add + i32.load local.set $entry - local.get $entry - i32.eqz - if - i32.const 0 - local.set $6 + loop $while-continue|0 + local.get $entry + if + local.get $entry + call $"~lib/map/MapEntry#get:taggedNext" + local.set $taggedNext + local.get $taggedNext + i32.const 1 + i32.and + i32.eqz + if (result i32) + local.get $entry + call $"~lib/map/MapEntry#get:key" + i32.const 255 + i32.and + local.get $key + i32.const 255 + i32.and + i32.eq + else + i32.const 0 + end + if + local.get $entry + local.set $5 + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $5 + return + end + local.get $taggedNext + i32.const 1 + i32.const -1 + i32.xor + i32.and + local.set $entry + br $while-continue|0 + end + end + i32.const 0 + local.set $5 + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $5 + return + ) + (func $"~lib/map/Map#constructor" (param $this i32) (param $initialEntries i32) (result i32) + (local $entriesLength i32) + (local $i i32) + (local $key i32) + (local $value i32) + (local $hashCode i32) + (local $entry i32) + (local $entries i32) + (local $9 i32) + (local $entry|10 i32) + (local $bucketPtrBase i32) + (local $12 i32) + global.get $~lib/memory/__stack_pointer + i32.const 16 + i32.sub + global.set $~lib/memory/__stack_pointer + call $~stack_check + global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store + global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store offset=8 + local.get $this + i32.eqz + if global.get $~lib/memory/__stack_pointer - i32.const 8 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $6 - return + i32.const 24 + i32.const 19 + call $~lib/rt/itcms/__new + local.tee $this + i32.store end - local.get $entry - local.get $entry - call $"~lib/map/MapEntry#get:taggedNext" - i32.const 1 - i32.or - call $"~lib/map/MapEntry#set:taggedNext" local.get $this - local.set $6 + local.set $12 global.get $~lib/memory/__stack_pointer - local.get $6 - i32.store - local.get $6 + local.get $12 + i32.store offset=4 + local.get $12 + i32.const 0 + i32.const 4 + i32.const 4 + i32.mul + call $~lib/arraybuffer/ArrayBuffer#constructor + local.set $12 + global.get $~lib/memory/__stack_pointer + local.get $12 + i32.store offset=8 + local.get $12 + call $"~lib/map/Map#set:buckets" local.get $this - local.set $6 + local.set $12 global.get $~lib/memory/__stack_pointer - local.get $6 + local.get $12 i32.store offset=4 - local.get $6 - call $"~lib/map/Map#get:entriesCount" + local.get $12 + i32.const 4 i32.const 1 i32.sub - call $"~lib/map/Map#set:entriesCount" + call $"~lib/map/Map#set:bucketsMask" local.get $this - local.set $6 + local.set $12 global.get $~lib/memory/__stack_pointer - local.get $6 - i32.store - local.get $6 - call $"~lib/map/Map#get:bucketsMask" - i32.const 1 - i32.shr_u - local.set $halfBucketsMask - local.get $halfBucketsMask - i32.const 1 - i32.add + local.get $12 + i32.store offset=4 + local.get $12 + i32.const 0 i32.const 4 - local.tee $4 + block $"~lib/map/ENTRY_SIZE|inlined.5" (result i32) + i32.const 8 + br $"~lib/map/ENTRY_SIZE|inlined.5" + end + i32.mul + call $~lib/arraybuffer/ArrayBuffer#constructor + local.set $12 + global.get $~lib/memory/__stack_pointer + local.get $12 + i32.store offset=8 + local.get $12 + call $"~lib/map/Map#set:entries" local.get $this - local.set $6 + local.set $12 global.get $~lib/memory/__stack_pointer - local.get $6 - i32.store - local.get $6 - call $"~lib/map/Map#get:entriesCount" - local.tee $5 - local.get $4 - local.get $5 - i32.gt_u - select - i32.ge_u - if (result i32) + local.get $12 + i32.store offset=4 + local.get $12 + i32.const 4 + call $"~lib/map/Map#set:entriesCapacity" + local.get $this + local.set $12 + global.get $~lib/memory/__stack_pointer + local.get $12 + i32.store offset=4 + local.get $12 + i32.const 0 + call $"~lib/map/Map#set:entriesOffset" + local.get $this + local.set $12 + global.get $~lib/memory/__stack_pointer + local.get $12 + i32.store offset=4 + local.get $12 + i32.const 0 + call $"~lib/map/Map#set:entriesCount" + local.get $initialEntries + local.set $12 + global.get $~lib/memory/__stack_pointer + local.get $12 + i32.store offset=4 + local.get $12 + call $"~lib/array/Array<~lib/map/KeyValue>#get:length" + local.set $entriesLength + local.get $entriesLength + i32.const 0 + i32.gt_s + if + local.get $entriesLength local.get $this - local.set $6 + local.set $12 global.get $~lib/memory/__stack_pointer - local.get $6 - i32.store - local.get $6 - call $"~lib/map/Map#get:entriesCount" + local.get $12 + i32.store offset=4 + local.get $12 + call $"~lib/map/Map#get:entriesCapacity" + i32.ge_s + if + local.get $this + local.set $12 + global.get $~lib/memory/__stack_pointer + local.get $12 + i32.store offset=4 + local.get $12 + local.get $entriesLength + call $"~lib/map/Map#set:bucketsMask" + end local.get $this - local.set $6 + local.set $12 global.get $~lib/memory/__stack_pointer - local.get $6 - i32.store - local.get $6 - call $"~lib/map/Map#get:entriesCapacity" - i32.const 3 - i32.mul - i32.const 4 - i32.div_s - i32.lt_s - else - i32.const 0 - end - if + local.get $12 + i32.store offset=4 + local.get $12 local.get $this - local.set $6 + local.set $12 global.get $~lib/memory/__stack_pointer - local.get $6 - i32.store - local.get $6 - local.get $halfBucketsMask - call $"~lib/map/Map#rehash" + local.get $12 + i32.store offset=8 + local.get $12 + call $"~lib/map/Map#get:bucketsMask" + i32.const 1 + i32.shl + i32.const 1 + i32.or + call $"~lib/map/Map#rehash" + i32.const 0 + local.set $i + loop $for-loop|0 + local.get $i + local.get $entriesLength + i32.lt_s + if + local.get $initialEntries + local.set $12 + global.get $~lib/memory/__stack_pointer + local.get $12 + i32.store offset=8 + local.get $12 + local.get $i + call $"~lib/array/Array<~lib/map/KeyValue>#__get" + local.set $12 + global.get $~lib/memory/__stack_pointer + local.get $12 + i32.store offset=4 + local.get $12 + call $"~lib/map/KeyValue#get:key" + local.set $key + local.get $initialEntries + local.set $12 + global.get $~lib/memory/__stack_pointer + local.get $12 + i32.store offset=8 + local.get $12 + local.get $i + call $"~lib/array/Array<~lib/map/KeyValue>#__get" + local.set $12 + global.get $~lib/memory/__stack_pointer + local.get $12 + i32.store offset=4 + local.get $12 + call $"~lib/map/KeyValue#get:value" + local.set $value + local.get $key + call $~lib/util/hash/HASH + local.set $hashCode + local.get $this + local.set $12 + global.get $~lib/memory/__stack_pointer + local.get $12 + i32.store offset=4 + local.get $12 + local.get $key + local.get $hashCode + call $"~lib/map/Map#find" + local.set $entry + local.get $entry + if + local.get $entry + local.get $value + call $"~lib/map/MapEntry#set:value" + i32.const 0 + drop + else + global.get $~lib/memory/__stack_pointer + local.get $this + local.set $12 + global.get $~lib/memory/__stack_pointer + local.get $12 + i32.store offset=4 + local.get $12 + call $"~lib/map/Map#get:entries" + local.tee $entries + i32.store offset=12 + local.get $entries + local.get $this + local.set $12 + global.get $~lib/memory/__stack_pointer + local.get $12 + i32.store offset=4 + local.get $12 + local.get $this + local.set $12 + global.get $~lib/memory/__stack_pointer + local.get $12 + i32.store offset=8 + local.get $12 + call $"~lib/map/Map#get:entriesOffset" + local.tee $9 + i32.const 1 + i32.add + call $"~lib/map/Map#set:entriesOffset" + local.get $9 + block $"~lib/map/ENTRY_SIZE|inlined.4" (result i32) + i32.const 8 + br $"~lib/map/ENTRY_SIZE|inlined.4" + end + i32.mul + i32.add + local.set $entry|10 + local.get $entry|10 + local.get $key + call $"~lib/map/MapEntry#set:key" + i32.const 0 + drop + local.get $entry|10 + local.get $value + call $"~lib/map/MapEntry#set:value" + i32.const 0 + drop + local.get $this + local.set $12 + global.get $~lib/memory/__stack_pointer + local.get $12 + i32.store offset=4 + local.get $12 + local.get $this + local.set $12 + global.get $~lib/memory/__stack_pointer + local.get $12 + i32.store offset=8 + local.get $12 + call $"~lib/map/Map#get:entriesCount" + i32.const 1 + i32.add + call $"~lib/map/Map#set:entriesCount" + local.get $this + local.set $12 + global.get $~lib/memory/__stack_pointer + local.get $12 + i32.store offset=4 + local.get $12 + call $"~lib/map/Map#get:buckets" + local.get $hashCode + local.get $this + local.set $12 + global.get $~lib/memory/__stack_pointer + local.get $12 + i32.store offset=4 + local.get $12 + call $"~lib/map/Map#get:bucketsMask" + i32.and + i32.const 4 + i32.mul + i32.add + local.set $bucketPtrBase + local.get $entry|10 + local.get $bucketPtrBase + i32.load + call $"~lib/map/MapEntry#set:taggedNext" + local.get $bucketPtrBase + local.get $entry|10 + i32.store + end + local.get $i + i32.const 1 + i32.add + local.set $i + br $for-loop|0 + end + end end - i32.const 1 - local.set $6 + local.get $this + local.set $12 global.get $~lib/memory/__stack_pointer - i32.const 8 + i32.const 16 i32.add global.set $~lib/memory/__stack_pointer - local.get $6 - return + local.get $12 ) - (func $"~lib/map/Map#clear" (param $this i32) - (local $1 i32) + (func $"~lib/map/Map#constructor@varargs" (param $this i32) (param $initialEntries i32) (result i32) + (local $2 i32) + (local $3 i32) global.get $~lib/memory/__stack_pointer - i32.const 8 + i32.const 12 i32.sub global.set $~lib/memory/__stack_pointer call $~stack_check global.get $~lib/memory/__stack_pointer i64.const 0 i64.store - local.get $this - local.set $1 global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store - local.get $1 i32.const 0 - i32.const 4 - i32.const 4 - i32.mul - call $~lib/arraybuffer/ArrayBuffer#constructor - local.set $1 + i32.store offset=8 + block $1of1 + block $0of1 + block $outOfRange + global.get $~argumentsLength + br_table $0of1 $1of1 $outOfRange + end + unreachable + end + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.const 2 + i32.const 21 + i32.const 1040 + call $~lib/rt/__newArray + local.tee $initialEntries + i32.store + end + local.get $this + local.set $3 global.get $~lib/memory/__stack_pointer - local.get $1 + local.get $3 i32.store offset=4 - local.get $1 - call $"~lib/map/Map#set:buckets" - local.get $this - local.set $1 + local.get $3 + local.get $initialEntries + local.set $3 + global.get $~lib/memory/__stack_pointer + local.get $3 + i32.store offset=8 + local.get $3 + call $"~lib/map/Map#constructor" + local.set $3 + global.get $~lib/memory/__stack_pointer + i32.const 12 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $3 + ) + (func $~lib/array/Array#get:length (param $this i32) (result i32) + (local $1 i32) global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store - local.get $1 i32.const 4 - i32.const 1 i32.sub - call $"~lib/map/Map#set:bucketsMask" + global.set $~lib/memory/__stack_pointer + call $~stack_check + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store local.get $this local.set $1 global.get $~lib/memory/__stack_pointer local.get $1 i32.store local.get $1 - i32.const 0 - i32.const 4 - block $"~lib/map/ENTRY_SIZE|inlined.8" (result i32) - i32.const 12 - br $"~lib/map/ENTRY_SIZE|inlined.8" - end - i32.mul - call $~lib/arraybuffer/ArrayBuffer#constructor + call $~lib/array/Array#get:length_ local.set $1 global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer local.get $1 - i32.store offset=4 - local.get $1 - call $"~lib/map/Map#set:entries" - local.get $this - local.set $1 + return + ) + (func $~lib/array/Array#__get (param $this i32) (param $index i32) (result i32) + (local $value i32) + (local $3 i32) global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store - local.get $1 i32.const 4 - call $"~lib/map/Map#set:entriesCapacity" + i32.sub + global.set $~lib/memory/__stack_pointer + call $~stack_check + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store + local.get $index local.get $this - local.set $1 + local.set $3 global.get $~lib/memory/__stack_pointer - local.get $1 + local.get $3 i32.store - local.get $1 - i32.const 0 - call $"~lib/map/Map#set:entriesOffset" + local.get $3 + call $~lib/array/Array#get:length_ + i32.ge_u + if + i32.const 336 + i32.const 544 + i32.const 114 + i32.const 42 + call $~lib/builtins/abort + unreachable + end local.get $this - local.set $1 + local.set $3 global.get $~lib/memory/__stack_pointer - local.get $1 + local.get $3 i32.store - local.get $1 + local.get $3 + call $~lib/array/Array#get:dataStart + local.get $index i32.const 0 - call $"~lib/map/Map#set:entriesCount" + i32.shl + i32.add + i32.load8_u + local.set $value + i32.const 0 + drop + local.get $value + local.set $3 global.get $~lib/memory/__stack_pointer - i32.const 8 + i32.const 4 i32.add global.set $~lib/memory/__stack_pointer + local.get $3 + return ) - (func $"std/map/testNumeric" - (local $map i32) - (local $k i32) - (local $k|2 i32) - (local $keys i32) - (local $vals i32) - (local $keyMap i32) - (local $valMap i32) - (local $index i32) - (local $key i32) - (local $value i32) - (local $k|10 i32) - (local $k|11 i32) - (local $12 i32) + (func $"~lib/map/Map#set" (param $this i32) (param $key i32) (param $value i32) (result i32) + (local $hashCode i32) + (local $entry i32) + (local $entries i32) + (local $6 i32) + (local $bucketPtrBase i32) + (local $8 i32) global.get $~lib/memory/__stack_pointer - i32.const 24 + i32.const 12 i32.sub global.set $~lib/memory/__stack_pointer call $~stack_check global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.const 24 - memory.fill + i64.const 0 + i64.store global.get $~lib/memory/__stack_pointer i32.const 0 - call $"~lib/map/Map#constructor" - local.tee $map + i32.store offset=8 + local.get $key + call $~lib/util/hash/HASH + local.set $hashCode + local.get $this + local.set $8 + global.get $~lib/memory/__stack_pointer + local.get $8 i32.store - i32.const 0 - local.set $k - loop $for-loop|0 - local.get $k - i32.const 100 - i32.lt_u + local.get $8 + local.get $key + local.get $hashCode + call $"~lib/map/Map#find" + local.set $entry + local.get $entry + if + local.get $entry + local.get $value + call $"~lib/map/MapEntry#set:value" + i32.const 0 + drop + else + local.get $this + local.set $8 + global.get $~lib/memory/__stack_pointer + local.get $8 + i32.store + local.get $8 + call $"~lib/map/Map#get:entriesOffset" + local.get $this + local.set $8 + global.get $~lib/memory/__stack_pointer + local.get $8 + i32.store + local.get $8 + call $"~lib/map/Map#get:entriesCapacity" + i32.eq if - local.get $map - local.set $12 + local.get $this + local.set $8 global.get $~lib/memory/__stack_pointer - local.get $12 - i32.store offset=4 - local.get $12 - local.get $k - call $"~lib/map/Map#has" - i32.eqz - i32.eqz - if - i32.const 0 - i32.const 544 - i32.const 6 - i32.const 5 - call $~lib/builtins/abort - unreachable - end - local.get $map - local.set $12 + local.get $8 + i32.store + local.get $8 + local.get $this + local.set $8 global.get $~lib/memory/__stack_pointer - local.get $12 + local.get $8 i32.store offset=4 - local.get $12 - local.get $k + local.get $8 + call $"~lib/map/Map#get:entriesCount" + local.get $this + local.set $8 + global.get $~lib/memory/__stack_pointer + local.get $8 + i32.store offset=4 + local.get $8 + call $"~lib/map/Map#get:entriesCapacity" + i32.const 3 + i32.mul + i32.const 4 + i32.div_s + i32.lt_s + if (result i32) + local.get $this + local.set $8 + global.get $~lib/memory/__stack_pointer + local.get $8 + i32.store offset=4 + local.get $8 + call $"~lib/map/Map#get:bucketsMask" + else + local.get $this + local.set $8 + global.get $~lib/memory/__stack_pointer + local.get $8 + i32.store offset=4 + local.get $8 + call $"~lib/map/Map#get:bucketsMask" + i32.const 1 + i32.shl + i32.const 1 + i32.or + end + call $"~lib/map/Map#rehash" + end + global.get $~lib/memory/__stack_pointer + local.get $this + local.set $8 + global.get $~lib/memory/__stack_pointer + local.get $8 + i32.store + local.get $8 + call $"~lib/map/Map#get:entries" + local.tee $entries + i32.store offset=8 + local.get $entries + local.get $this + local.set $8 + global.get $~lib/memory/__stack_pointer + local.get $8 + i32.store + local.get $8 + local.get $this + local.set $8 + global.get $~lib/memory/__stack_pointer + local.get $8 + i32.store offset=4 + local.get $8 + call $"~lib/map/Map#get:entriesOffset" + local.tee $6 + i32.const 1 + i32.add + call $"~lib/map/Map#set:entriesOffset" + local.get $6 + block $"~lib/map/ENTRY_SIZE|inlined.6" (result i32) + i32.const 8 + br $"~lib/map/ENTRY_SIZE|inlined.6" + end + i32.mul + i32.add + local.set $entry + local.get $entry + local.get $key + call $"~lib/map/MapEntry#set:key" + i32.const 0 + drop + local.get $entry + local.get $value + call $"~lib/map/MapEntry#set:value" + i32.const 0 + drop + local.get $this + local.set $8 + global.get $~lib/memory/__stack_pointer + local.get $8 + i32.store + local.get $8 + local.get $this + local.set $8 + global.get $~lib/memory/__stack_pointer + local.get $8 + i32.store offset=4 + local.get $8 + call $"~lib/map/Map#get:entriesCount" + i32.const 1 + i32.add + call $"~lib/map/Map#set:entriesCount" + local.get $this + local.set $8 + global.get $~lib/memory/__stack_pointer + local.get $8 + i32.store + local.get $8 + call $"~lib/map/Map#get:buckets" + local.get $hashCode + local.get $this + local.set $8 + global.get $~lib/memory/__stack_pointer + local.get $8 + i32.store + local.get $8 + call $"~lib/map/Map#get:bucketsMask" + i32.and + i32.const 4 + i32.mul + i32.add + local.set $bucketPtrBase + local.get $entry + local.get $bucketPtrBase + i32.load + call $"~lib/map/MapEntry#set:taggedNext" + local.get $bucketPtrBase + local.get $entry + i32.store + end + local.get $this + local.set $8 + global.get $~lib/memory/__stack_pointer + i32.const 12 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $8 + return + ) + (func $"~lib/map/Map#get:size" (param $this i32) (result i32) + (local $1 i32) + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.sub + global.set $~lib/memory/__stack_pointer + call $~stack_check + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store + local.get $this + local.set $1 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store + local.get $1 + call $"~lib/map/Map#get:entriesCount" + local.set $1 + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $1 + return + ) + (func $"~lib/map/Map#delete" (param $this i32) (param $key i32) (result i32) + (local $entry i32) + (local $halfBucketsMask i32) + (local $4 i32) + (local $5 i32) + (local $6 i32) + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.sub + global.set $~lib/memory/__stack_pointer + call $~stack_check + global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store + local.get $this + local.set $6 + global.get $~lib/memory/__stack_pointer + local.get $6 + i32.store + local.get $6 + local.get $key + local.get $key + call $~lib/util/hash/HASH + call $"~lib/map/Map#find" + local.set $entry + local.get $entry + i32.eqz + if + i32.const 0 + local.set $6 + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $6 + return + end + local.get $entry + local.get $entry + call $"~lib/map/MapEntry#get:taggedNext" + i32.const 1 + i32.or + call $"~lib/map/MapEntry#set:taggedNext" + local.get $this + local.set $6 + global.get $~lib/memory/__stack_pointer + local.get $6 + i32.store + local.get $6 + local.get $this + local.set $6 + global.get $~lib/memory/__stack_pointer + local.get $6 + i32.store offset=4 + local.get $6 + call $"~lib/map/Map#get:entriesCount" + i32.const 1 + i32.sub + call $"~lib/map/Map#set:entriesCount" + local.get $this + local.set $6 + global.get $~lib/memory/__stack_pointer + local.get $6 + i32.store + local.get $6 + call $"~lib/map/Map#get:bucketsMask" + i32.const 1 + i32.shr_u + local.set $halfBucketsMask + local.get $halfBucketsMask + i32.const 1 + i32.add + i32.const 4 + local.tee $4 + local.get $this + local.set $6 + global.get $~lib/memory/__stack_pointer + local.get $6 + i32.store + local.get $6 + call $"~lib/map/Map#get:entriesCount" + local.tee $5 + local.get $4 + local.get $5 + i32.gt_u + select + i32.ge_u + if (result i32) + local.get $this + local.set $6 + global.get $~lib/memory/__stack_pointer + local.get $6 + i32.store + local.get $6 + call $"~lib/map/Map#get:entriesCount" + local.get $this + local.set $6 + global.get $~lib/memory/__stack_pointer + local.get $6 + i32.store + local.get $6 + call $"~lib/map/Map#get:entriesCapacity" + i32.const 3 + i32.mul + i32.const 4 + i32.div_s + i32.lt_s + else + i32.const 0 + end + if + local.get $this + local.set $6 + global.get $~lib/memory/__stack_pointer + local.get $6 + i32.store + local.get $6 + local.get $halfBucketsMask + call $"~lib/map/Map#rehash" + end + i32.const 1 + local.set $6 + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $6 + return + ) + (func $"~lib/map/Map#clear" (param $this i32) + (local $1 i32) + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.sub + global.set $~lib/memory/__stack_pointer + call $~stack_check + global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store + local.get $this + local.set $1 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store + local.get $1 + i32.const 0 + i32.const 4 + i32.const 4 + i32.mul + call $~lib/arraybuffer/ArrayBuffer#constructor + local.set $1 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + local.get $1 + call $"~lib/map/Map#set:buckets" + local.get $this + local.set $1 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store + local.get $1 + i32.const 4 + i32.const 1 + i32.sub + call $"~lib/map/Map#set:bucketsMask" + local.get $this + local.set $1 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store + local.get $1 + i32.const 0 + i32.const 4 + block $"~lib/map/ENTRY_SIZE|inlined.9" (result i32) + i32.const 12 + br $"~lib/map/ENTRY_SIZE|inlined.9" + end + i32.mul + call $~lib/arraybuffer/ArrayBuffer#constructor + local.set $1 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + local.get $1 + call $"~lib/map/Map#set:entries" + local.get $this + local.set $1 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store + local.get $1 + i32.const 4 + call $"~lib/map/Map#set:entriesCapacity" + local.get $this + local.set $1 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store + local.get $1 + i32.const 0 + call $"~lib/map/Map#set:entriesOffset" + local.get $this + local.set $1 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store + local.get $1 + i32.const 0 + call $"~lib/map/Map#set:entriesCount" + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.add + global.set $~lib/memory/__stack_pointer + ) + (func $"~lib/map/KeyValue#constructor" (param $this i32) (result i32) + (local $1 i32) + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.sub + global.set $~lib/memory/__stack_pointer + call $~stack_check + global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store + local.get $this + i32.eqz + if + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.const 16 + call $~lib/rt/itcms/__new + local.tee $this + i32.store + end + global.get $~lib/memory/__stack_pointer + local.get $this + local.set $1 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + local.get $1 + call $~lib/object/Object#constructor + local.tee $this + i32.store + local.get $this + local.set $1 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + local.get $1 + i32.const 0 + call $"~lib/map/KeyValue#set:key" + local.get $this + local.set $1 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + local.get $1 + i32.const 0 + call $"~lib/map/KeyValue#set:value" + local.get $this + local.set $1 + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $1 + ) + (func $"~lib/array/Array<~lib/map/KeyValue>#push" (param $this i32) (param $value i32) (result i32) + (local $oldLen i32) + (local $len i32) + (local $4 i32) + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.sub + global.set $~lib/memory/__stack_pointer + call $~stack_check + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store + local.get $this + local.set $4 + global.get $~lib/memory/__stack_pointer + local.get $4 + i32.store + local.get $4 + call $"~lib/array/Array<~lib/map/KeyValue>#get:length_" + local.set $oldLen + local.get $oldLen + i32.const 1 + i32.add + local.set $len + local.get $this + local.get $len + i32.const 2 + i32.const 1 + call $~lib/array/ensureCapacity + i32.const 1 + drop + local.get $this + local.set $4 + global.get $~lib/memory/__stack_pointer + local.get $4 + i32.store + local.get $4 + call $"~lib/array/Array<~lib/map/KeyValue>#get:dataStart" + local.get $oldLen + i32.const 2 + i32.shl + i32.add + local.get $value + i32.store + local.get $this + local.get $value + i32.const 1 + call $~lib/rt/itcms/__link + local.get $this + local.set $4 + global.get $~lib/memory/__stack_pointer + local.get $4 + i32.store + local.get $4 + local.get $len + call $"~lib/array/Array<~lib/map/KeyValue>#set:length_" + local.get $len + local.set $4 + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $4 + return + ) + (func $"std/map/testNumeric" + (local $map i32) + (local $k i32) + (local $k|2 i32) + (local $keys i32) + (local $vals i32) + (local $keyMap i32) + (local $valMap i32) + (local $index i32) + (local $key i32) + (local $value i32) + (local $k|10 i32) + (local $k|11 i32) + (local $12 i32) + (local $initialEntries i32) + (local $k|14 i32) + (local $15 i32) + (local $k|16 i32) + (local $17 i32) + global.get $~lib/memory/__stack_pointer + i32.const 40 + i32.sub + global.set $~lib/memory/__stack_pointer + call $~stack_check + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.const 40 + memory.fill + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.const 0 + global.set $~argumentsLength + i32.const 0 + call $"~lib/map/Map#constructor@varargs" + local.tee $map + i32.store + i32.const 0 + local.set $k + loop $for-loop|0 + local.get $k + i32.const 100 + i32.lt_u + if + local.get $map + local.set $17 + global.get $~lib/memory/__stack_pointer + local.get $17 + i32.store offset=4 + local.get $17 + local.get $k + call $"~lib/map/Map#has" + i32.eqz + i32.eqz + if + i32.const 0 + i32.const 752 + i32.const 7 + i32.const 5 + call $~lib/builtins/abort + unreachable + end + local.get $map + local.set $17 + global.get $~lib/memory/__stack_pointer + local.get $17 + i32.store offset=4 + local.get $17 + local.get $k i32.const 10 local.get $k i32.add call $"~lib/map/Map#set" drop local.get $map - local.set $12 + local.set $17 global.get $~lib/memory/__stack_pointer - local.get $12 + local.get $17 i32.store offset=4 - local.get $12 + local.get $17 local.get $k call $"~lib/map/Map#has" i32.eqz if i32.const 0 - i32.const 544 - i32.const 8 + i32.const 752 + i32.const 9 i32.const 5 call $~lib/builtins/abort unreachable end local.get $map - local.set $12 + local.set $17 global.get $~lib/memory/__stack_pointer - local.get $12 + local.get $17 i32.store offset=4 - local.get $12 + local.get $17 local.get $k call $"~lib/map/Map#get" i32.const 10 @@ -11554,8 +14693,8 @@ i32.eqz if i32.const 0 - i32.const 544 - i32.const 9 + i32.const 752 + i32.const 10 i32.const 5 call $~lib/builtins/abort unreachable @@ -11568,19 +14707,19 @@ end end local.get $map - local.set $12 + local.set $17 global.get $~lib/memory/__stack_pointer - local.get $12 + local.get $17 i32.store offset=4 - local.get $12 + local.get $17 call $"~lib/map/Map#get:size" i32.const 100 i32.eq i32.eqz if i32.const 0 - i32.const 544 - i32.const 11 + i32.const 752 + i32.const 12 i32.const 3 call $~lib/builtins/abort unreachable @@ -11593,28 +14732,28 @@ i32.lt_u if local.get $map - local.set $12 + local.set $17 global.get $~lib/memory/__stack_pointer - local.get $12 + local.get $17 i32.store offset=4 - local.get $12 + local.get $17 local.get $k|2 call $"~lib/map/Map#has" i32.eqz if i32.const 0 - i32.const 544 - i32.const 15 + i32.const 752 + i32.const 16 i32.const 5 call $~lib/builtins/abort unreachable end local.get $map - local.set $12 + local.set $17 global.get $~lib/memory/__stack_pointer - local.get $12 + local.get $17 i32.store offset=4 - local.get $12 + local.get $17 local.get $k|2 call $"~lib/map/Map#get" i32.const 10 @@ -11624,18 +14763,18 @@ i32.eqz if i32.const 0 - i32.const 544 - i32.const 16 + i32.const 752 + i32.const 17 i32.const 5 call $~lib/builtins/abort unreachable end local.get $map - local.set $12 + local.set $17 global.get $~lib/memory/__stack_pointer - local.get $12 + local.get $17 i32.store offset=4 - local.get $12 + local.get $17 local.get $k|2 i32.const 20 local.get $k|2 @@ -11643,28 +14782,28 @@ call $"~lib/map/Map#set" drop local.get $map - local.set $12 + local.set $17 global.get $~lib/memory/__stack_pointer - local.get $12 + local.get $17 i32.store offset=4 - local.get $12 + local.get $17 local.get $k|2 call $"~lib/map/Map#has" i32.eqz if i32.const 0 - i32.const 544 - i32.const 18 + i32.const 752 + i32.const 19 i32.const 5 call $~lib/builtins/abort unreachable end local.get $map - local.set $12 + local.set $17 global.get $~lib/memory/__stack_pointer - local.get $12 + local.get $17 i32.store offset=4 - local.get $12 + local.get $17 local.get $k|2 call $"~lib/map/Map#get" i32.const 20 @@ -11674,8 +14813,8 @@ i32.eqz if i32.const 0 - i32.const 544 - i32.const 19 + i32.const 752 + i32.const 20 i32.const 5 call $~lib/builtins/abort unreachable @@ -11688,51 +14827,57 @@ end end local.get $map - local.set $12 + local.set $17 global.get $~lib/memory/__stack_pointer - local.get $12 + local.get $17 i32.store offset=4 - local.get $12 + local.get $17 call $"~lib/map/Map#get:size" i32.const 100 i32.eq i32.eqz if i32.const 0 - i32.const 544 - i32.const 21 + i32.const 752 + i32.const 22 i32.const 3 call $~lib/builtins/abort unreachable end global.get $~lib/memory/__stack_pointer local.get $map - local.set $12 + local.set $17 global.get $~lib/memory/__stack_pointer - local.get $12 + local.get $17 i32.store offset=4 - local.get $12 + local.get $17 call $"~lib/map/Map#keys" local.tee $keys i32.store offset=8 global.get $~lib/memory/__stack_pointer local.get $map - local.set $12 + local.set $17 global.get $~lib/memory/__stack_pointer - local.get $12 + local.get $17 i32.store offset=4 - local.get $12 + local.get $17 call $"~lib/map/Map#values" local.tee $vals i32.store offset=12 global.get $~lib/memory/__stack_pointer i32.const 0 - call $"~lib/map/Map#constructor" + i32.const 0 + global.set $~argumentsLength + i32.const 0 + call $"~lib/map/Map#constructor@varargs" local.tee $keyMap i32.store offset=16 global.get $~lib/memory/__stack_pointer i32.const 0 - call $"~lib/map/Map#constructor" + i32.const 0 + global.set $~argumentsLength + i32.const 0 + call $"~lib/map/Map#constructor@varargs" local.tee $valMap i32.store offset=20 i32.const 0 @@ -11740,55 +14885,55 @@ loop $for-loop|2 local.get $index local.get $keys - local.set $12 + local.set $17 global.get $~lib/memory/__stack_pointer - local.get $12 + local.get $17 i32.store offset=4 - local.get $12 + local.get $17 call $~lib/array/Array#get:length i32.lt_s if local.get $keys - local.set $12 + local.set $17 global.get $~lib/memory/__stack_pointer - local.get $12 + local.get $17 i32.store offset=4 - local.get $12 + local.get $17 local.get $index call $~lib/array/Array#__get local.set $key local.get $vals - local.set $12 + local.set $17 global.get $~lib/memory/__stack_pointer - local.get $12 + local.get $17 i32.store offset=4 - local.get $12 + local.get $17 local.get $index call $~lib/array/Array#__get local.set $value local.get $map - local.set $12 + local.set $17 global.get $~lib/memory/__stack_pointer - local.get $12 + local.get $17 i32.store offset=4 - local.get $12 + local.get $17 local.get $key call $"~lib/map/Map#has" i32.eqz if i32.const 0 - i32.const 544 - i32.const 31 + i32.const 752 + i32.const 32 i32.const 5 call $~lib/builtins/abort unreachable end local.get $map - local.set $12 + local.set $17 global.get $~lib/memory/__stack_pointer - local.get $12 + local.get $17 i32.store offset=4 - local.get $12 + local.get $17 local.get $value i32.const 20 i32.sub @@ -11796,28 +14941,28 @@ i32.eqz if i32.const 0 - i32.const 544 - i32.const 32 + i32.const 752 + i32.const 33 i32.const 5 call $~lib/builtins/abort unreachable end local.get $keyMap - local.set $12 + local.set $17 global.get $~lib/memory/__stack_pointer - local.get $12 + local.get $17 i32.store offset=4 - local.get $12 + local.get $17 local.get $key local.get $key call $"~lib/map/Map#set" drop local.get $valMap - local.set $12 + local.set $17 global.get $~lib/memory/__stack_pointer - local.get $12 + local.get $17 i32.store offset=4 - local.get $12 + local.get $17 local.get $value i32.const 20 i32.sub @@ -11834,37 +14979,37 @@ end end local.get $keyMap - local.set $12 + local.set $17 global.get $~lib/memory/__stack_pointer - local.get $12 + local.get $17 i32.store offset=4 - local.get $12 + local.get $17 call $"~lib/map/Map#get:size" i32.const 100 i32.eq i32.eqz if i32.const 0 - i32.const 544 - i32.const 36 + i32.const 752 + i32.const 37 i32.const 3 call $~lib/builtins/abort unreachable end local.get $valMap - local.set $12 + local.set $17 global.get $~lib/memory/__stack_pointer - local.get $12 + local.get $17 i32.store offset=4 - local.get $12 + local.get $17 call $"~lib/map/Map#get:size" i32.const 100 i32.eq i32.eqz if i32.const 0 - i32.const 544 - i32.const 37 + i32.const 752 + i32.const 38 i32.const 3 call $~lib/builtins/abort unreachable @@ -11877,28 +15022,28 @@ i32.lt_u if local.get $map - local.set $12 + local.set $17 global.get $~lib/memory/__stack_pointer - local.get $12 + local.get $17 i32.store offset=4 - local.get $12 + local.get $17 local.get $k|10 call $"~lib/map/Map#has" i32.eqz if i32.const 0 - i32.const 544 - i32.const 41 + i32.const 752 + i32.const 42 i32.const 5 call $~lib/builtins/abort unreachable end local.get $map - local.set $12 + local.set $17 global.get $~lib/memory/__stack_pointer - local.get $12 + local.get $17 i32.store offset=4 - local.get $12 + local.get $17 local.get $k|10 call $"~lib/map/Map#get" i32.const 20 @@ -11908,35 +15053,35 @@ i32.eqz if i32.const 0 - i32.const 544 - i32.const 42 + i32.const 752 + i32.const 43 i32.const 5 call $~lib/builtins/abort unreachable end local.get $map - local.set $12 + local.set $17 global.get $~lib/memory/__stack_pointer - local.get $12 + local.get $17 i32.store offset=4 - local.get $12 + local.get $17 local.get $k|10 call $"~lib/map/Map#delete" drop local.get $map - local.set $12 + local.set $17 global.get $~lib/memory/__stack_pointer - local.get $12 + local.get $17 i32.store offset=4 - local.get $12 + local.get $17 local.get $k|10 call $"~lib/map/Map#has" i32.eqz i32.eqz if i32.const 0 - i32.const 544 - i32.const 44 + i32.const 752 + i32.const 45 i32.const 5 call $~lib/builtins/abort unreachable @@ -11949,19 +15094,19 @@ end end local.get $map - local.set $12 + local.set $17 global.get $~lib/memory/__stack_pointer - local.get $12 + local.get $17 i32.store offset=4 - local.get $12 + local.get $17 call $"~lib/map/Map#get:size" i32.const 50 i32.eq i32.eqz if i32.const 0 - i32.const 544 - i32.const 46 + i32.const 752 + i32.const 47 i32.const 3 call $~lib/builtins/abort unreachable @@ -11974,29 +15119,29 @@ i32.lt_u if local.get $map - local.set $12 + local.set $17 global.get $~lib/memory/__stack_pointer - local.get $12 + local.get $17 i32.store offset=4 - local.get $12 + local.get $17 local.get $k|11 call $"~lib/map/Map#has" i32.eqz i32.eqz if i32.const 0 - i32.const 544 - i32.const 50 + i32.const 752 + i32.const 51 i32.const 5 call $~lib/builtins/abort unreachable end local.get $map - local.set $12 + local.set $17 global.get $~lib/memory/__stack_pointer - local.get $12 + local.get $17 i32.store offset=4 - local.get $12 + local.get $17 local.get $k|11 i32.const 10 local.get $k|11 @@ -12004,45 +15149,45 @@ call $"~lib/map/Map#set" drop local.get $map - local.set $12 + local.set $17 global.get $~lib/memory/__stack_pointer - local.get $12 + local.get $17 i32.store offset=4 - local.get $12 + local.get $17 local.get $k|11 call $"~lib/map/Map#has" i32.eqz if i32.const 0 - i32.const 544 - i32.const 52 + i32.const 752 + i32.const 53 i32.const 5 call $~lib/builtins/abort unreachable end local.get $map - local.set $12 + local.set $17 global.get $~lib/memory/__stack_pointer - local.get $12 + local.get $17 i32.store offset=4 - local.get $12 + local.get $17 local.get $k|11 call $"~lib/map/Map#delete" drop local.get $map - local.set $12 + local.set $17 global.get $~lib/memory/__stack_pointer - local.get $12 + local.get $17 i32.store offset=4 - local.get $12 + local.get $17 local.get $k|11 call $"~lib/map/Map#has" i32.eqz i32.eqz if i32.const 0 - i32.const 544 - i32.const 54 + i32.const 752 + i32.const 55 i32.const 5 call $~lib/builtins/abort unreachable @@ -12055,154 +15200,530 @@ end end local.get $map - local.set $12 + local.set $17 global.get $~lib/memory/__stack_pointer - local.get $12 + local.get $17 i32.store offset=4 - local.get $12 + local.get $17 call $"~lib/map/Map#get:size" i32.const 50 i32.eq i32.eqz if i32.const 0 - i32.const 544 - i32.const 56 + i32.const 752 + i32.const 57 i32.const 3 call $~lib/builtins/abort unreachable end local.get $map - local.set $12 + local.set $17 global.get $~lib/memory/__stack_pointer - local.get $12 + local.get $17 i32.store offset=4 - local.get $12 + local.get $17 call $"~lib/map/Map#clear" local.get $map - local.set $12 + local.set $17 global.get $~lib/memory/__stack_pointer - local.get $12 + local.get $17 i32.store offset=4 - local.get $12 + local.get $17 call $"~lib/map/Map#get:size" i32.const 0 i32.eq i32.eqz if i32.const 0 - i32.const 544 - i32.const 60 + i32.const 752 + i32.const 61 i32.const 3 call $~lib/builtins/abort unreachable end global.get $~lib/memory/__stack_pointer - i32.const 24 + i32.const 0 + i32.const 2 + i32.const 17 + i32.const 1072 + call $~lib/rt/__newArray + local.tee $initialEntries + i32.store offset=24 + i32.const 0 + local.set $k|14 + loop $for-loop|5 + local.get $k|14 + i32.const 100 + i32.lt_u + if + local.get $initialEntries + local.set $17 + global.get $~lib/memory/__stack_pointer + local.get $17 + i32.store offset=4 + local.get $17 + global.get $~lib/memory/__stack_pointer + i32.const 0 + call $"~lib/map/KeyValue#constructor" + local.tee $15 + i32.store offset=32 + local.get $15 + local.set $17 + global.get $~lib/memory/__stack_pointer + local.get $17 + i32.store offset=36 + local.get $17 + local.get $k|14 + call $"~lib/map/KeyValue#set:key" + local.get $15 + local.set $17 + global.get $~lib/memory/__stack_pointer + local.get $17 + i32.store offset=36 + local.get $17 + i32.const 10 + local.get $k|14 + i32.add + call $"~lib/map/KeyValue#set:value" + local.get $15 + local.set $17 + global.get $~lib/memory/__stack_pointer + local.get $17 + i32.store offset=28 + local.get $17 + call $"~lib/array/Array<~lib/map/KeyValue>#push" + drop + local.get $k|14 + i32.const 1 + i32.add + local.set $k|14 + br $for-loop|5 + end + end + global.get $~lib/memory/__stack_pointer + i32.const 0 + local.get $initialEntries + local.set $17 + global.get $~lib/memory/__stack_pointer + local.get $17 + i32.store offset=4 + local.get $17 + call $"~lib/map/Map#constructor" + local.tee $map + i32.store + local.get $map + local.set $17 + global.get $~lib/memory/__stack_pointer + local.get $17 + i32.store offset=4 + local.get $17 + call $"~lib/map/Map#get:size" + i32.const 100 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 752 + i32.const 74 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + i32.const 0 + local.set $k|16 + loop $for-loop|6 + local.get $k|16 + i32.const 100 + i32.lt_u + if + local.get $map + local.set $17 + global.get $~lib/memory/__stack_pointer + local.get $17 + i32.store offset=4 + local.get $17 + local.get $k|16 + call $"~lib/map/Map#has" + i32.eqz + if + i32.const 0 + i32.const 752 + i32.const 76 + i32.const 5 + call $~lib/builtins/abort + unreachable + end + local.get $map + local.set $17 + global.get $~lib/memory/__stack_pointer + local.get $17 + i32.store offset=4 + local.get $17 + local.get $k|16 + call $"~lib/map/Map#get" + i32.const 10 + local.get $k|16 + i32.add + i32.eq + i32.eqz + if + i32.const 0 + i32.const 752 + i32.const 77 + i32.const 5 + call $~lib/builtins/abort + unreachable + end + local.get $map + local.set $17 + global.get $~lib/memory/__stack_pointer + local.get $17 + i32.store offset=4 + local.get $17 + local.get $k|16 + call $"~lib/map/Map#delete" + drop + local.get $map + local.set $17 + global.get $~lib/memory/__stack_pointer + local.get $17 + i32.store offset=4 + local.get $17 + local.get $k|16 + call $"~lib/map/Map#has" + i32.eqz + i32.eqz + if + i32.const 0 + i32.const 752 + i32.const 79 + i32.const 5 + call $~lib/builtins/abort + unreachable + end + local.get $k|16 + i32.const 1 + i32.add + local.set $k|16 + br $for-loop|6 + end + end + local.get $map + local.set $17 + global.get $~lib/memory/__stack_pointer + local.get $17 + i32.store offset=4 + local.get $17 + call $"~lib/map/Map#get:size" + i32.const 0 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 752 + i32.const 81 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + i32.const 40 i32.add global.set $~lib/memory/__stack_pointer ) - (func $"~lib/map/Map#constructor" (param $this i32) (result i32) + (func $"~lib/array/Array<~lib/map/KeyValue>#get:length" (param $this i32) (result i32) (local $1 i32) global.get $~lib/memory/__stack_pointer - i32.const 12 + i32.const 4 i32.sub global.set $~lib/memory/__stack_pointer call $~stack_check global.get $~lib/memory/__stack_pointer - i64.const 0 - i64.store - global.get $~lib/memory/__stack_pointer i32.const 0 - i32.store offset=8 - local.get $this - i32.eqz - if - global.get $~lib/memory/__stack_pointer - i32.const 24 - i32.const 12 - call $~lib/rt/itcms/__new - local.tee $this - i32.store - end + i32.store local.get $this local.set $1 global.get $~lib/memory/__stack_pointer local.get $1 - i32.store offset=4 + i32.store local.get $1 - i32.const 0 - i32.const 4 - i32.const 4 - i32.mul - call $~lib/arraybuffer/ArrayBuffer#constructor + call $"~lib/array/Array<~lib/map/KeyValue>#get:length_" local.set $1 global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer local.get $1 - i32.store offset=8 - local.get $1 - call $"~lib/map/Map#set:buckets" - local.get $this - local.set $1 + return + ) + (func $"~lib/map/Map#rehash" (param $this i32) (param $newBucketsMask i32) + (local $newBucketsCapacity i32) + (local $newBuckets i32) + (local $newEntriesCapacity i32) + (local $newEntries i32) + (local $oldPtr i32) + (local $oldEnd i32) + (local $newPtr i32) + (local $oldEntry i32) + (local $newEntry i32) + (local $oldEntryKey i32) + (local $newBucketIndex i32) + (local $newBucketPtrBase i32) + (local $14 i32) global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - local.get $1 - i32.const 4 - i32.const 1 + i32.const 16 i32.sub - call $"~lib/map/Map#set:bucketsMask" - local.get $this - local.set $1 + global.set $~lib/memory/__stack_pointer + call $~stack_check + global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store + global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store offset=8 + local.get $newBucketsMask + i32.const 1 + i32.add + local.set $newBucketsCapacity global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - local.get $1 i32.const 0 + local.get $newBucketsCapacity i32.const 4 + i32.mul + call $~lib/arraybuffer/ArrayBuffer#constructor + local.tee $newBuckets + i32.store + local.get $newBucketsCapacity + i32.const 8 + i32.mul + i32.const 3 + i32.div_s + local.set $newEntriesCapacity + global.get $~lib/memory/__stack_pointer + i32.const 0 + local.get $newEntriesCapacity block $"~lib/map/ENTRY_SIZE|inlined.0" (result i32) i32.const 12 br $"~lib/map/ENTRY_SIZE|inlined.0" end i32.mul call $~lib/arraybuffer/ArrayBuffer#constructor - local.set $1 + local.tee $newEntries + i32.store offset=4 + local.get $this + local.set $14 global.get $~lib/memory/__stack_pointer - local.get $1 + local.get $14 i32.store offset=8 - local.get $1 + local.get $14 + call $"~lib/map/Map#get:entries" + local.set $oldPtr + local.get $oldPtr + local.get $this + local.set $14 + global.get $~lib/memory/__stack_pointer + local.get $14 + i32.store offset=8 + local.get $14 + call $"~lib/map/Map#get:entriesOffset" + block $"~lib/map/ENTRY_SIZE|inlined.1" (result i32) + i32.const 12 + br $"~lib/map/ENTRY_SIZE|inlined.1" + end + i32.mul + i32.add + local.set $oldEnd + local.get $newEntries + local.set $newPtr + loop $while-continue|0 + local.get $oldPtr + local.get $oldEnd + i32.ne + if + local.get $oldPtr + local.set $oldEntry + local.get $oldEntry + call $"~lib/map/MapEntry#get:taggedNext" + i32.const 1 + i32.and + i32.eqz + if + local.get $newPtr + local.set $newEntry + local.get $oldEntry + call $"~lib/map/MapEntry#get:key" + local.set $oldEntryKey + local.get $newEntry + local.get $oldEntryKey + call $"~lib/map/MapEntry#set:key" + local.get $newEntry + local.get $oldEntry + call $"~lib/map/MapEntry#get:value" + call $"~lib/map/MapEntry#set:value" + local.get $oldEntryKey + call $~lib/util/hash/HASH + local.get $newBucketsMask + i32.and + local.set $newBucketIndex + local.get $newBuckets + local.get $newBucketIndex + i32.const 4 + i32.mul + i32.add + local.set $newBucketPtrBase + local.get $newEntry + local.get $newBucketPtrBase + i32.load + call $"~lib/map/MapEntry#set:taggedNext" + local.get $newBucketPtrBase + local.get $newPtr + i32.store + local.get $newPtr + block $"~lib/map/ENTRY_SIZE|inlined.2" (result i32) + i32.const 12 + br $"~lib/map/ENTRY_SIZE|inlined.2" + end + i32.add + local.set $newPtr + end + local.get $oldPtr + block $"~lib/map/ENTRY_SIZE|inlined.3" (result i32) + i32.const 12 + br $"~lib/map/ENTRY_SIZE|inlined.3" + end + i32.add + local.set $oldPtr + br $while-continue|0 + end + end + local.get $this + local.set $14 + global.get $~lib/memory/__stack_pointer + local.get $14 + i32.store offset=8 + local.get $14 + local.get $newBuckets + local.set $14 + global.get $~lib/memory/__stack_pointer + local.get $14 + i32.store offset=12 + local.get $14 + call $"~lib/map/Map#set:buckets" + local.get $this + local.set $14 + global.get $~lib/memory/__stack_pointer + local.get $14 + i32.store offset=8 + local.get $14 + local.get $newBucketsMask + call $"~lib/map/Map#set:bucketsMask" + local.get $this + local.set $14 + global.get $~lib/memory/__stack_pointer + local.get $14 + i32.store offset=8 + local.get $14 + local.get $newEntries + local.set $14 + global.get $~lib/memory/__stack_pointer + local.get $14 + i32.store offset=12 + local.get $14 call $"~lib/map/Map#set:entries" local.get $this - local.set $1 + local.set $14 global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - local.get $1 - i32.const 4 + local.get $14 + i32.store offset=8 + local.get $14 + local.get $newEntriesCapacity call $"~lib/map/Map#set:entriesCapacity" local.get $this - local.set $1 + local.set $14 global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - local.get $1 - i32.const 0 + local.get $14 + i32.store offset=8 + local.get $14 + local.get $this + local.set $14 + global.get $~lib/memory/__stack_pointer + local.get $14 + i32.store offset=12 + local.get $14 + call $"~lib/map/Map#get:entriesCount" call $"~lib/map/Map#set:entriesOffset" + global.get $~lib/memory/__stack_pointer + i32.const 16 + i32.add + global.set $~lib/memory/__stack_pointer + ) + (func $"~lib/array/Array<~lib/map/KeyValue>#__get" (param $this i32) (param $index i32) (result i32) + (local $value i32) + (local $3 i32) + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.sub + global.set $~lib/memory/__stack_pointer + call $~stack_check + global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store + local.get $index local.get $this - local.set $1 + local.set $3 global.get $~lib/memory/__stack_pointer - local.get $1 + local.get $3 + i32.store + local.get $3 + call $"~lib/array/Array<~lib/map/KeyValue>#get:length_" + i32.ge_u + if + i32.const 336 + i32.const 544 + i32.const 114 + i32.const 42 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + local.get $this + local.set $3 + global.get $~lib/memory/__stack_pointer + local.get $3 + i32.store + local.get $3 + call $"~lib/array/Array<~lib/map/KeyValue>#get:dataStart" + local.get $index + i32.const 2 + i32.shl + i32.add + i32.load + local.tee $value i32.store offset=4 - local.get $1 + i32.const 1 + drop i32.const 0 - call $"~lib/map/Map#set:entriesCount" - local.get $this - local.set $1 + i32.eqz + drop + local.get $value + i32.eqz + if + i32.const 592 + i32.const 544 + i32.const 118 + i32.const 40 + call $~lib/builtins/abort + unreachable + end + local.get $value + local.set $3 global.get $~lib/memory/__stack_pointer - i32.const 12 + i32.const 8 i32.add global.set $~lib/memory/__stack_pointer - local.get $1 + local.get $3 + return ) (func $"~lib/map/Map#find" (param $this i32) (param $key i32) (param $hashCode i32) (result i32) (local $entry i32) @@ -12285,50 +15806,18 @@ local.get $5 return ) - (func $"~lib/map/Map#has" (param $this i32) (param $key i32) (result i32) - (local $2 i32) - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.sub - global.set $~lib/memory/__stack_pointer - call $~stack_check - global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.store - local.get $this - local.set $2 - global.get $~lib/memory/__stack_pointer - local.get $2 - i32.store - local.get $2 - local.get $key - local.get $key - call $~lib/util/hash/HASH - call $"~lib/map/Map#find" - i32.const 0 - i32.ne - local.set $2 - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $2 - return - ) - (func $"~lib/map/Map#rehash" (param $this i32) (param $newBucketsMask i32) - (local $newBucketsCapacity i32) - (local $newBuckets i32) - (local $newEntriesCapacity i32) - (local $newEntries i32) - (local $oldPtr i32) - (local $oldEnd i32) - (local $newPtr i32) - (local $oldEntry i32) - (local $newEntry i32) - (local $oldEntryKey i32) - (local $newBucketIndex i32) - (local $newBucketPtrBase i32) - (local $14 i32) + (func $"~lib/map/Map#constructor" (param $this i32) (param $initialEntries i32) (result i32) + (local $entriesLength i32) + (local $i i32) + (local $key i32) + (local $value i32) + (local $hashCode i32) + (local $entry i32) + (local $entries i32) + (local $9 i32) + (local $entry|10 i32) + (local $bucketPtrBase i32) + (local $12 i32) global.get $~lib/memory/__stack_pointer i32.const 16 i32.sub @@ -12340,181 +15829,380 @@ global.get $~lib/memory/__stack_pointer i64.const 0 i64.store offset=8 - local.get $newBucketsMask - i32.const 1 - i32.add - local.set $newBucketsCapacity + local.get $this + i32.eqz + if + global.get $~lib/memory/__stack_pointer + i32.const 24 + i32.const 22 + call $~lib/rt/itcms/__new + local.tee $this + i32.store + end + local.get $this + local.set $12 global.get $~lib/memory/__stack_pointer + local.get $12 + i32.store offset=4 + local.get $12 i32.const 0 - local.get $newBucketsCapacity + i32.const 4 i32.const 4 i32.mul call $~lib/arraybuffer/ArrayBuffer#constructor - local.tee $newBuckets - i32.store - local.get $newBucketsCapacity - i32.const 8 - i32.mul - i32.const 3 - i32.div_s - local.set $newEntriesCapacity + local.set $12 + global.get $~lib/memory/__stack_pointer + local.get $12 + i32.store offset=8 + local.get $12 + call $"~lib/map/Map#set:buckets" + local.get $this + local.set $12 + global.get $~lib/memory/__stack_pointer + local.get $12 + i32.store offset=4 + local.get $12 + i32.const 4 + i32.const 1 + i32.sub + call $"~lib/map/Map#set:bucketsMask" + local.get $this + local.set $12 global.get $~lib/memory/__stack_pointer + local.get $12 + i32.store offset=4 + local.get $12 i32.const 0 - local.get $newEntriesCapacity - block $"~lib/map/ENTRY_SIZE|inlined.1" (result i32) + i32.const 4 + block $"~lib/map/ENTRY_SIZE|inlined.5" (result i32) i32.const 12 - br $"~lib/map/ENTRY_SIZE|inlined.1" + br $"~lib/map/ENTRY_SIZE|inlined.5" end i32.mul call $~lib/arraybuffer/ArrayBuffer#constructor - local.tee $newEntries + local.set $12 + global.get $~lib/memory/__stack_pointer + local.get $12 + i32.store offset=8 + local.get $12 + call $"~lib/map/Map#set:entries" + local.get $this + local.set $12 + global.get $~lib/memory/__stack_pointer + local.get $12 i32.store offset=4 + local.get $12 + i32.const 4 + call $"~lib/map/Map#set:entriesCapacity" local.get $this - local.set $14 + local.set $12 global.get $~lib/memory/__stack_pointer - local.get $14 - i32.store offset=8 - local.get $14 - call $"~lib/map/Map#get:entries" - local.set $oldPtr - local.get $oldPtr + local.get $12 + i32.store offset=4 + local.get $12 + i32.const 0 + call $"~lib/map/Map#set:entriesOffset" local.get $this - local.set $14 + local.set $12 global.get $~lib/memory/__stack_pointer - local.get $14 - i32.store offset=8 - local.get $14 - call $"~lib/map/Map#get:entriesOffset" - block $"~lib/map/ENTRY_SIZE|inlined.2" (result i32) - i32.const 12 - br $"~lib/map/ENTRY_SIZE|inlined.2" - end - i32.mul - i32.add - local.set $oldEnd - local.get $newEntries - local.set $newPtr - loop $while-continue|0 - local.get $oldPtr - local.get $oldEnd - i32.ne + local.get $12 + i32.store offset=4 + local.get $12 + i32.const 0 + call $"~lib/map/Map#set:entriesCount" + local.get $initialEntries + local.set $12 + global.get $~lib/memory/__stack_pointer + local.get $12 + i32.store offset=4 + local.get $12 + call $"~lib/array/Array<~lib/map/KeyValue>#get:length" + local.set $entriesLength + local.get $entriesLength + i32.const 0 + i32.gt_s + if + local.get $entriesLength + local.get $this + local.set $12 + global.get $~lib/memory/__stack_pointer + local.get $12 + i32.store offset=4 + local.get $12 + call $"~lib/map/Map#get:entriesCapacity" + i32.ge_s if - local.get $oldPtr - local.set $oldEntry - local.get $oldEntry - call $"~lib/map/MapEntry#get:taggedNext" - i32.const 1 - i32.and - i32.eqz + local.get $this + local.set $12 + global.get $~lib/memory/__stack_pointer + local.get $12 + i32.store offset=4 + local.get $12 + local.get $entriesLength + call $"~lib/map/Map#set:bucketsMask" + end + local.get $this + local.set $12 + global.get $~lib/memory/__stack_pointer + local.get $12 + i32.store offset=4 + local.get $12 + local.get $this + local.set $12 + global.get $~lib/memory/__stack_pointer + local.get $12 + i32.store offset=8 + local.get $12 + call $"~lib/map/Map#get:bucketsMask" + i32.const 1 + i32.shl + i32.const 1 + i32.or + call $"~lib/map/Map#rehash" + i32.const 0 + local.set $i + loop $for-loop|0 + local.get $i + local.get $entriesLength + i32.lt_s if - local.get $newPtr - local.set $newEntry - local.get $oldEntry - call $"~lib/map/MapEntry#get:key" - local.set $oldEntryKey - local.get $newEntry - local.get $oldEntryKey - call $"~lib/map/MapEntry#set:key" - local.get $newEntry - local.get $oldEntry - call $"~lib/map/MapEntry#get:value" - call $"~lib/map/MapEntry#set:value" - local.get $oldEntryKey + local.get $initialEntries + local.set $12 + global.get $~lib/memory/__stack_pointer + local.get $12 + i32.store offset=8 + local.get $12 + local.get $i + call $"~lib/array/Array<~lib/map/KeyValue>#__get" + local.set $12 + global.get $~lib/memory/__stack_pointer + local.get $12 + i32.store offset=4 + local.get $12 + call $"~lib/map/KeyValue#get:key" + local.set $key + local.get $initialEntries + local.set $12 + global.get $~lib/memory/__stack_pointer + local.get $12 + i32.store offset=8 + local.get $12 + local.get $i + call $"~lib/array/Array<~lib/map/KeyValue>#__get" + local.set $12 + global.get $~lib/memory/__stack_pointer + local.get $12 + i32.store offset=4 + local.get $12 + call $"~lib/map/KeyValue#get:value" + local.set $value + local.get $key call $~lib/util/hash/HASH - local.get $newBucketsMask - i32.and - local.set $newBucketIndex - local.get $newBuckets - local.get $newBucketIndex - i32.const 4 - i32.mul - i32.add - local.set $newBucketPtrBase - local.get $newEntry - local.get $newBucketPtrBase - i32.load - call $"~lib/map/MapEntry#set:taggedNext" - local.get $newBucketPtrBase - local.get $newPtr - i32.store - local.get $newPtr - block $"~lib/map/ENTRY_SIZE|inlined.3" (result i32) - i32.const 12 - br $"~lib/map/ENTRY_SIZE|inlined.3" + local.set $hashCode + local.get $this + local.set $12 + global.get $~lib/memory/__stack_pointer + local.get $12 + i32.store offset=4 + local.get $12 + local.get $key + local.get $hashCode + call $"~lib/map/Map#find" + local.set $entry + local.get $entry + if + local.get $entry + local.get $value + call $"~lib/map/MapEntry#set:value" + i32.const 0 + drop + else + global.get $~lib/memory/__stack_pointer + local.get $this + local.set $12 + global.get $~lib/memory/__stack_pointer + local.get $12 + i32.store offset=4 + local.get $12 + call $"~lib/map/Map#get:entries" + local.tee $entries + i32.store offset=12 + local.get $entries + local.get $this + local.set $12 + global.get $~lib/memory/__stack_pointer + local.get $12 + i32.store offset=4 + local.get $12 + local.get $this + local.set $12 + global.get $~lib/memory/__stack_pointer + local.get $12 + i32.store offset=8 + local.get $12 + call $"~lib/map/Map#get:entriesOffset" + local.tee $9 + i32.const 1 + i32.add + call $"~lib/map/Map#set:entriesOffset" + local.get $9 + block $"~lib/map/ENTRY_SIZE|inlined.4" (result i32) + i32.const 12 + br $"~lib/map/ENTRY_SIZE|inlined.4" + end + i32.mul + i32.add + local.set $entry|10 + local.get $entry|10 + local.get $key + call $"~lib/map/MapEntry#set:key" + i32.const 0 + drop + local.get $entry|10 + local.get $value + call $"~lib/map/MapEntry#set:value" + i32.const 0 + drop + local.get $this + local.set $12 + global.get $~lib/memory/__stack_pointer + local.get $12 + i32.store offset=4 + local.get $12 + local.get $this + local.set $12 + global.get $~lib/memory/__stack_pointer + local.get $12 + i32.store offset=8 + local.get $12 + call $"~lib/map/Map#get:entriesCount" + i32.const 1 + i32.add + call $"~lib/map/Map#set:entriesCount" + local.get $this + local.set $12 + global.get $~lib/memory/__stack_pointer + local.get $12 + i32.store offset=4 + local.get $12 + call $"~lib/map/Map#get:buckets" + local.get $hashCode + local.get $this + local.set $12 + global.get $~lib/memory/__stack_pointer + local.get $12 + i32.store offset=4 + local.get $12 + call $"~lib/map/Map#get:bucketsMask" + i32.and + i32.const 4 + i32.mul + i32.add + local.set $bucketPtrBase + local.get $entry|10 + local.get $bucketPtrBase + i32.load + call $"~lib/map/MapEntry#set:taggedNext" + local.get $bucketPtrBase + local.get $entry|10 + i32.store end + local.get $i + i32.const 1 i32.add - local.set $newPtr - end - local.get $oldPtr - block $"~lib/map/ENTRY_SIZE|inlined.4" (result i32) - i32.const 12 - br $"~lib/map/ENTRY_SIZE|inlined.4" + local.set $i + br $for-loop|0 end - i32.add - local.set $oldPtr - br $while-continue|0 end end local.get $this - local.set $14 + local.set $12 global.get $~lib/memory/__stack_pointer - local.get $14 - i32.store offset=8 - local.get $14 - local.get $newBuckets - local.set $14 + i32.const 16 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $12 + ) + (func $"~lib/map/Map#constructor@varargs" (param $this i32) (param $initialEntries i32) (result i32) + (local $2 i32) + (local $3 i32) global.get $~lib/memory/__stack_pointer - local.get $14 - i32.store offset=12 - local.get $14 - call $"~lib/map/Map#set:buckets" - local.get $this - local.set $14 + i32.const 12 + i32.sub + global.set $~lib/memory/__stack_pointer + call $~stack_check global.get $~lib/memory/__stack_pointer - local.get $14 + i64.const 0 + i64.store + global.get $~lib/memory/__stack_pointer + i32.const 0 i32.store offset=8 - local.get $14 - local.get $newBucketsMask - call $"~lib/map/Map#set:bucketsMask" + block $1of1 + block $0of1 + block $outOfRange + global.get $~argumentsLength + br_table $0of1 $1of1 $outOfRange + end + unreachable + end + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.const 2 + i32.const 24 + i32.const 1104 + call $~lib/rt/__newArray + local.tee $initialEntries + i32.store + end local.get $this - local.set $14 + local.set $3 global.get $~lib/memory/__stack_pointer - local.get $14 + local.get $3 + i32.store offset=4 + local.get $3 + local.get $initialEntries + local.set $3 + global.get $~lib/memory/__stack_pointer + local.get $3 i32.store offset=8 - local.get $14 - local.get $newEntries - local.set $14 + local.get $3 + call $"~lib/map/Map#constructor" + local.set $3 global.get $~lib/memory/__stack_pointer - local.get $14 - i32.store offset=12 - local.get $14 - call $"~lib/map/Map#set:entries" - local.get $this - local.set $14 + i32.const 12 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $3 + ) + (func $"~lib/map/Map#has" (param $this i32) (param $key i32) (result i32) + (local $2 i32) global.get $~lib/memory/__stack_pointer - local.get $14 - i32.store offset=8 - local.get $14 - local.get $newEntriesCapacity - call $"~lib/map/Map#set:entriesCapacity" - local.get $this - local.set $14 + i32.const 4 + i32.sub + global.set $~lib/memory/__stack_pointer + call $~stack_check global.get $~lib/memory/__stack_pointer - local.get $14 - i32.store offset=8 - local.get $14 + i32.const 0 + i32.store local.get $this - local.set $14 + local.set $2 global.get $~lib/memory/__stack_pointer - local.get $14 - i32.store offset=12 - local.get $14 - call $"~lib/map/Map#get:entriesCount" - call $"~lib/map/Map#set:entriesOffset" + local.get $2 + i32.store + local.get $2 + local.get $key + local.get $key + call $~lib/util/hash/HASH + call $"~lib/map/Map#find" + i32.const 0 + i32.ne + local.set $2 global.get $~lib/memory/__stack_pointer - i32.const 16 + i32.const 4 i32.add global.set $~lib/memory/__stack_pointer + local.get $2 + return ) (func $"~lib/map/Map#set" (param $this i32) (param $key i32) (param $value i32) (result i32) (local $hashCode i32) @@ -12648,9 +16336,9 @@ i32.add call $"~lib/map/Map#set:entriesOffset" local.get $6 - block $"~lib/map/ENTRY_SIZE|inlined.5" (result i32) + block $"~lib/map/ENTRY_SIZE|inlined.6" (result i32) i32.const 12 - br $"~lib/map/ENTRY_SIZE|inlined.5" + br $"~lib/map/ENTRY_SIZE|inlined.6" end i32.mul i32.add @@ -12743,9 +16431,9 @@ local.get $entry i32.eqz if - i32.const 592 - i32.const 656 - i32.const 105 + i32.const 800 + i32.const 864 + i32.const 148 i32.const 17 call $~lib/builtins/abort unreachable @@ -12807,7 +16495,7 @@ if global.get $~lib/memory/__stack_pointer i32.const 16 - i32.const 13 + i32.const 25 call $~lib/rt/itcms/__new local.tee $this i32.store @@ -12850,8 +16538,8 @@ i32.shr_u i32.gt_u if - i32.const 432 - i32.const 704 + i32.const 32 + i32.const 544 i32.const 70 i32.const 60 call $~lib/builtins/abort @@ -12947,8 +16635,8 @@ i32.const 0 i32.lt_s if - i32.const 224 - i32.const 704 + i32.const 336 + i32.const 544 i32.const 130 i32.const 22 call $~lib/builtins/abort @@ -13070,9 +16758,9 @@ if local.get $start local.get $i - block $"~lib/map/ENTRY_SIZE|inlined.6" (result i32) + block $"~lib/map/ENTRY_SIZE|inlined.7" (result i32) i32.const 12 - br $"~lib/map/ENTRY_SIZE|inlined.6" + br $"~lib/map/ENTRY_SIZE|inlined.7" end i32.mul i32.add @@ -13173,9 +16861,9 @@ if local.get $start local.get $i - block $"~lib/map/ENTRY_SIZE|inlined.7" (result i32) + block $"~lib/map/ENTRY_SIZE|inlined.8" (result i32) i32.const 12 - br $"~lib/map/ENTRY_SIZE|inlined.7" + br $"~lib/map/ENTRY_SIZE|inlined.8" end i32.mul i32.add @@ -13226,189 +16914,8 @@ local.get $8 return ) - (func $"~lib/map/Map#constructor" (param $this i32) (result i32) - (local $1 i32) - global.get $~lib/memory/__stack_pointer - i32.const 12 - i32.sub - global.set $~lib/memory/__stack_pointer - call $~stack_check - global.get $~lib/memory/__stack_pointer - i64.const 0 - i64.store - global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.store offset=8 - local.get $this - i32.eqz - if - global.get $~lib/memory/__stack_pointer - i32.const 24 - i32.const 14 - call $~lib/rt/itcms/__new - local.tee $this - i32.store - end - local.get $this - local.set $1 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - local.get $1 - i32.const 0 - i32.const 4 - i32.const 4 - i32.mul - call $~lib/arraybuffer/ArrayBuffer#constructor - local.set $1 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=8 - local.get $1 - call $"~lib/map/Map#set:buckets" - local.get $this - local.set $1 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - local.get $1 - i32.const 4 - i32.const 1 - i32.sub - call $"~lib/map/Map#set:bucketsMask" - local.get $this - local.set $1 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - local.get $1 - i32.const 0 - i32.const 4 - block $"~lib/map/ENTRY_SIZE|inlined.0" (result i32) - i32.const 8 - br $"~lib/map/ENTRY_SIZE|inlined.0" - end - i32.mul - call $~lib/arraybuffer/ArrayBuffer#constructor - local.set $1 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=8 - local.get $1 - call $"~lib/map/Map#set:entries" - local.get $this - local.set $1 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - local.get $1 - i32.const 4 - call $"~lib/map/Map#set:entriesCapacity" - local.get $this - local.set $1 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - local.get $1 - i32.const 0 - call $"~lib/map/Map#set:entriesOffset" - local.get $this - local.set $1 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - local.get $1 - i32.const 0 - call $"~lib/map/Map#set:entriesCount" - local.get $this - local.set $1 - global.get $~lib/memory/__stack_pointer - i32.const 12 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $1 - ) - (func $~lib/array/Array#get:length (param $this i32) (result i32) - (local $1 i32) - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.sub - global.set $~lib/memory/__stack_pointer - call $~stack_check - global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.store - local.get $this - local.set $1 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store - local.get $1 - call $~lib/array/Array#get:length_ - local.set $1 - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $1 - return - ) - (func $~lib/array/Array#__get (param $this i32) (param $index i32) (result i32) - (local $value i32) - (local $3 i32) - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.sub - global.set $~lib/memory/__stack_pointer - call $~stack_check - global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.store - local.get $index - local.get $this - local.set $3 - global.get $~lib/memory/__stack_pointer - local.get $3 - i32.store - local.get $3 - call $~lib/array/Array#get:length_ - i32.ge_u - if - i32.const 224 - i32.const 704 - i32.const 114 - i32.const 42 - call $~lib/builtins/abort - unreachable - end - local.get $this - local.set $3 - global.get $~lib/memory/__stack_pointer - local.get $3 - i32.store - local.get $3 - call $~lib/array/Array#get:dataStart - local.get $index - i32.const 1 - i32.shl - i32.add - i32.load16_s - local.set $value - i32.const 0 - drop - local.get $value - local.set $3 - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $3 - return - ) - (func $"~lib/map/Map#find" (param $this i32) (param $key i32) (param $hashCode i32) (result i32) - (local $entry i32) - (local $taggedNext i32) - (local $5 i32) + (func $"~lib/array/Array<~lib/map/KeyValue>#get:length" (param $this i32) (result i32) + (local $1 i32) global.get $~lib/memory/__stack_pointer i32.const 4 i32.sub @@ -13418,72 +16925,18 @@ i32.const 0 i32.store local.get $this - local.set $5 - global.get $~lib/memory/__stack_pointer - local.get $5 - i32.store - local.get $5 - call $"~lib/map/Map#get:buckets" - local.get $hashCode - local.get $this - local.set $5 + local.set $1 global.get $~lib/memory/__stack_pointer - local.get $5 + local.get $1 i32.store - local.get $5 - call $"~lib/map/Map#get:bucketsMask" - i32.and - i32.const 4 - i32.mul - i32.add - i32.load - local.set $entry - loop $while-continue|0 - local.get $entry - if - local.get $entry - call $"~lib/map/MapEntry#get:taggedNext" - local.set $taggedNext - local.get $taggedNext - i32.const 1 - i32.and - i32.eqz - if (result i32) - local.get $entry - call $"~lib/map/MapEntry#get:key" - i32.extend16_s - local.get $key - i32.extend16_s - i32.eq - else - i32.const 0 - end - if - local.get $entry - local.set $5 - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $5 - return - end - local.get $taggedNext - i32.const 1 - i32.const -1 - i32.xor - i32.and - local.set $entry - br $while-continue|0 - end - end - i32.const 0 - local.set $5 + local.get $1 + call $"~lib/array/Array<~lib/map/KeyValue>#get:length_" + local.set $1 global.get $~lib/memory/__stack_pointer i32.const 4 i32.add global.set $~lib/memory/__stack_pointer - local.get $5 + local.get $1 return ) (func $"~lib/map/Map#rehash" (param $this i32) (param $newBucketsMask i32) @@ -13532,9 +16985,9 @@ global.get $~lib/memory/__stack_pointer i32.const 0 local.get $newEntriesCapacity - block $"~lib/map/ENTRY_SIZE|inlined.1" (result i32) + block $"~lib/map/ENTRY_SIZE|inlined.0" (result i32) i32.const 8 - br $"~lib/map/ENTRY_SIZE|inlined.1" + br $"~lib/map/ENTRY_SIZE|inlined.0" end i32.mul call $~lib/arraybuffer/ArrayBuffer#constructor @@ -13556,9 +17009,9 @@ i32.store offset=8 local.get $14 call $"~lib/map/Map#get:entriesOffset" - block $"~lib/map/ENTRY_SIZE|inlined.2" (result i32) + block $"~lib/map/ENTRY_SIZE|inlined.1" (result i32) i32.const 8 - br $"~lib/map/ENTRY_SIZE|inlined.2" + br $"~lib/map/ENTRY_SIZE|inlined.1" end i32.mul i32.add @@ -13609,17 +17062,17 @@ local.get $newPtr i32.store local.get $newPtr - block $"~lib/map/ENTRY_SIZE|inlined.3" (result i32) + block $"~lib/map/ENTRY_SIZE|inlined.2" (result i32) i32.const 8 - br $"~lib/map/ENTRY_SIZE|inlined.3" + br $"~lib/map/ENTRY_SIZE|inlined.2" end i32.add local.set $newPtr end local.get $oldPtr - block $"~lib/map/ENTRY_SIZE|inlined.4" (result i32) + block $"~lib/map/ENTRY_SIZE|inlined.3" (result i32) i32.const 8 - br $"~lib/map/ENTRY_SIZE|inlined.4" + br $"~lib/map/ENTRY_SIZE|inlined.3" end i32.add local.set $oldPtr @@ -13687,6 +17140,599 @@ i32.add global.set $~lib/memory/__stack_pointer ) + (func $"~lib/array/Array<~lib/map/KeyValue>#__get" (param $this i32) (param $index i32) (result i32) + (local $value i32) + (local $3 i32) + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.sub + global.set $~lib/memory/__stack_pointer + call $~stack_check + global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store + local.get $index + local.get $this + local.set $3 + global.get $~lib/memory/__stack_pointer + local.get $3 + i32.store + local.get $3 + call $"~lib/array/Array<~lib/map/KeyValue>#get:length_" + i32.ge_u + if + i32.const 336 + i32.const 544 + i32.const 114 + i32.const 42 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + local.get $this + local.set $3 + global.get $~lib/memory/__stack_pointer + local.get $3 + i32.store + local.get $3 + call $"~lib/array/Array<~lib/map/KeyValue>#get:dataStart" + local.get $index + i32.const 2 + i32.shl + i32.add + i32.load + local.tee $value + i32.store offset=4 + i32.const 1 + drop + i32.const 0 + i32.eqz + drop + local.get $value + i32.eqz + if + i32.const 592 + i32.const 544 + i32.const 118 + i32.const 40 + call $~lib/builtins/abort + unreachable + end + local.get $value + local.set $3 + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $3 + return + ) + (func $"~lib/map/Map#find" (param $this i32) (param $key i32) (param $hashCode i32) (result i32) + (local $entry i32) + (local $taggedNext i32) + (local $5 i32) + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.sub + global.set $~lib/memory/__stack_pointer + call $~stack_check + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store + local.get $this + local.set $5 + global.get $~lib/memory/__stack_pointer + local.get $5 + i32.store + local.get $5 + call $"~lib/map/Map#get:buckets" + local.get $hashCode + local.get $this + local.set $5 + global.get $~lib/memory/__stack_pointer + local.get $5 + i32.store + local.get $5 + call $"~lib/map/Map#get:bucketsMask" + i32.and + i32.const 4 + i32.mul + i32.add + i32.load + local.set $entry + loop $while-continue|0 + local.get $entry + if + local.get $entry + call $"~lib/map/MapEntry#get:taggedNext" + local.set $taggedNext + local.get $taggedNext + i32.const 1 + i32.and + i32.eqz + if (result i32) + local.get $entry + call $"~lib/map/MapEntry#get:key" + i32.extend16_s + local.get $key + i32.extend16_s + i32.eq + else + i32.const 0 + end + if + local.get $entry + local.set $5 + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $5 + return + end + local.get $taggedNext + i32.const 1 + i32.const -1 + i32.xor + i32.and + local.set $entry + br $while-continue|0 + end + end + i32.const 0 + local.set $5 + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $5 + return + ) + (func $"~lib/map/Map#constructor" (param $this i32) (param $initialEntries i32) (result i32) + (local $entriesLength i32) + (local $i i32) + (local $key i32) + (local $value i32) + (local $hashCode i32) + (local $entry i32) + (local $entries i32) + (local $9 i32) + (local $entry|10 i32) + (local $bucketPtrBase i32) + (local $12 i32) + global.get $~lib/memory/__stack_pointer + i32.const 16 + i32.sub + global.set $~lib/memory/__stack_pointer + call $~stack_check + global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store + global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store offset=8 + local.get $this + i32.eqz + if + global.get $~lib/memory/__stack_pointer + i32.const 24 + i32.const 26 + call $~lib/rt/itcms/__new + local.tee $this + i32.store + end + local.get $this + local.set $12 + global.get $~lib/memory/__stack_pointer + local.get $12 + i32.store offset=4 + local.get $12 + i32.const 0 + i32.const 4 + i32.const 4 + i32.mul + call $~lib/arraybuffer/ArrayBuffer#constructor + local.set $12 + global.get $~lib/memory/__stack_pointer + local.get $12 + i32.store offset=8 + local.get $12 + call $"~lib/map/Map#set:buckets" + local.get $this + local.set $12 + global.get $~lib/memory/__stack_pointer + local.get $12 + i32.store offset=4 + local.get $12 + i32.const 4 + i32.const 1 + i32.sub + call $"~lib/map/Map#set:bucketsMask" + local.get $this + local.set $12 + global.get $~lib/memory/__stack_pointer + local.get $12 + i32.store offset=4 + local.get $12 + i32.const 0 + i32.const 4 + block $"~lib/map/ENTRY_SIZE|inlined.5" (result i32) + i32.const 8 + br $"~lib/map/ENTRY_SIZE|inlined.5" + end + i32.mul + call $~lib/arraybuffer/ArrayBuffer#constructor + local.set $12 + global.get $~lib/memory/__stack_pointer + local.get $12 + i32.store offset=8 + local.get $12 + call $"~lib/map/Map#set:entries" + local.get $this + local.set $12 + global.get $~lib/memory/__stack_pointer + local.get $12 + i32.store offset=4 + local.get $12 + i32.const 4 + call $"~lib/map/Map#set:entriesCapacity" + local.get $this + local.set $12 + global.get $~lib/memory/__stack_pointer + local.get $12 + i32.store offset=4 + local.get $12 + i32.const 0 + call $"~lib/map/Map#set:entriesOffset" + local.get $this + local.set $12 + global.get $~lib/memory/__stack_pointer + local.get $12 + i32.store offset=4 + local.get $12 + i32.const 0 + call $"~lib/map/Map#set:entriesCount" + local.get $initialEntries + local.set $12 + global.get $~lib/memory/__stack_pointer + local.get $12 + i32.store offset=4 + local.get $12 + call $"~lib/array/Array<~lib/map/KeyValue>#get:length" + local.set $entriesLength + local.get $entriesLength + i32.const 0 + i32.gt_s + if + local.get $entriesLength + local.get $this + local.set $12 + global.get $~lib/memory/__stack_pointer + local.get $12 + i32.store offset=4 + local.get $12 + call $"~lib/map/Map#get:entriesCapacity" + i32.ge_s + if + local.get $this + local.set $12 + global.get $~lib/memory/__stack_pointer + local.get $12 + i32.store offset=4 + local.get $12 + local.get $entriesLength + call $"~lib/map/Map#set:bucketsMask" + end + local.get $this + local.set $12 + global.get $~lib/memory/__stack_pointer + local.get $12 + i32.store offset=4 + local.get $12 + local.get $this + local.set $12 + global.get $~lib/memory/__stack_pointer + local.get $12 + i32.store offset=8 + local.get $12 + call $"~lib/map/Map#get:bucketsMask" + i32.const 1 + i32.shl + i32.const 1 + i32.or + call $"~lib/map/Map#rehash" + i32.const 0 + local.set $i + loop $for-loop|0 + local.get $i + local.get $entriesLength + i32.lt_s + if + local.get $initialEntries + local.set $12 + global.get $~lib/memory/__stack_pointer + local.get $12 + i32.store offset=8 + local.get $12 + local.get $i + call $"~lib/array/Array<~lib/map/KeyValue>#__get" + local.set $12 + global.get $~lib/memory/__stack_pointer + local.get $12 + i32.store offset=4 + local.get $12 + call $"~lib/map/KeyValue#get:key" + local.set $key + local.get $initialEntries + local.set $12 + global.get $~lib/memory/__stack_pointer + local.get $12 + i32.store offset=8 + local.get $12 + local.get $i + call $"~lib/array/Array<~lib/map/KeyValue>#__get" + local.set $12 + global.get $~lib/memory/__stack_pointer + local.get $12 + i32.store offset=4 + local.get $12 + call $"~lib/map/KeyValue#get:value" + local.set $value + local.get $key + call $~lib/util/hash/HASH + local.set $hashCode + local.get $this + local.set $12 + global.get $~lib/memory/__stack_pointer + local.get $12 + i32.store offset=4 + local.get $12 + local.get $key + local.get $hashCode + call $"~lib/map/Map#find" + local.set $entry + local.get $entry + if + local.get $entry + local.get $value + call $"~lib/map/MapEntry#set:value" + i32.const 0 + drop + else + global.get $~lib/memory/__stack_pointer + local.get $this + local.set $12 + global.get $~lib/memory/__stack_pointer + local.get $12 + i32.store offset=4 + local.get $12 + call $"~lib/map/Map#get:entries" + local.tee $entries + i32.store offset=12 + local.get $entries + local.get $this + local.set $12 + global.get $~lib/memory/__stack_pointer + local.get $12 + i32.store offset=4 + local.get $12 + local.get $this + local.set $12 + global.get $~lib/memory/__stack_pointer + local.get $12 + i32.store offset=8 + local.get $12 + call $"~lib/map/Map#get:entriesOffset" + local.tee $9 + i32.const 1 + i32.add + call $"~lib/map/Map#set:entriesOffset" + local.get $9 + block $"~lib/map/ENTRY_SIZE|inlined.4" (result i32) + i32.const 8 + br $"~lib/map/ENTRY_SIZE|inlined.4" + end + i32.mul + i32.add + local.set $entry|10 + local.get $entry|10 + local.get $key + call $"~lib/map/MapEntry#set:key" + i32.const 0 + drop + local.get $entry|10 + local.get $value + call $"~lib/map/MapEntry#set:value" + i32.const 0 + drop + local.get $this + local.set $12 + global.get $~lib/memory/__stack_pointer + local.get $12 + i32.store offset=4 + local.get $12 + local.get $this + local.set $12 + global.get $~lib/memory/__stack_pointer + local.get $12 + i32.store offset=8 + local.get $12 + call $"~lib/map/Map#get:entriesCount" + i32.const 1 + i32.add + call $"~lib/map/Map#set:entriesCount" + local.get $this + local.set $12 + global.get $~lib/memory/__stack_pointer + local.get $12 + i32.store offset=4 + local.get $12 + call $"~lib/map/Map#get:buckets" + local.get $hashCode + local.get $this + local.set $12 + global.get $~lib/memory/__stack_pointer + local.get $12 + i32.store offset=4 + local.get $12 + call $"~lib/map/Map#get:bucketsMask" + i32.and + i32.const 4 + i32.mul + i32.add + local.set $bucketPtrBase + local.get $entry|10 + local.get $bucketPtrBase + i32.load + call $"~lib/map/MapEntry#set:taggedNext" + local.get $bucketPtrBase + local.get $entry|10 + i32.store + end + local.get $i + i32.const 1 + i32.add + local.set $i + br $for-loop|0 + end + end + end + local.get $this + local.set $12 + global.get $~lib/memory/__stack_pointer + i32.const 16 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $12 + ) + (func $"~lib/map/Map#constructor@varargs" (param $this i32) (param $initialEntries i32) (result i32) + (local $2 i32) + (local $3 i32) + global.get $~lib/memory/__stack_pointer + i32.const 12 + i32.sub + global.set $~lib/memory/__stack_pointer + call $~stack_check + global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store offset=8 + block $1of1 + block $0of1 + block $outOfRange + global.get $~argumentsLength + br_table $0of1 $1of1 $outOfRange + end + unreachable + end + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.const 2 + i32.const 28 + i32.const 1136 + call $~lib/rt/__newArray + local.tee $initialEntries + i32.store + end + local.get $this + local.set $3 + global.get $~lib/memory/__stack_pointer + local.get $3 + i32.store offset=4 + local.get $3 + local.get $initialEntries + local.set $3 + global.get $~lib/memory/__stack_pointer + local.get $3 + i32.store offset=8 + local.get $3 + call $"~lib/map/Map#constructor" + local.set $3 + global.get $~lib/memory/__stack_pointer + i32.const 12 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $3 + ) + (func $~lib/array/Array#get:length (param $this i32) (result i32) + (local $1 i32) + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.sub + global.set $~lib/memory/__stack_pointer + call $~stack_check + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store + local.get $this + local.set $1 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store + local.get $1 + call $~lib/array/Array#get:length_ + local.set $1 + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $1 + return + ) + (func $~lib/array/Array#__get (param $this i32) (param $index i32) (result i32) + (local $value i32) + (local $3 i32) + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.sub + global.set $~lib/memory/__stack_pointer + call $~stack_check + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store + local.get $index + local.get $this + local.set $3 + global.get $~lib/memory/__stack_pointer + local.get $3 + i32.store + local.get $3 + call $~lib/array/Array#get:length_ + i32.ge_u + if + i32.const 336 + i32.const 544 + i32.const 114 + i32.const 42 + call $~lib/builtins/abort + unreachable + end + local.get $this + local.set $3 + global.get $~lib/memory/__stack_pointer + local.get $3 + i32.store + local.get $3 + call $~lib/array/Array#get:dataStart + local.get $index + i32.const 1 + i32.shl + i32.add + i32.load16_s + local.set $value + i32.const 0 + drop + local.get $value + local.set $3 + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $3 + return + ) (func $"~lib/map/Map#set" (param $this i32) (param $key i32) (param $value i32) (result i32) (local $hashCode i32) (local $entry i32) @@ -13819,9 +17865,9 @@ i32.add call $"~lib/map/Map#set:entriesOffset" local.get $6 - block $"~lib/map/ENTRY_SIZE|inlined.5" (result i32) + block $"~lib/map/ENTRY_SIZE|inlined.6" (result i32) i32.const 8 - br $"~lib/map/ENTRY_SIZE|inlined.5" + br $"~lib/map/ENTRY_SIZE|inlined.6" end i32.mul i32.add @@ -14088,9 +18134,9 @@ local.get $1 i32.const 0 i32.const 4 - block $"~lib/map/ENTRY_SIZE|inlined.8" (result i32) + block $"~lib/map/ENTRY_SIZE|inlined.9" (result i32) i32.const 12 - br $"~lib/map/ENTRY_SIZE|inlined.8" + br $"~lib/map/ENTRY_SIZE|inlined.9" end i32.mul call $~lib/arraybuffer/ArrayBuffer#constructor @@ -14129,6 +18175,125 @@ i32.add global.set $~lib/memory/__stack_pointer ) + (func $"~lib/map/KeyValue#constructor" (param $this i32) (result i32) + (local $1 i32) + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.sub + global.set $~lib/memory/__stack_pointer + call $~stack_check + global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store + local.get $this + i32.eqz + if + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.const 23 + call $~lib/rt/itcms/__new + local.tee $this + i32.store + end + global.get $~lib/memory/__stack_pointer + local.get $this + local.set $1 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + local.get $1 + call $~lib/object/Object#constructor + local.tee $this + i32.store + local.get $this + local.set $1 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + local.get $1 + i32.const 0 + call $"~lib/map/KeyValue#set:key" + local.get $this + local.set $1 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + local.get $1 + i32.const 0 + call $"~lib/map/KeyValue#set:value" + local.get $this + local.set $1 + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $1 + ) + (func $"~lib/array/Array<~lib/map/KeyValue>#push" (param $this i32) (param $value i32) (result i32) + (local $oldLen i32) + (local $len i32) + (local $4 i32) + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.sub + global.set $~lib/memory/__stack_pointer + call $~stack_check + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store + local.get $this + local.set $4 + global.get $~lib/memory/__stack_pointer + local.get $4 + i32.store + local.get $4 + call $"~lib/array/Array<~lib/map/KeyValue>#get:length_" + local.set $oldLen + local.get $oldLen + i32.const 1 + i32.add + local.set $len + local.get $this + local.get $len + i32.const 2 + i32.const 1 + call $~lib/array/ensureCapacity + i32.const 1 + drop + local.get $this + local.set $4 + global.get $~lib/memory/__stack_pointer + local.get $4 + i32.store + local.get $4 + call $"~lib/array/Array<~lib/map/KeyValue>#get:dataStart" + local.get $oldLen + i32.const 2 + i32.shl + i32.add + local.get $value + i32.store + local.get $this + local.get $value + i32.const 1 + call $~lib/rt/itcms/__link + local.get $this + local.set $4 + global.get $~lib/memory/__stack_pointer + local.get $4 + i32.store + local.get $4 + local.get $len + call $"~lib/array/Array<~lib/map/KeyValue>#set:length_" + local.get $len + local.set $4 + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $4 + return + ) (func $"std/map/testNumeric" (local $map i32) (local $k i32) @@ -14143,18 +18308,26 @@ (local $k|10 i32) (local $k|11 i32) (local $12 i32) + (local $initialEntries i32) + (local $k|14 i32) + (local $15 i32) + (local $k|16 i32) + (local $17 i32) global.get $~lib/memory/__stack_pointer - i32.const 24 + i32.const 40 i32.sub global.set $~lib/memory/__stack_pointer call $~stack_check global.get $~lib/memory/__stack_pointer i32.const 0 - i32.const 24 + i32.const 40 memory.fill global.get $~lib/memory/__stack_pointer i32.const 0 - call $"~lib/map/Map#constructor" + i32.const 0 + global.set $~argumentsLength + i32.const 0 + call $"~lib/map/Map#constructor@varargs" local.tee $map i32.store i32.const 0 @@ -14165,29 +18338,29 @@ i32.lt_s if local.get $map - local.set $12 + local.set $17 global.get $~lib/memory/__stack_pointer - local.get $12 + local.get $17 i32.store offset=4 - local.get $12 + local.get $17 local.get $k call $"~lib/map/Map#has" i32.eqz i32.eqz if i32.const 0 - i32.const 544 - i32.const 6 + i32.const 752 + i32.const 7 i32.const 5 call $~lib/builtins/abort unreachable end local.get $map - local.set $12 + local.set $17 global.get $~lib/memory/__stack_pointer - local.get $12 + local.get $17 i32.store offset=4 - local.get $12 + local.get $17 local.get $k i32.const 10 local.get $k @@ -14195,28 +18368,28 @@ call $"~lib/map/Map#set" drop local.get $map - local.set $12 + local.set $17 global.get $~lib/memory/__stack_pointer - local.get $12 + local.get $17 i32.store offset=4 - local.get $12 + local.get $17 local.get $k call $"~lib/map/Map#has" i32.eqz if i32.const 0 - i32.const 544 - i32.const 8 + i32.const 752 + i32.const 9 i32.const 5 call $~lib/builtins/abort unreachable end local.get $map - local.set $12 + local.set $17 global.get $~lib/memory/__stack_pointer - local.get $12 + local.get $17 i32.store offset=4 - local.get $12 + local.get $17 local.get $k call $"~lib/map/Map#get" i32.const 10 @@ -14226,8 +18399,8 @@ i32.eqz if i32.const 0 - i32.const 544 - i32.const 9 + i32.const 752 + i32.const 10 i32.const 5 call $~lib/builtins/abort unreachable @@ -14240,19 +18413,19 @@ end end local.get $map - local.set $12 + local.set $17 global.get $~lib/memory/__stack_pointer - local.get $12 + local.get $17 i32.store offset=4 - local.get $12 + local.get $17 call $"~lib/map/Map#get:size" i32.const 100 i32.eq i32.eqz if i32.const 0 - i32.const 544 - i32.const 11 + i32.const 752 + i32.const 12 i32.const 3 call $~lib/builtins/abort unreachable @@ -14265,28 +18438,28 @@ i32.lt_s if local.get $map - local.set $12 + local.set $17 global.get $~lib/memory/__stack_pointer - local.get $12 + local.get $17 i32.store offset=4 - local.get $12 + local.get $17 local.get $k|2 call $"~lib/map/Map#has" i32.eqz if i32.const 0 - i32.const 544 - i32.const 15 + i32.const 752 + i32.const 16 i32.const 5 call $~lib/builtins/abort unreachable end local.get $map - local.set $12 + local.set $17 global.get $~lib/memory/__stack_pointer - local.get $12 + local.get $17 i32.store offset=4 - local.get $12 + local.get $17 local.get $k|2 call $"~lib/map/Map#get" i32.const 10 @@ -14296,18 +18469,18 @@ i32.eqz if i32.const 0 - i32.const 544 - i32.const 16 + i32.const 752 + i32.const 17 i32.const 5 call $~lib/builtins/abort unreachable end local.get $map - local.set $12 + local.set $17 global.get $~lib/memory/__stack_pointer - local.get $12 + local.get $17 i32.store offset=4 - local.get $12 + local.get $17 local.get $k|2 i32.const 20 local.get $k|2 @@ -14315,28 +18488,28 @@ call $"~lib/map/Map#set" drop local.get $map - local.set $12 + local.set $17 global.get $~lib/memory/__stack_pointer - local.get $12 + local.get $17 i32.store offset=4 - local.get $12 + local.get $17 local.get $k|2 call $"~lib/map/Map#has" i32.eqz if i32.const 0 - i32.const 544 - i32.const 18 + i32.const 752 + i32.const 19 i32.const 5 call $~lib/builtins/abort unreachable end local.get $map - local.set $12 + local.set $17 global.get $~lib/memory/__stack_pointer - local.get $12 + local.get $17 i32.store offset=4 - local.get $12 + local.get $17 local.get $k|2 call $"~lib/map/Map#get" i32.const 20 @@ -14346,8 +18519,8 @@ i32.eqz if i32.const 0 - i32.const 544 - i32.const 19 + i32.const 752 + i32.const 20 i32.const 5 call $~lib/builtins/abort unreachable @@ -14360,51 +18533,57 @@ end end local.get $map - local.set $12 + local.set $17 global.get $~lib/memory/__stack_pointer - local.get $12 + local.get $17 i32.store offset=4 - local.get $12 + local.get $17 call $"~lib/map/Map#get:size" i32.const 100 i32.eq i32.eqz if i32.const 0 - i32.const 544 - i32.const 21 + i32.const 752 + i32.const 22 i32.const 3 call $~lib/builtins/abort unreachable end global.get $~lib/memory/__stack_pointer local.get $map - local.set $12 + local.set $17 global.get $~lib/memory/__stack_pointer - local.get $12 + local.get $17 i32.store offset=4 - local.get $12 + local.get $17 call $"~lib/map/Map#keys" local.tee $keys i32.store offset=8 global.get $~lib/memory/__stack_pointer local.get $map - local.set $12 + local.set $17 global.get $~lib/memory/__stack_pointer - local.get $12 + local.get $17 i32.store offset=4 - local.get $12 + local.get $17 call $"~lib/map/Map#values" local.tee $vals i32.store offset=12 global.get $~lib/memory/__stack_pointer i32.const 0 - call $"~lib/map/Map#constructor" + i32.const 0 + global.set $~argumentsLength + i32.const 0 + call $"~lib/map/Map#constructor@varargs" local.tee $keyMap i32.store offset=16 global.get $~lib/memory/__stack_pointer i32.const 0 - call $"~lib/map/Map#constructor" + i32.const 0 + global.set $~argumentsLength + i32.const 0 + call $"~lib/map/Map#constructor@varargs" local.tee $valMap i32.store offset=20 i32.const 0 @@ -14412,55 +18591,55 @@ loop $for-loop|2 local.get $index local.get $keys - local.set $12 + local.set $17 global.get $~lib/memory/__stack_pointer - local.get $12 + local.get $17 i32.store offset=4 - local.get $12 + local.get $17 call $~lib/array/Array#get:length i32.lt_s if local.get $keys - local.set $12 + local.set $17 global.get $~lib/memory/__stack_pointer - local.get $12 + local.get $17 i32.store offset=4 - local.get $12 + local.get $17 local.get $index call $~lib/array/Array#__get local.set $key local.get $vals - local.set $12 + local.set $17 global.get $~lib/memory/__stack_pointer - local.get $12 + local.get $17 i32.store offset=4 - local.get $12 + local.get $17 local.get $index call $~lib/array/Array#__get local.set $value local.get $map - local.set $12 + local.set $17 global.get $~lib/memory/__stack_pointer - local.get $12 + local.get $17 i32.store offset=4 - local.get $12 + local.get $17 local.get $key call $"~lib/map/Map#has" i32.eqz if i32.const 0 - i32.const 544 - i32.const 31 + i32.const 752 + i32.const 32 i32.const 5 call $~lib/builtins/abort unreachable end local.get $map - local.set $12 + local.set $17 global.get $~lib/memory/__stack_pointer - local.get $12 + local.get $17 i32.store offset=4 - local.get $12 + local.get $17 local.get $value i32.const 20 i32.sub @@ -14468,28 +18647,28 @@ i32.eqz if i32.const 0 - i32.const 544 - i32.const 32 + i32.const 752 + i32.const 33 i32.const 5 call $~lib/builtins/abort unreachable end local.get $keyMap - local.set $12 + local.set $17 global.get $~lib/memory/__stack_pointer - local.get $12 + local.get $17 i32.store offset=4 - local.get $12 + local.get $17 local.get $key local.get $key call $"~lib/map/Map#set" drop local.get $valMap - local.set $12 + local.set $17 global.get $~lib/memory/__stack_pointer - local.get $12 + local.get $17 i32.store offset=4 - local.get $12 + local.get $17 local.get $value i32.const 20 i32.sub @@ -14506,37 +18685,37 @@ end end local.get $keyMap - local.set $12 + local.set $17 global.get $~lib/memory/__stack_pointer - local.get $12 + local.get $17 i32.store offset=4 - local.get $12 + local.get $17 call $"~lib/map/Map#get:size" i32.const 100 i32.eq i32.eqz if i32.const 0 - i32.const 544 - i32.const 36 + i32.const 752 + i32.const 37 i32.const 3 call $~lib/builtins/abort unreachable end local.get $valMap - local.set $12 + local.set $17 global.get $~lib/memory/__stack_pointer - local.get $12 + local.get $17 i32.store offset=4 - local.get $12 + local.get $17 call $"~lib/map/Map#get:size" i32.const 100 i32.eq i32.eqz if i32.const 0 - i32.const 544 - i32.const 37 + i32.const 752 + i32.const 38 i32.const 3 call $~lib/builtins/abort unreachable @@ -14549,28 +18728,28 @@ i32.lt_s if local.get $map - local.set $12 + local.set $17 global.get $~lib/memory/__stack_pointer - local.get $12 + local.get $17 i32.store offset=4 - local.get $12 + local.get $17 local.get $k|10 call $"~lib/map/Map#has" i32.eqz if i32.const 0 - i32.const 544 - i32.const 41 + i32.const 752 + i32.const 42 i32.const 5 call $~lib/builtins/abort unreachable end local.get $map - local.set $12 + local.set $17 global.get $~lib/memory/__stack_pointer - local.get $12 + local.get $17 i32.store offset=4 - local.get $12 + local.get $17 local.get $k|10 call $"~lib/map/Map#get" i32.const 20 @@ -14580,35 +18759,35 @@ i32.eqz if i32.const 0 - i32.const 544 - i32.const 42 + i32.const 752 + i32.const 43 i32.const 5 call $~lib/builtins/abort unreachable end local.get $map - local.set $12 + local.set $17 global.get $~lib/memory/__stack_pointer - local.get $12 + local.get $17 i32.store offset=4 - local.get $12 + local.get $17 local.get $k|10 call $"~lib/map/Map#delete" drop local.get $map - local.set $12 + local.set $17 global.get $~lib/memory/__stack_pointer - local.get $12 + local.get $17 i32.store offset=4 - local.get $12 + local.get $17 local.get $k|10 call $"~lib/map/Map#has" i32.eqz i32.eqz if i32.const 0 - i32.const 544 - i32.const 44 + i32.const 752 + i32.const 45 i32.const 5 call $~lib/builtins/abort unreachable @@ -14621,19 +18800,19 @@ end end local.get $map - local.set $12 + local.set $17 global.get $~lib/memory/__stack_pointer - local.get $12 + local.get $17 i32.store offset=4 - local.get $12 + local.get $17 call $"~lib/map/Map#get:size" i32.const 50 i32.eq i32.eqz if i32.const 0 - i32.const 544 - i32.const 46 + i32.const 752 + i32.const 47 i32.const 3 call $~lib/builtins/abort unreachable @@ -14646,29 +18825,29 @@ i32.lt_s if local.get $map - local.set $12 + local.set $17 global.get $~lib/memory/__stack_pointer - local.get $12 + local.get $17 i32.store offset=4 - local.get $12 + local.get $17 local.get $k|11 call $"~lib/map/Map#has" i32.eqz i32.eqz if i32.const 0 - i32.const 544 - i32.const 50 + i32.const 752 + i32.const 51 i32.const 5 call $~lib/builtins/abort unreachable end local.get $map - local.set $12 + local.set $17 global.get $~lib/memory/__stack_pointer - local.get $12 + local.get $17 i32.store offset=4 - local.get $12 + local.get $17 local.get $k|11 i32.const 10 local.get $k|11 @@ -14676,45 +18855,45 @@ call $"~lib/map/Map#set" drop local.get $map - local.set $12 + local.set $17 global.get $~lib/memory/__stack_pointer - local.get $12 + local.get $17 i32.store offset=4 - local.get $12 + local.get $17 local.get $k|11 call $"~lib/map/Map#has" i32.eqz if i32.const 0 - i32.const 544 - i32.const 52 + i32.const 752 + i32.const 53 i32.const 5 call $~lib/builtins/abort unreachable end local.get $map - local.set $12 + local.set $17 global.get $~lib/memory/__stack_pointer - local.get $12 + local.get $17 i32.store offset=4 - local.get $12 + local.get $17 local.get $k|11 call $"~lib/map/Map#delete" drop local.get $map - local.set $12 + local.set $17 global.get $~lib/memory/__stack_pointer - local.get $12 + local.get $17 i32.store offset=4 - local.get $12 + local.get $17 local.get $k|11 call $"~lib/map/Map#has" i32.eqz i32.eqz if i32.const 0 - i32.const 544 - i32.const 54 + i32.const 752 + i32.const 55 i32.const 5 call $~lib/builtins/abort unreachable @@ -14727,240 +18906,240 @@ end end local.get $map - local.set $12 + local.set $17 global.get $~lib/memory/__stack_pointer - local.get $12 + local.get $17 i32.store offset=4 - local.get $12 + local.get $17 call $"~lib/map/Map#get:size" i32.const 50 i32.eq i32.eqz if i32.const 0 - i32.const 544 - i32.const 56 + i32.const 752 + i32.const 57 i32.const 3 call $~lib/builtins/abort unreachable end local.get $map - local.set $12 + local.set $17 global.get $~lib/memory/__stack_pointer - local.get $12 + local.get $17 i32.store offset=4 - local.get $12 + local.get $17 call $"~lib/map/Map#clear" local.get $map - local.set $12 + local.set $17 global.get $~lib/memory/__stack_pointer - local.get $12 + local.get $17 i32.store offset=4 - local.get $12 + local.get $17 call $"~lib/map/Map#get:size" i32.const 0 i32.eq i32.eqz if i32.const 0 - i32.const 544 - i32.const 60 + i32.const 752 + i32.const 61 i32.const 3 call $~lib/builtins/abort unreachable end global.get $~lib/memory/__stack_pointer - i32.const 24 - i32.add - global.set $~lib/memory/__stack_pointer - ) - (func $"~lib/map/Map#constructor" (param $this i32) (result i32) - (local $1 i32) - global.get $~lib/memory/__stack_pointer - i32.const 12 - i32.sub - global.set $~lib/memory/__stack_pointer - call $~stack_check - global.get $~lib/memory/__stack_pointer - i64.const 0 - i64.store - global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.store offset=8 - local.get $this - i32.eqz - if - global.get $~lib/memory/__stack_pointer - i32.const 24 - i32.const 15 - call $~lib/rt/itcms/__new - local.tee $this - i32.store - end - local.get $this - local.set $1 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - local.get $1 i32.const 0 - i32.const 4 - i32.const 4 - i32.mul - call $~lib/arraybuffer/ArrayBuffer#constructor - local.set $1 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=8 - local.get $1 - call $"~lib/map/Map#set:buckets" - local.get $this - local.set $1 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - local.get $1 - i32.const 4 - i32.const 1 - i32.sub - call $"~lib/map/Map#set:bucketsMask" - local.get $this - local.set $1 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - local.get $1 - i32.const 0 - i32.const 4 - block $"~lib/map/ENTRY_SIZE|inlined.0" (result i32) - i32.const 12 - br $"~lib/map/ENTRY_SIZE|inlined.0" + i32.const 2 + i32.const 24 + i32.const 1168 + call $~lib/rt/__newArray + local.tee $initialEntries + i32.store offset=24 + i32.const 0 + local.set $k|14 + loop $for-loop|5 + local.get $k|14 + i32.const 100 + i32.lt_s + if + local.get $initialEntries + local.set $17 + global.get $~lib/memory/__stack_pointer + local.get $17 + i32.store offset=4 + local.get $17 + global.get $~lib/memory/__stack_pointer + i32.const 0 + call $"~lib/map/KeyValue#constructor" + local.tee $15 + i32.store offset=32 + local.get $15 + local.set $17 + global.get $~lib/memory/__stack_pointer + local.get $17 + i32.store offset=36 + local.get $17 + local.get $k|14 + call $"~lib/map/KeyValue#set:key" + local.get $15 + local.set $17 + global.get $~lib/memory/__stack_pointer + local.get $17 + i32.store offset=36 + local.get $17 + i32.const 10 + local.get $k|14 + i32.add + call $"~lib/map/KeyValue#set:value" + local.get $15 + local.set $17 + global.get $~lib/memory/__stack_pointer + local.get $17 + i32.store offset=28 + local.get $17 + call $"~lib/array/Array<~lib/map/KeyValue>#push" + drop + local.get $k|14 + i32.const 1 + i32.add + local.set $k|14 + br $for-loop|5 + end end - i32.mul - call $~lib/arraybuffer/ArrayBuffer#constructor - local.set $1 global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=8 - local.get $1 - call $"~lib/map/Map#set:entries" - local.get $this - local.set $1 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - local.get $1 - i32.const 4 - call $"~lib/map/Map#set:entriesCapacity" - local.get $this - local.set $1 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - local.get $1 i32.const 0 - call $"~lib/map/Map#set:entriesOffset" - local.get $this - local.set $1 + local.get $initialEntries + local.set $17 global.get $~lib/memory/__stack_pointer - local.get $1 + local.get $17 i32.store offset=4 - local.get $1 - i32.const 0 - call $"~lib/map/Map#set:entriesCount" - local.get $this - local.set $1 - global.get $~lib/memory/__stack_pointer - i32.const 12 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $1 - ) - (func $"~lib/map/Map#find" (param $this i32) (param $key i32) (param $hashCode i32) (result i32) - (local $entry i32) - (local $taggedNext i32) - (local $5 i32) - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.sub - global.set $~lib/memory/__stack_pointer - call $~stack_check - global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.store - local.get $this - local.set $5 - global.get $~lib/memory/__stack_pointer - local.get $5 + local.get $17 + call $"~lib/map/Map#constructor" + local.tee $map i32.store - local.get $5 - call $"~lib/map/Map#get:buckets" - local.get $hashCode - local.get $this - local.set $5 + local.get $map + local.set $17 global.get $~lib/memory/__stack_pointer - local.get $5 - i32.store - local.get $5 - call $"~lib/map/Map#get:bucketsMask" - i32.and - i32.const 4 - i32.mul - i32.add - i32.load - local.set $entry - loop $while-continue|0 - local.get $entry + local.get $17 + i32.store offset=4 + local.get $17 + call $"~lib/map/Map#get:size" + i32.const 100 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 752 + i32.const 74 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + i32.const 0 + local.set $k|16 + loop $for-loop|6 + local.get $k|16 + i32.const 100 + i32.lt_s if - local.get $entry - call $"~lib/map/MapEntry#get:taggedNext" - local.set $taggedNext - local.get $taggedNext - i32.const 1 - i32.and + local.get $map + local.set $17 + global.get $~lib/memory/__stack_pointer + local.get $17 + i32.store offset=4 + local.get $17 + local.get $k|16 + call $"~lib/map/Map#has" i32.eqz - if (result i32) - local.get $entry - call $"~lib/map/MapEntry#get:key" - i32.const 65535 - i32.and - local.get $key - i32.const 65535 - i32.and - i32.eq - else + if i32.const 0 + i32.const 752 + i32.const 76 + i32.const 5 + call $~lib/builtins/abort + unreachable end + local.get $map + local.set $17 + global.get $~lib/memory/__stack_pointer + local.get $17 + i32.store offset=4 + local.get $17 + local.get $k|16 + call $"~lib/map/Map#get" + i32.const 10 + local.get $k|16 + i32.add + i32.eq + i32.eqz if - local.get $entry - local.set $5 - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $5 - return + i32.const 0 + i32.const 752 + i32.const 77 + i32.const 5 + call $~lib/builtins/abort + unreachable end - local.get $taggedNext + local.get $map + local.set $17 + global.get $~lib/memory/__stack_pointer + local.get $17 + i32.store offset=4 + local.get $17 + local.get $k|16 + call $"~lib/map/Map#delete" + drop + local.get $map + local.set $17 + global.get $~lib/memory/__stack_pointer + local.get $17 + i32.store offset=4 + local.get $17 + local.get $k|16 + call $"~lib/map/Map#has" + i32.eqz + i32.eqz + if + i32.const 0 + i32.const 752 + i32.const 79 + i32.const 5 + call $~lib/builtins/abort + unreachable + end + local.get $k|16 i32.const 1 - i32.const -1 - i32.xor - i32.and - local.set $entry - br $while-continue|0 + i32.add + local.set $k|16 + br $for-loop|6 end end + local.get $map + local.set $17 + global.get $~lib/memory/__stack_pointer + local.get $17 + i32.store offset=4 + local.get $17 + call $"~lib/map/Map#get:size" i32.const 0 - local.set $5 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 752 + i32.const 81 + i32.const 3 + call $~lib/builtins/abort + unreachable + end global.get $~lib/memory/__stack_pointer - i32.const 4 + i32.const 40 i32.add global.set $~lib/memory/__stack_pointer - local.get $5 - return ) - (func $"~lib/map/Map#has" (param $this i32) (param $key i32) (result i32) - (local $2 i32) + (func $"~lib/array/Array<~lib/map/KeyValue>#get:length" (param $this i32) (result i32) + (local $1 i32) global.get $~lib/memory/__stack_pointer i32.const 4 i32.sub @@ -14970,23 +19149,18 @@ i32.const 0 i32.store local.get $this - local.set $2 + local.set $1 global.get $~lib/memory/__stack_pointer - local.get $2 + local.get $1 i32.store - local.get $2 - local.get $key - local.get $key - call $~lib/util/hash/HASH - call $"~lib/map/Map#find" - i32.const 0 - i32.ne - local.set $2 + local.get $1 + call $"~lib/array/Array<~lib/map/KeyValue>#get:length_" + local.set $1 global.get $~lib/memory/__stack_pointer i32.const 4 i32.add global.set $~lib/memory/__stack_pointer - local.get $2 + local.get $1 return ) (func $"~lib/map/Map#rehash" (param $this i32) (param $newBucketsMask i32) @@ -15035,9 +19209,9 @@ global.get $~lib/memory/__stack_pointer i32.const 0 local.get $newEntriesCapacity - block $"~lib/map/ENTRY_SIZE|inlined.1" (result i32) + block $"~lib/map/ENTRY_SIZE|inlined.0" (result i32) i32.const 12 - br $"~lib/map/ENTRY_SIZE|inlined.1" + br $"~lib/map/ENTRY_SIZE|inlined.0" end i32.mul call $~lib/arraybuffer/ArrayBuffer#constructor @@ -15059,9 +19233,9 @@ i32.store offset=8 local.get $14 call $"~lib/map/Map#get:entriesOffset" - block $"~lib/map/ENTRY_SIZE|inlined.2" (result i32) + block $"~lib/map/ENTRY_SIZE|inlined.1" (result i32) i32.const 12 - br $"~lib/map/ENTRY_SIZE|inlined.2" + br $"~lib/map/ENTRY_SIZE|inlined.1" end i32.mul i32.add @@ -15112,17 +19286,17 @@ local.get $newPtr i32.store local.get $newPtr - block $"~lib/map/ENTRY_SIZE|inlined.3" (result i32) + block $"~lib/map/ENTRY_SIZE|inlined.2" (result i32) i32.const 12 - br $"~lib/map/ENTRY_SIZE|inlined.3" + br $"~lib/map/ENTRY_SIZE|inlined.2" end i32.add local.set $newPtr end local.get $oldPtr - block $"~lib/map/ENTRY_SIZE|inlined.4" (result i32) + block $"~lib/map/ENTRY_SIZE|inlined.3" (result i32) i32.const 12 - br $"~lib/map/ENTRY_SIZE|inlined.4" + br $"~lib/map/ENTRY_SIZE|inlined.3" end i32.add local.set $oldPtr @@ -15190,6 +19364,554 @@ i32.add global.set $~lib/memory/__stack_pointer ) + (func $"~lib/array/Array<~lib/map/KeyValue>#__get" (param $this i32) (param $index i32) (result i32) + (local $value i32) + (local $3 i32) + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.sub + global.set $~lib/memory/__stack_pointer + call $~stack_check + global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store + local.get $index + local.get $this + local.set $3 + global.get $~lib/memory/__stack_pointer + local.get $3 + i32.store + local.get $3 + call $"~lib/array/Array<~lib/map/KeyValue>#get:length_" + i32.ge_u + if + i32.const 336 + i32.const 544 + i32.const 114 + i32.const 42 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + local.get $this + local.set $3 + global.get $~lib/memory/__stack_pointer + local.get $3 + i32.store + local.get $3 + call $"~lib/array/Array<~lib/map/KeyValue>#get:dataStart" + local.get $index + i32.const 2 + i32.shl + i32.add + i32.load + local.tee $value + i32.store offset=4 + i32.const 1 + drop + i32.const 0 + i32.eqz + drop + local.get $value + i32.eqz + if + i32.const 592 + i32.const 544 + i32.const 118 + i32.const 40 + call $~lib/builtins/abort + unreachable + end + local.get $value + local.set $3 + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $3 + return + ) + (func $"~lib/map/Map#find" (param $this i32) (param $key i32) (param $hashCode i32) (result i32) + (local $entry i32) + (local $taggedNext i32) + (local $5 i32) + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.sub + global.set $~lib/memory/__stack_pointer + call $~stack_check + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store + local.get $this + local.set $5 + global.get $~lib/memory/__stack_pointer + local.get $5 + i32.store + local.get $5 + call $"~lib/map/Map#get:buckets" + local.get $hashCode + local.get $this + local.set $5 + global.get $~lib/memory/__stack_pointer + local.get $5 + i32.store + local.get $5 + call $"~lib/map/Map#get:bucketsMask" + i32.and + i32.const 4 + i32.mul + i32.add + i32.load + local.set $entry + loop $while-continue|0 + local.get $entry + if + local.get $entry + call $"~lib/map/MapEntry#get:taggedNext" + local.set $taggedNext + local.get $taggedNext + i32.const 1 + i32.and + i32.eqz + if (result i32) + local.get $entry + call $"~lib/map/MapEntry#get:key" + i32.const 65535 + i32.and + local.get $key + i32.const 65535 + i32.and + i32.eq + else + i32.const 0 + end + if + local.get $entry + local.set $5 + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $5 + return + end + local.get $taggedNext + i32.const 1 + i32.const -1 + i32.xor + i32.and + local.set $entry + br $while-continue|0 + end + end + i32.const 0 + local.set $5 + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $5 + return + ) + (func $"~lib/map/Map#constructor" (param $this i32) (param $initialEntries i32) (result i32) + (local $entriesLength i32) + (local $i i32) + (local $key i32) + (local $value i32) + (local $hashCode i32) + (local $entry i32) + (local $entries i32) + (local $9 i32) + (local $entry|10 i32) + (local $bucketPtrBase i32) + (local $12 i32) + global.get $~lib/memory/__stack_pointer + i32.const 16 + i32.sub + global.set $~lib/memory/__stack_pointer + call $~stack_check + global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store + global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store offset=8 + local.get $this + i32.eqz + if + global.get $~lib/memory/__stack_pointer + i32.const 24 + i32.const 29 + call $~lib/rt/itcms/__new + local.tee $this + i32.store + end + local.get $this + local.set $12 + global.get $~lib/memory/__stack_pointer + local.get $12 + i32.store offset=4 + local.get $12 + i32.const 0 + i32.const 4 + i32.const 4 + i32.mul + call $~lib/arraybuffer/ArrayBuffer#constructor + local.set $12 + global.get $~lib/memory/__stack_pointer + local.get $12 + i32.store offset=8 + local.get $12 + call $"~lib/map/Map#set:buckets" + local.get $this + local.set $12 + global.get $~lib/memory/__stack_pointer + local.get $12 + i32.store offset=4 + local.get $12 + i32.const 4 + i32.const 1 + i32.sub + call $"~lib/map/Map#set:bucketsMask" + local.get $this + local.set $12 + global.get $~lib/memory/__stack_pointer + local.get $12 + i32.store offset=4 + local.get $12 + i32.const 0 + i32.const 4 + block $"~lib/map/ENTRY_SIZE|inlined.5" (result i32) + i32.const 12 + br $"~lib/map/ENTRY_SIZE|inlined.5" + end + i32.mul + call $~lib/arraybuffer/ArrayBuffer#constructor + local.set $12 + global.get $~lib/memory/__stack_pointer + local.get $12 + i32.store offset=8 + local.get $12 + call $"~lib/map/Map#set:entries" + local.get $this + local.set $12 + global.get $~lib/memory/__stack_pointer + local.get $12 + i32.store offset=4 + local.get $12 + i32.const 4 + call $"~lib/map/Map#set:entriesCapacity" + local.get $this + local.set $12 + global.get $~lib/memory/__stack_pointer + local.get $12 + i32.store offset=4 + local.get $12 + i32.const 0 + call $"~lib/map/Map#set:entriesOffset" + local.get $this + local.set $12 + global.get $~lib/memory/__stack_pointer + local.get $12 + i32.store offset=4 + local.get $12 + i32.const 0 + call $"~lib/map/Map#set:entriesCount" + local.get $initialEntries + local.set $12 + global.get $~lib/memory/__stack_pointer + local.get $12 + i32.store offset=4 + local.get $12 + call $"~lib/array/Array<~lib/map/KeyValue>#get:length" + local.set $entriesLength + local.get $entriesLength + i32.const 0 + i32.gt_s + if + local.get $entriesLength + local.get $this + local.set $12 + global.get $~lib/memory/__stack_pointer + local.get $12 + i32.store offset=4 + local.get $12 + call $"~lib/map/Map#get:entriesCapacity" + i32.ge_s + if + local.get $this + local.set $12 + global.get $~lib/memory/__stack_pointer + local.get $12 + i32.store offset=4 + local.get $12 + local.get $entriesLength + call $"~lib/map/Map#set:bucketsMask" + end + local.get $this + local.set $12 + global.get $~lib/memory/__stack_pointer + local.get $12 + i32.store offset=4 + local.get $12 + local.get $this + local.set $12 + global.get $~lib/memory/__stack_pointer + local.get $12 + i32.store offset=8 + local.get $12 + call $"~lib/map/Map#get:bucketsMask" + i32.const 1 + i32.shl + i32.const 1 + i32.or + call $"~lib/map/Map#rehash" + i32.const 0 + local.set $i + loop $for-loop|0 + local.get $i + local.get $entriesLength + i32.lt_s + if + local.get $initialEntries + local.set $12 + global.get $~lib/memory/__stack_pointer + local.get $12 + i32.store offset=8 + local.get $12 + local.get $i + call $"~lib/array/Array<~lib/map/KeyValue>#__get" + local.set $12 + global.get $~lib/memory/__stack_pointer + local.get $12 + i32.store offset=4 + local.get $12 + call $"~lib/map/KeyValue#get:key" + local.set $key + local.get $initialEntries + local.set $12 + global.get $~lib/memory/__stack_pointer + local.get $12 + i32.store offset=8 + local.get $12 + local.get $i + call $"~lib/array/Array<~lib/map/KeyValue>#__get" + local.set $12 + global.get $~lib/memory/__stack_pointer + local.get $12 + i32.store offset=4 + local.get $12 + call $"~lib/map/KeyValue#get:value" + local.set $value + local.get $key + call $~lib/util/hash/HASH + local.set $hashCode + local.get $this + local.set $12 + global.get $~lib/memory/__stack_pointer + local.get $12 + i32.store offset=4 + local.get $12 + local.get $key + local.get $hashCode + call $"~lib/map/Map#find" + local.set $entry + local.get $entry + if + local.get $entry + local.get $value + call $"~lib/map/MapEntry#set:value" + i32.const 0 + drop + else + global.get $~lib/memory/__stack_pointer + local.get $this + local.set $12 + global.get $~lib/memory/__stack_pointer + local.get $12 + i32.store offset=4 + local.get $12 + call $"~lib/map/Map#get:entries" + local.tee $entries + i32.store offset=12 + local.get $entries + local.get $this + local.set $12 + global.get $~lib/memory/__stack_pointer + local.get $12 + i32.store offset=4 + local.get $12 + local.get $this + local.set $12 + global.get $~lib/memory/__stack_pointer + local.get $12 + i32.store offset=8 + local.get $12 + call $"~lib/map/Map#get:entriesOffset" + local.tee $9 + i32.const 1 + i32.add + call $"~lib/map/Map#set:entriesOffset" + local.get $9 + block $"~lib/map/ENTRY_SIZE|inlined.4" (result i32) + i32.const 12 + br $"~lib/map/ENTRY_SIZE|inlined.4" + end + i32.mul + i32.add + local.set $entry|10 + local.get $entry|10 + local.get $key + call $"~lib/map/MapEntry#set:key" + i32.const 0 + drop + local.get $entry|10 + local.get $value + call $"~lib/map/MapEntry#set:value" + i32.const 0 + drop + local.get $this + local.set $12 + global.get $~lib/memory/__stack_pointer + local.get $12 + i32.store offset=4 + local.get $12 + local.get $this + local.set $12 + global.get $~lib/memory/__stack_pointer + local.get $12 + i32.store offset=8 + local.get $12 + call $"~lib/map/Map#get:entriesCount" + i32.const 1 + i32.add + call $"~lib/map/Map#set:entriesCount" + local.get $this + local.set $12 + global.get $~lib/memory/__stack_pointer + local.get $12 + i32.store offset=4 + local.get $12 + call $"~lib/map/Map#get:buckets" + local.get $hashCode + local.get $this + local.set $12 + global.get $~lib/memory/__stack_pointer + local.get $12 + i32.store offset=4 + local.get $12 + call $"~lib/map/Map#get:bucketsMask" + i32.and + i32.const 4 + i32.mul + i32.add + local.set $bucketPtrBase + local.get $entry|10 + local.get $bucketPtrBase + i32.load + call $"~lib/map/MapEntry#set:taggedNext" + local.get $bucketPtrBase + local.get $entry|10 + i32.store + end + local.get $i + i32.const 1 + i32.add + local.set $i + br $for-loop|0 + end + end + end + local.get $this + local.set $12 + global.get $~lib/memory/__stack_pointer + i32.const 16 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $12 + ) + (func $"~lib/map/Map#constructor@varargs" (param $this i32) (param $initialEntries i32) (result i32) + (local $2 i32) + (local $3 i32) + global.get $~lib/memory/__stack_pointer + i32.const 12 + i32.sub + global.set $~lib/memory/__stack_pointer + call $~stack_check + global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store offset=8 + block $1of1 + block $0of1 + block $outOfRange + global.get $~argumentsLength + br_table $0of1 $1of1 $outOfRange + end + unreachable + end + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.const 2 + i32.const 31 + i32.const 1200 + call $~lib/rt/__newArray + local.tee $initialEntries + i32.store + end + local.get $this + local.set $3 + global.get $~lib/memory/__stack_pointer + local.get $3 + i32.store offset=4 + local.get $3 + local.get $initialEntries + local.set $3 + global.get $~lib/memory/__stack_pointer + local.get $3 + i32.store offset=8 + local.get $3 + call $"~lib/map/Map#constructor" + local.set $3 + global.get $~lib/memory/__stack_pointer + i32.const 12 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $3 + ) + (func $"~lib/map/Map#has" (param $this i32) (param $key i32) (result i32) + (local $2 i32) + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.sub + global.set $~lib/memory/__stack_pointer + call $~stack_check + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store + local.get $this + local.set $2 + global.get $~lib/memory/__stack_pointer + local.get $2 + i32.store + local.get $2 + local.get $key + local.get $key + call $~lib/util/hash/HASH + call $"~lib/map/Map#find" + i32.const 0 + i32.ne + local.set $2 + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $2 + return + ) (func $"~lib/map/Map#set" (param $this i32) (param $key i32) (param $value i32) (result i32) (local $hashCode i32) (local $entry i32) @@ -15322,9 +20044,9 @@ i32.add call $"~lib/map/Map#set:entriesOffset" local.get $6 - block $"~lib/map/ENTRY_SIZE|inlined.5" (result i32) + block $"~lib/map/ENTRY_SIZE|inlined.6" (result i32) i32.const 12 - br $"~lib/map/ENTRY_SIZE|inlined.5" + br $"~lib/map/ENTRY_SIZE|inlined.6" end i32.mul i32.add @@ -15417,9 +20139,9 @@ local.get $entry i32.eqz if - i32.const 592 - i32.const 656 - i32.const 105 + i32.const 800 + i32.const 864 + i32.const 148 i32.const 17 call $~lib/builtins/abort unreachable @@ -15481,7 +20203,7 @@ if global.get $~lib/memory/__stack_pointer i32.const 16 - i32.const 16 + i32.const 32 call $~lib/rt/itcms/__new local.tee $this i32.store @@ -15524,8 +20246,8 @@ i32.shr_u i32.gt_u if - i32.const 432 - i32.const 704 + i32.const 32 + i32.const 544 i32.const 70 i32.const 60 call $~lib/builtins/abort @@ -15621,8 +20343,8 @@ i32.const 0 i32.lt_s if - i32.const 224 - i32.const 704 + i32.const 336 + i32.const 544 i32.const 130 i32.const 22 call $~lib/builtins/abort @@ -15744,9 +20466,9 @@ if local.get $start local.get $i - block $"~lib/map/ENTRY_SIZE|inlined.6" (result i32) + block $"~lib/map/ENTRY_SIZE|inlined.7" (result i32) i32.const 12 - br $"~lib/map/ENTRY_SIZE|inlined.6" + br $"~lib/map/ENTRY_SIZE|inlined.7" end i32.mul i32.add @@ -15847,9 +20569,9 @@ if local.get $start local.get $i - block $"~lib/map/ENTRY_SIZE|inlined.7" (result i32) + block $"~lib/map/ENTRY_SIZE|inlined.8" (result i32) i32.const 12 - br $"~lib/map/ENTRY_SIZE|inlined.7" + br $"~lib/map/ENTRY_SIZE|inlined.8" end i32.mul i32.add @@ -15857,309 +20579,72 @@ local.get $entry call $"~lib/map/MapEntry#get:taggedNext" i32.const 1 - i32.and - i32.eqz - if - local.get $values - local.set $8 - global.get $~lib/memory/__stack_pointer - local.get $8 - i32.store - local.get $8 - local.get $length - local.tee $7 - i32.const 1 - i32.add - local.set $length - local.get $7 - local.get $entry - call $"~lib/map/MapEntry#get:value" - call $~lib/array/Array#__set - end - local.get $i - i32.const 1 - i32.add - local.set $i - br $for-loop|0 - end - end - local.get $values - local.set $8 - global.get $~lib/memory/__stack_pointer - local.get $8 - i32.store - local.get $8 - local.get $length - call $~lib/array/Array#set:length - local.get $values - local.set $8 - global.get $~lib/memory/__stack_pointer - i32.const 8 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $8 - return - ) - (func $"~lib/map/Map#constructor" (param $this i32) (result i32) - (local $1 i32) - global.get $~lib/memory/__stack_pointer - i32.const 12 - i32.sub - global.set $~lib/memory/__stack_pointer - call $~stack_check - global.get $~lib/memory/__stack_pointer - i64.const 0 - i64.store - global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.store offset=8 - local.get $this - i32.eqz - if - global.get $~lib/memory/__stack_pointer - i32.const 24 - i32.const 17 - call $~lib/rt/itcms/__new - local.tee $this - i32.store - end - local.get $this - local.set $1 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - local.get $1 - i32.const 0 - i32.const 4 - i32.const 4 - i32.mul - call $~lib/arraybuffer/ArrayBuffer#constructor - local.set $1 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=8 - local.get $1 - call $"~lib/map/Map#set:buckets" - local.get $this - local.set $1 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - local.get $1 - i32.const 4 - i32.const 1 - i32.sub - call $"~lib/map/Map#set:bucketsMask" - local.get $this - local.set $1 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - local.get $1 - i32.const 0 - i32.const 4 - block $"~lib/map/ENTRY_SIZE|inlined.0" (result i32) - i32.const 8 - br $"~lib/map/ENTRY_SIZE|inlined.0" - end - i32.mul - call $~lib/arraybuffer/ArrayBuffer#constructor - local.set $1 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=8 - local.get $1 - call $"~lib/map/Map#set:entries" - local.get $this - local.set $1 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - local.get $1 - i32.const 4 - call $"~lib/map/Map#set:entriesCapacity" - local.get $this - local.set $1 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - local.get $1 - i32.const 0 - call $"~lib/map/Map#set:entriesOffset" - local.get $this - local.set $1 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - local.get $1 - i32.const 0 - call $"~lib/map/Map#set:entriesCount" - local.get $this - local.set $1 - global.get $~lib/memory/__stack_pointer - i32.const 12 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $1 - ) - (func $~lib/array/Array#get:length (param $this i32) (result i32) - (local $1 i32) - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.sub - global.set $~lib/memory/__stack_pointer - call $~stack_check - global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.store - local.get $this - local.set $1 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store - local.get $1 - call $~lib/array/Array#get:length_ - local.set $1 - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $1 - return - ) - (func $~lib/array/Array#__get (param $this i32) (param $index i32) (result i32) - (local $value i32) - (local $3 i32) - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.sub - global.set $~lib/memory/__stack_pointer - call $~stack_check - global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.store - local.get $index - local.get $this - local.set $3 - global.get $~lib/memory/__stack_pointer - local.get $3 - i32.store - local.get $3 - call $~lib/array/Array#get:length_ - i32.ge_u - if - i32.const 224 - i32.const 704 - i32.const 114 - i32.const 42 - call $~lib/builtins/abort - unreachable - end - local.get $this - local.set $3 - global.get $~lib/memory/__stack_pointer - local.get $3 - i32.store - local.get $3 - call $~lib/array/Array#get:dataStart - local.get $index - i32.const 1 - i32.shl - i32.add - i32.load16_u - local.set $value - i32.const 0 - drop - local.get $value - local.set $3 - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $3 - return - ) - (func $"~lib/map/Map#find" (param $this i32) (param $key i32) (param $hashCode i32) (result i32) - (local $entry i32) - (local $taggedNext i32) - (local $5 i32) - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.sub - global.set $~lib/memory/__stack_pointer - call $~stack_check - global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.store - local.get $this - local.set $5 - global.get $~lib/memory/__stack_pointer - local.get $5 - i32.store - local.get $5 - call $"~lib/map/Map#get:buckets" - local.get $hashCode - local.get $this - local.set $5 - global.get $~lib/memory/__stack_pointer - local.get $5 - i32.store - local.get $5 - call $"~lib/map/Map#get:bucketsMask" - i32.and - i32.const 4 - i32.mul - i32.add - i32.load - local.set $entry - loop $while-continue|0 - local.get $entry - if - local.get $entry - call $"~lib/map/MapEntry#get:taggedNext" - local.set $taggedNext - local.get $taggedNext - i32.const 1 - i32.and - i32.eqz - if (result i32) - local.get $entry - call $"~lib/map/MapEntry#get:key" - i32.const 65535 - i32.and - local.get $key - i32.const 65535 - i32.and - i32.eq - else - i32.const 0 - end + i32.and + i32.eqz if - local.get $entry - local.set $5 + local.get $values + local.set $8 global.get $~lib/memory/__stack_pointer - i32.const 4 + local.get $8 + i32.store + local.get $8 + local.get $length + local.tee $7 + i32.const 1 i32.add - global.set $~lib/memory/__stack_pointer - local.get $5 - return + local.set $length + local.get $7 + local.get $entry + call $"~lib/map/MapEntry#get:value" + call $~lib/array/Array#__set end - local.get $taggedNext + local.get $i i32.const 1 - i32.const -1 - i32.xor - i32.and - local.set $entry - br $while-continue|0 + i32.add + local.set $i + br $for-loop|0 end end + local.get $values + local.set $8 + global.get $~lib/memory/__stack_pointer + local.get $8 + i32.store + local.get $8 + local.get $length + call $~lib/array/Array#set:length + local.get $values + local.set $8 + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $8 + return + ) + (func $"~lib/array/Array<~lib/map/KeyValue>#get:length" (param $this i32) (result i32) + (local $1 i32) + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.sub + global.set $~lib/memory/__stack_pointer + call $~stack_check + global.get $~lib/memory/__stack_pointer i32.const 0 - local.set $5 + i32.store + local.get $this + local.set $1 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store + local.get $1 + call $"~lib/array/Array<~lib/map/KeyValue>#get:length_" + local.set $1 global.get $~lib/memory/__stack_pointer i32.const 4 i32.add global.set $~lib/memory/__stack_pointer - local.get $5 + local.get $1 return ) (func $"~lib/map/Map#rehash" (param $this i32) (param $newBucketsMask i32) @@ -16208,9 +20693,9 @@ global.get $~lib/memory/__stack_pointer i32.const 0 local.get $newEntriesCapacity - block $"~lib/map/ENTRY_SIZE|inlined.1" (result i32) + block $"~lib/map/ENTRY_SIZE|inlined.0" (result i32) i32.const 8 - br $"~lib/map/ENTRY_SIZE|inlined.1" + br $"~lib/map/ENTRY_SIZE|inlined.0" end i32.mul call $~lib/arraybuffer/ArrayBuffer#constructor @@ -16232,9 +20717,9 @@ i32.store offset=8 local.get $14 call $"~lib/map/Map#get:entriesOffset" - block $"~lib/map/ENTRY_SIZE|inlined.2" (result i32) + block $"~lib/map/ENTRY_SIZE|inlined.1" (result i32) i32.const 8 - br $"~lib/map/ENTRY_SIZE|inlined.2" + br $"~lib/map/ENTRY_SIZE|inlined.1" end i32.mul i32.add @@ -16285,17 +20770,17 @@ local.get $newPtr i32.store local.get $newPtr - block $"~lib/map/ENTRY_SIZE|inlined.3" (result i32) + block $"~lib/map/ENTRY_SIZE|inlined.2" (result i32) i32.const 8 - br $"~lib/map/ENTRY_SIZE|inlined.3" + br $"~lib/map/ENTRY_SIZE|inlined.2" end i32.add local.set $newPtr end local.get $oldPtr - block $"~lib/map/ENTRY_SIZE|inlined.4" (result i32) + block $"~lib/map/ENTRY_SIZE|inlined.3" (result i32) i32.const 8 - br $"~lib/map/ENTRY_SIZE|inlined.4" + br $"~lib/map/ENTRY_SIZE|inlined.3" end i32.add local.set $oldPtr @@ -16363,6 +20848,601 @@ i32.add global.set $~lib/memory/__stack_pointer ) + (func $"~lib/array/Array<~lib/map/KeyValue>#__get" (param $this i32) (param $index i32) (result i32) + (local $value i32) + (local $3 i32) + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.sub + global.set $~lib/memory/__stack_pointer + call $~stack_check + global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store + local.get $index + local.get $this + local.set $3 + global.get $~lib/memory/__stack_pointer + local.get $3 + i32.store + local.get $3 + call $"~lib/array/Array<~lib/map/KeyValue>#get:length_" + i32.ge_u + if + i32.const 336 + i32.const 544 + i32.const 114 + i32.const 42 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + local.get $this + local.set $3 + global.get $~lib/memory/__stack_pointer + local.get $3 + i32.store + local.get $3 + call $"~lib/array/Array<~lib/map/KeyValue>#get:dataStart" + local.get $index + i32.const 2 + i32.shl + i32.add + i32.load + local.tee $value + i32.store offset=4 + i32.const 1 + drop + i32.const 0 + i32.eqz + drop + local.get $value + i32.eqz + if + i32.const 592 + i32.const 544 + i32.const 118 + i32.const 40 + call $~lib/builtins/abort + unreachable + end + local.get $value + local.set $3 + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $3 + return + ) + (func $"~lib/map/Map#find" (param $this i32) (param $key i32) (param $hashCode i32) (result i32) + (local $entry i32) + (local $taggedNext i32) + (local $5 i32) + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.sub + global.set $~lib/memory/__stack_pointer + call $~stack_check + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store + local.get $this + local.set $5 + global.get $~lib/memory/__stack_pointer + local.get $5 + i32.store + local.get $5 + call $"~lib/map/Map#get:buckets" + local.get $hashCode + local.get $this + local.set $5 + global.get $~lib/memory/__stack_pointer + local.get $5 + i32.store + local.get $5 + call $"~lib/map/Map#get:bucketsMask" + i32.and + i32.const 4 + i32.mul + i32.add + i32.load + local.set $entry + loop $while-continue|0 + local.get $entry + if + local.get $entry + call $"~lib/map/MapEntry#get:taggedNext" + local.set $taggedNext + local.get $taggedNext + i32.const 1 + i32.and + i32.eqz + if (result i32) + local.get $entry + call $"~lib/map/MapEntry#get:key" + i32.const 65535 + i32.and + local.get $key + i32.const 65535 + i32.and + i32.eq + else + i32.const 0 + end + if + local.get $entry + local.set $5 + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $5 + return + end + local.get $taggedNext + i32.const 1 + i32.const -1 + i32.xor + i32.and + local.set $entry + br $while-continue|0 + end + end + i32.const 0 + local.set $5 + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $5 + return + ) + (func $"~lib/map/Map#constructor" (param $this i32) (param $initialEntries i32) (result i32) + (local $entriesLength i32) + (local $i i32) + (local $key i32) + (local $value i32) + (local $hashCode i32) + (local $entry i32) + (local $entries i32) + (local $9 i32) + (local $entry|10 i32) + (local $bucketPtrBase i32) + (local $12 i32) + global.get $~lib/memory/__stack_pointer + i32.const 16 + i32.sub + global.set $~lib/memory/__stack_pointer + call $~stack_check + global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store + global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store offset=8 + local.get $this + i32.eqz + if + global.get $~lib/memory/__stack_pointer + i32.const 24 + i32.const 33 + call $~lib/rt/itcms/__new + local.tee $this + i32.store + end + local.get $this + local.set $12 + global.get $~lib/memory/__stack_pointer + local.get $12 + i32.store offset=4 + local.get $12 + i32.const 0 + i32.const 4 + i32.const 4 + i32.mul + call $~lib/arraybuffer/ArrayBuffer#constructor + local.set $12 + global.get $~lib/memory/__stack_pointer + local.get $12 + i32.store offset=8 + local.get $12 + call $"~lib/map/Map#set:buckets" + local.get $this + local.set $12 + global.get $~lib/memory/__stack_pointer + local.get $12 + i32.store offset=4 + local.get $12 + i32.const 4 + i32.const 1 + i32.sub + call $"~lib/map/Map#set:bucketsMask" + local.get $this + local.set $12 + global.get $~lib/memory/__stack_pointer + local.get $12 + i32.store offset=4 + local.get $12 + i32.const 0 + i32.const 4 + block $"~lib/map/ENTRY_SIZE|inlined.5" (result i32) + i32.const 8 + br $"~lib/map/ENTRY_SIZE|inlined.5" + end + i32.mul + call $~lib/arraybuffer/ArrayBuffer#constructor + local.set $12 + global.get $~lib/memory/__stack_pointer + local.get $12 + i32.store offset=8 + local.get $12 + call $"~lib/map/Map#set:entries" + local.get $this + local.set $12 + global.get $~lib/memory/__stack_pointer + local.get $12 + i32.store offset=4 + local.get $12 + i32.const 4 + call $"~lib/map/Map#set:entriesCapacity" + local.get $this + local.set $12 + global.get $~lib/memory/__stack_pointer + local.get $12 + i32.store offset=4 + local.get $12 + i32.const 0 + call $"~lib/map/Map#set:entriesOffset" + local.get $this + local.set $12 + global.get $~lib/memory/__stack_pointer + local.get $12 + i32.store offset=4 + local.get $12 + i32.const 0 + call $"~lib/map/Map#set:entriesCount" + local.get $initialEntries + local.set $12 + global.get $~lib/memory/__stack_pointer + local.get $12 + i32.store offset=4 + local.get $12 + call $"~lib/array/Array<~lib/map/KeyValue>#get:length" + local.set $entriesLength + local.get $entriesLength + i32.const 0 + i32.gt_s + if + local.get $entriesLength + local.get $this + local.set $12 + global.get $~lib/memory/__stack_pointer + local.get $12 + i32.store offset=4 + local.get $12 + call $"~lib/map/Map#get:entriesCapacity" + i32.ge_s + if + local.get $this + local.set $12 + global.get $~lib/memory/__stack_pointer + local.get $12 + i32.store offset=4 + local.get $12 + local.get $entriesLength + call $"~lib/map/Map#set:bucketsMask" + end + local.get $this + local.set $12 + global.get $~lib/memory/__stack_pointer + local.get $12 + i32.store offset=4 + local.get $12 + local.get $this + local.set $12 + global.get $~lib/memory/__stack_pointer + local.get $12 + i32.store offset=8 + local.get $12 + call $"~lib/map/Map#get:bucketsMask" + i32.const 1 + i32.shl + i32.const 1 + i32.or + call $"~lib/map/Map#rehash" + i32.const 0 + local.set $i + loop $for-loop|0 + local.get $i + local.get $entriesLength + i32.lt_s + if + local.get $initialEntries + local.set $12 + global.get $~lib/memory/__stack_pointer + local.get $12 + i32.store offset=8 + local.get $12 + local.get $i + call $"~lib/array/Array<~lib/map/KeyValue>#__get" + local.set $12 + global.get $~lib/memory/__stack_pointer + local.get $12 + i32.store offset=4 + local.get $12 + call $"~lib/map/KeyValue#get:key" + local.set $key + local.get $initialEntries + local.set $12 + global.get $~lib/memory/__stack_pointer + local.get $12 + i32.store offset=8 + local.get $12 + local.get $i + call $"~lib/array/Array<~lib/map/KeyValue>#__get" + local.set $12 + global.get $~lib/memory/__stack_pointer + local.get $12 + i32.store offset=4 + local.get $12 + call $"~lib/map/KeyValue#get:value" + local.set $value + local.get $key + call $~lib/util/hash/HASH + local.set $hashCode + local.get $this + local.set $12 + global.get $~lib/memory/__stack_pointer + local.get $12 + i32.store offset=4 + local.get $12 + local.get $key + local.get $hashCode + call $"~lib/map/Map#find" + local.set $entry + local.get $entry + if + local.get $entry + local.get $value + call $"~lib/map/MapEntry#set:value" + i32.const 0 + drop + else + global.get $~lib/memory/__stack_pointer + local.get $this + local.set $12 + global.get $~lib/memory/__stack_pointer + local.get $12 + i32.store offset=4 + local.get $12 + call $"~lib/map/Map#get:entries" + local.tee $entries + i32.store offset=12 + local.get $entries + local.get $this + local.set $12 + global.get $~lib/memory/__stack_pointer + local.get $12 + i32.store offset=4 + local.get $12 + local.get $this + local.set $12 + global.get $~lib/memory/__stack_pointer + local.get $12 + i32.store offset=8 + local.get $12 + call $"~lib/map/Map#get:entriesOffset" + local.tee $9 + i32.const 1 + i32.add + call $"~lib/map/Map#set:entriesOffset" + local.get $9 + block $"~lib/map/ENTRY_SIZE|inlined.4" (result i32) + i32.const 8 + br $"~lib/map/ENTRY_SIZE|inlined.4" + end + i32.mul + i32.add + local.set $entry|10 + local.get $entry|10 + local.get $key + call $"~lib/map/MapEntry#set:key" + i32.const 0 + drop + local.get $entry|10 + local.get $value + call $"~lib/map/MapEntry#set:value" + i32.const 0 + drop + local.get $this + local.set $12 + global.get $~lib/memory/__stack_pointer + local.get $12 + i32.store offset=4 + local.get $12 + local.get $this + local.set $12 + global.get $~lib/memory/__stack_pointer + local.get $12 + i32.store offset=8 + local.get $12 + call $"~lib/map/Map#get:entriesCount" + i32.const 1 + i32.add + call $"~lib/map/Map#set:entriesCount" + local.get $this + local.set $12 + global.get $~lib/memory/__stack_pointer + local.get $12 + i32.store offset=4 + local.get $12 + call $"~lib/map/Map#get:buckets" + local.get $hashCode + local.get $this + local.set $12 + global.get $~lib/memory/__stack_pointer + local.get $12 + i32.store offset=4 + local.get $12 + call $"~lib/map/Map#get:bucketsMask" + i32.and + i32.const 4 + i32.mul + i32.add + local.set $bucketPtrBase + local.get $entry|10 + local.get $bucketPtrBase + i32.load + call $"~lib/map/MapEntry#set:taggedNext" + local.get $bucketPtrBase + local.get $entry|10 + i32.store + end + local.get $i + i32.const 1 + i32.add + local.set $i + br $for-loop|0 + end + end + end + local.get $this + local.set $12 + global.get $~lib/memory/__stack_pointer + i32.const 16 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $12 + ) + (func $"~lib/map/Map#constructor@varargs" (param $this i32) (param $initialEntries i32) (result i32) + (local $2 i32) + (local $3 i32) + global.get $~lib/memory/__stack_pointer + i32.const 12 + i32.sub + global.set $~lib/memory/__stack_pointer + call $~stack_check + global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store offset=8 + block $1of1 + block $0of1 + block $outOfRange + global.get $~argumentsLength + br_table $0of1 $1of1 $outOfRange + end + unreachable + end + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.const 2 + i32.const 35 + i32.const 1232 + call $~lib/rt/__newArray + local.tee $initialEntries + i32.store + end + local.get $this + local.set $3 + global.get $~lib/memory/__stack_pointer + local.get $3 + i32.store offset=4 + local.get $3 + local.get $initialEntries + local.set $3 + global.get $~lib/memory/__stack_pointer + local.get $3 + i32.store offset=8 + local.get $3 + call $"~lib/map/Map#constructor" + local.set $3 + global.get $~lib/memory/__stack_pointer + i32.const 12 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $3 + ) + (func $~lib/array/Array#get:length (param $this i32) (result i32) + (local $1 i32) + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.sub + global.set $~lib/memory/__stack_pointer + call $~stack_check + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store + local.get $this + local.set $1 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store + local.get $1 + call $~lib/array/Array#get:length_ + local.set $1 + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $1 + return + ) + (func $~lib/array/Array#__get (param $this i32) (param $index i32) (result i32) + (local $value i32) + (local $3 i32) + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.sub + global.set $~lib/memory/__stack_pointer + call $~stack_check + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store + local.get $index + local.get $this + local.set $3 + global.get $~lib/memory/__stack_pointer + local.get $3 + i32.store + local.get $3 + call $~lib/array/Array#get:length_ + i32.ge_u + if + i32.const 336 + i32.const 544 + i32.const 114 + i32.const 42 + call $~lib/builtins/abort + unreachable + end + local.get $this + local.set $3 + global.get $~lib/memory/__stack_pointer + local.get $3 + i32.store + local.get $3 + call $~lib/array/Array#get:dataStart + local.get $index + i32.const 1 + i32.shl + i32.add + i32.load16_u + local.set $value + i32.const 0 + drop + local.get $value + local.set $3 + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $3 + return + ) (func $"~lib/map/Map#set" (param $this i32) (param $key i32) (param $value i32) (result i32) (local $hashCode i32) (local $entry i32) @@ -16495,9 +21575,9 @@ i32.add call $"~lib/map/Map#set:entriesOffset" local.get $6 - block $"~lib/map/ENTRY_SIZE|inlined.5" (result i32) + block $"~lib/map/ENTRY_SIZE|inlined.6" (result i32) i32.const 8 - br $"~lib/map/ENTRY_SIZE|inlined.5" + br $"~lib/map/ENTRY_SIZE|inlined.6" end i32.mul i32.add @@ -16764,9 +21844,9 @@ local.get $1 i32.const 0 i32.const 4 - block $"~lib/map/ENTRY_SIZE|inlined.8" (result i32) + block $"~lib/map/ENTRY_SIZE|inlined.9" (result i32) i32.const 12 - br $"~lib/map/ENTRY_SIZE|inlined.8" + br $"~lib/map/ENTRY_SIZE|inlined.9" end i32.mul call $~lib/arraybuffer/ArrayBuffer#constructor @@ -16805,6 +21885,125 @@ i32.add global.set $~lib/memory/__stack_pointer ) + (func $"~lib/map/KeyValue#constructor" (param $this i32) (result i32) + (local $1 i32) + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.sub + global.set $~lib/memory/__stack_pointer + call $~stack_check + global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store + local.get $this + i32.eqz + if + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.const 30 + call $~lib/rt/itcms/__new + local.tee $this + i32.store + end + global.get $~lib/memory/__stack_pointer + local.get $this + local.set $1 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + local.get $1 + call $~lib/object/Object#constructor + local.tee $this + i32.store + local.get $this + local.set $1 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + local.get $1 + i32.const 0 + call $"~lib/map/KeyValue#set:key" + local.get $this + local.set $1 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + local.get $1 + i32.const 0 + call $"~lib/map/KeyValue#set:value" + local.get $this + local.set $1 + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $1 + ) + (func $"~lib/array/Array<~lib/map/KeyValue>#push" (param $this i32) (param $value i32) (result i32) + (local $oldLen i32) + (local $len i32) + (local $4 i32) + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.sub + global.set $~lib/memory/__stack_pointer + call $~stack_check + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store + local.get $this + local.set $4 + global.get $~lib/memory/__stack_pointer + local.get $4 + i32.store + local.get $4 + call $"~lib/array/Array<~lib/map/KeyValue>#get:length_" + local.set $oldLen + local.get $oldLen + i32.const 1 + i32.add + local.set $len + local.get $this + local.get $len + i32.const 2 + i32.const 1 + call $~lib/array/ensureCapacity + i32.const 1 + drop + local.get $this + local.set $4 + global.get $~lib/memory/__stack_pointer + local.get $4 + i32.store + local.get $4 + call $"~lib/array/Array<~lib/map/KeyValue>#get:dataStart" + local.get $oldLen + i32.const 2 + i32.shl + i32.add + local.get $value + i32.store + local.get $this + local.get $value + i32.const 1 + call $~lib/rt/itcms/__link + local.get $this + local.set $4 + global.get $~lib/memory/__stack_pointer + local.get $4 + i32.store + local.get $4 + local.get $len + call $"~lib/array/Array<~lib/map/KeyValue>#set:length_" + local.get $len + local.set $4 + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $4 + return + ) (func $"std/map/testNumeric" (local $map i32) (local $k i32) @@ -16819,18 +22018,26 @@ (local $k|10 i32) (local $k|11 i32) (local $12 i32) + (local $initialEntries i32) + (local $k|14 i32) + (local $15 i32) + (local $k|16 i32) + (local $17 i32) global.get $~lib/memory/__stack_pointer - i32.const 24 + i32.const 40 i32.sub global.set $~lib/memory/__stack_pointer call $~stack_check global.get $~lib/memory/__stack_pointer i32.const 0 - i32.const 24 + i32.const 40 memory.fill global.get $~lib/memory/__stack_pointer i32.const 0 - call $"~lib/map/Map#constructor" + i32.const 0 + global.set $~argumentsLength + i32.const 0 + call $"~lib/map/Map#constructor@varargs" local.tee $map i32.store i32.const 0 @@ -16841,29 +22048,29 @@ i32.lt_u if local.get $map - local.set $12 + local.set $17 global.get $~lib/memory/__stack_pointer - local.get $12 + local.get $17 i32.store offset=4 - local.get $12 + local.get $17 local.get $k call $"~lib/map/Map#has" i32.eqz i32.eqz if i32.const 0 - i32.const 544 - i32.const 6 + i32.const 752 + i32.const 7 i32.const 5 call $~lib/builtins/abort unreachable end local.get $map - local.set $12 + local.set $17 global.get $~lib/memory/__stack_pointer - local.get $12 + local.get $17 i32.store offset=4 - local.get $12 + local.get $17 local.get $k i32.const 10 local.get $k @@ -16871,28 +22078,28 @@ call $"~lib/map/Map#set" drop local.get $map - local.set $12 + local.set $17 global.get $~lib/memory/__stack_pointer - local.get $12 + local.get $17 i32.store offset=4 - local.get $12 + local.get $17 local.get $k call $"~lib/map/Map#has" i32.eqz if i32.const 0 - i32.const 544 - i32.const 8 + i32.const 752 + i32.const 9 i32.const 5 call $~lib/builtins/abort unreachable end local.get $map - local.set $12 + local.set $17 global.get $~lib/memory/__stack_pointer - local.get $12 + local.get $17 i32.store offset=4 - local.get $12 + local.get $17 local.get $k call $"~lib/map/Map#get" i32.const 10 @@ -16902,8 +22109,8 @@ i32.eqz if i32.const 0 - i32.const 544 - i32.const 9 + i32.const 752 + i32.const 10 i32.const 5 call $~lib/builtins/abort unreachable @@ -16916,19 +22123,19 @@ end end local.get $map - local.set $12 + local.set $17 global.get $~lib/memory/__stack_pointer - local.get $12 + local.get $17 i32.store offset=4 - local.get $12 + local.get $17 call $"~lib/map/Map#get:size" i32.const 100 i32.eq i32.eqz if i32.const 0 - i32.const 544 - i32.const 11 + i32.const 752 + i32.const 12 i32.const 3 call $~lib/builtins/abort unreachable @@ -16941,28 +22148,28 @@ i32.lt_u if local.get $map - local.set $12 + local.set $17 global.get $~lib/memory/__stack_pointer - local.get $12 + local.get $17 i32.store offset=4 - local.get $12 + local.get $17 local.get $k|2 call $"~lib/map/Map#has" i32.eqz if i32.const 0 - i32.const 544 - i32.const 15 + i32.const 752 + i32.const 16 i32.const 5 call $~lib/builtins/abort unreachable end local.get $map - local.set $12 + local.set $17 global.get $~lib/memory/__stack_pointer - local.get $12 + local.get $17 i32.store offset=4 - local.get $12 + local.get $17 local.get $k|2 call $"~lib/map/Map#get" i32.const 10 @@ -16972,18 +22179,18 @@ i32.eqz if i32.const 0 - i32.const 544 - i32.const 16 + i32.const 752 + i32.const 17 i32.const 5 call $~lib/builtins/abort unreachable end local.get $map - local.set $12 + local.set $17 global.get $~lib/memory/__stack_pointer - local.get $12 + local.get $17 i32.store offset=4 - local.get $12 + local.get $17 local.get $k|2 i32.const 20 local.get $k|2 @@ -16991,28 +22198,28 @@ call $"~lib/map/Map#set" drop local.get $map - local.set $12 + local.set $17 global.get $~lib/memory/__stack_pointer - local.get $12 + local.get $17 i32.store offset=4 - local.get $12 + local.get $17 local.get $k|2 call $"~lib/map/Map#has" i32.eqz if i32.const 0 - i32.const 544 - i32.const 18 + i32.const 752 + i32.const 19 i32.const 5 call $~lib/builtins/abort unreachable end local.get $map - local.set $12 + local.set $17 global.get $~lib/memory/__stack_pointer - local.get $12 + local.get $17 i32.store offset=4 - local.get $12 + local.get $17 local.get $k|2 call $"~lib/map/Map#get" i32.const 20 @@ -17022,8 +22229,8 @@ i32.eqz if i32.const 0 - i32.const 544 - i32.const 19 + i32.const 752 + i32.const 20 i32.const 5 call $~lib/builtins/abort unreachable @@ -17036,51 +22243,57 @@ end end local.get $map - local.set $12 + local.set $17 global.get $~lib/memory/__stack_pointer - local.get $12 + local.get $17 i32.store offset=4 - local.get $12 + local.get $17 call $"~lib/map/Map#get:size" i32.const 100 i32.eq i32.eqz if i32.const 0 - i32.const 544 - i32.const 21 + i32.const 752 + i32.const 22 i32.const 3 call $~lib/builtins/abort unreachable end global.get $~lib/memory/__stack_pointer local.get $map - local.set $12 + local.set $17 global.get $~lib/memory/__stack_pointer - local.get $12 + local.get $17 i32.store offset=4 - local.get $12 + local.get $17 call $"~lib/map/Map#keys" local.tee $keys i32.store offset=8 global.get $~lib/memory/__stack_pointer local.get $map - local.set $12 + local.set $17 global.get $~lib/memory/__stack_pointer - local.get $12 + local.get $17 i32.store offset=4 - local.get $12 + local.get $17 call $"~lib/map/Map#values" local.tee $vals i32.store offset=12 global.get $~lib/memory/__stack_pointer i32.const 0 - call $"~lib/map/Map#constructor" + i32.const 0 + global.set $~argumentsLength + i32.const 0 + call $"~lib/map/Map#constructor@varargs" local.tee $keyMap i32.store offset=16 global.get $~lib/memory/__stack_pointer i32.const 0 - call $"~lib/map/Map#constructor" + i32.const 0 + global.set $~argumentsLength + i32.const 0 + call $"~lib/map/Map#constructor@varargs" local.tee $valMap i32.store offset=20 i32.const 0 @@ -17088,55 +22301,55 @@ loop $for-loop|2 local.get $index local.get $keys - local.set $12 + local.set $17 global.get $~lib/memory/__stack_pointer - local.get $12 + local.get $17 i32.store offset=4 - local.get $12 + local.get $17 call $~lib/array/Array#get:length i32.lt_s if local.get $keys - local.set $12 + local.set $17 global.get $~lib/memory/__stack_pointer - local.get $12 + local.get $17 i32.store offset=4 - local.get $12 + local.get $17 local.get $index call $~lib/array/Array#__get local.set $key local.get $vals - local.set $12 + local.set $17 global.get $~lib/memory/__stack_pointer - local.get $12 + local.get $17 i32.store offset=4 - local.get $12 + local.get $17 local.get $index call $~lib/array/Array#__get local.set $value local.get $map - local.set $12 + local.set $17 global.get $~lib/memory/__stack_pointer - local.get $12 + local.get $17 i32.store offset=4 - local.get $12 + local.get $17 local.get $key call $"~lib/map/Map#has" i32.eqz if i32.const 0 - i32.const 544 - i32.const 31 + i32.const 752 + i32.const 32 i32.const 5 call $~lib/builtins/abort unreachable end local.get $map - local.set $12 + local.set $17 global.get $~lib/memory/__stack_pointer - local.get $12 + local.get $17 i32.store offset=4 - local.get $12 + local.get $17 local.get $value i32.const 20 i32.sub @@ -17144,28 +22357,28 @@ i32.eqz if i32.const 0 - i32.const 544 - i32.const 32 + i32.const 752 + i32.const 33 i32.const 5 call $~lib/builtins/abort unreachable end local.get $keyMap - local.set $12 + local.set $17 global.get $~lib/memory/__stack_pointer - local.get $12 + local.get $17 i32.store offset=4 - local.get $12 + local.get $17 local.get $key local.get $key call $"~lib/map/Map#set" drop local.get $valMap - local.set $12 + local.set $17 global.get $~lib/memory/__stack_pointer - local.get $12 + local.get $17 i32.store offset=4 - local.get $12 + local.get $17 local.get $value i32.const 20 i32.sub @@ -17182,37 +22395,37 @@ end end local.get $keyMap - local.set $12 + local.set $17 global.get $~lib/memory/__stack_pointer - local.get $12 + local.get $17 i32.store offset=4 - local.get $12 + local.get $17 call $"~lib/map/Map#get:size" i32.const 100 i32.eq i32.eqz if i32.const 0 - i32.const 544 - i32.const 36 + i32.const 752 + i32.const 37 i32.const 3 call $~lib/builtins/abort unreachable end local.get $valMap - local.set $12 + local.set $17 global.get $~lib/memory/__stack_pointer - local.get $12 + local.get $17 i32.store offset=4 - local.get $12 + local.get $17 call $"~lib/map/Map#get:size" i32.const 100 i32.eq i32.eqz if i32.const 0 - i32.const 544 - i32.const 37 + i32.const 752 + i32.const 38 i32.const 3 call $~lib/builtins/abort unreachable @@ -17225,28 +22438,28 @@ i32.lt_u if local.get $map - local.set $12 + local.set $17 global.get $~lib/memory/__stack_pointer - local.get $12 + local.get $17 i32.store offset=4 - local.get $12 + local.get $17 local.get $k|10 call $"~lib/map/Map#has" i32.eqz if i32.const 0 - i32.const 544 - i32.const 41 + i32.const 752 + i32.const 42 i32.const 5 call $~lib/builtins/abort unreachable end local.get $map - local.set $12 + local.set $17 global.get $~lib/memory/__stack_pointer - local.get $12 + local.get $17 i32.store offset=4 - local.get $12 + local.get $17 local.get $k|10 call $"~lib/map/Map#get" i32.const 20 @@ -17256,35 +22469,35 @@ i32.eqz if i32.const 0 - i32.const 544 - i32.const 42 + i32.const 752 + i32.const 43 i32.const 5 call $~lib/builtins/abort unreachable end local.get $map - local.set $12 + local.set $17 global.get $~lib/memory/__stack_pointer - local.get $12 + local.get $17 i32.store offset=4 - local.get $12 + local.get $17 local.get $k|10 call $"~lib/map/Map#delete" drop local.get $map - local.set $12 + local.set $17 global.get $~lib/memory/__stack_pointer - local.get $12 + local.get $17 i32.store offset=4 - local.get $12 + local.get $17 local.get $k|10 call $"~lib/map/Map#has" i32.eqz i32.eqz if i32.const 0 - i32.const 544 - i32.const 44 + i32.const 752 + i32.const 45 i32.const 5 call $~lib/builtins/abort unreachable @@ -17297,19 +22510,19 @@ end end local.get $map - local.set $12 + local.set $17 global.get $~lib/memory/__stack_pointer - local.get $12 + local.get $17 i32.store offset=4 - local.get $12 + local.get $17 call $"~lib/map/Map#get:size" i32.const 50 i32.eq i32.eqz if i32.const 0 - i32.const 544 - i32.const 46 + i32.const 752 + i32.const 47 i32.const 3 call $~lib/builtins/abort unreachable @@ -17322,29 +22535,29 @@ i32.lt_u if local.get $map - local.set $12 + local.set $17 global.get $~lib/memory/__stack_pointer - local.get $12 + local.get $17 i32.store offset=4 - local.get $12 + local.get $17 local.get $k|11 call $"~lib/map/Map#has" i32.eqz i32.eqz if i32.const 0 - i32.const 544 - i32.const 50 + i32.const 752 + i32.const 51 i32.const 5 call $~lib/builtins/abort unreachable end local.get $map - local.set $12 + local.set $17 global.get $~lib/memory/__stack_pointer - local.get $12 + local.get $17 i32.store offset=4 - local.get $12 + local.get $17 local.get $k|11 i32.const 10 local.get $k|11 @@ -17352,45 +22565,45 @@ call $"~lib/map/Map#set" drop local.get $map - local.set $12 + local.set $17 global.get $~lib/memory/__stack_pointer - local.get $12 + local.get $17 i32.store offset=4 - local.get $12 + local.get $17 local.get $k|11 call $"~lib/map/Map#has" i32.eqz if i32.const 0 - i32.const 544 - i32.const 52 + i32.const 752 + i32.const 53 i32.const 5 call $~lib/builtins/abort unreachable end local.get $map - local.set $12 + local.set $17 global.get $~lib/memory/__stack_pointer - local.get $12 + local.get $17 i32.store offset=4 - local.get $12 + local.get $17 local.get $k|11 call $"~lib/map/Map#delete" drop local.get $map - local.set $12 + local.set $17 global.get $~lib/memory/__stack_pointer - local.get $12 + local.get $17 i32.store offset=4 - local.get $12 + local.get $17 local.get $k|11 call $"~lib/map/Map#has" i32.eqz i32.eqz if i32.const 0 - i32.const 544 - i32.const 54 + i32.const 752 + i32.const 55 i32.const 5 call $~lib/builtins/abort unreachable @@ -17403,50 +22616,235 @@ end end local.get $map - local.set $12 + local.set $17 global.get $~lib/memory/__stack_pointer - local.get $12 + local.get $17 i32.store offset=4 - local.get $12 + local.get $17 call $"~lib/map/Map#get:size" i32.const 50 i32.eq i32.eqz if i32.const 0 - i32.const 544 - i32.const 56 + i32.const 752 + i32.const 57 i32.const 3 call $~lib/builtins/abort unreachable end local.get $map - local.set $12 + local.set $17 global.get $~lib/memory/__stack_pointer - local.get $12 + local.get $17 i32.store offset=4 - local.get $12 + local.get $17 call $"~lib/map/Map#clear" local.get $map - local.set $12 + local.set $17 global.get $~lib/memory/__stack_pointer - local.get $12 + local.get $17 i32.store offset=4 - local.get $12 + local.get $17 call $"~lib/map/Map#get:size" i32.const 0 i32.eq i32.eqz if i32.const 0 - i32.const 544 - i32.const 60 + i32.const 752 + i32.const 61 i32.const 3 call $~lib/builtins/abort unreachable end global.get $~lib/memory/__stack_pointer - i32.const 24 + i32.const 0 + i32.const 2 + i32.const 31 + i32.const 1264 + call $~lib/rt/__newArray + local.tee $initialEntries + i32.store offset=24 + i32.const 0 + local.set $k|14 + loop $for-loop|5 + local.get $k|14 + i32.const 100 + i32.lt_u + if + local.get $initialEntries + local.set $17 + global.get $~lib/memory/__stack_pointer + local.get $17 + i32.store offset=4 + local.get $17 + global.get $~lib/memory/__stack_pointer + i32.const 0 + call $"~lib/map/KeyValue#constructor" + local.tee $15 + i32.store offset=32 + local.get $15 + local.set $17 + global.get $~lib/memory/__stack_pointer + local.get $17 + i32.store offset=36 + local.get $17 + local.get $k|14 + call $"~lib/map/KeyValue#set:key" + local.get $15 + local.set $17 + global.get $~lib/memory/__stack_pointer + local.get $17 + i32.store offset=36 + local.get $17 + i32.const 10 + local.get $k|14 + i32.add + call $"~lib/map/KeyValue#set:value" + local.get $15 + local.set $17 + global.get $~lib/memory/__stack_pointer + local.get $17 + i32.store offset=28 + local.get $17 + call $"~lib/array/Array<~lib/map/KeyValue>#push" + drop + local.get $k|14 + i32.const 1 + i32.add + local.set $k|14 + br $for-loop|5 + end + end + global.get $~lib/memory/__stack_pointer + i32.const 0 + local.get $initialEntries + local.set $17 + global.get $~lib/memory/__stack_pointer + local.get $17 + i32.store offset=4 + local.get $17 + call $"~lib/map/Map#constructor" + local.tee $map + i32.store + local.get $map + local.set $17 + global.get $~lib/memory/__stack_pointer + local.get $17 + i32.store offset=4 + local.get $17 + call $"~lib/map/Map#get:size" + i32.const 100 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 752 + i32.const 74 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + i32.const 0 + local.set $k|16 + loop $for-loop|6 + local.get $k|16 + i32.const 100 + i32.lt_u + if + local.get $map + local.set $17 + global.get $~lib/memory/__stack_pointer + local.get $17 + i32.store offset=4 + local.get $17 + local.get $k|16 + call $"~lib/map/Map#has" + i32.eqz + if + i32.const 0 + i32.const 752 + i32.const 76 + i32.const 5 + call $~lib/builtins/abort + unreachable + end + local.get $map + local.set $17 + global.get $~lib/memory/__stack_pointer + local.get $17 + i32.store offset=4 + local.get $17 + local.get $k|16 + call $"~lib/map/Map#get" + i32.const 10 + local.get $k|16 + i32.add + i32.eq + i32.eqz + if + i32.const 0 + i32.const 752 + i32.const 77 + i32.const 5 + call $~lib/builtins/abort + unreachable + end + local.get $map + local.set $17 + global.get $~lib/memory/__stack_pointer + local.get $17 + i32.store offset=4 + local.get $17 + local.get $k|16 + call $"~lib/map/Map#delete" + drop + local.get $map + local.set $17 + global.get $~lib/memory/__stack_pointer + local.get $17 + i32.store offset=4 + local.get $17 + local.get $k|16 + call $"~lib/map/Map#has" + i32.eqz + i32.eqz + if + i32.const 0 + i32.const 752 + i32.const 79 + i32.const 5 + call $~lib/builtins/abort + unreachable + end + local.get $k|16 + i32.const 1 + i32.add + local.set $k|16 + br $for-loop|6 + end + end + local.get $map + local.set $17 + global.get $~lib/memory/__stack_pointer + local.get $17 + i32.store offset=4 + local.get $17 + call $"~lib/map/Map#get:size" + i32.const 0 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 752 + i32.const 81 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + i32.const 40 i32.add global.set $~lib/memory/__stack_pointer ) @@ -17505,9 +22903,9 @@ local.get $entry i32.eqz if - i32.const 592 - i32.const 656 - i32.const 105 + i32.const 800 + i32.const 864 + i32.const 148 i32.const 17 call $~lib/builtins/abort unreachable @@ -17559,110 +22957,7 @@ i32.const 0 local.get $size call $~lib/array/Array#constructor - local.tee $keys - i32.store offset=4 - i32.const 0 - local.set $length - i32.const 0 - local.set $i - loop $for-loop|0 - local.get $i - local.get $size - i32.lt_s - if - local.get $start - local.get $i - block $"~lib/map/ENTRY_SIZE|inlined.6" (result i32) - i32.const 12 - br $"~lib/map/ENTRY_SIZE|inlined.6" - end - i32.mul - i32.add - local.set $entry - local.get $entry - call $"~lib/map/MapEntry#get:taggedNext" - i32.const 1 - i32.and - i32.eqz - if - local.get $keys - local.set $8 - global.get $~lib/memory/__stack_pointer - local.get $8 - i32.store - local.get $8 - local.get $length - local.tee $7 - i32.const 1 - i32.add - local.set $length - local.get $7 - local.get $entry - call $"~lib/map/MapEntry#get:key" - call $~lib/array/Array#__set - end - local.get $i - i32.const 1 - i32.add - local.set $i - br $for-loop|0 - end - end - local.get $keys - local.set $8 - global.get $~lib/memory/__stack_pointer - local.get $8 - i32.store - local.get $8 - local.get $length - call $~lib/array/Array#set:length - local.get $keys - local.set $8 - global.get $~lib/memory/__stack_pointer - i32.const 8 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $8 - return - ) - (func $"~lib/map/Map#values" (param $this i32) (result i32) - (local $start i32) - (local $size i32) - (local $values i32) - (local $length i32) - (local $i i32) - (local $entry i32) - (local $7 i32) - (local $8 i32) - global.get $~lib/memory/__stack_pointer - i32.const 8 - i32.sub - global.set $~lib/memory/__stack_pointer - call $~stack_check - global.get $~lib/memory/__stack_pointer - i64.const 0 - i64.store - local.get $this - local.set $8 - global.get $~lib/memory/__stack_pointer - local.get $8 - i32.store - local.get $8 - call $"~lib/map/Map#get:entries" - local.set $start - local.get $this - local.set $8 - global.get $~lib/memory/__stack_pointer - local.get $8 - i32.store - local.get $8 - call $"~lib/map/Map#get:entriesOffset" - local.set $size - global.get $~lib/memory/__stack_pointer - i32.const 0 - local.get $size - call $~lib/array/Array#constructor - local.tee $values + local.tee $keys i32.store offset=4 i32.const 0 local.set $length @@ -17687,6 +22982,109 @@ i32.const 1 i32.and i32.eqz + if + local.get $keys + local.set $8 + global.get $~lib/memory/__stack_pointer + local.get $8 + i32.store + local.get $8 + local.get $length + local.tee $7 + i32.const 1 + i32.add + local.set $length + local.get $7 + local.get $entry + call $"~lib/map/MapEntry#get:key" + call $~lib/array/Array#__set + end + local.get $i + i32.const 1 + i32.add + local.set $i + br $for-loop|0 + end + end + local.get $keys + local.set $8 + global.get $~lib/memory/__stack_pointer + local.get $8 + i32.store + local.get $8 + local.get $length + call $~lib/array/Array#set:length + local.get $keys + local.set $8 + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $8 + return + ) + (func $"~lib/map/Map#values" (param $this i32) (result i32) + (local $start i32) + (local $size i32) + (local $values i32) + (local $length i32) + (local $i i32) + (local $entry i32) + (local $7 i32) + (local $8 i32) + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.sub + global.set $~lib/memory/__stack_pointer + call $~stack_check + global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store + local.get $this + local.set $8 + global.get $~lib/memory/__stack_pointer + local.get $8 + i32.store + local.get $8 + call $"~lib/map/Map#get:entries" + local.set $start + local.get $this + local.set $8 + global.get $~lib/memory/__stack_pointer + local.get $8 + i32.store + local.get $8 + call $"~lib/map/Map#get:entriesOffset" + local.set $size + global.get $~lib/memory/__stack_pointer + i32.const 0 + local.get $size + call $~lib/array/Array#constructor + local.tee $values + i32.store offset=4 + i32.const 0 + local.set $length + i32.const 0 + local.set $i + loop $for-loop|0 + local.get $i + local.get $size + i32.lt_s + if + local.get $start + local.get $i + block $"~lib/map/ENTRY_SIZE|inlined.8" (result i32) + i32.const 12 + br $"~lib/map/ENTRY_SIZE|inlined.8" + end + i32.mul + i32.add + local.set $entry + local.get $entry + call $"~lib/map/MapEntry#get:taggedNext" + i32.const 1 + i32.and + i32.eqz if local.get $values local.set $8 @@ -17927,9 +23325,9 @@ local.get $1 i32.const 0 i32.const 4 - block $"~lib/map/ENTRY_SIZE|inlined.8" (result i32) + block $"~lib/map/ENTRY_SIZE|inlined.9" (result i32) i32.const 12 - br $"~lib/map/ENTRY_SIZE|inlined.8" + br $"~lib/map/ENTRY_SIZE|inlined.9" end i32.mul call $~lib/arraybuffer/ArrayBuffer#constructor @@ -17968,6 +23366,125 @@ i32.add global.set $~lib/memory/__stack_pointer ) + (func $"~lib/map/KeyValue#constructor" (param $this i32) (result i32) + (local $1 i32) + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.sub + global.set $~lib/memory/__stack_pointer + call $~stack_check + global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store + local.get $this + i32.eqz + if + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.const 13 + call $~lib/rt/itcms/__new + local.tee $this + i32.store + end + global.get $~lib/memory/__stack_pointer + local.get $this + local.set $1 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + local.get $1 + call $~lib/object/Object#constructor + local.tee $this + i32.store + local.get $this + local.set $1 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + local.get $1 + i32.const 0 + call $"~lib/map/KeyValue#set:key" + local.get $this + local.set $1 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + local.get $1 + i32.const 0 + call $"~lib/map/KeyValue#set:value" + local.get $this + local.set $1 + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $1 + ) + (func $"~lib/array/Array<~lib/map/KeyValue>#push" (param $this i32) (param $value i32) (result i32) + (local $oldLen i32) + (local $len i32) + (local $4 i32) + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.sub + global.set $~lib/memory/__stack_pointer + call $~stack_check + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store + local.get $this + local.set $4 + global.get $~lib/memory/__stack_pointer + local.get $4 + i32.store + local.get $4 + call $"~lib/array/Array<~lib/map/KeyValue>#get:length_" + local.set $oldLen + local.get $oldLen + i32.const 1 + i32.add + local.set $len + local.get $this + local.get $len + i32.const 2 + i32.const 1 + call $~lib/array/ensureCapacity + i32.const 1 + drop + local.get $this + local.set $4 + global.get $~lib/memory/__stack_pointer + local.get $4 + i32.store + local.get $4 + call $"~lib/array/Array<~lib/map/KeyValue>#get:dataStart" + local.get $oldLen + i32.const 2 + i32.shl + i32.add + local.get $value + i32.store + local.get $this + local.get $value + i32.const 1 + call $~lib/rt/itcms/__link + local.get $this + local.set $4 + global.get $~lib/memory/__stack_pointer + local.get $4 + i32.store + local.get $4 + local.get $len + call $"~lib/array/Array<~lib/map/KeyValue>#set:length_" + local.get $len + local.set $4 + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $4 + return + ) (func $"std/map/testNumeric" (local $map i32) (local $k i32) @@ -17982,18 +23499,26 @@ (local $k|10 i32) (local $k|11 i32) (local $12 i32) + (local $initialEntries i32) + (local $k|14 i32) + (local $15 i32) + (local $k|16 i32) + (local $17 i32) global.get $~lib/memory/__stack_pointer - i32.const 24 + i32.const 40 i32.sub global.set $~lib/memory/__stack_pointer call $~stack_check global.get $~lib/memory/__stack_pointer i32.const 0 - i32.const 24 + i32.const 40 memory.fill global.get $~lib/memory/__stack_pointer i32.const 0 - call $"~lib/map/Map#constructor" + i32.const 0 + global.set $~argumentsLength + i32.const 0 + call $"~lib/map/Map#constructor@varargs" local.tee $map i32.store i32.const 0 @@ -18004,29 +23529,29 @@ i32.lt_s if local.get $map - local.set $12 + local.set $17 global.get $~lib/memory/__stack_pointer - local.get $12 + local.get $17 i32.store offset=4 - local.get $12 + local.get $17 local.get $k call $"~lib/map/Map#has" i32.eqz i32.eqz if i32.const 0 - i32.const 544 - i32.const 6 + i32.const 752 + i32.const 7 i32.const 5 call $~lib/builtins/abort unreachable end local.get $map - local.set $12 + local.set $17 global.get $~lib/memory/__stack_pointer - local.get $12 + local.get $17 i32.store offset=4 - local.get $12 + local.get $17 local.get $k i32.const 10 local.get $k @@ -18034,28 +23559,28 @@ call $"~lib/map/Map#set" drop local.get $map - local.set $12 + local.set $17 global.get $~lib/memory/__stack_pointer - local.get $12 + local.get $17 i32.store offset=4 - local.get $12 + local.get $17 local.get $k call $"~lib/map/Map#has" i32.eqz if i32.const 0 - i32.const 544 - i32.const 8 + i32.const 752 + i32.const 9 i32.const 5 call $~lib/builtins/abort unreachable end local.get $map - local.set $12 + local.set $17 global.get $~lib/memory/__stack_pointer - local.get $12 + local.get $17 i32.store offset=4 - local.get $12 + local.get $17 local.get $k call $"~lib/map/Map#get" i32.const 10 @@ -18065,8 +23590,8 @@ i32.eqz if i32.const 0 - i32.const 544 - i32.const 9 + i32.const 752 + i32.const 10 i32.const 5 call $~lib/builtins/abort unreachable @@ -18079,19 +23604,19 @@ end end local.get $map - local.set $12 + local.set $17 global.get $~lib/memory/__stack_pointer - local.get $12 + local.get $17 i32.store offset=4 - local.get $12 + local.get $17 call $"~lib/map/Map#get:size" i32.const 100 i32.eq i32.eqz if i32.const 0 - i32.const 544 - i32.const 11 + i32.const 752 + i32.const 12 i32.const 3 call $~lib/builtins/abort unreachable @@ -18104,28 +23629,28 @@ i32.lt_s if local.get $map - local.set $12 + local.set $17 global.get $~lib/memory/__stack_pointer - local.get $12 + local.get $17 i32.store offset=4 - local.get $12 + local.get $17 local.get $k|2 call $"~lib/map/Map#has" i32.eqz if i32.const 0 - i32.const 544 - i32.const 15 + i32.const 752 + i32.const 16 i32.const 5 call $~lib/builtins/abort unreachable end local.get $map - local.set $12 + local.set $17 global.get $~lib/memory/__stack_pointer - local.get $12 + local.get $17 i32.store offset=4 - local.get $12 + local.get $17 local.get $k|2 call $"~lib/map/Map#get" i32.const 10 @@ -18135,18 +23660,18 @@ i32.eqz if i32.const 0 - i32.const 544 - i32.const 16 + i32.const 752 + i32.const 17 i32.const 5 call $~lib/builtins/abort unreachable end local.get $map - local.set $12 + local.set $17 global.get $~lib/memory/__stack_pointer - local.get $12 + local.get $17 i32.store offset=4 - local.get $12 + local.get $17 local.get $k|2 i32.const 20 local.get $k|2 @@ -18154,28 +23679,28 @@ call $"~lib/map/Map#set" drop local.get $map - local.set $12 + local.set $17 global.get $~lib/memory/__stack_pointer - local.get $12 + local.get $17 i32.store offset=4 - local.get $12 + local.get $17 local.get $k|2 call $"~lib/map/Map#has" i32.eqz if i32.const 0 - i32.const 544 - i32.const 18 + i32.const 752 + i32.const 19 i32.const 5 call $~lib/builtins/abort unreachable end local.get $map - local.set $12 + local.set $17 global.get $~lib/memory/__stack_pointer - local.get $12 + local.get $17 i32.store offset=4 - local.get $12 + local.get $17 local.get $k|2 call $"~lib/map/Map#get" i32.const 20 @@ -18185,8 +23710,8 @@ i32.eqz if i32.const 0 - i32.const 544 - i32.const 19 + i32.const 752 + i32.const 20 i32.const 5 call $~lib/builtins/abort unreachable @@ -18199,51 +23724,57 @@ end end local.get $map - local.set $12 + local.set $17 global.get $~lib/memory/__stack_pointer - local.get $12 + local.get $17 i32.store offset=4 - local.get $12 + local.get $17 call $"~lib/map/Map#get:size" i32.const 100 i32.eq i32.eqz if i32.const 0 - i32.const 544 - i32.const 21 + i32.const 752 + i32.const 22 i32.const 3 call $~lib/builtins/abort unreachable end global.get $~lib/memory/__stack_pointer local.get $map - local.set $12 + local.set $17 global.get $~lib/memory/__stack_pointer - local.get $12 + local.get $17 i32.store offset=4 - local.get $12 + local.get $17 call $"~lib/map/Map#keys" local.tee $keys i32.store offset=8 global.get $~lib/memory/__stack_pointer local.get $map - local.set $12 + local.set $17 global.get $~lib/memory/__stack_pointer - local.get $12 + local.get $17 i32.store offset=4 - local.get $12 + local.get $17 call $"~lib/map/Map#values" local.tee $vals i32.store offset=12 global.get $~lib/memory/__stack_pointer i32.const 0 - call $"~lib/map/Map#constructor" + i32.const 0 + global.set $~argumentsLength + i32.const 0 + call $"~lib/map/Map#constructor@varargs" local.tee $keyMap i32.store offset=16 global.get $~lib/memory/__stack_pointer i32.const 0 - call $"~lib/map/Map#constructor" + i32.const 0 + global.set $~argumentsLength + i32.const 0 + call $"~lib/map/Map#constructor@varargs" local.tee $valMap i32.store offset=20 i32.const 0 @@ -18251,55 +23782,55 @@ loop $for-loop|2 local.get $index local.get $keys - local.set $12 + local.set $17 global.get $~lib/memory/__stack_pointer - local.get $12 + local.get $17 i32.store offset=4 - local.get $12 + local.get $17 call $~lib/array/Array#get:length i32.lt_s if local.get $keys - local.set $12 + local.set $17 global.get $~lib/memory/__stack_pointer - local.get $12 + local.get $17 i32.store offset=4 - local.get $12 + local.get $17 local.get $index call $~lib/array/Array#__get local.set $key local.get $vals - local.set $12 + local.set $17 global.get $~lib/memory/__stack_pointer - local.get $12 + local.get $17 i32.store offset=4 - local.get $12 + local.get $17 local.get $index call $~lib/array/Array#__get local.set $value local.get $map - local.set $12 + local.set $17 global.get $~lib/memory/__stack_pointer - local.get $12 + local.get $17 i32.store offset=4 - local.get $12 + local.get $17 local.get $key call $"~lib/map/Map#has" i32.eqz if i32.const 0 - i32.const 544 - i32.const 31 + i32.const 752 + i32.const 32 i32.const 5 call $~lib/builtins/abort unreachable end local.get $map - local.set $12 + local.set $17 global.get $~lib/memory/__stack_pointer - local.get $12 + local.get $17 i32.store offset=4 - local.get $12 + local.get $17 local.get $value i32.const 20 i32.sub @@ -18307,28 +23838,28 @@ i32.eqz if i32.const 0 - i32.const 544 - i32.const 32 + i32.const 752 + i32.const 33 i32.const 5 call $~lib/builtins/abort unreachable end local.get $keyMap - local.set $12 + local.set $17 global.get $~lib/memory/__stack_pointer - local.get $12 + local.get $17 i32.store offset=4 - local.get $12 + local.get $17 local.get $key local.get $key call $"~lib/map/Map#set" drop local.get $valMap - local.set $12 + local.set $17 global.get $~lib/memory/__stack_pointer - local.get $12 + local.get $17 i32.store offset=4 - local.get $12 + local.get $17 local.get $value i32.const 20 i32.sub @@ -18345,37 +23876,37 @@ end end local.get $keyMap - local.set $12 + local.set $17 global.get $~lib/memory/__stack_pointer - local.get $12 + local.get $17 i32.store offset=4 - local.get $12 + local.get $17 call $"~lib/map/Map#get:size" i32.const 100 i32.eq i32.eqz if i32.const 0 - i32.const 544 - i32.const 36 + i32.const 752 + i32.const 37 i32.const 3 call $~lib/builtins/abort unreachable end local.get $valMap - local.set $12 + local.set $17 global.get $~lib/memory/__stack_pointer - local.get $12 + local.get $17 i32.store offset=4 - local.get $12 + local.get $17 call $"~lib/map/Map#get:size" i32.const 100 i32.eq i32.eqz if i32.const 0 - i32.const 544 - i32.const 37 + i32.const 752 + i32.const 38 i32.const 3 call $~lib/builtins/abort unreachable @@ -18388,28 +23919,28 @@ i32.lt_s if local.get $map - local.set $12 + local.set $17 global.get $~lib/memory/__stack_pointer - local.get $12 + local.get $17 i32.store offset=4 - local.get $12 + local.get $17 local.get $k|10 call $"~lib/map/Map#has" i32.eqz if i32.const 0 - i32.const 544 - i32.const 41 + i32.const 752 + i32.const 42 i32.const 5 call $~lib/builtins/abort unreachable end local.get $map - local.set $12 + local.set $17 global.get $~lib/memory/__stack_pointer - local.get $12 + local.get $17 i32.store offset=4 - local.get $12 + local.get $17 local.get $k|10 call $"~lib/map/Map#get" i32.const 20 @@ -18419,35 +23950,35 @@ i32.eqz if i32.const 0 - i32.const 544 - i32.const 42 + i32.const 752 + i32.const 43 i32.const 5 call $~lib/builtins/abort unreachable end local.get $map - local.set $12 + local.set $17 global.get $~lib/memory/__stack_pointer - local.get $12 + local.get $17 i32.store offset=4 - local.get $12 + local.get $17 local.get $k|10 call $"~lib/map/Map#delete" drop local.get $map - local.set $12 + local.set $17 global.get $~lib/memory/__stack_pointer - local.get $12 + local.get $17 i32.store offset=4 - local.get $12 + local.get $17 local.get $k|10 call $"~lib/map/Map#has" i32.eqz i32.eqz if i32.const 0 - i32.const 544 - i32.const 44 + i32.const 752 + i32.const 45 i32.const 5 call $~lib/builtins/abort unreachable @@ -18460,19 +23991,19 @@ end end local.get $map - local.set $12 + local.set $17 global.get $~lib/memory/__stack_pointer - local.get $12 + local.get $17 i32.store offset=4 - local.get $12 + local.get $17 call $"~lib/map/Map#get:size" i32.const 50 i32.eq i32.eqz if i32.const 0 - i32.const 544 - i32.const 46 + i32.const 752 + i32.const 47 i32.const 3 call $~lib/builtins/abort unreachable @@ -18485,29 +24016,29 @@ i32.lt_s if local.get $map - local.set $12 + local.set $17 global.get $~lib/memory/__stack_pointer - local.get $12 + local.get $17 i32.store offset=4 - local.get $12 + local.get $17 local.get $k|11 call $"~lib/map/Map#has" i32.eqz i32.eqz if i32.const 0 - i32.const 544 - i32.const 50 + i32.const 752 + i32.const 51 i32.const 5 call $~lib/builtins/abort unreachable end local.get $map - local.set $12 + local.set $17 global.get $~lib/memory/__stack_pointer - local.get $12 + local.get $17 i32.store offset=4 - local.get $12 + local.get $17 local.get $k|11 i32.const 10 local.get $k|11 @@ -18515,45 +24046,45 @@ call $"~lib/map/Map#set" drop local.get $map - local.set $12 + local.set $17 global.get $~lib/memory/__stack_pointer - local.get $12 + local.get $17 i32.store offset=4 - local.get $12 + local.get $17 local.get $k|11 call $"~lib/map/Map#has" i32.eqz if i32.const 0 - i32.const 544 - i32.const 52 + i32.const 752 + i32.const 53 i32.const 5 call $~lib/builtins/abort unreachable end local.get $map - local.set $12 + local.set $17 global.get $~lib/memory/__stack_pointer - local.get $12 + local.get $17 i32.store offset=4 - local.get $12 + local.get $17 local.get $k|11 call $"~lib/map/Map#delete" drop local.get $map - local.set $12 + local.set $17 global.get $~lib/memory/__stack_pointer - local.get $12 + local.get $17 i32.store offset=4 - local.get $12 + local.get $17 local.get $k|11 call $"~lib/map/Map#has" i32.eqz i32.eqz if i32.const 0 - i32.const 544 - i32.const 54 + i32.const 752 + i32.const 55 i32.const 5 call $~lib/builtins/abort unreachable @@ -18566,154 +24097,530 @@ end end local.get $map - local.set $12 + local.set $17 global.get $~lib/memory/__stack_pointer - local.get $12 + local.get $17 i32.store offset=4 - local.get $12 + local.get $17 call $"~lib/map/Map#get:size" i32.const 50 i32.eq i32.eqz if i32.const 0 - i32.const 544 - i32.const 56 + i32.const 752 + i32.const 57 i32.const 3 call $~lib/builtins/abort unreachable end local.get $map - local.set $12 + local.set $17 global.get $~lib/memory/__stack_pointer - local.get $12 + local.get $17 i32.store offset=4 - local.get $12 + local.get $17 call $"~lib/map/Map#clear" local.get $map - local.set $12 + local.set $17 global.get $~lib/memory/__stack_pointer - local.get $12 + local.get $17 i32.store offset=4 - local.get $12 + local.get $17 call $"~lib/map/Map#get:size" i32.const 0 i32.eq i32.eqz if i32.const 0 - i32.const 544 - i32.const 60 + i32.const 752 + i32.const 61 i32.const 3 call $~lib/builtins/abort unreachable end global.get $~lib/memory/__stack_pointer - i32.const 24 + i32.const 0 + i32.const 2 + i32.const 14 + i32.const 1296 + call $~lib/rt/__newArray + local.tee $initialEntries + i32.store offset=24 + i32.const 0 + local.set $k|14 + loop $for-loop|5 + local.get $k|14 + i32.const 100 + i32.lt_s + if + local.get $initialEntries + local.set $17 + global.get $~lib/memory/__stack_pointer + local.get $17 + i32.store offset=4 + local.get $17 + global.get $~lib/memory/__stack_pointer + i32.const 0 + call $"~lib/map/KeyValue#constructor" + local.tee $15 + i32.store offset=32 + local.get $15 + local.set $17 + global.get $~lib/memory/__stack_pointer + local.get $17 + i32.store offset=36 + local.get $17 + local.get $k|14 + call $"~lib/map/KeyValue#set:key" + local.get $15 + local.set $17 + global.get $~lib/memory/__stack_pointer + local.get $17 + i32.store offset=36 + local.get $17 + i32.const 10 + local.get $k|14 + i32.add + call $"~lib/map/KeyValue#set:value" + local.get $15 + local.set $17 + global.get $~lib/memory/__stack_pointer + local.get $17 + i32.store offset=28 + local.get $17 + call $"~lib/array/Array<~lib/map/KeyValue>#push" + drop + local.get $k|14 + i32.const 1 + i32.add + local.set $k|14 + br $for-loop|5 + end + end + global.get $~lib/memory/__stack_pointer + i32.const 0 + local.get $initialEntries + local.set $17 + global.get $~lib/memory/__stack_pointer + local.get $17 + i32.store offset=4 + local.get $17 + call $"~lib/map/Map#constructor" + local.tee $map + i32.store + local.get $map + local.set $17 + global.get $~lib/memory/__stack_pointer + local.get $17 + i32.store offset=4 + local.get $17 + call $"~lib/map/Map#get:size" + i32.const 100 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 752 + i32.const 74 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + i32.const 0 + local.set $k|16 + loop $for-loop|6 + local.get $k|16 + i32.const 100 + i32.lt_s + if + local.get $map + local.set $17 + global.get $~lib/memory/__stack_pointer + local.get $17 + i32.store offset=4 + local.get $17 + local.get $k|16 + call $"~lib/map/Map#has" + i32.eqz + if + i32.const 0 + i32.const 752 + i32.const 76 + i32.const 5 + call $~lib/builtins/abort + unreachable + end + local.get $map + local.set $17 + global.get $~lib/memory/__stack_pointer + local.get $17 + i32.store offset=4 + local.get $17 + local.get $k|16 + call $"~lib/map/Map#get" + i32.const 10 + local.get $k|16 + i32.add + i32.eq + i32.eqz + if + i32.const 0 + i32.const 752 + i32.const 77 + i32.const 5 + call $~lib/builtins/abort + unreachable + end + local.get $map + local.set $17 + global.get $~lib/memory/__stack_pointer + local.get $17 + i32.store offset=4 + local.get $17 + local.get $k|16 + call $"~lib/map/Map#delete" + drop + local.get $map + local.set $17 + global.get $~lib/memory/__stack_pointer + local.get $17 + i32.store offset=4 + local.get $17 + local.get $k|16 + call $"~lib/map/Map#has" + i32.eqz + i32.eqz + if + i32.const 0 + i32.const 752 + i32.const 79 + i32.const 5 + call $~lib/builtins/abort + unreachable + end + local.get $k|16 + i32.const 1 + i32.add + local.set $k|16 + br $for-loop|6 + end + end + local.get $map + local.set $17 + global.get $~lib/memory/__stack_pointer + local.get $17 + i32.store offset=4 + local.get $17 + call $"~lib/map/Map#get:size" + i32.const 0 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 752 + i32.const 81 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + i32.const 40 i32.add global.set $~lib/memory/__stack_pointer ) - (func $"~lib/map/Map#constructor" (param $this i32) (result i32) + (func $"~lib/array/Array<~lib/map/KeyValue>#get:length" (param $this i32) (result i32) (local $1 i32) global.get $~lib/memory/__stack_pointer - i32.const 12 + i32.const 4 i32.sub global.set $~lib/memory/__stack_pointer call $~stack_check global.get $~lib/memory/__stack_pointer - i64.const 0 - i64.store - global.get $~lib/memory/__stack_pointer i32.const 0 - i32.store offset=8 - local.get $this - i32.eqz - if - global.get $~lib/memory/__stack_pointer - i32.const 24 - i32.const 18 - call $~lib/rt/itcms/__new - local.tee $this - i32.store - end + i32.store local.get $this local.set $1 global.get $~lib/memory/__stack_pointer local.get $1 - i32.store offset=4 + i32.store local.get $1 - i32.const 0 - i32.const 4 - i32.const 4 - i32.mul - call $~lib/arraybuffer/ArrayBuffer#constructor + call $"~lib/array/Array<~lib/map/KeyValue>#get:length_" local.set $1 global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer local.get $1 - i32.store offset=8 - local.get $1 - call $"~lib/map/Map#set:buckets" - local.get $this - local.set $1 + return + ) + (func $"~lib/map/Map#rehash" (param $this i32) (param $newBucketsMask i32) + (local $newBucketsCapacity i32) + (local $newBuckets i32) + (local $newEntriesCapacity i32) + (local $newEntries i32) + (local $oldPtr i32) + (local $oldEnd i32) + (local $newPtr i32) + (local $oldEntry i32) + (local $newEntry i32) + (local $oldEntryKey i32) + (local $newBucketIndex i32) + (local $newBucketPtrBase i32) + (local $14 i32) global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - local.get $1 - i32.const 4 - i32.const 1 + i32.const 16 i32.sub - call $"~lib/map/Map#set:bucketsMask" - local.get $this - local.set $1 + global.set $~lib/memory/__stack_pointer + call $~stack_check + global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store + global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store offset=8 + local.get $newBucketsMask + i32.const 1 + i32.add + local.set $newBucketsCapacity global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - local.get $1 i32.const 0 + local.get $newBucketsCapacity i32.const 4 + i32.mul + call $~lib/arraybuffer/ArrayBuffer#constructor + local.tee $newBuckets + i32.store + local.get $newBucketsCapacity + i32.const 8 + i32.mul + i32.const 3 + i32.div_s + local.set $newEntriesCapacity + global.get $~lib/memory/__stack_pointer + i32.const 0 + local.get $newEntriesCapacity block $"~lib/map/ENTRY_SIZE|inlined.0" (result i32) i32.const 12 br $"~lib/map/ENTRY_SIZE|inlined.0" end i32.mul call $~lib/arraybuffer/ArrayBuffer#constructor - local.set $1 + local.tee $newEntries + i32.store offset=4 + local.get $this + local.set $14 global.get $~lib/memory/__stack_pointer - local.get $1 + local.get $14 i32.store offset=8 - local.get $1 + local.get $14 + call $"~lib/map/Map#get:entries" + local.set $oldPtr + local.get $oldPtr + local.get $this + local.set $14 + global.get $~lib/memory/__stack_pointer + local.get $14 + i32.store offset=8 + local.get $14 + call $"~lib/map/Map#get:entriesOffset" + block $"~lib/map/ENTRY_SIZE|inlined.1" (result i32) + i32.const 12 + br $"~lib/map/ENTRY_SIZE|inlined.1" + end + i32.mul + i32.add + local.set $oldEnd + local.get $newEntries + local.set $newPtr + loop $while-continue|0 + local.get $oldPtr + local.get $oldEnd + i32.ne + if + local.get $oldPtr + local.set $oldEntry + local.get $oldEntry + call $"~lib/map/MapEntry#get:taggedNext" + i32.const 1 + i32.and + i32.eqz + if + local.get $newPtr + local.set $newEntry + local.get $oldEntry + call $"~lib/map/MapEntry#get:key" + local.set $oldEntryKey + local.get $newEntry + local.get $oldEntryKey + call $"~lib/map/MapEntry#set:key" + local.get $newEntry + local.get $oldEntry + call $"~lib/map/MapEntry#get:value" + call $"~lib/map/MapEntry#set:value" + local.get $oldEntryKey + call $~lib/util/hash/HASH + local.get $newBucketsMask + i32.and + local.set $newBucketIndex + local.get $newBuckets + local.get $newBucketIndex + i32.const 4 + i32.mul + i32.add + local.set $newBucketPtrBase + local.get $newEntry + local.get $newBucketPtrBase + i32.load + call $"~lib/map/MapEntry#set:taggedNext" + local.get $newBucketPtrBase + local.get $newPtr + i32.store + local.get $newPtr + block $"~lib/map/ENTRY_SIZE|inlined.2" (result i32) + i32.const 12 + br $"~lib/map/ENTRY_SIZE|inlined.2" + end + i32.add + local.set $newPtr + end + local.get $oldPtr + block $"~lib/map/ENTRY_SIZE|inlined.3" (result i32) + i32.const 12 + br $"~lib/map/ENTRY_SIZE|inlined.3" + end + i32.add + local.set $oldPtr + br $while-continue|0 + end + end + local.get $this + local.set $14 + global.get $~lib/memory/__stack_pointer + local.get $14 + i32.store offset=8 + local.get $14 + local.get $newBuckets + local.set $14 + global.get $~lib/memory/__stack_pointer + local.get $14 + i32.store offset=12 + local.get $14 + call $"~lib/map/Map#set:buckets" + local.get $this + local.set $14 + global.get $~lib/memory/__stack_pointer + local.get $14 + i32.store offset=8 + local.get $14 + local.get $newBucketsMask + call $"~lib/map/Map#set:bucketsMask" + local.get $this + local.set $14 + global.get $~lib/memory/__stack_pointer + local.get $14 + i32.store offset=8 + local.get $14 + local.get $newEntries + local.set $14 + global.get $~lib/memory/__stack_pointer + local.get $14 + i32.store offset=12 + local.get $14 call $"~lib/map/Map#set:entries" local.get $this - local.set $1 + local.set $14 global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - local.get $1 - i32.const 4 + local.get $14 + i32.store offset=8 + local.get $14 + local.get $newEntriesCapacity call $"~lib/map/Map#set:entriesCapacity" local.get $this - local.set $1 + local.set $14 global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - local.get $1 - i32.const 0 + local.get $14 + i32.store offset=8 + local.get $14 + local.get $this + local.set $14 + global.get $~lib/memory/__stack_pointer + local.get $14 + i32.store offset=12 + local.get $14 + call $"~lib/map/Map#get:entriesCount" call $"~lib/map/Map#set:entriesOffset" + global.get $~lib/memory/__stack_pointer + i32.const 16 + i32.add + global.set $~lib/memory/__stack_pointer + ) + (func $"~lib/array/Array<~lib/map/KeyValue>#__get" (param $this i32) (param $index i32) (result i32) + (local $value i32) + (local $3 i32) + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.sub + global.set $~lib/memory/__stack_pointer + call $~stack_check + global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store + local.get $index local.get $this - local.set $1 + local.set $3 global.get $~lib/memory/__stack_pointer - local.get $1 + local.get $3 + i32.store + local.get $3 + call $"~lib/array/Array<~lib/map/KeyValue>#get:length_" + i32.ge_u + if + i32.const 336 + i32.const 544 + i32.const 114 + i32.const 42 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + local.get $this + local.set $3 + global.get $~lib/memory/__stack_pointer + local.get $3 + i32.store + local.get $3 + call $"~lib/array/Array<~lib/map/KeyValue>#get:dataStart" + local.get $index + i32.const 2 + i32.shl + i32.add + i32.load + local.tee $value i32.store offset=4 - local.get $1 + i32.const 1 + drop i32.const 0 - call $"~lib/map/Map#set:entriesCount" - local.get $this - local.set $1 + i32.eqz + drop + local.get $value + i32.eqz + if + i32.const 592 + i32.const 544 + i32.const 118 + i32.const 40 + call $~lib/builtins/abort + unreachable + end + local.get $value + local.set $3 global.get $~lib/memory/__stack_pointer - i32.const 12 + i32.const 8 i32.add global.set $~lib/memory/__stack_pointer - local.get $1 + local.get $3 + return ) (func $"~lib/map/Map#find" (param $this i32) (param $key i32) (param $hashCode i32) (result i32) (local $entry i32) @@ -18794,50 +24701,18 @@ local.get $5 return ) - (func $"~lib/map/Map#has" (param $this i32) (param $key i32) (result i32) - (local $2 i32) - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.sub - global.set $~lib/memory/__stack_pointer - call $~stack_check - global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.store - local.get $this - local.set $2 - global.get $~lib/memory/__stack_pointer - local.get $2 - i32.store - local.get $2 - local.get $key - local.get $key - call $~lib/util/hash/HASH - call $"~lib/map/Map#find" - i32.const 0 - i32.ne - local.set $2 - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $2 - return - ) - (func $"~lib/map/Map#rehash" (param $this i32) (param $newBucketsMask i32) - (local $newBucketsCapacity i32) - (local $newBuckets i32) - (local $newEntriesCapacity i32) - (local $newEntries i32) - (local $oldPtr i32) - (local $oldEnd i32) - (local $newPtr i32) - (local $oldEntry i32) - (local $newEntry i32) - (local $oldEntryKey i32) - (local $newBucketIndex i32) - (local $newBucketPtrBase i32) - (local $14 i32) + (func $"~lib/map/Map#constructor" (param $this i32) (param $initialEntries i32) (result i32) + (local $entriesLength i32) + (local $i i32) + (local $key i32) + (local $value i32) + (local $hashCode i32) + (local $entry i32) + (local $entries i32) + (local $9 i32) + (local $entry|10 i32) + (local $bucketPtrBase i32) + (local $12 i32) global.get $~lib/memory/__stack_pointer i32.const 16 i32.sub @@ -18849,181 +24724,380 @@ global.get $~lib/memory/__stack_pointer i64.const 0 i64.store offset=8 - local.get $newBucketsMask - i32.const 1 - i32.add - local.set $newBucketsCapacity + local.get $this + i32.eqz + if + global.get $~lib/memory/__stack_pointer + i32.const 24 + i32.const 36 + call $~lib/rt/itcms/__new + local.tee $this + i32.store + end + local.get $this + local.set $12 global.get $~lib/memory/__stack_pointer + local.get $12 + i32.store offset=4 + local.get $12 i32.const 0 - local.get $newBucketsCapacity + i32.const 4 i32.const 4 i32.mul call $~lib/arraybuffer/ArrayBuffer#constructor - local.tee $newBuckets - i32.store - local.get $newBucketsCapacity - i32.const 8 - i32.mul - i32.const 3 - i32.div_s - local.set $newEntriesCapacity + local.set $12 + global.get $~lib/memory/__stack_pointer + local.get $12 + i32.store offset=8 + local.get $12 + call $"~lib/map/Map#set:buckets" + local.get $this + local.set $12 + global.get $~lib/memory/__stack_pointer + local.get $12 + i32.store offset=4 + local.get $12 + i32.const 4 + i32.const 1 + i32.sub + call $"~lib/map/Map#set:bucketsMask" + local.get $this + local.set $12 global.get $~lib/memory/__stack_pointer + local.get $12 + i32.store offset=4 + local.get $12 i32.const 0 - local.get $newEntriesCapacity - block $"~lib/map/ENTRY_SIZE|inlined.1" (result i32) + i32.const 4 + block $"~lib/map/ENTRY_SIZE|inlined.5" (result i32) i32.const 12 - br $"~lib/map/ENTRY_SIZE|inlined.1" + br $"~lib/map/ENTRY_SIZE|inlined.5" end i32.mul call $~lib/arraybuffer/ArrayBuffer#constructor - local.tee $newEntries + local.set $12 + global.get $~lib/memory/__stack_pointer + local.get $12 + i32.store offset=8 + local.get $12 + call $"~lib/map/Map#set:entries" + local.get $this + local.set $12 + global.get $~lib/memory/__stack_pointer + local.get $12 i32.store offset=4 + local.get $12 + i32.const 4 + call $"~lib/map/Map#set:entriesCapacity" local.get $this - local.set $14 + local.set $12 global.get $~lib/memory/__stack_pointer - local.get $14 - i32.store offset=8 - local.get $14 - call $"~lib/map/Map#get:entries" - local.set $oldPtr - local.get $oldPtr + local.get $12 + i32.store offset=4 + local.get $12 + i32.const 0 + call $"~lib/map/Map#set:entriesOffset" local.get $this - local.set $14 + local.set $12 global.get $~lib/memory/__stack_pointer - local.get $14 - i32.store offset=8 - local.get $14 - call $"~lib/map/Map#get:entriesOffset" - block $"~lib/map/ENTRY_SIZE|inlined.2" (result i32) - i32.const 12 - br $"~lib/map/ENTRY_SIZE|inlined.2" - end - i32.mul - i32.add - local.set $oldEnd - local.get $newEntries - local.set $newPtr - loop $while-continue|0 - local.get $oldPtr - local.get $oldEnd - i32.ne + local.get $12 + i32.store offset=4 + local.get $12 + i32.const 0 + call $"~lib/map/Map#set:entriesCount" + local.get $initialEntries + local.set $12 + global.get $~lib/memory/__stack_pointer + local.get $12 + i32.store offset=4 + local.get $12 + call $"~lib/array/Array<~lib/map/KeyValue>#get:length" + local.set $entriesLength + local.get $entriesLength + i32.const 0 + i32.gt_s + if + local.get $entriesLength + local.get $this + local.set $12 + global.get $~lib/memory/__stack_pointer + local.get $12 + i32.store offset=4 + local.get $12 + call $"~lib/map/Map#get:entriesCapacity" + i32.ge_s if - local.get $oldPtr - local.set $oldEntry - local.get $oldEntry - call $"~lib/map/MapEntry#get:taggedNext" - i32.const 1 - i32.and - i32.eqz + local.get $this + local.set $12 + global.get $~lib/memory/__stack_pointer + local.get $12 + i32.store offset=4 + local.get $12 + local.get $entriesLength + call $"~lib/map/Map#set:bucketsMask" + end + local.get $this + local.set $12 + global.get $~lib/memory/__stack_pointer + local.get $12 + i32.store offset=4 + local.get $12 + local.get $this + local.set $12 + global.get $~lib/memory/__stack_pointer + local.get $12 + i32.store offset=8 + local.get $12 + call $"~lib/map/Map#get:bucketsMask" + i32.const 1 + i32.shl + i32.const 1 + i32.or + call $"~lib/map/Map#rehash" + i32.const 0 + local.set $i + loop $for-loop|0 + local.get $i + local.get $entriesLength + i32.lt_s if - local.get $newPtr - local.set $newEntry - local.get $oldEntry - call $"~lib/map/MapEntry#get:key" - local.set $oldEntryKey - local.get $newEntry - local.get $oldEntryKey - call $"~lib/map/MapEntry#set:key" - local.get $newEntry - local.get $oldEntry - call $"~lib/map/MapEntry#get:value" - call $"~lib/map/MapEntry#set:value" - local.get $oldEntryKey + local.get $initialEntries + local.set $12 + global.get $~lib/memory/__stack_pointer + local.get $12 + i32.store offset=8 + local.get $12 + local.get $i + call $"~lib/array/Array<~lib/map/KeyValue>#__get" + local.set $12 + global.get $~lib/memory/__stack_pointer + local.get $12 + i32.store offset=4 + local.get $12 + call $"~lib/map/KeyValue#get:key" + local.set $key + local.get $initialEntries + local.set $12 + global.get $~lib/memory/__stack_pointer + local.get $12 + i32.store offset=8 + local.get $12 + local.get $i + call $"~lib/array/Array<~lib/map/KeyValue>#__get" + local.set $12 + global.get $~lib/memory/__stack_pointer + local.get $12 + i32.store offset=4 + local.get $12 + call $"~lib/map/KeyValue#get:value" + local.set $value + local.get $key call $~lib/util/hash/HASH - local.get $newBucketsMask - i32.and - local.set $newBucketIndex - local.get $newBuckets - local.get $newBucketIndex - i32.const 4 - i32.mul - i32.add - local.set $newBucketPtrBase - local.get $newEntry - local.get $newBucketPtrBase - i32.load - call $"~lib/map/MapEntry#set:taggedNext" - local.get $newBucketPtrBase - local.get $newPtr - i32.store - local.get $newPtr - block $"~lib/map/ENTRY_SIZE|inlined.3" (result i32) - i32.const 12 - br $"~lib/map/ENTRY_SIZE|inlined.3" + local.set $hashCode + local.get $this + local.set $12 + global.get $~lib/memory/__stack_pointer + local.get $12 + i32.store offset=4 + local.get $12 + local.get $key + local.get $hashCode + call $"~lib/map/Map#find" + local.set $entry + local.get $entry + if + local.get $entry + local.get $value + call $"~lib/map/MapEntry#set:value" + i32.const 0 + drop + else + global.get $~lib/memory/__stack_pointer + local.get $this + local.set $12 + global.get $~lib/memory/__stack_pointer + local.get $12 + i32.store offset=4 + local.get $12 + call $"~lib/map/Map#get:entries" + local.tee $entries + i32.store offset=12 + local.get $entries + local.get $this + local.set $12 + global.get $~lib/memory/__stack_pointer + local.get $12 + i32.store offset=4 + local.get $12 + local.get $this + local.set $12 + global.get $~lib/memory/__stack_pointer + local.get $12 + i32.store offset=8 + local.get $12 + call $"~lib/map/Map#get:entriesOffset" + local.tee $9 + i32.const 1 + i32.add + call $"~lib/map/Map#set:entriesOffset" + local.get $9 + block $"~lib/map/ENTRY_SIZE|inlined.4" (result i32) + i32.const 12 + br $"~lib/map/ENTRY_SIZE|inlined.4" + end + i32.mul + i32.add + local.set $entry|10 + local.get $entry|10 + local.get $key + call $"~lib/map/MapEntry#set:key" + i32.const 0 + drop + local.get $entry|10 + local.get $value + call $"~lib/map/MapEntry#set:value" + i32.const 0 + drop + local.get $this + local.set $12 + global.get $~lib/memory/__stack_pointer + local.get $12 + i32.store offset=4 + local.get $12 + local.get $this + local.set $12 + global.get $~lib/memory/__stack_pointer + local.get $12 + i32.store offset=8 + local.get $12 + call $"~lib/map/Map#get:entriesCount" + i32.const 1 + i32.add + call $"~lib/map/Map#set:entriesCount" + local.get $this + local.set $12 + global.get $~lib/memory/__stack_pointer + local.get $12 + i32.store offset=4 + local.get $12 + call $"~lib/map/Map#get:buckets" + local.get $hashCode + local.get $this + local.set $12 + global.get $~lib/memory/__stack_pointer + local.get $12 + i32.store offset=4 + local.get $12 + call $"~lib/map/Map#get:bucketsMask" + i32.and + i32.const 4 + i32.mul + i32.add + local.set $bucketPtrBase + local.get $entry|10 + local.get $bucketPtrBase + i32.load + call $"~lib/map/MapEntry#set:taggedNext" + local.get $bucketPtrBase + local.get $entry|10 + i32.store end + local.get $i + i32.const 1 i32.add - local.set $newPtr + local.set $i + br $for-loop|0 end - local.get $oldPtr - block $"~lib/map/ENTRY_SIZE|inlined.4" (result i32) - i32.const 12 - br $"~lib/map/ENTRY_SIZE|inlined.4" - end - i32.add - local.set $oldPtr - br $while-continue|0 end end local.get $this - local.set $14 + local.set $12 global.get $~lib/memory/__stack_pointer - local.get $14 - i32.store offset=8 - local.get $14 - local.get $newBuckets - local.set $14 + i32.const 16 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $12 + ) + (func $"~lib/map/Map#constructor@varargs" (param $this i32) (param $initialEntries i32) (result i32) + (local $2 i32) + (local $3 i32) global.get $~lib/memory/__stack_pointer - local.get $14 - i32.store offset=12 - local.get $14 - call $"~lib/map/Map#set:buckets" - local.get $this - local.set $14 + i32.const 12 + i32.sub + global.set $~lib/memory/__stack_pointer + call $~stack_check global.get $~lib/memory/__stack_pointer - local.get $14 + i64.const 0 + i64.store + global.get $~lib/memory/__stack_pointer + i32.const 0 i32.store offset=8 - local.get $14 - local.get $newBucketsMask - call $"~lib/map/Map#set:bucketsMask" + block $1of1 + block $0of1 + block $outOfRange + global.get $~argumentsLength + br_table $0of1 $1of1 $outOfRange + end + unreachable + end + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.const 2 + i32.const 38 + i32.const 1328 + call $~lib/rt/__newArray + local.tee $initialEntries + i32.store + end local.get $this - local.set $14 + local.set $3 global.get $~lib/memory/__stack_pointer - local.get $14 + local.get $3 + i32.store offset=4 + local.get $3 + local.get $initialEntries + local.set $3 + global.get $~lib/memory/__stack_pointer + local.get $3 i32.store offset=8 - local.get $14 - local.get $newEntries - local.set $14 + local.get $3 + call $"~lib/map/Map#constructor" + local.set $3 global.get $~lib/memory/__stack_pointer - local.get $14 - i32.store offset=12 - local.get $14 - call $"~lib/map/Map#set:entries" - local.get $this - local.set $14 + i32.const 12 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $3 + ) + (func $"~lib/map/Map#has" (param $this i32) (param $key i32) (result i32) + (local $2 i32) global.get $~lib/memory/__stack_pointer - local.get $14 - i32.store offset=8 - local.get $14 - local.get $newEntriesCapacity - call $"~lib/map/Map#set:entriesCapacity" - local.get $this - local.set $14 + i32.const 4 + i32.sub + global.set $~lib/memory/__stack_pointer + call $~stack_check global.get $~lib/memory/__stack_pointer - local.get $14 - i32.store offset=8 - local.get $14 + i32.const 0 + i32.store local.get $this - local.set $14 + local.set $2 global.get $~lib/memory/__stack_pointer - local.get $14 - i32.store offset=12 - local.get $14 - call $"~lib/map/Map#get:entriesCount" - call $"~lib/map/Map#set:entriesOffset" + local.get $2 + i32.store + local.get $2 + local.get $key + local.get $key + call $~lib/util/hash/HASH + call $"~lib/map/Map#find" + i32.const 0 + i32.ne + local.set $2 global.get $~lib/memory/__stack_pointer - i32.const 16 + i32.const 4 i32.add global.set $~lib/memory/__stack_pointer + local.get $2 + return ) (func $"~lib/map/Map#set" (param $this i32) (param $key i32) (param $value i32) (result i32) (local $hashCode i32) @@ -19157,9 +25231,9 @@ i32.add call $"~lib/map/Map#set:entriesOffset" local.get $6 - block $"~lib/map/ENTRY_SIZE|inlined.5" (result i32) + block $"~lib/map/ENTRY_SIZE|inlined.6" (result i32) i32.const 12 - br $"~lib/map/ENTRY_SIZE|inlined.5" + br $"~lib/map/ENTRY_SIZE|inlined.6" end i32.mul i32.add @@ -19252,9 +25326,9 @@ local.get $entry i32.eqz if - i32.const 592 - i32.const 656 - i32.const 105 + i32.const 800 + i32.const 864 + i32.const 148 i32.const 17 call $~lib/builtins/abort unreachable @@ -19316,7 +25390,7 @@ if global.get $~lib/memory/__stack_pointer i32.const 16 - i32.const 19 + i32.const 39 call $~lib/rt/itcms/__new local.tee $this i32.store @@ -19359,8 +25433,8 @@ i32.shr_u i32.gt_u if - i32.const 432 - i32.const 704 + i32.const 32 + i32.const 544 i32.const 70 i32.const 60 call $~lib/builtins/abort @@ -19456,8 +25530,8 @@ i32.const 0 i32.lt_s if - i32.const 224 - i32.const 704 + i32.const 336 + i32.const 544 i32.const 130 i32.const 22 call $~lib/builtins/abort @@ -19579,9 +25653,9 @@ if local.get $start local.get $i - block $"~lib/map/ENTRY_SIZE|inlined.6" (result i32) + block $"~lib/map/ENTRY_SIZE|inlined.7" (result i32) i32.const 12 - br $"~lib/map/ENTRY_SIZE|inlined.6" + br $"~lib/map/ENTRY_SIZE|inlined.7" end i32.mul i32.add @@ -19682,9 +25756,9 @@ if local.get $start local.get $i - block $"~lib/map/ENTRY_SIZE|inlined.7" (result i32) + block $"~lib/map/ENTRY_SIZE|inlined.8" (result i32) i32.const 12 - br $"~lib/map/ENTRY_SIZE|inlined.7" + br $"~lib/map/ENTRY_SIZE|inlined.8" end i32.mul i32.add @@ -19732,192 +25806,11 @@ i32.const 8 i32.add global.set $~lib/memory/__stack_pointer - local.get $8 - return - ) - (func $"~lib/map/Map#constructor" (param $this i32) (result i32) - (local $1 i32) - global.get $~lib/memory/__stack_pointer - i32.const 12 - i32.sub - global.set $~lib/memory/__stack_pointer - call $~stack_check - global.get $~lib/memory/__stack_pointer - i64.const 0 - i64.store - global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.store offset=8 - local.get $this - i32.eqz - if - global.get $~lib/memory/__stack_pointer - i32.const 24 - i32.const 20 - call $~lib/rt/itcms/__new - local.tee $this - i32.store - end - local.get $this - local.set $1 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - local.get $1 - i32.const 0 - i32.const 4 - i32.const 4 - i32.mul - call $~lib/arraybuffer/ArrayBuffer#constructor - local.set $1 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=8 - local.get $1 - call $"~lib/map/Map#set:buckets" - local.get $this - local.set $1 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - local.get $1 - i32.const 4 - i32.const 1 - i32.sub - call $"~lib/map/Map#set:bucketsMask" - local.get $this - local.set $1 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - local.get $1 - i32.const 0 - i32.const 4 - block $"~lib/map/ENTRY_SIZE|inlined.0" (result i32) - i32.const 12 - br $"~lib/map/ENTRY_SIZE|inlined.0" - end - i32.mul - call $~lib/arraybuffer/ArrayBuffer#constructor - local.set $1 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=8 - local.get $1 - call $"~lib/map/Map#set:entries" - local.get $this - local.set $1 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - local.get $1 - i32.const 4 - call $"~lib/map/Map#set:entriesCapacity" - local.get $this - local.set $1 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - local.get $1 - i32.const 0 - call $"~lib/map/Map#set:entriesOffset" - local.get $this - local.set $1 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - local.get $1 - i32.const 0 - call $"~lib/map/Map#set:entriesCount" - local.get $this - local.set $1 - global.get $~lib/memory/__stack_pointer - i32.const 12 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $1 - ) - (func $~lib/array/Array#get:length (param $this i32) (result i32) - (local $1 i32) - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.sub - global.set $~lib/memory/__stack_pointer - call $~stack_check - global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.store - local.get $this - local.set $1 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store - local.get $1 - call $~lib/array/Array#get:length_ - local.set $1 - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $1 - return - ) - (func $~lib/array/Array#__get (param $this i32) (param $index i32) (result i32) - (local $value i32) - (local $3 i32) - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.sub - global.set $~lib/memory/__stack_pointer - call $~stack_check - global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.store - local.get $index - local.get $this - local.set $3 - global.get $~lib/memory/__stack_pointer - local.get $3 - i32.store - local.get $3 - call $~lib/array/Array#get:length_ - i32.ge_u - if - i32.const 224 - i32.const 704 - i32.const 114 - i32.const 42 - call $~lib/builtins/abort - unreachable - end - local.get $this - local.set $3 - global.get $~lib/memory/__stack_pointer - local.get $3 - i32.store - local.get $3 - call $~lib/array/Array#get:dataStart - local.get $index - i32.const 2 - i32.shl - i32.add - i32.load - local.set $value - i32.const 0 - drop - local.get $value - local.set $3 - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $3 + local.get $8 return ) - (func $"~lib/map/Map#find" (param $this i32) (param $key i32) (param $hashCode i32) (result i32) - (local $entry i32) - (local $taggedNext i32) - (local $5 i32) + (func $"~lib/array/Array<~lib/map/KeyValue>#get:length" (param $this i32) (result i32) + (local $1 i32) global.get $~lib/memory/__stack_pointer i32.const 4 i32.sub @@ -19927,70 +25820,18 @@ i32.const 0 i32.store local.get $this - local.set $5 - global.get $~lib/memory/__stack_pointer - local.get $5 - i32.store - local.get $5 - call $"~lib/map/Map#get:buckets" - local.get $hashCode - local.get $this - local.set $5 + local.set $1 global.get $~lib/memory/__stack_pointer - local.get $5 + local.get $1 i32.store - local.get $5 - call $"~lib/map/Map#get:bucketsMask" - i32.and - i32.const 4 - i32.mul - i32.add - i32.load - local.set $entry - loop $while-continue|0 - local.get $entry - if - local.get $entry - call $"~lib/map/MapEntry#get:taggedNext" - local.set $taggedNext - local.get $taggedNext - i32.const 1 - i32.and - i32.eqz - if (result i32) - local.get $entry - call $"~lib/map/MapEntry#get:key" - local.get $key - i32.eq - else - i32.const 0 - end - if - local.get $entry - local.set $5 - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $5 - return - end - local.get $taggedNext - i32.const 1 - i32.const -1 - i32.xor - i32.and - local.set $entry - br $while-continue|0 - end - end - i32.const 0 - local.set $5 + local.get $1 + call $"~lib/array/Array<~lib/map/KeyValue>#get:length_" + local.set $1 global.get $~lib/memory/__stack_pointer i32.const 4 i32.add global.set $~lib/memory/__stack_pointer - local.get $5 + local.get $1 return ) (func $"~lib/map/Map#rehash" (param $this i32) (param $newBucketsMask i32) @@ -20039,9 +25880,9 @@ global.get $~lib/memory/__stack_pointer i32.const 0 local.get $newEntriesCapacity - block $"~lib/map/ENTRY_SIZE|inlined.1" (result i32) + block $"~lib/map/ENTRY_SIZE|inlined.0" (result i32) i32.const 12 - br $"~lib/map/ENTRY_SIZE|inlined.1" + br $"~lib/map/ENTRY_SIZE|inlined.0" end i32.mul call $~lib/arraybuffer/ArrayBuffer#constructor @@ -20063,9 +25904,9 @@ i32.store offset=8 local.get $14 call $"~lib/map/Map#get:entriesOffset" - block $"~lib/map/ENTRY_SIZE|inlined.2" (result i32) + block $"~lib/map/ENTRY_SIZE|inlined.1" (result i32) i32.const 12 - br $"~lib/map/ENTRY_SIZE|inlined.2" + br $"~lib/map/ENTRY_SIZE|inlined.1" end i32.mul i32.add @@ -20116,17 +25957,17 @@ local.get $newPtr i32.store local.get $newPtr - block $"~lib/map/ENTRY_SIZE|inlined.3" (result i32) + block $"~lib/map/ENTRY_SIZE|inlined.2" (result i32) i32.const 12 - br $"~lib/map/ENTRY_SIZE|inlined.3" + br $"~lib/map/ENTRY_SIZE|inlined.2" end i32.add local.set $newPtr end local.get $oldPtr - block $"~lib/map/ENTRY_SIZE|inlined.4" (result i32) + block $"~lib/map/ENTRY_SIZE|inlined.3" (result i32) i32.const 12 - br $"~lib/map/ENTRY_SIZE|inlined.4" + br $"~lib/map/ENTRY_SIZE|inlined.3" end i32.add local.set $oldPtr @@ -20194,6 +26035,597 @@ i32.add global.set $~lib/memory/__stack_pointer ) + (func $"~lib/array/Array<~lib/map/KeyValue>#__get" (param $this i32) (param $index i32) (result i32) + (local $value i32) + (local $3 i32) + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.sub + global.set $~lib/memory/__stack_pointer + call $~stack_check + global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store + local.get $index + local.get $this + local.set $3 + global.get $~lib/memory/__stack_pointer + local.get $3 + i32.store + local.get $3 + call $"~lib/array/Array<~lib/map/KeyValue>#get:length_" + i32.ge_u + if + i32.const 336 + i32.const 544 + i32.const 114 + i32.const 42 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + local.get $this + local.set $3 + global.get $~lib/memory/__stack_pointer + local.get $3 + i32.store + local.get $3 + call $"~lib/array/Array<~lib/map/KeyValue>#get:dataStart" + local.get $index + i32.const 2 + i32.shl + i32.add + i32.load + local.tee $value + i32.store offset=4 + i32.const 1 + drop + i32.const 0 + i32.eqz + drop + local.get $value + i32.eqz + if + i32.const 592 + i32.const 544 + i32.const 118 + i32.const 40 + call $~lib/builtins/abort + unreachable + end + local.get $value + local.set $3 + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $3 + return + ) + (func $"~lib/map/Map#find" (param $this i32) (param $key i32) (param $hashCode i32) (result i32) + (local $entry i32) + (local $taggedNext i32) + (local $5 i32) + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.sub + global.set $~lib/memory/__stack_pointer + call $~stack_check + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store + local.get $this + local.set $5 + global.get $~lib/memory/__stack_pointer + local.get $5 + i32.store + local.get $5 + call $"~lib/map/Map#get:buckets" + local.get $hashCode + local.get $this + local.set $5 + global.get $~lib/memory/__stack_pointer + local.get $5 + i32.store + local.get $5 + call $"~lib/map/Map#get:bucketsMask" + i32.and + i32.const 4 + i32.mul + i32.add + i32.load + local.set $entry + loop $while-continue|0 + local.get $entry + if + local.get $entry + call $"~lib/map/MapEntry#get:taggedNext" + local.set $taggedNext + local.get $taggedNext + i32.const 1 + i32.and + i32.eqz + if (result i32) + local.get $entry + call $"~lib/map/MapEntry#get:key" + local.get $key + i32.eq + else + i32.const 0 + end + if + local.get $entry + local.set $5 + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $5 + return + end + local.get $taggedNext + i32.const 1 + i32.const -1 + i32.xor + i32.and + local.set $entry + br $while-continue|0 + end + end + i32.const 0 + local.set $5 + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $5 + return + ) + (func $"~lib/map/Map#constructor" (param $this i32) (param $initialEntries i32) (result i32) + (local $entriesLength i32) + (local $i i32) + (local $key i32) + (local $value i32) + (local $hashCode i32) + (local $entry i32) + (local $entries i32) + (local $9 i32) + (local $entry|10 i32) + (local $bucketPtrBase i32) + (local $12 i32) + global.get $~lib/memory/__stack_pointer + i32.const 16 + i32.sub + global.set $~lib/memory/__stack_pointer + call $~stack_check + global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store + global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store offset=8 + local.get $this + i32.eqz + if + global.get $~lib/memory/__stack_pointer + i32.const 24 + i32.const 40 + call $~lib/rt/itcms/__new + local.tee $this + i32.store + end + local.get $this + local.set $12 + global.get $~lib/memory/__stack_pointer + local.get $12 + i32.store offset=4 + local.get $12 + i32.const 0 + i32.const 4 + i32.const 4 + i32.mul + call $~lib/arraybuffer/ArrayBuffer#constructor + local.set $12 + global.get $~lib/memory/__stack_pointer + local.get $12 + i32.store offset=8 + local.get $12 + call $"~lib/map/Map#set:buckets" + local.get $this + local.set $12 + global.get $~lib/memory/__stack_pointer + local.get $12 + i32.store offset=4 + local.get $12 + i32.const 4 + i32.const 1 + i32.sub + call $"~lib/map/Map#set:bucketsMask" + local.get $this + local.set $12 + global.get $~lib/memory/__stack_pointer + local.get $12 + i32.store offset=4 + local.get $12 + i32.const 0 + i32.const 4 + block $"~lib/map/ENTRY_SIZE|inlined.5" (result i32) + i32.const 12 + br $"~lib/map/ENTRY_SIZE|inlined.5" + end + i32.mul + call $~lib/arraybuffer/ArrayBuffer#constructor + local.set $12 + global.get $~lib/memory/__stack_pointer + local.get $12 + i32.store offset=8 + local.get $12 + call $"~lib/map/Map#set:entries" + local.get $this + local.set $12 + global.get $~lib/memory/__stack_pointer + local.get $12 + i32.store offset=4 + local.get $12 + i32.const 4 + call $"~lib/map/Map#set:entriesCapacity" + local.get $this + local.set $12 + global.get $~lib/memory/__stack_pointer + local.get $12 + i32.store offset=4 + local.get $12 + i32.const 0 + call $"~lib/map/Map#set:entriesOffset" + local.get $this + local.set $12 + global.get $~lib/memory/__stack_pointer + local.get $12 + i32.store offset=4 + local.get $12 + i32.const 0 + call $"~lib/map/Map#set:entriesCount" + local.get $initialEntries + local.set $12 + global.get $~lib/memory/__stack_pointer + local.get $12 + i32.store offset=4 + local.get $12 + call $"~lib/array/Array<~lib/map/KeyValue>#get:length" + local.set $entriesLength + local.get $entriesLength + i32.const 0 + i32.gt_s + if + local.get $entriesLength + local.get $this + local.set $12 + global.get $~lib/memory/__stack_pointer + local.get $12 + i32.store offset=4 + local.get $12 + call $"~lib/map/Map#get:entriesCapacity" + i32.ge_s + if + local.get $this + local.set $12 + global.get $~lib/memory/__stack_pointer + local.get $12 + i32.store offset=4 + local.get $12 + local.get $entriesLength + call $"~lib/map/Map#set:bucketsMask" + end + local.get $this + local.set $12 + global.get $~lib/memory/__stack_pointer + local.get $12 + i32.store offset=4 + local.get $12 + local.get $this + local.set $12 + global.get $~lib/memory/__stack_pointer + local.get $12 + i32.store offset=8 + local.get $12 + call $"~lib/map/Map#get:bucketsMask" + i32.const 1 + i32.shl + i32.const 1 + i32.or + call $"~lib/map/Map#rehash" + i32.const 0 + local.set $i + loop $for-loop|0 + local.get $i + local.get $entriesLength + i32.lt_s + if + local.get $initialEntries + local.set $12 + global.get $~lib/memory/__stack_pointer + local.get $12 + i32.store offset=8 + local.get $12 + local.get $i + call $"~lib/array/Array<~lib/map/KeyValue>#__get" + local.set $12 + global.get $~lib/memory/__stack_pointer + local.get $12 + i32.store offset=4 + local.get $12 + call $"~lib/map/KeyValue#get:key" + local.set $key + local.get $initialEntries + local.set $12 + global.get $~lib/memory/__stack_pointer + local.get $12 + i32.store offset=8 + local.get $12 + local.get $i + call $"~lib/array/Array<~lib/map/KeyValue>#__get" + local.set $12 + global.get $~lib/memory/__stack_pointer + local.get $12 + i32.store offset=4 + local.get $12 + call $"~lib/map/KeyValue#get:value" + local.set $value + local.get $key + call $~lib/util/hash/HASH + local.set $hashCode + local.get $this + local.set $12 + global.get $~lib/memory/__stack_pointer + local.get $12 + i32.store offset=4 + local.get $12 + local.get $key + local.get $hashCode + call $"~lib/map/Map#find" + local.set $entry + local.get $entry + if + local.get $entry + local.get $value + call $"~lib/map/MapEntry#set:value" + i32.const 0 + drop + else + global.get $~lib/memory/__stack_pointer + local.get $this + local.set $12 + global.get $~lib/memory/__stack_pointer + local.get $12 + i32.store offset=4 + local.get $12 + call $"~lib/map/Map#get:entries" + local.tee $entries + i32.store offset=12 + local.get $entries + local.get $this + local.set $12 + global.get $~lib/memory/__stack_pointer + local.get $12 + i32.store offset=4 + local.get $12 + local.get $this + local.set $12 + global.get $~lib/memory/__stack_pointer + local.get $12 + i32.store offset=8 + local.get $12 + call $"~lib/map/Map#get:entriesOffset" + local.tee $9 + i32.const 1 + i32.add + call $"~lib/map/Map#set:entriesOffset" + local.get $9 + block $"~lib/map/ENTRY_SIZE|inlined.4" (result i32) + i32.const 12 + br $"~lib/map/ENTRY_SIZE|inlined.4" + end + i32.mul + i32.add + local.set $entry|10 + local.get $entry|10 + local.get $key + call $"~lib/map/MapEntry#set:key" + i32.const 0 + drop + local.get $entry|10 + local.get $value + call $"~lib/map/MapEntry#set:value" + i32.const 0 + drop + local.get $this + local.set $12 + global.get $~lib/memory/__stack_pointer + local.get $12 + i32.store offset=4 + local.get $12 + local.get $this + local.set $12 + global.get $~lib/memory/__stack_pointer + local.get $12 + i32.store offset=8 + local.get $12 + call $"~lib/map/Map#get:entriesCount" + i32.const 1 + i32.add + call $"~lib/map/Map#set:entriesCount" + local.get $this + local.set $12 + global.get $~lib/memory/__stack_pointer + local.get $12 + i32.store offset=4 + local.get $12 + call $"~lib/map/Map#get:buckets" + local.get $hashCode + local.get $this + local.set $12 + global.get $~lib/memory/__stack_pointer + local.get $12 + i32.store offset=4 + local.get $12 + call $"~lib/map/Map#get:bucketsMask" + i32.and + i32.const 4 + i32.mul + i32.add + local.set $bucketPtrBase + local.get $entry|10 + local.get $bucketPtrBase + i32.load + call $"~lib/map/MapEntry#set:taggedNext" + local.get $bucketPtrBase + local.get $entry|10 + i32.store + end + local.get $i + i32.const 1 + i32.add + local.set $i + br $for-loop|0 + end + end + end + local.get $this + local.set $12 + global.get $~lib/memory/__stack_pointer + i32.const 16 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $12 + ) + (func $"~lib/map/Map#constructor@varargs" (param $this i32) (param $initialEntries i32) (result i32) + (local $2 i32) + (local $3 i32) + global.get $~lib/memory/__stack_pointer + i32.const 12 + i32.sub + global.set $~lib/memory/__stack_pointer + call $~stack_check + global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store offset=8 + block $1of1 + block $0of1 + block $outOfRange + global.get $~argumentsLength + br_table $0of1 $1of1 $outOfRange + end + unreachable + end + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.const 2 + i32.const 42 + i32.const 1360 + call $~lib/rt/__newArray + local.tee $initialEntries + i32.store + end + local.get $this + local.set $3 + global.get $~lib/memory/__stack_pointer + local.get $3 + i32.store offset=4 + local.get $3 + local.get $initialEntries + local.set $3 + global.get $~lib/memory/__stack_pointer + local.get $3 + i32.store offset=8 + local.get $3 + call $"~lib/map/Map#constructor" + local.set $3 + global.get $~lib/memory/__stack_pointer + i32.const 12 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $3 + ) + (func $~lib/array/Array#get:length (param $this i32) (result i32) + (local $1 i32) + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.sub + global.set $~lib/memory/__stack_pointer + call $~stack_check + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store + local.get $this + local.set $1 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store + local.get $1 + call $~lib/array/Array#get:length_ + local.set $1 + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $1 + return + ) + (func $~lib/array/Array#__get (param $this i32) (param $index i32) (result i32) + (local $value i32) + (local $3 i32) + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.sub + global.set $~lib/memory/__stack_pointer + call $~stack_check + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store + local.get $index + local.get $this + local.set $3 + global.get $~lib/memory/__stack_pointer + local.get $3 + i32.store + local.get $3 + call $~lib/array/Array#get:length_ + i32.ge_u + if + i32.const 336 + i32.const 544 + i32.const 114 + i32.const 42 + call $~lib/builtins/abort + unreachable + end + local.get $this + local.set $3 + global.get $~lib/memory/__stack_pointer + local.get $3 + i32.store + local.get $3 + call $~lib/array/Array#get:dataStart + local.get $index + i32.const 2 + i32.shl + i32.add + i32.load + local.set $value + i32.const 0 + drop + local.get $value + local.set $3 + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $3 + return + ) (func $"~lib/map/Map#set" (param $this i32) (param $key i32) (param $value i32) (result i32) (local $hashCode i32) (local $entry i32) @@ -20326,9 +26758,9 @@ i32.add call $"~lib/map/Map#set:entriesOffset" local.get $6 - block $"~lib/map/ENTRY_SIZE|inlined.5" (result i32) + block $"~lib/map/ENTRY_SIZE|inlined.6" (result i32) i32.const 12 - br $"~lib/map/ENTRY_SIZE|inlined.5" + br $"~lib/map/ENTRY_SIZE|inlined.6" end i32.mul i32.add @@ -20595,9 +27027,9 @@ local.get $1 i32.const 0 i32.const 4 - block $"~lib/map/ENTRY_SIZE|inlined.8" (result i32) + block $"~lib/map/ENTRY_SIZE|inlined.9" (result i32) i32.const 12 - br $"~lib/map/ENTRY_SIZE|inlined.8" + br $"~lib/map/ENTRY_SIZE|inlined.9" end i32.mul call $~lib/arraybuffer/ArrayBuffer#constructor @@ -20636,6 +27068,125 @@ i32.add global.set $~lib/memory/__stack_pointer ) + (func $"~lib/map/KeyValue#constructor" (param $this i32) (result i32) + (local $1 i32) + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.sub + global.set $~lib/memory/__stack_pointer + call $~stack_check + global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store + local.get $this + i32.eqz + if + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.const 37 + call $~lib/rt/itcms/__new + local.tee $this + i32.store + end + global.get $~lib/memory/__stack_pointer + local.get $this + local.set $1 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + local.get $1 + call $~lib/object/Object#constructor + local.tee $this + i32.store + local.get $this + local.set $1 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + local.get $1 + i32.const 0 + call $"~lib/map/KeyValue#set:key" + local.get $this + local.set $1 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + local.get $1 + i32.const 0 + call $"~lib/map/KeyValue#set:value" + local.get $this + local.set $1 + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $1 + ) + (func $"~lib/array/Array<~lib/map/KeyValue>#push" (param $this i32) (param $value i32) (result i32) + (local $oldLen i32) + (local $len i32) + (local $4 i32) + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.sub + global.set $~lib/memory/__stack_pointer + call $~stack_check + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store + local.get $this + local.set $4 + global.get $~lib/memory/__stack_pointer + local.get $4 + i32.store + local.get $4 + call $"~lib/array/Array<~lib/map/KeyValue>#get:length_" + local.set $oldLen + local.get $oldLen + i32.const 1 + i32.add + local.set $len + local.get $this + local.get $len + i32.const 2 + i32.const 1 + call $~lib/array/ensureCapacity + i32.const 1 + drop + local.get $this + local.set $4 + global.get $~lib/memory/__stack_pointer + local.get $4 + i32.store + local.get $4 + call $"~lib/array/Array<~lib/map/KeyValue>#get:dataStart" + local.get $oldLen + i32.const 2 + i32.shl + i32.add + local.get $value + i32.store + local.get $this + local.get $value + i32.const 1 + call $~lib/rt/itcms/__link + local.get $this + local.set $4 + global.get $~lib/memory/__stack_pointer + local.get $4 + i32.store + local.get $4 + local.get $len + call $"~lib/array/Array<~lib/map/KeyValue>#set:length_" + local.get $len + local.set $4 + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $4 + return + ) (func $"std/map/testNumeric" (local $map i32) (local $k i32) @@ -20650,18 +27201,26 @@ (local $k|10 i32) (local $k|11 i32) (local $12 i32) + (local $initialEntries i32) + (local $k|14 i32) + (local $15 i32) + (local $k|16 i32) + (local $17 i32) global.get $~lib/memory/__stack_pointer - i32.const 24 + i32.const 40 i32.sub global.set $~lib/memory/__stack_pointer call $~stack_check global.get $~lib/memory/__stack_pointer i32.const 0 - i32.const 24 + i32.const 40 memory.fill global.get $~lib/memory/__stack_pointer i32.const 0 - call $"~lib/map/Map#constructor" + i32.const 0 + global.set $~argumentsLength + i32.const 0 + call $"~lib/map/Map#constructor@varargs" local.tee $map i32.store i32.const 0 @@ -20672,29 +27231,29 @@ i32.lt_u if local.get $map - local.set $12 + local.set $17 global.get $~lib/memory/__stack_pointer - local.get $12 + local.get $17 i32.store offset=4 - local.get $12 + local.get $17 local.get $k call $"~lib/map/Map#has" i32.eqz i32.eqz if i32.const 0 - i32.const 544 - i32.const 6 + i32.const 752 + i32.const 7 i32.const 5 call $~lib/builtins/abort unreachable end local.get $map - local.set $12 + local.set $17 global.get $~lib/memory/__stack_pointer - local.get $12 + local.get $17 i32.store offset=4 - local.get $12 + local.get $17 local.get $k i32.const 10 local.get $k @@ -20702,28 +27261,28 @@ call $"~lib/map/Map#set" drop local.get $map - local.set $12 + local.set $17 global.get $~lib/memory/__stack_pointer - local.get $12 + local.get $17 i32.store offset=4 - local.get $12 + local.get $17 local.get $k call $"~lib/map/Map#has" i32.eqz if i32.const 0 - i32.const 544 - i32.const 8 + i32.const 752 + i32.const 9 i32.const 5 call $~lib/builtins/abort unreachable end local.get $map - local.set $12 + local.set $17 global.get $~lib/memory/__stack_pointer - local.get $12 + local.get $17 i32.store offset=4 - local.get $12 + local.get $17 local.get $k call $"~lib/map/Map#get" i32.const 10 @@ -20733,8 +27292,8 @@ i32.eqz if i32.const 0 - i32.const 544 - i32.const 9 + i32.const 752 + i32.const 10 i32.const 5 call $~lib/builtins/abort unreachable @@ -20747,19 +27306,19 @@ end end local.get $map - local.set $12 + local.set $17 global.get $~lib/memory/__stack_pointer - local.get $12 + local.get $17 i32.store offset=4 - local.get $12 + local.get $17 call $"~lib/map/Map#get:size" i32.const 100 i32.eq i32.eqz if i32.const 0 - i32.const 544 - i32.const 11 + i32.const 752 + i32.const 12 i32.const 3 call $~lib/builtins/abort unreachable @@ -20772,28 +27331,28 @@ i32.lt_u if local.get $map - local.set $12 + local.set $17 global.get $~lib/memory/__stack_pointer - local.get $12 + local.get $17 i32.store offset=4 - local.get $12 + local.get $17 local.get $k|2 call $"~lib/map/Map#has" i32.eqz if i32.const 0 - i32.const 544 - i32.const 15 + i32.const 752 + i32.const 16 i32.const 5 call $~lib/builtins/abort unreachable end local.get $map - local.set $12 + local.set $17 global.get $~lib/memory/__stack_pointer - local.get $12 + local.get $17 i32.store offset=4 - local.get $12 + local.get $17 local.get $k|2 call $"~lib/map/Map#get" i32.const 10 @@ -20803,18 +27362,18 @@ i32.eqz if i32.const 0 - i32.const 544 - i32.const 16 + i32.const 752 + i32.const 17 i32.const 5 call $~lib/builtins/abort unreachable end local.get $map - local.set $12 + local.set $17 global.get $~lib/memory/__stack_pointer - local.get $12 + local.get $17 i32.store offset=4 - local.get $12 + local.get $17 local.get $k|2 i32.const 20 local.get $k|2 @@ -20822,28 +27381,28 @@ call $"~lib/map/Map#set" drop local.get $map - local.set $12 + local.set $17 global.get $~lib/memory/__stack_pointer - local.get $12 + local.get $17 i32.store offset=4 - local.get $12 + local.get $17 local.get $k|2 call $"~lib/map/Map#has" i32.eqz if i32.const 0 - i32.const 544 - i32.const 18 + i32.const 752 + i32.const 19 i32.const 5 call $~lib/builtins/abort unreachable end local.get $map - local.set $12 + local.set $17 global.get $~lib/memory/__stack_pointer - local.get $12 + local.get $17 i32.store offset=4 - local.get $12 + local.get $17 local.get $k|2 call $"~lib/map/Map#get" i32.const 20 @@ -20853,8 +27412,8 @@ i32.eqz if i32.const 0 - i32.const 544 - i32.const 19 + i32.const 752 + i32.const 20 i32.const 5 call $~lib/builtins/abort unreachable @@ -20867,51 +27426,57 @@ end end local.get $map - local.set $12 + local.set $17 global.get $~lib/memory/__stack_pointer - local.get $12 + local.get $17 i32.store offset=4 - local.get $12 + local.get $17 call $"~lib/map/Map#get:size" i32.const 100 i32.eq i32.eqz if i32.const 0 - i32.const 544 - i32.const 21 + i32.const 752 + i32.const 22 i32.const 3 call $~lib/builtins/abort unreachable end global.get $~lib/memory/__stack_pointer local.get $map - local.set $12 + local.set $17 global.get $~lib/memory/__stack_pointer - local.get $12 + local.get $17 i32.store offset=4 - local.get $12 + local.get $17 call $"~lib/map/Map#keys" local.tee $keys i32.store offset=8 global.get $~lib/memory/__stack_pointer local.get $map - local.set $12 + local.set $17 global.get $~lib/memory/__stack_pointer - local.get $12 + local.get $17 i32.store offset=4 - local.get $12 + local.get $17 call $"~lib/map/Map#values" local.tee $vals i32.store offset=12 global.get $~lib/memory/__stack_pointer i32.const 0 - call $"~lib/map/Map#constructor" + i32.const 0 + global.set $~argumentsLength + i32.const 0 + call $"~lib/map/Map#constructor@varargs" local.tee $keyMap i32.store offset=16 global.get $~lib/memory/__stack_pointer i32.const 0 - call $"~lib/map/Map#constructor" + i32.const 0 + global.set $~argumentsLength + i32.const 0 + call $"~lib/map/Map#constructor@varargs" local.tee $valMap i32.store offset=20 i32.const 0 @@ -20919,55 +27484,55 @@ loop $for-loop|2 local.get $index local.get $keys - local.set $12 + local.set $17 global.get $~lib/memory/__stack_pointer - local.get $12 + local.get $17 i32.store offset=4 - local.get $12 + local.get $17 call $~lib/array/Array#get:length i32.lt_s if local.get $keys - local.set $12 + local.set $17 global.get $~lib/memory/__stack_pointer - local.get $12 + local.get $17 i32.store offset=4 - local.get $12 + local.get $17 local.get $index call $~lib/array/Array#__get local.set $key local.get $vals - local.set $12 + local.set $17 global.get $~lib/memory/__stack_pointer - local.get $12 + local.get $17 i32.store offset=4 - local.get $12 + local.get $17 local.get $index call $~lib/array/Array#__get local.set $value local.get $map - local.set $12 + local.set $17 global.get $~lib/memory/__stack_pointer - local.get $12 + local.get $17 i32.store offset=4 - local.get $12 + local.get $17 local.get $key call $"~lib/map/Map#has" i32.eqz if i32.const 0 - i32.const 544 - i32.const 31 + i32.const 752 + i32.const 32 i32.const 5 call $~lib/builtins/abort unreachable end local.get $map - local.set $12 + local.set $17 global.get $~lib/memory/__stack_pointer - local.get $12 + local.get $17 i32.store offset=4 - local.get $12 + local.get $17 local.get $value i32.const 20 i32.sub @@ -20975,28 +27540,28 @@ i32.eqz if i32.const 0 - i32.const 544 - i32.const 32 + i32.const 752 + i32.const 33 i32.const 5 call $~lib/builtins/abort unreachable end local.get $keyMap - local.set $12 + local.set $17 global.get $~lib/memory/__stack_pointer - local.get $12 + local.get $17 i32.store offset=4 - local.get $12 + local.get $17 local.get $key local.get $key call $"~lib/map/Map#set" drop local.get $valMap - local.set $12 + local.set $17 global.get $~lib/memory/__stack_pointer - local.get $12 + local.get $17 i32.store offset=4 - local.get $12 + local.get $17 local.get $value i32.const 20 i32.sub @@ -21013,37 +27578,37 @@ end end local.get $keyMap - local.set $12 + local.set $17 global.get $~lib/memory/__stack_pointer - local.get $12 + local.get $17 i32.store offset=4 - local.get $12 + local.get $17 call $"~lib/map/Map#get:size" i32.const 100 i32.eq i32.eqz if i32.const 0 - i32.const 544 - i32.const 36 + i32.const 752 + i32.const 37 i32.const 3 call $~lib/builtins/abort unreachable end local.get $valMap - local.set $12 + local.set $17 global.get $~lib/memory/__stack_pointer - local.get $12 + local.get $17 i32.store offset=4 - local.get $12 + local.get $17 call $"~lib/map/Map#get:size" i32.const 100 i32.eq i32.eqz if i32.const 0 - i32.const 544 - i32.const 37 + i32.const 752 + i32.const 38 i32.const 3 call $~lib/builtins/abort unreachable @@ -21056,28 +27621,28 @@ i32.lt_u if local.get $map - local.set $12 + local.set $17 global.get $~lib/memory/__stack_pointer - local.get $12 + local.get $17 i32.store offset=4 - local.get $12 + local.get $17 local.get $k|10 call $"~lib/map/Map#has" i32.eqz if i32.const 0 - i32.const 544 - i32.const 41 + i32.const 752 + i32.const 42 i32.const 5 call $~lib/builtins/abort unreachable end local.get $map - local.set $12 + local.set $17 global.get $~lib/memory/__stack_pointer - local.get $12 + local.get $17 i32.store offset=4 - local.get $12 + local.get $17 local.get $k|10 call $"~lib/map/Map#get" i32.const 20 @@ -21087,35 +27652,35 @@ i32.eqz if i32.const 0 - i32.const 544 - i32.const 42 + i32.const 752 + i32.const 43 i32.const 5 call $~lib/builtins/abort unreachable end local.get $map - local.set $12 + local.set $17 global.get $~lib/memory/__stack_pointer - local.get $12 + local.get $17 i32.store offset=4 - local.get $12 + local.get $17 local.get $k|10 call $"~lib/map/Map#delete" drop local.get $map - local.set $12 + local.set $17 global.get $~lib/memory/__stack_pointer - local.get $12 + local.get $17 i32.store offset=4 - local.get $12 + local.get $17 local.get $k|10 call $"~lib/map/Map#has" i32.eqz i32.eqz if i32.const 0 - i32.const 544 - i32.const 44 + i32.const 752 + i32.const 45 i32.const 5 call $~lib/builtins/abort unreachable @@ -21128,19 +27693,19 @@ end end local.get $map - local.set $12 + local.set $17 global.get $~lib/memory/__stack_pointer - local.get $12 + local.get $17 i32.store offset=4 - local.get $12 + local.get $17 call $"~lib/map/Map#get:size" i32.const 50 i32.eq i32.eqz if i32.const 0 - i32.const 544 - i32.const 46 + i32.const 752 + i32.const 47 i32.const 3 call $~lib/builtins/abort unreachable @@ -21153,29 +27718,29 @@ i32.lt_u if local.get $map - local.set $12 + local.set $17 global.get $~lib/memory/__stack_pointer - local.get $12 + local.get $17 i32.store offset=4 - local.get $12 + local.get $17 local.get $k|11 call $"~lib/map/Map#has" i32.eqz i32.eqz if i32.const 0 - i32.const 544 - i32.const 50 + i32.const 752 + i32.const 51 i32.const 5 call $~lib/builtins/abort unreachable end local.get $map - local.set $12 + local.set $17 global.get $~lib/memory/__stack_pointer - local.get $12 + local.get $17 i32.store offset=4 - local.get $12 + local.get $17 local.get $k|11 i32.const 10 local.get $k|11 @@ -21183,45 +27748,45 @@ call $"~lib/map/Map#set" drop local.get $map - local.set $12 + local.set $17 global.get $~lib/memory/__stack_pointer - local.get $12 + local.get $17 i32.store offset=4 - local.get $12 + local.get $17 local.get $k|11 call $"~lib/map/Map#has" i32.eqz if i32.const 0 - i32.const 544 - i32.const 52 + i32.const 752 + i32.const 53 i32.const 5 call $~lib/builtins/abort unreachable end local.get $map - local.set $12 + local.set $17 global.get $~lib/memory/__stack_pointer - local.get $12 + local.get $17 i32.store offset=4 - local.get $12 + local.get $17 local.get $k|11 call $"~lib/map/Map#delete" drop local.get $map - local.set $12 + local.set $17 global.get $~lib/memory/__stack_pointer - local.get $12 + local.get $17 i32.store offset=4 - local.get $12 + local.get $17 local.get $k|11 call $"~lib/map/Map#has" i32.eqz i32.eqz if i32.const 0 - i32.const 544 - i32.const 54 + i32.const 752 + i32.const 55 i32.const 5 call $~lib/builtins/abort unreachable @@ -21234,236 +27799,240 @@ end end local.get $map - local.set $12 + local.set $17 global.get $~lib/memory/__stack_pointer - local.get $12 + local.get $17 i32.store offset=4 - local.get $12 + local.get $17 call $"~lib/map/Map#get:size" i32.const 50 i32.eq i32.eqz if i32.const 0 - i32.const 544 - i32.const 56 + i32.const 752 + i32.const 57 i32.const 3 call $~lib/builtins/abort unreachable end local.get $map - local.set $12 + local.set $17 global.get $~lib/memory/__stack_pointer - local.get $12 + local.get $17 i32.store offset=4 - local.get $12 + local.get $17 call $"~lib/map/Map#clear" local.get $map - local.set $12 + local.set $17 global.get $~lib/memory/__stack_pointer - local.get $12 + local.get $17 i32.store offset=4 - local.get $12 + local.get $17 call $"~lib/map/Map#get:size" i32.const 0 i32.eq i32.eqz if i32.const 0 - i32.const 544 - i32.const 60 + i32.const 752 + i32.const 61 i32.const 3 call $~lib/builtins/abort unreachable end global.get $~lib/memory/__stack_pointer - i32.const 24 - i32.add - global.set $~lib/memory/__stack_pointer - ) - (func $"~lib/map/Map#constructor" (param $this i32) (result i32) - (local $1 i32) - global.get $~lib/memory/__stack_pointer - i32.const 12 - i32.sub - global.set $~lib/memory/__stack_pointer - call $~stack_check - global.get $~lib/memory/__stack_pointer - i64.const 0 - i64.store - global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.store offset=8 - local.get $this - i32.eqz - if - global.get $~lib/memory/__stack_pointer - i32.const 24 - i32.const 21 - call $~lib/rt/itcms/__new - local.tee $this - i32.store - end - local.get $this - local.set $1 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - local.get $1 - i32.const 0 - i32.const 4 - i32.const 4 - i32.mul - call $~lib/arraybuffer/ArrayBuffer#constructor - local.set $1 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=8 - local.get $1 - call $"~lib/map/Map#set:buckets" - local.get $this - local.set $1 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - local.get $1 - i32.const 4 - i32.const 1 - i32.sub - call $"~lib/map/Map#set:bucketsMask" - local.get $this - local.set $1 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - local.get $1 i32.const 0 - i32.const 4 - block $"~lib/map/ENTRY_SIZE|inlined.0" (result i32) - i32.const 16 - br $"~lib/map/ENTRY_SIZE|inlined.0" + i32.const 2 + i32.const 38 + i32.const 1392 + call $~lib/rt/__newArray + local.tee $initialEntries + i32.store offset=24 + i32.const 0 + local.set $k|14 + loop $for-loop|5 + local.get $k|14 + i32.const 100 + i32.lt_u + if + local.get $initialEntries + local.set $17 + global.get $~lib/memory/__stack_pointer + local.get $17 + i32.store offset=4 + local.get $17 + global.get $~lib/memory/__stack_pointer + i32.const 0 + call $"~lib/map/KeyValue#constructor" + local.tee $15 + i32.store offset=32 + local.get $15 + local.set $17 + global.get $~lib/memory/__stack_pointer + local.get $17 + i32.store offset=36 + local.get $17 + local.get $k|14 + call $"~lib/map/KeyValue#set:key" + local.get $15 + local.set $17 + global.get $~lib/memory/__stack_pointer + local.get $17 + i32.store offset=36 + local.get $17 + i32.const 10 + local.get $k|14 + i32.add + call $"~lib/map/KeyValue#set:value" + local.get $15 + local.set $17 + global.get $~lib/memory/__stack_pointer + local.get $17 + i32.store offset=28 + local.get $17 + call $"~lib/array/Array<~lib/map/KeyValue>#push" + drop + local.get $k|14 + i32.const 1 + i32.add + local.set $k|14 + br $for-loop|5 + end end - i32.mul - call $~lib/arraybuffer/ArrayBuffer#constructor - local.set $1 global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=8 - local.get $1 - call $"~lib/map/Map#set:entries" - local.get $this - local.set $1 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - local.get $1 - i32.const 4 - call $"~lib/map/Map#set:entriesCapacity" - local.get $this - local.set $1 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - local.get $1 i32.const 0 - call $"~lib/map/Map#set:entriesOffset" - local.get $this - local.set $1 + local.get $initialEntries + local.set $17 global.get $~lib/memory/__stack_pointer - local.get $1 + local.get $17 i32.store offset=4 - local.get $1 - i32.const 0 - call $"~lib/map/Map#set:entriesCount" - local.get $this - local.set $1 - global.get $~lib/memory/__stack_pointer - i32.const 12 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $1 - ) - (func $"~lib/map/Map#find" (param $this i32) (param $key i64) (param $hashCode i32) (result i32) - (local $entry i32) - (local $taggedNext i32) - (local $5 i32) - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.sub - global.set $~lib/memory/__stack_pointer - call $~stack_check - global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.store - local.get $this - local.set $5 - global.get $~lib/memory/__stack_pointer - local.get $5 + local.get $17 + call $"~lib/map/Map#constructor" + local.tee $map i32.store - local.get $5 - call $"~lib/map/Map#get:buckets" - local.get $hashCode - local.get $this - local.set $5 + local.get $map + local.set $17 global.get $~lib/memory/__stack_pointer - local.get $5 - i32.store - local.get $5 - call $"~lib/map/Map#get:bucketsMask" - i32.and - i32.const 4 - i32.mul - i32.add - i32.load - local.set $entry - loop $while-continue|0 - local.get $entry + local.get $17 + i32.store offset=4 + local.get $17 + call $"~lib/map/Map#get:size" + i32.const 100 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 752 + i32.const 74 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + i32.const 0 + local.set $k|16 + loop $for-loop|6 + local.get $k|16 + i32.const 100 + i32.lt_u if - local.get $entry - call $"~lib/map/MapEntry#get:taggedNext" - local.set $taggedNext - local.get $taggedNext - i32.const 1 - i32.and + local.get $map + local.set $17 + global.get $~lib/memory/__stack_pointer + local.get $17 + i32.store offset=4 + local.get $17 + local.get $k|16 + call $"~lib/map/Map#has" i32.eqz - if (result i32) - local.get $entry - call $"~lib/map/MapEntry#get:key" - local.get $key - i64.eq - else + if i32.const 0 + i32.const 752 + i32.const 76 + i32.const 5 + call $~lib/builtins/abort + unreachable end + local.get $map + local.set $17 + global.get $~lib/memory/__stack_pointer + local.get $17 + i32.store offset=4 + local.get $17 + local.get $k|16 + call $"~lib/map/Map#get" + i32.const 10 + local.get $k|16 + i32.add + i32.eq + i32.eqz if - local.get $entry - local.set $5 - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $5 - return + i32.const 0 + i32.const 752 + i32.const 77 + i32.const 5 + call $~lib/builtins/abort + unreachable end - local.get $taggedNext + local.get $map + local.set $17 + global.get $~lib/memory/__stack_pointer + local.get $17 + i32.store offset=4 + local.get $17 + local.get $k|16 + call $"~lib/map/Map#delete" + drop + local.get $map + local.set $17 + global.get $~lib/memory/__stack_pointer + local.get $17 + i32.store offset=4 + local.get $17 + local.get $k|16 + call $"~lib/map/Map#has" + i32.eqz + i32.eqz + if + i32.const 0 + i32.const 752 + i32.const 79 + i32.const 5 + call $~lib/builtins/abort + unreachable + end + local.get $k|16 i32.const 1 - i32.const -1 - i32.xor - i32.and - local.set $entry - br $while-continue|0 + i32.add + local.set $k|16 + br $for-loop|6 end end + local.get $map + local.set $17 + global.get $~lib/memory/__stack_pointer + local.get $17 + i32.store offset=4 + local.get $17 + call $"~lib/map/Map#get:size" i32.const 0 - local.set $5 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 752 + i32.const 81 + i32.const 3 + call $~lib/builtins/abort + unreachable + end global.get $~lib/memory/__stack_pointer - i32.const 4 + i32.const 40 i32.add global.set $~lib/memory/__stack_pointer - local.get $5 - return ) - (func $"~lib/map/Map#has" (param $this i32) (param $key i64) (result i32) - (local $2 i32) + (func $"~lib/array/Array<~lib/map/KeyValue>#get:length" (param $this i32) (result i32) + (local $1 i32) global.get $~lib/memory/__stack_pointer i32.const 4 i32.sub @@ -21473,23 +28042,18 @@ i32.const 0 i32.store local.get $this - local.set $2 + local.set $1 global.get $~lib/memory/__stack_pointer - local.get $2 + local.get $1 i32.store - local.get $2 - local.get $key - local.get $key - call $~lib/util/hash/HASH - call $"~lib/map/Map#find" - i32.const 0 - i32.ne - local.set $2 + local.get $1 + call $"~lib/array/Array<~lib/map/KeyValue>#get:length_" + local.set $1 global.get $~lib/memory/__stack_pointer i32.const 4 i32.add global.set $~lib/memory/__stack_pointer - local.get $2 + local.get $1 return ) (func $"~lib/map/Map#rehash" (param $this i32) (param $newBucketsMask i32) @@ -21538,9 +28102,9 @@ global.get $~lib/memory/__stack_pointer i32.const 0 local.get $newEntriesCapacity - block $"~lib/map/ENTRY_SIZE|inlined.1" (result i32) + block $"~lib/map/ENTRY_SIZE|inlined.0" (result i32) i32.const 16 - br $"~lib/map/ENTRY_SIZE|inlined.1" + br $"~lib/map/ENTRY_SIZE|inlined.0" end i32.mul call $~lib/arraybuffer/ArrayBuffer#constructor @@ -21562,9 +28126,9 @@ i32.store offset=8 local.get $14 call $"~lib/map/Map#get:entriesOffset" - block $"~lib/map/ENTRY_SIZE|inlined.2" (result i32) + block $"~lib/map/ENTRY_SIZE|inlined.1" (result i32) i32.const 16 - br $"~lib/map/ENTRY_SIZE|inlined.2" + br $"~lib/map/ENTRY_SIZE|inlined.1" end i32.mul i32.add @@ -21615,17 +28179,17 @@ local.get $newPtr i32.store local.get $newPtr - block $"~lib/map/ENTRY_SIZE|inlined.3" (result i32) + block $"~lib/map/ENTRY_SIZE|inlined.2" (result i32) i32.const 16 - br $"~lib/map/ENTRY_SIZE|inlined.3" + br $"~lib/map/ENTRY_SIZE|inlined.2" end i32.add local.set $newPtr end local.get $oldPtr - block $"~lib/map/ENTRY_SIZE|inlined.4" (result i32) + block $"~lib/map/ENTRY_SIZE|inlined.3" (result i32) i32.const 16 - br $"~lib/map/ENTRY_SIZE|inlined.4" + br $"~lib/map/ENTRY_SIZE|inlined.3" end i32.add local.set $oldPtr @@ -21693,6 +28257,550 @@ i32.add global.set $~lib/memory/__stack_pointer ) + (func $"~lib/array/Array<~lib/map/KeyValue>#__get" (param $this i32) (param $index i32) (result i32) + (local $value i32) + (local $3 i32) + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.sub + global.set $~lib/memory/__stack_pointer + call $~stack_check + global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store + local.get $index + local.get $this + local.set $3 + global.get $~lib/memory/__stack_pointer + local.get $3 + i32.store + local.get $3 + call $"~lib/array/Array<~lib/map/KeyValue>#get:length_" + i32.ge_u + if + i32.const 336 + i32.const 544 + i32.const 114 + i32.const 42 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + local.get $this + local.set $3 + global.get $~lib/memory/__stack_pointer + local.get $3 + i32.store + local.get $3 + call $"~lib/array/Array<~lib/map/KeyValue>#get:dataStart" + local.get $index + i32.const 2 + i32.shl + i32.add + i32.load + local.tee $value + i32.store offset=4 + i32.const 1 + drop + i32.const 0 + i32.eqz + drop + local.get $value + i32.eqz + if + i32.const 592 + i32.const 544 + i32.const 118 + i32.const 40 + call $~lib/builtins/abort + unreachable + end + local.get $value + local.set $3 + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $3 + return + ) + (func $"~lib/map/Map#find" (param $this i32) (param $key i64) (param $hashCode i32) (result i32) + (local $entry i32) + (local $taggedNext i32) + (local $5 i32) + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.sub + global.set $~lib/memory/__stack_pointer + call $~stack_check + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store + local.get $this + local.set $5 + global.get $~lib/memory/__stack_pointer + local.get $5 + i32.store + local.get $5 + call $"~lib/map/Map#get:buckets" + local.get $hashCode + local.get $this + local.set $5 + global.get $~lib/memory/__stack_pointer + local.get $5 + i32.store + local.get $5 + call $"~lib/map/Map#get:bucketsMask" + i32.and + i32.const 4 + i32.mul + i32.add + i32.load + local.set $entry + loop $while-continue|0 + local.get $entry + if + local.get $entry + call $"~lib/map/MapEntry#get:taggedNext" + local.set $taggedNext + local.get $taggedNext + i32.const 1 + i32.and + i32.eqz + if (result i32) + local.get $entry + call $"~lib/map/MapEntry#get:key" + local.get $key + i64.eq + else + i32.const 0 + end + if + local.get $entry + local.set $5 + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $5 + return + end + local.get $taggedNext + i32.const 1 + i32.const -1 + i32.xor + i32.and + local.set $entry + br $while-continue|0 + end + end + i32.const 0 + local.set $5 + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $5 + return + ) + (func $"~lib/map/Map#constructor" (param $this i32) (param $initialEntries i32) (result i32) + (local $entriesLength i32) + (local $i i32) + (local $key i64) + (local $value i32) + (local $hashCode i32) + (local $entry i32) + (local $entries i32) + (local $9 i32) + (local $entry|10 i32) + (local $bucketPtrBase i32) + (local $12 i32) + global.get $~lib/memory/__stack_pointer + i32.const 16 + i32.sub + global.set $~lib/memory/__stack_pointer + call $~stack_check + global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store + global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store offset=8 + local.get $this + i32.eqz + if + global.get $~lib/memory/__stack_pointer + i32.const 24 + i32.const 43 + call $~lib/rt/itcms/__new + local.tee $this + i32.store + end + local.get $this + local.set $12 + global.get $~lib/memory/__stack_pointer + local.get $12 + i32.store offset=4 + local.get $12 + i32.const 0 + i32.const 4 + i32.const 4 + i32.mul + call $~lib/arraybuffer/ArrayBuffer#constructor + local.set $12 + global.get $~lib/memory/__stack_pointer + local.get $12 + i32.store offset=8 + local.get $12 + call $"~lib/map/Map#set:buckets" + local.get $this + local.set $12 + global.get $~lib/memory/__stack_pointer + local.get $12 + i32.store offset=4 + local.get $12 + i32.const 4 + i32.const 1 + i32.sub + call $"~lib/map/Map#set:bucketsMask" + local.get $this + local.set $12 + global.get $~lib/memory/__stack_pointer + local.get $12 + i32.store offset=4 + local.get $12 + i32.const 0 + i32.const 4 + block $"~lib/map/ENTRY_SIZE|inlined.5" (result i32) + i32.const 16 + br $"~lib/map/ENTRY_SIZE|inlined.5" + end + i32.mul + call $~lib/arraybuffer/ArrayBuffer#constructor + local.set $12 + global.get $~lib/memory/__stack_pointer + local.get $12 + i32.store offset=8 + local.get $12 + call $"~lib/map/Map#set:entries" + local.get $this + local.set $12 + global.get $~lib/memory/__stack_pointer + local.get $12 + i32.store offset=4 + local.get $12 + i32.const 4 + call $"~lib/map/Map#set:entriesCapacity" + local.get $this + local.set $12 + global.get $~lib/memory/__stack_pointer + local.get $12 + i32.store offset=4 + local.get $12 + i32.const 0 + call $"~lib/map/Map#set:entriesOffset" + local.get $this + local.set $12 + global.get $~lib/memory/__stack_pointer + local.get $12 + i32.store offset=4 + local.get $12 + i32.const 0 + call $"~lib/map/Map#set:entriesCount" + local.get $initialEntries + local.set $12 + global.get $~lib/memory/__stack_pointer + local.get $12 + i32.store offset=4 + local.get $12 + call $"~lib/array/Array<~lib/map/KeyValue>#get:length" + local.set $entriesLength + local.get $entriesLength + i32.const 0 + i32.gt_s + if + local.get $entriesLength + local.get $this + local.set $12 + global.get $~lib/memory/__stack_pointer + local.get $12 + i32.store offset=4 + local.get $12 + call $"~lib/map/Map#get:entriesCapacity" + i32.ge_s + if + local.get $this + local.set $12 + global.get $~lib/memory/__stack_pointer + local.get $12 + i32.store offset=4 + local.get $12 + local.get $entriesLength + call $"~lib/map/Map#set:bucketsMask" + end + local.get $this + local.set $12 + global.get $~lib/memory/__stack_pointer + local.get $12 + i32.store offset=4 + local.get $12 + local.get $this + local.set $12 + global.get $~lib/memory/__stack_pointer + local.get $12 + i32.store offset=8 + local.get $12 + call $"~lib/map/Map#get:bucketsMask" + i32.const 1 + i32.shl + i32.const 1 + i32.or + call $"~lib/map/Map#rehash" + i32.const 0 + local.set $i + loop $for-loop|0 + local.get $i + local.get $entriesLength + i32.lt_s + if + local.get $initialEntries + local.set $12 + global.get $~lib/memory/__stack_pointer + local.get $12 + i32.store offset=8 + local.get $12 + local.get $i + call $"~lib/array/Array<~lib/map/KeyValue>#__get" + local.set $12 + global.get $~lib/memory/__stack_pointer + local.get $12 + i32.store offset=4 + local.get $12 + call $"~lib/map/KeyValue#get:key" + local.set $key + local.get $initialEntries + local.set $12 + global.get $~lib/memory/__stack_pointer + local.get $12 + i32.store offset=8 + local.get $12 + local.get $i + call $"~lib/array/Array<~lib/map/KeyValue>#__get" + local.set $12 + global.get $~lib/memory/__stack_pointer + local.get $12 + i32.store offset=4 + local.get $12 + call $"~lib/map/KeyValue#get:value" + local.set $value + local.get $key + call $~lib/util/hash/HASH + local.set $hashCode + local.get $this + local.set $12 + global.get $~lib/memory/__stack_pointer + local.get $12 + i32.store offset=4 + local.get $12 + local.get $key + local.get $hashCode + call $"~lib/map/Map#find" + local.set $entry + local.get $entry + if + local.get $entry + local.get $value + call $"~lib/map/MapEntry#set:value" + i32.const 0 + drop + else + global.get $~lib/memory/__stack_pointer + local.get $this + local.set $12 + global.get $~lib/memory/__stack_pointer + local.get $12 + i32.store offset=4 + local.get $12 + call $"~lib/map/Map#get:entries" + local.tee $entries + i32.store offset=12 + local.get $entries + local.get $this + local.set $12 + global.get $~lib/memory/__stack_pointer + local.get $12 + i32.store offset=4 + local.get $12 + local.get $this + local.set $12 + global.get $~lib/memory/__stack_pointer + local.get $12 + i32.store offset=8 + local.get $12 + call $"~lib/map/Map#get:entriesOffset" + local.tee $9 + i32.const 1 + i32.add + call $"~lib/map/Map#set:entriesOffset" + local.get $9 + block $"~lib/map/ENTRY_SIZE|inlined.4" (result i32) + i32.const 16 + br $"~lib/map/ENTRY_SIZE|inlined.4" + end + i32.mul + i32.add + local.set $entry|10 + local.get $entry|10 + local.get $key + call $"~lib/map/MapEntry#set:key" + i32.const 0 + drop + local.get $entry|10 + local.get $value + call $"~lib/map/MapEntry#set:value" + i32.const 0 + drop + local.get $this + local.set $12 + global.get $~lib/memory/__stack_pointer + local.get $12 + i32.store offset=4 + local.get $12 + local.get $this + local.set $12 + global.get $~lib/memory/__stack_pointer + local.get $12 + i32.store offset=8 + local.get $12 + call $"~lib/map/Map#get:entriesCount" + i32.const 1 + i32.add + call $"~lib/map/Map#set:entriesCount" + local.get $this + local.set $12 + global.get $~lib/memory/__stack_pointer + local.get $12 + i32.store offset=4 + local.get $12 + call $"~lib/map/Map#get:buckets" + local.get $hashCode + local.get $this + local.set $12 + global.get $~lib/memory/__stack_pointer + local.get $12 + i32.store offset=4 + local.get $12 + call $"~lib/map/Map#get:bucketsMask" + i32.and + i32.const 4 + i32.mul + i32.add + local.set $bucketPtrBase + local.get $entry|10 + local.get $bucketPtrBase + i32.load + call $"~lib/map/MapEntry#set:taggedNext" + local.get $bucketPtrBase + local.get $entry|10 + i32.store + end + local.get $i + i32.const 1 + i32.add + local.set $i + br $for-loop|0 + end + end + end + local.get $this + local.set $12 + global.get $~lib/memory/__stack_pointer + i32.const 16 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $12 + ) + (func $"~lib/map/Map#constructor@varargs" (param $this i32) (param $initialEntries i32) (result i32) + (local $2 i32) + (local $3 i32) + global.get $~lib/memory/__stack_pointer + i32.const 12 + i32.sub + global.set $~lib/memory/__stack_pointer + call $~stack_check + global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store offset=8 + block $1of1 + block $0of1 + block $outOfRange + global.get $~argumentsLength + br_table $0of1 $1of1 $outOfRange + end + unreachable + end + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.const 2 + i32.const 45 + i32.const 1424 + call $~lib/rt/__newArray + local.tee $initialEntries + i32.store + end + local.get $this + local.set $3 + global.get $~lib/memory/__stack_pointer + local.get $3 + i32.store offset=4 + local.get $3 + local.get $initialEntries + local.set $3 + global.get $~lib/memory/__stack_pointer + local.get $3 + i32.store offset=8 + local.get $3 + call $"~lib/map/Map#constructor" + local.set $3 + global.get $~lib/memory/__stack_pointer + i32.const 12 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $3 + ) + (func $"~lib/map/Map#has" (param $this i32) (param $key i64) (result i32) + (local $2 i32) + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.sub + global.set $~lib/memory/__stack_pointer + call $~stack_check + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store + local.get $this + local.set $2 + global.get $~lib/memory/__stack_pointer + local.get $2 + i32.store + local.get $2 + local.get $key + local.get $key + call $~lib/util/hash/HASH + call $"~lib/map/Map#find" + i32.const 0 + i32.ne + local.set $2 + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $2 + return + ) (func $"~lib/map/Map#set" (param $this i32) (param $key i64) (param $value i32) (result i32) (local $hashCode i32) (local $entry i32) @@ -21825,9 +28933,9 @@ i32.add call $"~lib/map/Map#set:entriesOffset" local.get $6 - block $"~lib/map/ENTRY_SIZE|inlined.5" (result i32) + block $"~lib/map/ENTRY_SIZE|inlined.6" (result i32) i32.const 16 - br $"~lib/map/ENTRY_SIZE|inlined.5" + br $"~lib/map/ENTRY_SIZE|inlined.6" end i32.mul i32.add @@ -21920,9 +29028,9 @@ local.get $entry i32.eqz if - i32.const 592 - i32.const 656 - i32.const 105 + i32.const 800 + i32.const 864 + i32.const 148 i32.const 17 call $~lib/builtins/abort unreachable @@ -21984,7 +29092,7 @@ if global.get $~lib/memory/__stack_pointer i32.const 16 - i32.const 22 + i32.const 46 call $~lib/rt/itcms/__new local.tee $this i32.store @@ -22027,8 +29135,8 @@ i32.shr_u i32.gt_u if - i32.const 432 - i32.const 704 + i32.const 32 + i32.const 544 i32.const 70 i32.const 60 call $~lib/builtins/abort @@ -22124,8 +29232,8 @@ i32.const 0 i32.lt_s if - i32.const 224 - i32.const 704 + i32.const 336 + i32.const 544 i32.const 130 i32.const 22 call $~lib/builtins/abort @@ -22247,9 +29355,9 @@ if local.get $start local.get $i - block $"~lib/map/ENTRY_SIZE|inlined.6" (result i32) + block $"~lib/map/ENTRY_SIZE|inlined.7" (result i32) i32.const 16 - br $"~lib/map/ENTRY_SIZE|inlined.6" + br $"~lib/map/ENTRY_SIZE|inlined.7" end i32.mul i32.add @@ -22350,9 +29458,9 @@ if local.get $start local.get $i - block $"~lib/map/ENTRY_SIZE|inlined.7" (result i32) + block $"~lib/map/ENTRY_SIZE|inlined.8" (result i32) i32.const 16 - br $"~lib/map/ENTRY_SIZE|inlined.7" + br $"~lib/map/ENTRY_SIZE|inlined.8" end i32.mul i32.add @@ -22403,10 +29511,47 @@ local.get $8 return ) - (func $"~lib/map/Map#constructor" (param $this i32) (result i32) + (func $"~lib/array/Array<~lib/map/KeyValue>#get:length" (param $this i32) (result i32) (local $1 i32) global.get $~lib/memory/__stack_pointer - i32.const 12 + i32.const 4 + i32.sub + global.set $~lib/memory/__stack_pointer + call $~stack_check + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store + local.get $this + local.set $1 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store + local.get $1 + call $"~lib/array/Array<~lib/map/KeyValue>#get:length_" + local.set $1 + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $1 + return + ) + (func $"~lib/map/Map#rehash" (param $this i32) (param $newBucketsMask i32) + (local $newBucketsCapacity i32) + (local $newBuckets i32) + (local $newEntriesCapacity i32) + (local $newEntries i32) + (local $oldPtr i32) + (local $oldEnd i32) + (local $newPtr i32) + (local $oldEntry i32) + (local $newEntry i32) + (local $oldEntryKey i64) + (local $newBucketIndex i32) + (local $newBucketPtrBase i32) + (local $14 i32) + global.get $~lib/memory/__stack_pointer + i32.const 16 i32.sub global.set $~lib/memory/__stack_pointer call $~stack_check @@ -22414,96 +29559,697 @@ i64.const 0 i64.store global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store offset=8 + local.get $newBucketsMask + i32.const 1 + i32.add + local.set $newBucketsCapacity + global.get $~lib/memory/__stack_pointer + i32.const 0 + local.get $newBucketsCapacity + i32.const 4 + i32.mul + call $~lib/arraybuffer/ArrayBuffer#constructor + local.tee $newBuckets + i32.store + local.get $newBucketsCapacity + i32.const 8 + i32.mul + i32.const 3 + i32.div_s + local.set $newEntriesCapacity + global.get $~lib/memory/__stack_pointer i32.const 0 + local.get $newEntriesCapacity + block $"~lib/map/ENTRY_SIZE|inlined.0" (result i32) + i32.const 24 + br $"~lib/map/ENTRY_SIZE|inlined.0" + end + i32.mul + call $~lib/arraybuffer/ArrayBuffer#constructor + local.tee $newEntries + i32.store offset=4 + local.get $this + local.set $14 + global.get $~lib/memory/__stack_pointer + local.get $14 + i32.store offset=8 + local.get $14 + call $"~lib/map/Map#get:entries" + local.set $oldPtr + local.get $oldPtr + local.get $this + local.set $14 + global.get $~lib/memory/__stack_pointer + local.get $14 + i32.store offset=8 + local.get $14 + call $"~lib/map/Map#get:entriesOffset" + block $"~lib/map/ENTRY_SIZE|inlined.1" (result i32) + i32.const 24 + br $"~lib/map/ENTRY_SIZE|inlined.1" + end + i32.mul + i32.add + local.set $oldEnd + local.get $newEntries + local.set $newPtr + loop $while-continue|0 + local.get $oldPtr + local.get $oldEnd + i32.ne + if + local.get $oldPtr + local.set $oldEntry + local.get $oldEntry + call $"~lib/map/MapEntry#get:taggedNext" + i32.const 1 + i32.and + i32.eqz + if + local.get $newPtr + local.set $newEntry + local.get $oldEntry + call $"~lib/map/MapEntry#get:key" + local.set $oldEntryKey + local.get $newEntry + local.get $oldEntryKey + call $"~lib/map/MapEntry#set:key" + local.get $newEntry + local.get $oldEntry + call $"~lib/map/MapEntry#get:value" + call $"~lib/map/MapEntry#set:value" + local.get $oldEntryKey + call $~lib/util/hash/HASH + local.get $newBucketsMask + i32.and + local.set $newBucketIndex + local.get $newBuckets + local.get $newBucketIndex + i32.const 4 + i32.mul + i32.add + local.set $newBucketPtrBase + local.get $newEntry + local.get $newBucketPtrBase + i32.load + call $"~lib/map/MapEntry#set:taggedNext" + local.get $newBucketPtrBase + local.get $newPtr + i32.store + local.get $newPtr + block $"~lib/map/ENTRY_SIZE|inlined.2" (result i32) + i32.const 24 + br $"~lib/map/ENTRY_SIZE|inlined.2" + end + i32.add + local.set $newPtr + end + local.get $oldPtr + block $"~lib/map/ENTRY_SIZE|inlined.3" (result i32) + i32.const 24 + br $"~lib/map/ENTRY_SIZE|inlined.3" + end + i32.add + local.set $oldPtr + br $while-continue|0 + end + end + local.get $this + local.set $14 + global.get $~lib/memory/__stack_pointer + local.get $14 + i32.store offset=8 + local.get $14 + local.get $newBuckets + local.set $14 + global.get $~lib/memory/__stack_pointer + local.get $14 + i32.store offset=12 + local.get $14 + call $"~lib/map/Map#set:buckets" + local.get $this + local.set $14 + global.get $~lib/memory/__stack_pointer + local.get $14 + i32.store offset=8 + local.get $14 + local.get $newBucketsMask + call $"~lib/map/Map#set:bucketsMask" + local.get $this + local.set $14 + global.get $~lib/memory/__stack_pointer + local.get $14 + i32.store offset=8 + local.get $14 + local.get $newEntries + local.set $14 + global.get $~lib/memory/__stack_pointer + local.get $14 + i32.store offset=12 + local.get $14 + call $"~lib/map/Map#set:entries" + local.get $this + local.set $14 + global.get $~lib/memory/__stack_pointer + local.get $14 i32.store offset=8 + local.get $14 + local.get $newEntriesCapacity + call $"~lib/map/Map#set:entriesCapacity" + local.get $this + local.set $14 + global.get $~lib/memory/__stack_pointer + local.get $14 + i32.store offset=8 + local.get $14 + local.get $this + local.set $14 + global.get $~lib/memory/__stack_pointer + local.get $14 + i32.store offset=12 + local.get $14 + call $"~lib/map/Map#get:entriesCount" + call $"~lib/map/Map#set:entriesOffset" + global.get $~lib/memory/__stack_pointer + i32.const 16 + i32.add + global.set $~lib/memory/__stack_pointer + ) + (func $"~lib/array/Array<~lib/map/KeyValue>#__get" (param $this i32) (param $index i32) (result i32) + (local $value i32) + (local $3 i32) + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.sub + global.set $~lib/memory/__stack_pointer + call $~stack_check + global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store + local.get $index + local.get $this + local.set $3 + global.get $~lib/memory/__stack_pointer + local.get $3 + i32.store + local.get $3 + call $"~lib/array/Array<~lib/map/KeyValue>#get:length_" + i32.ge_u + if + i32.const 336 + i32.const 544 + i32.const 114 + i32.const 42 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + local.get $this + local.set $3 + global.get $~lib/memory/__stack_pointer + local.get $3 + i32.store + local.get $3 + call $"~lib/array/Array<~lib/map/KeyValue>#get:dataStart" + local.get $index + i32.const 2 + i32.shl + i32.add + i32.load + local.tee $value + i32.store offset=4 + i32.const 1 + drop + i32.const 0 + i32.eqz + drop + local.get $value + i32.eqz + if + i32.const 592 + i32.const 544 + i32.const 118 + i32.const 40 + call $~lib/builtins/abort + unreachable + end + local.get $value + local.set $3 + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $3 + return + ) + (func $"~lib/map/Map#find" (param $this i32) (param $key i64) (param $hashCode i32) (result i32) + (local $entry i32) + (local $taggedNext i32) + (local $5 i32) + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.sub + global.set $~lib/memory/__stack_pointer + call $~stack_check + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store + local.get $this + local.set $5 + global.get $~lib/memory/__stack_pointer + local.get $5 + i32.store + local.get $5 + call $"~lib/map/Map#get:buckets" + local.get $hashCode + local.get $this + local.set $5 + global.get $~lib/memory/__stack_pointer + local.get $5 + i32.store + local.get $5 + call $"~lib/map/Map#get:bucketsMask" + i32.and + i32.const 4 + i32.mul + i32.add + i32.load + local.set $entry + loop $while-continue|0 + local.get $entry + if + local.get $entry + call $"~lib/map/MapEntry#get:taggedNext" + local.set $taggedNext + local.get $taggedNext + i32.const 1 + i32.and + i32.eqz + if (result i32) + local.get $entry + call $"~lib/map/MapEntry#get:key" + local.get $key + i64.eq + else + i32.const 0 + end + if + local.get $entry + local.set $5 + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $5 + return + end + local.get $taggedNext + i32.const 1 + i32.const -1 + i32.xor + i32.and + local.set $entry + br $while-continue|0 + end + end + i32.const 0 + local.set $5 + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $5 + return + ) + (func $"~lib/map/Map#constructor" (param $this i32) (param $initialEntries i32) (result i32) + (local $entriesLength i32) + (local $i i32) + (local $key i64) + (local $value i64) + (local $hashCode i32) + (local $entry i32) + (local $entries i32) + (local $9 i32) + (local $entry|10 i32) + (local $bucketPtrBase i32) + (local $12 i32) + global.get $~lib/memory/__stack_pointer + i32.const 16 + i32.sub + global.set $~lib/memory/__stack_pointer + call $~stack_check + global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store + global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store offset=8 local.get $this i32.eqz if global.get $~lib/memory/__stack_pointer i32.const 24 - i32.const 23 + i32.const 47 call $~lib/rt/itcms/__new local.tee $this i32.store end local.get $this - local.set $1 + local.set $12 global.get $~lib/memory/__stack_pointer - local.get $1 + local.get $12 i32.store offset=4 - local.get $1 + local.get $12 i32.const 0 i32.const 4 i32.const 4 i32.mul call $~lib/arraybuffer/ArrayBuffer#constructor - local.set $1 + local.set $12 global.get $~lib/memory/__stack_pointer - local.get $1 + local.get $12 i32.store offset=8 - local.get $1 + local.get $12 call $"~lib/map/Map#set:buckets" local.get $this - local.set $1 + local.set $12 global.get $~lib/memory/__stack_pointer - local.get $1 + local.get $12 i32.store offset=4 - local.get $1 + local.get $12 i32.const 4 i32.const 1 i32.sub call $"~lib/map/Map#set:bucketsMask" local.get $this - local.set $1 + local.set $12 global.get $~lib/memory/__stack_pointer - local.get $1 + local.get $12 i32.store offset=4 - local.get $1 + local.get $12 i32.const 0 i32.const 4 - block $"~lib/map/ENTRY_SIZE|inlined.0" (result i32) + block $"~lib/map/ENTRY_SIZE|inlined.5" (result i32) i32.const 24 - br $"~lib/map/ENTRY_SIZE|inlined.0" + br $"~lib/map/ENTRY_SIZE|inlined.5" end i32.mul call $~lib/arraybuffer/ArrayBuffer#constructor - local.set $1 + local.set $12 + global.get $~lib/memory/__stack_pointer + local.get $12 + i32.store offset=8 + local.get $12 + call $"~lib/map/Map#set:entries" + local.get $this + local.set $12 + global.get $~lib/memory/__stack_pointer + local.get $12 + i32.store offset=4 + local.get $12 + i32.const 4 + call $"~lib/map/Map#set:entriesCapacity" + local.get $this + local.set $12 + global.get $~lib/memory/__stack_pointer + local.get $12 + i32.store offset=4 + local.get $12 + i32.const 0 + call $"~lib/map/Map#set:entriesOffset" + local.get $this + local.set $12 + global.get $~lib/memory/__stack_pointer + local.get $12 + i32.store offset=4 + local.get $12 + i32.const 0 + call $"~lib/map/Map#set:entriesCount" + local.get $initialEntries + local.set $12 + global.get $~lib/memory/__stack_pointer + local.get $12 + i32.store offset=4 + local.get $12 + call $"~lib/array/Array<~lib/map/KeyValue>#get:length" + local.set $entriesLength + local.get $entriesLength + i32.const 0 + i32.gt_s + if + local.get $entriesLength + local.get $this + local.set $12 + global.get $~lib/memory/__stack_pointer + local.get $12 + i32.store offset=4 + local.get $12 + call $"~lib/map/Map#get:entriesCapacity" + i32.ge_s + if + local.get $this + local.set $12 + global.get $~lib/memory/__stack_pointer + local.get $12 + i32.store offset=4 + local.get $12 + local.get $entriesLength + call $"~lib/map/Map#set:bucketsMask" + end + local.get $this + local.set $12 + global.get $~lib/memory/__stack_pointer + local.get $12 + i32.store offset=4 + local.get $12 + local.get $this + local.set $12 + global.get $~lib/memory/__stack_pointer + local.get $12 + i32.store offset=8 + local.get $12 + call $"~lib/map/Map#get:bucketsMask" + i32.const 1 + i32.shl + i32.const 1 + i32.or + call $"~lib/map/Map#rehash" + i32.const 0 + local.set $i + loop $for-loop|0 + local.get $i + local.get $entriesLength + i32.lt_s + if + local.get $initialEntries + local.set $12 + global.get $~lib/memory/__stack_pointer + local.get $12 + i32.store offset=8 + local.get $12 + local.get $i + call $"~lib/array/Array<~lib/map/KeyValue>#__get" + local.set $12 + global.get $~lib/memory/__stack_pointer + local.get $12 + i32.store offset=4 + local.get $12 + call $"~lib/map/KeyValue#get:key" + local.set $key + local.get $initialEntries + local.set $12 + global.get $~lib/memory/__stack_pointer + local.get $12 + i32.store offset=8 + local.get $12 + local.get $i + call $"~lib/array/Array<~lib/map/KeyValue>#__get" + local.set $12 + global.get $~lib/memory/__stack_pointer + local.get $12 + i32.store offset=4 + local.get $12 + call $"~lib/map/KeyValue#get:value" + local.set $value + local.get $key + call $~lib/util/hash/HASH + local.set $hashCode + local.get $this + local.set $12 + global.get $~lib/memory/__stack_pointer + local.get $12 + i32.store offset=4 + local.get $12 + local.get $key + local.get $hashCode + call $"~lib/map/Map#find" + local.set $entry + local.get $entry + if + local.get $entry + local.get $value + call $"~lib/map/MapEntry#set:value" + i32.const 0 + drop + else + global.get $~lib/memory/__stack_pointer + local.get $this + local.set $12 + global.get $~lib/memory/__stack_pointer + local.get $12 + i32.store offset=4 + local.get $12 + call $"~lib/map/Map#get:entries" + local.tee $entries + i32.store offset=12 + local.get $entries + local.get $this + local.set $12 + global.get $~lib/memory/__stack_pointer + local.get $12 + i32.store offset=4 + local.get $12 + local.get $this + local.set $12 + global.get $~lib/memory/__stack_pointer + local.get $12 + i32.store offset=8 + local.get $12 + call $"~lib/map/Map#get:entriesOffset" + local.tee $9 + i32.const 1 + i32.add + call $"~lib/map/Map#set:entriesOffset" + local.get $9 + block $"~lib/map/ENTRY_SIZE|inlined.4" (result i32) + i32.const 24 + br $"~lib/map/ENTRY_SIZE|inlined.4" + end + i32.mul + i32.add + local.set $entry|10 + local.get $entry|10 + local.get $key + call $"~lib/map/MapEntry#set:key" + i32.const 0 + drop + local.get $entry|10 + local.get $value + call $"~lib/map/MapEntry#set:value" + i32.const 0 + drop + local.get $this + local.set $12 + global.get $~lib/memory/__stack_pointer + local.get $12 + i32.store offset=4 + local.get $12 + local.get $this + local.set $12 + global.get $~lib/memory/__stack_pointer + local.get $12 + i32.store offset=8 + local.get $12 + call $"~lib/map/Map#get:entriesCount" + i32.const 1 + i32.add + call $"~lib/map/Map#set:entriesCount" + local.get $this + local.set $12 + global.get $~lib/memory/__stack_pointer + local.get $12 + i32.store offset=4 + local.get $12 + call $"~lib/map/Map#get:buckets" + local.get $hashCode + local.get $this + local.set $12 + global.get $~lib/memory/__stack_pointer + local.get $12 + i32.store offset=4 + local.get $12 + call $"~lib/map/Map#get:bucketsMask" + i32.and + i32.const 4 + i32.mul + i32.add + local.set $bucketPtrBase + local.get $entry|10 + local.get $bucketPtrBase + i32.load + call $"~lib/map/MapEntry#set:taggedNext" + local.get $bucketPtrBase + local.get $entry|10 + i32.store + end + local.get $i + i32.const 1 + i32.add + local.set $i + br $for-loop|0 + end + end + end + local.get $this + local.set $12 + global.get $~lib/memory/__stack_pointer + i32.const 16 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $12 + ) + (func $"~lib/map/Map#constructor@varargs" (param $this i32) (param $initialEntries i32) (result i32) + (local $2 i32) + (local $3 i32) global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=8 - local.get $1 - call $"~lib/map/Map#set:entries" - local.get $this - local.set $1 + i32.const 12 + i32.sub + global.set $~lib/memory/__stack_pointer + call $~stack_check global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - local.get $1 - i32.const 4 - call $"~lib/map/Map#set:entriesCapacity" - local.get $this - local.set $1 + i64.const 0 + i64.store global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - local.get $1 i32.const 0 - call $"~lib/map/Map#set:entriesOffset" + i32.store offset=8 + block $1of1 + block $0of1 + block $outOfRange + global.get $~argumentsLength + br_table $0of1 $1of1 $outOfRange + end + unreachable + end + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.const 2 + i32.const 49 + i32.const 1456 + call $~lib/rt/__newArray + local.tee $initialEntries + i32.store + end local.get $this - local.set $1 + local.set $3 global.get $~lib/memory/__stack_pointer - local.get $1 + local.get $3 i32.store offset=4 - local.get $1 - i32.const 0 - call $"~lib/map/Map#set:entriesCount" - local.get $this - local.set $1 + local.get $3 + local.get $initialEntries + local.set $3 + global.get $~lib/memory/__stack_pointer + local.get $3 + i32.store offset=8 + local.get $3 + call $"~lib/map/Map#constructor" + local.set $3 global.get $~lib/memory/__stack_pointer i32.const 12 i32.add global.set $~lib/memory/__stack_pointer - local.get $1 + local.get $3 ) (func $~lib/array/Array#get:length (param $this i32) (result i32) (local $1 i32) @@ -22552,8 +30298,8 @@ call $~lib/array/Array#get:length_ i32.ge_u if - i32.const 224 - i32.const 704 + i32.const 336 + i32.const 544 i32.const 114 i32.const 42 call $~lib/builtins/abort @@ -22583,286 +30329,6 @@ local.get $4 return ) - (func $"~lib/map/Map#find" (param $this i32) (param $key i64) (param $hashCode i32) (result i32) - (local $entry i32) - (local $taggedNext i32) - (local $5 i32) - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.sub - global.set $~lib/memory/__stack_pointer - call $~stack_check - global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.store - local.get $this - local.set $5 - global.get $~lib/memory/__stack_pointer - local.get $5 - i32.store - local.get $5 - call $"~lib/map/Map#get:buckets" - local.get $hashCode - local.get $this - local.set $5 - global.get $~lib/memory/__stack_pointer - local.get $5 - i32.store - local.get $5 - call $"~lib/map/Map#get:bucketsMask" - i32.and - i32.const 4 - i32.mul - i32.add - i32.load - local.set $entry - loop $while-continue|0 - local.get $entry - if - local.get $entry - call $"~lib/map/MapEntry#get:taggedNext" - local.set $taggedNext - local.get $taggedNext - i32.const 1 - i32.and - i32.eqz - if (result i32) - local.get $entry - call $"~lib/map/MapEntry#get:key" - local.get $key - i64.eq - else - i32.const 0 - end - if - local.get $entry - local.set $5 - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $5 - return - end - local.get $taggedNext - i32.const 1 - i32.const -1 - i32.xor - i32.and - local.set $entry - br $while-continue|0 - end - end - i32.const 0 - local.set $5 - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $5 - return - ) - (func $"~lib/map/Map#rehash" (param $this i32) (param $newBucketsMask i32) - (local $newBucketsCapacity i32) - (local $newBuckets i32) - (local $newEntriesCapacity i32) - (local $newEntries i32) - (local $oldPtr i32) - (local $oldEnd i32) - (local $newPtr i32) - (local $oldEntry i32) - (local $newEntry i32) - (local $oldEntryKey i64) - (local $newBucketIndex i32) - (local $newBucketPtrBase i32) - (local $14 i32) - global.get $~lib/memory/__stack_pointer - i32.const 16 - i32.sub - global.set $~lib/memory/__stack_pointer - call $~stack_check - global.get $~lib/memory/__stack_pointer - i64.const 0 - i64.store - global.get $~lib/memory/__stack_pointer - i64.const 0 - i64.store offset=8 - local.get $newBucketsMask - i32.const 1 - i32.add - local.set $newBucketsCapacity - global.get $~lib/memory/__stack_pointer - i32.const 0 - local.get $newBucketsCapacity - i32.const 4 - i32.mul - call $~lib/arraybuffer/ArrayBuffer#constructor - local.tee $newBuckets - i32.store - local.get $newBucketsCapacity - i32.const 8 - i32.mul - i32.const 3 - i32.div_s - local.set $newEntriesCapacity - global.get $~lib/memory/__stack_pointer - i32.const 0 - local.get $newEntriesCapacity - block $"~lib/map/ENTRY_SIZE|inlined.1" (result i32) - i32.const 24 - br $"~lib/map/ENTRY_SIZE|inlined.1" - end - i32.mul - call $~lib/arraybuffer/ArrayBuffer#constructor - local.tee $newEntries - i32.store offset=4 - local.get $this - local.set $14 - global.get $~lib/memory/__stack_pointer - local.get $14 - i32.store offset=8 - local.get $14 - call $"~lib/map/Map#get:entries" - local.set $oldPtr - local.get $oldPtr - local.get $this - local.set $14 - global.get $~lib/memory/__stack_pointer - local.get $14 - i32.store offset=8 - local.get $14 - call $"~lib/map/Map#get:entriesOffset" - block $"~lib/map/ENTRY_SIZE|inlined.2" (result i32) - i32.const 24 - br $"~lib/map/ENTRY_SIZE|inlined.2" - end - i32.mul - i32.add - local.set $oldEnd - local.get $newEntries - local.set $newPtr - loop $while-continue|0 - local.get $oldPtr - local.get $oldEnd - i32.ne - if - local.get $oldPtr - local.set $oldEntry - local.get $oldEntry - call $"~lib/map/MapEntry#get:taggedNext" - i32.const 1 - i32.and - i32.eqz - if - local.get $newPtr - local.set $newEntry - local.get $oldEntry - call $"~lib/map/MapEntry#get:key" - local.set $oldEntryKey - local.get $newEntry - local.get $oldEntryKey - call $"~lib/map/MapEntry#set:key" - local.get $newEntry - local.get $oldEntry - call $"~lib/map/MapEntry#get:value" - call $"~lib/map/MapEntry#set:value" - local.get $oldEntryKey - call $~lib/util/hash/HASH - local.get $newBucketsMask - i32.and - local.set $newBucketIndex - local.get $newBuckets - local.get $newBucketIndex - i32.const 4 - i32.mul - i32.add - local.set $newBucketPtrBase - local.get $newEntry - local.get $newBucketPtrBase - i32.load - call $"~lib/map/MapEntry#set:taggedNext" - local.get $newBucketPtrBase - local.get $newPtr - i32.store - local.get $newPtr - block $"~lib/map/ENTRY_SIZE|inlined.3" (result i32) - i32.const 24 - br $"~lib/map/ENTRY_SIZE|inlined.3" - end - i32.add - local.set $newPtr - end - local.get $oldPtr - block $"~lib/map/ENTRY_SIZE|inlined.4" (result i32) - i32.const 24 - br $"~lib/map/ENTRY_SIZE|inlined.4" - end - i32.add - local.set $oldPtr - br $while-continue|0 - end - end - local.get $this - local.set $14 - global.get $~lib/memory/__stack_pointer - local.get $14 - i32.store offset=8 - local.get $14 - local.get $newBuckets - local.set $14 - global.get $~lib/memory/__stack_pointer - local.get $14 - i32.store offset=12 - local.get $14 - call $"~lib/map/Map#set:buckets" - local.get $this - local.set $14 - global.get $~lib/memory/__stack_pointer - local.get $14 - i32.store offset=8 - local.get $14 - local.get $newBucketsMask - call $"~lib/map/Map#set:bucketsMask" - local.get $this - local.set $14 - global.get $~lib/memory/__stack_pointer - local.get $14 - i32.store offset=8 - local.get $14 - local.get $newEntries - local.set $14 - global.get $~lib/memory/__stack_pointer - local.get $14 - i32.store offset=12 - local.get $14 - call $"~lib/map/Map#set:entries" - local.get $this - local.set $14 - global.get $~lib/memory/__stack_pointer - local.get $14 - i32.store offset=8 - local.get $14 - local.get $newEntriesCapacity - call $"~lib/map/Map#set:entriesCapacity" - local.get $this - local.set $14 - global.get $~lib/memory/__stack_pointer - local.get $14 - i32.store offset=8 - local.get $14 - local.get $this - local.set $14 - global.get $~lib/memory/__stack_pointer - local.get $14 - i32.store offset=12 - local.get $14 - call $"~lib/map/Map#get:entriesCount" - call $"~lib/map/Map#set:entriesOffset" - global.get $~lib/memory/__stack_pointer - i32.const 16 - i32.add - global.set $~lib/memory/__stack_pointer - ) (func $"~lib/map/Map#set" (param $this i32) (param $key i64) (param $value i64) (result i32) (local $hashCode i32) (local $entry i32) @@ -22995,9 +30461,9 @@ i32.add call $"~lib/map/Map#set:entriesOffset" local.get $6 - block $"~lib/map/ENTRY_SIZE|inlined.5" (result i32) + block $"~lib/map/ENTRY_SIZE|inlined.6" (result i32) i32.const 24 - br $"~lib/map/ENTRY_SIZE|inlined.5" + br $"~lib/map/ENTRY_SIZE|inlined.6" end i32.mul i32.add @@ -23264,9 +30730,9 @@ local.get $1 i32.const 0 i32.const 4 - block $"~lib/map/ENTRY_SIZE|inlined.8" (result i32) + block $"~lib/map/ENTRY_SIZE|inlined.9" (result i32) i32.const 16 - br $"~lib/map/ENTRY_SIZE|inlined.8" + br $"~lib/map/ENTRY_SIZE|inlined.9" end i32.mul call $~lib/arraybuffer/ArrayBuffer#constructor @@ -23305,6 +30771,125 @@ i32.add global.set $~lib/memory/__stack_pointer ) + (func $"~lib/map/KeyValue#constructor" (param $this i32) (result i32) + (local $1 i32) + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.sub + global.set $~lib/memory/__stack_pointer + call $~stack_check + global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store + local.get $this + i32.eqz + if + global.get $~lib/memory/__stack_pointer + i32.const 12 + i32.const 44 + call $~lib/rt/itcms/__new + local.tee $this + i32.store + end + global.get $~lib/memory/__stack_pointer + local.get $this + local.set $1 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + local.get $1 + call $~lib/object/Object#constructor + local.tee $this + i32.store + local.get $this + local.set $1 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + local.get $1 + i64.const 0 + call $"~lib/map/KeyValue#set:key" + local.get $this + local.set $1 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + local.get $1 + i32.const 0 + call $"~lib/map/KeyValue#set:value" + local.get $this + local.set $1 + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $1 + ) + (func $"~lib/array/Array<~lib/map/KeyValue>#push" (param $this i32) (param $value i32) (result i32) + (local $oldLen i32) + (local $len i32) + (local $4 i32) + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.sub + global.set $~lib/memory/__stack_pointer + call $~stack_check + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store + local.get $this + local.set $4 + global.get $~lib/memory/__stack_pointer + local.get $4 + i32.store + local.get $4 + call $"~lib/array/Array<~lib/map/KeyValue>#get:length_" + local.set $oldLen + local.get $oldLen + i32.const 1 + i32.add + local.set $len + local.get $this + local.get $len + i32.const 2 + i32.const 1 + call $~lib/array/ensureCapacity + i32.const 1 + drop + local.get $this + local.set $4 + global.get $~lib/memory/__stack_pointer + local.get $4 + i32.store + local.get $4 + call $"~lib/array/Array<~lib/map/KeyValue>#get:dataStart" + local.get $oldLen + i32.const 2 + i32.shl + i32.add + local.get $value + i32.store + local.get $this + local.get $value + i32.const 1 + call $~lib/rt/itcms/__link + local.get $this + local.set $4 + global.get $~lib/memory/__stack_pointer + local.get $4 + i32.store + local.get $4 + local.get $len + call $"~lib/array/Array<~lib/map/KeyValue>#set:length_" + local.get $len + local.set $4 + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $4 + return + ) (func $"std/map/testNumeric" (local $map i32) (local $k i64) @@ -23319,18 +30904,26 @@ (local $k|10 i64) (local $k|11 i64) (local $12 i32) + (local $initialEntries i32) + (local $k|14 i64) + (local $15 i32) + (local $k|16 i64) + (local $17 i32) global.get $~lib/memory/__stack_pointer - i32.const 24 + i32.const 40 i32.sub global.set $~lib/memory/__stack_pointer call $~stack_check global.get $~lib/memory/__stack_pointer i32.const 0 - i32.const 24 + i32.const 40 memory.fill global.get $~lib/memory/__stack_pointer i32.const 0 - call $"~lib/map/Map#constructor" + i32.const 0 + global.set $~argumentsLength + i32.const 0 + call $"~lib/map/Map#constructor@varargs" local.tee $map i32.store i64.const 0 @@ -23341,29 +30934,29 @@ i64.lt_s if local.get $map - local.set $12 + local.set $17 global.get $~lib/memory/__stack_pointer - local.get $12 + local.get $17 i32.store offset=4 - local.get $12 + local.get $17 local.get $k call $"~lib/map/Map#has" i32.eqz i32.eqz if i32.const 0 - i32.const 544 - i32.const 6 + i32.const 752 + i32.const 7 i32.const 5 call $~lib/builtins/abort unreachable end local.get $map - local.set $12 + local.set $17 global.get $~lib/memory/__stack_pointer - local.get $12 + local.get $17 i32.store offset=4 - local.get $12 + local.get $17 local.get $k i32.const 10 local.get $k @@ -23372,28 +30965,28 @@ call $"~lib/map/Map#set" drop local.get $map - local.set $12 + local.set $17 global.get $~lib/memory/__stack_pointer - local.get $12 + local.get $17 i32.store offset=4 - local.get $12 + local.get $17 local.get $k call $"~lib/map/Map#has" i32.eqz if i32.const 0 - i32.const 544 - i32.const 8 + i32.const 752 + i32.const 9 i32.const 5 call $~lib/builtins/abort unreachable end local.get $map - local.set $12 + local.set $17 global.get $~lib/memory/__stack_pointer - local.get $12 + local.get $17 i32.store offset=4 - local.get $12 + local.get $17 local.get $k call $"~lib/map/Map#get" i32.const 10 @@ -23404,8 +30997,8 @@ i32.eqz if i32.const 0 - i32.const 544 - i32.const 9 + i32.const 752 + i32.const 10 i32.const 5 call $~lib/builtins/abort unreachable @@ -23418,19 +31011,19 @@ end end local.get $map - local.set $12 + local.set $17 global.get $~lib/memory/__stack_pointer - local.get $12 + local.get $17 i32.store offset=4 - local.get $12 + local.get $17 call $"~lib/map/Map#get:size" i32.const 100 i32.eq i32.eqz if i32.const 0 - i32.const 544 - i32.const 11 + i32.const 752 + i32.const 12 i32.const 3 call $~lib/builtins/abort unreachable @@ -23443,28 +31036,28 @@ i64.lt_s if local.get $map - local.set $12 + local.set $17 global.get $~lib/memory/__stack_pointer - local.get $12 + local.get $17 i32.store offset=4 - local.get $12 + local.get $17 local.get $k|2 call $"~lib/map/Map#has" i32.eqz if i32.const 0 - i32.const 544 - i32.const 15 + i32.const 752 + i32.const 16 i32.const 5 call $~lib/builtins/abort unreachable end local.get $map - local.set $12 + local.set $17 global.get $~lib/memory/__stack_pointer - local.get $12 + local.get $17 i32.store offset=4 - local.get $12 + local.get $17 local.get $k|2 call $"~lib/map/Map#get" i32.const 10 @@ -23475,18 +31068,18 @@ i32.eqz if i32.const 0 - i32.const 544 - i32.const 16 + i32.const 752 + i32.const 17 i32.const 5 call $~lib/builtins/abort unreachable end local.get $map - local.set $12 + local.set $17 global.get $~lib/memory/__stack_pointer - local.get $12 + local.get $17 i32.store offset=4 - local.get $12 + local.get $17 local.get $k|2 i32.const 20 local.get $k|2 @@ -23495,28 +31088,28 @@ call $"~lib/map/Map#set" drop local.get $map - local.set $12 + local.set $17 global.get $~lib/memory/__stack_pointer - local.get $12 + local.get $17 i32.store offset=4 - local.get $12 + local.get $17 local.get $k|2 call $"~lib/map/Map#has" i32.eqz if i32.const 0 - i32.const 544 - i32.const 18 + i32.const 752 + i32.const 19 i32.const 5 call $~lib/builtins/abort unreachable end local.get $map - local.set $12 + local.set $17 global.get $~lib/memory/__stack_pointer - local.get $12 + local.get $17 i32.store offset=4 - local.get $12 + local.get $17 local.get $k|2 call $"~lib/map/Map#get" i32.const 20 @@ -23527,8 +31120,8 @@ i32.eqz if i32.const 0 - i32.const 544 - i32.const 19 + i32.const 752 + i32.const 20 i32.const 5 call $~lib/builtins/abort unreachable @@ -23541,51 +31134,57 @@ end end local.get $map - local.set $12 + local.set $17 global.get $~lib/memory/__stack_pointer - local.get $12 + local.get $17 i32.store offset=4 - local.get $12 + local.get $17 call $"~lib/map/Map#get:size" i32.const 100 i32.eq i32.eqz if i32.const 0 - i32.const 544 - i32.const 21 + i32.const 752 + i32.const 22 i32.const 3 call $~lib/builtins/abort unreachable end global.get $~lib/memory/__stack_pointer local.get $map - local.set $12 + local.set $17 global.get $~lib/memory/__stack_pointer - local.get $12 + local.get $17 i32.store offset=4 - local.get $12 + local.get $17 call $"~lib/map/Map#keys" local.tee $keys i32.store offset=8 global.get $~lib/memory/__stack_pointer local.get $map - local.set $12 + local.set $17 global.get $~lib/memory/__stack_pointer - local.get $12 + local.get $17 i32.store offset=4 - local.get $12 + local.get $17 call $"~lib/map/Map#values" local.tee $vals i32.store offset=12 global.get $~lib/memory/__stack_pointer i32.const 0 - call $"~lib/map/Map#constructor" + i32.const 0 + global.set $~argumentsLength + i32.const 0 + call $"~lib/map/Map#constructor@varargs" local.tee $keyMap i32.store offset=16 global.get $~lib/memory/__stack_pointer i32.const 0 - call $"~lib/map/Map#constructor" + i32.const 0 + global.set $~argumentsLength + i32.const 0 + call $"~lib/map/Map#constructor@varargs" local.tee $valMap i32.store offset=20 i32.const 0 @@ -23593,55 +31192,55 @@ loop $for-loop|2 local.get $index local.get $keys - local.set $12 + local.set $17 global.get $~lib/memory/__stack_pointer - local.get $12 + local.get $17 i32.store offset=4 - local.get $12 + local.get $17 call $~lib/array/Array#get:length i32.lt_s if local.get $keys - local.set $12 + local.set $17 global.get $~lib/memory/__stack_pointer - local.get $12 + local.get $17 i32.store offset=4 - local.get $12 + local.get $17 local.get $index call $~lib/array/Array#__get local.set $key local.get $vals - local.set $12 + local.set $17 global.get $~lib/memory/__stack_pointer - local.get $12 + local.get $17 i32.store offset=4 - local.get $12 + local.get $17 local.get $index call $~lib/array/Array#__get local.set $value local.get $map - local.set $12 + local.set $17 global.get $~lib/memory/__stack_pointer - local.get $12 + local.get $17 i32.store offset=4 - local.get $12 + local.get $17 local.get $key call $"~lib/map/Map#has" i32.eqz if i32.const 0 - i32.const 544 - i32.const 31 + i32.const 752 + i32.const 32 i32.const 5 call $~lib/builtins/abort unreachable end local.get $map - local.set $12 + local.set $17 global.get $~lib/memory/__stack_pointer - local.get $12 + local.get $17 i32.store offset=4 - local.get $12 + local.get $17 local.get $value i32.const 20 i32.sub @@ -23650,28 +31249,28 @@ i32.eqz if i32.const 0 - i32.const 544 - i32.const 32 + i32.const 752 + i32.const 33 i32.const 5 call $~lib/builtins/abort unreachable end local.get $keyMap - local.set $12 + local.set $17 global.get $~lib/memory/__stack_pointer - local.get $12 + local.get $17 i32.store offset=4 - local.get $12 + local.get $17 local.get $key local.get $key call $"~lib/map/Map#set" drop local.get $valMap - local.set $12 + local.set $17 global.get $~lib/memory/__stack_pointer - local.get $12 + local.get $17 i32.store offset=4 - local.get $12 + local.get $17 local.get $value i32.const 20 i32.sub @@ -23688,37 +31287,37 @@ end end local.get $keyMap - local.set $12 + local.set $17 global.get $~lib/memory/__stack_pointer - local.get $12 + local.get $17 i32.store offset=4 - local.get $12 + local.get $17 call $"~lib/map/Map#get:size" i32.const 100 i32.eq i32.eqz if i32.const 0 - i32.const 544 - i32.const 36 + i32.const 752 + i32.const 37 i32.const 3 call $~lib/builtins/abort unreachable end local.get $valMap - local.set $12 + local.set $17 global.get $~lib/memory/__stack_pointer - local.get $12 + local.get $17 i32.store offset=4 - local.get $12 + local.get $17 call $"~lib/map/Map#get:size" i32.const 100 i32.eq i32.eqz if i32.const 0 - i32.const 544 - i32.const 37 + i32.const 752 + i32.const 38 i32.const 3 call $~lib/builtins/abort unreachable @@ -23731,28 +31330,28 @@ i64.lt_s if local.get $map - local.set $12 + local.set $17 global.get $~lib/memory/__stack_pointer - local.get $12 + local.get $17 i32.store offset=4 - local.get $12 + local.get $17 local.get $k|10 call $"~lib/map/Map#has" i32.eqz if i32.const 0 - i32.const 544 - i32.const 41 + i32.const 752 + i32.const 42 i32.const 5 call $~lib/builtins/abort unreachable end local.get $map - local.set $12 + local.set $17 global.get $~lib/memory/__stack_pointer - local.get $12 + local.get $17 i32.store offset=4 - local.get $12 + local.get $17 local.get $k|10 call $"~lib/map/Map#get" i32.const 20 @@ -23763,35 +31362,35 @@ i32.eqz if i32.const 0 - i32.const 544 - i32.const 42 + i32.const 752 + i32.const 43 i32.const 5 call $~lib/builtins/abort unreachable end local.get $map - local.set $12 + local.set $17 global.get $~lib/memory/__stack_pointer - local.get $12 + local.get $17 i32.store offset=4 - local.get $12 + local.get $17 local.get $k|10 call $"~lib/map/Map#delete" drop local.get $map - local.set $12 + local.set $17 global.get $~lib/memory/__stack_pointer - local.get $12 + local.get $17 i32.store offset=4 - local.get $12 + local.get $17 local.get $k|10 call $"~lib/map/Map#has" i32.eqz i32.eqz if i32.const 0 - i32.const 544 - i32.const 44 + i32.const 752 + i32.const 45 i32.const 5 call $~lib/builtins/abort unreachable @@ -23804,19 +31403,19 @@ end end local.get $map - local.set $12 + local.set $17 global.get $~lib/memory/__stack_pointer - local.get $12 + local.get $17 i32.store offset=4 - local.get $12 + local.get $17 call $"~lib/map/Map#get:size" i32.const 50 i32.eq i32.eqz if i32.const 0 - i32.const 544 - i32.const 46 + i32.const 752 + i32.const 47 i32.const 3 call $~lib/builtins/abort unreachable @@ -23829,29 +31428,29 @@ i64.lt_s if local.get $map - local.set $12 + local.set $17 global.get $~lib/memory/__stack_pointer - local.get $12 + local.get $17 i32.store offset=4 - local.get $12 + local.get $17 local.get $k|11 call $"~lib/map/Map#has" i32.eqz i32.eqz if i32.const 0 - i32.const 544 - i32.const 50 + i32.const 752 + i32.const 51 i32.const 5 call $~lib/builtins/abort unreachable end local.get $map - local.set $12 + local.set $17 global.get $~lib/memory/__stack_pointer - local.get $12 + local.get $17 i32.store offset=4 - local.get $12 + local.get $17 local.get $k|11 i32.const 10 local.get $k|11 @@ -23860,45 +31459,45 @@ call $"~lib/map/Map#set" drop local.get $map - local.set $12 + local.set $17 global.get $~lib/memory/__stack_pointer - local.get $12 + local.get $17 i32.store offset=4 - local.get $12 + local.get $17 local.get $k|11 call $"~lib/map/Map#has" i32.eqz if i32.const 0 - i32.const 544 - i32.const 52 + i32.const 752 + i32.const 53 i32.const 5 call $~lib/builtins/abort unreachable end local.get $map - local.set $12 + local.set $17 global.get $~lib/memory/__stack_pointer - local.get $12 + local.get $17 i32.store offset=4 - local.get $12 + local.get $17 local.get $k|11 call $"~lib/map/Map#delete" drop local.get $map - local.set $12 + local.set $17 global.get $~lib/memory/__stack_pointer - local.get $12 + local.get $17 i32.store offset=4 - local.get $12 + local.get $17 local.get $k|11 call $"~lib/map/Map#has" i32.eqz i32.eqz if i32.const 0 - i32.const 544 - i32.const 54 + i32.const 752 + i32.const 55 i32.const 5 call $~lib/builtins/abort unreachable @@ -23911,154 +31510,532 @@ end end local.get $map - local.set $12 + local.set $17 global.get $~lib/memory/__stack_pointer - local.get $12 + local.get $17 i32.store offset=4 - local.get $12 + local.get $17 call $"~lib/map/Map#get:size" i32.const 50 i32.eq i32.eqz if i32.const 0 - i32.const 544 - i32.const 56 + i32.const 752 + i32.const 57 i32.const 3 call $~lib/builtins/abort unreachable end local.get $map - local.set $12 + local.set $17 global.get $~lib/memory/__stack_pointer - local.get $12 + local.get $17 i32.store offset=4 - local.get $12 + local.get $17 call $"~lib/map/Map#clear" local.get $map - local.set $12 + local.set $17 global.get $~lib/memory/__stack_pointer - local.get $12 + local.get $17 i32.store offset=4 - local.get $12 + local.get $17 call $"~lib/map/Map#get:size" i32.const 0 i32.eq i32.eqz if i32.const 0 - i32.const 544 - i32.const 60 + i32.const 752 + i32.const 61 i32.const 3 call $~lib/builtins/abort unreachable end global.get $~lib/memory/__stack_pointer - i32.const 24 + i32.const 0 + i32.const 2 + i32.const 45 + i32.const 1488 + call $~lib/rt/__newArray + local.tee $initialEntries + i32.store offset=24 + i64.const 0 + local.set $k|14 + loop $for-loop|5 + local.get $k|14 + i64.const 100 + i64.lt_s + if + local.get $initialEntries + local.set $17 + global.get $~lib/memory/__stack_pointer + local.get $17 + i32.store offset=4 + local.get $17 + global.get $~lib/memory/__stack_pointer + i32.const 0 + call $"~lib/map/KeyValue#constructor" + local.tee $15 + i32.store offset=32 + local.get $15 + local.set $17 + global.get $~lib/memory/__stack_pointer + local.get $17 + i32.store offset=36 + local.get $17 + local.get $k|14 + call $"~lib/map/KeyValue#set:key" + local.get $15 + local.set $17 + global.get $~lib/memory/__stack_pointer + local.get $17 + i32.store offset=36 + local.get $17 + i32.const 10 + local.get $k|14 + i32.wrap_i64 + i32.add + call $"~lib/map/KeyValue#set:value" + local.get $15 + local.set $17 + global.get $~lib/memory/__stack_pointer + local.get $17 + i32.store offset=28 + local.get $17 + call $"~lib/array/Array<~lib/map/KeyValue>#push" + drop + local.get $k|14 + i64.const 1 + i64.add + local.set $k|14 + br $for-loop|5 + end + end + global.get $~lib/memory/__stack_pointer + i32.const 0 + local.get $initialEntries + local.set $17 + global.get $~lib/memory/__stack_pointer + local.get $17 + i32.store offset=4 + local.get $17 + call $"~lib/map/Map#constructor" + local.tee $map + i32.store + local.get $map + local.set $17 + global.get $~lib/memory/__stack_pointer + local.get $17 + i32.store offset=4 + local.get $17 + call $"~lib/map/Map#get:size" + i32.const 100 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 752 + i32.const 74 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + i64.const 0 + local.set $k|16 + loop $for-loop|6 + local.get $k|16 + i64.const 100 + i64.lt_s + if + local.get $map + local.set $17 + global.get $~lib/memory/__stack_pointer + local.get $17 + i32.store offset=4 + local.get $17 + local.get $k|16 + call $"~lib/map/Map#has" + i32.eqz + if + i32.const 0 + i32.const 752 + i32.const 76 + i32.const 5 + call $~lib/builtins/abort + unreachable + end + local.get $map + local.set $17 + global.get $~lib/memory/__stack_pointer + local.get $17 + i32.store offset=4 + local.get $17 + local.get $k|16 + call $"~lib/map/Map#get" + i32.const 10 + local.get $k|16 + i32.wrap_i64 + i32.add + i32.eq + i32.eqz + if + i32.const 0 + i32.const 752 + i32.const 77 + i32.const 5 + call $~lib/builtins/abort + unreachable + end + local.get $map + local.set $17 + global.get $~lib/memory/__stack_pointer + local.get $17 + i32.store offset=4 + local.get $17 + local.get $k|16 + call $"~lib/map/Map#delete" + drop + local.get $map + local.set $17 + global.get $~lib/memory/__stack_pointer + local.get $17 + i32.store offset=4 + local.get $17 + local.get $k|16 + call $"~lib/map/Map#has" + i32.eqz + i32.eqz + if + i32.const 0 + i32.const 752 + i32.const 79 + i32.const 5 + call $~lib/builtins/abort + unreachable + end + local.get $k|16 + i64.const 1 + i64.add + local.set $k|16 + br $for-loop|6 + end + end + local.get $map + local.set $17 + global.get $~lib/memory/__stack_pointer + local.get $17 + i32.store offset=4 + local.get $17 + call $"~lib/map/Map#get:size" + i32.const 0 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 752 + i32.const 81 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + i32.const 40 i32.add global.set $~lib/memory/__stack_pointer ) - (func $"~lib/map/Map#constructor" (param $this i32) (result i32) + (func $"~lib/array/Array<~lib/map/KeyValue>#get:length" (param $this i32) (result i32) (local $1 i32) global.get $~lib/memory/__stack_pointer - i32.const 12 + i32.const 4 i32.sub global.set $~lib/memory/__stack_pointer call $~stack_check global.get $~lib/memory/__stack_pointer - i64.const 0 - i64.store - global.get $~lib/memory/__stack_pointer i32.const 0 - i32.store offset=8 - local.get $this - i32.eqz - if - global.get $~lib/memory/__stack_pointer - i32.const 24 - i32.const 24 - call $~lib/rt/itcms/__new - local.tee $this - i32.store - end + i32.store local.get $this local.set $1 global.get $~lib/memory/__stack_pointer local.get $1 - i32.store offset=4 + i32.store local.get $1 - i32.const 0 - i32.const 4 - i32.const 4 - i32.mul - call $~lib/arraybuffer/ArrayBuffer#constructor + call $"~lib/array/Array<~lib/map/KeyValue>#get:length_" local.set $1 global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer local.get $1 - i32.store offset=8 - local.get $1 - call $"~lib/map/Map#set:buckets" - local.get $this - local.set $1 + return + ) + (func $"~lib/map/Map#rehash" (param $this i32) (param $newBucketsMask i32) + (local $newBucketsCapacity i32) + (local $newBuckets i32) + (local $newEntriesCapacity i32) + (local $newEntries i32) + (local $oldPtr i32) + (local $oldEnd i32) + (local $newPtr i32) + (local $oldEntry i32) + (local $newEntry i32) + (local $oldEntryKey i64) + (local $newBucketIndex i32) + (local $newBucketPtrBase i32) + (local $14 i32) global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - local.get $1 - i32.const 4 - i32.const 1 + i32.const 16 i32.sub - call $"~lib/map/Map#set:bucketsMask" - local.get $this - local.set $1 + global.set $~lib/memory/__stack_pointer + call $~stack_check + global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store + global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store offset=8 + local.get $newBucketsMask + i32.const 1 + i32.add + local.set $newBucketsCapacity global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - local.get $1 i32.const 0 + local.get $newBucketsCapacity i32.const 4 + i32.mul + call $~lib/arraybuffer/ArrayBuffer#constructor + local.tee $newBuckets + i32.store + local.get $newBucketsCapacity + i32.const 8 + i32.mul + i32.const 3 + i32.div_s + local.set $newEntriesCapacity + global.get $~lib/memory/__stack_pointer + i32.const 0 + local.get $newEntriesCapacity block $"~lib/map/ENTRY_SIZE|inlined.0" (result i32) i32.const 16 br $"~lib/map/ENTRY_SIZE|inlined.0" end i32.mul call $~lib/arraybuffer/ArrayBuffer#constructor - local.set $1 + local.tee $newEntries + i32.store offset=4 + local.get $this + local.set $14 global.get $~lib/memory/__stack_pointer - local.get $1 + local.get $14 i32.store offset=8 - local.get $1 + local.get $14 + call $"~lib/map/Map#get:entries" + local.set $oldPtr + local.get $oldPtr + local.get $this + local.set $14 + global.get $~lib/memory/__stack_pointer + local.get $14 + i32.store offset=8 + local.get $14 + call $"~lib/map/Map#get:entriesOffset" + block $"~lib/map/ENTRY_SIZE|inlined.1" (result i32) + i32.const 16 + br $"~lib/map/ENTRY_SIZE|inlined.1" + end + i32.mul + i32.add + local.set $oldEnd + local.get $newEntries + local.set $newPtr + loop $while-continue|0 + local.get $oldPtr + local.get $oldEnd + i32.ne + if + local.get $oldPtr + local.set $oldEntry + local.get $oldEntry + call $"~lib/map/MapEntry#get:taggedNext" + i32.const 1 + i32.and + i32.eqz + if + local.get $newPtr + local.set $newEntry + local.get $oldEntry + call $"~lib/map/MapEntry#get:key" + local.set $oldEntryKey + local.get $newEntry + local.get $oldEntryKey + call $"~lib/map/MapEntry#set:key" + local.get $newEntry + local.get $oldEntry + call $"~lib/map/MapEntry#get:value" + call $"~lib/map/MapEntry#set:value" + local.get $oldEntryKey + call $~lib/util/hash/HASH + local.get $newBucketsMask + i32.and + local.set $newBucketIndex + local.get $newBuckets + local.get $newBucketIndex + i32.const 4 + i32.mul + i32.add + local.set $newBucketPtrBase + local.get $newEntry + local.get $newBucketPtrBase + i32.load + call $"~lib/map/MapEntry#set:taggedNext" + local.get $newBucketPtrBase + local.get $newPtr + i32.store + local.get $newPtr + block $"~lib/map/ENTRY_SIZE|inlined.2" (result i32) + i32.const 16 + br $"~lib/map/ENTRY_SIZE|inlined.2" + end + i32.add + local.set $newPtr + end + local.get $oldPtr + block $"~lib/map/ENTRY_SIZE|inlined.3" (result i32) + i32.const 16 + br $"~lib/map/ENTRY_SIZE|inlined.3" + end + i32.add + local.set $oldPtr + br $while-continue|0 + end + end + local.get $this + local.set $14 + global.get $~lib/memory/__stack_pointer + local.get $14 + i32.store offset=8 + local.get $14 + local.get $newBuckets + local.set $14 + global.get $~lib/memory/__stack_pointer + local.get $14 + i32.store offset=12 + local.get $14 + call $"~lib/map/Map#set:buckets" + local.get $this + local.set $14 + global.get $~lib/memory/__stack_pointer + local.get $14 + i32.store offset=8 + local.get $14 + local.get $newBucketsMask + call $"~lib/map/Map#set:bucketsMask" + local.get $this + local.set $14 + global.get $~lib/memory/__stack_pointer + local.get $14 + i32.store offset=8 + local.get $14 + local.get $newEntries + local.set $14 + global.get $~lib/memory/__stack_pointer + local.get $14 + i32.store offset=12 + local.get $14 call $"~lib/map/Map#set:entries" local.get $this - local.set $1 + local.set $14 global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - local.get $1 - i32.const 4 + local.get $14 + i32.store offset=8 + local.get $14 + local.get $newEntriesCapacity call $"~lib/map/Map#set:entriesCapacity" local.get $this - local.set $1 + local.set $14 global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - local.get $1 - i32.const 0 + local.get $14 + i32.store offset=8 + local.get $14 + local.get $this + local.set $14 + global.get $~lib/memory/__stack_pointer + local.get $14 + i32.store offset=12 + local.get $14 + call $"~lib/map/Map#get:entriesCount" call $"~lib/map/Map#set:entriesOffset" + global.get $~lib/memory/__stack_pointer + i32.const 16 + i32.add + global.set $~lib/memory/__stack_pointer + ) + (func $"~lib/array/Array<~lib/map/KeyValue>#__get" (param $this i32) (param $index i32) (result i32) + (local $value i32) + (local $3 i32) + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.sub + global.set $~lib/memory/__stack_pointer + call $~stack_check + global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store + local.get $index local.get $this - local.set $1 + local.set $3 global.get $~lib/memory/__stack_pointer - local.get $1 + local.get $3 + i32.store + local.get $3 + call $"~lib/array/Array<~lib/map/KeyValue>#get:length_" + i32.ge_u + if + i32.const 336 + i32.const 544 + i32.const 114 + i32.const 42 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + local.get $this + local.set $3 + global.get $~lib/memory/__stack_pointer + local.get $3 + i32.store + local.get $3 + call $"~lib/array/Array<~lib/map/KeyValue>#get:dataStart" + local.get $index + i32.const 2 + i32.shl + i32.add + i32.load + local.tee $value i32.store offset=4 - local.get $1 + i32.const 1 + drop i32.const 0 - call $"~lib/map/Map#set:entriesCount" - local.get $this - local.set $1 + i32.eqz + drop + local.get $value + i32.eqz + if + i32.const 592 + i32.const 544 + i32.const 118 + i32.const 40 + call $~lib/builtins/abort + unreachable + end + local.get $value + local.set $3 global.get $~lib/memory/__stack_pointer - i32.const 12 + i32.const 8 i32.add global.set $~lib/memory/__stack_pointer - local.get $1 + local.get $3 + return ) (func $"~lib/map/Map#find" (param $this i32) (param $key i64) (param $hashCode i32) (result i32) (local $entry i32) @@ -24139,50 +32116,18 @@ local.get $5 return ) - (func $"~lib/map/Map#has" (param $this i32) (param $key i64) (result i32) - (local $2 i32) - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.sub - global.set $~lib/memory/__stack_pointer - call $~stack_check - global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.store - local.get $this - local.set $2 - global.get $~lib/memory/__stack_pointer - local.get $2 - i32.store - local.get $2 - local.get $key - local.get $key - call $~lib/util/hash/HASH - call $"~lib/map/Map#find" - i32.const 0 - i32.ne - local.set $2 - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $2 - return - ) - (func $"~lib/map/Map#rehash" (param $this i32) (param $newBucketsMask i32) - (local $newBucketsCapacity i32) - (local $newBuckets i32) - (local $newEntriesCapacity i32) - (local $newEntries i32) - (local $oldPtr i32) - (local $oldEnd i32) - (local $newPtr i32) - (local $oldEntry i32) - (local $newEntry i32) - (local $oldEntryKey i64) - (local $newBucketIndex i32) - (local $newBucketPtrBase i32) - (local $14 i32) + (func $"~lib/map/Map#constructor" (param $this i32) (param $initialEntries i32) (result i32) + (local $entriesLength i32) + (local $i i32) + (local $key i64) + (local $value i32) + (local $hashCode i32) + (local $entry i32) + (local $entries i32) + (local $9 i32) + (local $entry|10 i32) + (local $bucketPtrBase i32) + (local $12 i32) global.get $~lib/memory/__stack_pointer i32.const 16 i32.sub @@ -24194,181 +32139,380 @@ global.get $~lib/memory/__stack_pointer i64.const 0 i64.store offset=8 - local.get $newBucketsMask - i32.const 1 - i32.add - local.set $newBucketsCapacity + local.get $this + i32.eqz + if + global.get $~lib/memory/__stack_pointer + i32.const 24 + i32.const 50 + call $~lib/rt/itcms/__new + local.tee $this + i32.store + end + local.get $this + local.set $12 global.get $~lib/memory/__stack_pointer + local.get $12 + i32.store offset=4 + local.get $12 i32.const 0 - local.get $newBucketsCapacity + i32.const 4 i32.const 4 i32.mul call $~lib/arraybuffer/ArrayBuffer#constructor - local.tee $newBuckets - i32.store - local.get $newBucketsCapacity - i32.const 8 - i32.mul - i32.const 3 - i32.div_s - local.set $newEntriesCapacity + local.set $12 + global.get $~lib/memory/__stack_pointer + local.get $12 + i32.store offset=8 + local.get $12 + call $"~lib/map/Map#set:buckets" + local.get $this + local.set $12 + global.get $~lib/memory/__stack_pointer + local.get $12 + i32.store offset=4 + local.get $12 + i32.const 4 + i32.const 1 + i32.sub + call $"~lib/map/Map#set:bucketsMask" + local.get $this + local.set $12 global.get $~lib/memory/__stack_pointer + local.get $12 + i32.store offset=4 + local.get $12 i32.const 0 - local.get $newEntriesCapacity - block $"~lib/map/ENTRY_SIZE|inlined.1" (result i32) + i32.const 4 + block $"~lib/map/ENTRY_SIZE|inlined.5" (result i32) i32.const 16 - br $"~lib/map/ENTRY_SIZE|inlined.1" + br $"~lib/map/ENTRY_SIZE|inlined.5" end i32.mul call $~lib/arraybuffer/ArrayBuffer#constructor - local.tee $newEntries + local.set $12 + global.get $~lib/memory/__stack_pointer + local.get $12 + i32.store offset=8 + local.get $12 + call $"~lib/map/Map#set:entries" + local.get $this + local.set $12 + global.get $~lib/memory/__stack_pointer + local.get $12 i32.store offset=4 + local.get $12 + i32.const 4 + call $"~lib/map/Map#set:entriesCapacity" local.get $this - local.set $14 + local.set $12 global.get $~lib/memory/__stack_pointer - local.get $14 - i32.store offset=8 - local.get $14 - call $"~lib/map/Map#get:entries" - local.set $oldPtr - local.get $oldPtr + local.get $12 + i32.store offset=4 + local.get $12 + i32.const 0 + call $"~lib/map/Map#set:entriesOffset" local.get $this - local.set $14 + local.set $12 global.get $~lib/memory/__stack_pointer - local.get $14 - i32.store offset=8 - local.get $14 - call $"~lib/map/Map#get:entriesOffset" - block $"~lib/map/ENTRY_SIZE|inlined.2" (result i32) - i32.const 16 - br $"~lib/map/ENTRY_SIZE|inlined.2" - end - i32.mul - i32.add - local.set $oldEnd - local.get $newEntries - local.set $newPtr - loop $while-continue|0 - local.get $oldPtr - local.get $oldEnd - i32.ne + local.get $12 + i32.store offset=4 + local.get $12 + i32.const 0 + call $"~lib/map/Map#set:entriesCount" + local.get $initialEntries + local.set $12 + global.get $~lib/memory/__stack_pointer + local.get $12 + i32.store offset=4 + local.get $12 + call $"~lib/array/Array<~lib/map/KeyValue>#get:length" + local.set $entriesLength + local.get $entriesLength + i32.const 0 + i32.gt_s + if + local.get $entriesLength + local.get $this + local.set $12 + global.get $~lib/memory/__stack_pointer + local.get $12 + i32.store offset=4 + local.get $12 + call $"~lib/map/Map#get:entriesCapacity" + i32.ge_s if - local.get $oldPtr - local.set $oldEntry - local.get $oldEntry - call $"~lib/map/MapEntry#get:taggedNext" - i32.const 1 - i32.and - i32.eqz + local.get $this + local.set $12 + global.get $~lib/memory/__stack_pointer + local.get $12 + i32.store offset=4 + local.get $12 + local.get $entriesLength + call $"~lib/map/Map#set:bucketsMask" + end + local.get $this + local.set $12 + global.get $~lib/memory/__stack_pointer + local.get $12 + i32.store offset=4 + local.get $12 + local.get $this + local.set $12 + global.get $~lib/memory/__stack_pointer + local.get $12 + i32.store offset=8 + local.get $12 + call $"~lib/map/Map#get:bucketsMask" + i32.const 1 + i32.shl + i32.const 1 + i32.or + call $"~lib/map/Map#rehash" + i32.const 0 + local.set $i + loop $for-loop|0 + local.get $i + local.get $entriesLength + i32.lt_s if - local.get $newPtr - local.set $newEntry - local.get $oldEntry - call $"~lib/map/MapEntry#get:key" - local.set $oldEntryKey - local.get $newEntry - local.get $oldEntryKey - call $"~lib/map/MapEntry#set:key" - local.get $newEntry - local.get $oldEntry - call $"~lib/map/MapEntry#get:value" - call $"~lib/map/MapEntry#set:value" - local.get $oldEntryKey + local.get $initialEntries + local.set $12 + global.get $~lib/memory/__stack_pointer + local.get $12 + i32.store offset=8 + local.get $12 + local.get $i + call $"~lib/array/Array<~lib/map/KeyValue>#__get" + local.set $12 + global.get $~lib/memory/__stack_pointer + local.get $12 + i32.store offset=4 + local.get $12 + call $"~lib/map/KeyValue#get:key" + local.set $key + local.get $initialEntries + local.set $12 + global.get $~lib/memory/__stack_pointer + local.get $12 + i32.store offset=8 + local.get $12 + local.get $i + call $"~lib/array/Array<~lib/map/KeyValue>#__get" + local.set $12 + global.get $~lib/memory/__stack_pointer + local.get $12 + i32.store offset=4 + local.get $12 + call $"~lib/map/KeyValue#get:value" + local.set $value + local.get $key call $~lib/util/hash/HASH - local.get $newBucketsMask - i32.and - local.set $newBucketIndex - local.get $newBuckets - local.get $newBucketIndex - i32.const 4 - i32.mul - i32.add - local.set $newBucketPtrBase - local.get $newEntry - local.get $newBucketPtrBase - i32.load - call $"~lib/map/MapEntry#set:taggedNext" - local.get $newBucketPtrBase - local.get $newPtr - i32.store - local.get $newPtr - block $"~lib/map/ENTRY_SIZE|inlined.3" (result i32) - i32.const 16 - br $"~lib/map/ENTRY_SIZE|inlined.3" + local.set $hashCode + local.get $this + local.set $12 + global.get $~lib/memory/__stack_pointer + local.get $12 + i32.store offset=4 + local.get $12 + local.get $key + local.get $hashCode + call $"~lib/map/Map#find" + local.set $entry + local.get $entry + if + local.get $entry + local.get $value + call $"~lib/map/MapEntry#set:value" + i32.const 0 + drop + else + global.get $~lib/memory/__stack_pointer + local.get $this + local.set $12 + global.get $~lib/memory/__stack_pointer + local.get $12 + i32.store offset=4 + local.get $12 + call $"~lib/map/Map#get:entries" + local.tee $entries + i32.store offset=12 + local.get $entries + local.get $this + local.set $12 + global.get $~lib/memory/__stack_pointer + local.get $12 + i32.store offset=4 + local.get $12 + local.get $this + local.set $12 + global.get $~lib/memory/__stack_pointer + local.get $12 + i32.store offset=8 + local.get $12 + call $"~lib/map/Map#get:entriesOffset" + local.tee $9 + i32.const 1 + i32.add + call $"~lib/map/Map#set:entriesOffset" + local.get $9 + block $"~lib/map/ENTRY_SIZE|inlined.4" (result i32) + i32.const 16 + br $"~lib/map/ENTRY_SIZE|inlined.4" + end + i32.mul + i32.add + local.set $entry|10 + local.get $entry|10 + local.get $key + call $"~lib/map/MapEntry#set:key" + i32.const 0 + drop + local.get $entry|10 + local.get $value + call $"~lib/map/MapEntry#set:value" + i32.const 0 + drop + local.get $this + local.set $12 + global.get $~lib/memory/__stack_pointer + local.get $12 + i32.store offset=4 + local.get $12 + local.get $this + local.set $12 + global.get $~lib/memory/__stack_pointer + local.get $12 + i32.store offset=8 + local.get $12 + call $"~lib/map/Map#get:entriesCount" + i32.const 1 + i32.add + call $"~lib/map/Map#set:entriesCount" + local.get $this + local.set $12 + global.get $~lib/memory/__stack_pointer + local.get $12 + i32.store offset=4 + local.get $12 + call $"~lib/map/Map#get:buckets" + local.get $hashCode + local.get $this + local.set $12 + global.get $~lib/memory/__stack_pointer + local.get $12 + i32.store offset=4 + local.get $12 + call $"~lib/map/Map#get:bucketsMask" + i32.and + i32.const 4 + i32.mul + i32.add + local.set $bucketPtrBase + local.get $entry|10 + local.get $bucketPtrBase + i32.load + call $"~lib/map/MapEntry#set:taggedNext" + local.get $bucketPtrBase + local.get $entry|10 + i32.store end + local.get $i + i32.const 1 i32.add - local.set $newPtr - end - local.get $oldPtr - block $"~lib/map/ENTRY_SIZE|inlined.4" (result i32) - i32.const 16 - br $"~lib/map/ENTRY_SIZE|inlined.4" + local.set $i + br $for-loop|0 end - i32.add - local.set $oldPtr - br $while-continue|0 end end local.get $this - local.set $14 + local.set $12 global.get $~lib/memory/__stack_pointer - local.get $14 - i32.store offset=8 - local.get $14 - local.get $newBuckets - local.set $14 + i32.const 16 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $12 + ) + (func $"~lib/map/Map#constructor@varargs" (param $this i32) (param $initialEntries i32) (result i32) + (local $2 i32) + (local $3 i32) global.get $~lib/memory/__stack_pointer - local.get $14 - i32.store offset=12 - local.get $14 - call $"~lib/map/Map#set:buckets" - local.get $this - local.set $14 + i32.const 12 + i32.sub + global.set $~lib/memory/__stack_pointer + call $~stack_check global.get $~lib/memory/__stack_pointer - local.get $14 + i64.const 0 + i64.store + global.get $~lib/memory/__stack_pointer + i32.const 0 i32.store offset=8 - local.get $14 - local.get $newBucketsMask - call $"~lib/map/Map#set:bucketsMask" + block $1of1 + block $0of1 + block $outOfRange + global.get $~argumentsLength + br_table $0of1 $1of1 $outOfRange + end + unreachable + end + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.const 2 + i32.const 52 + i32.const 1520 + call $~lib/rt/__newArray + local.tee $initialEntries + i32.store + end local.get $this - local.set $14 + local.set $3 global.get $~lib/memory/__stack_pointer - local.get $14 + local.get $3 + i32.store offset=4 + local.get $3 + local.get $initialEntries + local.set $3 + global.get $~lib/memory/__stack_pointer + local.get $3 i32.store offset=8 - local.get $14 - local.get $newEntries - local.set $14 + local.get $3 + call $"~lib/map/Map#constructor" + local.set $3 global.get $~lib/memory/__stack_pointer - local.get $14 - i32.store offset=12 - local.get $14 - call $"~lib/map/Map#set:entries" - local.get $this - local.set $14 + i32.const 12 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $3 + ) + (func $"~lib/map/Map#has" (param $this i32) (param $key i64) (result i32) + (local $2 i32) global.get $~lib/memory/__stack_pointer - local.get $14 - i32.store offset=8 - local.get $14 - local.get $newEntriesCapacity - call $"~lib/map/Map#set:entriesCapacity" - local.get $this - local.set $14 + i32.const 4 + i32.sub + global.set $~lib/memory/__stack_pointer + call $~stack_check global.get $~lib/memory/__stack_pointer - local.get $14 - i32.store offset=8 - local.get $14 + i32.const 0 + i32.store local.get $this - local.set $14 + local.set $2 global.get $~lib/memory/__stack_pointer - local.get $14 - i32.store offset=12 - local.get $14 - call $"~lib/map/Map#get:entriesCount" - call $"~lib/map/Map#set:entriesOffset" + local.get $2 + i32.store + local.get $2 + local.get $key + local.get $key + call $~lib/util/hash/HASH + call $"~lib/map/Map#find" + i32.const 0 + i32.ne + local.set $2 global.get $~lib/memory/__stack_pointer - i32.const 16 + i32.const 4 i32.add global.set $~lib/memory/__stack_pointer + local.get $2 + return ) (func $"~lib/map/Map#set" (param $this i32) (param $key i64) (param $value i32) (result i32) (local $hashCode i32) @@ -24502,9 +32646,9 @@ i32.add call $"~lib/map/Map#set:entriesOffset" local.get $6 - block $"~lib/map/ENTRY_SIZE|inlined.5" (result i32) + block $"~lib/map/ENTRY_SIZE|inlined.6" (result i32) i32.const 16 - br $"~lib/map/ENTRY_SIZE|inlined.5" + br $"~lib/map/ENTRY_SIZE|inlined.6" end i32.mul i32.add @@ -24597,9 +32741,9 @@ local.get $entry i32.eqz if - i32.const 592 - i32.const 656 - i32.const 105 + i32.const 800 + i32.const 864 + i32.const 148 i32.const 17 call $~lib/builtins/abort unreachable @@ -24661,7 +32805,7 @@ if global.get $~lib/memory/__stack_pointer i32.const 16 - i32.const 25 + i32.const 53 call $~lib/rt/itcms/__new local.tee $this i32.store @@ -24704,8 +32848,8 @@ i32.shr_u i32.gt_u if - i32.const 432 - i32.const 704 + i32.const 32 + i32.const 544 i32.const 70 i32.const 60 call $~lib/builtins/abort @@ -24801,8 +32945,8 @@ i32.const 0 i32.lt_s if - i32.const 224 - i32.const 704 + i32.const 336 + i32.const 544 i32.const 130 i32.const 22 call $~lib/builtins/abort @@ -24924,9 +33068,9 @@ if local.get $start local.get $i - block $"~lib/map/ENTRY_SIZE|inlined.6" (result i32) + block $"~lib/map/ENTRY_SIZE|inlined.7" (result i32) i32.const 16 - br $"~lib/map/ENTRY_SIZE|inlined.6" + br $"~lib/map/ENTRY_SIZE|inlined.7" end i32.mul i32.add @@ -25027,9 +33171,9 @@ if local.get $start local.get $i - block $"~lib/map/ENTRY_SIZE|inlined.7" (result i32) + block $"~lib/map/ENTRY_SIZE|inlined.8" (result i32) i32.const 16 - br $"~lib/map/ENTRY_SIZE|inlined.7" + br $"~lib/map/ENTRY_SIZE|inlined.8" end i32.mul i32.add @@ -25080,190 +33224,8 @@ local.get $8 return ) - (func $"~lib/map/Map#constructor" (param $this i32) (result i32) - (local $1 i32) - global.get $~lib/memory/__stack_pointer - i32.const 12 - i32.sub - global.set $~lib/memory/__stack_pointer - call $~stack_check - global.get $~lib/memory/__stack_pointer - i64.const 0 - i64.store - global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.store offset=8 - local.get $this - i32.eqz - if - global.get $~lib/memory/__stack_pointer - i32.const 24 - i32.const 26 - call $~lib/rt/itcms/__new - local.tee $this - i32.store - end - local.get $this - local.set $1 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - local.get $1 - i32.const 0 - i32.const 4 - i32.const 4 - i32.mul - call $~lib/arraybuffer/ArrayBuffer#constructor - local.set $1 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=8 - local.get $1 - call $"~lib/map/Map#set:buckets" - local.get $this - local.set $1 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - local.get $1 - i32.const 4 - i32.const 1 - i32.sub - call $"~lib/map/Map#set:bucketsMask" - local.get $this - local.set $1 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - local.get $1 - i32.const 0 - i32.const 4 - block $"~lib/map/ENTRY_SIZE|inlined.0" (result i32) - i32.const 24 - br $"~lib/map/ENTRY_SIZE|inlined.0" - end - i32.mul - call $~lib/arraybuffer/ArrayBuffer#constructor - local.set $1 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=8 - local.get $1 - call $"~lib/map/Map#set:entries" - local.get $this - local.set $1 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - local.get $1 - i32.const 4 - call $"~lib/map/Map#set:entriesCapacity" - local.get $this - local.set $1 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - local.get $1 - i32.const 0 - call $"~lib/map/Map#set:entriesOffset" - local.get $this - local.set $1 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - local.get $1 - i32.const 0 - call $"~lib/map/Map#set:entriesCount" - local.get $this - local.set $1 - global.get $~lib/memory/__stack_pointer - i32.const 12 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $1 - ) - (func $~lib/array/Array#get:length (param $this i32) (result i32) - (local $1 i32) - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.sub - global.set $~lib/memory/__stack_pointer - call $~stack_check - global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.store - local.get $this - local.set $1 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store - local.get $1 - call $~lib/array/Array#get:length_ - local.set $1 - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $1 - return - ) - (func $~lib/array/Array#__get (param $this i32) (param $index i32) (result i64) - (local $value i64) - (local $3 i32) - (local $4 i64) - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.sub - global.set $~lib/memory/__stack_pointer - call $~stack_check - global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.store - local.get $index - local.get $this - local.set $3 - global.get $~lib/memory/__stack_pointer - local.get $3 - i32.store - local.get $3 - call $~lib/array/Array#get:length_ - i32.ge_u - if - i32.const 224 - i32.const 704 - i32.const 114 - i32.const 42 - call $~lib/builtins/abort - unreachable - end - local.get $this - local.set $3 - global.get $~lib/memory/__stack_pointer - local.get $3 - i32.store - local.get $3 - call $~lib/array/Array#get:dataStart - local.get $index - i32.const 3 - i32.shl - i32.add - i64.load - local.set $value - i32.const 0 - drop - local.get $value - local.set $4 - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $4 - return - ) - (func $"~lib/map/Map#find" (param $this i32) (param $key i64) (param $hashCode i32) (result i32) - (local $entry i32) - (local $taggedNext i32) - (local $5 i32) + (func $"~lib/array/Array<~lib/map/KeyValue>#get:length" (param $this i32) (result i32) + (local $1 i32) global.get $~lib/memory/__stack_pointer i32.const 4 i32.sub @@ -25273,70 +33235,18 @@ i32.const 0 i32.store local.get $this - local.set $5 - global.get $~lib/memory/__stack_pointer - local.get $5 - i32.store - local.get $5 - call $"~lib/map/Map#get:buckets" - local.get $hashCode - local.get $this - local.set $5 + local.set $1 global.get $~lib/memory/__stack_pointer - local.get $5 + local.get $1 i32.store - local.get $5 - call $"~lib/map/Map#get:bucketsMask" - i32.and - i32.const 4 - i32.mul - i32.add - i32.load - local.set $entry - loop $while-continue|0 - local.get $entry - if - local.get $entry - call $"~lib/map/MapEntry#get:taggedNext" - local.set $taggedNext - local.get $taggedNext - i32.const 1 - i32.and - i32.eqz - if (result i32) - local.get $entry - call $"~lib/map/MapEntry#get:key" - local.get $key - i64.eq - else - i32.const 0 - end - if - local.get $entry - local.set $5 - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $5 - return - end - local.get $taggedNext - i32.const 1 - i32.const -1 - i32.xor - i32.and - local.set $entry - br $while-continue|0 - end - end - i32.const 0 - local.set $5 + local.get $1 + call $"~lib/array/Array<~lib/map/KeyValue>#get:length_" + local.set $1 global.get $~lib/memory/__stack_pointer i32.const 4 i32.add global.set $~lib/memory/__stack_pointer - local.get $5 + local.get $1 return ) (func $"~lib/map/Map#rehash" (param $this i32) (param $newBucketsMask i32) @@ -25385,9 +33295,9 @@ global.get $~lib/memory/__stack_pointer i32.const 0 local.get $newEntriesCapacity - block $"~lib/map/ENTRY_SIZE|inlined.1" (result i32) + block $"~lib/map/ENTRY_SIZE|inlined.0" (result i32) i32.const 24 - br $"~lib/map/ENTRY_SIZE|inlined.1" + br $"~lib/map/ENTRY_SIZE|inlined.0" end i32.mul call $~lib/arraybuffer/ArrayBuffer#constructor @@ -25409,9 +33319,9 @@ i32.store offset=8 local.get $14 call $"~lib/map/Map#get:entriesOffset" - block $"~lib/map/ENTRY_SIZE|inlined.2" (result i32) + block $"~lib/map/ENTRY_SIZE|inlined.1" (result i32) i32.const 24 - br $"~lib/map/ENTRY_SIZE|inlined.2" + br $"~lib/map/ENTRY_SIZE|inlined.1" end i32.mul i32.add @@ -25462,17 +33372,17 @@ local.get $newPtr i32.store local.get $newPtr - block $"~lib/map/ENTRY_SIZE|inlined.3" (result i32) + block $"~lib/map/ENTRY_SIZE|inlined.2" (result i32) i32.const 24 - br $"~lib/map/ENTRY_SIZE|inlined.3" + br $"~lib/map/ENTRY_SIZE|inlined.2" end i32.add local.set $newPtr end local.get $oldPtr - block $"~lib/map/ENTRY_SIZE|inlined.4" (result i32) + block $"~lib/map/ENTRY_SIZE|inlined.3" (result i32) i32.const 24 - br $"~lib/map/ENTRY_SIZE|inlined.4" + br $"~lib/map/ENTRY_SIZE|inlined.3" end i32.add local.set $oldPtr @@ -25540,6 +33450,598 @@ i32.add global.set $~lib/memory/__stack_pointer ) + (func $"~lib/array/Array<~lib/map/KeyValue>#__get" (param $this i32) (param $index i32) (result i32) + (local $value i32) + (local $3 i32) + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.sub + global.set $~lib/memory/__stack_pointer + call $~stack_check + global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store + local.get $index + local.get $this + local.set $3 + global.get $~lib/memory/__stack_pointer + local.get $3 + i32.store + local.get $3 + call $"~lib/array/Array<~lib/map/KeyValue>#get:length_" + i32.ge_u + if + i32.const 336 + i32.const 544 + i32.const 114 + i32.const 42 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + local.get $this + local.set $3 + global.get $~lib/memory/__stack_pointer + local.get $3 + i32.store + local.get $3 + call $"~lib/array/Array<~lib/map/KeyValue>#get:dataStart" + local.get $index + i32.const 2 + i32.shl + i32.add + i32.load + local.tee $value + i32.store offset=4 + i32.const 1 + drop + i32.const 0 + i32.eqz + drop + local.get $value + i32.eqz + if + i32.const 592 + i32.const 544 + i32.const 118 + i32.const 40 + call $~lib/builtins/abort + unreachable + end + local.get $value + local.set $3 + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $3 + return + ) + (func $"~lib/map/Map#find" (param $this i32) (param $key i64) (param $hashCode i32) (result i32) + (local $entry i32) + (local $taggedNext i32) + (local $5 i32) + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.sub + global.set $~lib/memory/__stack_pointer + call $~stack_check + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store + local.get $this + local.set $5 + global.get $~lib/memory/__stack_pointer + local.get $5 + i32.store + local.get $5 + call $"~lib/map/Map#get:buckets" + local.get $hashCode + local.get $this + local.set $5 + global.get $~lib/memory/__stack_pointer + local.get $5 + i32.store + local.get $5 + call $"~lib/map/Map#get:bucketsMask" + i32.and + i32.const 4 + i32.mul + i32.add + i32.load + local.set $entry + loop $while-continue|0 + local.get $entry + if + local.get $entry + call $"~lib/map/MapEntry#get:taggedNext" + local.set $taggedNext + local.get $taggedNext + i32.const 1 + i32.and + i32.eqz + if (result i32) + local.get $entry + call $"~lib/map/MapEntry#get:key" + local.get $key + i64.eq + else + i32.const 0 + end + if + local.get $entry + local.set $5 + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $5 + return + end + local.get $taggedNext + i32.const 1 + i32.const -1 + i32.xor + i32.and + local.set $entry + br $while-continue|0 + end + end + i32.const 0 + local.set $5 + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $5 + return + ) + (func $"~lib/map/Map#constructor" (param $this i32) (param $initialEntries i32) (result i32) + (local $entriesLength i32) + (local $i i32) + (local $key i64) + (local $value i64) + (local $hashCode i32) + (local $entry i32) + (local $entries i32) + (local $9 i32) + (local $entry|10 i32) + (local $bucketPtrBase i32) + (local $12 i32) + global.get $~lib/memory/__stack_pointer + i32.const 16 + i32.sub + global.set $~lib/memory/__stack_pointer + call $~stack_check + global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store + global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store offset=8 + local.get $this + i32.eqz + if + global.get $~lib/memory/__stack_pointer + i32.const 24 + i32.const 54 + call $~lib/rt/itcms/__new + local.tee $this + i32.store + end + local.get $this + local.set $12 + global.get $~lib/memory/__stack_pointer + local.get $12 + i32.store offset=4 + local.get $12 + i32.const 0 + i32.const 4 + i32.const 4 + i32.mul + call $~lib/arraybuffer/ArrayBuffer#constructor + local.set $12 + global.get $~lib/memory/__stack_pointer + local.get $12 + i32.store offset=8 + local.get $12 + call $"~lib/map/Map#set:buckets" + local.get $this + local.set $12 + global.get $~lib/memory/__stack_pointer + local.get $12 + i32.store offset=4 + local.get $12 + i32.const 4 + i32.const 1 + i32.sub + call $"~lib/map/Map#set:bucketsMask" + local.get $this + local.set $12 + global.get $~lib/memory/__stack_pointer + local.get $12 + i32.store offset=4 + local.get $12 + i32.const 0 + i32.const 4 + block $"~lib/map/ENTRY_SIZE|inlined.5" (result i32) + i32.const 24 + br $"~lib/map/ENTRY_SIZE|inlined.5" + end + i32.mul + call $~lib/arraybuffer/ArrayBuffer#constructor + local.set $12 + global.get $~lib/memory/__stack_pointer + local.get $12 + i32.store offset=8 + local.get $12 + call $"~lib/map/Map#set:entries" + local.get $this + local.set $12 + global.get $~lib/memory/__stack_pointer + local.get $12 + i32.store offset=4 + local.get $12 + i32.const 4 + call $"~lib/map/Map#set:entriesCapacity" + local.get $this + local.set $12 + global.get $~lib/memory/__stack_pointer + local.get $12 + i32.store offset=4 + local.get $12 + i32.const 0 + call $"~lib/map/Map#set:entriesOffset" + local.get $this + local.set $12 + global.get $~lib/memory/__stack_pointer + local.get $12 + i32.store offset=4 + local.get $12 + i32.const 0 + call $"~lib/map/Map#set:entriesCount" + local.get $initialEntries + local.set $12 + global.get $~lib/memory/__stack_pointer + local.get $12 + i32.store offset=4 + local.get $12 + call $"~lib/array/Array<~lib/map/KeyValue>#get:length" + local.set $entriesLength + local.get $entriesLength + i32.const 0 + i32.gt_s + if + local.get $entriesLength + local.get $this + local.set $12 + global.get $~lib/memory/__stack_pointer + local.get $12 + i32.store offset=4 + local.get $12 + call $"~lib/map/Map#get:entriesCapacity" + i32.ge_s + if + local.get $this + local.set $12 + global.get $~lib/memory/__stack_pointer + local.get $12 + i32.store offset=4 + local.get $12 + local.get $entriesLength + call $"~lib/map/Map#set:bucketsMask" + end + local.get $this + local.set $12 + global.get $~lib/memory/__stack_pointer + local.get $12 + i32.store offset=4 + local.get $12 + local.get $this + local.set $12 + global.get $~lib/memory/__stack_pointer + local.get $12 + i32.store offset=8 + local.get $12 + call $"~lib/map/Map#get:bucketsMask" + i32.const 1 + i32.shl + i32.const 1 + i32.or + call $"~lib/map/Map#rehash" + i32.const 0 + local.set $i + loop $for-loop|0 + local.get $i + local.get $entriesLength + i32.lt_s + if + local.get $initialEntries + local.set $12 + global.get $~lib/memory/__stack_pointer + local.get $12 + i32.store offset=8 + local.get $12 + local.get $i + call $"~lib/array/Array<~lib/map/KeyValue>#__get" + local.set $12 + global.get $~lib/memory/__stack_pointer + local.get $12 + i32.store offset=4 + local.get $12 + call $"~lib/map/KeyValue#get:key" + local.set $key + local.get $initialEntries + local.set $12 + global.get $~lib/memory/__stack_pointer + local.get $12 + i32.store offset=8 + local.get $12 + local.get $i + call $"~lib/array/Array<~lib/map/KeyValue>#__get" + local.set $12 + global.get $~lib/memory/__stack_pointer + local.get $12 + i32.store offset=4 + local.get $12 + call $"~lib/map/KeyValue#get:value" + local.set $value + local.get $key + call $~lib/util/hash/HASH + local.set $hashCode + local.get $this + local.set $12 + global.get $~lib/memory/__stack_pointer + local.get $12 + i32.store offset=4 + local.get $12 + local.get $key + local.get $hashCode + call $"~lib/map/Map#find" + local.set $entry + local.get $entry + if + local.get $entry + local.get $value + call $"~lib/map/MapEntry#set:value" + i32.const 0 + drop + else + global.get $~lib/memory/__stack_pointer + local.get $this + local.set $12 + global.get $~lib/memory/__stack_pointer + local.get $12 + i32.store offset=4 + local.get $12 + call $"~lib/map/Map#get:entries" + local.tee $entries + i32.store offset=12 + local.get $entries + local.get $this + local.set $12 + global.get $~lib/memory/__stack_pointer + local.get $12 + i32.store offset=4 + local.get $12 + local.get $this + local.set $12 + global.get $~lib/memory/__stack_pointer + local.get $12 + i32.store offset=8 + local.get $12 + call $"~lib/map/Map#get:entriesOffset" + local.tee $9 + i32.const 1 + i32.add + call $"~lib/map/Map#set:entriesOffset" + local.get $9 + block $"~lib/map/ENTRY_SIZE|inlined.4" (result i32) + i32.const 24 + br $"~lib/map/ENTRY_SIZE|inlined.4" + end + i32.mul + i32.add + local.set $entry|10 + local.get $entry|10 + local.get $key + call $"~lib/map/MapEntry#set:key" + i32.const 0 + drop + local.get $entry|10 + local.get $value + call $"~lib/map/MapEntry#set:value" + i32.const 0 + drop + local.get $this + local.set $12 + global.get $~lib/memory/__stack_pointer + local.get $12 + i32.store offset=4 + local.get $12 + local.get $this + local.set $12 + global.get $~lib/memory/__stack_pointer + local.get $12 + i32.store offset=8 + local.get $12 + call $"~lib/map/Map#get:entriesCount" + i32.const 1 + i32.add + call $"~lib/map/Map#set:entriesCount" + local.get $this + local.set $12 + global.get $~lib/memory/__stack_pointer + local.get $12 + i32.store offset=4 + local.get $12 + call $"~lib/map/Map#get:buckets" + local.get $hashCode + local.get $this + local.set $12 + global.get $~lib/memory/__stack_pointer + local.get $12 + i32.store offset=4 + local.get $12 + call $"~lib/map/Map#get:bucketsMask" + i32.and + i32.const 4 + i32.mul + i32.add + local.set $bucketPtrBase + local.get $entry|10 + local.get $bucketPtrBase + i32.load + call $"~lib/map/MapEntry#set:taggedNext" + local.get $bucketPtrBase + local.get $entry|10 + i32.store + end + local.get $i + i32.const 1 + i32.add + local.set $i + br $for-loop|0 + end + end + end + local.get $this + local.set $12 + global.get $~lib/memory/__stack_pointer + i32.const 16 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $12 + ) + (func $"~lib/map/Map#constructor@varargs" (param $this i32) (param $initialEntries i32) (result i32) + (local $2 i32) + (local $3 i32) + global.get $~lib/memory/__stack_pointer + i32.const 12 + i32.sub + global.set $~lib/memory/__stack_pointer + call $~stack_check + global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store offset=8 + block $1of1 + block $0of1 + block $outOfRange + global.get $~argumentsLength + br_table $0of1 $1of1 $outOfRange + end + unreachable + end + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.const 2 + i32.const 56 + i32.const 1552 + call $~lib/rt/__newArray + local.tee $initialEntries + i32.store + end + local.get $this + local.set $3 + global.get $~lib/memory/__stack_pointer + local.get $3 + i32.store offset=4 + local.get $3 + local.get $initialEntries + local.set $3 + global.get $~lib/memory/__stack_pointer + local.get $3 + i32.store offset=8 + local.get $3 + call $"~lib/map/Map#constructor" + local.set $3 + global.get $~lib/memory/__stack_pointer + i32.const 12 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $3 + ) + (func $~lib/array/Array#get:length (param $this i32) (result i32) + (local $1 i32) + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.sub + global.set $~lib/memory/__stack_pointer + call $~stack_check + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store + local.get $this + local.set $1 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store + local.get $1 + call $~lib/array/Array#get:length_ + local.set $1 + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $1 + return + ) + (func $~lib/array/Array#__get (param $this i32) (param $index i32) (result i64) + (local $value i64) + (local $3 i32) + (local $4 i64) + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.sub + global.set $~lib/memory/__stack_pointer + call $~stack_check + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store + local.get $index + local.get $this + local.set $3 + global.get $~lib/memory/__stack_pointer + local.get $3 + i32.store + local.get $3 + call $~lib/array/Array#get:length_ + i32.ge_u + if + i32.const 336 + i32.const 544 + i32.const 114 + i32.const 42 + call $~lib/builtins/abort + unreachable + end + local.get $this + local.set $3 + global.get $~lib/memory/__stack_pointer + local.get $3 + i32.store + local.get $3 + call $~lib/array/Array#get:dataStart + local.get $index + i32.const 3 + i32.shl + i32.add + i64.load + local.set $value + i32.const 0 + drop + local.get $value + local.set $4 + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $4 + return + ) (func $"~lib/map/Map#set" (param $this i32) (param $key i64) (param $value i64) (result i32) (local $hashCode i32) (local $entry i32) @@ -25672,9 +34174,9 @@ i32.add call $"~lib/map/Map#set:entriesOffset" local.get $6 - block $"~lib/map/ENTRY_SIZE|inlined.5" (result i32) + block $"~lib/map/ENTRY_SIZE|inlined.6" (result i32) i32.const 24 - br $"~lib/map/ENTRY_SIZE|inlined.5" + br $"~lib/map/ENTRY_SIZE|inlined.6" end i32.mul i32.add @@ -25941,9 +34443,9 @@ local.get $1 i32.const 0 i32.const 4 - block $"~lib/map/ENTRY_SIZE|inlined.8" (result i32) + block $"~lib/map/ENTRY_SIZE|inlined.9" (result i32) i32.const 16 - br $"~lib/map/ENTRY_SIZE|inlined.8" + br $"~lib/map/ENTRY_SIZE|inlined.9" end i32.mul call $~lib/arraybuffer/ArrayBuffer#constructor @@ -25982,6 +34484,125 @@ i32.add global.set $~lib/memory/__stack_pointer ) + (func $"~lib/map/KeyValue#constructor" (param $this i32) (result i32) + (local $1 i32) + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.sub + global.set $~lib/memory/__stack_pointer + call $~stack_check + global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store + local.get $this + i32.eqz + if + global.get $~lib/memory/__stack_pointer + i32.const 12 + i32.const 51 + call $~lib/rt/itcms/__new + local.tee $this + i32.store + end + global.get $~lib/memory/__stack_pointer + local.get $this + local.set $1 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + local.get $1 + call $~lib/object/Object#constructor + local.tee $this + i32.store + local.get $this + local.set $1 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + local.get $1 + i64.const 0 + call $"~lib/map/KeyValue#set:key" + local.get $this + local.set $1 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + local.get $1 + i32.const 0 + call $"~lib/map/KeyValue#set:value" + local.get $this + local.set $1 + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $1 + ) + (func $"~lib/array/Array<~lib/map/KeyValue>#push" (param $this i32) (param $value i32) (result i32) + (local $oldLen i32) + (local $len i32) + (local $4 i32) + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.sub + global.set $~lib/memory/__stack_pointer + call $~stack_check + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store + local.get $this + local.set $4 + global.get $~lib/memory/__stack_pointer + local.get $4 + i32.store + local.get $4 + call $"~lib/array/Array<~lib/map/KeyValue>#get:length_" + local.set $oldLen + local.get $oldLen + i32.const 1 + i32.add + local.set $len + local.get $this + local.get $len + i32.const 2 + i32.const 1 + call $~lib/array/ensureCapacity + i32.const 1 + drop + local.get $this + local.set $4 + global.get $~lib/memory/__stack_pointer + local.get $4 + i32.store + local.get $4 + call $"~lib/array/Array<~lib/map/KeyValue>#get:dataStart" + local.get $oldLen + i32.const 2 + i32.shl + i32.add + local.get $value + i32.store + local.get $this + local.get $value + i32.const 1 + call $~lib/rt/itcms/__link + local.get $this + local.set $4 + global.get $~lib/memory/__stack_pointer + local.get $4 + i32.store + local.get $4 + local.get $len + call $"~lib/array/Array<~lib/map/KeyValue>#set:length_" + local.get $len + local.set $4 + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $4 + return + ) (func $"std/map/testNumeric" (local $map i32) (local $k i64) @@ -25996,18 +34617,26 @@ (local $k|10 i64) (local $k|11 i64) (local $12 i32) + (local $initialEntries i32) + (local $k|14 i64) + (local $15 i32) + (local $k|16 i64) + (local $17 i32) global.get $~lib/memory/__stack_pointer - i32.const 24 + i32.const 40 i32.sub global.set $~lib/memory/__stack_pointer call $~stack_check global.get $~lib/memory/__stack_pointer i32.const 0 - i32.const 24 + i32.const 40 memory.fill global.get $~lib/memory/__stack_pointer i32.const 0 - call $"~lib/map/Map#constructor" + i32.const 0 + global.set $~argumentsLength + i32.const 0 + call $"~lib/map/Map#constructor@varargs" local.tee $map i32.store i64.const 0 @@ -26018,29 +34647,29 @@ i64.lt_u if local.get $map - local.set $12 + local.set $17 global.get $~lib/memory/__stack_pointer - local.get $12 + local.get $17 i32.store offset=4 - local.get $12 + local.get $17 local.get $k call $"~lib/map/Map#has" i32.eqz i32.eqz if i32.const 0 - i32.const 544 - i32.const 6 + i32.const 752 + i32.const 7 i32.const 5 call $~lib/builtins/abort unreachable end local.get $map - local.set $12 + local.set $17 global.get $~lib/memory/__stack_pointer - local.get $12 + local.get $17 i32.store offset=4 - local.get $12 + local.get $17 local.get $k i32.const 10 local.get $k @@ -26049,28 +34678,28 @@ call $"~lib/map/Map#set" drop local.get $map - local.set $12 + local.set $17 global.get $~lib/memory/__stack_pointer - local.get $12 + local.get $17 i32.store offset=4 - local.get $12 + local.get $17 local.get $k call $"~lib/map/Map#has" i32.eqz if i32.const 0 - i32.const 544 - i32.const 8 + i32.const 752 + i32.const 9 i32.const 5 call $~lib/builtins/abort unreachable end local.get $map - local.set $12 + local.set $17 global.get $~lib/memory/__stack_pointer - local.get $12 + local.get $17 i32.store offset=4 - local.get $12 + local.get $17 local.get $k call $"~lib/map/Map#get" i32.const 10 @@ -26081,8 +34710,8 @@ i32.eqz if i32.const 0 - i32.const 544 - i32.const 9 + i32.const 752 + i32.const 10 i32.const 5 call $~lib/builtins/abort unreachable @@ -26095,19 +34724,19 @@ end end local.get $map - local.set $12 + local.set $17 global.get $~lib/memory/__stack_pointer - local.get $12 + local.get $17 i32.store offset=4 - local.get $12 + local.get $17 call $"~lib/map/Map#get:size" i32.const 100 i32.eq i32.eqz if i32.const 0 - i32.const 544 - i32.const 11 + i32.const 752 + i32.const 12 i32.const 3 call $~lib/builtins/abort unreachable @@ -26120,28 +34749,28 @@ i64.lt_u if local.get $map - local.set $12 + local.set $17 global.get $~lib/memory/__stack_pointer - local.get $12 + local.get $17 i32.store offset=4 - local.get $12 + local.get $17 local.get $k|2 call $"~lib/map/Map#has" i32.eqz if i32.const 0 - i32.const 544 - i32.const 15 + i32.const 752 + i32.const 16 i32.const 5 call $~lib/builtins/abort unreachable end local.get $map - local.set $12 + local.set $17 global.get $~lib/memory/__stack_pointer - local.get $12 + local.get $17 i32.store offset=4 - local.get $12 + local.get $17 local.get $k|2 call $"~lib/map/Map#get" i32.const 10 @@ -26152,18 +34781,18 @@ i32.eqz if i32.const 0 - i32.const 544 - i32.const 16 + i32.const 752 + i32.const 17 i32.const 5 call $~lib/builtins/abort unreachable end local.get $map - local.set $12 + local.set $17 global.get $~lib/memory/__stack_pointer - local.get $12 + local.get $17 i32.store offset=4 - local.get $12 + local.get $17 local.get $k|2 i32.const 20 local.get $k|2 @@ -26172,28 +34801,28 @@ call $"~lib/map/Map#set" drop local.get $map - local.set $12 + local.set $17 global.get $~lib/memory/__stack_pointer - local.get $12 + local.get $17 i32.store offset=4 - local.get $12 + local.get $17 local.get $k|2 call $"~lib/map/Map#has" i32.eqz if i32.const 0 - i32.const 544 - i32.const 18 + i32.const 752 + i32.const 19 i32.const 5 call $~lib/builtins/abort unreachable end local.get $map - local.set $12 + local.set $17 global.get $~lib/memory/__stack_pointer - local.get $12 + local.get $17 i32.store offset=4 - local.get $12 + local.get $17 local.get $k|2 call $"~lib/map/Map#get" i32.const 20 @@ -26204,8 +34833,8 @@ i32.eqz if i32.const 0 - i32.const 544 - i32.const 19 + i32.const 752 + i32.const 20 i32.const 5 call $~lib/builtins/abort unreachable @@ -26218,51 +34847,57 @@ end end local.get $map - local.set $12 + local.set $17 global.get $~lib/memory/__stack_pointer - local.get $12 + local.get $17 i32.store offset=4 - local.get $12 + local.get $17 call $"~lib/map/Map#get:size" i32.const 100 i32.eq i32.eqz if i32.const 0 - i32.const 544 - i32.const 21 + i32.const 752 + i32.const 22 i32.const 3 call $~lib/builtins/abort unreachable end global.get $~lib/memory/__stack_pointer local.get $map - local.set $12 + local.set $17 global.get $~lib/memory/__stack_pointer - local.get $12 + local.get $17 i32.store offset=4 - local.get $12 + local.get $17 call $"~lib/map/Map#keys" local.tee $keys i32.store offset=8 global.get $~lib/memory/__stack_pointer local.get $map - local.set $12 + local.set $17 global.get $~lib/memory/__stack_pointer - local.get $12 + local.get $17 i32.store offset=4 - local.get $12 + local.get $17 call $"~lib/map/Map#values" local.tee $vals i32.store offset=12 global.get $~lib/memory/__stack_pointer i32.const 0 - call $"~lib/map/Map#constructor" + i32.const 0 + global.set $~argumentsLength + i32.const 0 + call $"~lib/map/Map#constructor@varargs" local.tee $keyMap i32.store offset=16 global.get $~lib/memory/__stack_pointer i32.const 0 - call $"~lib/map/Map#constructor" + i32.const 0 + global.set $~argumentsLength + i32.const 0 + call $"~lib/map/Map#constructor@varargs" local.tee $valMap i32.store offset=20 i32.const 0 @@ -26270,55 +34905,55 @@ loop $for-loop|2 local.get $index local.get $keys - local.set $12 + local.set $17 global.get $~lib/memory/__stack_pointer - local.get $12 + local.get $17 i32.store offset=4 - local.get $12 + local.get $17 call $~lib/array/Array#get:length i32.lt_s if local.get $keys - local.set $12 + local.set $17 global.get $~lib/memory/__stack_pointer - local.get $12 + local.get $17 i32.store offset=4 - local.get $12 + local.get $17 local.get $index call $~lib/array/Array#__get local.set $key local.get $vals - local.set $12 + local.set $17 global.get $~lib/memory/__stack_pointer - local.get $12 + local.get $17 i32.store offset=4 - local.get $12 + local.get $17 local.get $index call $~lib/array/Array#__get local.set $value local.get $map - local.set $12 + local.set $17 global.get $~lib/memory/__stack_pointer - local.get $12 + local.get $17 i32.store offset=4 - local.get $12 + local.get $17 local.get $key call $"~lib/map/Map#has" i32.eqz if i32.const 0 - i32.const 544 - i32.const 31 + i32.const 752 + i32.const 32 i32.const 5 call $~lib/builtins/abort unreachable end local.get $map - local.set $12 + local.set $17 global.get $~lib/memory/__stack_pointer - local.get $12 + local.get $17 i32.store offset=4 - local.get $12 + local.get $17 local.get $value i32.const 20 i32.sub @@ -26327,28 +34962,28 @@ i32.eqz if i32.const 0 - i32.const 544 - i32.const 32 + i32.const 752 + i32.const 33 i32.const 5 call $~lib/builtins/abort unreachable end local.get $keyMap - local.set $12 + local.set $17 global.get $~lib/memory/__stack_pointer - local.get $12 + local.get $17 i32.store offset=4 - local.get $12 + local.get $17 local.get $key local.get $key call $"~lib/map/Map#set" drop local.get $valMap - local.set $12 + local.set $17 global.get $~lib/memory/__stack_pointer - local.get $12 + local.get $17 i32.store offset=4 - local.get $12 + local.get $17 local.get $value i32.const 20 i32.sub @@ -26365,37 +35000,37 @@ end end local.get $keyMap - local.set $12 + local.set $17 global.get $~lib/memory/__stack_pointer - local.get $12 + local.get $17 i32.store offset=4 - local.get $12 + local.get $17 call $"~lib/map/Map#get:size" i32.const 100 i32.eq i32.eqz if i32.const 0 - i32.const 544 - i32.const 36 + i32.const 752 + i32.const 37 i32.const 3 call $~lib/builtins/abort unreachable end local.get $valMap - local.set $12 + local.set $17 global.get $~lib/memory/__stack_pointer - local.get $12 + local.get $17 i32.store offset=4 - local.get $12 + local.get $17 call $"~lib/map/Map#get:size" i32.const 100 i32.eq i32.eqz if i32.const 0 - i32.const 544 - i32.const 37 + i32.const 752 + i32.const 38 i32.const 3 call $~lib/builtins/abort unreachable @@ -26408,28 +35043,28 @@ i64.lt_u if local.get $map - local.set $12 + local.set $17 global.get $~lib/memory/__stack_pointer - local.get $12 + local.get $17 i32.store offset=4 - local.get $12 + local.get $17 local.get $k|10 call $"~lib/map/Map#has" i32.eqz if i32.const 0 - i32.const 544 - i32.const 41 + i32.const 752 + i32.const 42 i32.const 5 call $~lib/builtins/abort unreachable end local.get $map - local.set $12 + local.set $17 global.get $~lib/memory/__stack_pointer - local.get $12 + local.get $17 i32.store offset=4 - local.get $12 + local.get $17 local.get $k|10 call $"~lib/map/Map#get" i32.const 20 @@ -26440,35 +35075,35 @@ i32.eqz if i32.const 0 - i32.const 544 - i32.const 42 + i32.const 752 + i32.const 43 i32.const 5 call $~lib/builtins/abort unreachable end local.get $map - local.set $12 + local.set $17 global.get $~lib/memory/__stack_pointer - local.get $12 + local.get $17 i32.store offset=4 - local.get $12 + local.get $17 local.get $k|10 call $"~lib/map/Map#delete" drop local.get $map - local.set $12 + local.set $17 global.get $~lib/memory/__stack_pointer - local.get $12 + local.get $17 i32.store offset=4 - local.get $12 + local.get $17 local.get $k|10 call $"~lib/map/Map#has" i32.eqz i32.eqz if i32.const 0 - i32.const 544 - i32.const 44 + i32.const 752 + i32.const 45 i32.const 5 call $~lib/builtins/abort unreachable @@ -26481,19 +35116,19 @@ end end local.get $map - local.set $12 + local.set $17 global.get $~lib/memory/__stack_pointer - local.get $12 + local.get $17 i32.store offset=4 - local.get $12 + local.get $17 call $"~lib/map/Map#get:size" i32.const 50 i32.eq i32.eqz if i32.const 0 - i32.const 544 - i32.const 46 + i32.const 752 + i32.const 47 i32.const 3 call $~lib/builtins/abort unreachable @@ -26506,29 +35141,29 @@ i64.lt_u if local.get $map - local.set $12 + local.set $17 global.get $~lib/memory/__stack_pointer - local.get $12 + local.get $17 i32.store offset=4 - local.get $12 + local.get $17 local.get $k|11 call $"~lib/map/Map#has" i32.eqz i32.eqz if i32.const 0 - i32.const 544 - i32.const 50 + i32.const 752 + i32.const 51 i32.const 5 call $~lib/builtins/abort unreachable end local.get $map - local.set $12 + local.set $17 global.get $~lib/memory/__stack_pointer - local.get $12 + local.get $17 i32.store offset=4 - local.get $12 + local.get $17 local.get $k|11 i32.const 10 local.get $k|11 @@ -26537,45 +35172,45 @@ call $"~lib/map/Map#set" drop local.get $map - local.set $12 + local.set $17 global.get $~lib/memory/__stack_pointer - local.get $12 + local.get $17 i32.store offset=4 - local.get $12 + local.get $17 local.get $k|11 call $"~lib/map/Map#has" i32.eqz if i32.const 0 - i32.const 544 - i32.const 52 + i32.const 752 + i32.const 53 i32.const 5 call $~lib/builtins/abort unreachable end local.get $map - local.set $12 + local.set $17 global.get $~lib/memory/__stack_pointer - local.get $12 + local.get $17 i32.store offset=4 - local.get $12 + local.get $17 local.get $k|11 call $"~lib/map/Map#delete" drop local.get $map - local.set $12 + local.set $17 global.get $~lib/memory/__stack_pointer - local.get $12 + local.get $17 i32.store offset=4 - local.get $12 + local.get $17 local.get $k|11 call $"~lib/map/Map#has" i32.eqz i32.eqz if i32.const 0 - i32.const 544 - i32.const 54 + i32.const 752 + i32.const 55 i32.const 5 call $~lib/builtins/abort unreachable @@ -26588,236 +35223,242 @@ end end local.get $map - local.set $12 + local.set $17 global.get $~lib/memory/__stack_pointer - local.get $12 + local.get $17 i32.store offset=4 - local.get $12 + local.get $17 call $"~lib/map/Map#get:size" i32.const 50 i32.eq i32.eqz if i32.const 0 - i32.const 544 - i32.const 56 + i32.const 752 + i32.const 57 i32.const 3 call $~lib/builtins/abort unreachable end local.get $map - local.set $12 + local.set $17 global.get $~lib/memory/__stack_pointer - local.get $12 + local.get $17 i32.store offset=4 - local.get $12 + local.get $17 call $"~lib/map/Map#clear" local.get $map - local.set $12 + local.set $17 global.get $~lib/memory/__stack_pointer - local.get $12 + local.get $17 i32.store offset=4 - local.get $12 + local.get $17 call $"~lib/map/Map#get:size" i32.const 0 i32.eq i32.eqz if i32.const 0 - i32.const 544 - i32.const 60 + i32.const 752 + i32.const 61 i32.const 3 call $~lib/builtins/abort unreachable end global.get $~lib/memory/__stack_pointer - i32.const 24 - i32.add - global.set $~lib/memory/__stack_pointer - ) - (func $"~lib/map/Map#constructor" (param $this i32) (result i32) - (local $1 i32) - global.get $~lib/memory/__stack_pointer - i32.const 12 - i32.sub - global.set $~lib/memory/__stack_pointer - call $~stack_check - global.get $~lib/memory/__stack_pointer - i64.const 0 - i64.store - global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.store offset=8 - local.get $this - i32.eqz - if - global.get $~lib/memory/__stack_pointer - i32.const 24 - i32.const 27 - call $~lib/rt/itcms/__new - local.tee $this - i32.store - end - local.get $this - local.set $1 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - local.get $1 - i32.const 0 - i32.const 4 - i32.const 4 - i32.mul - call $~lib/arraybuffer/ArrayBuffer#constructor - local.set $1 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=8 - local.get $1 - call $"~lib/map/Map#set:buckets" - local.get $this - local.set $1 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - local.get $1 - i32.const 4 - i32.const 1 - i32.sub - call $"~lib/map/Map#set:bucketsMask" - local.get $this - local.set $1 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - local.get $1 i32.const 0 - i32.const 4 - block $"~lib/map/ENTRY_SIZE|inlined.0" (result i32) - i32.const 12 - br $"~lib/map/ENTRY_SIZE|inlined.0" + i32.const 2 + i32.const 52 + i32.const 1584 + call $~lib/rt/__newArray + local.tee $initialEntries + i32.store offset=24 + i64.const 0 + local.set $k|14 + loop $for-loop|5 + local.get $k|14 + i64.const 100 + i64.lt_u + if + local.get $initialEntries + local.set $17 + global.get $~lib/memory/__stack_pointer + local.get $17 + i32.store offset=4 + local.get $17 + global.get $~lib/memory/__stack_pointer + i32.const 0 + call $"~lib/map/KeyValue#constructor" + local.tee $15 + i32.store offset=32 + local.get $15 + local.set $17 + global.get $~lib/memory/__stack_pointer + local.get $17 + i32.store offset=36 + local.get $17 + local.get $k|14 + call $"~lib/map/KeyValue#set:key" + local.get $15 + local.set $17 + global.get $~lib/memory/__stack_pointer + local.get $17 + i32.store offset=36 + local.get $17 + i32.const 10 + local.get $k|14 + i32.wrap_i64 + i32.add + call $"~lib/map/KeyValue#set:value" + local.get $15 + local.set $17 + global.get $~lib/memory/__stack_pointer + local.get $17 + i32.store offset=28 + local.get $17 + call $"~lib/array/Array<~lib/map/KeyValue>#push" + drop + local.get $k|14 + i64.const 1 + i64.add + local.set $k|14 + br $for-loop|5 + end end - i32.mul - call $~lib/arraybuffer/ArrayBuffer#constructor - local.set $1 global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=8 - local.get $1 - call $"~lib/map/Map#set:entries" - local.get $this - local.set $1 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - local.get $1 - i32.const 4 - call $"~lib/map/Map#set:entriesCapacity" - local.get $this - local.set $1 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - local.get $1 i32.const 0 - call $"~lib/map/Map#set:entriesOffset" - local.get $this - local.set $1 + local.get $initialEntries + local.set $17 global.get $~lib/memory/__stack_pointer - local.get $1 + local.get $17 i32.store offset=4 - local.get $1 - i32.const 0 - call $"~lib/map/Map#set:entriesCount" - local.get $this - local.set $1 - global.get $~lib/memory/__stack_pointer - i32.const 12 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $1 - ) - (func $"~lib/map/Map#find" (param $this i32) (param $key f32) (param $hashCode i32) (result i32) - (local $entry i32) - (local $taggedNext i32) - (local $5 i32) - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.sub - global.set $~lib/memory/__stack_pointer - call $~stack_check - global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.store - local.get $this - local.set $5 - global.get $~lib/memory/__stack_pointer - local.get $5 + local.get $17 + call $"~lib/map/Map#constructor" + local.tee $map i32.store - local.get $5 - call $"~lib/map/Map#get:buckets" - local.get $hashCode - local.get $this - local.set $5 + local.get $map + local.set $17 global.get $~lib/memory/__stack_pointer - local.get $5 - i32.store - local.get $5 - call $"~lib/map/Map#get:bucketsMask" - i32.and - i32.const 4 - i32.mul - i32.add - i32.load - local.set $entry - loop $while-continue|0 - local.get $entry + local.get $17 + i32.store offset=4 + local.get $17 + call $"~lib/map/Map#get:size" + i32.const 100 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 752 + i32.const 74 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + i64.const 0 + local.set $k|16 + loop $for-loop|6 + local.get $k|16 + i64.const 100 + i64.lt_u if - local.get $entry - call $"~lib/map/MapEntry#get:taggedNext" - local.set $taggedNext - local.get $taggedNext - i32.const 1 - i32.and + local.get $map + local.set $17 + global.get $~lib/memory/__stack_pointer + local.get $17 + i32.store offset=4 + local.get $17 + local.get $k|16 + call $"~lib/map/Map#has" i32.eqz - if (result i32) - local.get $entry - call $"~lib/map/MapEntry#get:key" - local.get $key - f32.eq - else + if i32.const 0 + i32.const 752 + i32.const 76 + i32.const 5 + call $~lib/builtins/abort + unreachable end + local.get $map + local.set $17 + global.get $~lib/memory/__stack_pointer + local.get $17 + i32.store offset=4 + local.get $17 + local.get $k|16 + call $"~lib/map/Map#get" + i32.const 10 + local.get $k|16 + i32.wrap_i64 + i32.add + i32.eq + i32.eqz if - local.get $entry - local.set $5 - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $5 - return + i32.const 0 + i32.const 752 + i32.const 77 + i32.const 5 + call $~lib/builtins/abort + unreachable end - local.get $taggedNext - i32.const 1 - i32.const -1 - i32.xor - i32.and - local.set $entry - br $while-continue|0 + local.get $map + local.set $17 + global.get $~lib/memory/__stack_pointer + local.get $17 + i32.store offset=4 + local.get $17 + local.get $k|16 + call $"~lib/map/Map#delete" + drop + local.get $map + local.set $17 + global.get $~lib/memory/__stack_pointer + local.get $17 + i32.store offset=4 + local.get $17 + local.get $k|16 + call $"~lib/map/Map#has" + i32.eqz + i32.eqz + if + i32.const 0 + i32.const 752 + i32.const 79 + i32.const 5 + call $~lib/builtins/abort + unreachable + end + local.get $k|16 + i64.const 1 + i64.add + local.set $k|16 + br $for-loop|6 end end + local.get $map + local.set $17 + global.get $~lib/memory/__stack_pointer + local.get $17 + i32.store offset=4 + local.get $17 + call $"~lib/map/Map#get:size" i32.const 0 - local.set $5 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 752 + i32.const 81 + i32.const 3 + call $~lib/builtins/abort + unreachable + end global.get $~lib/memory/__stack_pointer - i32.const 4 + i32.const 40 i32.add global.set $~lib/memory/__stack_pointer - local.get $5 - return ) - (func $"~lib/map/Map#has" (param $this i32) (param $key f32) (result i32) - (local $2 i32) + (func $"~lib/array/Array<~lib/map/KeyValue>#get:length" (param $this i32) (result i32) + (local $1 i32) global.get $~lib/memory/__stack_pointer i32.const 4 i32.sub @@ -26827,23 +35468,18 @@ i32.const 0 i32.store local.get $this - local.set $2 + local.set $1 global.get $~lib/memory/__stack_pointer - local.get $2 + local.get $1 i32.store - local.get $2 - local.get $key - local.get $key - call $~lib/util/hash/HASH - call $"~lib/map/Map#find" - i32.const 0 - i32.ne - local.set $2 + local.get $1 + call $"~lib/array/Array<~lib/map/KeyValue>#get:length_" + local.set $1 global.get $~lib/memory/__stack_pointer i32.const 4 i32.add global.set $~lib/memory/__stack_pointer - local.get $2 + local.get $1 return ) (func $"~lib/map/Map#rehash" (param $this i32) (param $newBucketsMask i32) @@ -26892,9 +35528,9 @@ global.get $~lib/memory/__stack_pointer i32.const 0 local.get $newEntriesCapacity - block $"~lib/map/ENTRY_SIZE|inlined.1" (result i32) + block $"~lib/map/ENTRY_SIZE|inlined.0" (result i32) i32.const 12 - br $"~lib/map/ENTRY_SIZE|inlined.1" + br $"~lib/map/ENTRY_SIZE|inlined.0" end i32.mul call $~lib/arraybuffer/ArrayBuffer#constructor @@ -26916,9 +35552,9 @@ i32.store offset=8 local.get $14 call $"~lib/map/Map#get:entriesOffset" - block $"~lib/map/ENTRY_SIZE|inlined.2" (result i32) + block $"~lib/map/ENTRY_SIZE|inlined.1" (result i32) i32.const 12 - br $"~lib/map/ENTRY_SIZE|inlined.2" + br $"~lib/map/ENTRY_SIZE|inlined.1" end i32.mul i32.add @@ -26969,17 +35605,17 @@ local.get $newPtr i32.store local.get $newPtr - block $"~lib/map/ENTRY_SIZE|inlined.3" (result i32) + block $"~lib/map/ENTRY_SIZE|inlined.2" (result i32) i32.const 12 - br $"~lib/map/ENTRY_SIZE|inlined.3" + br $"~lib/map/ENTRY_SIZE|inlined.2" end i32.add local.set $newPtr end local.get $oldPtr - block $"~lib/map/ENTRY_SIZE|inlined.4" (result i32) + block $"~lib/map/ENTRY_SIZE|inlined.3" (result i32) i32.const 12 - br $"~lib/map/ENTRY_SIZE|inlined.4" + br $"~lib/map/ENTRY_SIZE|inlined.3" end i32.add local.set $oldPtr @@ -27047,6 +35683,550 @@ i32.add global.set $~lib/memory/__stack_pointer ) + (func $"~lib/array/Array<~lib/map/KeyValue>#__get" (param $this i32) (param $index i32) (result i32) + (local $value i32) + (local $3 i32) + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.sub + global.set $~lib/memory/__stack_pointer + call $~stack_check + global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store + local.get $index + local.get $this + local.set $3 + global.get $~lib/memory/__stack_pointer + local.get $3 + i32.store + local.get $3 + call $"~lib/array/Array<~lib/map/KeyValue>#get:length_" + i32.ge_u + if + i32.const 336 + i32.const 544 + i32.const 114 + i32.const 42 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + local.get $this + local.set $3 + global.get $~lib/memory/__stack_pointer + local.get $3 + i32.store + local.get $3 + call $"~lib/array/Array<~lib/map/KeyValue>#get:dataStart" + local.get $index + i32.const 2 + i32.shl + i32.add + i32.load + local.tee $value + i32.store offset=4 + i32.const 1 + drop + i32.const 0 + i32.eqz + drop + local.get $value + i32.eqz + if + i32.const 592 + i32.const 544 + i32.const 118 + i32.const 40 + call $~lib/builtins/abort + unreachable + end + local.get $value + local.set $3 + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $3 + return + ) + (func $"~lib/map/Map#find" (param $this i32) (param $key f32) (param $hashCode i32) (result i32) + (local $entry i32) + (local $taggedNext i32) + (local $5 i32) + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.sub + global.set $~lib/memory/__stack_pointer + call $~stack_check + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store + local.get $this + local.set $5 + global.get $~lib/memory/__stack_pointer + local.get $5 + i32.store + local.get $5 + call $"~lib/map/Map#get:buckets" + local.get $hashCode + local.get $this + local.set $5 + global.get $~lib/memory/__stack_pointer + local.get $5 + i32.store + local.get $5 + call $"~lib/map/Map#get:bucketsMask" + i32.and + i32.const 4 + i32.mul + i32.add + i32.load + local.set $entry + loop $while-continue|0 + local.get $entry + if + local.get $entry + call $"~lib/map/MapEntry#get:taggedNext" + local.set $taggedNext + local.get $taggedNext + i32.const 1 + i32.and + i32.eqz + if (result i32) + local.get $entry + call $"~lib/map/MapEntry#get:key" + local.get $key + f32.eq + else + i32.const 0 + end + if + local.get $entry + local.set $5 + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $5 + return + end + local.get $taggedNext + i32.const 1 + i32.const -1 + i32.xor + i32.and + local.set $entry + br $while-continue|0 + end + end + i32.const 0 + local.set $5 + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $5 + return + ) + (func $"~lib/map/Map#constructor" (param $this i32) (param $initialEntries i32) (result i32) + (local $entriesLength i32) + (local $i i32) + (local $key f32) + (local $value i32) + (local $hashCode i32) + (local $entry i32) + (local $entries i32) + (local $9 i32) + (local $entry|10 i32) + (local $bucketPtrBase i32) + (local $12 i32) + global.get $~lib/memory/__stack_pointer + i32.const 16 + i32.sub + global.set $~lib/memory/__stack_pointer + call $~stack_check + global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store + global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store offset=8 + local.get $this + i32.eqz + if + global.get $~lib/memory/__stack_pointer + i32.const 24 + i32.const 57 + call $~lib/rt/itcms/__new + local.tee $this + i32.store + end + local.get $this + local.set $12 + global.get $~lib/memory/__stack_pointer + local.get $12 + i32.store offset=4 + local.get $12 + i32.const 0 + i32.const 4 + i32.const 4 + i32.mul + call $~lib/arraybuffer/ArrayBuffer#constructor + local.set $12 + global.get $~lib/memory/__stack_pointer + local.get $12 + i32.store offset=8 + local.get $12 + call $"~lib/map/Map#set:buckets" + local.get $this + local.set $12 + global.get $~lib/memory/__stack_pointer + local.get $12 + i32.store offset=4 + local.get $12 + i32.const 4 + i32.const 1 + i32.sub + call $"~lib/map/Map#set:bucketsMask" + local.get $this + local.set $12 + global.get $~lib/memory/__stack_pointer + local.get $12 + i32.store offset=4 + local.get $12 + i32.const 0 + i32.const 4 + block $"~lib/map/ENTRY_SIZE|inlined.5" (result i32) + i32.const 12 + br $"~lib/map/ENTRY_SIZE|inlined.5" + end + i32.mul + call $~lib/arraybuffer/ArrayBuffer#constructor + local.set $12 + global.get $~lib/memory/__stack_pointer + local.get $12 + i32.store offset=8 + local.get $12 + call $"~lib/map/Map#set:entries" + local.get $this + local.set $12 + global.get $~lib/memory/__stack_pointer + local.get $12 + i32.store offset=4 + local.get $12 + i32.const 4 + call $"~lib/map/Map#set:entriesCapacity" + local.get $this + local.set $12 + global.get $~lib/memory/__stack_pointer + local.get $12 + i32.store offset=4 + local.get $12 + i32.const 0 + call $"~lib/map/Map#set:entriesOffset" + local.get $this + local.set $12 + global.get $~lib/memory/__stack_pointer + local.get $12 + i32.store offset=4 + local.get $12 + i32.const 0 + call $"~lib/map/Map#set:entriesCount" + local.get $initialEntries + local.set $12 + global.get $~lib/memory/__stack_pointer + local.get $12 + i32.store offset=4 + local.get $12 + call $"~lib/array/Array<~lib/map/KeyValue>#get:length" + local.set $entriesLength + local.get $entriesLength + i32.const 0 + i32.gt_s + if + local.get $entriesLength + local.get $this + local.set $12 + global.get $~lib/memory/__stack_pointer + local.get $12 + i32.store offset=4 + local.get $12 + call $"~lib/map/Map#get:entriesCapacity" + i32.ge_s + if + local.get $this + local.set $12 + global.get $~lib/memory/__stack_pointer + local.get $12 + i32.store offset=4 + local.get $12 + local.get $entriesLength + call $"~lib/map/Map#set:bucketsMask" + end + local.get $this + local.set $12 + global.get $~lib/memory/__stack_pointer + local.get $12 + i32.store offset=4 + local.get $12 + local.get $this + local.set $12 + global.get $~lib/memory/__stack_pointer + local.get $12 + i32.store offset=8 + local.get $12 + call $"~lib/map/Map#get:bucketsMask" + i32.const 1 + i32.shl + i32.const 1 + i32.or + call $"~lib/map/Map#rehash" + i32.const 0 + local.set $i + loop $for-loop|0 + local.get $i + local.get $entriesLength + i32.lt_s + if + local.get $initialEntries + local.set $12 + global.get $~lib/memory/__stack_pointer + local.get $12 + i32.store offset=8 + local.get $12 + local.get $i + call $"~lib/array/Array<~lib/map/KeyValue>#__get" + local.set $12 + global.get $~lib/memory/__stack_pointer + local.get $12 + i32.store offset=4 + local.get $12 + call $"~lib/map/KeyValue#get:key" + local.set $key + local.get $initialEntries + local.set $12 + global.get $~lib/memory/__stack_pointer + local.get $12 + i32.store offset=8 + local.get $12 + local.get $i + call $"~lib/array/Array<~lib/map/KeyValue>#__get" + local.set $12 + global.get $~lib/memory/__stack_pointer + local.get $12 + i32.store offset=4 + local.get $12 + call $"~lib/map/KeyValue#get:value" + local.set $value + local.get $key + call $~lib/util/hash/HASH + local.set $hashCode + local.get $this + local.set $12 + global.get $~lib/memory/__stack_pointer + local.get $12 + i32.store offset=4 + local.get $12 + local.get $key + local.get $hashCode + call $"~lib/map/Map#find" + local.set $entry + local.get $entry + if + local.get $entry + local.get $value + call $"~lib/map/MapEntry#set:value" + i32.const 0 + drop + else + global.get $~lib/memory/__stack_pointer + local.get $this + local.set $12 + global.get $~lib/memory/__stack_pointer + local.get $12 + i32.store offset=4 + local.get $12 + call $"~lib/map/Map#get:entries" + local.tee $entries + i32.store offset=12 + local.get $entries + local.get $this + local.set $12 + global.get $~lib/memory/__stack_pointer + local.get $12 + i32.store offset=4 + local.get $12 + local.get $this + local.set $12 + global.get $~lib/memory/__stack_pointer + local.get $12 + i32.store offset=8 + local.get $12 + call $"~lib/map/Map#get:entriesOffset" + local.tee $9 + i32.const 1 + i32.add + call $"~lib/map/Map#set:entriesOffset" + local.get $9 + block $"~lib/map/ENTRY_SIZE|inlined.4" (result i32) + i32.const 12 + br $"~lib/map/ENTRY_SIZE|inlined.4" + end + i32.mul + i32.add + local.set $entry|10 + local.get $entry|10 + local.get $key + call $"~lib/map/MapEntry#set:key" + i32.const 0 + drop + local.get $entry|10 + local.get $value + call $"~lib/map/MapEntry#set:value" + i32.const 0 + drop + local.get $this + local.set $12 + global.get $~lib/memory/__stack_pointer + local.get $12 + i32.store offset=4 + local.get $12 + local.get $this + local.set $12 + global.get $~lib/memory/__stack_pointer + local.get $12 + i32.store offset=8 + local.get $12 + call $"~lib/map/Map#get:entriesCount" + i32.const 1 + i32.add + call $"~lib/map/Map#set:entriesCount" + local.get $this + local.set $12 + global.get $~lib/memory/__stack_pointer + local.get $12 + i32.store offset=4 + local.get $12 + call $"~lib/map/Map#get:buckets" + local.get $hashCode + local.get $this + local.set $12 + global.get $~lib/memory/__stack_pointer + local.get $12 + i32.store offset=4 + local.get $12 + call $"~lib/map/Map#get:bucketsMask" + i32.and + i32.const 4 + i32.mul + i32.add + local.set $bucketPtrBase + local.get $entry|10 + local.get $bucketPtrBase + i32.load + call $"~lib/map/MapEntry#set:taggedNext" + local.get $bucketPtrBase + local.get $entry|10 + i32.store + end + local.get $i + i32.const 1 + i32.add + local.set $i + br $for-loop|0 + end + end + end + local.get $this + local.set $12 + global.get $~lib/memory/__stack_pointer + i32.const 16 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $12 + ) + (func $"~lib/map/Map#constructor@varargs" (param $this i32) (param $initialEntries i32) (result i32) + (local $2 i32) + (local $3 i32) + global.get $~lib/memory/__stack_pointer + i32.const 12 + i32.sub + global.set $~lib/memory/__stack_pointer + call $~stack_check + global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store offset=8 + block $1of1 + block $0of1 + block $outOfRange + global.get $~argumentsLength + br_table $0of1 $1of1 $outOfRange + end + unreachable + end + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.const 2 + i32.const 59 + i32.const 1616 + call $~lib/rt/__newArray + local.tee $initialEntries + i32.store + end + local.get $this + local.set $3 + global.get $~lib/memory/__stack_pointer + local.get $3 + i32.store offset=4 + local.get $3 + local.get $initialEntries + local.set $3 + global.get $~lib/memory/__stack_pointer + local.get $3 + i32.store offset=8 + local.get $3 + call $"~lib/map/Map#constructor" + local.set $3 + global.get $~lib/memory/__stack_pointer + i32.const 12 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $3 + ) + (func $"~lib/map/Map#has" (param $this i32) (param $key f32) (result i32) + (local $2 i32) + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.sub + global.set $~lib/memory/__stack_pointer + call $~stack_check + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store + local.get $this + local.set $2 + global.get $~lib/memory/__stack_pointer + local.get $2 + i32.store + local.get $2 + local.get $key + local.get $key + call $~lib/util/hash/HASH + call $"~lib/map/Map#find" + i32.const 0 + i32.ne + local.set $2 + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $2 + return + ) (func $"~lib/map/Map#set" (param $this i32) (param $key f32) (param $value i32) (result i32) (local $hashCode i32) (local $entry i32) @@ -27179,9 +36359,9 @@ i32.add call $"~lib/map/Map#set:entriesOffset" local.get $6 - block $"~lib/map/ENTRY_SIZE|inlined.5" (result i32) + block $"~lib/map/ENTRY_SIZE|inlined.6" (result i32) i32.const 12 - br $"~lib/map/ENTRY_SIZE|inlined.5" + br $"~lib/map/ENTRY_SIZE|inlined.6" end i32.mul i32.add @@ -27274,9 +36454,9 @@ local.get $entry i32.eqz if - i32.const 592 - i32.const 656 - i32.const 105 + i32.const 800 + i32.const 864 + i32.const 148 i32.const 17 call $~lib/builtins/abort unreachable @@ -27338,7 +36518,7 @@ if global.get $~lib/memory/__stack_pointer i32.const 16 - i32.const 28 + i32.const 60 call $~lib/rt/itcms/__new local.tee $this i32.store @@ -27381,8 +36561,8 @@ i32.shr_u i32.gt_u if - i32.const 432 - i32.const 704 + i32.const 32 + i32.const 544 i32.const 70 i32.const 60 call $~lib/builtins/abort @@ -27478,8 +36658,8 @@ i32.const 0 i32.lt_s if - i32.const 224 - i32.const 704 + i32.const 336 + i32.const 544 i32.const 130 i32.const 22 call $~lib/builtins/abort @@ -27601,9 +36781,9 @@ if local.get $start local.get $i - block $"~lib/map/ENTRY_SIZE|inlined.6" (result i32) + block $"~lib/map/ENTRY_SIZE|inlined.7" (result i32) i32.const 12 - br $"~lib/map/ENTRY_SIZE|inlined.6" + br $"~lib/map/ENTRY_SIZE|inlined.7" end i32.mul i32.add @@ -27704,9 +36884,9 @@ if local.get $start local.get $i - block $"~lib/map/ENTRY_SIZE|inlined.7" (result i32) + block $"~lib/map/ENTRY_SIZE|inlined.8" (result i32) i32.const 12 - br $"~lib/map/ENTRY_SIZE|inlined.7" + br $"~lib/map/ENTRY_SIZE|inlined.8" end i32.mul i32.add @@ -27757,10 +36937,47 @@ local.get $8 return ) - (func $"~lib/map/Map#constructor" (param $this i32) (result i32) + (func $"~lib/array/Array<~lib/map/KeyValue>#get:length" (param $this i32) (result i32) (local $1 i32) global.get $~lib/memory/__stack_pointer - i32.const 12 + i32.const 4 + i32.sub + global.set $~lib/memory/__stack_pointer + call $~stack_check + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store + local.get $this + local.set $1 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store + local.get $1 + call $"~lib/array/Array<~lib/map/KeyValue>#get:length_" + local.set $1 + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $1 + return + ) + (func $"~lib/map/Map#rehash" (param $this i32) (param $newBucketsMask i32) + (local $newBucketsCapacity i32) + (local $newBuckets i32) + (local $newEntriesCapacity i32) + (local $newEntries i32) + (local $oldPtr i32) + (local $oldEnd i32) + (local $newPtr i32) + (local $oldEntry i32) + (local $newEntry i32) + (local $oldEntryKey f32) + (local $newBucketIndex i32) + (local $newBucketPtrBase i32) + (local $14 i32) + global.get $~lib/memory/__stack_pointer + i32.const 16 i32.sub global.set $~lib/memory/__stack_pointer call $~stack_check @@ -27768,96 +36985,697 @@ i64.const 0 i64.store global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store offset=8 + local.get $newBucketsMask + i32.const 1 + i32.add + local.set $newBucketsCapacity + global.get $~lib/memory/__stack_pointer + i32.const 0 + local.get $newBucketsCapacity + i32.const 4 + i32.mul + call $~lib/arraybuffer/ArrayBuffer#constructor + local.tee $newBuckets + i32.store + local.get $newBucketsCapacity + i32.const 8 + i32.mul + i32.const 3 + i32.div_s + local.set $newEntriesCapacity + global.get $~lib/memory/__stack_pointer i32.const 0 + local.get $newEntriesCapacity + block $"~lib/map/ENTRY_SIZE|inlined.0" (result i32) + i32.const 12 + br $"~lib/map/ENTRY_SIZE|inlined.0" + end + i32.mul + call $~lib/arraybuffer/ArrayBuffer#constructor + local.tee $newEntries + i32.store offset=4 + local.get $this + local.set $14 + global.get $~lib/memory/__stack_pointer + local.get $14 + i32.store offset=8 + local.get $14 + call $"~lib/map/Map#get:entries" + local.set $oldPtr + local.get $oldPtr + local.get $this + local.set $14 + global.get $~lib/memory/__stack_pointer + local.get $14 + i32.store offset=8 + local.get $14 + call $"~lib/map/Map#get:entriesOffset" + block $"~lib/map/ENTRY_SIZE|inlined.1" (result i32) + i32.const 12 + br $"~lib/map/ENTRY_SIZE|inlined.1" + end + i32.mul + i32.add + local.set $oldEnd + local.get $newEntries + local.set $newPtr + loop $while-continue|0 + local.get $oldPtr + local.get $oldEnd + i32.ne + if + local.get $oldPtr + local.set $oldEntry + local.get $oldEntry + call $"~lib/map/MapEntry#get:taggedNext" + i32.const 1 + i32.and + i32.eqz + if + local.get $newPtr + local.set $newEntry + local.get $oldEntry + call $"~lib/map/MapEntry#get:key" + local.set $oldEntryKey + local.get $newEntry + local.get $oldEntryKey + call $"~lib/map/MapEntry#set:key" + local.get $newEntry + local.get $oldEntry + call $"~lib/map/MapEntry#get:value" + call $"~lib/map/MapEntry#set:value" + local.get $oldEntryKey + call $~lib/util/hash/HASH + local.get $newBucketsMask + i32.and + local.set $newBucketIndex + local.get $newBuckets + local.get $newBucketIndex + i32.const 4 + i32.mul + i32.add + local.set $newBucketPtrBase + local.get $newEntry + local.get $newBucketPtrBase + i32.load + call $"~lib/map/MapEntry#set:taggedNext" + local.get $newBucketPtrBase + local.get $newPtr + i32.store + local.get $newPtr + block $"~lib/map/ENTRY_SIZE|inlined.2" (result i32) + i32.const 12 + br $"~lib/map/ENTRY_SIZE|inlined.2" + end + i32.add + local.set $newPtr + end + local.get $oldPtr + block $"~lib/map/ENTRY_SIZE|inlined.3" (result i32) + i32.const 12 + br $"~lib/map/ENTRY_SIZE|inlined.3" + end + i32.add + local.set $oldPtr + br $while-continue|0 + end + end + local.get $this + local.set $14 + global.get $~lib/memory/__stack_pointer + local.get $14 + i32.store offset=8 + local.get $14 + local.get $newBuckets + local.set $14 + global.get $~lib/memory/__stack_pointer + local.get $14 + i32.store offset=12 + local.get $14 + call $"~lib/map/Map#set:buckets" + local.get $this + local.set $14 + global.get $~lib/memory/__stack_pointer + local.get $14 + i32.store offset=8 + local.get $14 + local.get $newBucketsMask + call $"~lib/map/Map#set:bucketsMask" + local.get $this + local.set $14 + global.get $~lib/memory/__stack_pointer + local.get $14 + i32.store offset=8 + local.get $14 + local.get $newEntries + local.set $14 + global.get $~lib/memory/__stack_pointer + local.get $14 + i32.store offset=12 + local.get $14 + call $"~lib/map/Map#set:entries" + local.get $this + local.set $14 + global.get $~lib/memory/__stack_pointer + local.get $14 i32.store offset=8 + local.get $14 + local.get $newEntriesCapacity + call $"~lib/map/Map#set:entriesCapacity" + local.get $this + local.set $14 + global.get $~lib/memory/__stack_pointer + local.get $14 + i32.store offset=8 + local.get $14 + local.get $this + local.set $14 + global.get $~lib/memory/__stack_pointer + local.get $14 + i32.store offset=12 + local.get $14 + call $"~lib/map/Map#get:entriesCount" + call $"~lib/map/Map#set:entriesOffset" + global.get $~lib/memory/__stack_pointer + i32.const 16 + i32.add + global.set $~lib/memory/__stack_pointer + ) + (func $"~lib/array/Array<~lib/map/KeyValue>#__get" (param $this i32) (param $index i32) (result i32) + (local $value i32) + (local $3 i32) + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.sub + global.set $~lib/memory/__stack_pointer + call $~stack_check + global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store + local.get $index + local.get $this + local.set $3 + global.get $~lib/memory/__stack_pointer + local.get $3 + i32.store + local.get $3 + call $"~lib/array/Array<~lib/map/KeyValue>#get:length_" + i32.ge_u + if + i32.const 336 + i32.const 544 + i32.const 114 + i32.const 42 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + local.get $this + local.set $3 + global.get $~lib/memory/__stack_pointer + local.get $3 + i32.store + local.get $3 + call $"~lib/array/Array<~lib/map/KeyValue>#get:dataStart" + local.get $index + i32.const 2 + i32.shl + i32.add + i32.load + local.tee $value + i32.store offset=4 + i32.const 1 + drop + i32.const 0 + i32.eqz + drop + local.get $value + i32.eqz + if + i32.const 592 + i32.const 544 + i32.const 118 + i32.const 40 + call $~lib/builtins/abort + unreachable + end + local.get $value + local.set $3 + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $3 + return + ) + (func $"~lib/map/Map#find" (param $this i32) (param $key f32) (param $hashCode i32) (result i32) + (local $entry i32) + (local $taggedNext i32) + (local $5 i32) + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.sub + global.set $~lib/memory/__stack_pointer + call $~stack_check + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store + local.get $this + local.set $5 + global.get $~lib/memory/__stack_pointer + local.get $5 + i32.store + local.get $5 + call $"~lib/map/Map#get:buckets" + local.get $hashCode + local.get $this + local.set $5 + global.get $~lib/memory/__stack_pointer + local.get $5 + i32.store + local.get $5 + call $"~lib/map/Map#get:bucketsMask" + i32.and + i32.const 4 + i32.mul + i32.add + i32.load + local.set $entry + loop $while-continue|0 + local.get $entry + if + local.get $entry + call $"~lib/map/MapEntry#get:taggedNext" + local.set $taggedNext + local.get $taggedNext + i32.const 1 + i32.and + i32.eqz + if (result i32) + local.get $entry + call $"~lib/map/MapEntry#get:key" + local.get $key + f32.eq + else + i32.const 0 + end + if + local.get $entry + local.set $5 + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $5 + return + end + local.get $taggedNext + i32.const 1 + i32.const -1 + i32.xor + i32.and + local.set $entry + br $while-continue|0 + end + end + i32.const 0 + local.set $5 + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $5 + return + ) + (func $"~lib/map/Map#constructor" (param $this i32) (param $initialEntries i32) (result i32) + (local $entriesLength i32) + (local $i i32) + (local $key f32) + (local $value f32) + (local $hashCode i32) + (local $entry i32) + (local $entries i32) + (local $9 i32) + (local $entry|10 i32) + (local $bucketPtrBase i32) + (local $12 i32) + global.get $~lib/memory/__stack_pointer + i32.const 16 + i32.sub + global.set $~lib/memory/__stack_pointer + call $~stack_check + global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store + global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store offset=8 local.get $this i32.eqz if global.get $~lib/memory/__stack_pointer i32.const 24 - i32.const 29 + i32.const 61 call $~lib/rt/itcms/__new local.tee $this i32.store end local.get $this - local.set $1 + local.set $12 global.get $~lib/memory/__stack_pointer - local.get $1 + local.get $12 i32.store offset=4 - local.get $1 + local.get $12 i32.const 0 i32.const 4 i32.const 4 i32.mul call $~lib/arraybuffer/ArrayBuffer#constructor - local.set $1 + local.set $12 global.get $~lib/memory/__stack_pointer - local.get $1 + local.get $12 i32.store offset=8 - local.get $1 + local.get $12 call $"~lib/map/Map#set:buckets" local.get $this - local.set $1 + local.set $12 global.get $~lib/memory/__stack_pointer - local.get $1 + local.get $12 i32.store offset=4 - local.get $1 + local.get $12 i32.const 4 i32.const 1 i32.sub call $"~lib/map/Map#set:bucketsMask" local.get $this - local.set $1 + local.set $12 global.get $~lib/memory/__stack_pointer - local.get $1 + local.get $12 i32.store offset=4 - local.get $1 + local.get $12 i32.const 0 i32.const 4 - block $"~lib/map/ENTRY_SIZE|inlined.0" (result i32) + block $"~lib/map/ENTRY_SIZE|inlined.5" (result i32) i32.const 12 - br $"~lib/map/ENTRY_SIZE|inlined.0" + br $"~lib/map/ENTRY_SIZE|inlined.5" end i32.mul call $~lib/arraybuffer/ArrayBuffer#constructor - local.set $1 + local.set $12 + global.get $~lib/memory/__stack_pointer + local.get $12 + i32.store offset=8 + local.get $12 + call $"~lib/map/Map#set:entries" + local.get $this + local.set $12 + global.get $~lib/memory/__stack_pointer + local.get $12 + i32.store offset=4 + local.get $12 + i32.const 4 + call $"~lib/map/Map#set:entriesCapacity" + local.get $this + local.set $12 + global.get $~lib/memory/__stack_pointer + local.get $12 + i32.store offset=4 + local.get $12 + i32.const 0 + call $"~lib/map/Map#set:entriesOffset" + local.get $this + local.set $12 + global.get $~lib/memory/__stack_pointer + local.get $12 + i32.store offset=4 + local.get $12 + i32.const 0 + call $"~lib/map/Map#set:entriesCount" + local.get $initialEntries + local.set $12 + global.get $~lib/memory/__stack_pointer + local.get $12 + i32.store offset=4 + local.get $12 + call $"~lib/array/Array<~lib/map/KeyValue>#get:length" + local.set $entriesLength + local.get $entriesLength + i32.const 0 + i32.gt_s + if + local.get $entriesLength + local.get $this + local.set $12 + global.get $~lib/memory/__stack_pointer + local.get $12 + i32.store offset=4 + local.get $12 + call $"~lib/map/Map#get:entriesCapacity" + i32.ge_s + if + local.get $this + local.set $12 + global.get $~lib/memory/__stack_pointer + local.get $12 + i32.store offset=4 + local.get $12 + local.get $entriesLength + call $"~lib/map/Map#set:bucketsMask" + end + local.get $this + local.set $12 + global.get $~lib/memory/__stack_pointer + local.get $12 + i32.store offset=4 + local.get $12 + local.get $this + local.set $12 + global.get $~lib/memory/__stack_pointer + local.get $12 + i32.store offset=8 + local.get $12 + call $"~lib/map/Map#get:bucketsMask" + i32.const 1 + i32.shl + i32.const 1 + i32.or + call $"~lib/map/Map#rehash" + i32.const 0 + local.set $i + loop $for-loop|0 + local.get $i + local.get $entriesLength + i32.lt_s + if + local.get $initialEntries + local.set $12 + global.get $~lib/memory/__stack_pointer + local.get $12 + i32.store offset=8 + local.get $12 + local.get $i + call $"~lib/array/Array<~lib/map/KeyValue>#__get" + local.set $12 + global.get $~lib/memory/__stack_pointer + local.get $12 + i32.store offset=4 + local.get $12 + call $"~lib/map/KeyValue#get:key" + local.set $key + local.get $initialEntries + local.set $12 + global.get $~lib/memory/__stack_pointer + local.get $12 + i32.store offset=8 + local.get $12 + local.get $i + call $"~lib/array/Array<~lib/map/KeyValue>#__get" + local.set $12 + global.get $~lib/memory/__stack_pointer + local.get $12 + i32.store offset=4 + local.get $12 + call $"~lib/map/KeyValue#get:value" + local.set $value + local.get $key + call $~lib/util/hash/HASH + local.set $hashCode + local.get $this + local.set $12 + global.get $~lib/memory/__stack_pointer + local.get $12 + i32.store offset=4 + local.get $12 + local.get $key + local.get $hashCode + call $"~lib/map/Map#find" + local.set $entry + local.get $entry + if + local.get $entry + local.get $value + call $"~lib/map/MapEntry#set:value" + i32.const 0 + drop + else + global.get $~lib/memory/__stack_pointer + local.get $this + local.set $12 + global.get $~lib/memory/__stack_pointer + local.get $12 + i32.store offset=4 + local.get $12 + call $"~lib/map/Map#get:entries" + local.tee $entries + i32.store offset=12 + local.get $entries + local.get $this + local.set $12 + global.get $~lib/memory/__stack_pointer + local.get $12 + i32.store offset=4 + local.get $12 + local.get $this + local.set $12 + global.get $~lib/memory/__stack_pointer + local.get $12 + i32.store offset=8 + local.get $12 + call $"~lib/map/Map#get:entriesOffset" + local.tee $9 + i32.const 1 + i32.add + call $"~lib/map/Map#set:entriesOffset" + local.get $9 + block $"~lib/map/ENTRY_SIZE|inlined.4" (result i32) + i32.const 12 + br $"~lib/map/ENTRY_SIZE|inlined.4" + end + i32.mul + i32.add + local.set $entry|10 + local.get $entry|10 + local.get $key + call $"~lib/map/MapEntry#set:key" + i32.const 0 + drop + local.get $entry|10 + local.get $value + call $"~lib/map/MapEntry#set:value" + i32.const 0 + drop + local.get $this + local.set $12 + global.get $~lib/memory/__stack_pointer + local.get $12 + i32.store offset=4 + local.get $12 + local.get $this + local.set $12 + global.get $~lib/memory/__stack_pointer + local.get $12 + i32.store offset=8 + local.get $12 + call $"~lib/map/Map#get:entriesCount" + i32.const 1 + i32.add + call $"~lib/map/Map#set:entriesCount" + local.get $this + local.set $12 + global.get $~lib/memory/__stack_pointer + local.get $12 + i32.store offset=4 + local.get $12 + call $"~lib/map/Map#get:buckets" + local.get $hashCode + local.get $this + local.set $12 + global.get $~lib/memory/__stack_pointer + local.get $12 + i32.store offset=4 + local.get $12 + call $"~lib/map/Map#get:bucketsMask" + i32.and + i32.const 4 + i32.mul + i32.add + local.set $bucketPtrBase + local.get $entry|10 + local.get $bucketPtrBase + i32.load + call $"~lib/map/MapEntry#set:taggedNext" + local.get $bucketPtrBase + local.get $entry|10 + i32.store + end + local.get $i + i32.const 1 + i32.add + local.set $i + br $for-loop|0 + end + end + end + local.get $this + local.set $12 + global.get $~lib/memory/__stack_pointer + i32.const 16 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $12 + ) + (func $"~lib/map/Map#constructor@varargs" (param $this i32) (param $initialEntries i32) (result i32) + (local $2 i32) + (local $3 i32) global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=8 - local.get $1 - call $"~lib/map/Map#set:entries" - local.get $this - local.set $1 + i32.const 12 + i32.sub + global.set $~lib/memory/__stack_pointer + call $~stack_check global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - local.get $1 - i32.const 4 - call $"~lib/map/Map#set:entriesCapacity" - local.get $this - local.set $1 + i64.const 0 + i64.store global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - local.get $1 i32.const 0 - call $"~lib/map/Map#set:entriesOffset" + i32.store offset=8 + block $1of1 + block $0of1 + block $outOfRange + global.get $~argumentsLength + br_table $0of1 $1of1 $outOfRange + end + unreachable + end + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.const 2 + i32.const 63 + i32.const 1648 + call $~lib/rt/__newArray + local.tee $initialEntries + i32.store + end local.get $this - local.set $1 + local.set $3 global.get $~lib/memory/__stack_pointer - local.get $1 + local.get $3 i32.store offset=4 - local.get $1 - i32.const 0 - call $"~lib/map/Map#set:entriesCount" - local.get $this - local.set $1 + local.get $3 + local.get $initialEntries + local.set $3 + global.get $~lib/memory/__stack_pointer + local.get $3 + i32.store offset=8 + local.get $3 + call $"~lib/map/Map#constructor" + local.set $3 global.get $~lib/memory/__stack_pointer i32.const 12 i32.add global.set $~lib/memory/__stack_pointer - local.get $1 + local.get $3 ) (func $~lib/array/Array#get:length (param $this i32) (result i32) (local $1 i32) @@ -27906,8 +37724,8 @@ call $~lib/array/Array#get:length_ i32.ge_u if - i32.const 224 - i32.const 704 + i32.const 336 + i32.const 544 i32.const 114 i32.const 42 call $~lib/builtins/abort @@ -27937,286 +37755,6 @@ local.get $4 return ) - (func $"~lib/map/Map#find" (param $this i32) (param $key f32) (param $hashCode i32) (result i32) - (local $entry i32) - (local $taggedNext i32) - (local $5 i32) - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.sub - global.set $~lib/memory/__stack_pointer - call $~stack_check - global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.store - local.get $this - local.set $5 - global.get $~lib/memory/__stack_pointer - local.get $5 - i32.store - local.get $5 - call $"~lib/map/Map#get:buckets" - local.get $hashCode - local.get $this - local.set $5 - global.get $~lib/memory/__stack_pointer - local.get $5 - i32.store - local.get $5 - call $"~lib/map/Map#get:bucketsMask" - i32.and - i32.const 4 - i32.mul - i32.add - i32.load - local.set $entry - loop $while-continue|0 - local.get $entry - if - local.get $entry - call $"~lib/map/MapEntry#get:taggedNext" - local.set $taggedNext - local.get $taggedNext - i32.const 1 - i32.and - i32.eqz - if (result i32) - local.get $entry - call $"~lib/map/MapEntry#get:key" - local.get $key - f32.eq - else - i32.const 0 - end - if - local.get $entry - local.set $5 - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $5 - return - end - local.get $taggedNext - i32.const 1 - i32.const -1 - i32.xor - i32.and - local.set $entry - br $while-continue|0 - end - end - i32.const 0 - local.set $5 - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $5 - return - ) - (func $"~lib/map/Map#rehash" (param $this i32) (param $newBucketsMask i32) - (local $newBucketsCapacity i32) - (local $newBuckets i32) - (local $newEntriesCapacity i32) - (local $newEntries i32) - (local $oldPtr i32) - (local $oldEnd i32) - (local $newPtr i32) - (local $oldEntry i32) - (local $newEntry i32) - (local $oldEntryKey f32) - (local $newBucketIndex i32) - (local $newBucketPtrBase i32) - (local $14 i32) - global.get $~lib/memory/__stack_pointer - i32.const 16 - i32.sub - global.set $~lib/memory/__stack_pointer - call $~stack_check - global.get $~lib/memory/__stack_pointer - i64.const 0 - i64.store - global.get $~lib/memory/__stack_pointer - i64.const 0 - i64.store offset=8 - local.get $newBucketsMask - i32.const 1 - i32.add - local.set $newBucketsCapacity - global.get $~lib/memory/__stack_pointer - i32.const 0 - local.get $newBucketsCapacity - i32.const 4 - i32.mul - call $~lib/arraybuffer/ArrayBuffer#constructor - local.tee $newBuckets - i32.store - local.get $newBucketsCapacity - i32.const 8 - i32.mul - i32.const 3 - i32.div_s - local.set $newEntriesCapacity - global.get $~lib/memory/__stack_pointer - i32.const 0 - local.get $newEntriesCapacity - block $"~lib/map/ENTRY_SIZE|inlined.1" (result i32) - i32.const 12 - br $"~lib/map/ENTRY_SIZE|inlined.1" - end - i32.mul - call $~lib/arraybuffer/ArrayBuffer#constructor - local.tee $newEntries - i32.store offset=4 - local.get $this - local.set $14 - global.get $~lib/memory/__stack_pointer - local.get $14 - i32.store offset=8 - local.get $14 - call $"~lib/map/Map#get:entries" - local.set $oldPtr - local.get $oldPtr - local.get $this - local.set $14 - global.get $~lib/memory/__stack_pointer - local.get $14 - i32.store offset=8 - local.get $14 - call $"~lib/map/Map#get:entriesOffset" - block $"~lib/map/ENTRY_SIZE|inlined.2" (result i32) - i32.const 12 - br $"~lib/map/ENTRY_SIZE|inlined.2" - end - i32.mul - i32.add - local.set $oldEnd - local.get $newEntries - local.set $newPtr - loop $while-continue|0 - local.get $oldPtr - local.get $oldEnd - i32.ne - if - local.get $oldPtr - local.set $oldEntry - local.get $oldEntry - call $"~lib/map/MapEntry#get:taggedNext" - i32.const 1 - i32.and - i32.eqz - if - local.get $newPtr - local.set $newEntry - local.get $oldEntry - call $"~lib/map/MapEntry#get:key" - local.set $oldEntryKey - local.get $newEntry - local.get $oldEntryKey - call $"~lib/map/MapEntry#set:key" - local.get $newEntry - local.get $oldEntry - call $"~lib/map/MapEntry#get:value" - call $"~lib/map/MapEntry#set:value" - local.get $oldEntryKey - call $~lib/util/hash/HASH - local.get $newBucketsMask - i32.and - local.set $newBucketIndex - local.get $newBuckets - local.get $newBucketIndex - i32.const 4 - i32.mul - i32.add - local.set $newBucketPtrBase - local.get $newEntry - local.get $newBucketPtrBase - i32.load - call $"~lib/map/MapEntry#set:taggedNext" - local.get $newBucketPtrBase - local.get $newPtr - i32.store - local.get $newPtr - block $"~lib/map/ENTRY_SIZE|inlined.3" (result i32) - i32.const 12 - br $"~lib/map/ENTRY_SIZE|inlined.3" - end - i32.add - local.set $newPtr - end - local.get $oldPtr - block $"~lib/map/ENTRY_SIZE|inlined.4" (result i32) - i32.const 12 - br $"~lib/map/ENTRY_SIZE|inlined.4" - end - i32.add - local.set $oldPtr - br $while-continue|0 - end - end - local.get $this - local.set $14 - global.get $~lib/memory/__stack_pointer - local.get $14 - i32.store offset=8 - local.get $14 - local.get $newBuckets - local.set $14 - global.get $~lib/memory/__stack_pointer - local.get $14 - i32.store offset=12 - local.get $14 - call $"~lib/map/Map#set:buckets" - local.get $this - local.set $14 - global.get $~lib/memory/__stack_pointer - local.get $14 - i32.store offset=8 - local.get $14 - local.get $newBucketsMask - call $"~lib/map/Map#set:bucketsMask" - local.get $this - local.set $14 - global.get $~lib/memory/__stack_pointer - local.get $14 - i32.store offset=8 - local.get $14 - local.get $newEntries - local.set $14 - global.get $~lib/memory/__stack_pointer - local.get $14 - i32.store offset=12 - local.get $14 - call $"~lib/map/Map#set:entries" - local.get $this - local.set $14 - global.get $~lib/memory/__stack_pointer - local.get $14 - i32.store offset=8 - local.get $14 - local.get $newEntriesCapacity - call $"~lib/map/Map#set:entriesCapacity" - local.get $this - local.set $14 - global.get $~lib/memory/__stack_pointer - local.get $14 - i32.store offset=8 - local.get $14 - local.get $this - local.set $14 - global.get $~lib/memory/__stack_pointer - local.get $14 - i32.store offset=12 - local.get $14 - call $"~lib/map/Map#get:entriesCount" - call $"~lib/map/Map#set:entriesOffset" - global.get $~lib/memory/__stack_pointer - i32.const 16 - i32.add - global.set $~lib/memory/__stack_pointer - ) (func $"~lib/map/Map#set" (param $this i32) (param $key f32) (param $value f32) (result i32) (local $hashCode i32) (local $entry i32) @@ -28349,9 +37887,9 @@ i32.add call $"~lib/map/Map#set:entriesOffset" local.get $6 - block $"~lib/map/ENTRY_SIZE|inlined.5" (result i32) + block $"~lib/map/ENTRY_SIZE|inlined.6" (result i32) i32.const 12 - br $"~lib/map/ENTRY_SIZE|inlined.5" + br $"~lib/map/ENTRY_SIZE|inlined.6" end i32.mul i32.add @@ -28618,9 +38156,9 @@ local.get $1 i32.const 0 i32.const 4 - block $"~lib/map/ENTRY_SIZE|inlined.8" (result i32) + block $"~lib/map/ENTRY_SIZE|inlined.9" (result i32) i32.const 12 - br $"~lib/map/ENTRY_SIZE|inlined.8" + br $"~lib/map/ENTRY_SIZE|inlined.9" end i32.mul call $~lib/arraybuffer/ArrayBuffer#constructor @@ -28659,6 +38197,125 @@ i32.add global.set $~lib/memory/__stack_pointer ) + (func $"~lib/map/KeyValue#constructor" (param $this i32) (result i32) + (local $1 i32) + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.sub + global.set $~lib/memory/__stack_pointer + call $~stack_check + global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store + local.get $this + i32.eqz + if + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.const 58 + call $~lib/rt/itcms/__new + local.tee $this + i32.store + end + global.get $~lib/memory/__stack_pointer + local.get $this + local.set $1 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + local.get $1 + call $~lib/object/Object#constructor + local.tee $this + i32.store + local.get $this + local.set $1 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + local.get $1 + f32.const 0 + call $"~lib/map/KeyValue#set:key" + local.get $this + local.set $1 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + local.get $1 + i32.const 0 + call $"~lib/map/KeyValue#set:value" + local.get $this + local.set $1 + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $1 + ) + (func $"~lib/array/Array<~lib/map/KeyValue>#push" (param $this i32) (param $value i32) (result i32) + (local $oldLen i32) + (local $len i32) + (local $4 i32) + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.sub + global.set $~lib/memory/__stack_pointer + call $~stack_check + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store + local.get $this + local.set $4 + global.get $~lib/memory/__stack_pointer + local.get $4 + i32.store + local.get $4 + call $"~lib/array/Array<~lib/map/KeyValue>#get:length_" + local.set $oldLen + local.get $oldLen + i32.const 1 + i32.add + local.set $len + local.get $this + local.get $len + i32.const 2 + i32.const 1 + call $~lib/array/ensureCapacity + i32.const 1 + drop + local.get $this + local.set $4 + global.get $~lib/memory/__stack_pointer + local.get $4 + i32.store + local.get $4 + call $"~lib/array/Array<~lib/map/KeyValue>#get:dataStart" + local.get $oldLen + i32.const 2 + i32.shl + i32.add + local.get $value + i32.store + local.get $this + local.get $value + i32.const 1 + call $~lib/rt/itcms/__link + local.get $this + local.set $4 + global.get $~lib/memory/__stack_pointer + local.get $4 + i32.store + local.get $4 + local.get $len + call $"~lib/array/Array<~lib/map/KeyValue>#set:length_" + local.get $len + local.set $4 + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $4 + return + ) (func $"std/map/testNumeric" (local $map i32) (local $k f32) @@ -28673,18 +38330,26 @@ (local $k|10 f32) (local $k|11 f32) (local $12 i32) + (local $initialEntries i32) + (local $k|14 f32) + (local $15 i32) + (local $k|16 f32) + (local $17 i32) global.get $~lib/memory/__stack_pointer - i32.const 24 + i32.const 40 i32.sub global.set $~lib/memory/__stack_pointer call $~stack_check global.get $~lib/memory/__stack_pointer i32.const 0 - i32.const 24 + i32.const 40 memory.fill global.get $~lib/memory/__stack_pointer i32.const 0 - call $"~lib/map/Map#constructor" + i32.const 0 + global.set $~argumentsLength + i32.const 0 + call $"~lib/map/Map#constructor@varargs" local.tee $map i32.store f32.const 0 @@ -28695,29 +38360,29 @@ f32.lt if local.get $map - local.set $12 + local.set $17 global.get $~lib/memory/__stack_pointer - local.get $12 + local.get $17 i32.store offset=4 - local.get $12 + local.get $17 local.get $k call $"~lib/map/Map#has" i32.eqz i32.eqz if i32.const 0 - i32.const 544 - i32.const 6 + i32.const 752 + i32.const 7 i32.const 5 call $~lib/builtins/abort unreachable end local.get $map - local.set $12 + local.set $17 global.get $~lib/memory/__stack_pointer - local.get $12 + local.get $17 i32.store offset=4 - local.get $12 + local.get $17 local.get $k i32.const 10 local.get $k @@ -28726,28 +38391,28 @@ call $"~lib/map/Map#set" drop local.get $map - local.set $12 + local.set $17 global.get $~lib/memory/__stack_pointer - local.get $12 + local.get $17 i32.store offset=4 - local.get $12 + local.get $17 local.get $k call $"~lib/map/Map#has" i32.eqz if i32.const 0 - i32.const 544 - i32.const 8 + i32.const 752 + i32.const 9 i32.const 5 call $~lib/builtins/abort unreachable end local.get $map - local.set $12 + local.set $17 global.get $~lib/memory/__stack_pointer - local.get $12 + local.get $17 i32.store offset=4 - local.get $12 + local.get $17 local.get $k call $"~lib/map/Map#get" i32.const 10 @@ -28758,8 +38423,8 @@ i32.eqz if i32.const 0 - i32.const 544 - i32.const 9 + i32.const 752 + i32.const 10 i32.const 5 call $~lib/builtins/abort unreachable @@ -28772,19 +38437,19 @@ end end local.get $map - local.set $12 + local.set $17 global.get $~lib/memory/__stack_pointer - local.get $12 + local.get $17 i32.store offset=4 - local.get $12 + local.get $17 call $"~lib/map/Map#get:size" i32.const 100 i32.eq i32.eqz if i32.const 0 - i32.const 544 - i32.const 11 + i32.const 752 + i32.const 12 i32.const 3 call $~lib/builtins/abort unreachable @@ -28797,28 +38462,28 @@ f32.lt if local.get $map - local.set $12 + local.set $17 global.get $~lib/memory/__stack_pointer - local.get $12 + local.get $17 i32.store offset=4 - local.get $12 + local.get $17 local.get $k|2 call $"~lib/map/Map#has" i32.eqz if i32.const 0 - i32.const 544 - i32.const 15 + i32.const 752 + i32.const 16 i32.const 5 call $~lib/builtins/abort unreachable end local.get $map - local.set $12 + local.set $17 global.get $~lib/memory/__stack_pointer - local.get $12 + local.get $17 i32.store offset=4 - local.get $12 + local.get $17 local.get $k|2 call $"~lib/map/Map#get" i32.const 10 @@ -28829,18 +38494,18 @@ i32.eqz if i32.const 0 - i32.const 544 - i32.const 16 + i32.const 752 + i32.const 17 i32.const 5 call $~lib/builtins/abort unreachable end local.get $map - local.set $12 + local.set $17 global.get $~lib/memory/__stack_pointer - local.get $12 + local.get $17 i32.store offset=4 - local.get $12 + local.get $17 local.get $k|2 i32.const 20 local.get $k|2 @@ -28849,28 +38514,28 @@ call $"~lib/map/Map#set" drop local.get $map - local.set $12 + local.set $17 global.get $~lib/memory/__stack_pointer - local.get $12 + local.get $17 i32.store offset=4 - local.get $12 + local.get $17 local.get $k|2 call $"~lib/map/Map#has" i32.eqz if i32.const 0 - i32.const 544 - i32.const 18 + i32.const 752 + i32.const 19 i32.const 5 call $~lib/builtins/abort unreachable end local.get $map - local.set $12 + local.set $17 global.get $~lib/memory/__stack_pointer - local.get $12 + local.get $17 i32.store offset=4 - local.get $12 + local.get $17 local.get $k|2 call $"~lib/map/Map#get" i32.const 20 @@ -28881,8 +38546,8 @@ i32.eqz if i32.const 0 - i32.const 544 - i32.const 19 + i32.const 752 + i32.const 20 i32.const 5 call $~lib/builtins/abort unreachable @@ -28895,51 +38560,57 @@ end end local.get $map - local.set $12 + local.set $17 global.get $~lib/memory/__stack_pointer - local.get $12 + local.get $17 i32.store offset=4 - local.get $12 + local.get $17 call $"~lib/map/Map#get:size" i32.const 100 i32.eq i32.eqz if i32.const 0 - i32.const 544 - i32.const 21 + i32.const 752 + i32.const 22 i32.const 3 call $~lib/builtins/abort unreachable end global.get $~lib/memory/__stack_pointer local.get $map - local.set $12 + local.set $17 global.get $~lib/memory/__stack_pointer - local.get $12 + local.get $17 i32.store offset=4 - local.get $12 + local.get $17 call $"~lib/map/Map#keys" local.tee $keys i32.store offset=8 global.get $~lib/memory/__stack_pointer local.get $map - local.set $12 + local.set $17 global.get $~lib/memory/__stack_pointer - local.get $12 + local.get $17 i32.store offset=4 - local.get $12 + local.get $17 call $"~lib/map/Map#values" local.tee $vals i32.store offset=12 global.get $~lib/memory/__stack_pointer i32.const 0 - call $"~lib/map/Map#constructor" + i32.const 0 + global.set $~argumentsLength + i32.const 0 + call $"~lib/map/Map#constructor@varargs" local.tee $keyMap i32.store offset=16 global.get $~lib/memory/__stack_pointer i32.const 0 - call $"~lib/map/Map#constructor" + i32.const 0 + global.set $~argumentsLength + i32.const 0 + call $"~lib/map/Map#constructor@varargs" local.tee $valMap i32.store offset=20 i32.const 0 @@ -28947,55 +38618,55 @@ loop $for-loop|2 local.get $index local.get $keys - local.set $12 + local.set $17 global.get $~lib/memory/__stack_pointer - local.get $12 + local.get $17 i32.store offset=4 - local.get $12 + local.get $17 call $~lib/array/Array#get:length i32.lt_s if local.get $keys - local.set $12 + local.set $17 global.get $~lib/memory/__stack_pointer - local.get $12 + local.get $17 i32.store offset=4 - local.get $12 + local.get $17 local.get $index call $~lib/array/Array#__get local.set $key local.get $vals - local.set $12 + local.set $17 global.get $~lib/memory/__stack_pointer - local.get $12 + local.get $17 i32.store offset=4 - local.get $12 + local.get $17 local.get $index call $~lib/array/Array#__get local.set $value local.get $map - local.set $12 + local.set $17 global.get $~lib/memory/__stack_pointer - local.get $12 + local.get $17 i32.store offset=4 - local.get $12 + local.get $17 local.get $key call $"~lib/map/Map#has" i32.eqz if i32.const 0 - i32.const 544 - i32.const 31 + i32.const 752 + i32.const 32 i32.const 5 call $~lib/builtins/abort unreachable end local.get $map - local.set $12 + local.set $17 global.get $~lib/memory/__stack_pointer - local.get $12 + local.get $17 i32.store offset=4 - local.get $12 + local.get $17 local.get $value i32.const 20 i32.sub @@ -29004,28 +38675,28 @@ i32.eqz if i32.const 0 - i32.const 544 - i32.const 32 + i32.const 752 + i32.const 33 i32.const 5 call $~lib/builtins/abort unreachable end local.get $keyMap - local.set $12 + local.set $17 global.get $~lib/memory/__stack_pointer - local.get $12 + local.get $17 i32.store offset=4 - local.get $12 + local.get $17 local.get $key local.get $key call $"~lib/map/Map#set" drop local.get $valMap - local.set $12 + local.set $17 global.get $~lib/memory/__stack_pointer - local.get $12 + local.get $17 i32.store offset=4 - local.get $12 + local.get $17 local.get $value i32.const 20 i32.sub @@ -29042,37 +38713,37 @@ end end local.get $keyMap - local.set $12 + local.set $17 global.get $~lib/memory/__stack_pointer - local.get $12 + local.get $17 i32.store offset=4 - local.get $12 + local.get $17 call $"~lib/map/Map#get:size" i32.const 100 i32.eq i32.eqz if i32.const 0 - i32.const 544 - i32.const 36 + i32.const 752 + i32.const 37 i32.const 3 call $~lib/builtins/abort unreachable end local.get $valMap - local.set $12 + local.set $17 global.get $~lib/memory/__stack_pointer - local.get $12 + local.get $17 i32.store offset=4 - local.get $12 + local.get $17 call $"~lib/map/Map#get:size" i32.const 100 i32.eq i32.eqz if i32.const 0 - i32.const 544 - i32.const 37 + i32.const 752 + i32.const 38 i32.const 3 call $~lib/builtins/abort unreachable @@ -29085,28 +38756,28 @@ f32.lt if local.get $map - local.set $12 + local.set $17 global.get $~lib/memory/__stack_pointer - local.get $12 + local.get $17 i32.store offset=4 - local.get $12 + local.get $17 local.get $k|10 call $"~lib/map/Map#has" i32.eqz if i32.const 0 - i32.const 544 - i32.const 41 + i32.const 752 + i32.const 42 i32.const 5 call $~lib/builtins/abort unreachable end local.get $map - local.set $12 + local.set $17 global.get $~lib/memory/__stack_pointer - local.get $12 + local.get $17 i32.store offset=4 - local.get $12 + local.get $17 local.get $k|10 call $"~lib/map/Map#get" i32.const 20 @@ -29117,35 +38788,35 @@ i32.eqz if i32.const 0 - i32.const 544 - i32.const 42 + i32.const 752 + i32.const 43 i32.const 5 call $~lib/builtins/abort unreachable end local.get $map - local.set $12 + local.set $17 global.get $~lib/memory/__stack_pointer - local.get $12 + local.get $17 i32.store offset=4 - local.get $12 + local.get $17 local.get $k|10 call $"~lib/map/Map#delete" drop local.get $map - local.set $12 + local.set $17 global.get $~lib/memory/__stack_pointer - local.get $12 + local.get $17 i32.store offset=4 - local.get $12 + local.get $17 local.get $k|10 call $"~lib/map/Map#has" i32.eqz i32.eqz if i32.const 0 - i32.const 544 - i32.const 44 + i32.const 752 + i32.const 45 i32.const 5 call $~lib/builtins/abort unreachable @@ -29158,19 +38829,19 @@ end end local.get $map - local.set $12 + local.set $17 global.get $~lib/memory/__stack_pointer - local.get $12 + local.get $17 i32.store offset=4 - local.get $12 + local.get $17 call $"~lib/map/Map#get:size" i32.const 50 i32.eq i32.eqz if i32.const 0 - i32.const 544 - i32.const 46 + i32.const 752 + i32.const 47 i32.const 3 call $~lib/builtins/abort unreachable @@ -29183,29 +38854,29 @@ f32.lt if local.get $map - local.set $12 + local.set $17 global.get $~lib/memory/__stack_pointer - local.get $12 + local.get $17 i32.store offset=4 - local.get $12 + local.get $17 local.get $k|11 call $"~lib/map/Map#has" i32.eqz i32.eqz if i32.const 0 - i32.const 544 - i32.const 50 + i32.const 752 + i32.const 51 i32.const 5 call $~lib/builtins/abort unreachable end local.get $map - local.set $12 + local.set $17 global.get $~lib/memory/__stack_pointer - local.get $12 + local.get $17 i32.store offset=4 - local.get $12 + local.get $17 local.get $k|11 i32.const 10 local.get $k|11 @@ -29214,45 +38885,45 @@ call $"~lib/map/Map#set" drop local.get $map - local.set $12 + local.set $17 global.get $~lib/memory/__stack_pointer - local.get $12 + local.get $17 i32.store offset=4 - local.get $12 + local.get $17 local.get $k|11 call $"~lib/map/Map#has" i32.eqz if i32.const 0 - i32.const 544 - i32.const 52 + i32.const 752 + i32.const 53 i32.const 5 call $~lib/builtins/abort unreachable end local.get $map - local.set $12 + local.set $17 global.get $~lib/memory/__stack_pointer - local.get $12 + local.get $17 i32.store offset=4 - local.get $12 + local.get $17 local.get $k|11 call $"~lib/map/Map#delete" drop local.get $map - local.set $12 + local.set $17 global.get $~lib/memory/__stack_pointer - local.get $12 + local.get $17 i32.store offset=4 - local.get $12 + local.get $17 local.get $k|11 call $"~lib/map/Map#has" i32.eqz i32.eqz if i32.const 0 - i32.const 544 - i32.const 54 + i32.const 752 + i32.const 55 i32.const 5 call $~lib/builtins/abort unreachable @@ -29265,154 +38936,532 @@ end end local.get $map - local.set $12 + local.set $17 global.get $~lib/memory/__stack_pointer - local.get $12 + local.get $17 i32.store offset=4 - local.get $12 + local.get $17 call $"~lib/map/Map#get:size" i32.const 50 i32.eq i32.eqz if i32.const 0 - i32.const 544 - i32.const 56 + i32.const 752 + i32.const 57 i32.const 3 call $~lib/builtins/abort unreachable end local.get $map - local.set $12 + local.set $17 global.get $~lib/memory/__stack_pointer - local.get $12 + local.get $17 i32.store offset=4 - local.get $12 + local.get $17 call $"~lib/map/Map#clear" local.get $map - local.set $12 + local.set $17 global.get $~lib/memory/__stack_pointer - local.get $12 + local.get $17 i32.store offset=4 - local.get $12 + local.get $17 call $"~lib/map/Map#get:size" i32.const 0 i32.eq i32.eqz if i32.const 0 - i32.const 544 - i32.const 60 + i32.const 752 + i32.const 61 i32.const 3 call $~lib/builtins/abort unreachable end global.get $~lib/memory/__stack_pointer - i32.const 24 + i32.const 0 + i32.const 2 + i32.const 59 + i32.const 1680 + call $~lib/rt/__newArray + local.tee $initialEntries + i32.store offset=24 + f32.const 0 + local.set $k|14 + loop $for-loop|5 + local.get $k|14 + f32.const 100 + f32.lt + if + local.get $initialEntries + local.set $17 + global.get $~lib/memory/__stack_pointer + local.get $17 + i32.store offset=4 + local.get $17 + global.get $~lib/memory/__stack_pointer + i32.const 0 + call $"~lib/map/KeyValue#constructor" + local.tee $15 + i32.store offset=32 + local.get $15 + local.set $17 + global.get $~lib/memory/__stack_pointer + local.get $17 + i32.store offset=36 + local.get $17 + local.get $k|14 + call $"~lib/map/KeyValue#set:key" + local.get $15 + local.set $17 + global.get $~lib/memory/__stack_pointer + local.get $17 + i32.store offset=36 + local.get $17 + i32.const 10 + local.get $k|14 + i32.trunc_sat_f32_s + i32.add + call $"~lib/map/KeyValue#set:value" + local.get $15 + local.set $17 + global.get $~lib/memory/__stack_pointer + local.get $17 + i32.store offset=28 + local.get $17 + call $"~lib/array/Array<~lib/map/KeyValue>#push" + drop + local.get $k|14 + f32.const 1 + f32.add + local.set $k|14 + br $for-loop|5 + end + end + global.get $~lib/memory/__stack_pointer + i32.const 0 + local.get $initialEntries + local.set $17 + global.get $~lib/memory/__stack_pointer + local.get $17 + i32.store offset=4 + local.get $17 + call $"~lib/map/Map#constructor" + local.tee $map + i32.store + local.get $map + local.set $17 + global.get $~lib/memory/__stack_pointer + local.get $17 + i32.store offset=4 + local.get $17 + call $"~lib/map/Map#get:size" + i32.const 100 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 752 + i32.const 74 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + f32.const 0 + local.set $k|16 + loop $for-loop|6 + local.get $k|16 + f32.const 100 + f32.lt + if + local.get $map + local.set $17 + global.get $~lib/memory/__stack_pointer + local.get $17 + i32.store offset=4 + local.get $17 + local.get $k|16 + call $"~lib/map/Map#has" + i32.eqz + if + i32.const 0 + i32.const 752 + i32.const 76 + i32.const 5 + call $~lib/builtins/abort + unreachable + end + local.get $map + local.set $17 + global.get $~lib/memory/__stack_pointer + local.get $17 + i32.store offset=4 + local.get $17 + local.get $k|16 + call $"~lib/map/Map#get" + i32.const 10 + local.get $k|16 + i32.trunc_sat_f32_s + i32.add + i32.eq + i32.eqz + if + i32.const 0 + i32.const 752 + i32.const 77 + i32.const 5 + call $~lib/builtins/abort + unreachable + end + local.get $map + local.set $17 + global.get $~lib/memory/__stack_pointer + local.get $17 + i32.store offset=4 + local.get $17 + local.get $k|16 + call $"~lib/map/Map#delete" + drop + local.get $map + local.set $17 + global.get $~lib/memory/__stack_pointer + local.get $17 + i32.store offset=4 + local.get $17 + local.get $k|16 + call $"~lib/map/Map#has" + i32.eqz + i32.eqz + if + i32.const 0 + i32.const 752 + i32.const 79 + i32.const 5 + call $~lib/builtins/abort + unreachable + end + local.get $k|16 + f32.const 1 + f32.add + local.set $k|16 + br $for-loop|6 + end + end + local.get $map + local.set $17 + global.get $~lib/memory/__stack_pointer + local.get $17 + i32.store offset=4 + local.get $17 + call $"~lib/map/Map#get:size" + i32.const 0 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 752 + i32.const 81 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + i32.const 40 i32.add global.set $~lib/memory/__stack_pointer ) - (func $"~lib/map/Map#constructor" (param $this i32) (result i32) + (func $"~lib/array/Array<~lib/map/KeyValue>#get:length" (param $this i32) (result i32) (local $1 i32) global.get $~lib/memory/__stack_pointer - i32.const 12 + i32.const 4 i32.sub global.set $~lib/memory/__stack_pointer call $~stack_check global.get $~lib/memory/__stack_pointer - i64.const 0 - i64.store - global.get $~lib/memory/__stack_pointer i32.const 0 - i32.store offset=8 - local.get $this - i32.eqz - if - global.get $~lib/memory/__stack_pointer - i32.const 24 - i32.const 30 - call $~lib/rt/itcms/__new - local.tee $this - i32.store - end + i32.store local.get $this local.set $1 global.get $~lib/memory/__stack_pointer local.get $1 - i32.store offset=4 + i32.store local.get $1 - i32.const 0 - i32.const 4 - i32.const 4 - i32.mul - call $~lib/arraybuffer/ArrayBuffer#constructor + call $"~lib/array/Array<~lib/map/KeyValue>#get:length_" local.set $1 global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer local.get $1 - i32.store offset=8 - local.get $1 - call $"~lib/map/Map#set:buckets" - local.get $this - local.set $1 + return + ) + (func $"~lib/map/Map#rehash" (param $this i32) (param $newBucketsMask i32) + (local $newBucketsCapacity i32) + (local $newBuckets i32) + (local $newEntriesCapacity i32) + (local $newEntries i32) + (local $oldPtr i32) + (local $oldEnd i32) + (local $newPtr i32) + (local $oldEntry i32) + (local $newEntry i32) + (local $oldEntryKey f64) + (local $newBucketIndex i32) + (local $newBucketPtrBase i32) + (local $14 i32) global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - local.get $1 - i32.const 4 - i32.const 1 + i32.const 16 i32.sub - call $"~lib/map/Map#set:bucketsMask" - local.get $this - local.set $1 + global.set $~lib/memory/__stack_pointer + call $~stack_check + global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store + global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store offset=8 + local.get $newBucketsMask + i32.const 1 + i32.add + local.set $newBucketsCapacity global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - local.get $1 i32.const 0 + local.get $newBucketsCapacity i32.const 4 + i32.mul + call $~lib/arraybuffer/ArrayBuffer#constructor + local.tee $newBuckets + i32.store + local.get $newBucketsCapacity + i32.const 8 + i32.mul + i32.const 3 + i32.div_s + local.set $newEntriesCapacity + global.get $~lib/memory/__stack_pointer + i32.const 0 + local.get $newEntriesCapacity block $"~lib/map/ENTRY_SIZE|inlined.0" (result i32) i32.const 16 br $"~lib/map/ENTRY_SIZE|inlined.0" end i32.mul call $~lib/arraybuffer/ArrayBuffer#constructor - local.set $1 + local.tee $newEntries + i32.store offset=4 + local.get $this + local.set $14 global.get $~lib/memory/__stack_pointer - local.get $1 + local.get $14 i32.store offset=8 - local.get $1 + local.get $14 + call $"~lib/map/Map#get:entries" + local.set $oldPtr + local.get $oldPtr + local.get $this + local.set $14 + global.get $~lib/memory/__stack_pointer + local.get $14 + i32.store offset=8 + local.get $14 + call $"~lib/map/Map#get:entriesOffset" + block $"~lib/map/ENTRY_SIZE|inlined.1" (result i32) + i32.const 16 + br $"~lib/map/ENTRY_SIZE|inlined.1" + end + i32.mul + i32.add + local.set $oldEnd + local.get $newEntries + local.set $newPtr + loop $while-continue|0 + local.get $oldPtr + local.get $oldEnd + i32.ne + if + local.get $oldPtr + local.set $oldEntry + local.get $oldEntry + call $"~lib/map/MapEntry#get:taggedNext" + i32.const 1 + i32.and + i32.eqz + if + local.get $newPtr + local.set $newEntry + local.get $oldEntry + call $"~lib/map/MapEntry#get:key" + local.set $oldEntryKey + local.get $newEntry + local.get $oldEntryKey + call $"~lib/map/MapEntry#set:key" + local.get $newEntry + local.get $oldEntry + call $"~lib/map/MapEntry#get:value" + call $"~lib/map/MapEntry#set:value" + local.get $oldEntryKey + call $~lib/util/hash/HASH + local.get $newBucketsMask + i32.and + local.set $newBucketIndex + local.get $newBuckets + local.get $newBucketIndex + i32.const 4 + i32.mul + i32.add + local.set $newBucketPtrBase + local.get $newEntry + local.get $newBucketPtrBase + i32.load + call $"~lib/map/MapEntry#set:taggedNext" + local.get $newBucketPtrBase + local.get $newPtr + i32.store + local.get $newPtr + block $"~lib/map/ENTRY_SIZE|inlined.2" (result i32) + i32.const 16 + br $"~lib/map/ENTRY_SIZE|inlined.2" + end + i32.add + local.set $newPtr + end + local.get $oldPtr + block $"~lib/map/ENTRY_SIZE|inlined.3" (result i32) + i32.const 16 + br $"~lib/map/ENTRY_SIZE|inlined.3" + end + i32.add + local.set $oldPtr + br $while-continue|0 + end + end + local.get $this + local.set $14 + global.get $~lib/memory/__stack_pointer + local.get $14 + i32.store offset=8 + local.get $14 + local.get $newBuckets + local.set $14 + global.get $~lib/memory/__stack_pointer + local.get $14 + i32.store offset=12 + local.get $14 + call $"~lib/map/Map#set:buckets" + local.get $this + local.set $14 + global.get $~lib/memory/__stack_pointer + local.get $14 + i32.store offset=8 + local.get $14 + local.get $newBucketsMask + call $"~lib/map/Map#set:bucketsMask" + local.get $this + local.set $14 + global.get $~lib/memory/__stack_pointer + local.get $14 + i32.store offset=8 + local.get $14 + local.get $newEntries + local.set $14 + global.get $~lib/memory/__stack_pointer + local.get $14 + i32.store offset=12 + local.get $14 call $"~lib/map/Map#set:entries" local.get $this - local.set $1 + local.set $14 global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - local.get $1 - i32.const 4 + local.get $14 + i32.store offset=8 + local.get $14 + local.get $newEntriesCapacity call $"~lib/map/Map#set:entriesCapacity" local.get $this - local.set $1 + local.set $14 global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - local.get $1 - i32.const 0 + local.get $14 + i32.store offset=8 + local.get $14 + local.get $this + local.set $14 + global.get $~lib/memory/__stack_pointer + local.get $14 + i32.store offset=12 + local.get $14 + call $"~lib/map/Map#get:entriesCount" call $"~lib/map/Map#set:entriesOffset" + global.get $~lib/memory/__stack_pointer + i32.const 16 + i32.add + global.set $~lib/memory/__stack_pointer + ) + (func $"~lib/array/Array<~lib/map/KeyValue>#__get" (param $this i32) (param $index i32) (result i32) + (local $value i32) + (local $3 i32) + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.sub + global.set $~lib/memory/__stack_pointer + call $~stack_check + global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store + local.get $index local.get $this - local.set $1 + local.set $3 global.get $~lib/memory/__stack_pointer - local.get $1 + local.get $3 + i32.store + local.get $3 + call $"~lib/array/Array<~lib/map/KeyValue>#get:length_" + i32.ge_u + if + i32.const 336 + i32.const 544 + i32.const 114 + i32.const 42 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + local.get $this + local.set $3 + global.get $~lib/memory/__stack_pointer + local.get $3 + i32.store + local.get $3 + call $"~lib/array/Array<~lib/map/KeyValue>#get:dataStart" + local.get $index + i32.const 2 + i32.shl + i32.add + i32.load + local.tee $value i32.store offset=4 - local.get $1 + i32.const 1 + drop i32.const 0 - call $"~lib/map/Map#set:entriesCount" - local.get $this - local.set $1 + i32.eqz + drop + local.get $value + i32.eqz + if + i32.const 592 + i32.const 544 + i32.const 118 + i32.const 40 + call $~lib/builtins/abort + unreachable + end + local.get $value + local.set $3 global.get $~lib/memory/__stack_pointer - i32.const 12 + i32.const 8 i32.add global.set $~lib/memory/__stack_pointer - local.get $1 + local.get $3 + return ) (func $"~lib/map/Map#find" (param $this i32) (param $key f64) (param $hashCode i32) (result i32) (local $entry i32) @@ -29489,54 +39538,22 @@ global.get $~lib/memory/__stack_pointer i32.const 4 i32.add - global.set $~lib/memory/__stack_pointer - local.get $5 - return - ) - (func $"~lib/map/Map#has" (param $this i32) (param $key f64) (result i32) - (local $2 i32) - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.sub - global.set $~lib/memory/__stack_pointer - call $~stack_check - global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.store - local.get $this - local.set $2 - global.get $~lib/memory/__stack_pointer - local.get $2 - i32.store - local.get $2 - local.get $key - local.get $key - call $~lib/util/hash/HASH - call $"~lib/map/Map#find" - i32.const 0 - i32.ne - local.set $2 - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $2 - return - ) - (func $"~lib/map/Map#rehash" (param $this i32) (param $newBucketsMask i32) - (local $newBucketsCapacity i32) - (local $newBuckets i32) - (local $newEntriesCapacity i32) - (local $newEntries i32) - (local $oldPtr i32) - (local $oldEnd i32) - (local $newPtr i32) - (local $oldEntry i32) - (local $newEntry i32) - (local $oldEntryKey f64) - (local $newBucketIndex i32) - (local $newBucketPtrBase i32) - (local $14 i32) + global.set $~lib/memory/__stack_pointer + local.get $5 + return + ) + (func $"~lib/map/Map#constructor" (param $this i32) (param $initialEntries i32) (result i32) + (local $entriesLength i32) + (local $i i32) + (local $key f64) + (local $value i32) + (local $hashCode i32) + (local $entry i32) + (local $entries i32) + (local $9 i32) + (local $entry|10 i32) + (local $bucketPtrBase i32) + (local $12 i32) global.get $~lib/memory/__stack_pointer i32.const 16 i32.sub @@ -29548,181 +39565,380 @@ global.get $~lib/memory/__stack_pointer i64.const 0 i64.store offset=8 - local.get $newBucketsMask - i32.const 1 - i32.add - local.set $newBucketsCapacity + local.get $this + i32.eqz + if + global.get $~lib/memory/__stack_pointer + i32.const 24 + i32.const 64 + call $~lib/rt/itcms/__new + local.tee $this + i32.store + end + local.get $this + local.set $12 global.get $~lib/memory/__stack_pointer + local.get $12 + i32.store offset=4 + local.get $12 i32.const 0 - local.get $newBucketsCapacity + i32.const 4 i32.const 4 i32.mul call $~lib/arraybuffer/ArrayBuffer#constructor - local.tee $newBuckets - i32.store - local.get $newBucketsCapacity - i32.const 8 - i32.mul - i32.const 3 - i32.div_s - local.set $newEntriesCapacity + local.set $12 + global.get $~lib/memory/__stack_pointer + local.get $12 + i32.store offset=8 + local.get $12 + call $"~lib/map/Map#set:buckets" + local.get $this + local.set $12 + global.get $~lib/memory/__stack_pointer + local.get $12 + i32.store offset=4 + local.get $12 + i32.const 4 + i32.const 1 + i32.sub + call $"~lib/map/Map#set:bucketsMask" + local.get $this + local.set $12 global.get $~lib/memory/__stack_pointer + local.get $12 + i32.store offset=4 + local.get $12 i32.const 0 - local.get $newEntriesCapacity - block $"~lib/map/ENTRY_SIZE|inlined.1" (result i32) + i32.const 4 + block $"~lib/map/ENTRY_SIZE|inlined.5" (result i32) i32.const 16 - br $"~lib/map/ENTRY_SIZE|inlined.1" + br $"~lib/map/ENTRY_SIZE|inlined.5" end i32.mul call $~lib/arraybuffer/ArrayBuffer#constructor - local.tee $newEntries + local.set $12 + global.get $~lib/memory/__stack_pointer + local.get $12 + i32.store offset=8 + local.get $12 + call $"~lib/map/Map#set:entries" + local.get $this + local.set $12 + global.get $~lib/memory/__stack_pointer + local.get $12 i32.store offset=4 + local.get $12 + i32.const 4 + call $"~lib/map/Map#set:entriesCapacity" local.get $this - local.set $14 + local.set $12 global.get $~lib/memory/__stack_pointer - local.get $14 - i32.store offset=8 - local.get $14 - call $"~lib/map/Map#get:entries" - local.set $oldPtr - local.get $oldPtr + local.get $12 + i32.store offset=4 + local.get $12 + i32.const 0 + call $"~lib/map/Map#set:entriesOffset" local.get $this - local.set $14 + local.set $12 global.get $~lib/memory/__stack_pointer - local.get $14 - i32.store offset=8 - local.get $14 - call $"~lib/map/Map#get:entriesOffset" - block $"~lib/map/ENTRY_SIZE|inlined.2" (result i32) - i32.const 16 - br $"~lib/map/ENTRY_SIZE|inlined.2" - end - i32.mul - i32.add - local.set $oldEnd - local.get $newEntries - local.set $newPtr - loop $while-continue|0 - local.get $oldPtr - local.get $oldEnd - i32.ne + local.get $12 + i32.store offset=4 + local.get $12 + i32.const 0 + call $"~lib/map/Map#set:entriesCount" + local.get $initialEntries + local.set $12 + global.get $~lib/memory/__stack_pointer + local.get $12 + i32.store offset=4 + local.get $12 + call $"~lib/array/Array<~lib/map/KeyValue>#get:length" + local.set $entriesLength + local.get $entriesLength + i32.const 0 + i32.gt_s + if + local.get $entriesLength + local.get $this + local.set $12 + global.get $~lib/memory/__stack_pointer + local.get $12 + i32.store offset=4 + local.get $12 + call $"~lib/map/Map#get:entriesCapacity" + i32.ge_s if - local.get $oldPtr - local.set $oldEntry - local.get $oldEntry - call $"~lib/map/MapEntry#get:taggedNext" - i32.const 1 - i32.and - i32.eqz + local.get $this + local.set $12 + global.get $~lib/memory/__stack_pointer + local.get $12 + i32.store offset=4 + local.get $12 + local.get $entriesLength + call $"~lib/map/Map#set:bucketsMask" + end + local.get $this + local.set $12 + global.get $~lib/memory/__stack_pointer + local.get $12 + i32.store offset=4 + local.get $12 + local.get $this + local.set $12 + global.get $~lib/memory/__stack_pointer + local.get $12 + i32.store offset=8 + local.get $12 + call $"~lib/map/Map#get:bucketsMask" + i32.const 1 + i32.shl + i32.const 1 + i32.or + call $"~lib/map/Map#rehash" + i32.const 0 + local.set $i + loop $for-loop|0 + local.get $i + local.get $entriesLength + i32.lt_s if - local.get $newPtr - local.set $newEntry - local.get $oldEntry - call $"~lib/map/MapEntry#get:key" - local.set $oldEntryKey - local.get $newEntry - local.get $oldEntryKey - call $"~lib/map/MapEntry#set:key" - local.get $newEntry - local.get $oldEntry - call $"~lib/map/MapEntry#get:value" - call $"~lib/map/MapEntry#set:value" - local.get $oldEntryKey + local.get $initialEntries + local.set $12 + global.get $~lib/memory/__stack_pointer + local.get $12 + i32.store offset=8 + local.get $12 + local.get $i + call $"~lib/array/Array<~lib/map/KeyValue>#__get" + local.set $12 + global.get $~lib/memory/__stack_pointer + local.get $12 + i32.store offset=4 + local.get $12 + call $"~lib/map/KeyValue#get:key" + local.set $key + local.get $initialEntries + local.set $12 + global.get $~lib/memory/__stack_pointer + local.get $12 + i32.store offset=8 + local.get $12 + local.get $i + call $"~lib/array/Array<~lib/map/KeyValue>#__get" + local.set $12 + global.get $~lib/memory/__stack_pointer + local.get $12 + i32.store offset=4 + local.get $12 + call $"~lib/map/KeyValue#get:value" + local.set $value + local.get $key call $~lib/util/hash/HASH - local.get $newBucketsMask - i32.and - local.set $newBucketIndex - local.get $newBuckets - local.get $newBucketIndex - i32.const 4 - i32.mul - i32.add - local.set $newBucketPtrBase - local.get $newEntry - local.get $newBucketPtrBase - i32.load - call $"~lib/map/MapEntry#set:taggedNext" - local.get $newBucketPtrBase - local.get $newPtr - i32.store - local.get $newPtr - block $"~lib/map/ENTRY_SIZE|inlined.3" (result i32) - i32.const 16 - br $"~lib/map/ENTRY_SIZE|inlined.3" + local.set $hashCode + local.get $this + local.set $12 + global.get $~lib/memory/__stack_pointer + local.get $12 + i32.store offset=4 + local.get $12 + local.get $key + local.get $hashCode + call $"~lib/map/Map#find" + local.set $entry + local.get $entry + if + local.get $entry + local.get $value + call $"~lib/map/MapEntry#set:value" + i32.const 0 + drop + else + global.get $~lib/memory/__stack_pointer + local.get $this + local.set $12 + global.get $~lib/memory/__stack_pointer + local.get $12 + i32.store offset=4 + local.get $12 + call $"~lib/map/Map#get:entries" + local.tee $entries + i32.store offset=12 + local.get $entries + local.get $this + local.set $12 + global.get $~lib/memory/__stack_pointer + local.get $12 + i32.store offset=4 + local.get $12 + local.get $this + local.set $12 + global.get $~lib/memory/__stack_pointer + local.get $12 + i32.store offset=8 + local.get $12 + call $"~lib/map/Map#get:entriesOffset" + local.tee $9 + i32.const 1 + i32.add + call $"~lib/map/Map#set:entriesOffset" + local.get $9 + block $"~lib/map/ENTRY_SIZE|inlined.4" (result i32) + i32.const 16 + br $"~lib/map/ENTRY_SIZE|inlined.4" + end + i32.mul + i32.add + local.set $entry|10 + local.get $entry|10 + local.get $key + call $"~lib/map/MapEntry#set:key" + i32.const 0 + drop + local.get $entry|10 + local.get $value + call $"~lib/map/MapEntry#set:value" + i32.const 0 + drop + local.get $this + local.set $12 + global.get $~lib/memory/__stack_pointer + local.get $12 + i32.store offset=4 + local.get $12 + local.get $this + local.set $12 + global.get $~lib/memory/__stack_pointer + local.get $12 + i32.store offset=8 + local.get $12 + call $"~lib/map/Map#get:entriesCount" + i32.const 1 + i32.add + call $"~lib/map/Map#set:entriesCount" + local.get $this + local.set $12 + global.get $~lib/memory/__stack_pointer + local.get $12 + i32.store offset=4 + local.get $12 + call $"~lib/map/Map#get:buckets" + local.get $hashCode + local.get $this + local.set $12 + global.get $~lib/memory/__stack_pointer + local.get $12 + i32.store offset=4 + local.get $12 + call $"~lib/map/Map#get:bucketsMask" + i32.and + i32.const 4 + i32.mul + i32.add + local.set $bucketPtrBase + local.get $entry|10 + local.get $bucketPtrBase + i32.load + call $"~lib/map/MapEntry#set:taggedNext" + local.get $bucketPtrBase + local.get $entry|10 + i32.store end + local.get $i + i32.const 1 i32.add - local.set $newPtr - end - local.get $oldPtr - block $"~lib/map/ENTRY_SIZE|inlined.4" (result i32) - i32.const 16 - br $"~lib/map/ENTRY_SIZE|inlined.4" + local.set $i + br $for-loop|0 end - i32.add - local.set $oldPtr - br $while-continue|0 end end local.get $this - local.set $14 + local.set $12 global.get $~lib/memory/__stack_pointer - local.get $14 - i32.store offset=8 - local.get $14 - local.get $newBuckets - local.set $14 + i32.const 16 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $12 + ) + (func $"~lib/map/Map#constructor@varargs" (param $this i32) (param $initialEntries i32) (result i32) + (local $2 i32) + (local $3 i32) global.get $~lib/memory/__stack_pointer - local.get $14 - i32.store offset=12 - local.get $14 - call $"~lib/map/Map#set:buckets" - local.get $this - local.set $14 + i32.const 12 + i32.sub + global.set $~lib/memory/__stack_pointer + call $~stack_check global.get $~lib/memory/__stack_pointer - local.get $14 + i64.const 0 + i64.store + global.get $~lib/memory/__stack_pointer + i32.const 0 i32.store offset=8 - local.get $14 - local.get $newBucketsMask - call $"~lib/map/Map#set:bucketsMask" + block $1of1 + block $0of1 + block $outOfRange + global.get $~argumentsLength + br_table $0of1 $1of1 $outOfRange + end + unreachable + end + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.const 2 + i32.const 66 + i32.const 1712 + call $~lib/rt/__newArray + local.tee $initialEntries + i32.store + end local.get $this - local.set $14 + local.set $3 global.get $~lib/memory/__stack_pointer - local.get $14 + local.get $3 + i32.store offset=4 + local.get $3 + local.get $initialEntries + local.set $3 + global.get $~lib/memory/__stack_pointer + local.get $3 i32.store offset=8 - local.get $14 - local.get $newEntries - local.set $14 + local.get $3 + call $"~lib/map/Map#constructor" + local.set $3 global.get $~lib/memory/__stack_pointer - local.get $14 - i32.store offset=12 - local.get $14 - call $"~lib/map/Map#set:entries" - local.get $this - local.set $14 + i32.const 12 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $3 + ) + (func $"~lib/map/Map#has" (param $this i32) (param $key f64) (result i32) + (local $2 i32) global.get $~lib/memory/__stack_pointer - local.get $14 - i32.store offset=8 - local.get $14 - local.get $newEntriesCapacity - call $"~lib/map/Map#set:entriesCapacity" - local.get $this - local.set $14 + i32.const 4 + i32.sub + global.set $~lib/memory/__stack_pointer + call $~stack_check global.get $~lib/memory/__stack_pointer - local.get $14 - i32.store offset=8 - local.get $14 + i32.const 0 + i32.store local.get $this - local.set $14 + local.set $2 global.get $~lib/memory/__stack_pointer - local.get $14 - i32.store offset=12 - local.get $14 - call $"~lib/map/Map#get:entriesCount" - call $"~lib/map/Map#set:entriesOffset" + local.get $2 + i32.store + local.get $2 + local.get $key + local.get $key + call $~lib/util/hash/HASH + call $"~lib/map/Map#find" + i32.const 0 + i32.ne + local.set $2 global.get $~lib/memory/__stack_pointer - i32.const 16 + i32.const 4 i32.add global.set $~lib/memory/__stack_pointer + local.get $2 + return ) (func $"~lib/map/Map#set" (param $this i32) (param $key f64) (param $value i32) (result i32) (local $hashCode i32) @@ -29856,9 +40072,9 @@ i32.add call $"~lib/map/Map#set:entriesOffset" local.get $6 - block $"~lib/map/ENTRY_SIZE|inlined.5" (result i32) + block $"~lib/map/ENTRY_SIZE|inlined.6" (result i32) i32.const 16 - br $"~lib/map/ENTRY_SIZE|inlined.5" + br $"~lib/map/ENTRY_SIZE|inlined.6" end i32.mul i32.add @@ -29951,9 +40167,9 @@ local.get $entry i32.eqz if - i32.const 592 - i32.const 656 - i32.const 105 + i32.const 800 + i32.const 864 + i32.const 148 i32.const 17 call $~lib/builtins/abort unreachable @@ -30015,7 +40231,7 @@ if global.get $~lib/memory/__stack_pointer i32.const 16 - i32.const 31 + i32.const 67 call $~lib/rt/itcms/__new local.tee $this i32.store @@ -30058,8 +40274,8 @@ i32.shr_u i32.gt_u if - i32.const 432 - i32.const 704 + i32.const 32 + i32.const 544 i32.const 70 i32.const 60 call $~lib/builtins/abort @@ -30155,8 +40371,8 @@ i32.const 0 i32.lt_s if - i32.const 224 - i32.const 704 + i32.const 336 + i32.const 544 i32.const 130 i32.const 22 call $~lib/builtins/abort @@ -30278,9 +40494,9 @@ if local.get $start local.get $i - block $"~lib/map/ENTRY_SIZE|inlined.6" (result i32) + block $"~lib/map/ENTRY_SIZE|inlined.7" (result i32) i32.const 16 - br $"~lib/map/ENTRY_SIZE|inlined.6" + br $"~lib/map/ENTRY_SIZE|inlined.7" end i32.mul i32.add @@ -30381,9 +40597,9 @@ if local.get $start local.get $i - block $"~lib/map/ENTRY_SIZE|inlined.7" (result i32) + block $"~lib/map/ENTRY_SIZE|inlined.8" (result i32) i32.const 16 - br $"~lib/map/ENTRY_SIZE|inlined.7" + br $"~lib/map/ENTRY_SIZE|inlined.8" end i32.mul i32.add @@ -30418,206 +40634,24 @@ end end local.get $values - local.set $8 - global.get $~lib/memory/__stack_pointer - local.get $8 - i32.store - local.get $8 - local.get $length - call $~lib/array/Array#set:length - local.get $values - local.set $8 - global.get $~lib/memory/__stack_pointer - i32.const 8 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $8 - return - ) - (func $"~lib/map/Map#constructor" (param $this i32) (result i32) - (local $1 i32) - global.get $~lib/memory/__stack_pointer - i32.const 12 - i32.sub - global.set $~lib/memory/__stack_pointer - call $~stack_check - global.get $~lib/memory/__stack_pointer - i64.const 0 - i64.store - global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.store offset=8 - local.get $this - i32.eqz - if - global.get $~lib/memory/__stack_pointer - i32.const 24 - i32.const 32 - call $~lib/rt/itcms/__new - local.tee $this - i32.store - end - local.get $this - local.set $1 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - local.get $1 - i32.const 0 - i32.const 4 - i32.const 4 - i32.mul - call $~lib/arraybuffer/ArrayBuffer#constructor - local.set $1 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=8 - local.get $1 - call $"~lib/map/Map#set:buckets" - local.get $this - local.set $1 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - local.get $1 - i32.const 4 - i32.const 1 - i32.sub - call $"~lib/map/Map#set:bucketsMask" - local.get $this - local.set $1 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - local.get $1 - i32.const 0 - i32.const 4 - block $"~lib/map/ENTRY_SIZE|inlined.0" (result i32) - i32.const 24 - br $"~lib/map/ENTRY_SIZE|inlined.0" - end - i32.mul - call $~lib/arraybuffer/ArrayBuffer#constructor - local.set $1 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=8 - local.get $1 - call $"~lib/map/Map#set:entries" - local.get $this - local.set $1 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - local.get $1 - i32.const 4 - call $"~lib/map/Map#set:entriesCapacity" - local.get $this - local.set $1 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - local.get $1 - i32.const 0 - call $"~lib/map/Map#set:entriesOffset" - local.get $this - local.set $1 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - local.get $1 - i32.const 0 - call $"~lib/map/Map#set:entriesCount" - local.get $this - local.set $1 - global.get $~lib/memory/__stack_pointer - i32.const 12 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $1 - ) - (func $~lib/array/Array#get:length (param $this i32) (result i32) - (local $1 i32) - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.sub - global.set $~lib/memory/__stack_pointer - call $~stack_check - global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.store - local.get $this - local.set $1 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store - local.get $1 - call $~lib/array/Array#get:length_ - local.set $1 - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $1 - return - ) - (func $~lib/array/Array#__get (param $this i32) (param $index i32) (result f64) - (local $value f64) - (local $3 i32) - (local $4 f64) - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.sub - global.set $~lib/memory/__stack_pointer - call $~stack_check - global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.store - local.get $index - local.get $this - local.set $3 - global.get $~lib/memory/__stack_pointer - local.get $3 - i32.store - local.get $3 - call $~lib/array/Array#get:length_ - i32.ge_u - if - i32.const 224 - i32.const 704 - i32.const 114 - i32.const 42 - call $~lib/builtins/abort - unreachable - end - local.get $this - local.set $3 + local.set $8 global.get $~lib/memory/__stack_pointer - local.get $3 + local.get $8 i32.store - local.get $3 - call $~lib/array/Array#get:dataStart - local.get $index - i32.const 3 - i32.shl - i32.add - f64.load - local.set $value - i32.const 0 - drop - local.get $value - local.set $4 + local.get $8 + local.get $length + call $~lib/array/Array#set:length + local.get $values + local.set $8 global.get $~lib/memory/__stack_pointer - i32.const 4 + i32.const 8 i32.add global.set $~lib/memory/__stack_pointer - local.get $4 + local.get $8 return ) - (func $"~lib/map/Map#find" (param $this i32) (param $key f64) (param $hashCode i32) (result i32) - (local $entry i32) - (local $taggedNext i32) - (local $5 i32) + (func $"~lib/array/Array<~lib/map/KeyValue>#get:length" (param $this i32) (result i32) + (local $1 i32) global.get $~lib/memory/__stack_pointer i32.const 4 i32.sub @@ -30627,70 +40661,18 @@ i32.const 0 i32.store local.get $this - local.set $5 - global.get $~lib/memory/__stack_pointer - local.get $5 - i32.store - local.get $5 - call $"~lib/map/Map#get:buckets" - local.get $hashCode - local.get $this - local.set $5 + local.set $1 global.get $~lib/memory/__stack_pointer - local.get $5 + local.get $1 i32.store - local.get $5 - call $"~lib/map/Map#get:bucketsMask" - i32.and - i32.const 4 - i32.mul - i32.add - i32.load - local.set $entry - loop $while-continue|0 - local.get $entry - if - local.get $entry - call $"~lib/map/MapEntry#get:taggedNext" - local.set $taggedNext - local.get $taggedNext - i32.const 1 - i32.and - i32.eqz - if (result i32) - local.get $entry - call $"~lib/map/MapEntry#get:key" - local.get $key - f64.eq - else - i32.const 0 - end - if - local.get $entry - local.set $5 - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $5 - return - end - local.get $taggedNext - i32.const 1 - i32.const -1 - i32.xor - i32.and - local.set $entry - br $while-continue|0 - end - end - i32.const 0 - local.set $5 + local.get $1 + call $"~lib/array/Array<~lib/map/KeyValue>#get:length_" + local.set $1 global.get $~lib/memory/__stack_pointer i32.const 4 i32.add global.set $~lib/memory/__stack_pointer - local.get $5 + local.get $1 return ) (func $"~lib/map/Map#rehash" (param $this i32) (param $newBucketsMask i32) @@ -30739,9 +40721,9 @@ global.get $~lib/memory/__stack_pointer i32.const 0 local.get $newEntriesCapacity - block $"~lib/map/ENTRY_SIZE|inlined.1" (result i32) + block $"~lib/map/ENTRY_SIZE|inlined.0" (result i32) i32.const 24 - br $"~lib/map/ENTRY_SIZE|inlined.1" + br $"~lib/map/ENTRY_SIZE|inlined.0" end i32.mul call $~lib/arraybuffer/ArrayBuffer#constructor @@ -30763,9 +40745,9 @@ i32.store offset=8 local.get $14 call $"~lib/map/Map#get:entriesOffset" - block $"~lib/map/ENTRY_SIZE|inlined.2" (result i32) + block $"~lib/map/ENTRY_SIZE|inlined.1" (result i32) i32.const 24 - br $"~lib/map/ENTRY_SIZE|inlined.2" + br $"~lib/map/ENTRY_SIZE|inlined.1" end i32.mul i32.add @@ -30816,17 +40798,17 @@ local.get $newPtr i32.store local.get $newPtr - block $"~lib/map/ENTRY_SIZE|inlined.3" (result i32) + block $"~lib/map/ENTRY_SIZE|inlined.2" (result i32) i32.const 24 - br $"~lib/map/ENTRY_SIZE|inlined.3" + br $"~lib/map/ENTRY_SIZE|inlined.2" end i32.add local.set $newPtr end local.get $oldPtr - block $"~lib/map/ENTRY_SIZE|inlined.4" (result i32) + block $"~lib/map/ENTRY_SIZE|inlined.3" (result i32) i32.const 24 - br $"~lib/map/ENTRY_SIZE|inlined.4" + br $"~lib/map/ENTRY_SIZE|inlined.3" end i32.add local.set $oldPtr @@ -30876,23 +40858,615 @@ local.get $newEntriesCapacity call $"~lib/map/Map#set:entriesCapacity" local.get $this - local.set $14 + local.set $14 + global.get $~lib/memory/__stack_pointer + local.get $14 + i32.store offset=8 + local.get $14 + local.get $this + local.set $14 + global.get $~lib/memory/__stack_pointer + local.get $14 + i32.store offset=12 + local.get $14 + call $"~lib/map/Map#get:entriesCount" + call $"~lib/map/Map#set:entriesOffset" + global.get $~lib/memory/__stack_pointer + i32.const 16 + i32.add + global.set $~lib/memory/__stack_pointer + ) + (func $"~lib/array/Array<~lib/map/KeyValue>#__get" (param $this i32) (param $index i32) (result i32) + (local $value i32) + (local $3 i32) + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.sub + global.set $~lib/memory/__stack_pointer + call $~stack_check + global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store + local.get $index + local.get $this + local.set $3 + global.get $~lib/memory/__stack_pointer + local.get $3 + i32.store + local.get $3 + call $"~lib/array/Array<~lib/map/KeyValue>#get:length_" + i32.ge_u + if + i32.const 336 + i32.const 544 + i32.const 114 + i32.const 42 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + local.get $this + local.set $3 + global.get $~lib/memory/__stack_pointer + local.get $3 + i32.store + local.get $3 + call $"~lib/array/Array<~lib/map/KeyValue>#get:dataStart" + local.get $index + i32.const 2 + i32.shl + i32.add + i32.load + local.tee $value + i32.store offset=4 + i32.const 1 + drop + i32.const 0 + i32.eqz + drop + local.get $value + i32.eqz + if + i32.const 592 + i32.const 544 + i32.const 118 + i32.const 40 + call $~lib/builtins/abort + unreachable + end + local.get $value + local.set $3 + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $3 + return + ) + (func $"~lib/map/Map#find" (param $this i32) (param $key f64) (param $hashCode i32) (result i32) + (local $entry i32) + (local $taggedNext i32) + (local $5 i32) + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.sub + global.set $~lib/memory/__stack_pointer + call $~stack_check + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store + local.get $this + local.set $5 + global.get $~lib/memory/__stack_pointer + local.get $5 + i32.store + local.get $5 + call $"~lib/map/Map#get:buckets" + local.get $hashCode + local.get $this + local.set $5 + global.get $~lib/memory/__stack_pointer + local.get $5 + i32.store + local.get $5 + call $"~lib/map/Map#get:bucketsMask" + i32.and + i32.const 4 + i32.mul + i32.add + i32.load + local.set $entry + loop $while-continue|0 + local.get $entry + if + local.get $entry + call $"~lib/map/MapEntry#get:taggedNext" + local.set $taggedNext + local.get $taggedNext + i32.const 1 + i32.and + i32.eqz + if (result i32) + local.get $entry + call $"~lib/map/MapEntry#get:key" + local.get $key + f64.eq + else + i32.const 0 + end + if + local.get $entry + local.set $5 + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $5 + return + end + local.get $taggedNext + i32.const 1 + i32.const -1 + i32.xor + i32.and + local.set $entry + br $while-continue|0 + end + end + i32.const 0 + local.set $5 + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $5 + return + ) + (func $"~lib/map/Map#constructor" (param $this i32) (param $initialEntries i32) (result i32) + (local $entriesLength i32) + (local $i i32) + (local $key f64) + (local $value f64) + (local $hashCode i32) + (local $entry i32) + (local $entries i32) + (local $9 i32) + (local $entry|10 i32) + (local $bucketPtrBase i32) + (local $12 i32) + global.get $~lib/memory/__stack_pointer + i32.const 16 + i32.sub + global.set $~lib/memory/__stack_pointer + call $~stack_check + global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store + global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store offset=8 + local.get $this + i32.eqz + if + global.get $~lib/memory/__stack_pointer + i32.const 24 + i32.const 68 + call $~lib/rt/itcms/__new + local.tee $this + i32.store + end + local.get $this + local.set $12 + global.get $~lib/memory/__stack_pointer + local.get $12 + i32.store offset=4 + local.get $12 + i32.const 0 + i32.const 4 + i32.const 4 + i32.mul + call $~lib/arraybuffer/ArrayBuffer#constructor + local.set $12 + global.get $~lib/memory/__stack_pointer + local.get $12 + i32.store offset=8 + local.get $12 + call $"~lib/map/Map#set:buckets" + local.get $this + local.set $12 + global.get $~lib/memory/__stack_pointer + local.get $12 + i32.store offset=4 + local.get $12 + i32.const 4 + i32.const 1 + i32.sub + call $"~lib/map/Map#set:bucketsMask" + local.get $this + local.set $12 + global.get $~lib/memory/__stack_pointer + local.get $12 + i32.store offset=4 + local.get $12 + i32.const 0 + i32.const 4 + block $"~lib/map/ENTRY_SIZE|inlined.5" (result i32) + i32.const 24 + br $"~lib/map/ENTRY_SIZE|inlined.5" + end + i32.mul + call $~lib/arraybuffer/ArrayBuffer#constructor + local.set $12 + global.get $~lib/memory/__stack_pointer + local.get $12 + i32.store offset=8 + local.get $12 + call $"~lib/map/Map#set:entries" + local.get $this + local.set $12 + global.get $~lib/memory/__stack_pointer + local.get $12 + i32.store offset=4 + local.get $12 + i32.const 4 + call $"~lib/map/Map#set:entriesCapacity" + local.get $this + local.set $12 + global.get $~lib/memory/__stack_pointer + local.get $12 + i32.store offset=4 + local.get $12 + i32.const 0 + call $"~lib/map/Map#set:entriesOffset" + local.get $this + local.set $12 + global.get $~lib/memory/__stack_pointer + local.get $12 + i32.store offset=4 + local.get $12 + i32.const 0 + call $"~lib/map/Map#set:entriesCount" + local.get $initialEntries + local.set $12 + global.get $~lib/memory/__stack_pointer + local.get $12 + i32.store offset=4 + local.get $12 + call $"~lib/array/Array<~lib/map/KeyValue>#get:length" + local.set $entriesLength + local.get $entriesLength + i32.const 0 + i32.gt_s + if + local.get $entriesLength + local.get $this + local.set $12 + global.get $~lib/memory/__stack_pointer + local.get $12 + i32.store offset=4 + local.get $12 + call $"~lib/map/Map#get:entriesCapacity" + i32.ge_s + if + local.get $this + local.set $12 + global.get $~lib/memory/__stack_pointer + local.get $12 + i32.store offset=4 + local.get $12 + local.get $entriesLength + call $"~lib/map/Map#set:bucketsMask" + end + local.get $this + local.set $12 + global.get $~lib/memory/__stack_pointer + local.get $12 + i32.store offset=4 + local.get $12 + local.get $this + local.set $12 + global.get $~lib/memory/__stack_pointer + local.get $12 + i32.store offset=8 + local.get $12 + call $"~lib/map/Map#get:bucketsMask" + i32.const 1 + i32.shl + i32.const 1 + i32.or + call $"~lib/map/Map#rehash" + i32.const 0 + local.set $i + loop $for-loop|0 + local.get $i + local.get $entriesLength + i32.lt_s + if + local.get $initialEntries + local.set $12 + global.get $~lib/memory/__stack_pointer + local.get $12 + i32.store offset=8 + local.get $12 + local.get $i + call $"~lib/array/Array<~lib/map/KeyValue>#__get" + local.set $12 + global.get $~lib/memory/__stack_pointer + local.get $12 + i32.store offset=4 + local.get $12 + call $"~lib/map/KeyValue#get:key" + local.set $key + local.get $initialEntries + local.set $12 + global.get $~lib/memory/__stack_pointer + local.get $12 + i32.store offset=8 + local.get $12 + local.get $i + call $"~lib/array/Array<~lib/map/KeyValue>#__get" + local.set $12 + global.get $~lib/memory/__stack_pointer + local.get $12 + i32.store offset=4 + local.get $12 + call $"~lib/map/KeyValue#get:value" + local.set $value + local.get $key + call $~lib/util/hash/HASH + local.set $hashCode + local.get $this + local.set $12 + global.get $~lib/memory/__stack_pointer + local.get $12 + i32.store offset=4 + local.get $12 + local.get $key + local.get $hashCode + call $"~lib/map/Map#find" + local.set $entry + local.get $entry + if + local.get $entry + local.get $value + call $"~lib/map/MapEntry#set:value" + i32.const 0 + drop + else + global.get $~lib/memory/__stack_pointer + local.get $this + local.set $12 + global.get $~lib/memory/__stack_pointer + local.get $12 + i32.store offset=4 + local.get $12 + call $"~lib/map/Map#get:entries" + local.tee $entries + i32.store offset=12 + local.get $entries + local.get $this + local.set $12 + global.get $~lib/memory/__stack_pointer + local.get $12 + i32.store offset=4 + local.get $12 + local.get $this + local.set $12 + global.get $~lib/memory/__stack_pointer + local.get $12 + i32.store offset=8 + local.get $12 + call $"~lib/map/Map#get:entriesOffset" + local.tee $9 + i32.const 1 + i32.add + call $"~lib/map/Map#set:entriesOffset" + local.get $9 + block $"~lib/map/ENTRY_SIZE|inlined.4" (result i32) + i32.const 24 + br $"~lib/map/ENTRY_SIZE|inlined.4" + end + i32.mul + i32.add + local.set $entry|10 + local.get $entry|10 + local.get $key + call $"~lib/map/MapEntry#set:key" + i32.const 0 + drop + local.get $entry|10 + local.get $value + call $"~lib/map/MapEntry#set:value" + i32.const 0 + drop + local.get $this + local.set $12 + global.get $~lib/memory/__stack_pointer + local.get $12 + i32.store offset=4 + local.get $12 + local.get $this + local.set $12 + global.get $~lib/memory/__stack_pointer + local.get $12 + i32.store offset=8 + local.get $12 + call $"~lib/map/Map#get:entriesCount" + i32.const 1 + i32.add + call $"~lib/map/Map#set:entriesCount" + local.get $this + local.set $12 + global.get $~lib/memory/__stack_pointer + local.get $12 + i32.store offset=4 + local.get $12 + call $"~lib/map/Map#get:buckets" + local.get $hashCode + local.get $this + local.set $12 + global.get $~lib/memory/__stack_pointer + local.get $12 + i32.store offset=4 + local.get $12 + call $"~lib/map/Map#get:bucketsMask" + i32.and + i32.const 4 + i32.mul + i32.add + local.set $bucketPtrBase + local.get $entry|10 + local.get $bucketPtrBase + i32.load + call $"~lib/map/MapEntry#set:taggedNext" + local.get $bucketPtrBase + local.get $entry|10 + i32.store + end + local.get $i + i32.const 1 + i32.add + local.set $i + br $for-loop|0 + end + end + end + local.get $this + local.set $12 + global.get $~lib/memory/__stack_pointer + i32.const 16 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $12 + ) + (func $"~lib/map/Map#constructor@varargs" (param $this i32) (param $initialEntries i32) (result i32) + (local $2 i32) + (local $3 i32) + global.get $~lib/memory/__stack_pointer + i32.const 12 + i32.sub + global.set $~lib/memory/__stack_pointer + call $~stack_check + global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store offset=8 + block $1of1 + block $0of1 + block $outOfRange + global.get $~argumentsLength + br_table $0of1 $1of1 $outOfRange + end + unreachable + end + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.const 2 + i32.const 70 + i32.const 1744 + call $~lib/rt/__newArray + local.tee $initialEntries + i32.store + end + local.get $this + local.set $3 + global.get $~lib/memory/__stack_pointer + local.get $3 + i32.store offset=4 + local.get $3 + local.get $initialEntries + local.set $3 + global.get $~lib/memory/__stack_pointer + local.get $3 + i32.store offset=8 + local.get $3 + call $"~lib/map/Map#constructor" + local.set $3 + global.get $~lib/memory/__stack_pointer + i32.const 12 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $3 + ) + (func $~lib/array/Array#get:length (param $this i32) (result i32) + (local $1 i32) + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.sub + global.set $~lib/memory/__stack_pointer + call $~stack_check + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store + local.get $this + local.set $1 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store + local.get $1 + call $~lib/array/Array#get:length_ + local.set $1 + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $1 + return + ) + (func $~lib/array/Array#__get (param $this i32) (param $index i32) (result f64) + (local $value f64) + (local $3 i32) + (local $4 f64) + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.sub + global.set $~lib/memory/__stack_pointer + call $~stack_check + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store + local.get $index + local.get $this + local.set $3 global.get $~lib/memory/__stack_pointer - local.get $14 - i32.store offset=8 - local.get $14 + local.get $3 + i32.store + local.get $3 + call $~lib/array/Array#get:length_ + i32.ge_u + if + i32.const 336 + i32.const 544 + i32.const 114 + i32.const 42 + call $~lib/builtins/abort + unreachable + end local.get $this - local.set $14 + local.set $3 global.get $~lib/memory/__stack_pointer - local.get $14 - i32.store offset=12 - local.get $14 - call $"~lib/map/Map#get:entriesCount" - call $"~lib/map/Map#set:entriesOffset" + local.get $3 + i32.store + local.get $3 + call $~lib/array/Array#get:dataStart + local.get $index + i32.const 3 + i32.shl + i32.add + f64.load + local.set $value + i32.const 0 + drop + local.get $value + local.set $4 global.get $~lib/memory/__stack_pointer - i32.const 16 + i32.const 4 i32.add global.set $~lib/memory/__stack_pointer + local.get $4 + return ) (func $"~lib/map/Map#set" (param $this i32) (param $key f64) (param $value f64) (result i32) (local $hashCode i32) @@ -31026,9 +41600,9 @@ i32.add call $"~lib/map/Map#set:entriesOffset" local.get $6 - block $"~lib/map/ENTRY_SIZE|inlined.5" (result i32) + block $"~lib/map/ENTRY_SIZE|inlined.6" (result i32) i32.const 24 - br $"~lib/map/ENTRY_SIZE|inlined.5" + br $"~lib/map/ENTRY_SIZE|inlined.6" end i32.mul i32.add @@ -31295,9 +41869,9 @@ local.get $1 i32.const 0 i32.const 4 - block $"~lib/map/ENTRY_SIZE|inlined.8" (result i32) + block $"~lib/map/ENTRY_SIZE|inlined.9" (result i32) i32.const 16 - br $"~lib/map/ENTRY_SIZE|inlined.8" + br $"~lib/map/ENTRY_SIZE|inlined.9" end i32.mul call $~lib/arraybuffer/ArrayBuffer#constructor @@ -31336,6 +41910,125 @@ i32.add global.set $~lib/memory/__stack_pointer ) + (func $"~lib/map/KeyValue#constructor" (param $this i32) (result i32) + (local $1 i32) + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.sub + global.set $~lib/memory/__stack_pointer + call $~stack_check + global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store + local.get $this + i32.eqz + if + global.get $~lib/memory/__stack_pointer + i32.const 12 + i32.const 65 + call $~lib/rt/itcms/__new + local.tee $this + i32.store + end + global.get $~lib/memory/__stack_pointer + local.get $this + local.set $1 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + local.get $1 + call $~lib/object/Object#constructor + local.tee $this + i32.store + local.get $this + local.set $1 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + local.get $1 + f64.const 0 + call $"~lib/map/KeyValue#set:key" + local.get $this + local.set $1 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + local.get $1 + i32.const 0 + call $"~lib/map/KeyValue#set:value" + local.get $this + local.set $1 + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $1 + ) + (func $"~lib/array/Array<~lib/map/KeyValue>#push" (param $this i32) (param $value i32) (result i32) + (local $oldLen i32) + (local $len i32) + (local $4 i32) + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.sub + global.set $~lib/memory/__stack_pointer + call $~stack_check + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store + local.get $this + local.set $4 + global.get $~lib/memory/__stack_pointer + local.get $4 + i32.store + local.get $4 + call $"~lib/array/Array<~lib/map/KeyValue>#get:length_" + local.set $oldLen + local.get $oldLen + i32.const 1 + i32.add + local.set $len + local.get $this + local.get $len + i32.const 2 + i32.const 1 + call $~lib/array/ensureCapacity + i32.const 1 + drop + local.get $this + local.set $4 + global.get $~lib/memory/__stack_pointer + local.get $4 + i32.store + local.get $4 + call $"~lib/array/Array<~lib/map/KeyValue>#get:dataStart" + local.get $oldLen + i32.const 2 + i32.shl + i32.add + local.get $value + i32.store + local.get $this + local.get $value + i32.const 1 + call $~lib/rt/itcms/__link + local.get $this + local.set $4 + global.get $~lib/memory/__stack_pointer + local.get $4 + i32.store + local.get $4 + local.get $len + call $"~lib/array/Array<~lib/map/KeyValue>#set:length_" + local.get $len + local.set $4 + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $4 + return + ) (func $"std/map/testNumeric" (local $map i32) (local $k f64) @@ -31350,646 +42043,1465 @@ (local $k|10 f64) (local $k|11 f64) (local $12 i32) + (local $initialEntries i32) + (local $k|14 f64) + (local $15 i32) + (local $k|16 f64) + (local $17 i32) global.get $~lib/memory/__stack_pointer - i32.const 24 + i32.const 40 i32.sub global.set $~lib/memory/__stack_pointer call $~stack_check global.get $~lib/memory/__stack_pointer i32.const 0 - i32.const 24 + i32.const 40 memory.fill global.get $~lib/memory/__stack_pointer - i32.const 0 - call $"~lib/map/Map#constructor" - local.tee $map - i32.store + i32.const 0 + i32.const 0 + global.set $~argumentsLength + i32.const 0 + call $"~lib/map/Map#constructor@varargs" + local.tee $map + i32.store + f64.const 0 + local.set $k + loop $for-loop|0 + local.get $k + f64.const 100 + f64.lt + if + local.get $map + local.set $17 + global.get $~lib/memory/__stack_pointer + local.get $17 + i32.store offset=4 + local.get $17 + local.get $k + call $"~lib/map/Map#has" + i32.eqz + i32.eqz + if + i32.const 0 + i32.const 752 + i32.const 7 + i32.const 5 + call $~lib/builtins/abort + unreachable + end + local.get $map + local.set $17 + global.get $~lib/memory/__stack_pointer + local.get $17 + i32.store offset=4 + local.get $17 + local.get $k + i32.const 10 + local.get $k + i32.trunc_sat_f64_s + i32.add + call $"~lib/map/Map#set" + drop + local.get $map + local.set $17 + global.get $~lib/memory/__stack_pointer + local.get $17 + i32.store offset=4 + local.get $17 + local.get $k + call $"~lib/map/Map#has" + i32.eqz + if + i32.const 0 + i32.const 752 + i32.const 9 + i32.const 5 + call $~lib/builtins/abort + unreachable + end + local.get $map + local.set $17 + global.get $~lib/memory/__stack_pointer + local.get $17 + i32.store offset=4 + local.get $17 + local.get $k + call $"~lib/map/Map#get" + i32.const 10 + local.get $k + i32.trunc_sat_f64_s + i32.add + i32.eq + i32.eqz + if + i32.const 0 + i32.const 752 + i32.const 10 + i32.const 5 + call $~lib/builtins/abort + unreachable + end + local.get $k + f64.const 1 + f64.add + local.set $k + br $for-loop|0 + end + end + local.get $map + local.set $17 + global.get $~lib/memory/__stack_pointer + local.get $17 + i32.store offset=4 + local.get $17 + call $"~lib/map/Map#get:size" + i32.const 100 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 752 + i32.const 12 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + f64.const 0 + local.set $k|2 + loop $for-loop|1 + local.get $k|2 + f64.const 100 + f64.lt + if + local.get $map + local.set $17 + global.get $~lib/memory/__stack_pointer + local.get $17 + i32.store offset=4 + local.get $17 + local.get $k|2 + call $"~lib/map/Map#has" + i32.eqz + if + i32.const 0 + i32.const 752 + i32.const 16 + i32.const 5 + call $~lib/builtins/abort + unreachable + end + local.get $map + local.set $17 + global.get $~lib/memory/__stack_pointer + local.get $17 + i32.store offset=4 + local.get $17 + local.get $k|2 + call $"~lib/map/Map#get" + i32.const 10 + local.get $k|2 + i32.trunc_sat_f64_s + i32.add + i32.eq + i32.eqz + if + i32.const 0 + i32.const 752 + i32.const 17 + i32.const 5 + call $~lib/builtins/abort + unreachable + end + local.get $map + local.set $17 + global.get $~lib/memory/__stack_pointer + local.get $17 + i32.store offset=4 + local.get $17 + local.get $k|2 + i32.const 20 + local.get $k|2 + i32.trunc_sat_f64_s + i32.add + call $"~lib/map/Map#set" + drop + local.get $map + local.set $17 + global.get $~lib/memory/__stack_pointer + local.get $17 + i32.store offset=4 + local.get $17 + local.get $k|2 + call $"~lib/map/Map#has" + i32.eqz + if + i32.const 0 + i32.const 752 + i32.const 19 + i32.const 5 + call $~lib/builtins/abort + unreachable + end + local.get $map + local.set $17 + global.get $~lib/memory/__stack_pointer + local.get $17 + i32.store offset=4 + local.get $17 + local.get $k|2 + call $"~lib/map/Map#get" + i32.const 20 + local.get $k|2 + i32.trunc_sat_f64_s + i32.add + i32.eq + i32.eqz + if + i32.const 0 + i32.const 752 + i32.const 20 + i32.const 5 + call $~lib/builtins/abort + unreachable + end + local.get $k|2 + f64.const 1 + f64.add + local.set $k|2 + br $for-loop|1 + end + end + local.get $map + local.set $17 + global.get $~lib/memory/__stack_pointer + local.get $17 + i32.store offset=4 + local.get $17 + call $"~lib/map/Map#get:size" + i32.const 100 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 752 + i32.const 22 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + local.get $map + local.set $17 + global.get $~lib/memory/__stack_pointer + local.get $17 + i32.store offset=4 + local.get $17 + call $"~lib/map/Map#keys" + local.tee $keys + i32.store offset=8 + global.get $~lib/memory/__stack_pointer + local.get $map + local.set $17 + global.get $~lib/memory/__stack_pointer + local.get $17 + i32.store offset=4 + local.get $17 + call $"~lib/map/Map#values" + local.tee $vals + i32.store offset=12 + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.const 0 + global.set $~argumentsLength + i32.const 0 + call $"~lib/map/Map#constructor@varargs" + local.tee $keyMap + i32.store offset=16 + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.const 0 + global.set $~argumentsLength + i32.const 0 + call $"~lib/map/Map#constructor@varargs" + local.tee $valMap + i32.store offset=20 + i32.const 0 + local.set $index + loop $for-loop|2 + local.get $index + local.get $keys + local.set $17 + global.get $~lib/memory/__stack_pointer + local.get $17 + i32.store offset=4 + local.get $17 + call $~lib/array/Array#get:length + i32.lt_s + if + local.get $keys + local.set $17 + global.get $~lib/memory/__stack_pointer + local.get $17 + i32.store offset=4 + local.get $17 + local.get $index + call $~lib/array/Array#__get + local.set $key + local.get $vals + local.set $17 + global.get $~lib/memory/__stack_pointer + local.get $17 + i32.store offset=4 + local.get $17 + local.get $index + call $~lib/array/Array#__get + local.set $value + local.get $map + local.set $17 + global.get $~lib/memory/__stack_pointer + local.get $17 + i32.store offset=4 + local.get $17 + local.get $key + call $"~lib/map/Map#has" + i32.eqz + if + i32.const 0 + i32.const 752 + i32.const 32 + i32.const 5 + call $~lib/builtins/abort + unreachable + end + local.get $map + local.set $17 + global.get $~lib/memory/__stack_pointer + local.get $17 + i32.store offset=4 + local.get $17 + local.get $value + i32.const 20 + i32.sub + f64.convert_i32_s + call $"~lib/map/Map#has" + i32.eqz + if + i32.const 0 + i32.const 752 + i32.const 33 + i32.const 5 + call $~lib/builtins/abort + unreachable + end + local.get $keyMap + local.set $17 + global.get $~lib/memory/__stack_pointer + local.get $17 + i32.store offset=4 + local.get $17 + local.get $key + local.get $key + call $"~lib/map/Map#set" + drop + local.get $valMap + local.set $17 + global.get $~lib/memory/__stack_pointer + local.get $17 + i32.store offset=4 + local.get $17 + local.get $value + i32.const 20 + i32.sub + local.get $value + i32.const 20 + i32.sub + call $"~lib/map/Map#set" + drop + local.get $index + i32.const 1 + i32.add + local.set $index + br $for-loop|2 + end + end + local.get $keyMap + local.set $17 + global.get $~lib/memory/__stack_pointer + local.get $17 + i32.store offset=4 + local.get $17 + call $"~lib/map/Map#get:size" + i32.const 100 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 752 + i32.const 37 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $valMap + local.set $17 + global.get $~lib/memory/__stack_pointer + local.get $17 + i32.store offset=4 + local.get $17 + call $"~lib/map/Map#get:size" + i32.const 100 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 752 + i32.const 38 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + f64.const 0 + local.set $k|10 + loop $for-loop|3 + local.get $k|10 + f64.const 50 + f64.lt + if + local.get $map + local.set $17 + global.get $~lib/memory/__stack_pointer + local.get $17 + i32.store offset=4 + local.get $17 + local.get $k|10 + call $"~lib/map/Map#has" + i32.eqz + if + i32.const 0 + i32.const 752 + i32.const 42 + i32.const 5 + call $~lib/builtins/abort + unreachable + end + local.get $map + local.set $17 + global.get $~lib/memory/__stack_pointer + local.get $17 + i32.store offset=4 + local.get $17 + local.get $k|10 + call $"~lib/map/Map#get" + i32.const 20 + local.get $k|10 + i32.trunc_sat_f64_s + i32.add + i32.eq + i32.eqz + if + i32.const 0 + i32.const 752 + i32.const 43 + i32.const 5 + call $~lib/builtins/abort + unreachable + end + local.get $map + local.set $17 + global.get $~lib/memory/__stack_pointer + local.get $17 + i32.store offset=4 + local.get $17 + local.get $k|10 + call $"~lib/map/Map#delete" + drop + local.get $map + local.set $17 + global.get $~lib/memory/__stack_pointer + local.get $17 + i32.store offset=4 + local.get $17 + local.get $k|10 + call $"~lib/map/Map#has" + i32.eqz + i32.eqz + if + i32.const 0 + i32.const 752 + i32.const 45 + i32.const 5 + call $~lib/builtins/abort + unreachable + end + local.get $k|10 + f64.const 1 + f64.add + local.set $k|10 + br $for-loop|3 + end + end + local.get $map + local.set $17 + global.get $~lib/memory/__stack_pointer + local.get $17 + i32.store offset=4 + local.get $17 + call $"~lib/map/Map#get:size" + i32.const 50 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 752 + i32.const 47 + i32.const 3 + call $~lib/builtins/abort + unreachable + end f64.const 0 - local.set $k - loop $for-loop|0 - local.get $k - f64.const 100 + local.set $k|11 + loop $for-loop|4 + local.get $k|11 + f64.const 50 f64.lt if local.get $map - local.set $12 + local.set $17 global.get $~lib/memory/__stack_pointer - local.get $12 + local.get $17 i32.store offset=4 - local.get $12 - local.get $k + local.get $17 + local.get $k|11 call $"~lib/map/Map#has" i32.eqz i32.eqz if i32.const 0 - i32.const 544 - i32.const 6 + i32.const 752 + i32.const 51 i32.const 5 call $~lib/builtins/abort unreachable end local.get $map - local.set $12 + local.set $17 global.get $~lib/memory/__stack_pointer - local.get $12 + local.get $17 i32.store offset=4 - local.get $12 - local.get $k + local.get $17 + local.get $k|11 i32.const 10 - local.get $k + local.get $k|11 i32.trunc_sat_f64_s i32.add call $"~lib/map/Map#set" drop local.get $map - local.set $12 + local.set $17 global.get $~lib/memory/__stack_pointer - local.get $12 + local.get $17 i32.store offset=4 - local.get $12 - local.get $k + local.get $17 + local.get $k|11 call $"~lib/map/Map#has" i32.eqz if i32.const 0 - i32.const 544 - i32.const 8 + i32.const 752 + i32.const 53 i32.const 5 call $~lib/builtins/abort unreachable end local.get $map - local.set $12 + local.set $17 global.get $~lib/memory/__stack_pointer - local.get $12 + local.get $17 i32.store offset=4 - local.get $12 - local.get $k - call $"~lib/map/Map#get" - i32.const 10 - local.get $k - i32.trunc_sat_f64_s - i32.add - i32.eq + local.get $17 + local.get $k|11 + call $"~lib/map/Map#delete" + drop + local.get $map + local.set $17 + global.get $~lib/memory/__stack_pointer + local.get $17 + i32.store offset=4 + local.get $17 + local.get $k|11 + call $"~lib/map/Map#has" + i32.eqz i32.eqz if i32.const 0 - i32.const 544 - i32.const 9 + i32.const 752 + i32.const 55 i32.const 5 call $~lib/builtins/abort unreachable end - local.get $k + local.get $k|11 f64.const 1 f64.add - local.set $k - br $for-loop|0 + local.set $k|11 + br $for-loop|4 end end local.get $map - local.set $12 + local.set $17 global.get $~lib/memory/__stack_pointer - local.get $12 + local.get $17 i32.store offset=4 - local.get $12 + local.get $17 + call $"~lib/map/Map#get:size" + i32.const 50 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 752 + i32.const 57 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $map + local.set $17 + global.get $~lib/memory/__stack_pointer + local.get $17 + i32.store offset=4 + local.get $17 + call $"~lib/map/Map#clear" + local.get $map + local.set $17 + global.get $~lib/memory/__stack_pointer + local.get $17 + i32.store offset=4 + local.get $17 + call $"~lib/map/Map#get:size" + i32.const 0 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 752 + i32.const 61 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.const 2 + i32.const 66 + i32.const 1776 + call $~lib/rt/__newArray + local.tee $initialEntries + i32.store offset=24 + f64.const 0 + local.set $k|14 + loop $for-loop|5 + local.get $k|14 + f64.const 100 + f64.lt + if + local.get $initialEntries + local.set $17 + global.get $~lib/memory/__stack_pointer + local.get $17 + i32.store offset=4 + local.get $17 + global.get $~lib/memory/__stack_pointer + i32.const 0 + call $"~lib/map/KeyValue#constructor" + local.tee $15 + i32.store offset=32 + local.get $15 + local.set $17 + global.get $~lib/memory/__stack_pointer + local.get $17 + i32.store offset=36 + local.get $17 + local.get $k|14 + call $"~lib/map/KeyValue#set:key" + local.get $15 + local.set $17 + global.get $~lib/memory/__stack_pointer + local.get $17 + i32.store offset=36 + local.get $17 + i32.const 10 + local.get $k|14 + i32.trunc_sat_f64_s + i32.add + call $"~lib/map/KeyValue#set:value" + local.get $15 + local.set $17 + global.get $~lib/memory/__stack_pointer + local.get $17 + i32.store offset=28 + local.get $17 + call $"~lib/array/Array<~lib/map/KeyValue>#push" + drop + local.get $k|14 + f64.const 1 + f64.add + local.set $k|14 + br $for-loop|5 + end + end + global.get $~lib/memory/__stack_pointer + i32.const 0 + local.get $initialEntries + local.set $17 + global.get $~lib/memory/__stack_pointer + local.get $17 + i32.store offset=4 + local.get $17 + call $"~lib/map/Map#constructor" + local.tee $map + i32.store + local.get $map + local.set $17 + global.get $~lib/memory/__stack_pointer + local.get $17 + i32.store offset=4 + local.get $17 call $"~lib/map/Map#get:size" i32.const 100 i32.eq i32.eqz if i32.const 0 - i32.const 544 - i32.const 11 + i32.const 752 + i32.const 74 i32.const 3 call $~lib/builtins/abort unreachable end f64.const 0 - local.set $k|2 - loop $for-loop|1 - local.get $k|2 + local.set $k|16 + loop $for-loop|6 + local.get $k|16 f64.const 100 f64.lt if local.get $map - local.set $12 + local.set $17 global.get $~lib/memory/__stack_pointer - local.get $12 + local.get $17 i32.store offset=4 - local.get $12 - local.get $k|2 + local.get $17 + local.get $k|16 call $"~lib/map/Map#has" i32.eqz if i32.const 0 - i32.const 544 - i32.const 15 + i32.const 752 + i32.const 76 i32.const 5 call $~lib/builtins/abort unreachable end local.get $map - local.set $12 + local.set $17 global.get $~lib/memory/__stack_pointer - local.get $12 + local.get $17 i32.store offset=4 - local.get $12 - local.get $k|2 + local.get $17 + local.get $k|16 call $"~lib/map/Map#get" i32.const 10 - local.get $k|2 + local.get $k|16 i32.trunc_sat_f64_s i32.add i32.eq i32.eqz if i32.const 0 - i32.const 544 - i32.const 16 + i32.const 752 + i32.const 77 i32.const 5 call $~lib/builtins/abort unreachable end local.get $map - local.set $12 + local.set $17 global.get $~lib/memory/__stack_pointer - local.get $12 + local.get $17 i32.store offset=4 - local.get $12 - local.get $k|2 - i32.const 20 - local.get $k|2 - i32.trunc_sat_f64_s - i32.add - call $"~lib/map/Map#set" + local.get $17 + local.get $k|16 + call $"~lib/map/Map#delete" drop local.get $map - local.set $12 + local.set $17 global.get $~lib/memory/__stack_pointer - local.get $12 + local.get $17 i32.store offset=4 - local.get $12 - local.get $k|2 + local.get $17 + local.get $k|16 call $"~lib/map/Map#has" i32.eqz + i32.eqz if i32.const 0 - i32.const 544 - i32.const 18 + i32.const 752 + i32.const 79 i32.const 5 call $~lib/builtins/abort unreachable end - local.get $map - local.set $12 - global.get $~lib/memory/__stack_pointer - local.get $12 - i32.store offset=4 - local.get $12 - local.get $k|2 - call $"~lib/map/Map#get" - i32.const 20 - local.get $k|2 - i32.trunc_sat_f64_s + local.get $k|16 + f64.const 1 + f64.add + local.set $k|16 + br $for-loop|6 + end + end + local.get $map + local.set $17 + global.get $~lib/memory/__stack_pointer + local.get $17 + i32.store offset=4 + local.get $17 + call $"~lib/map/Map#get:size" + i32.const 0 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 752 + i32.const 81 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + i32.const 40 + i32.add + global.set $~lib/memory/__stack_pointer + ) + (func $"~lib/map/Map#__visit" (param $this i32) (param $cookie i32) + (local $entries i32) + (local $3 i32) + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.sub + global.set $~lib/memory/__stack_pointer + call $~stack_check + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store + local.get $this + local.set $3 + global.get $~lib/memory/__stack_pointer + local.get $3 + i32.store + local.get $3 + call $"~lib/map/Map#get:buckets" + local.get $cookie + call $~lib/rt/itcms/__visit + local.get $this + local.set $3 + global.get $~lib/memory/__stack_pointer + local.get $3 + i32.store + local.get $3 + call $"~lib/map/Map#get:entries" + local.set $entries + i32.const 0 + drop + local.get $entries + local.get $cookie + call $~lib/rt/itcms/__visit + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + ) + (func $"~lib/array/Array<~lib/map/KeyValue>#__visit" (param $this i32) (param $cookie i32) + (local $cur i32) + (local $end i32) + (local $val i32) + (local $5 i32) + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.sub + global.set $~lib/memory/__stack_pointer + call $~stack_check + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store + i32.const 1 + drop + local.get $this + local.set $5 + global.get $~lib/memory/__stack_pointer + local.get $5 + i32.store + local.get $5 + call $"~lib/array/Array<~lib/map/KeyValue>#get:dataStart" + local.set $cur + local.get $cur + local.get $this + local.set $5 + global.get $~lib/memory/__stack_pointer + local.get $5 + i32.store + local.get $5 + call $"~lib/array/Array<~lib/map/KeyValue>#get:length_" + i32.const 2 + i32.shl + i32.add + local.set $end + loop $while-continue|0 + local.get $cur + local.get $end + i32.lt_u + if + local.get $cur + i32.load + local.set $val + local.get $val + if + local.get $val + local.get $cookie + call $~lib/rt/itcms/__visit + end + local.get $cur + i32.const 4 i32.add - i32.eq - i32.eqz + local.set $cur + br $while-continue|0 + end + end + local.get $this + local.set $5 + global.get $~lib/memory/__stack_pointer + local.get $5 + i32.store + local.get $5 + call $"~lib/array/Array<~lib/map/KeyValue>#get:buffer" + local.get $cookie + call $~lib/rt/itcms/__visit + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + ) + (func $~lib/array/Array#__visit (param $this i32) (param $cookie i32) + (local $2 i32) + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.sub + global.set $~lib/memory/__stack_pointer + call $~stack_check + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store + i32.const 0 + drop + local.get $this + local.set $2 + global.get $~lib/memory/__stack_pointer + local.get $2 + i32.store + local.get $2 + call $~lib/array/Array#get:buffer + local.get $cookie + call $~lib/rt/itcms/__visit + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + ) + (func $~lib/array/Array#__visit (param $this i32) (param $cookie i32) + (local $2 i32) + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.sub + global.set $~lib/memory/__stack_pointer + call $~stack_check + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store + i32.const 0 + drop + local.get $this + local.set $2 + global.get $~lib/memory/__stack_pointer + local.get $2 + i32.store + local.get $2 + call $~lib/array/Array#get:buffer + local.get $cookie + call $~lib/rt/itcms/__visit + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + ) + (func $"~lib/map/Map#__visit" (param $this i32) (param $cookie i32) + (local $entries i32) + (local $3 i32) + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.sub + global.set $~lib/memory/__stack_pointer + call $~stack_check + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store + local.get $this + local.set $3 + global.get $~lib/memory/__stack_pointer + local.get $3 + i32.store + local.get $3 + call $"~lib/map/Map#get:buckets" + local.get $cookie + call $~lib/rt/itcms/__visit + local.get $this + local.set $3 + global.get $~lib/memory/__stack_pointer + local.get $3 + i32.store + local.get $3 + call $"~lib/map/Map#get:entries" + local.set $entries + i32.const 0 + drop + local.get $entries + local.get $cookie + call $~lib/rt/itcms/__visit + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + ) + (func $"~lib/array/Array<~lib/map/KeyValue>#__visit" (param $this i32) (param $cookie i32) + (local $cur i32) + (local $end i32) + (local $val i32) + (local $5 i32) + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.sub + global.set $~lib/memory/__stack_pointer + call $~stack_check + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store + i32.const 1 + drop + local.get $this + local.set $5 + global.get $~lib/memory/__stack_pointer + local.get $5 + i32.store + local.get $5 + call $"~lib/array/Array<~lib/map/KeyValue>#get:dataStart" + local.set $cur + local.get $cur + local.get $this + local.set $5 + global.get $~lib/memory/__stack_pointer + local.get $5 + i32.store + local.get $5 + call $"~lib/array/Array<~lib/map/KeyValue>#get:length_" + i32.const 2 + i32.shl + i32.add + local.set $end + loop $while-continue|0 + local.get $cur + local.get $end + i32.lt_u + if + local.get $cur + i32.load + local.set $val + local.get $val if - i32.const 0 - i32.const 544 - i32.const 19 - i32.const 5 - call $~lib/builtins/abort - unreachable + local.get $val + local.get $cookie + call $~lib/rt/itcms/__visit + end + local.get $cur + i32.const 4 + i32.add + local.set $cur + br $while-continue|0 + end + end + local.get $this + local.set $5 + global.get $~lib/memory/__stack_pointer + local.get $5 + i32.store + local.get $5 + call $"~lib/array/Array<~lib/map/KeyValue>#get:buffer" + local.get $cookie + call $~lib/rt/itcms/__visit + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + ) + (func $"~lib/map/Map#__visit" (param $this i32) (param $cookie i32) + (local $entries i32) + (local $3 i32) + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.sub + global.set $~lib/memory/__stack_pointer + call $~stack_check + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store + local.get $this + local.set $3 + global.get $~lib/memory/__stack_pointer + local.get $3 + i32.store + local.get $3 + call $"~lib/map/Map#get:buckets" + local.get $cookie + call $~lib/rt/itcms/__visit + local.get $this + local.set $3 + global.get $~lib/memory/__stack_pointer + local.get $3 + i32.store + local.get $3 + call $"~lib/map/Map#get:entries" + local.set $entries + i32.const 0 + drop + local.get $entries + local.get $cookie + call $~lib/rt/itcms/__visit + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + ) + (func $"~lib/array/Array<~lib/map/KeyValue>#__visit" (param $this i32) (param $cookie i32) + (local $cur i32) + (local $end i32) + (local $val i32) + (local $5 i32) + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.sub + global.set $~lib/memory/__stack_pointer + call $~stack_check + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store + i32.const 1 + drop + local.get $this + local.set $5 + global.get $~lib/memory/__stack_pointer + local.get $5 + i32.store + local.get $5 + call $"~lib/array/Array<~lib/map/KeyValue>#get:dataStart" + local.set $cur + local.get $cur + local.get $this + local.set $5 + global.get $~lib/memory/__stack_pointer + local.get $5 + i32.store + local.get $5 + call $"~lib/array/Array<~lib/map/KeyValue>#get:length_" + i32.const 2 + i32.shl + i32.add + local.set $end + loop $while-continue|0 + local.get $cur + local.get $end + i32.lt_u + if + local.get $cur + i32.load + local.set $val + local.get $val + if + local.get $val + local.get $cookie + call $~lib/rt/itcms/__visit end - local.get $k|2 - f64.const 1 - f64.add - local.set $k|2 - br $for-loop|1 + local.get $cur + i32.const 4 + i32.add + local.set $cur + br $while-continue|0 end end - local.get $map - local.set $12 + local.get $this + local.set $5 global.get $~lib/memory/__stack_pointer - local.get $12 - i32.store offset=4 - local.get $12 - call $"~lib/map/Map#get:size" - i32.const 100 - i32.eq - i32.eqz - if - i32.const 0 - i32.const 544 - i32.const 21 - i32.const 3 - call $~lib/builtins/abort - unreachable - end + local.get $5 + i32.store + local.get $5 + call $"~lib/array/Array<~lib/map/KeyValue>#get:buffer" + local.get $cookie + call $~lib/rt/itcms/__visit global.get $~lib/memory/__stack_pointer - local.get $map - local.set $12 + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + ) + (func $"~lib/map/Map#__visit" (param $this i32) (param $cookie i32) + (local $entries i32) + (local $3 i32) global.get $~lib/memory/__stack_pointer - local.get $12 - i32.store offset=4 - local.get $12 - call $"~lib/map/Map#keys" - local.tee $keys - i32.store offset=8 + i32.const 4 + i32.sub + global.set $~lib/memory/__stack_pointer + call $~stack_check global.get $~lib/memory/__stack_pointer - local.get $map - local.set $12 + i32.const 0 + i32.store + local.get $this + local.set $3 global.get $~lib/memory/__stack_pointer - local.get $12 - i32.store offset=4 - local.get $12 - call $"~lib/map/Map#values" - local.tee $vals - i32.store offset=12 + local.get $3 + i32.store + local.get $3 + call $"~lib/map/Map#get:buckets" + local.get $cookie + call $~lib/rt/itcms/__visit + local.get $this + local.set $3 global.get $~lib/memory/__stack_pointer + local.get $3 + i32.store + local.get $3 + call $"~lib/map/Map#get:entries" + local.set $entries i32.const 0 - call $"~lib/map/Map#constructor" - local.tee $keyMap - i32.store offset=16 + drop + local.get $entries + local.get $cookie + call $~lib/rt/itcms/__visit + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + ) + (func $"~lib/array/Array<~lib/map/KeyValue>#__visit" (param $this i32) (param $cookie i32) + (local $cur i32) + (local $end i32) + (local $val i32) + (local $5 i32) + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.sub + global.set $~lib/memory/__stack_pointer + call $~stack_check global.get $~lib/memory/__stack_pointer i32.const 0 - call $"~lib/map/Map#constructor" - local.tee $valMap - i32.store offset=20 - i32.const 0 - local.set $index - loop $for-loop|2 - local.get $index - local.get $keys - local.set $12 - global.get $~lib/memory/__stack_pointer - local.get $12 - i32.store offset=4 - local.get $12 - call $~lib/array/Array#get:length - i32.lt_s - if - local.get $keys - local.set $12 - global.get $~lib/memory/__stack_pointer - local.get $12 - i32.store offset=4 - local.get $12 - local.get $index - call $~lib/array/Array#__get - local.set $key - local.get $vals - local.set $12 - global.get $~lib/memory/__stack_pointer - local.get $12 - i32.store offset=4 - local.get $12 - local.get $index - call $~lib/array/Array#__get - local.set $value - local.get $map - local.set $12 - global.get $~lib/memory/__stack_pointer - local.get $12 - i32.store offset=4 - local.get $12 - local.get $key - call $"~lib/map/Map#has" - i32.eqz - if - i32.const 0 - i32.const 544 - i32.const 31 - i32.const 5 - call $~lib/builtins/abort - unreachable - end - local.get $map - local.set $12 - global.get $~lib/memory/__stack_pointer - local.get $12 - i32.store offset=4 - local.get $12 - local.get $value - i32.const 20 - i32.sub - f64.convert_i32_s - call $"~lib/map/Map#has" - i32.eqz - if - i32.const 0 - i32.const 544 - i32.const 32 - i32.const 5 - call $~lib/builtins/abort - unreachable - end - local.get $keyMap - local.set $12 - global.get $~lib/memory/__stack_pointer - local.get $12 - i32.store offset=4 - local.get $12 - local.get $key - local.get $key - call $"~lib/map/Map#set" - drop - local.get $valMap - local.set $12 - global.get $~lib/memory/__stack_pointer - local.get $12 - i32.store offset=4 - local.get $12 - local.get $value - i32.const 20 - i32.sub - local.get $value - i32.const 20 - i32.sub - call $"~lib/map/Map#set" - drop - local.get $index - i32.const 1 - i32.add - local.set $index - br $for-loop|2 - end - end - local.get $keyMap - local.set $12 + i32.store + i32.const 1 + drop + local.get $this + local.set $5 global.get $~lib/memory/__stack_pointer - local.get $12 - i32.store offset=4 - local.get $12 - call $"~lib/map/Map#get:size" - i32.const 100 - i32.eq - i32.eqz - if - i32.const 0 - i32.const 544 - i32.const 36 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - local.get $valMap - local.set $12 + local.get $5 + i32.store + local.get $5 + call $"~lib/array/Array<~lib/map/KeyValue>#get:dataStart" + local.set $cur + local.get $cur + local.get $this + local.set $5 global.get $~lib/memory/__stack_pointer - local.get $12 - i32.store offset=4 - local.get $12 - call $"~lib/map/Map#get:size" - i32.const 100 - i32.eq - i32.eqz - if - i32.const 0 - i32.const 544 - i32.const 37 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - f64.const 0 - local.set $k|10 - loop $for-loop|3 - local.get $k|10 - f64.const 50 - f64.lt + local.get $5 + i32.store + local.get $5 + call $"~lib/array/Array<~lib/map/KeyValue>#get:length_" + i32.const 2 + i32.shl + i32.add + local.set $end + loop $while-continue|0 + local.get $cur + local.get $end + i32.lt_u if - local.get $map - local.set $12 - global.get $~lib/memory/__stack_pointer - local.get $12 - i32.store offset=4 - local.get $12 - local.get $k|10 - call $"~lib/map/Map#has" - i32.eqz + local.get $cur + i32.load + local.set $val + local.get $val if - i32.const 0 - i32.const 544 - i32.const 41 - i32.const 5 - call $~lib/builtins/abort - unreachable + local.get $val + local.get $cookie + call $~lib/rt/itcms/__visit end - local.get $map - local.set $12 - global.get $~lib/memory/__stack_pointer - local.get $12 - i32.store offset=4 - local.get $12 - local.get $k|10 - call $"~lib/map/Map#get" - i32.const 20 - local.get $k|10 - i32.trunc_sat_f64_s + local.get $cur + i32.const 4 i32.add - i32.eq - i32.eqz - if - i32.const 0 - i32.const 544 - i32.const 42 - i32.const 5 - call $~lib/builtins/abort - unreachable - end - local.get $map - local.set $12 - global.get $~lib/memory/__stack_pointer - local.get $12 - i32.store offset=4 - local.get $12 - local.get $k|10 - call $"~lib/map/Map#delete" - drop - local.get $map - local.set $12 - global.get $~lib/memory/__stack_pointer - local.get $12 - i32.store offset=4 - local.get $12 - local.get $k|10 - call $"~lib/map/Map#has" - i32.eqz - i32.eqz - if - i32.const 0 - i32.const 544 - i32.const 44 - i32.const 5 - call $~lib/builtins/abort - unreachable - end - local.get $k|10 - f64.const 1 - f64.add - local.set $k|10 - br $for-loop|3 + local.set $cur + br $while-continue|0 end end - local.get $map - local.set $12 + local.get $this + local.set $5 global.get $~lib/memory/__stack_pointer - local.get $12 - i32.store offset=4 - local.get $12 - call $"~lib/map/Map#get:size" - i32.const 50 - i32.eq - i32.eqz - if - i32.const 0 - i32.const 544 - i32.const 46 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - f64.const 0 - local.set $k|11 - loop $for-loop|4 - local.get $k|11 - f64.const 50 - f64.lt + local.get $5 + i32.store + local.get $5 + call $"~lib/array/Array<~lib/map/KeyValue>#get:buffer" + local.get $cookie + call $~lib/rt/itcms/__visit + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + ) + (func $~lib/array/Array#__visit (param $this i32) (param $cookie i32) + (local $2 i32) + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.sub + global.set $~lib/memory/__stack_pointer + call $~stack_check + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store + i32.const 0 + drop + local.get $this + local.set $2 + global.get $~lib/memory/__stack_pointer + local.get $2 + i32.store + local.get $2 + call $~lib/array/Array#get:buffer + local.get $cookie + call $~lib/rt/itcms/__visit + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + ) + (func $"~lib/map/Map#__visit" (param $this i32) (param $cookie i32) + (local $entries i32) + (local $3 i32) + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.sub + global.set $~lib/memory/__stack_pointer + call $~stack_check + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store + local.get $this + local.set $3 + global.get $~lib/memory/__stack_pointer + local.get $3 + i32.store + local.get $3 + call $"~lib/map/Map#get:buckets" + local.get $cookie + call $~lib/rt/itcms/__visit + local.get $this + local.set $3 + global.get $~lib/memory/__stack_pointer + local.get $3 + i32.store + local.get $3 + call $"~lib/map/Map#get:entries" + local.set $entries + i32.const 0 + drop + local.get $entries + local.get $cookie + call $~lib/rt/itcms/__visit + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + ) + (func $"~lib/array/Array<~lib/map/KeyValue>#__visit" (param $this i32) (param $cookie i32) + (local $cur i32) + (local $end i32) + (local $val i32) + (local $5 i32) + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.sub + global.set $~lib/memory/__stack_pointer + call $~stack_check + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store + i32.const 1 + drop + local.get $this + local.set $5 + global.get $~lib/memory/__stack_pointer + local.get $5 + i32.store + local.get $5 + call $"~lib/array/Array<~lib/map/KeyValue>#get:dataStart" + local.set $cur + local.get $cur + local.get $this + local.set $5 + global.get $~lib/memory/__stack_pointer + local.get $5 + i32.store + local.get $5 + call $"~lib/array/Array<~lib/map/KeyValue>#get:length_" + i32.const 2 + i32.shl + i32.add + local.set $end + loop $while-continue|0 + local.get $cur + local.get $end + i32.lt_u if - local.get $map - local.set $12 - global.get $~lib/memory/__stack_pointer - local.get $12 - i32.store offset=4 - local.get $12 - local.get $k|11 - call $"~lib/map/Map#has" - i32.eqz - i32.eqz - if - i32.const 0 - i32.const 544 - i32.const 50 - i32.const 5 - call $~lib/builtins/abort - unreachable - end - local.get $map - local.set $12 - global.get $~lib/memory/__stack_pointer - local.get $12 - i32.store offset=4 - local.get $12 - local.get $k|11 - i32.const 10 - local.get $k|11 - i32.trunc_sat_f64_s - i32.add - call $"~lib/map/Map#set" - drop - local.get $map - local.set $12 - global.get $~lib/memory/__stack_pointer - local.get $12 - i32.store offset=4 - local.get $12 - local.get $k|11 - call $"~lib/map/Map#has" - i32.eqz - if - i32.const 0 - i32.const 544 - i32.const 52 - i32.const 5 - call $~lib/builtins/abort - unreachable - end - local.get $map - local.set $12 - global.get $~lib/memory/__stack_pointer - local.get $12 - i32.store offset=4 - local.get $12 - local.get $k|11 - call $"~lib/map/Map#delete" - drop - local.get $map - local.set $12 - global.get $~lib/memory/__stack_pointer - local.get $12 - i32.store offset=4 - local.get $12 - local.get $k|11 - call $"~lib/map/Map#has" - i32.eqz - i32.eqz + local.get $cur + i32.load + local.set $val + local.get $val if - i32.const 0 - i32.const 544 - i32.const 54 - i32.const 5 - call $~lib/builtins/abort - unreachable + local.get $val + local.get $cookie + call $~lib/rt/itcms/__visit end - local.get $k|11 - f64.const 1 - f64.add - local.set $k|11 - br $for-loop|4 + local.get $cur + i32.const 4 + i32.add + local.set $cur + br $while-continue|0 end end - local.get $map - local.set $12 - global.get $~lib/memory/__stack_pointer - local.get $12 - i32.store offset=4 - local.get $12 - call $"~lib/map/Map#get:size" - i32.const 50 - i32.eq - i32.eqz - if - i32.const 0 - i32.const 544 - i32.const 56 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - local.get $map - local.set $12 - global.get $~lib/memory/__stack_pointer - local.get $12 - i32.store offset=4 - local.get $12 - call $"~lib/map/Map#clear" - local.get $map - local.set $12 + local.get $this + local.set $5 global.get $~lib/memory/__stack_pointer - local.get $12 - i32.store offset=4 - local.get $12 - call $"~lib/map/Map#get:size" - i32.const 0 - i32.eq - i32.eqz - if - i32.const 0 - i32.const 544 - i32.const 60 - i32.const 3 - call $~lib/builtins/abort - unreachable - end + local.get $5 + i32.store + local.get $5 + call $"~lib/array/Array<~lib/map/KeyValue>#get:buffer" + local.get $cookie + call $~lib/rt/itcms/__visit global.get $~lib/memory/__stack_pointer - i32.const 24 + i32.const 4 i32.add global.set $~lib/memory/__stack_pointer ) - (func $"~lib/map/Map#__visit" (param $this i32) (param $cookie i32) + (func $"~lib/map/Map#__visit" (param $this i32) (param $cookie i32) (local $entries i32) (local $3 i32) global.get $~lib/memory/__stack_pointer @@ -32006,7 +43518,7 @@ local.get $3 i32.store local.get $3 - call $"~lib/map/Map#get:buckets" + call $"~lib/map/Map#get:buckets" local.get $cookie call $~lib/rt/itcms/__visit local.get $this @@ -32015,7 +43527,7 @@ local.get $3 i32.store local.get $3 - call $"~lib/map/Map#get:entries" + call $"~lib/map/Map#get:entries" local.set $entries i32.const 0 drop @@ -32027,7 +43539,77 @@ i32.add global.set $~lib/memory/__stack_pointer ) - (func $~lib/array/Array#__visit (param $this i32) (param $cookie i32) + (func $"~lib/array/Array<~lib/map/KeyValue>#__visit" (param $this i32) (param $cookie i32) + (local $cur i32) + (local $end i32) + (local $val i32) + (local $5 i32) + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.sub + global.set $~lib/memory/__stack_pointer + call $~stack_check + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store + i32.const 1 + drop + local.get $this + local.set $5 + global.get $~lib/memory/__stack_pointer + local.get $5 + i32.store + local.get $5 + call $"~lib/array/Array<~lib/map/KeyValue>#get:dataStart" + local.set $cur + local.get $cur + local.get $this + local.set $5 + global.get $~lib/memory/__stack_pointer + local.get $5 + i32.store + local.get $5 + call $"~lib/array/Array<~lib/map/KeyValue>#get:length_" + i32.const 2 + i32.shl + i32.add + local.set $end + loop $while-continue|0 + local.get $cur + local.get $end + i32.lt_u + if + local.get $cur + i32.load + local.set $val + local.get $val + if + local.get $val + local.get $cookie + call $~lib/rt/itcms/__visit + end + local.get $cur + i32.const 4 + i32.add + local.set $cur + br $while-continue|0 + end + end + local.get $this + local.set $5 + global.get $~lib/memory/__stack_pointer + local.get $5 + i32.store + local.get $5 + call $"~lib/array/Array<~lib/map/KeyValue>#get:buffer" + local.get $cookie + call $~lib/rt/itcms/__visit + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + ) + (func $~lib/array/Array#__visit (param $this i32) (param $cookie i32) (local $2 i32) global.get $~lib/memory/__stack_pointer i32.const 4 @@ -32045,7 +43627,7 @@ local.get $2 i32.store local.get $2 - call $~lib/array/Array#get:buffer + call $~lib/array/Array#get:buffer local.get $cookie call $~lib/rt/itcms/__visit global.get $~lib/memory/__stack_pointer @@ -32053,8 +43635,9 @@ i32.add global.set $~lib/memory/__stack_pointer ) - (func $~lib/array/Array#__visit (param $this i32) (param $cookie i32) - (local $2 i32) + (func $"~lib/map/Map#__visit" (param $this i32) (param $cookie i32) + (local $entries i32) + (local $3 i32) global.get $~lib/memory/__stack_pointer i32.const 4 i32.sub @@ -32063,15 +43646,96 @@ global.get $~lib/memory/__stack_pointer i32.const 0 i32.store + local.get $this + local.set $3 + global.get $~lib/memory/__stack_pointer + local.get $3 + i32.store + local.get $3 + call $"~lib/map/Map#get:buckets" + local.get $cookie + call $~lib/rt/itcms/__visit + local.get $this + local.set $3 + global.get $~lib/memory/__stack_pointer + local.get $3 + i32.store + local.get $3 + call $"~lib/map/Map#get:entries" + local.set $entries + i32.const 0 + drop + local.get $entries + local.get $cookie + call $~lib/rt/itcms/__visit + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + ) + (func $"~lib/array/Array<~lib/map/KeyValue>#__visit" (param $this i32) (param $cookie i32) + (local $cur i32) + (local $end i32) + (local $val i32) + (local $5 i32) + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.sub + global.set $~lib/memory/__stack_pointer + call $~stack_check + global.get $~lib/memory/__stack_pointer i32.const 0 + i32.store + i32.const 1 drop local.get $this - local.set $2 + local.set $5 global.get $~lib/memory/__stack_pointer - local.get $2 + local.get $5 i32.store - local.get $2 - call $~lib/array/Array#get:buffer + local.get $5 + call $"~lib/array/Array<~lib/map/KeyValue>#get:dataStart" + local.set $cur + local.get $cur + local.get $this + local.set $5 + global.get $~lib/memory/__stack_pointer + local.get $5 + i32.store + local.get $5 + call $"~lib/array/Array<~lib/map/KeyValue>#get:length_" + i32.const 2 + i32.shl + i32.add + local.set $end + loop $while-continue|0 + local.get $cur + local.get $end + i32.lt_u + if + local.get $cur + i32.load + local.set $val + local.get $val + if + local.get $val + local.get $cookie + call $~lib/rt/itcms/__visit + end + local.get $cur + i32.const 4 + i32.add + local.set $cur + br $while-continue|0 + end + end + local.get $this + local.set $5 + global.get $~lib/memory/__stack_pointer + local.get $5 + i32.store + local.get $5 + call $"~lib/array/Array<~lib/map/KeyValue>#get:buffer" local.get $cookie call $~lib/rt/itcms/__visit global.get $~lib/memory/__stack_pointer @@ -32079,7 +43743,7 @@ i32.add global.set $~lib/memory/__stack_pointer ) - (func $"~lib/map/Map#__visit" (param $this i32) (param $cookie i32) + (func $"~lib/map/Map#__visit" (param $this i32) (param $cookie i32) (local $entries i32) (local $3 i32) global.get $~lib/memory/__stack_pointer @@ -32096,7 +43760,7 @@ local.get $3 i32.store local.get $3 - call $"~lib/map/Map#get:buckets" + call $"~lib/map/Map#get:buckets" local.get $cookie call $~lib/rt/itcms/__visit local.get $this @@ -32105,7 +43769,7 @@ local.get $3 i32.store local.get $3 - call $"~lib/map/Map#get:entries" + call $"~lib/map/Map#get:entries" local.set $entries i32.const 0 drop @@ -32117,7 +43781,103 @@ i32.add global.set $~lib/memory/__stack_pointer ) - (func $"~lib/map/Map#__visit" (param $this i32) (param $cookie i32) + (func $"~lib/array/Array<~lib/map/KeyValue>#__visit" (param $this i32) (param $cookie i32) + (local $cur i32) + (local $end i32) + (local $val i32) + (local $5 i32) + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.sub + global.set $~lib/memory/__stack_pointer + call $~stack_check + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store + i32.const 1 + drop + local.get $this + local.set $5 + global.get $~lib/memory/__stack_pointer + local.get $5 + i32.store + local.get $5 + call $"~lib/array/Array<~lib/map/KeyValue>#get:dataStart" + local.set $cur + local.get $cur + local.get $this + local.set $5 + global.get $~lib/memory/__stack_pointer + local.get $5 + i32.store + local.get $5 + call $"~lib/array/Array<~lib/map/KeyValue>#get:length_" + i32.const 2 + i32.shl + i32.add + local.set $end + loop $while-continue|0 + local.get $cur + local.get $end + i32.lt_u + if + local.get $cur + i32.load + local.set $val + local.get $val + if + local.get $val + local.get $cookie + call $~lib/rt/itcms/__visit + end + local.get $cur + i32.const 4 + i32.add + local.set $cur + br $while-continue|0 + end + end + local.get $this + local.set $5 + global.get $~lib/memory/__stack_pointer + local.get $5 + i32.store + local.get $5 + call $"~lib/array/Array<~lib/map/KeyValue>#get:buffer" + local.get $cookie + call $~lib/rt/itcms/__visit + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + ) + (func $~lib/array/Array#__visit (param $this i32) (param $cookie i32) + (local $2 i32) + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.sub + global.set $~lib/memory/__stack_pointer + call $~stack_check + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store + i32.const 0 + drop + local.get $this + local.set $2 + global.get $~lib/memory/__stack_pointer + local.get $2 + i32.store + local.get $2 + call $~lib/array/Array#get:buffer + local.get $cookie + call $~lib/rt/itcms/__visit + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + ) + (func $"~lib/map/Map#__visit" (param $this i32) (param $cookie i32) (local $entries i32) (local $3 i32) global.get $~lib/memory/__stack_pointer @@ -32134,7 +43894,7 @@ local.get $3 i32.store local.get $3 - call $"~lib/map/Map#get:buckets" + call $"~lib/map/Map#get:buckets" local.get $cookie call $~lib/rt/itcms/__visit local.get $this @@ -32143,7 +43903,7 @@ local.get $3 i32.store local.get $3 - call $"~lib/map/Map#get:entries" + call $"~lib/map/Map#get:entries" local.set $entries i32.const 0 drop @@ -32155,7 +43915,77 @@ i32.add global.set $~lib/memory/__stack_pointer ) - (func $"~lib/map/Map#__visit" (param $this i32) (param $cookie i32) + (func $"~lib/array/Array<~lib/map/KeyValue>#__visit" (param $this i32) (param $cookie i32) + (local $cur i32) + (local $end i32) + (local $val i32) + (local $5 i32) + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.sub + global.set $~lib/memory/__stack_pointer + call $~stack_check + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store + i32.const 1 + drop + local.get $this + local.set $5 + global.get $~lib/memory/__stack_pointer + local.get $5 + i32.store + local.get $5 + call $"~lib/array/Array<~lib/map/KeyValue>#get:dataStart" + local.set $cur + local.get $cur + local.get $this + local.set $5 + global.get $~lib/memory/__stack_pointer + local.get $5 + i32.store + local.get $5 + call $"~lib/array/Array<~lib/map/KeyValue>#get:length_" + i32.const 2 + i32.shl + i32.add + local.set $end + loop $while-continue|0 + local.get $cur + local.get $end + i32.lt_u + if + local.get $cur + i32.load + local.set $val + local.get $val + if + local.get $val + local.get $cookie + call $~lib/rt/itcms/__visit + end + local.get $cur + i32.const 4 + i32.add + local.set $cur + br $while-continue|0 + end + end + local.get $this + local.set $5 + global.get $~lib/memory/__stack_pointer + local.get $5 + i32.store + local.get $5 + call $"~lib/array/Array<~lib/map/KeyValue>#get:buffer" + local.get $cookie + call $~lib/rt/itcms/__visit + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + ) + (func $"~lib/map/Map#__visit" (param $this i32) (param $cookie i32) (local $entries i32) (local $3 i32) global.get $~lib/memory/__stack_pointer @@ -32172,7 +44002,7 @@ local.get $3 i32.store local.get $3 - call $"~lib/map/Map#get:buckets" + call $"~lib/map/Map#get:buckets" local.get $cookie call $~lib/rt/itcms/__visit local.get $this @@ -32181,7 +44011,7 @@ local.get $3 i32.store local.get $3 - call $"~lib/map/Map#get:entries" + call $"~lib/map/Map#get:entries" local.set $entries i32.const 0 drop @@ -32193,7 +44023,77 @@ i32.add global.set $~lib/memory/__stack_pointer ) - (func $~lib/array/Array#__visit (param $this i32) (param $cookie i32) + (func $"~lib/array/Array<~lib/map/KeyValue>#__visit" (param $this i32) (param $cookie i32) + (local $cur i32) + (local $end i32) + (local $val i32) + (local $5 i32) + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.sub + global.set $~lib/memory/__stack_pointer + call $~stack_check + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store + i32.const 1 + drop + local.get $this + local.set $5 + global.get $~lib/memory/__stack_pointer + local.get $5 + i32.store + local.get $5 + call $"~lib/array/Array<~lib/map/KeyValue>#get:dataStart" + local.set $cur + local.get $cur + local.get $this + local.set $5 + global.get $~lib/memory/__stack_pointer + local.get $5 + i32.store + local.get $5 + call $"~lib/array/Array<~lib/map/KeyValue>#get:length_" + i32.const 2 + i32.shl + i32.add + local.set $end + loop $while-continue|0 + local.get $cur + local.get $end + i32.lt_u + if + local.get $cur + i32.load + local.set $val + local.get $val + if + local.get $val + local.get $cookie + call $~lib/rt/itcms/__visit + end + local.get $cur + i32.const 4 + i32.add + local.set $cur + br $while-continue|0 + end + end + local.get $this + local.set $5 + global.get $~lib/memory/__stack_pointer + local.get $5 + i32.store + local.get $5 + call $"~lib/array/Array<~lib/map/KeyValue>#get:buffer" + local.get $cookie + call $~lib/rt/itcms/__visit + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + ) + (func $~lib/array/Array#__visit (param $this i32) (param $cookie i32) (local $2 i32) global.get $~lib/memory/__stack_pointer i32.const 4 @@ -32211,7 +44111,7 @@ local.get $2 i32.store local.get $2 - call $~lib/array/Array#get:buffer + call $~lib/array/Array#get:buffer local.get $cookie call $~lib/rt/itcms/__visit global.get $~lib/memory/__stack_pointer @@ -32219,7 +44119,7 @@ i32.add global.set $~lib/memory/__stack_pointer ) - (func $"~lib/map/Map#__visit" (param $this i32) (param $cookie i32) + (func $"~lib/map/Map#__visit" (param $this i32) (param $cookie i32) (local $entries i32) (local $3 i32) global.get $~lib/memory/__stack_pointer @@ -32236,7 +44136,7 @@ local.get $3 i32.store local.get $3 - call $"~lib/map/Map#get:buckets" + call $"~lib/map/Map#get:buckets" local.get $cookie call $~lib/rt/itcms/__visit local.get $this @@ -32245,7 +44145,7 @@ local.get $3 i32.store local.get $3 - call $"~lib/map/Map#get:entries" + call $"~lib/map/Map#get:entries" local.set $entries i32.const 0 drop @@ -32257,7 +44157,77 @@ i32.add global.set $~lib/memory/__stack_pointer ) - (func $"~lib/map/Map#__visit" (param $this i32) (param $cookie i32) + (func $"~lib/array/Array<~lib/map/KeyValue>#__visit" (param $this i32) (param $cookie i32) + (local $cur i32) + (local $end i32) + (local $val i32) + (local $5 i32) + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.sub + global.set $~lib/memory/__stack_pointer + call $~stack_check + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store + i32.const 1 + drop + local.get $this + local.set $5 + global.get $~lib/memory/__stack_pointer + local.get $5 + i32.store + local.get $5 + call $"~lib/array/Array<~lib/map/KeyValue>#get:dataStart" + local.set $cur + local.get $cur + local.get $this + local.set $5 + global.get $~lib/memory/__stack_pointer + local.get $5 + i32.store + local.get $5 + call $"~lib/array/Array<~lib/map/KeyValue>#get:length_" + i32.const 2 + i32.shl + i32.add + local.set $end + loop $while-continue|0 + local.get $cur + local.get $end + i32.lt_u + if + local.get $cur + i32.load + local.set $val + local.get $val + if + local.get $val + local.get $cookie + call $~lib/rt/itcms/__visit + end + local.get $cur + i32.const 4 + i32.add + local.set $cur + br $while-continue|0 + end + end + local.get $this + local.set $5 + global.get $~lib/memory/__stack_pointer + local.get $5 + i32.store + local.get $5 + call $"~lib/array/Array<~lib/map/KeyValue>#get:buffer" + local.get $cookie + call $~lib/rt/itcms/__visit + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + ) + (func $"~lib/map/Map#__visit" (param $this i32) (param $cookie i32) (local $entries i32) (local $3 i32) global.get $~lib/memory/__stack_pointer @@ -32274,7 +44244,7 @@ local.get $3 i32.store local.get $3 - call $"~lib/map/Map#get:buckets" + call $"~lib/map/Map#get:buckets" local.get $cookie call $~lib/rt/itcms/__visit local.get $this @@ -32283,7 +44253,7 @@ local.get $3 i32.store local.get $3 - call $"~lib/map/Map#get:entries" + call $"~lib/map/Map#get:entries" local.set $entries i32.const 0 drop @@ -32295,8 +44265,11 @@ i32.add global.set $~lib/memory/__stack_pointer ) - (func $~lib/array/Array#__visit (param $this i32) (param $cookie i32) - (local $2 i32) + (func $"~lib/array/Array<~lib/map/KeyValue>#__visit" (param $this i32) (param $cookie i32) + (local $cur i32) + (local $end i32) + (local $val i32) + (local $5 i32) global.get $~lib/memory/__stack_pointer i32.const 4 i32.sub @@ -32305,15 +44278,56 @@ global.get $~lib/memory/__stack_pointer i32.const 0 i32.store - i32.const 0 + i32.const 1 drop local.get $this - local.set $2 + local.set $5 global.get $~lib/memory/__stack_pointer - local.get $2 + local.get $5 i32.store - local.get $2 - call $~lib/array/Array#get:buffer + local.get $5 + call $"~lib/array/Array<~lib/map/KeyValue>#get:dataStart" + local.set $cur + local.get $cur + local.get $this + local.set $5 + global.get $~lib/memory/__stack_pointer + local.get $5 + i32.store + local.get $5 + call $"~lib/array/Array<~lib/map/KeyValue>#get:length_" + i32.const 2 + i32.shl + i32.add + local.set $end + loop $while-continue|0 + local.get $cur + local.get $end + i32.lt_u + if + local.get $cur + i32.load + local.set $val + local.get $val + if + local.get $val + local.get $cookie + call $~lib/rt/itcms/__visit + end + local.get $cur + i32.const 4 + i32.add + local.set $cur + br $while-continue|0 + end + end + local.get $this + local.set $5 + global.get $~lib/memory/__stack_pointer + local.get $5 + i32.store + local.get $5 + call $"~lib/array/Array<~lib/map/KeyValue>#get:buffer" local.get $cookie call $~lib/rt/itcms/__visit global.get $~lib/memory/__stack_pointer @@ -32321,9 +44335,8 @@ i32.add global.set $~lib/memory/__stack_pointer ) - (func $"~lib/map/Map#__visit" (param $this i32) (param $cookie i32) - (local $entries i32) - (local $3 i32) + (func $~lib/array/Array#__visit (param $this i32) (param $cookie i32) + (local $2 i32) global.get $~lib/memory/__stack_pointer i32.const 4 i32.sub @@ -32332,26 +44345,15 @@ global.get $~lib/memory/__stack_pointer i32.const 0 i32.store + i32.const 0 + drop local.get $this - local.set $3 - global.get $~lib/memory/__stack_pointer - local.get $3 - i32.store - local.get $3 - call $"~lib/map/Map#get:buckets" - local.get $cookie - call $~lib/rt/itcms/__visit - local.get $this - local.set $3 + local.set $2 global.get $~lib/memory/__stack_pointer - local.get $3 + local.get $2 i32.store - local.get $3 - call $"~lib/map/Map#get:entries" - local.set $entries - i32.const 0 - drop - local.get $entries + local.get $2 + call $~lib/array/Array#get:buffer local.get $cookie call $~lib/rt/itcms/__visit global.get $~lib/memory/__stack_pointer @@ -32359,7 +44361,7 @@ i32.add global.set $~lib/memory/__stack_pointer ) - (func $"~lib/map/Map#__visit" (param $this i32) (param $cookie i32) + (func $"~lib/map/Map#__visit" (param $this i32) (param $cookie i32) (local $entries i32) (local $3 i32) global.get $~lib/memory/__stack_pointer @@ -32376,7 +44378,7 @@ local.get $3 i32.store local.get $3 - call $"~lib/map/Map#get:buckets" + call $"~lib/map/Map#get:buckets" local.get $cookie call $~lib/rt/itcms/__visit local.get $this @@ -32385,7 +44387,7 @@ local.get $3 i32.store local.get $3 - call $"~lib/map/Map#get:entries" + call $"~lib/map/Map#get:entries" local.set $entries i32.const 0 drop @@ -32397,8 +44399,11 @@ i32.add global.set $~lib/memory/__stack_pointer ) - (func $~lib/array/Array#__visit (param $this i32) (param $cookie i32) - (local $2 i32) + (func $"~lib/array/Array<~lib/map/KeyValue>#__visit" (param $this i32) (param $cookie i32) + (local $cur i32) + (local $end i32) + (local $val i32) + (local $5 i32) global.get $~lib/memory/__stack_pointer i32.const 4 i32.sub @@ -32407,15 +44412,56 @@ global.get $~lib/memory/__stack_pointer i32.const 0 i32.store - i32.const 0 + i32.const 1 drop local.get $this - local.set $2 + local.set $5 global.get $~lib/memory/__stack_pointer - local.get $2 + local.get $5 i32.store - local.get $2 - call $~lib/array/Array#get:buffer + local.get $5 + call $"~lib/array/Array<~lib/map/KeyValue>#get:dataStart" + local.set $cur + local.get $cur + local.get $this + local.set $5 + global.get $~lib/memory/__stack_pointer + local.get $5 + i32.store + local.get $5 + call $"~lib/array/Array<~lib/map/KeyValue>#get:length_" + i32.const 2 + i32.shl + i32.add + local.set $end + loop $while-continue|0 + local.get $cur + local.get $end + i32.lt_u + if + local.get $cur + i32.load + local.set $val + local.get $val + if + local.get $val + local.get $cookie + call $~lib/rt/itcms/__visit + end + local.get $cur + i32.const 4 + i32.add + local.set $cur + br $while-continue|0 + end + end + local.get $this + local.set $5 + global.get $~lib/memory/__stack_pointer + local.get $5 + i32.store + local.get $5 + call $"~lib/array/Array<~lib/map/KeyValue>#get:buffer" local.get $cookie call $~lib/rt/itcms/__visit global.get $~lib/memory/__stack_pointer @@ -32423,7 +44469,7 @@ i32.add global.set $~lib/memory/__stack_pointer ) - (func $"~lib/map/Map#__visit" (param $this i32) (param $cookie i32) + (func $"~lib/map/Map#__visit" (param $this i32) (param $cookie i32) (local $entries i32) (local $3 i32) global.get $~lib/memory/__stack_pointer @@ -32440,7 +44486,7 @@ local.get $3 i32.store local.get $3 - call $"~lib/map/Map#get:buckets" + call $"~lib/map/Map#get:buckets" local.get $cookie call $~lib/rt/itcms/__visit local.get $this @@ -32449,7 +44495,7 @@ local.get $3 i32.store local.get $3 - call $"~lib/map/Map#get:entries" + call $"~lib/map/Map#get:entries" local.set $entries i32.const 0 drop @@ -32461,9 +44507,11 @@ i32.add global.set $~lib/memory/__stack_pointer ) - (func $"~lib/map/Map#__visit" (param $this i32) (param $cookie i32) - (local $entries i32) - (local $3 i32) + (func $"~lib/array/Array<~lib/map/KeyValue>#__visit" (param $this i32) (param $cookie i32) + (local $cur i32) + (local $end i32) + (local $val i32) + (local $5 i32) global.get $~lib/memory/__stack_pointer i32.const 4 i32.sub @@ -32472,26 +44520,56 @@ global.get $~lib/memory/__stack_pointer i32.const 0 i32.store + i32.const 1 + drop local.get $this - local.set $3 + local.set $5 global.get $~lib/memory/__stack_pointer - local.get $3 + local.get $5 i32.store - local.get $3 - call $"~lib/map/Map#get:buckets" - local.get $cookie - call $~lib/rt/itcms/__visit + local.get $5 + call $"~lib/array/Array<~lib/map/KeyValue>#get:dataStart" + local.set $cur + local.get $cur local.get $this - local.set $3 + local.set $5 global.get $~lib/memory/__stack_pointer - local.get $3 + local.get $5 i32.store - local.get $3 - call $"~lib/map/Map#get:entries" - local.set $entries - i32.const 0 - drop - local.get $entries + local.get $5 + call $"~lib/array/Array<~lib/map/KeyValue>#get:length_" + i32.const 2 + i32.shl + i32.add + local.set $end + loop $while-continue|0 + local.get $cur + local.get $end + i32.lt_u + if + local.get $cur + i32.load + local.set $val + local.get $val + if + local.get $val + local.get $cookie + call $~lib/rt/itcms/__visit + end + local.get $cur + i32.const 4 + i32.add + local.set $cur + br $while-continue|0 + end + end + local.get $this + local.set $5 + global.get $~lib/memory/__stack_pointer + local.get $5 + i32.store + local.get $5 + call $"~lib/array/Array<~lib/map/KeyValue>#get:buffer" local.get $cookie call $~lib/rt/itcms/__visit global.get $~lib/memory/__stack_pointer @@ -32499,7 +44577,7 @@ i32.add global.set $~lib/memory/__stack_pointer ) - (func $~lib/array/Array#__visit (param $this i32) (param $cookie i32) + (func $~lib/array/Array#__visit (param $this i32) (param $cookie i32) (local $2 i32) global.get $~lib/memory/__stack_pointer i32.const 4 @@ -32517,7 +44595,7 @@ local.get $2 i32.store local.get $2 - call $~lib/array/Array#get:buffer + call $~lib/array/Array#get:buffer local.get $cookie call $~lib/rt/itcms/__visit global.get $~lib/memory/__stack_pointer @@ -32525,7 +44603,7 @@ i32.add global.set $~lib/memory/__stack_pointer ) - (func $"~lib/map/Map#__visit" (param $this i32) (param $cookie i32) + (func $"~lib/map/Map#__visit" (param $this i32) (param $cookie i32) (local $entries i32) (local $3 i32) global.get $~lib/memory/__stack_pointer @@ -32542,7 +44620,7 @@ local.get $3 i32.store local.get $3 - call $"~lib/map/Map#get:buckets" + call $"~lib/map/Map#get:buckets" local.get $cookie call $~lib/rt/itcms/__visit local.get $this @@ -32551,7 +44629,7 @@ local.get $3 i32.store local.get $3 - call $"~lib/map/Map#get:entries" + call $"~lib/map/Map#get:entries" local.set $entries i32.const 0 drop @@ -32563,9 +44641,11 @@ i32.add global.set $~lib/memory/__stack_pointer ) - (func $"~lib/map/Map#__visit" (param $this i32) (param $cookie i32) - (local $entries i32) - (local $3 i32) + (func $"~lib/array/Array<~lib/map/KeyValue>#__visit" (param $this i32) (param $cookie i32) + (local $cur i32) + (local $end i32) + (local $val i32) + (local $5 i32) global.get $~lib/memory/__stack_pointer i32.const 4 i32.sub @@ -32574,52 +44654,56 @@ global.get $~lib/memory/__stack_pointer i32.const 0 i32.store + i32.const 1 + drop local.get $this - local.set $3 + local.set $5 global.get $~lib/memory/__stack_pointer - local.get $3 + local.get $5 i32.store - local.get $3 - call $"~lib/map/Map#get:buckets" - local.get $cookie - call $~lib/rt/itcms/__visit + local.get $5 + call $"~lib/array/Array<~lib/map/KeyValue>#get:dataStart" + local.set $cur + local.get $cur local.get $this - local.set $3 + local.set $5 global.get $~lib/memory/__stack_pointer - local.get $3 + local.get $5 i32.store - local.get $3 - call $"~lib/map/Map#get:entries" - local.set $entries - i32.const 0 - drop - local.get $entries - local.get $cookie - call $~lib/rt/itcms/__visit - global.get $~lib/memory/__stack_pointer - i32.const 4 + local.get $5 + call $"~lib/array/Array<~lib/map/KeyValue>#get:length_" + i32.const 2 + i32.shl i32.add - global.set $~lib/memory/__stack_pointer - ) - (func $~lib/array/Array#__visit (param $this i32) (param $cookie i32) - (local $2 i32) - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.sub - global.set $~lib/memory/__stack_pointer - call $~stack_check - global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.store - i32.const 0 - drop + local.set $end + loop $while-continue|0 + local.get $cur + local.get $end + i32.lt_u + if + local.get $cur + i32.load + local.set $val + local.get $val + if + local.get $val + local.get $cookie + call $~lib/rt/itcms/__visit + end + local.get $cur + i32.const 4 + i32.add + local.set $cur + br $while-continue|0 + end + end local.get $this - local.set $2 + local.set $5 global.get $~lib/memory/__stack_pointer - local.get $2 + local.get $5 i32.store - local.get $2 - call $~lib/array/Array#get:buffer + local.get $5 + call $"~lib/array/Array<~lib/map/KeyValue>#get:buffer" local.get $cookie call $~lib/rt/itcms/__visit global.get $~lib/memory/__stack_pointer @@ -32627,7 +44711,7 @@ i32.add global.set $~lib/memory/__stack_pointer ) - (func $"~lib/map/Map#__visit" (param $this i32) (param $cookie i32) + (func $"~lib/map/Map#__visit" (param $this i32) (param $cookie i32) (local $entries i32) (local $3 i32) global.get $~lib/memory/__stack_pointer @@ -32644,7 +44728,7 @@ local.get $3 i32.store local.get $3 - call $"~lib/map/Map#get:buckets" + call $"~lib/map/Map#get:buckets" local.get $cookie call $~lib/rt/itcms/__visit local.get $this @@ -32653,7 +44737,7 @@ local.get $3 i32.store local.get $3 - call $"~lib/map/Map#get:entries" + call $"~lib/map/Map#get:entries" local.set $entries i32.const 0 drop @@ -32665,9 +44749,11 @@ i32.add global.set $~lib/memory/__stack_pointer ) - (func $"~lib/map/Map#__visit" (param $this i32) (param $cookie i32) - (local $entries i32) - (local $3 i32) + (func $"~lib/array/Array<~lib/map/KeyValue>#__visit" (param $this i32) (param $cookie i32) + (local $cur i32) + (local $end i32) + (local $val i32) + (local $5 i32) global.get $~lib/memory/__stack_pointer i32.const 4 i32.sub @@ -32676,26 +44762,56 @@ global.get $~lib/memory/__stack_pointer i32.const 0 i32.store + i32.const 1 + drop local.get $this - local.set $3 + local.set $5 global.get $~lib/memory/__stack_pointer - local.get $3 + local.get $5 i32.store - local.get $3 - call $"~lib/map/Map#get:buckets" - local.get $cookie - call $~lib/rt/itcms/__visit + local.get $5 + call $"~lib/array/Array<~lib/map/KeyValue>#get:dataStart" + local.set $cur + local.get $cur local.get $this - local.set $3 + local.set $5 global.get $~lib/memory/__stack_pointer - local.get $3 + local.get $5 i32.store - local.get $3 - call $"~lib/map/Map#get:entries" - local.set $entries - i32.const 0 - drop - local.get $entries + local.get $5 + call $"~lib/array/Array<~lib/map/KeyValue>#get:length_" + i32.const 2 + i32.shl + i32.add + local.set $end + loop $while-continue|0 + local.get $cur + local.get $end + i32.lt_u + if + local.get $cur + i32.load + local.set $val + local.get $val + if + local.get $val + local.get $cookie + call $~lib/rt/itcms/__visit + end + local.get $cur + i32.const 4 + i32.add + local.set $cur + br $while-continue|0 + end + end + local.get $this + local.set $5 + global.get $~lib/memory/__stack_pointer + local.get $5 + i32.store + local.get $5 + call $"~lib/array/Array<~lib/map/KeyValue>#get:buffer" local.get $cookie call $~lib/rt/itcms/__visit global.get $~lib/memory/__stack_pointer @@ -32703,7 +44819,7 @@ i32.add global.set $~lib/memory/__stack_pointer ) - (func $~lib/array/Array#__visit (param $this i32) (param $cookie i32) + (func $~lib/array/Array#__visit (param $this i32) (param $cookie i32) (local $2 i32) global.get $~lib/memory/__stack_pointer i32.const 4 @@ -32721,7 +44837,7 @@ local.get $2 i32.store local.get $2 - call $~lib/array/Array#get:buffer + call $~lib/array/Array#get:buffer local.get $cookie call $~lib/rt/itcms/__visit global.get $~lib/memory/__stack_pointer @@ -32729,7 +44845,7 @@ i32.add global.set $~lib/memory/__stack_pointer ) - (func $"~lib/map/Map#__visit" (param $this i32) (param $cookie i32) + (func $"~lib/map/Map#__visit" (param $this i32) (param $cookie i32) (local $entries i32) (local $3 i32) global.get $~lib/memory/__stack_pointer @@ -32746,7 +44862,7 @@ local.get $3 i32.store local.get $3 - call $"~lib/map/Map#get:buckets" + call $"~lib/map/Map#get:buckets" local.get $cookie call $~lib/rt/itcms/__visit local.get $this @@ -32755,7 +44871,7 @@ local.get $3 i32.store local.get $3 - call $"~lib/map/Map#get:entries" + call $"~lib/map/Map#get:entries" local.set $entries i32.const 0 drop @@ -32767,9 +44883,11 @@ i32.add global.set $~lib/memory/__stack_pointer ) - (func $"~lib/map/Map#__visit" (param $this i32) (param $cookie i32) - (local $entries i32) - (local $3 i32) + (func $"~lib/array/Array<~lib/map/KeyValue>#__visit" (param $this i32) (param $cookie i32) + (local $cur i32) + (local $end i32) + (local $val i32) + (local $5 i32) global.get $~lib/memory/__stack_pointer i32.const 4 i32.sub @@ -32778,52 +44896,56 @@ global.get $~lib/memory/__stack_pointer i32.const 0 i32.store + i32.const 1 + drop local.get $this - local.set $3 + local.set $5 global.get $~lib/memory/__stack_pointer - local.get $3 + local.get $5 i32.store - local.get $3 - call $"~lib/map/Map#get:buckets" - local.get $cookie - call $~lib/rt/itcms/__visit + local.get $5 + call $"~lib/array/Array<~lib/map/KeyValue>#get:dataStart" + local.set $cur + local.get $cur local.get $this - local.set $3 + local.set $5 global.get $~lib/memory/__stack_pointer - local.get $3 + local.get $5 i32.store - local.get $3 - call $"~lib/map/Map#get:entries" - local.set $entries - i32.const 0 - drop - local.get $entries - local.get $cookie - call $~lib/rt/itcms/__visit - global.get $~lib/memory/__stack_pointer - i32.const 4 + local.get $5 + call $"~lib/array/Array<~lib/map/KeyValue>#get:length_" + i32.const 2 + i32.shl i32.add - global.set $~lib/memory/__stack_pointer - ) - (func $~lib/array/Array#__visit (param $this i32) (param $cookie i32) - (local $2 i32) - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.sub - global.set $~lib/memory/__stack_pointer - call $~stack_check - global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.store - i32.const 0 - drop + local.set $end + loop $while-continue|0 + local.get $cur + local.get $end + i32.lt_u + if + local.get $cur + i32.load + local.set $val + local.get $val + if + local.get $val + local.get $cookie + call $~lib/rt/itcms/__visit + end + local.get $cur + i32.const 4 + i32.add + local.set $cur + br $while-continue|0 + end + end local.get $this - local.set $2 + local.set $5 global.get $~lib/memory/__stack_pointer - local.get $2 + local.get $5 i32.store - local.get $2 - call $~lib/array/Array#get:buffer + local.get $5 + call $"~lib/array/Array<~lib/map/KeyValue>#get:buffer" local.get $cookie call $~lib/rt/itcms/__visit global.get $~lib/memory/__stack_pointer @@ -32831,7 +44953,7 @@ i32.add global.set $~lib/memory/__stack_pointer ) - (func $"~lib/map/Map#__visit" (param $this i32) (param $cookie i32) + (func $"~lib/map/Map#__visit" (param $this i32) (param $cookie i32) (local $entries i32) (local $3 i32) global.get $~lib/memory/__stack_pointer @@ -32848,7 +44970,7 @@ local.get $3 i32.store local.get $3 - call $"~lib/map/Map#get:buckets" + call $"~lib/map/Map#get:buckets" local.get $cookie call $~lib/rt/itcms/__visit local.get $this @@ -32857,7 +44979,7 @@ local.get $3 i32.store local.get $3 - call $"~lib/map/Map#get:entries" + call $"~lib/map/Map#get:entries" local.set $entries i32.const 0 drop @@ -32869,9 +44991,11 @@ i32.add global.set $~lib/memory/__stack_pointer ) - (func $"~lib/map/Map#__visit" (param $this i32) (param $cookie i32) - (local $entries i32) - (local $3 i32) + (func $"~lib/array/Array<~lib/map/KeyValue>#__visit" (param $this i32) (param $cookie i32) + (local $cur i32) + (local $end i32) + (local $val i32) + (local $5 i32) global.get $~lib/memory/__stack_pointer i32.const 4 i32.sub @@ -32880,26 +45004,56 @@ global.get $~lib/memory/__stack_pointer i32.const 0 i32.store + i32.const 1 + drop local.get $this - local.set $3 + local.set $5 global.get $~lib/memory/__stack_pointer - local.get $3 + local.get $5 i32.store - local.get $3 - call $"~lib/map/Map#get:buckets" - local.get $cookie - call $~lib/rt/itcms/__visit + local.get $5 + call $"~lib/array/Array<~lib/map/KeyValue>#get:dataStart" + local.set $cur + local.get $cur local.get $this - local.set $3 + local.set $5 global.get $~lib/memory/__stack_pointer - local.get $3 + local.get $5 i32.store - local.get $3 - call $"~lib/map/Map#get:entries" - local.set $entries - i32.const 0 - drop - local.get $entries + local.get $5 + call $"~lib/array/Array<~lib/map/KeyValue>#get:length_" + i32.const 2 + i32.shl + i32.add + local.set $end + loop $while-continue|0 + local.get $cur + local.get $end + i32.lt_u + if + local.get $cur + i32.load + local.set $val + local.get $val + if + local.get $val + local.get $cookie + call $~lib/rt/itcms/__visit + end + local.get $cur + i32.const 4 + i32.add + local.set $cur + br $while-continue|0 + end + end + local.get $this + local.set $5 + global.get $~lib/memory/__stack_pointer + local.get $5 + i32.store + local.get $5 + call $"~lib/array/Array<~lib/map/KeyValue>#get:buffer" local.get $cookie call $~lib/rt/itcms/__visit global.get $~lib/memory/__stack_pointer @@ -32971,6 +45125,76 @@ i32.add global.set $~lib/memory/__stack_pointer ) + (func $"~lib/array/Array<~lib/map/KeyValue>#__visit" (param $this i32) (param $cookie i32) + (local $cur i32) + (local $end i32) + (local $val i32) + (local $5 i32) + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.sub + global.set $~lib/memory/__stack_pointer + call $~stack_check + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store + i32.const 1 + drop + local.get $this + local.set $5 + global.get $~lib/memory/__stack_pointer + local.get $5 + i32.store + local.get $5 + call $"~lib/array/Array<~lib/map/KeyValue>#get:dataStart" + local.set $cur + local.get $cur + local.get $this + local.set $5 + global.get $~lib/memory/__stack_pointer + local.get $5 + i32.store + local.get $5 + call $"~lib/array/Array<~lib/map/KeyValue>#get:length_" + i32.const 2 + i32.shl + i32.add + local.set $end + loop $while-continue|0 + local.get $cur + local.get $end + i32.lt_u + if + local.get $cur + i32.load + local.set $val + local.get $val + if + local.get $val + local.get $cookie + call $~lib/rt/itcms/__visit + end + local.get $cur + i32.const 4 + i32.add + local.set $cur + br $while-continue|0 + end + end + local.get $this + local.set $5 + global.get $~lib/memory/__stack_pointer + local.get $5 + i32.store + local.get $5 + call $"~lib/array/Array<~lib/map/KeyValue>#get:buffer" + local.get $cookie + call $~lib/rt/itcms/__visit + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + ) (func $~lib/arraybuffer/ArrayBuffer#constructor (param $this i32) (param $length i32) (result i32) (local $buffer i32) (local $3 i32) @@ -32986,8 +45210,8 @@ i32.const 1073741820 i32.gt_u if - i32.const 432 - i32.const 480 + i32.const 32 + i32.const 80 i32.const 52 i32.const 43 call $~lib/builtins/abort @@ -33012,4 +45236,85 @@ local.get $3 return ) + (func $~lib/rt/__newArray (param $length i32) (param $alignLog2 i32) (param $id i32) (param $data i32) (result i32) + (local $bufferSize i32) + (local $buffer i32) + (local $array i32) + (local $7 i32) + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.sub + global.set $~lib/memory/__stack_pointer + call $~stack_check + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store + local.get $length + local.get $alignLog2 + i32.shl + local.set $bufferSize + global.get $~lib/memory/__stack_pointer + local.get $bufferSize + i32.const 1 + local.get $data + call $~lib/rt/__newBuffer + local.tee $buffer + i32.store + i32.const 16 + local.get $id + call $~lib/rt/itcms/__new + local.set $array + local.get $array + local.get $buffer + i32.store + local.get $array + local.get $buffer + i32.const 0 + call $~lib/rt/itcms/__link + local.get $array + local.get $buffer + i32.store offset=4 + local.get $array + local.get $bufferSize + i32.store offset=8 + local.get $array + local.get $length + i32.store offset=12 + local.get $array + local.set $7 + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $7 + return + ) + (func $~lib/object/Object#constructor (param $this i32) (result i32) + (local $1 i32) + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.sub + global.set $~lib/memory/__stack_pointer + call $~stack_check + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store + local.get $this + i32.eqz + if + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.const 0 + call $~lib/rt/itcms/__new + local.tee $this + i32.store + end + local.get $this + local.set $1 + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $1 + ) ) diff --git a/tests/compiler/std/map.release.wat b/tests/compiler/std/map.release.wat index 4148a7ac94..280826b38e 100644 --- a/tests/compiler/std/map.release.wat +++ b/tests/compiler/std/map.release.wat @@ -1,29 +1,28 @@ (module (type $0 (func (param i32 i32))) - (type $1 (func (param i32 i32) (result i32))) - (type $2 (func (param i32 i32 i32))) + (type $1 (func (param i32) (result i32))) + (type $2 (func (param i32 i32) (result i32))) (type $3 (func)) - (type $4 (func (param i32) (result i32))) - (type $5 (func (param i32))) - (type $6 (func (param i32 i32 i32) (result i32))) - (type $7 (func (param i32 i64) (result i32))) - (type $8 (func (param i32 i32 i32 i32))) - (type $9 (func (param i32 i32 i64))) - (type $10 (func (result i32))) - (type $11 (func (param i32 i64 i32) (result i32))) + (type $4 (func (param i32 i32 i32))) + (type $5 (func (param i32 i32 i32) (result i32))) + (type $6 (func (param i32))) + (type $7 (func (param i32 i64 i32) (result i32))) + (type $8 (func (param i32 i64) (result i32))) + (type $9 (func (param i32 i32 i32 i32))) + (type $10 (func (param i32 i32 i64))) + (type $11 (func (result i32))) (type $12 (func (param i32 i64 i32))) (type $13 (func (param i32 i64 i64))) (type $14 (func (param i32 i64))) (type $15 (func (param i32 f32) (result i32))) - (type $16 (func (param i32 f64) (result i32))) - (type $17 (func (param i32 f32 i32) (result i32))) - (type $18 (func (param i32 f32 i32))) - (type $19 (func (param i32 f32 f32))) + (type $16 (func (param i32 f64 i32) (result i32))) + (type $17 (func (param i32 f64) (result i32))) + (type $18 (func (param i32 f32 i32) (result i32))) + (type $19 (func (param i32 f32 i32))) (type $20 (func (param i32 f32))) - (type $21 (func (param i32 f64 i32) (result i32))) - (type $22 (func (param i32 f64 i32))) - (type $23 (func (param i32 f64 f64))) - (type $24 (func (param i32 f64))) + (type $21 (func (param i32 f64 i32))) + (type $22 (func (param i32 f64 f64))) + (type $23 (func (param i32 f64))) (import "env" "abort" (func $~lib/builtins/abort (param i32 i32 i32 i32))) (global $~lib/rt/itcms/total (mut i32) (i32.const 0)) (global $~lib/rt/itcms/threshold (mut i32) (i32.const 0)) @@ -35,43 +34,105 @@ (global $~lib/rt/itcms/white (mut i32) (i32.const 0)) (global $~lib/rt/itcms/fromSpace (mut i32) (i32.const 0)) (global $~lib/rt/tlsf/ROOT (mut i32) (i32.const 0)) - (global $~lib/memory/__stack_pointer (mut i32) (i32.const 34664)) + (global $~lib/memory/__stack_pointer (mut i32) (i32.const 35872)) (memory $0 1) - (data $0 (i32.const 1036) "<") - (data $0.1 (i32.const 1048) "\02\00\00\00(\00\00\00A\00l\00l\00o\00c\00a\00t\00i\00o\00n\00 \00t\00o\00o\00 \00l\00a\00r\00g\00e") - (data $1 (i32.const 1100) "<") - (data $1.1 (i32.const 1112) "\02\00\00\00 \00\00\00~\00l\00i\00b\00/\00r\00t\00/\00i\00t\00c\00m\00s\00.\00t\00s") - (data $4 (i32.const 1228) "<") - (data $4.1 (i32.const 1240) "\02\00\00\00$\00\00\00I\00n\00d\00e\00x\00 \00o\00u\00t\00 \00o\00f\00 \00r\00a\00n\00g\00e") - (data $5 (i32.const 1292) ",") - (data $5.1 (i32.const 1304) "\02\00\00\00\14\00\00\00~\00l\00i\00b\00/\00r\00t\00.\00t\00s") - (data $7 (i32.const 1372) "<") - (data $7.1 (i32.const 1384) "\02\00\00\00\1e\00\00\00~\00l\00i\00b\00/\00r\00t\00/\00t\00l\00s\00f\00.\00t\00s") - (data $8 (i32.const 1436) ",") - (data $8.1 (i32.const 1448) "\02\00\00\00\1c\00\00\00I\00n\00v\00a\00l\00i\00d\00 \00l\00e\00n\00g\00t\00h") + (data $0 (i32.const 1036) ",") + (data $0.1 (i32.const 1048) "\02\00\00\00\1c\00\00\00I\00n\00v\00a\00l\00i\00d\00 \00l\00e\00n\00g\00t\00h") + (data $1 (i32.const 1084) "<") + (data $1.1 (i32.const 1096) "\02\00\00\00&\00\00\00~\00l\00i\00b\00/\00a\00r\00r\00a\00y\00b\00u\00f\00f\00e\00r\00.\00t\00s") + (data $2 (i32.const 1148) "<") + (data $2.1 (i32.const 1160) "\02\00\00\00(\00\00\00A\00l\00l\00o\00c\00a\00t\00i\00o\00n\00 \00t\00o\00o\00 \00l\00a\00r\00g\00e") + (data $3 (i32.const 1212) "<") + (data $3.1 (i32.const 1224) "\02\00\00\00 \00\00\00~\00l\00i\00b\00/\00r\00t\00/\00i\00t\00c\00m\00s\00.\00t\00s") + (data $6 (i32.const 1340) "<") + (data $6.1 (i32.const 1352) "\02\00\00\00$\00\00\00I\00n\00d\00e\00x\00 \00o\00u\00t\00 \00o\00f\00 \00r\00a\00n\00g\00e") + (data $7 (i32.const 1404) ",") + (data $7.1 (i32.const 1416) "\02\00\00\00\14\00\00\00~\00l\00i\00b\00/\00r\00t\00.\00t\00s") (data $9 (i32.const 1484) "<") - (data $9.1 (i32.const 1496) "\02\00\00\00&\00\00\00~\00l\00i\00b\00/\00a\00r\00r\00a\00y\00b\00u\00f\00f\00e\00r\00.\00t\00s") + (data $9.1 (i32.const 1496) "\02\00\00\00\1e\00\00\00~\00l\00i\00b\00/\00r\00t\00/\00t\00l\00s\00f\00.\00t\00s") (data $10 (i32.const 1548) ",") - (data $10.1 (i32.const 1560) "\02\00\00\00\14\00\00\00s\00t\00d\00/\00m\00a\00p\00.\00t\00s") - (data $11 (i32.const 1596) "<") - (data $11.1 (i32.const 1608) "\02\00\00\00$\00\00\00K\00e\00y\00 \00d\00o\00e\00s\00 \00n\00o\00t\00 \00e\00x\00i\00s\00t") - (data $12 (i32.const 1660) ",") - (data $12.1 (i32.const 1672) "\02\00\00\00\16\00\00\00~\00l\00i\00b\00/\00m\00a\00p\00.\00t\00s") - (data $13 (i32.const 1708) ",") - (data $13.1 (i32.const 1720) "\02\00\00\00\1a\00\00\00~\00l\00i\00b\00/\00a\00r\00r\00a\00y\00.\00t\00s") - (data $14 (i32.const 1760) "!\00\00\00 \00\00\00 \00\00\00 \00\00\00\00\00\00\00\10\89\10\00B\08\00\00\02\t\00\00P\88\10\00\10\t\12\00\10\89\00\00B\00\00\00P\80\00\00\10\t\11\00\82\08\00\00\90\08\11\00\10\t\01\00\82\00\00\00\90\00\01\00\10\t\02\00\02\01\00\00\10\01\02\00\10\t\14\00\02\n\00\00\10\n\14\00\10\t\04\00\02\02\00\00\10\02\04\00\10\t2\00\02\19\00\00\10\192\00\10\t4\00\02\1a\00\00\10\1a4") + (data $10.1 (i32.const 1560) "\02\00\00\00\1a\00\00\00~\00l\00i\00b\00/\00a\00r\00r\00a\00y\00.\00t\00s") + (data $11 (i32.const 1596) "|") + (data $11.1 (i32.const 1608) "\02\00\00\00^\00\00\00E\00l\00e\00m\00e\00n\00t\00 \00t\00y\00p\00e\00 \00m\00u\00s\00t\00 \00b\00e\00 \00n\00u\00l\00l\00a\00b\00l\00e\00 \00i\00f\00 \00a\00r\00r\00a\00y\00 \00i\00s\00 \00h\00o\00l\00e\00y") + (data $12 (i32.const 1724) "\1c") + (data $12.1 (i32.const 1736) "\01") + (data $13 (i32.const 1756) ",") + (data $13.1 (i32.const 1768) "\02\00\00\00\14\00\00\00s\00t\00d\00/\00m\00a\00p\00.\00t\00s") + (data $14 (i32.const 1804) "<") + (data $14.1 (i32.const 1816) "\02\00\00\00$\00\00\00K\00e\00y\00 \00d\00o\00e\00s\00 \00n\00o\00t\00 \00e\00x\00i\00s\00t") + (data $15 (i32.const 1868) ",") + (data $15.1 (i32.const 1880) "\02\00\00\00\16\00\00\00~\00l\00i\00b\00/\00m\00a\00p\00.\00t\00s") + (data $16 (i32.const 1916) "\1c") + (data $16.1 (i32.const 1928) "\01") + (data $17 (i32.const 1948) "\1c") + (data $17.1 (i32.const 1960) "\01") + (data $18 (i32.const 1980) "\1c") + (data $18.1 (i32.const 1992) "\01") + (data $19 (i32.const 2012) "\1c") + (data $19.1 (i32.const 2024) "\01") + (data $20 (i32.const 2044) "\1c") + (data $20.1 (i32.const 2056) "\01") + (data $21 (i32.const 2076) "\1c") + (data $21.1 (i32.const 2088) "\01") + (data $22 (i32.const 2108) "\1c") + (data $22.1 (i32.const 2120) "\01") + (data $23 (i32.const 2140) "\1c") + (data $23.1 (i32.const 2152) "\01") + (data $24 (i32.const 2172) "\1c") + (data $24.1 (i32.const 2184) "\01") + (data $25 (i32.const 2204) "\1c") + (data $25.1 (i32.const 2216) "\01") + (data $26 (i32.const 2236) "\1c") + (data $26.1 (i32.const 2248) "\01") + (data $27 (i32.const 2268) "\1c") + (data $27.1 (i32.const 2280) "\01") + (data $28 (i32.const 2300) "\1c") + (data $28.1 (i32.const 2312) "\01") + (data $29 (i32.const 2332) "\1c") + (data $29.1 (i32.const 2344) "\01") + (data $30 (i32.const 2364) "\1c") + (data $30.1 (i32.const 2376) "\01") + (data $31 (i32.const 2396) "\1c") + (data $31.1 (i32.const 2408) "\01") + (data $32 (i32.const 2428) "\1c") + (data $32.1 (i32.const 2440) "\01") + (data $33 (i32.const 2460) "\1c") + (data $33.1 (i32.const 2472) "\01") + (data $34 (i32.const 2492) "\1c") + (data $34.1 (i32.const 2504) "\01") + (data $35 (i32.const 2524) "\1c") + (data $35.1 (i32.const 2536) "\01") + (data $36 (i32.const 2556) "\1c") + (data $36.1 (i32.const 2568) "\01") + (data $37 (i32.const 2588) "\1c") + (data $37.1 (i32.const 2600) "\01") + (data $38 (i32.const 2620) "\1c") + (data $38.1 (i32.const 2632) "\01") + (data $39 (i32.const 2652) "\1c") + (data $39.1 (i32.const 2664) "\01") + (data $40 (i32.const 2684) "\1c") + (data $40.1 (i32.const 2696) "\01") + (data $41 (i32.const 2716) "\1c") + (data $41.1 (i32.const 2728) "\01") + (data $42 (i32.const 2748) "\1c") + (data $42.1 (i32.const 2760) "\01") + (data $43 (i32.const 2780) "\1c") + (data $43.1 (i32.const 2792) "\01") + (data $44 (i32.const 2816) "G\00\00\00 \00\00\00 \00\00\00 \00\00\00\00\00\00\00\10\89\10\00 \00\00\00\02A\00\00\02\t\00\00B\08\00\00P\88\10\00 \00\00\00\02A\00\00\10\t\12\00 \00\00\00\02A\00\00\10\89\00\00 \00\00\00\02A\00\00B\00\00\00P\80\00\00 \00\00\00\02A\00\00\10\t\11\00 \00\00\00\02A\00\00\82\08\00\00\90\08\11\00 \00\00\00\02A\00\00\10\t\01\00 \00\00\00\02A\00\00\82\00\00\00\90\00\01\00 \00\00\00\02A\00\00\10\t\02\00 \00\00\00\02A\00\00\02\01\00\00\10\01\02\00 \00\00\00\02A\00\00\10\t\14\00 \00\00\00\02A\00\00\02\n\00\00\10\n\14\00 \00\00\00\02A\00\00\10\t\04\00 \00\00\00\02A\00\00\02\02\00\00\10\02\04\00 \00\00\00\02A\00\00\10\t2\00 \00\00\00\02A\00\00\02\19\00\00\10\192\00 \00\00\00\02A\00\00\10\t4\00 \00\00\00\02A\00\00\02\1a\00\00\10\1a4\00 \00\00\00\02A") (export "memory" (memory $0)) (start $~start) (func $~lib/rt/itcms/visitRoots (local $0 i32) (local $1 i32) - i32.const 1248 + i32.const 1360 call $~lib/rt/itcms/__visit - i32.const 1456 + i32.const 1056 call $~lib/rt/itcms/__visit i32.const 1616 call $~lib/rt/itcms/__visit - i32.const 1056 + i32.const 1824 + call $~lib/rt/itcms/__visit + i32.const 1168 call $~lib/rt/itcms/__visit global.get $~lib/rt/itcms/pinSpace local.tee $1 @@ -92,7 +153,7 @@ i32.ne if i32.const 0 - i32.const 1120 + i32.const 1232 i32.const 160 i32.const 16 call $~lib/builtins/abort @@ -125,7 +186,7 @@ i32.eqz if i32.const 0 - i32.const 1120 + i32.const 1232 i32.const 148 i32.const 30 call $~lib/builtins/abort @@ -134,7 +195,7 @@ local.get $1 global.set $~lib/rt/itcms/iter end - block $__inlined_func$~lib/rt/itcms/Object#unlink$1422 + block $__inlined_func$~lib/rt/itcms/Object#unlink$1827 local.get $0 i32.load offset=4 i32.const -4 @@ -146,19 +207,19 @@ i32.load offset=8 i32.eqz local.get $0 - i32.const 34664 + i32.const 35872 i32.lt_u i32.and i32.eqz if i32.const 0 - i32.const 1120 + i32.const 1232 i32.const 128 i32.const 18 call $~lib/builtins/abort unreachable end - br $__inlined_func$~lib/rt/itcms/Object#unlink$1422 + br $__inlined_func$~lib/rt/itcms/Object#unlink$1827 end local.get $0 i32.load offset=8 @@ -166,7 +227,7 @@ i32.eqz if i32.const 0 - i32.const 1120 + i32.const 1232 i32.const 132 i32.const 16 call $~lib/builtins/abort @@ -195,12 +256,12 @@ i32.const 1 else local.get $1 - i32.const 1760 + i32.const 2816 i32.load i32.gt_u if - i32.const 1248 - i32.const 1312 + i32.const 1360 + i32.const 1424 i32.const 21 i32.const 28 call $~lib/builtins/abort @@ -209,7 +270,7 @@ local.get $1 i32.const 2 i32.shl - i32.const 1764 + i32.const 2820 i32.add i32.load i32.const 32 @@ -280,7 +341,7 @@ i32.eqz if i32.const 0 - i32.const 1392 + i32.const 1504 i32.const 268 i32.const 14 call $~lib/builtins/abort @@ -294,7 +355,7 @@ i32.lt_u if i32.const 0 - i32.const 1392 + i32.const 1504 i32.const 270 i32.const 14 call $~lib/builtins/abort @@ -340,7 +401,7 @@ i32.eqz if i32.const 0 - i32.const 1392 + i32.const 1504 i32.const 284 i32.const 14 call $~lib/builtins/abort @@ -423,7 +484,7 @@ i32.eqz if i32.const 0 - i32.const 1392 + i32.const 1504 i32.const 201 i32.const 14 call $~lib/builtins/abort @@ -437,7 +498,7 @@ i32.eqz if i32.const 0 - i32.const 1392 + i32.const 1504 i32.const 203 i32.const 14 call $~lib/builtins/abort @@ -498,7 +559,7 @@ i32.eqz if i32.const 0 - i32.const 1392 + i32.const 1504 i32.const 221 i32.const 16 call $~lib/builtins/abort @@ -531,7 +592,7 @@ i32.lt_u if i32.const 0 - i32.const 1392 + i32.const 1504 i32.const 233 i32.const 14 call $~lib/builtins/abort @@ -546,7 +607,7 @@ i32.ne if i32.const 0 - i32.const 1392 + i32.const 1504 i32.const 234 i32.const 14 call $~lib/builtins/abort @@ -597,7 +658,7 @@ i32.eqz if i32.const 0 - i32.const 1392 + i32.const 1504 i32.const 251 i32.const 14 call $~lib/builtins/abort @@ -669,7 +730,7 @@ i64.lt_u if i32.const 0 - i32.const 1392 + i32.const 1504 i32.const 382 i32.const 14 call $~lib/builtins/abort @@ -694,7 +755,7 @@ i32.gt_u if i32.const 0 - i32.const 1392 + i32.const 1504 i32.const 389 i32.const 16 call $~lib/builtins/abort @@ -721,7 +782,7 @@ i32.gt_u if i32.const 0 - i32.const 1392 + i32.const 1504 i32.const 402 i32.const 5 call $~lib/builtins/abort @@ -793,10 +854,10 @@ if unreachable end - i32.const 34672 + i32.const 35872 i32.const 0 i32.store - i32.const 36240 + i32.const 37440 i32.const 0 i32.store loop $for-loop|0 @@ -807,7 +868,7 @@ local.get $0 i32.const 2 i32.shl - i32.const 34672 + i32.const 35872 i32.add i32.const 0 i32.store offset=4 @@ -825,7 +886,7 @@ i32.add i32.const 2 i32.shl - i32.const 34672 + i32.const 35872 i32.add i32.const 0 i32.store offset=96 @@ -843,14 +904,14 @@ br $for-loop|0 end end - i32.const 34672 - i32.const 36244 + i32.const 35872 + i32.const 37444 memory.size i64.extend_i32_s i64.const 16 i64.shl call $~lib/rt/tlsf/addMemory - i32.const 34672 + i32.const 35872 global.set $~lib/rt/tlsf/ROOT ) (func $~lib/rt/itcms/step (result i32) @@ -935,7 +996,7 @@ local.set $0 loop $while-continue|0 local.get $0 - i32.const 34664 + i32.const 35872 i32.lt_u if local.get $0 @@ -1024,14 +1085,14 @@ i32.ne if i32.const 0 - i32.const 1120 + i32.const 1232 i32.const 229 i32.const 20 call $~lib/builtins/abort unreachable end local.get $0 - i32.const 34664 + i32.const 35872 i32.lt_u if local.get $0 @@ -1054,7 +1115,7 @@ i32.const 4 i32.add local.tee $0 - i32.const 34664 + i32.const 35872 i32.ge_u if global.get $~lib/rt/tlsf/ROOT @@ -1083,7 +1144,7 @@ end if i32.const 0 - i32.const 1392 + i32.const 1504 i32.const 562 i32.const 3 call $~lib/builtins/abort @@ -1167,7 +1228,7 @@ i32.eqz if i32.const 0 - i32.const 1392 + i32.const 1504 i32.const 334 i32.const 14 call $~lib/builtins/abort @@ -1219,7 +1280,7 @@ i32.eqz if i32.const 0 - i32.const 1392 + i32.const 1504 i32.const 347 i32.const 18 call $~lib/builtins/abort @@ -1251,8 +1312,8 @@ i32.const 1073741804 i32.ge_u if - i32.const 1056 - i32.const 1120 + i32.const 1168 + i32.const 1232 i32.const 261 i32.const 31 call $~lib/builtins/abort @@ -1316,8 +1377,8 @@ i32.const 1073741820 i32.gt_u if - i32.const 1056 - i32.const 1392 + i32.const 1168 + i32.const 1504 i32.const 461 i32.const 29 call $~lib/builtins/abort @@ -1419,7 +1480,7 @@ i32.eqz if i32.const 0 - i32.const 1392 + i32.const 1504 i32.const 499 i32.const 16 call $~lib/builtins/abort @@ -1434,7 +1495,7 @@ i32.gt_u if i32.const 0 - i32.const 1392 + i32.const 1504 i32.const 501 i32.const 14 call $~lib/builtins/abort @@ -1453,7 +1514,7 @@ i32.and if i32.const 0 - i32.const 1392 + i32.const 1504 i32.const 361 i32.const 14 call $~lib/builtins/abort @@ -1558,7 +1619,8 @@ memory.fill local.get $1 ) - (func $~lib/rt/itcms/__link (param $0 i32) (param $1 i32) + (func $~lib/rt/itcms/__link (param $0 i32) (param $1 i32) (param $2 i32) + (local $3 i32) local.get $1 i32.eqz if @@ -1568,7 +1630,7 @@ i32.eqz if i32.const 0 - i32.const 1120 + i32.const 1232 i32.const 295 i32.const 14 call $~lib/builtins/abort @@ -1587,21 +1649,25 @@ local.get $0 i32.const 20 i32.sub + local.tee $0 i32.load offset=4 i32.const 3 i32.and - local.tee $0 + local.tee $3 global.get $~lib/rt/itcms/white i32.eqz i32.eq if + local.get $0 local.get $1 + local.get $2 + select call $~lib/rt/itcms/Object#makeGray else global.get $~lib/rt/itcms/state i32.const 1 i32.eq - local.get $0 + local.get $3 i32.const 3 i32.eq i32.and @@ -1613,19 +1679,85 @@ end ) (func $~lib/rt/__visit_members (param $0 i32) - block $folding-inner2 - block $folding-inner1 - block $folding-inner0 - block $invalid - block $~lib/arraybuffer/ArrayBufferView - block $~lib/string/String - block $~lib/arraybuffer/ArrayBuffer - block $~lib/object/Object - local.get $0 - i32.const 8 - i32.sub - i32.load - br_table $~lib/object/Object $~lib/arraybuffer/ArrayBuffer $~lib/string/String $~lib/arraybuffer/ArrayBufferView $folding-inner0 $folding-inner1 $folding-inner1 $folding-inner0 $folding-inner0 $folding-inner0 $folding-inner1 $folding-inner0 $folding-inner0 $folding-inner1 $folding-inner0 $folding-inner0 $folding-inner1 $folding-inner0 $folding-inner0 $folding-inner1 $folding-inner0 $folding-inner0 $folding-inner1 $folding-inner0 $folding-inner0 $folding-inner1 $folding-inner0 $folding-inner0 $folding-inner1 $folding-inner0 $folding-inner0 $folding-inner1 $folding-inner0 $invalid + (local $1 i32) + (local $2 i32) + (local $3 i32) + block $folding-inner3 + block $folding-inner2 + block $folding-inner1 + block $folding-inner0 + block $invalid + block $"~lib/map/KeyValue" + block $"~lib/map/KeyValue" + block $"~lib/map/KeyValue" + block $"~lib/map/KeyValue" + block $"~lib/map/KeyValue" + block $"~lib/map/KeyValue" + block $"~lib/map/KeyValue" + block $"~lib/map/KeyValue" + block $"~lib/map/KeyValue" + block $"~lib/map/KeyValue" + block $"~lib/map/KeyValue" + block $"~lib/map/KeyValue" + block $"~lib/map/KeyValue" + block $"~lib/map/KeyValue" + block $"~lib/map/KeyValue" + block $"~lib/map/KeyValue" + block $"~lib/map/KeyValue" + block $"~lib/map/KeyValue" + block $"~lib/map/KeyValue" + block $~lib/arraybuffer/ArrayBufferView + block $~lib/string/String + block $~lib/arraybuffer/ArrayBuffer + block $~lib/object/Object + local.get $0 + i32.const 8 + i32.sub + i32.load + br_table $~lib/object/Object $~lib/arraybuffer/ArrayBuffer $~lib/string/String $~lib/arraybuffer/ArrayBufferView $folding-inner0 $"~lib/map/KeyValue" $folding-inner1 $folding-inner2 $folding-inner2 $folding-inner0 $"~lib/map/KeyValue" $folding-inner1 $folding-inner0 $"~lib/map/KeyValue" $folding-inner1 $folding-inner0 $"~lib/map/KeyValue" $folding-inner1 $folding-inner2 $folding-inner0 $"~lib/map/KeyValue" $folding-inner1 $folding-inner0 $"~lib/map/KeyValue" $folding-inner1 $folding-inner2 $folding-inner0 $"~lib/map/KeyValue" $folding-inner1 $folding-inner0 $"~lib/map/KeyValue" $folding-inner1 $folding-inner2 $folding-inner0 $"~lib/map/KeyValue" $folding-inner1 $folding-inner0 $"~lib/map/KeyValue" $folding-inner1 $folding-inner2 $folding-inner0 $"~lib/map/KeyValue" $folding-inner1 $folding-inner0 $"~lib/map/KeyValue" $folding-inner1 $folding-inner2 $folding-inner0 $"~lib/map/KeyValue" $folding-inner1 $folding-inner0 $"~lib/map/KeyValue" $folding-inner1 $folding-inner2 $folding-inner0 $"~lib/map/KeyValue" $folding-inner1 $folding-inner0 $"~lib/map/KeyValue" $folding-inner1 $folding-inner2 $folding-inner0 $"~lib/map/KeyValue" $folding-inner1 $folding-inner0 $"~lib/map/KeyValue" $folding-inner1 $folding-inner2 $folding-inner0 $"~lib/map/KeyValue" $folding-inner1 $invalid + end + return + end + return + end + return + end + local.get $0 + i32.load + call $~lib/rt/itcms/__visit + return + end + return + end + return + end + return + end + return + end + return + end + return + end + return + end + return + end + return + end + return + end + return + end + return + end + return + end + return + end + return + end + return end return end @@ -1633,21 +1765,45 @@ end return end - local.get $0 - i32.load - call $~lib/rt/itcms/__visit - return + unreachable end - unreachable + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.sub + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 3104 + i32.lt_s + br_if $folding-inner3 + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + local.get $0 + i32.load + call $~lib/rt/itcms/__visit + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + local.get $0 + i32.load offset=8 + call $~lib/rt/itcms/__visit + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + return end global.get $~lib/memory/__stack_pointer i32.const 4 i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 1896 + i32.const 3104 i32.lt_s - br_if $folding-inner2 + br_if $folding-inner3 global.get $~lib/memory/__stack_pointer i32.const 0 i32.store @@ -1655,13 +1811,42 @@ local.get $0 i32.store local.get $0 - i32.load - call $~lib/rt/itcms/__visit + i32.load offset=4 + local.set $1 global.get $~lib/memory/__stack_pointer local.get $0 i32.store + local.get $1 local.get $0 - i32.load offset=8 + i32.load offset=12 + i32.const 2 + i32.shl + i32.add + local.set $2 + loop $while-continue|0 + local.get $1 + local.get $2 + i32.lt_u + if + local.get $1 + i32.load + local.tee $3 + if + local.get $3 + call $~lib/rt/itcms/__visit + end + local.get $1 + i32.const 4 + i32.add + local.set $1 + br $while-continue|0 + end + end + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + local.get $0 + i32.load call $~lib/rt/itcms/__visit global.get $~lib/memory/__stack_pointer i32.const 4 @@ -1674,9 +1859,9 @@ i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 1896 + i32.const 3104 i32.lt_s - br_if $folding-inner2 + br_if $folding-inner3 global.get $~lib/memory/__stack_pointer i32.const 0 i32.store @@ -1692,8 +1877,8 @@ global.set $~lib/memory/__stack_pointer return end - i32.const 34688 - i32.const 34736 + i32.const 35904 + i32.const 35952 i32.const 1 i32.const 1 call $~lib/builtins/abort @@ -1703,34 +1888,34 @@ memory.size i32.const 16 i32.shl - i32.const 34664 + i32.const 35872 i32.sub i32.const 1 i32.shr_u global.set $~lib/rt/itcms/threshold - i32.const 1172 - i32.const 1168 + i32.const 1284 + i32.const 1280 i32.store - i32.const 1176 - i32.const 1168 + i32.const 1288 + i32.const 1280 i32.store - i32.const 1168 + i32.const 1280 global.set $~lib/rt/itcms/pinSpace - i32.const 1204 - i32.const 1200 + i32.const 1316 + i32.const 1312 i32.store - i32.const 1208 - i32.const 1200 + i32.const 1320 + i32.const 1312 i32.store - i32.const 1200 + i32.const 1312 global.set $~lib/rt/itcms/toSpace - i32.const 1348 - i32.const 1344 + i32.const 1460 + i32.const 1456 i32.store - i32.const 1352 - i32.const 1344 + i32.const 1464 + i32.const 1456 i32.store - i32.const 1344 + i32.const 1456 global.set $~lib/rt/itcms/fromSpace call $"std/map/testNumeric" call $"std/map/testNumeric" @@ -1776,93 +1961,17 @@ i32.add global.set $~lib/rt/itcms/threshold ) - (func $"~lib/map/Map#find" (param $0 i32) (param $1 i32) (param $2 i32) (result i32) - (local $3 i32) - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.sub - global.set $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - i32.const 1896 - i32.lt_s - if - i32.const 34688 - i32.const 34736 - i32.const 1 - i32.const 1 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.store - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store - local.get $0 - i32.load - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store - local.get $2 - local.get $0 - i32.load offset=4 - i32.and - i32.const 2 - i32.shl - i32.add - i32.load - local.set $0 - loop $while-continue|0 - local.get $0 - if - local.get $0 - i32.load offset=8 - local.tee $2 - i32.const 1 - i32.and - if (result i32) - i32.const 0 - else - local.get $0 - i32.load8_u - local.get $1 - i32.const 255 - i32.and - i32.eq - end - if - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $0 - return - end - local.get $2 - i32.const -2 - i32.and - local.set $0 - br $while-continue|0 - end - end - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.add - global.set $~lib/memory/__stack_pointer - i32.const 0 - ) - (func $"~lib/map/Map#has" (param $0 i32) (param $1 i32) (result i32) + (func $"~lib/array/Array<~lib/map/KeyValue>#get:length" (param $0 i32) (result i32) global.get $~lib/memory/__stack_pointer i32.const 4 i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 1896 + i32.const 3104 i32.lt_s if - i32.const 34688 - i32.const 34736 + i32.const 35904 + i32.const 35952 i32.const 1 i32.const 1 call $~lib/builtins/abort @@ -1875,39 +1984,7 @@ local.get $0 i32.store local.get $0 - local.get $1 - local.get $1 - i32.extend8_s - i32.const -1028477379 - i32.mul - i32.const 374761394 - i32.add - i32.const 17 - i32.rotl - i32.const 668265263 - i32.mul - local.tee $0 - local.get $0 - i32.const 15 - i32.shr_u - i32.xor - i32.const -2048144777 - i32.mul - local.tee $0 - local.get $0 - i32.const 13 - i32.shr_u - i32.xor - i32.const -1028477379 - i32.mul - local.tee $0 - local.get $0 - i32.const 16 - i32.shr_u - i32.xor - call $"~lib/map/Map#find" - i32.const 0 - i32.ne + i32.load offset=12 global.get $~lib/memory/__stack_pointer i32.const 4 i32.add @@ -1926,11 +2003,11 @@ i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 1896 + i32.const 3104 i32.lt_s if - i32.const 34688 - i32.const 34736 + i32.const 35904 + i32.const 35952 i32.const 1 i32.const 1 call $~lib/builtins/abort @@ -2066,6 +2143,7 @@ i32.store local.get $0 local.get $6 + i32.const 0 call $~lib/rt/itcms/__link global.get $~lib/memory/__stack_pointer local.get $0 @@ -2084,6 +2162,7 @@ i32.store offset=8 local.get $0 local.get $3 + i32.const 0 call $~lib/rt/itcms/__link global.get $~lib/memory/__stack_pointer local.get $0 @@ -2106,20 +2185,17 @@ i32.add global.set $~lib/memory/__stack_pointer ) - (func $"~lib/map/Map#set" (param $0 i32) (param $1 i32) (param $2 i32) - (local $3 i32) - (local $4 i32) - (local $5 i32) + (func $"~lib/array/Array<~lib/map/KeyValue>#__get" (param $0 i32) (param $1 i32) (result i32) global.get $~lib/memory/__stack_pointer - i32.const 12 + i32.const 8 i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 1896 + i32.const 3104 i32.lt_s if - i32.const 34688 - i32.const 34736 + i32.const 35904 + i32.const 35952 i32.const 1 i32.const 1 call $~lib/builtins/abort @@ -2129,187 +2205,61 @@ i64.const 0 i64.store global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.store offset=8 + local.get $0 + i32.store + local.get $1 + local.get $0 + i32.load offset=12 + i32.ge_u + if + i32.const 1360 + i32.const 1568 + i32.const 114 + i32.const 42 + call $~lib/builtins/abort + unreachable + end global.get $~lib/memory/__stack_pointer local.get $0 i32.store + global.get $~lib/memory/__stack_pointer local.get $0 + i32.load offset=4 local.get $1 - local.get $1 - i32.extend8_s - i32.const -1028477379 - i32.mul - i32.const 374761394 + i32.const 2 + i32.shl i32.add - i32.const 17 - i32.rotl - i32.const 668265263 - i32.mul - local.tee $3 - i32.const 15 - i32.shr_u - local.get $3 - i32.xor - i32.const -2048144777 - i32.mul - local.tee $3 - i32.const 13 - i32.shr_u - local.get $3 - i32.xor - i32.const -1028477379 - i32.mul - local.tee $3 - i32.const 16 - i32.shr_u - local.get $3 - i32.xor - local.tee $4 - call $"~lib/map/Map#find" - local.tee $3 + i32.load + local.tee $0 + i32.store offset=4 + local.get $0 + i32.eqz if - local.get $3 - local.get $2 - i32.store offset=4 - else - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store - local.get $0 - i32.load offset=16 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store - local.get $0 - i32.load offset=12 - i32.eq - if - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 - i32.load offset=20 - local.set $3 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 - local.get $3 - local.get $0 - i32.load offset=12 - i32.const 3 - i32.mul - i32.const 4 - i32.div_s - i32.lt_s - if (result i32) - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 - i32.load offset=4 - else - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 - i32.load offset=4 - i32.const 1 - i32.shl - i32.const 1 - i32.or - end - call $"~lib/map/Map#rehash" - end - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.load offset=8 - local.tee $3 - i32.store offset=8 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 - local.get $0 - i32.load offset=16 - local.tee $5 - i32.const 1 - i32.add - i32.store offset=16 - local.get $3 - local.get $5 - i32.const 12 - i32.mul - i32.add - local.tee $3 - local.get $1 - i32.store8 - local.get $3 - local.get $2 - i32.store offset=4 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 - local.get $0 - i32.load offset=20 - i32.const 1 - i32.add - i32.store offset=20 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store - local.get $0 - i32.load - local.set $1 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store - local.get $3 - local.get $1 - local.get $4 - local.get $0 - i32.load offset=4 - i32.and - i32.const 2 - i32.shl - i32.add - local.tee $0 - i32.load - i32.store offset=8 - local.get $0 - local.get $3 - i32.store + i32.const 1616 + i32.const 1568 + i32.const 118 + i32.const 40 + call $~lib/builtins/abort + unreachable end global.get $~lib/memory/__stack_pointer - i32.const 12 + i32.const 8 i32.add global.set $~lib/memory/__stack_pointer + local.get $0 ) - (func $"~lib/map/Map#get" (param $0 i32) (param $1 i32) (result i32) + (func $"~lib/map/Map#find" (param $0 i32) (param $1 i32) (param $2 i32) (result i32) + (local $3 i32) global.get $~lib/memory/__stack_pointer i32.const 4 i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 1896 + i32.const 3104 i32.lt_s if - i32.const 34688 - i32.const 34736 + i32.const 35904 + i32.const 35952 i32.const 1 i32.const 1 call $~lib/builtins/abort @@ -2322,338 +2272,418 @@ local.get $0 i32.store local.get $0 - local.get $1 - local.get $1 - i32.extend8_s - i32.const -1028477379 - i32.mul - i32.const 374761394 - i32.add - i32.const 17 - i32.rotl - i32.const 668265263 - i32.mul - local.tee $0 - local.get $0 - i32.const 15 - i32.shr_u - i32.xor - i32.const -2048144777 - i32.mul - local.tee $0 - local.get $0 - i32.const 13 - i32.shr_u - i32.xor - i32.const -1028477379 - i32.mul - local.tee $0 + i32.load + global.get $~lib/memory/__stack_pointer local.get $0 - i32.const 16 - i32.shr_u - i32.xor - call $"~lib/map/Map#find" - local.tee $0 - i32.eqz - if - i32.const 1616 - i32.const 1680 - i32.const 105 - i32.const 17 - call $~lib/builtins/abort - unreachable - end + i32.store + local.get $2 local.get $0 i32.load offset=4 + i32.and + i32.const 2 + i32.shl + i32.add + i32.load + local.set $0 + loop $while-continue|0 + local.get $0 + if + local.get $0 + i32.load offset=8 + local.tee $2 + i32.const 1 + i32.and + if (result i32) + i32.const 0 + else + local.get $0 + i32.load8_u + local.get $1 + i32.const 255 + i32.and + i32.eq + end + if + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $0 + return + end + local.get $2 + i32.const -2 + i32.and + local.set $0 + br $while-continue|0 + end + end global.get $~lib/memory/__stack_pointer i32.const 4 i32.add global.set $~lib/memory/__stack_pointer + i32.const 0 ) - (func $"~lib/map/Map#get:size" (param $0 i32) (result i32) + (func $"~lib/map/Map#constructor" (param $0 i32) (result i32) + (local $1 i32) + (local $2 i32) + (local $3 i32) + (local $4 i32) + (local $5 i32) + (local $6 i32) + (local $7 i32) + (local $8 i32) global.get $~lib/memory/__stack_pointer - i32.const 4 + i32.const 16 i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 1896 + i32.const 3104 i32.lt_s if - i32.const 34688 - i32.const 34736 + i32.const 35904 + i32.const 35952 i32.const 1 i32.const 1 call $~lib/builtins/abort unreachable end global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.store + i64.const 0 + i64.store global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store - local.get $0 - i32.load offset=20 + i64.const 0 + i64.store offset=8 global.get $~lib/memory/__stack_pointer + i32.const 24 i32.const 4 - i32.add - global.set $~lib/memory/__stack_pointer - ) - (func $~lib/array/ensureCapacity (param $0 i32) (param $1 i32) (param $2 i32) (param $3 i32) - (local $4 i32) - (local $5 i32) + call $~lib/rt/itcms/__new + local.tee $1 + i32.store + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + i32.const 16 + call $~lib/arraybuffer/ArrayBuffer#constructor + local.set $3 + global.get $~lib/memory/__stack_pointer + local.get $3 + i32.store offset=8 + local.get $1 + local.get $3 + i32.store + local.get $1 + local.get $3 + i32.const 0 + call $~lib/rt/itcms/__link + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + local.get $1 + i32.const 3 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + i32.const 48 + call $~lib/arraybuffer/ArrayBuffer#constructor + local.set $3 global.get $~lib/memory/__stack_pointer + local.get $3 + i32.store offset=8 + local.get $1 + local.get $3 + i32.store offset=8 + local.get $1 + local.get $3 + i32.const 0 + call $~lib/rt/itcms/__link + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + local.get $1 i32.const 4 - i32.sub - global.set $~lib/memory/__stack_pointer + i32.store offset=12 global.get $~lib/memory/__stack_pointer - i32.const 1896 - i32.lt_s - if - i32.const 34688 - i32.const 34736 - i32.const 1 - i32.const 1 - call $~lib/builtins/abort - unreachable - end + local.get $1 + i32.store offset=4 + local.get $1 + i32.const 0 + i32.store offset=16 global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + local.get $1 i32.const 0 - i32.store + i32.store offset=20 global.get $~lib/memory/__stack_pointer local.get $0 - i32.store - local.get $1 + i32.store offset=4 local.get $0 - i32.load offset=8 - local.tee $5 - local.get $2 - i32.shr_u - i32.gt_u + call $"~lib/array/Array<~lib/map/KeyValue>#get:length" + local.tee $3 + i32.const 0 + i32.gt_s if - local.get $1 - i32.const 1073741820 - local.get $2 - i32.shr_u - i32.gt_u - if - i32.const 1456 - i32.const 1728 - i32.const 19 - i32.const 48 - call $~lib/builtins/abort - unreachable - end global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store - local.get $0 - i32.load - local.set $4 - i32.const 8 - local.get $1 local.get $1 - i32.const 8 - i32.le_u - select - local.get $2 - i32.shl - local.set $1 + i32.store offset=4 local.get $3 + local.get $1 + i32.load offset=12 + i32.ge_s if - i32.const 1073741820 - local.get $5 - i32.const 1 - i32.shl - local.tee $2 - local.get $2 - i32.const 1073741820 - i32.ge_u - select - local.tee $2 - local.get $1 - local.get $1 - local.get $2 - i32.lt_u - select - local.set $1 - end - block $__inlined_func$~lib/rt/itcms/__renew$1377 - local.get $4 - i32.const 20 - i32.sub - local.tee $3 - i32.load - i32.const -4 - i32.and - i32.const 16 - i32.sub - local.get $1 - i32.ge_u - if - local.get $3 - local.get $1 - i32.store offset=16 - local.get $4 - local.set $2 - br $__inlined_func$~lib/rt/itcms/__renew$1377 - end - local.get $1 - local.get $3 - i32.load offset=12 - call $~lib/rt/itcms/__new - local.tee $2 - local.get $4 + global.get $~lib/memory/__stack_pointer local.get $1 - local.get $3 - i32.load offset=16 - local.tee $3 + i32.store offset=4 local.get $1 local.get $3 - i32.lt_u - select - memory.copy - end - local.get $2 - local.get $4 - i32.ne - if - local.get $0 - local.get $2 - i32.store - local.get $0 - local.get $2 i32.store offset=4 - local.get $0 - local.get $2 - call $~lib/rt/itcms/__link end - local.get $0 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer local.get $1 i32.store offset=8 - end - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.add - global.set $~lib/memory/__stack_pointer - ) - (func $~lib/array/Array#__set (param $0 i32) (param $1 i32) (param $2 i32) - (local $3 i32) - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.sub - global.set $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - i32.const 1896 - i32.lt_s - if - i32.const 34688 - i32.const 34736 - i32.const 1 - i32.const 1 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.store - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store - 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.load offset=4 i32.const 1 - i32.add - local.tee $3 - i32.const 0 - i32.const 1 - call $~lib/array/ensureCapacity - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store - local.get $0 - local.get $3 - i32.store offset=12 - end - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store - local.get $1 - local.get $0 - i32.load offset=4 - i32.add - local.get $2 - i32.store8 - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.add - global.set $~lib/memory/__stack_pointer - ) - (func $~lib/array/Array#set:length (param $0 i32) (param $1 i32) - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.sub - global.set $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - i32.const 1896 - i32.lt_s - if - i32.const 34688 - i32.const 34736 - i32.const 1 + i32.shl i32.const 1 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.store - local.get $0 - local.get $1 - i32.const 0 + i32.or + call $"~lib/map/Map#rehash" + loop $for-loop|0 + local.get $2 + local.get $3 + i32.lt_s + if + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=8 + local.get $0 + local.get $2 + call $"~lib/array/Array<~lib/map/KeyValue>#__get" + local.set $4 + global.get $~lib/memory/__stack_pointer + local.get $4 + i32.store offset=4 + local.get $4 + i32.load8_s + local.set $4 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=8 + local.get $0 + local.get $2 + call $"~lib/array/Array<~lib/map/KeyValue>#__get" + local.set $5 + global.get $~lib/memory/__stack_pointer + local.get $5 + i32.store offset=4 + local.get $5 + i32.load offset=4 + local.set $6 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + local.get $1 + local.get $4 + local.get $4 + i32.const -1028477379 + i32.mul + i32.const 374761394 + i32.add + i32.const 17 + i32.rotl + i32.const 668265263 + i32.mul + local.tee $5 + i32.const 15 + i32.shr_u + local.get $5 + i32.xor + i32.const -2048144777 + i32.mul + local.tee $5 + i32.const 13 + i32.shr_u + local.get $5 + i32.xor + i32.const -1028477379 + i32.mul + local.tee $5 + i32.const 16 + i32.shr_u + local.get $5 + i32.xor + local.tee $7 + call $"~lib/map/Map#find" + local.tee $5 + if + local.get $5 + local.get $6 + i32.store offset=4 + else + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.load offset=8 + local.tee $5 + i32.store offset=12 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=8 + local.get $1 + local.get $1 + i32.load offset=16 + local.tee $8 + i32.const 1 + i32.add + i32.store offset=16 + local.get $5 + local.get $8 + i32.const 12 + i32.mul + i32.add + local.tee $5 + local.get $4 + i32.store8 + local.get $5 + local.get $6 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=8 + local.get $1 + local.get $1 + i32.load offset=20 + i32.const 1 + i32.add + i32.store offset=20 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + local.get $1 + i32.load + local.set $4 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + local.get $5 + local.get $4 + local.get $7 + local.get $1 + i32.load offset=4 + i32.and + i32.const 2 + i32.shl + i32.add + local.tee $4 + i32.load + i32.store offset=8 + local.get $4 + local.get $5 + i32.store + end + local.get $2 + i32.const 1 + i32.add + local.set $2 + br $for-loop|0 + end + end + end + global.get $~lib/memory/__stack_pointer + i32.const 16 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $1 + ) + (func $"~lib/map/Map#has" (param $0 i32) (param $1 i32) (result i32) + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.sub + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 3104 + i32.lt_s + if + i32.const 35904 + i32.const 35952 + i32.const 1 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer i32.const 0 - call $~lib/array/ensureCapacity + i32.store global.get $~lib/memory/__stack_pointer local.get $0 i32.store local.get $0 local.get $1 - i32.store offset=12 + local.get $1 + i32.extend8_s + i32.const -1028477379 + i32.mul + i32.const 374761394 + i32.add + i32.const 17 + i32.rotl + i32.const 668265263 + i32.mul + local.tee $0 + local.get $0 + i32.const 15 + i32.shr_u + i32.xor + i32.const -2048144777 + i32.mul + local.tee $0 + local.get $0 + i32.const 13 + i32.shr_u + i32.xor + i32.const -1028477379 + i32.mul + local.tee $0 + local.get $0 + i32.const 16 + i32.shr_u + i32.xor + call $"~lib/map/Map#find" + i32.const 0 + i32.ne global.get $~lib/memory/__stack_pointer i32.const 4 i32.add global.set $~lib/memory/__stack_pointer ) - (func $~lib/array/Array#constructor (param $0 i32) (result i32) - (local $1 i32) - (local $2 i32) + (func $"~lib/map/Map#set" (param $0 i32) (param $1 i32) (param $2 i32) (local $3 i32) + (local $4 i32) + (local $5 i32) global.get $~lib/memory/__stack_pointer - i32.const 16 + i32.const 12 i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 1896 + i32.const 3104 i32.lt_s if - i32.const 34688 - i32.const 34736 + i32.const 35904 + i32.const 35952 i32.const 1 i32.const 1 call $~lib/builtins/abort @@ -2663,114 +2693,187 @@ i64.const 0 i64.store global.get $~lib/memory/__stack_pointer - i64.const 0 - i64.store offset=8 - global.get $~lib/memory/__stack_pointer - i32.const 16 - i32.const 6 - call $~lib/rt/itcms/__new - local.tee $1 - i32.store - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - local.get $1 - i32.const 0 - i32.store - local.get $1 - i32.const 0 - call $~lib/rt/itcms/__link - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - local.get $1 - i32.const 0 - i32.store offset=4 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - local.get $1 i32.const 0 i32.store offset=8 global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - local.get $1 - i32.const 0 - i32.store offset=12 - local.get $0 - i32.const 268435455 - i32.gt_u - if - i32.const 1456 - i32.const 1728 - i32.const 70 - i32.const 60 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - i32.const 8 local.get $0 + i32.store local.get $0 - i32.const 8 - i32.le_u - select - i32.const 2 - i32.shl - local.tee $3 - i32.const 1 - call $~lib/rt/itcms/__new - local.tee $2 - i32.store offset=8 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - global.get $~lib/memory/__stack_pointer - local.get $2 - i32.store offset=12 local.get $1 - local.get $2 - i32.store - local.get $1 - local.get $2 - call $~lib/rt/itcms/__link - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - local.get $1 - local.get $2 - i32.store offset=4 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 local.get $1 + i32.extend8_s + i32.const -1028477379 + i32.mul + i32.const 374761394 + i32.add + i32.const 17 + i32.rotl + i32.const 668265263 + i32.mul + local.tee $3 + i32.const 15 + i32.shr_u local.get $3 - i32.store offset=8 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - local.get $1 - local.get $0 - i32.store offset=12 - global.get $~lib/memory/__stack_pointer + i32.xor + i32.const -2048144777 + i32.mul + local.tee $3 + i32.const 13 + i32.shr_u + local.get $3 + i32.xor + i32.const -1028477379 + i32.mul + local.tee $3 i32.const 16 + i32.shr_u + local.get $3 + i32.xor + local.tee $4 + call $"~lib/map/Map#find" + local.tee $3 + if + local.get $3 + local.get $2 + i32.store offset=4 + else + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + local.get $0 + i32.load offset=16 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + local.get $0 + i32.load offset=12 + i32.eq + if + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + local.get $0 + i32.load offset=20 + local.set $3 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + local.get $0 + local.get $3 + local.get $0 + i32.load offset=12 + i32.const 3 + i32.mul + i32.const 4 + i32.div_s + i32.lt_s + if (result i32) + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + local.get $0 + i32.load offset=4 + else + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + local.get $0 + i32.load offset=4 + i32.const 1 + i32.shl + i32.const 1 + i32.or + end + call $"~lib/map/Map#rehash" + end + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.load offset=8 + local.tee $3 + i32.store offset=8 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + local.get $0 + local.get $0 + i32.load offset=16 + local.tee $5 + i32.const 1 + i32.add + i32.store offset=16 + local.get $3 + local.get $5 + i32.const 12 + i32.mul + i32.add + local.tee $3 + local.get $1 + i32.store8 + local.get $3 + local.get $2 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + local.get $0 + local.get $0 + i32.load offset=20 + i32.const 1 + i32.add + i32.store offset=20 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + local.get $0 + i32.load + local.set $1 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + local.get $3 + local.get $1 + local.get $4 + local.get $0 + i32.load offset=4 + i32.and + i32.const 2 + i32.shl + i32.add + local.tee $0 + i32.load + i32.store offset=8 + local.get $0 + local.get $3 + i32.store + end + global.get $~lib/memory/__stack_pointer + i32.const 12 i32.add global.set $~lib/memory/__stack_pointer - local.get $1 ) - (func $~lib/array/Array#__set (param $0 i32) (param $1 i32) (param $2 i32) - (local $3 i32) + (func $"~lib/map/Map#get" (param $0 i32) (param $1 i32) (result i32) global.get $~lib/memory/__stack_pointer i32.const 4 i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 1896 + i32.const 3104 i32.lt_s if - i32.const 34688 - i32.const 34736 + i32.const 35904 + i32.const 35952 i32.const 1 i32.const 1 call $~lib/builtins/abort @@ -2782,64 +2885,66 @@ global.get $~lib/memory/__stack_pointer local.get $0 i32.store + local.get $0 local.get $1 + local.get $1 + i32.extend8_s + i32.const -1028477379 + i32.mul + i32.const 374761394 + i32.add + i32.const 17 + i32.rotl + i32.const 668265263 + i32.mul + local.tee $0 local.get $0 - i32.load offset=12 - i32.ge_u + i32.const 15 + i32.shr_u + i32.xor + i32.const -2048144777 + i32.mul + local.tee $0 + local.get $0 + i32.const 13 + i32.shr_u + i32.xor + i32.const -1028477379 + i32.mul + local.tee $0 + local.get $0 + i32.const 16 + i32.shr_u + i32.xor + call $"~lib/map/Map#find" + local.tee $0 + i32.eqz 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 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store - local.get $0 - local.get $3 - i32.store offset=12 + i32.const 1824 + i32.const 1888 + i32.const 148 + i32.const 17 + call $~lib/builtins/abort + unreachable end - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store local.get $0 i32.load offset=4 - local.get $1 - i32.const 2 - i32.shl - i32.add - local.get $2 - i32.store global.get $~lib/memory/__stack_pointer i32.const 4 i32.add global.set $~lib/memory/__stack_pointer ) - (func $~lib/array/Array#set:length (param $0 i32) (param $1 i32) + (func $"~lib/map/Map#get:size" (param $0 i32) (result i32) global.get $~lib/memory/__stack_pointer i32.const 4 i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 1896 + i32.const 3104 i32.lt_s if - i32.const 34688 - i32.const 34736 + i32.const 35904 + i32.const 35952 i32.const 1 i32.const 1 call $~lib/builtins/abort @@ -2848,211 +2953,234 @@ global.get $~lib/memory/__stack_pointer i32.const 0 i32.store - local.get $0 - local.get $1 - i32.const 2 - i32.const 0 - call $~lib/array/ensureCapacity - global.get $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer local.get $0 i32.store local.get $0 - local.get $1 - i32.store offset=12 + i32.load offset=20 global.get $~lib/memory/__stack_pointer i32.const 4 i32.add global.set $~lib/memory/__stack_pointer ) - (func $"~lib/map/Map#values" (param $0 i32) (result i32) - (local $1 i32) - (local $2 i32) - (local $3 i32) + (func $~lib/array/ensureCapacity (param $0 i32) (param $1 i32) (param $2 i32) (param $3 i32) (local $4 i32) (local $5 i32) global.get $~lib/memory/__stack_pointer - i32.const 8 + i32.const 4 i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 1896 + i32.const 3104 i32.lt_s if - i32.const 34688 - i32.const 34736 + i32.const 35904 + i32.const 35952 i32.const 1 i32.const 1 call $~lib/builtins/abort unreachable end global.get $~lib/memory/__stack_pointer - i64.const 0 - i64.store - global.get $~lib/memory/__stack_pointer - local.get $0 + i32.const 0 i32.store - local.get $0 - i32.load offset=8 - local.set $3 global.get $~lib/memory/__stack_pointer local.get $0 i32.store - global.get $~lib/memory/__stack_pointer + local.get $1 local.get $0 - i32.load offset=16 - local.tee $0 - call $~lib/array/Array#constructor + i32.load offset=8 local.tee $5 - i32.store offset=4 - loop $for-loop|0 + local.get $2 + i32.shr_u + i32.gt_u + if + local.get $1 + i32.const 1073741820 + local.get $2 + i32.shr_u + i32.gt_u + if + i32.const 1056 + i32.const 1568 + i32.const 19 + i32.const 48 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store local.get $0 + i32.load + local.set $4 + i32.const 8 + local.get $1 + local.get $1 + i32.const 8 + i32.le_u + select local.get $2 - i32.gt_s + i32.shl + local.set $1 + local.get $3 if - local.get $3 - local.get $2 - i32.const 12 - i32.mul - i32.add - local.tee $4 - i32.load offset=8 + i32.const 1073741820 + local.get $5 i32.const 1 + i32.shl + local.tee $2 + local.get $2 + i32.const 1073741820 + i32.ge_u + select + local.tee $2 + local.get $1 + local.get $1 + local.get $2 + i32.lt_u + select + local.set $1 + end + block $__inlined_func$~lib/rt/itcms/__renew$1779 + local.get $4 + i32.const 20 + i32.sub + local.tee $3 + i32.load + i32.const -4 i32.and - i32.eqz + i32.const 16 + i32.sub + local.get $1 + i32.ge_u if - global.get $~lib/memory/__stack_pointer - local.get $5 - i32.store - local.get $5 + local.get $3 local.get $1 + i32.store offset=16 local.get $4 - i32.load offset=4 - call $~lib/array/Array#__set - local.get $1 - i32.const 1 - i32.add - local.set $1 + local.set $2 + br $__inlined_func$~lib/rt/itcms/__renew$1779 end + local.get $1 + local.get $3 + i32.load offset=12 + call $~lib/rt/itcms/__new + local.tee $2 + local.get $4 + local.get $1 + local.get $3 + i32.load offset=16 + local.tee $3 + local.get $1 + local.get $3 + i32.lt_u + select + memory.copy + end + local.get $2 + local.get $4 + i32.ne + if + local.get $0 local.get $2 - i32.const 1 - i32.add - local.set $2 - br $for-loop|0 + i32.store + local.get $0 + local.get $2 + i32.store offset=4 + local.get $0 + local.get $2 + i32.const 0 + call $~lib/rt/itcms/__link end + local.get $0 + local.get $1 + i32.store offset=8 end global.get $~lib/memory/__stack_pointer - local.get $5 - i32.store - local.get $5 - local.get $1 - call $~lib/array/Array#set:length - global.get $~lib/memory/__stack_pointer - i32.const 8 + i32.const 4 i32.add global.set $~lib/memory/__stack_pointer - local.get $5 ) - (func $"~lib/map/Map#constructor" (result i32) - (local $0 i32) - (local $1 i32) + (func $~lib/array/Array#__set (param $0 i32) (param $1 i32) (param $2 i32) + (local $3 i32) global.get $~lib/memory/__stack_pointer - i32.const 12 + i32.const 4 i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 1896 + i32.const 3104 i32.lt_s if - i32.const 34688 - i32.const 34736 + i32.const 35904 + i32.const 35952 i32.const 1 i32.const 1 call $~lib/builtins/abort unreachable end global.get $~lib/memory/__stack_pointer - i64.const 0 - i64.store - global.get $~lib/memory/__stack_pointer i32.const 0 - i32.store offset=8 - global.get $~lib/memory/__stack_pointer - i32.const 24 - i32.const 8 - call $~lib/rt/itcms/__new - local.tee $0 i32.store global.get $~lib/memory/__stack_pointer local.get $0 - i32.store offset=4 - i32.const 16 - call $~lib/arraybuffer/ArrayBuffer#constructor - local.set $1 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=8 - local.get $0 - local.get $1 i32.store - local.get $0 local.get $1 - call $~lib/rt/itcms/__link - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 - i32.const 3 - i32.store offset=4 - global.get $~lib/memory/__stack_pointer local.get $0 - i32.store offset=4 - i32.const 48 - call $~lib/arraybuffer/ArrayBuffer#constructor - local.set $1 + i32.load offset=12 + i32.ge_u + if + local.get $1 + i32.const 0 + i32.lt_s + if + i32.const 1360 + i32.const 1568 + 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 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + local.get $0 + local.get $3 + i32.store offset=12 + end global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=8 local.get $0 + i32.store local.get $1 - i32.store offset=8 local.get $0 - local.get $1 - call $~lib/rt/itcms/__link + i32.load offset=4 + i32.add + local.get $2 + i32.store8 global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 i32.const 4 - i32.store offset=12 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 - i32.const 0 - i32.store offset=16 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 - i32.const 0 - i32.store offset=20 - global.get $~lib/memory/__stack_pointer - i32.const 12 i32.add global.set $~lib/memory/__stack_pointer - local.get $0 ) - (func $~lib/array/Array#get:length (param $0 i32) (result i32) + (func $~lib/array/Array#set:length (param $0 i32) (param $1 i32) global.get $~lib/memory/__stack_pointer i32.const 4 i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 1896 + i32.const 3104 i32.lt_s if - i32.const 34688 - i32.const 34736 + i32.const 35904 + i32.const 35952 i32.const 1 i32.const 1 call $~lib/builtins/abort @@ -3061,27 +3189,155 @@ global.get $~lib/memory/__stack_pointer i32.const 0 i32.store + local.get $0 + local.get $1 + i32.const 0 + i32.const 0 + call $~lib/array/ensureCapacity global.get $~lib/memory/__stack_pointer local.get $0 i32.store local.get $0 - i32.load offset=12 + local.get $1 + i32.store offset=12 global.get $~lib/memory/__stack_pointer i32.const 4 i32.add global.set $~lib/memory/__stack_pointer ) - (func $~lib/array/Array#__get (param $0 i32) (param $1 i32) (result i32) + (func $~lib/array/Array#constructor (param $0 i32) (result i32) + (local $1 i32) + (local $2 i32) + (local $3 i32) + global.get $~lib/memory/__stack_pointer + i32.const 16 + i32.sub + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 3104 + i32.lt_s + if + i32.const 35904 + i32.const 35952 + i32.const 1 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store + global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store offset=8 + global.get $~lib/memory/__stack_pointer + i32.const 16 + i32.const 7 + call $~lib/rt/itcms/__new + local.tee $1 + i32.store + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + local.get $1 + i32.const 0 + i32.store + local.get $1 + i32.const 0 + i32.const 0 + call $~lib/rt/itcms/__link + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + local.get $1 + i32.const 0 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + local.get $1 + i32.const 0 + i32.store offset=8 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + local.get $1 + i32.const 0 + i32.store offset=12 + local.get $0 + i32.const 268435455 + i32.gt_u + if + i32.const 1056 + i32.const 1568 + i32.const 70 + i32.const 60 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + i32.const 8 + local.get $0 + local.get $0 + i32.const 8 + i32.le_u + select + i32.const 2 + i32.shl + local.tee $3 + i32.const 1 + call $~lib/rt/itcms/__new + local.tee $2 + i32.store offset=8 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + local.get $2 + i32.store offset=12 + local.get $1 + local.get $2 + i32.store + local.get $1 + local.get $2 + i32.const 0 + call $~lib/rt/itcms/__link + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + local.get $1 + local.get $2 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + local.get $1 + local.get $3 + i32.store offset=8 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + local.get $1 + local.get $0 + i32.store offset=12 + global.get $~lib/memory/__stack_pointer + i32.const 16 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $1 + ) + (func $~lib/array/Array#__set (param $0 i32) (param $1 i32) (param $2 i32) + (local $3 i32) global.get $~lib/memory/__stack_pointer i32.const 4 i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 1896 + i32.const 3104 i32.lt_s if - i32.const 34688 - i32.const 34736 + i32.const 35904 + i32.const 35952 i32.const 1 i32.const 1 call $~lib/builtins/abort @@ -3098,12 +3354,31 @@ i32.load offset=12 i32.ge_u if - i32.const 1248 - i32.const 1728 - i32.const 114 - i32.const 42 - call $~lib/builtins/abort - unreachable + local.get $1 + i32.const 0 + i32.lt_s + if + i32.const 1360 + i32.const 1568 + 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 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + local.get $0 + local.get $3 + i32.store offset=12 end global.get $~lib/memory/__stack_pointer local.get $0 @@ -3114,528 +3389,137 @@ i32.const 2 i32.shl i32.add - i32.load + local.get $2 + i32.store + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + ) + (func $~lib/array/Array#set:length (param $0 i32) (param $1 i32) + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.sub + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 3104 + i32.lt_s + if + i32.const 35904 + i32.const 35952 + i32.const 1 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store + local.get $0 + local.get $1 + i32.const 2 + i32.const 0 + call $~lib/array/ensureCapacity + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + local.get $0 + local.get $1 + i32.store offset=12 global.get $~lib/memory/__stack_pointer i32.const 4 i32.add global.set $~lib/memory/__stack_pointer ) - (func $"~lib/map/Map#set" (param $0 i32) (param $1 i32) (param $2 i32) + (func $"~lib/map/Map#values" (param $0 i32) (result i32) + (local $1 i32) + (local $2 i32) (local $3 i32) (local $4 i32) (local $5 i32) - (local $6 i32) - (local $7 i32) - (local $8 i32) - (local $9 i32) - (local $10 i32) - (local $11 i32) global.get $~lib/memory/__stack_pointer - i32.const 12 + i32.const 8 i32.sub global.set $~lib/memory/__stack_pointer - block $folding-inner1 - global.get $~lib/memory/__stack_pointer - i32.const 1896 - i32.lt_s - br_if $folding-inner1 - global.get $~lib/memory/__stack_pointer - i64.const 0 - i64.store - global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.store offset=8 - global.get $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 3104 + i32.lt_s + if + i32.const 35904 + i32.const 35952 + i32.const 1 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + local.get $0 + i32.load offset=8 + local.set $3 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.load offset=16 + local.tee $0 + call $~lib/array/Array#constructor + local.tee $5 + i32.store offset=4 + loop $for-loop|0 local.get $0 - i32.store - local.get $1 - i32.extend8_s - i32.const -1028477379 - i32.mul - i32.const 374761394 - i32.add - i32.const 17 - i32.rotl - i32.const 668265263 - i32.mul - local.tee $3 - i32.const 15 - i32.shr_u - local.get $3 - i32.xor - i32.const -2048144777 - i32.mul - local.tee $3 - i32.const 13 - i32.shr_u - local.get $3 - i32.xor - i32.const -1028477379 - i32.mul - local.tee $3 - i32.const 16 - i32.shr_u - local.get $3 - i32.xor - local.tee $8 - local.set $3 - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.sub - global.set $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - i32.const 1896 - i32.lt_s - br_if $folding-inner1 - global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.store - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store - local.get $0 - i32.load - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store - local.get $3 - local.get $0 - i32.load offset=4 - i32.and - i32.const 2 - i32.shl - i32.add - i32.load - local.set $3 - block $"__inlined_func$~lib/map/Map#find$1378" - loop $while-continue|0 - local.get $3 - if - local.get $3 - i32.load offset=4 - local.tee $4 - i32.const 1 - i32.and - if (result i32) - i32.const 0 - else - local.get $3 - i32.load8_u - local.get $1 - i32.const 255 - i32.and - i32.eq - end - if - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.add - global.set $~lib/memory/__stack_pointer - br $"__inlined_func$~lib/map/Map#find$1378" - end - local.get $4 - i32.const -2 - i32.and - local.set $3 - br $while-continue|0 - end - end - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.add - global.set $~lib/memory/__stack_pointer - i32.const 0 - local.set $3 - end - local.get $3 + local.get $2 + i32.gt_s if local.get $3 local.get $2 - i32.store8 offset=1 - else - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store - local.get $0 - i32.load offset=16 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store - local.get $0 - i32.load offset=12 - i32.eq + i32.const 12 + i32.mul + i32.add + local.tee $4 + i32.load offset=8 + i32.const 1 + i32.and + i32.eqz if global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 - i32.load offset=20 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 - i32.load offset=12 - i32.const 3 - i32.mul - i32.const 4 - i32.div_s - i32.lt_s - if (result i32) - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 - i32.load offset=4 - else - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 - i32.load offset=4 - i32.const 1 - i32.shl - i32.const 1 - i32.or - end - local.set $7 - global.get $~lib/memory/__stack_pointer - i32.const 16 - i32.sub - global.set $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - i32.const 1896 - i32.lt_s - br_if $folding-inner1 - global.get $~lib/memory/__stack_pointer - i64.const 0 - i64.store - global.get $~lib/memory/__stack_pointer - i64.const 0 - i64.store offset=8 - global.get $~lib/memory/__stack_pointer - local.get $7 - i32.const 1 - i32.add - local.tee $3 - i32.const 2 - i32.shl - call $~lib/arraybuffer/ArrayBuffer#constructor - local.tee $6 - i32.store - global.get $~lib/memory/__stack_pointer - local.get $3 - i32.const 3 - i32.shl - i32.const 3 - i32.div_s - local.tee $9 - i32.const 3 - i32.shl - call $~lib/arraybuffer/ArrayBuffer#constructor - local.tee $4 - i32.store offset=4 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=8 - local.get $0 - i32.load offset=8 - local.set $5 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=8 local.get $5 - local.get $0 - i32.load offset=16 - i32.const 3 - i32.shl - i32.add - local.set $10 - local.get $4 - local.set $3 - loop $while-continue|00 - local.get $5 - local.get $10 - i32.ne - if - local.get $5 - i32.load offset=4 - i32.const 1 - i32.and - i32.eqz - if - local.get $3 - local.get $5 - i32.load8_s - local.tee $11 - i32.store8 - local.get $3 - local.get $5 - i32.load8_s offset=1 - i32.store8 offset=1 - local.get $3 - local.get $6 - local.get $7 - local.get $11 - i32.const -1028477379 - i32.mul - i32.const 374761394 - i32.add - i32.const 17 - i32.rotl - i32.const 668265263 - i32.mul - local.tee $11 - local.get $11 - i32.const 15 - i32.shr_u - i32.xor - i32.const -2048144777 - i32.mul - local.tee $11 - local.get $11 - i32.const 13 - i32.shr_u - i32.xor - i32.const -1028477379 - i32.mul - local.tee $11 - local.get $11 - i32.const 16 - i32.shr_u - i32.xor - i32.and - i32.const 2 - i32.shl - i32.add - local.tee $11 - i32.load - i32.store offset=4 - local.get $11 - local.get $3 - i32.store - local.get $3 - i32.const 8 - i32.add - local.set $3 - end - local.get $5 - i32.const 8 - i32.add - local.set $5 - br $while-continue|00 - end - end - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=8 - global.get $~lib/memory/__stack_pointer - local.get $6 - i32.store offset=12 - local.get $0 - local.get $6 i32.store - local.get $0 - local.get $6 - call $~lib/rt/itcms/__link - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=8 - local.get $0 - local.get $7 - i32.store offset=4 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=8 - global.get $~lib/memory/__stack_pointer - local.get $4 - i32.store offset=12 - local.get $0 - local.get $4 - i32.store offset=8 - local.get $0 + local.get $5 + local.get $1 local.get $4 - call $~lib/rt/itcms/__link - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=8 - local.get $0 - local.get $9 - i32.store offset=12 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=8 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=12 - local.get $0 - local.get $0 - i32.load offset=20 - i32.store offset=16 - global.get $~lib/memory/__stack_pointer - i32.const 16 + i32.load offset=4 + call $~lib/array/Array#__set + local.get $1 + i32.const 1 i32.add - global.set $~lib/memory/__stack_pointer + local.set $1 end - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.load offset=8 - local.tee $3 - i32.store offset=8 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 - local.get $0 - i32.load offset=16 - local.tee $4 + local.get $2 i32.const 1 i32.add - i32.store offset=16 - local.get $3 - local.get $4 - i32.const 3 - i32.shl - i32.add - local.tee $3 - local.get $1 - i32.store8 - local.get $3 - local.get $2 - i32.store8 offset=1 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 - local.get $0 - i32.load offset=20 - i32.const 1 - i32.add - i32.store offset=20 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store - local.get $0 - i32.load - local.set $1 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store - local.get $3 - local.get $1 - local.get $8 - local.get $0 - i32.load offset=4 - i32.and - i32.const 2 - i32.shl - i32.add - local.tee $0 - i32.load - i32.store offset=4 - local.get $0 - local.get $3 - i32.store + local.set $2 + br $for-loop|0 end - global.get $~lib/memory/__stack_pointer - i32.const 12 - i32.add - global.set $~lib/memory/__stack_pointer - return - end - i32.const 34688 - i32.const 34736 - i32.const 1 - i32.const 1 - call $~lib/builtins/abort - unreachable - ) - (func $"~lib/map/Map#find" (param $0 i32) (param $1 i32) (param $2 i32) (result i32) - (local $3 i32) - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.sub - global.set $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - i32.const 1896 - i32.lt_s - if - i32.const 34688 - i32.const 34736 - i32.const 1 - i32.const 1 - call $~lib/builtins/abort - unreachable end global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.store - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store - local.get $0 - i32.load - global.get $~lib/memory/__stack_pointer - local.get $0 + local.get $5 i32.store - local.get $2 - local.get $0 - i32.load offset=4 - i32.and - i32.const 2 - i32.shl - i32.add - i32.load - local.set $0 - loop $while-continue|0 - local.get $0 - if - local.get $0 - i32.load offset=8 - local.tee $2 - i32.const 1 - i32.and - if (result i32) - i32.const 0 - else - local.get $1 - local.get $0 - i32.load - i32.eq - end - if - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $0 - return - end - local.get $2 - i32.const -2 - i32.and - local.set $0 - br $while-continue|0 - end - end + local.get $5 + local.get $1 + call $~lib/array/Array#set:length global.get $~lib/memory/__stack_pointer - i32.const 4 + i32.const 8 i32.add global.set $~lib/memory/__stack_pointer - i32.const 0 + local.get $5 ) - (func $"~lib/map/Map#rehash" (param $0 i32) (param $1 i32) + (func $"~lib/map/Map#rehash" (param $0 i32) (param $1 i32) (local $2 i32) (local $3 i32) (local $4 i32) @@ -3648,11 +3532,11 @@ i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 1896 + i32.const 3104 i32.lt_s if - i32.const 34688 - i32.const 34736 + i32.const 35904 + i32.const 35952 i32.const 1 i32.const 1 call $~lib/builtins/abort @@ -3681,8 +3565,8 @@ i32.const 3 i32.div_s local.tee $5 - i32.const 12 - i32.mul + i32.const 3 + i32.shl call $~lib/arraybuffer/ArrayBuffer#constructor local.tee $3 i32.store offset=4 @@ -3698,8 +3582,8 @@ local.get $7 local.get $0 i32.load offset=16 - i32.const 12 - i32.mul + i32.const 3 + i32.shl i32.add local.set $4 local.get $3 @@ -3710,27 +3594,27 @@ i32.ne if local.get $7 - i32.load offset=8 + i32.load offset=4 i32.const 1 i32.and i32.eqz if local.get $2 local.get $7 - i32.load + i32.load8_s local.tee $8 - i32.store + i32.store8 local.get $2 local.get $7 - i32.load offset=4 - i32.store offset=4 + i32.load8_s offset=1 + i32.store8 offset=1 local.get $2 local.get $6 local.get $1 local.get $8 i32.const -1028477379 i32.mul - i32.const 374761397 + i32.const 374761394 i32.add i32.const 17 i32.rotl @@ -3761,17 +3645,17 @@ i32.add local.tee $8 i32.load - i32.store offset=8 + i32.store offset=4 local.get $8 local.get $2 i32.store local.get $2 - i32.const 12 + i32.const 8 i32.add local.set $2 end local.get $7 - i32.const 12 + i32.const 8 i32.add local.set $7 br $while-continue|0 @@ -3788,6 +3672,7 @@ i32.store local.get $0 local.get $6 + i32.const 0 call $~lib/rt/itcms/__link global.get $~lib/memory/__stack_pointer local.get $0 @@ -3806,6 +3691,7 @@ i32.store offset=8 local.get $0 local.get $3 + i32.const 0 call $~lib/rt/itcms/__link global.get $~lib/memory/__stack_pointer local.get $0 @@ -3828,210 +3714,101 @@ i32.add global.set $~lib/memory/__stack_pointer ) - (func $"~lib/map/Map#set" (param $0 i32) (param $1 i32) (param $2 i32) + (func $"~lib/map/Map#find" (param $0 i32) (param $1 i32) (param $2 i32) (result i32) (local $3 i32) - (local $4 i32) - (local $5 i32) global.get $~lib/memory/__stack_pointer - i32.const 12 + i32.const 4 i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 1896 + i32.const 3104 i32.lt_s if - i32.const 34688 - i32.const 34736 + i32.const 35904 + i32.const 35952 i32.const 1 i32.const 1 call $~lib/builtins/abort unreachable end global.get $~lib/memory/__stack_pointer - i64.const 0 - i64.store - global.get $~lib/memory/__stack_pointer i32.const 0 - i32.store offset=8 + i32.store global.get $~lib/memory/__stack_pointer local.get $0 i32.store local.get $0 - local.get $1 - local.get $1 - i32.const -1028477379 - i32.mul - i32.const 374761397 + i32.load + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + local.get $2 + local.get $0 + i32.load offset=4 + i32.and + i32.const 2 + i32.shl i32.add - i32.const 17 - i32.rotl - i32.const 668265263 - i32.mul - local.tee $3 - i32.const 15 - i32.shr_u - local.get $3 - i32.xor - i32.const -2048144777 - i32.mul - local.tee $3 - i32.const 13 - i32.shr_u - local.get $3 - i32.xor - i32.const -1028477379 - i32.mul - local.tee $3 - i32.const 16 - i32.shr_u - local.get $3 - i32.xor - local.tee $4 - call $"~lib/map/Map#find" - local.tee $3 - if - local.get $3 - local.get $2 - i32.store offset=4 - else - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store - local.get $0 - i32.load offset=16 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store + i32.load + local.set $0 + loop $while-continue|0 local.get $0 - i32.load offset=12 - i32.eq if - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 - i32.load offset=20 - local.set $3 - global.get $~lib/memory/__stack_pointer local.get $0 - i32.store offset=4 - local.get $0 - local.get $3 - local.get $0 - i32.load offset=12 - i32.const 3 - i32.mul - i32.const 4 - i32.div_s - i32.lt_s + i32.load offset=4 + local.tee $2 + i32.const 1 + i32.and if (result i32) - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 - i32.load offset=4 + i32.const 0 else + local.get $0 + i32.load8_u + local.get $1 + i32.const 255 + i32.and + i32.eq + end + if global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer local.get $0 - i32.store offset=4 - local.get $0 - i32.load offset=4 - i32.const 1 - i32.shl - i32.const 1 - i32.or + return end - call $"~lib/map/Map#rehash" + local.get $2 + i32.const -2 + i32.and + local.set $0 + br $while-continue|0 end - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.load offset=8 - local.tee $3 - i32.store offset=8 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 - local.get $0 - i32.load offset=16 - local.tee $5 - i32.const 1 - i32.add - i32.store offset=16 - local.get $3 - local.get $5 - i32.const 12 - i32.mul - i32.add - local.tee $3 - local.get $1 - i32.store - local.get $3 - local.get $2 - i32.store offset=4 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 - local.get $0 - i32.load offset=20 - i32.const 1 - i32.add - i32.store offset=20 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store - local.get $0 - i32.load - local.set $1 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store - local.get $3 - local.get $1 - local.get $4 - local.get $0 - i32.load offset=4 - i32.and - i32.const 2 - i32.shl - i32.add - local.tee $0 - i32.load - i32.store offset=8 - local.get $0 - local.get $3 - i32.store end global.get $~lib/memory/__stack_pointer - i32.const 12 + i32.const 4 i32.add global.set $~lib/memory/__stack_pointer + i32.const 0 ) - (func $"~lib/map/Map#delete" (param $0 i32) (param $1 i32) + (func $"~lib/map/Map#constructor" (param $0 i32) (result i32) + (local $1 i32) (local $2 i32) + (local $3 i32) + (local $4 i32) + (local $5 i32) + (local $6 i32) + (local $7 i32) + (local $8 i32) global.get $~lib/memory/__stack_pointer - i32.const 8 + i32.const 16 i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 1896 + i32.const 3104 i32.lt_s if - i32.const 34688 - i32.const 34736 + i32.const 35904 + i32.const 35952 i32.const 1 i32.const 1 call $~lib/builtins/abort @@ -4041,134 +3818,281 @@ i64.const 0 i64.store global.get $~lib/memory/__stack_pointer - local.get $0 + i64.const 0 + i64.store offset=8 + global.get $~lib/memory/__stack_pointer + i32.const 24 + i32.const 9 + call $~lib/rt/itcms/__new + local.tee $1 i32.store - local.get $0 + global.get $~lib/memory/__stack_pointer local.get $1 + i32.store offset=4 + i32.const 16 + call $~lib/arraybuffer/ArrayBuffer#constructor + local.set $3 + global.get $~lib/memory/__stack_pointer + local.get $3 + i32.store offset=8 local.get $1 - i32.extend8_s - i32.const -1028477379 - i32.mul - i32.const 374761394 - i32.add - i32.const 17 - i32.rotl - i32.const 668265263 - i32.mul - local.tee $1 - i32.const 15 - i32.shr_u + local.get $3 + i32.store local.get $1 - i32.xor - i32.const -2048144777 - i32.mul - local.tee $1 - i32.const 13 - i32.shr_u + local.get $3 + i32.const 0 + call $~lib/rt/itcms/__link + global.get $~lib/memory/__stack_pointer local.get $1 - i32.xor - i32.const -1028477379 - i32.mul - local.tee $1 - i32.const 16 - i32.shr_u + i32.store offset=4 local.get $1 - i32.xor - call $"~lib/map/Map#find" - local.tee $1 - i32.eqz - if - global.get $~lib/memory/__stack_pointer - i32.const 8 - i32.add - global.set $~lib/memory/__stack_pointer - return - end + i32.const 3 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer local.get $1 + i32.store offset=4 + i32.const 32 + call $~lib/arraybuffer/ArrayBuffer#constructor + local.set $3 + global.get $~lib/memory/__stack_pointer + local.get $3 + i32.store offset=8 local.get $1 - i32.load offset=8 - i32.const 1 - i32.or + local.get $3 i32.store offset=8 + local.get $1 + local.get $3 + i32.const 0 + call $~lib/rt/itcms/__link global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store + local.get $1 + i32.store offset=4 + local.get $1 + i32.const 4 + i32.store offset=12 global.get $~lib/memory/__stack_pointer - local.get $0 + local.get $1 i32.store offset=4 - local.get $0 - local.get $0 - i32.load offset=20 - i32.const 1 - i32.sub - i32.store offset=20 + local.get $1 + i32.const 0 + i32.store offset=16 global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store - local.get $0 - i32.load offset=4 - i32.const 1 - i32.shr_u - local.set $1 + local.get $1 + i32.store offset=4 + local.get $1 + i32.const 0 + i32.store offset=20 global.get $~lib/memory/__stack_pointer local.get $0 - i32.store - local.get $1 - i32.const 1 - i32.add - i32.const 4 + i32.store offset=4 local.get $0 - i32.load offset=20 - local.tee $2 - local.get $2 - i32.const 4 - i32.lt_u - select - i32.ge_u - if (result i32) - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store - local.get $0 - i32.load offset=20 + call $"~lib/array/Array<~lib/map/KeyValue>#get:length" + local.tee $3 + i32.const 0 + i32.gt_s + if global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store - local.get $0 + local.get $1 + i32.store offset=4 + local.get $3 + local.get $1 i32.load offset=12 - i32.const 3 - i32.mul - i32.const 4 - i32.div_s - i32.lt_s - else - i32.const 0 - end - if + i32.ge_s + if + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + local.get $1 + local.get $3 + i32.store offset=4 + end global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store - local.get $0 local.get $1 - call $"~lib/map/Map#rehash" - end - global.get $~lib/memory/__stack_pointer - i32.const 8 - i32.add - global.set $~lib/memory/__stack_pointer - ) - (func $"~lib/map/Map#clear" (param $0 i32) - (local $1 i32) + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=8 + local.get $1 + local.get $1 + i32.load offset=4 + i32.const 1 + i32.shl + i32.const 1 + i32.or + call $"~lib/map/Map#rehash" + loop $for-loop|0 + local.get $2 + local.get $3 + i32.lt_s + if + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=8 + local.get $0 + local.get $2 + call $"~lib/array/Array<~lib/map/KeyValue>#__get" + local.set $4 + global.get $~lib/memory/__stack_pointer + local.get $4 + i32.store offset=4 + local.get $4 + i32.load8_s + local.set $4 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=8 + local.get $0 + local.get $2 + call $"~lib/array/Array<~lib/map/KeyValue>#__get" + local.set $5 + global.get $~lib/memory/__stack_pointer + local.get $5 + i32.store offset=4 + local.get $5 + i32.load8_s offset=1 + local.set $6 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + local.get $1 + local.get $4 + local.get $4 + i32.const -1028477379 + i32.mul + i32.const 374761394 + i32.add + i32.const 17 + i32.rotl + i32.const 668265263 + i32.mul + local.tee $5 + i32.const 15 + i32.shr_u + local.get $5 + i32.xor + i32.const -2048144777 + i32.mul + local.tee $5 + i32.const 13 + i32.shr_u + local.get $5 + i32.xor + i32.const -1028477379 + i32.mul + local.tee $5 + i32.const 16 + i32.shr_u + local.get $5 + i32.xor + local.tee $7 + call $"~lib/map/Map#find" + local.tee $5 + if + local.get $5 + local.get $6 + i32.store8 offset=1 + else + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.load offset=8 + local.tee $5 + i32.store offset=12 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=8 + local.get $1 + local.get $1 + i32.load offset=16 + local.tee $8 + i32.const 1 + i32.add + i32.store offset=16 + local.get $5 + local.get $8 + i32.const 3 + i32.shl + i32.add + local.tee $5 + local.get $4 + i32.store8 + local.get $5 + local.get $6 + i32.store8 offset=1 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=8 + local.get $1 + local.get $1 + i32.load offset=20 + i32.const 1 + i32.add + i32.store offset=20 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + local.get $1 + i32.load + local.set $4 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + local.get $5 + local.get $4 + local.get $7 + local.get $1 + i32.load offset=4 + i32.and + i32.const 2 + i32.shl + i32.add + local.tee $4 + i32.load + i32.store offset=4 + local.get $4 + local.get $5 + i32.store + end + local.get $2 + i32.const 1 + i32.add + local.set $2 + br $for-loop|0 + end + end + end global.get $~lib/memory/__stack_pointer - i32.const 8 + i32.const 16 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $1 + ) + (func $"~lib/map/Map#rehash" (param $0 i32) (param $1 i32) + (local $2 i32) + (local $3 i32) + (local $4 i32) + (local $5 i32) + (local $6 i32) + (local $7 i32) + (local $8 i32) + global.get $~lib/memory/__stack_pointer + i32.const 16 i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 1896 + i32.const 3104 i32.lt_s if - i32.const 34688 - i32.const 34736 + i32.const 35904 + i32.const 35952 i32.const 1 i32.const 1 call $~lib/builtins/abort @@ -4178,1232 +4102,625 @@ i64.const 0 i64.store global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store - i32.const 16 - call $~lib/arraybuffer/ArrayBuffer#constructor - local.set $1 + i64.const 0 + i64.store offset=8 global.get $~lib/memory/__stack_pointer local.get $1 - i32.store offset=4 - local.get $0 - local.get $1 + i32.const 1 + i32.add + local.tee $2 + i32.const 2 + i32.shl + call $~lib/arraybuffer/ArrayBuffer#constructor + local.tee $6 i32.store - local.get $0 - local.get $1 - call $~lib/rt/itcms/__link global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store - local.get $0 + local.get $2 i32.const 3 - i32.store offset=4 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store - i32.const 48 + i32.shl + i32.const 3 + i32.div_s + local.tee $5 + i32.const 12 + i32.mul call $~lib/arraybuffer/ArrayBuffer#constructor - local.set $1 - global.get $~lib/memory/__stack_pointer - local.get $1 + local.tee $3 i32.store offset=4 - local.get $0 - local.get $1 - i32.store offset=8 - local.get $0 - local.get $1 - call $~lib/rt/itcms/__link - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store - local.get $0 - i32.const 4 - i32.store offset=12 global.get $~lib/memory/__stack_pointer local.get $0 - i32.store + i32.store offset=8 local.get $0 - i32.const 0 - i32.store offset=16 + i32.load offset=8 + local.set $7 global.get $~lib/memory/__stack_pointer local.get $0 - i32.store + i32.store offset=8 + local.get $7 local.get $0 - i32.const 0 - i32.store offset=20 - global.get $~lib/memory/__stack_pointer - i32.const 8 + i32.load offset=16 + i32.const 12 + i32.mul i32.add - global.set $~lib/memory/__stack_pointer - ) - (func $"std/map/testNumeric" - (local $0 i32) - (local $1 i32) - (local $2 i32) - (local $3 i32) - (local $4 i32) - (local $5 i32) - (local $6 i32) - (local $7 i32) - (local $8 i32) - global.get $~lib/memory/__stack_pointer - i32.const 24 - i32.sub - global.set $~lib/memory/__stack_pointer - block $folding-inner1 - global.get $~lib/memory/__stack_pointer - i32.const 1896 - i32.lt_s - br_if $folding-inner1 - global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.const 24 - memory.fill - global.get $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - i32.const 12 - i32.sub - global.set $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - i32.const 1896 - i32.lt_s - br_if $folding-inner1 - global.get $~lib/memory/__stack_pointer - i64.const 0 - i64.store - global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.store offset=8 - global.get $~lib/memory/__stack_pointer - i32.const 24 - i32.const 4 - call $~lib/rt/itcms/__new - local.tee $1 - i32.store - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - i32.const 16 - call $~lib/arraybuffer/ArrayBuffer#constructor - local.set $5 - global.get $~lib/memory/__stack_pointer - local.get $5 - i32.store offset=8 - local.get $1 - local.get $5 - i32.store - local.get $1 - local.get $5 - call $~lib/rt/itcms/__link - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - local.get $1 - i32.const 3 - i32.store offset=4 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - i32.const 48 - call $~lib/arraybuffer/ArrayBuffer#constructor - local.set $5 - global.get $~lib/memory/__stack_pointer - local.get $5 - i32.store offset=8 - local.get $1 - local.get $5 - i32.store offset=8 - local.get $1 - local.get $5 - call $~lib/rt/itcms/__link - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - local.get $1 - i32.const 4 - i32.store offset=12 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - local.get $1 - i32.const 0 - i32.store offset=16 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - local.get $1 - i32.const 0 - i32.store offset=20 - global.get $~lib/memory/__stack_pointer - i32.const 12 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $1 - i32.store - loop $for-loop|0 - local.get $0 - i32.const 100 - i32.lt_s + local.set $4 + local.get $3 + local.set $2 + loop $while-continue|0 + local.get $4 + local.get $7 + i32.ne + if + local.get $7 + i32.load offset=8 + i32.const 1 + i32.and + i32.eqz if - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - local.get $1 - local.get $0 - call $"~lib/map/Map#has" - if - i32.const 0 - i32.const 1568 - i32.const 6 - i32.const 5 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - local.get $1 + local.get $2 + local.get $7 + i32.load + local.tee $8 + i32.store + local.get $2 + local.get $7 + i32.load offset=4 i32.store offset=4 + local.get $2 + local.get $6 local.get $1 - local.get $0 - local.get $0 - i32.const 10 + local.get $8 + i32.const -1028477379 + i32.mul + i32.const 374761397 i32.add - call $"~lib/map/Map#set" - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - local.get $1 - local.get $0 - call $"~lib/map/Map#has" - i32.eqz - if - i32.const 0 - i32.const 1568 - i32.const 8 - i32.const 5 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - local.get $1 - local.get $0 - call $"~lib/map/Map#get" - local.get $0 - i32.const 10 + i32.const 17 + i32.rotl + i32.const 668265263 + i32.mul + local.tee $8 + local.get $8 + i32.const 15 + i32.shr_u + i32.xor + i32.const -2048144777 + i32.mul + local.tee $8 + local.get $8 + i32.const 13 + i32.shr_u + i32.xor + i32.const -1028477379 + i32.mul + local.tee $8 + local.get $8 + i32.const 16 + i32.shr_u + i32.xor + i32.and + i32.const 2 + i32.shl i32.add - i32.ne - if - i32.const 0 - i32.const 1568 - i32.const 9 - i32.const 5 - call $~lib/builtins/abort - unreachable - end - local.get $0 - i32.const 1 + local.tee $8 + i32.load + i32.store offset=8 + local.get $8 + local.get $2 + i32.store + local.get $2 + i32.const 12 i32.add - local.set $0 - br $for-loop|0 + local.set $2 end + local.get $7 + i32.const 12 + i32.add + local.set $7 + br $while-continue|0 end - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - local.get $1 - call $"~lib/map/Map#get:size" - i32.const 100 - i32.ne - if - i32.const 0 - i32.const 1568 - i32.const 11 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - i32.const 0 - local.set $0 - loop $for-loop|1 - local.get $0 - i32.const 100 - i32.lt_s - if - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - local.get $1 - local.get $0 - call $"~lib/map/Map#has" - i32.eqz - if - i32.const 0 - i32.const 1568 - i32.const 15 - i32.const 5 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - local.get $1 - local.get $0 - call $"~lib/map/Map#get" - local.get $0 - i32.const 10 - i32.add - i32.ne - if - i32.const 0 - i32.const 1568 - i32.const 16 - i32.const 5 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - local.get $1 - local.get $0 - local.get $0 - i32.const 20 - i32.add - call $"~lib/map/Map#set" - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 + end + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=8 + global.get $~lib/memory/__stack_pointer + local.get $6 + i32.store offset=12 + local.get $0 + local.get $6 + i32.store + local.get $0 + local.get $6 + i32.const 0 + call $~lib/rt/itcms/__link + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=8 + local.get $0 + local.get $1 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=8 + global.get $~lib/memory/__stack_pointer + local.get $3 + i32.store offset=12 + local.get $0 + local.get $3 + i32.store offset=8 + local.get $0 + local.get $3 + i32.const 0 + call $~lib/rt/itcms/__link + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=8 + local.get $0 + local.get $5 + i32.store offset=12 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=8 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=12 + local.get $0 + local.get $0 + i32.load offset=20 + i32.store offset=16 + global.get $~lib/memory/__stack_pointer + i32.const 16 + i32.add + global.set $~lib/memory/__stack_pointer + ) + (func $"~lib/map/Map#find" (param $0 i32) (param $1 i32) (param $2 i32) (result i32) + (local $3 i32) + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.sub + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 3104 + i32.lt_s + if + i32.const 35904 + i32.const 35952 + i32.const 1 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + local.get $0 + i32.load + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + local.get $2 + local.get $0 + i32.load offset=4 + i32.and + i32.const 2 + i32.shl + i32.add + i32.load + local.set $0 + loop $while-continue|0 + local.get $0 + if + local.get $0 + i32.load offset=8 + local.tee $2 + i32.const 1 + i32.and + if (result i32) + i32.const 0 + else local.get $1 local.get $0 - call $"~lib/map/Map#has" - i32.eqz - if - i32.const 0 - i32.const 1568 - i32.const 18 - i32.const 5 - call $~lib/builtins/abort - unreachable - end + i32.load + i32.eq + end + if global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - local.get $1 - local.get $0 - call $"~lib/map/Map#get" - local.get $0 - i32.const 20 + i32.const 4 i32.add - i32.ne - if - i32.const 0 - i32.const 1568 - i32.const 19 - i32.const 5 - call $~lib/builtins/abort - unreachable - end + global.set $~lib/memory/__stack_pointer local.get $0 - i32.const 1 - i32.add - local.set $0 - br $for-loop|1 + return end + local.get $2 + i32.const -2 + i32.and + local.set $0 + br $while-continue|0 end + end + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + i32.const 0 + ) + (func $"~lib/map/Map#constructor" (param $0 i32) (result i32) + (local $1 i32) + (local $2 i32) + (local $3 i32) + (local $4 i32) + (local $5 i32) + (local $6 i32) + (local $7 i32) + (local $8 i32) + global.get $~lib/memory/__stack_pointer + i32.const 16 + i32.sub + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 3104 + i32.lt_s + if + i32.const 35904 + i32.const 35952 + i32.const 1 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store + global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store offset=8 + global.get $~lib/memory/__stack_pointer + i32.const 24 + i32.const 12 + call $~lib/rt/itcms/__new + local.tee $1 + i32.store + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + i32.const 16 + call $~lib/arraybuffer/ArrayBuffer#constructor + local.set $3 + global.get $~lib/memory/__stack_pointer + local.get $3 + i32.store offset=8 + local.get $1 + local.get $3 + i32.store + local.get $1 + local.get $3 + i32.const 0 + call $~lib/rt/itcms/__link + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + local.get $1 + i32.const 3 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + i32.const 48 + call $~lib/arraybuffer/ArrayBuffer#constructor + local.set $3 + global.get $~lib/memory/__stack_pointer + local.get $3 + i32.store offset=8 + local.get $1 + local.get $3 + i32.store offset=8 + local.get $1 + local.get $3 + i32.const 0 + call $~lib/rt/itcms/__link + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + local.get $1 + i32.const 4 + i32.store offset=12 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + local.get $1 + i32.const 0 + i32.store offset=16 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + local.get $1 + i32.const 0 + i32.store offset=20 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + local.get $0 + call $"~lib/array/Array<~lib/map/KeyValue>#get:length" + local.tee $3 + i32.const 0 + i32.gt_s + if global.get $~lib/memory/__stack_pointer local.get $1 i32.store offset=4 + local.get $3 local.get $1 - call $"~lib/map/Map#get:size" - i32.const 100 - i32.ne + i32.load offset=12 + i32.ge_s if - i32.const 0 - i32.const 1568 - i32.const 21 - i32.const 3 - call $~lib/builtins/abort - unreachable + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + local.get $1 + local.get $3 + i32.store offset=4 end global.get $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer local.get $1 i32.store offset=4 global.get $~lib/memory/__stack_pointer - i32.const 8 - i32.sub - global.set $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - i32.const 1896 - i32.lt_s - br_if $folding-inner1 - global.get $~lib/memory/__stack_pointer - i64.const 0 - i64.store - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store local.get $1 - i32.load offset=8 - local.set $5 - global.get $~lib/memory/__stack_pointer + i32.store offset=8 local.get $1 - i32.store local.get $1 - i32.load offset=16 - local.set $6 - global.get $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - i32.const 16 - i32.sub - global.set $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - i32.const 1896 - i32.lt_s - br_if $folding-inner1 - global.get $~lib/memory/__stack_pointer - i64.const 0 - i64.store - global.get $~lib/memory/__stack_pointer - i64.const 0 - i64.store offset=8 - global.get $~lib/memory/__stack_pointer - i32.const 16 - i32.const 5 - call $~lib/rt/itcms/__new - local.tee $7 - i32.store - global.get $~lib/memory/__stack_pointer - local.get $7 - i32.store offset=4 - local.get $7 - i32.const 0 - i32.store - local.get $7 - i32.const 0 - call $~lib/rt/itcms/__link - global.get $~lib/memory/__stack_pointer - local.get $7 - i32.store offset=4 - local.get $7 - i32.const 0 - i32.store offset=4 - global.get $~lib/memory/__stack_pointer - local.get $7 - i32.store offset=4 - local.get $7 - i32.const 0 - i32.store offset=8 - global.get $~lib/memory/__stack_pointer - local.get $7 - i32.store offset=4 - local.get $7 - i32.const 0 - i32.store offset=12 - local.get $6 - i32.const 1073741820 - i32.gt_u - if - i32.const 1456 - i32.const 1728 - i32.const 70 - i32.const 60 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - i32.const 8 - local.get $6 - local.get $6 - i32.const 8 - i32.le_u - select - local.tee $0 + i32.load offset=4 i32.const 1 - call $~lib/rt/itcms/__new - local.tee $8 - i32.store offset=8 - global.get $~lib/memory/__stack_pointer - local.get $7 - i32.store offset=4 - global.get $~lib/memory/__stack_pointer - local.get $8 - i32.store offset=12 - local.get $7 - local.get $8 - i32.store - local.get $7 - local.get $8 - call $~lib/rt/itcms/__link - global.get $~lib/memory/__stack_pointer - local.get $7 - i32.store offset=4 - local.get $7 - local.get $8 - i32.store offset=4 - global.get $~lib/memory/__stack_pointer - local.get $7 - i32.store offset=4 - local.get $7 - local.get $0 - i32.store offset=8 - global.get $~lib/memory/__stack_pointer - local.get $7 - i32.store offset=4 - local.get $7 - local.get $6 - i32.store offset=12 - global.get $~lib/memory/__stack_pointer - i32.const 16 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $7 - i32.store offset=4 - i32.const 0 - local.set $0 - loop $for-loop|00 + i32.shl + i32.const 1 + i32.or + call $"~lib/map/Map#rehash" + loop $for-loop|0 + local.get $2 local.get $3 - local.get $6 i32.lt_s if + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=8 + local.get $0 + local.get $2 + call $"~lib/array/Array<~lib/map/KeyValue>#__get" + local.set $4 + global.get $~lib/memory/__stack_pointer + local.get $4 + i32.store offset=4 + local.get $4 + i32.load + local.set $4 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=8 + local.get $0 + local.get $2 + call $"~lib/array/Array<~lib/map/KeyValue>#__get" + local.set $5 + global.get $~lib/memory/__stack_pointer local.get $5 - local.get $3 - i32.const 12 + i32.store offset=4 + local.get $5 + i32.load offset=4 + local.set $6 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + local.get $1 + local.get $4 + local.get $4 + i32.const -1028477379 i32.mul + i32.const 374761397 i32.add - local.tee $8 - i32.load offset=8 - i32.const 1 - i32.and - i32.eqz + i32.const 17 + i32.rotl + i32.const 668265263 + i32.mul + local.tee $5 + i32.const 15 + i32.shr_u + local.get $5 + i32.xor + i32.const -2048144777 + i32.mul + local.tee $5 + i32.const 13 + i32.shr_u + local.get $5 + i32.xor + i32.const -1028477379 + i32.mul + local.tee $5 + i32.const 16 + i32.shr_u + local.get $5 + i32.xor + local.tee $7 + call $"~lib/map/Map#find" + local.tee $5 if + local.get $5 + local.get $6 + i32.store offset=4 + else global.get $~lib/memory/__stack_pointer - local.get $7 - i32.store - local.get $7 - local.get $0 + local.get $1 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.load offset=8 + local.tee $5 + i32.store offset=12 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=8 + local.get $1 + local.get $1 + i32.load offset=16 + local.tee $8 + i32.const 1 + i32.add + i32.store offset=16 + local.get $5 local.get $8 - i32.load8_s - call $~lib/array/Array#__set - local.get $0 + i32.const 12 + i32.mul + i32.add + local.tee $5 + local.get $4 + i32.store + local.get $5 + local.get $6 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=8 + local.get $1 + local.get $1 + i32.load offset=20 i32.const 1 i32.add - local.set $0 - end - local.get $3 - i32.const 1 - i32.add - local.set $3 - br $for-loop|00 - end - end - global.get $~lib/memory/__stack_pointer - local.get $7 - i32.store - local.get $7 - local.get $0 - call $~lib/array/Array#set:length - global.get $~lib/memory/__stack_pointer - i32.const 8 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $7 - i32.store offset=8 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - global.get $~lib/memory/__stack_pointer - local.get $1 - call $"~lib/map/Map#values" - local.tee $0 - i32.store offset=12 - global.get $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - i32.const 12 - i32.sub - global.set $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - i32.const 1896 - i32.lt_s - br_if $folding-inner1 - global.get $~lib/memory/__stack_pointer - i64.const 0 - i64.store - global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.store offset=8 - global.get $~lib/memory/__stack_pointer - i32.const 24 - i32.const 7 - call $~lib/rt/itcms/__new - local.tee $4 - i32.store - global.get $~lib/memory/__stack_pointer - local.get $4 - i32.store offset=4 - i32.const 16 - call $~lib/arraybuffer/ArrayBuffer#constructor - local.set $5 - global.get $~lib/memory/__stack_pointer - local.get $5 - i32.store offset=8 - local.get $4 - local.get $5 - i32.store - local.get $4 - local.get $5 - call $~lib/rt/itcms/__link - global.get $~lib/memory/__stack_pointer - local.get $4 - i32.store offset=4 - local.get $4 - i32.const 3 - i32.store offset=4 - global.get $~lib/memory/__stack_pointer - local.get $4 - i32.store offset=4 - i32.const 32 - call $~lib/arraybuffer/ArrayBuffer#constructor - local.set $5 - global.get $~lib/memory/__stack_pointer - local.get $5 - i32.store offset=8 - local.get $4 - local.get $5 - i32.store offset=8 - local.get $4 - local.get $5 - call $~lib/rt/itcms/__link - global.get $~lib/memory/__stack_pointer - local.get $4 - i32.store offset=4 - local.get $4 - i32.const 4 - i32.store offset=12 - global.get $~lib/memory/__stack_pointer - local.get $4 - i32.store offset=4 - local.get $4 - i32.const 0 - i32.store offset=16 - global.get $~lib/memory/__stack_pointer - local.get $4 - i32.store offset=4 - local.get $4 - i32.const 0 - i32.store offset=20 - global.get $~lib/memory/__stack_pointer - i32.const 12 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $4 - i32.store offset=16 - global.get $~lib/memory/__stack_pointer - call $"~lib/map/Map#constructor" - local.tee $3 - i32.store offset=20 - loop $for-loop|2 - global.get $~lib/memory/__stack_pointer - local.get $7 - i32.store offset=4 - local.get $7 - call $~lib/array/Array#get:length - local.get $2 - i32.gt_s - if - global.get $~lib/memory/__stack_pointer - local.get $7 - i32.store offset=4 - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.sub - global.set $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - i32.const 1896 - i32.lt_s - br_if $folding-inner1 - global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.store - global.get $~lib/memory/__stack_pointer - local.get $7 - i32.store - local.get $2 - local.get $7 - i32.load offset=12 - i32.ge_u - if - i32.const 1248 - i32.const 1728 - i32.const 114 - i32.const 42 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - local.get $7 - i32.store - local.get $2 - local.get $7 - i32.load offset=4 - i32.add - i32.load8_s - local.set $5 - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.add - global.set $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 - local.get $2 - call $~lib/array/Array#__get - local.set $6 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - local.get $1 - local.get $5 - call $"~lib/map/Map#has" - i32.eqz - if - i32.const 0 - i32.const 1568 - i32.const 31 - i32.const 5 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - local.get $1 - local.get $6 - i32.const 20 - i32.sub - call $"~lib/map/Map#has" - i32.eqz - if - i32.const 0 - i32.const 1568 - i32.const 32 - i32.const 5 - call $~lib/builtins/abort - unreachable + i32.store offset=20 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + local.get $1 + i32.load + local.set $4 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + local.get $5 + local.get $4 + local.get $7 + local.get $1 + i32.load offset=4 + i32.and + i32.const 2 + i32.shl + i32.add + local.tee $4 + i32.load + i32.store offset=8 + local.get $4 + local.get $5 + i32.store end - global.get $~lib/memory/__stack_pointer - local.get $4 - i32.store offset=4 - local.get $4 - local.get $5 - local.get $5 - call $"~lib/map/Map#set" - global.get $~lib/memory/__stack_pointer - local.get $3 - i32.store offset=4 - local.get $3 - local.get $6 - i32.const 20 - i32.sub - local.tee $5 - local.get $5 - call $"~lib/map/Map#set" local.get $2 i32.const 1 i32.add local.set $2 - br $for-loop|2 + br $for-loop|0 end end - global.get $~lib/memory/__stack_pointer - local.get $4 - i32.store offset=4 - local.get $4 - call $"~lib/map/Map#get:size" - i32.const 100 - i32.ne - if - i32.const 0 - i32.const 1568 - i32.const 36 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - local.get $3 - i32.store offset=4 - local.get $3 - call $"~lib/map/Map#get:size" - i32.const 100 - i32.ne - if - i32.const 0 - i32.const 1568 - i32.const 37 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - i32.const 0 - local.set $0 - loop $for-loop|3 - local.get $0 - i32.const 50 - i32.lt_s - if - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - local.get $1 - local.get $0 - call $"~lib/map/Map#has" - i32.eqz - if - i32.const 0 - i32.const 1568 - i32.const 41 - i32.const 5 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - local.get $1 - local.get $0 - call $"~lib/map/Map#get" - local.get $0 - i32.const 20 - i32.add - i32.ne - if - i32.const 0 - i32.const 1568 - i32.const 42 - i32.const 5 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - local.get $1 - local.get $0 - call $"~lib/map/Map#delete" - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - local.get $1 - local.get $0 - call $"~lib/map/Map#has" - if - i32.const 0 - i32.const 1568 - i32.const 44 - i32.const 5 - call $~lib/builtins/abort - unreachable - end - local.get $0 - i32.const 1 - i32.add - local.set $0 - br $for-loop|3 - end - end - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - local.get $1 - call $"~lib/map/Map#get:size" - i32.const 50 - i32.ne - if - i32.const 0 - i32.const 1568 - i32.const 46 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - i32.const 0 - local.set $0 - loop $for-loop|4 - local.get $0 - i32.const 50 - i32.lt_s - if - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - local.get $1 - local.get $0 - call $"~lib/map/Map#has" - if - i32.const 0 - i32.const 1568 - i32.const 50 - i32.const 5 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - local.get $1 - local.get $0 - local.get $0 - i32.const 10 - i32.add - call $"~lib/map/Map#set" - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - local.get $1 - local.get $0 - call $"~lib/map/Map#has" - i32.eqz - if - i32.const 0 - i32.const 1568 - i32.const 52 - i32.const 5 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - local.get $1 - local.get $0 - call $"~lib/map/Map#delete" - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - local.get $1 - local.get $0 - call $"~lib/map/Map#has" - if - i32.const 0 - i32.const 1568 - i32.const 54 - i32.const 5 - call $~lib/builtins/abort - unreachable - end - local.get $0 - i32.const 1 - i32.add - local.set $0 - br $for-loop|4 - end - end - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - local.get $1 - call $"~lib/map/Map#get:size" - i32.const 50 - i32.ne - if - i32.const 0 - i32.const 1568 - i32.const 56 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - local.get $1 - call $"~lib/map/Map#clear" - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - local.get $1 - call $"~lib/map/Map#get:size" - if - i32.const 0 - i32.const 1568 - i32.const 60 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - i32.const 24 - i32.add - global.set $~lib/memory/__stack_pointer - return end - i32.const 34688 - i32.const 34736 - i32.const 1 - i32.const 1 - call $~lib/builtins/abort - unreachable + global.get $~lib/memory/__stack_pointer + i32.const 16 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $1 ) - (func $"~lib/map/Map#has" (param $0 i32) (param $1 i32) (result i32) + (func $"~lib/map/Map#constructor@varargs" (result i32) + (local $0 i32) global.get $~lib/memory/__stack_pointer - i32.const 4 + i32.const 12 i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 1896 + i32.const 3104 i32.lt_s if - i32.const 34688 - i32.const 34736 + i32.const 35904 + i32.const 35952 i32.const 1 i32.const 1 call $~lib/builtins/abort unreachable end global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store + global.get $~lib/memory/__stack_pointer i32.const 0 - i32.store + i32.store offset=8 global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store - local.get $0 - local.get $1 - local.get $1 - i32.const 255 - i32.and - i32.const -1028477379 - i32.mul - i32.const 374761394 - i32.add - i32.const 17 - i32.rotl - i32.const 668265263 - i32.mul - local.tee $0 - local.get $0 - i32.const 15 - i32.shr_u - i32.xor - i32.const -2048144777 - i32.mul + i32.const 14 + i32.const 1968 + call $~lib/rt/__newArray local.tee $0 + i32.store + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer local.get $0 - i32.const 13 - i32.shr_u - i32.xor - i32.const -1028477379 - i32.mul - local.tee $0 + i32.store offset=8 local.get $0 - i32.const 16 - i32.shr_u - i32.xor - call $"~lib/map/Map#find" - i32.const 0 - i32.ne + call $"~lib/map/Map#constructor" global.get $~lib/memory/__stack_pointer - i32.const 4 + i32.const 12 i32.add global.set $~lib/memory/__stack_pointer ) - (func $"~lib/map/Map#rehash" (param $0 i32) (param $1 i32) - (local $2 i32) - (local $3 i32) - (local $4 i32) - (local $5 i32) - (local $6 i32) - (local $7 i32) - (local $8 i32) + (func $~lib/array/Array#__get (param $0 i32) (param $1 i32) (result i32) global.get $~lib/memory/__stack_pointer - i32.const 16 + i32.const 4 i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 1896 + i32.const 3104 i32.lt_s if - i32.const 34688 - i32.const 34736 + i32.const 35904 + i32.const 35952 i32.const 1 i32.const 1 call $~lib/builtins/abort unreachable end global.get $~lib/memory/__stack_pointer - i64.const 0 - i64.store - global.get $~lib/memory/__stack_pointer - i64.const 0 - i64.store offset=8 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.const 1 - i32.add - local.tee $2 - i32.const 2 - i32.shl - call $~lib/arraybuffer/ArrayBuffer#constructor - local.tee $6 - i32.store - global.get $~lib/memory/__stack_pointer - local.get $2 - i32.const 3 - i32.shl - i32.const 3 - i32.div_s - local.tee $5 - i32.const 12 - i32.mul - call $~lib/arraybuffer/ArrayBuffer#constructor - local.tee $3 - i32.store offset=4 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=8 - local.get $0 - i32.load offset=8 - local.set $7 + i32.const 0 + i32.store global.get $~lib/memory/__stack_pointer local.get $0 - i32.store offset=8 - local.get $7 + i32.store + local.get $1 local.get $0 - i32.load offset=16 - i32.const 12 - i32.mul - i32.add - local.set $4 - local.get $3 - local.set $2 - loop $while-continue|0 - local.get $4 - local.get $7 - i32.ne - if - local.get $7 - i32.load offset=8 - i32.const 1 - i32.and - i32.eqz - if - local.get $2 - local.get $7 - i32.load8_u - local.tee $8 - i32.store8 - local.get $2 - local.get $7 - i32.load offset=4 - i32.store offset=4 - local.get $2 - local.get $6 - local.get $1 - local.get $8 - i32.const -1028477379 - i32.mul - i32.const 374761394 - i32.add - i32.const 17 - i32.rotl - i32.const 668265263 - i32.mul - local.tee $8 - local.get $8 - i32.const 15 - i32.shr_u - i32.xor - i32.const -2048144777 - i32.mul - local.tee $8 - local.get $8 - i32.const 13 - i32.shr_u - i32.xor - i32.const -1028477379 - i32.mul - local.tee $8 - local.get $8 - i32.const 16 - i32.shr_u - i32.xor - i32.and - i32.const 2 - i32.shl - i32.add - local.tee $8 - i32.load - i32.store offset=8 - local.get $8 - local.get $2 - i32.store - local.get $2 - i32.const 12 - i32.add - local.set $2 - end - local.get $7 - i32.const 12 - i32.add - local.set $7 - br $while-continue|0 - end + i32.load offset=12 + i32.ge_u + if + i32.const 1360 + i32.const 1568 + i32.const 114 + i32.const 42 + call $~lib/builtins/abort + unreachable end global.get $~lib/memory/__stack_pointer local.get $0 - i32.store offset=8 - global.get $~lib/memory/__stack_pointer - local.get $6 - i32.store offset=12 - local.get $0 - local.get $6 i32.store local.get $0 - local.get $6 - call $~lib/rt/itcms/__link - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=8 - local.get $0 + i32.load offset=4 local.get $1 - i32.store offset=4 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=8 - global.get $~lib/memory/__stack_pointer - local.get $3 - i32.store offset=12 - local.get $0 - local.get $3 - i32.store offset=8 - local.get $0 - local.get $3 - call $~lib/rt/itcms/__link - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=8 - local.get $0 - local.get $5 - i32.store offset=12 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=8 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=12 - local.get $0 - local.get $0 - i32.load offset=20 - i32.store offset=16 + i32.const 2 + i32.shl + i32.add + i32.load global.get $~lib/memory/__stack_pointer - i32.const 16 + i32.const 4 i32.add global.set $~lib/memory/__stack_pointer ) - (func $"~lib/map/Map#set" (param $0 i32) (param $1 i32) (param $2 i32) + (func $"~lib/map/Map#set" (param $0 i32) (param $1 i32) (param $2 i32) (local $3 i32) (local $4 i32) (local $5 i32) @@ -5412,11 +4729,11 @@ i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 1896 + i32.const 3104 i32.lt_s if - i32.const 34688 - i32.const 34736 + i32.const 35904 + i32.const 35952 i32.const 1 i32.const 1 call $~lib/builtins/abort @@ -5434,11 +4751,9 @@ local.get $0 local.get $1 local.get $1 - i32.const 255 - i32.and i32.const -1028477379 i32.mul - i32.const 374761394 + i32.const 374761397 i32.add i32.const 17 i32.rotl @@ -5464,7 +4779,7 @@ local.get $3 i32.xor local.tee $4 - call $"~lib/map/Map#find" + call $"~lib/map/Map#find" local.tee $3 if local.get $3 @@ -5521,7 +4836,7 @@ i32.const 1 i32.or end - call $"~lib/map/Map#rehash" + call $"~lib/map/Map#rehash" end global.get $~lib/memory/__stack_pointer local.get $0 @@ -5551,7 +4866,7 @@ i32.add local.tee $3 local.get $1 - i32.store8 + i32.store local.get $3 local.get $2 i32.store offset=4 @@ -5597,33 +4912,33 @@ i32.add global.set $~lib/memory/__stack_pointer ) - (func $"~lib/map/Map#get" (param $0 i32) (param $1 i32) (result i32) + (func $"~lib/map/Map#delete" (param $0 i32) (param $1 i32) + (local $2 i32) global.get $~lib/memory/__stack_pointer - i32.const 4 + i32.const 8 i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 1896 + i32.const 3104 i32.lt_s if - i32.const 34688 - i32.const 34736 + i32.const 35904 + i32.const 35952 i32.const 1 i32.const 1 call $~lib/builtins/abort unreachable end global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.store + i64.const 0 + i64.store global.get $~lib/memory/__stack_pointer local.get $0 i32.store local.get $0 local.get $1 local.get $1 - i32.const 255 - i32.and + i32.extend8_s i32.const -1028477379 i32.mul i32.const 374761394 @@ -5632,1331 +4947,1048 @@ i32.rotl i32.const 668265263 i32.mul - local.tee $0 - local.get $0 + local.tee $1 i32.const 15 i32.shr_u + local.get $1 i32.xor i32.const -2048144777 i32.mul - local.tee $0 - local.get $0 + local.tee $1 i32.const 13 i32.shr_u + local.get $1 i32.xor i32.const -1028477379 i32.mul - local.tee $0 - local.get $0 + local.tee $1 i32.const 16 i32.shr_u + local.get $1 i32.xor call $"~lib/map/Map#find" - local.tee $0 + local.tee $1 i32.eqz if - i32.const 1616 - i32.const 1680 - i32.const 105 - i32.const 17 - call $~lib/builtins/abort - unreachable + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.add + global.set $~lib/memory/__stack_pointer + return end + local.get $1 + local.get $1 + i32.load offset=8 + i32.const 1 + i32.or + i32.store offset=8 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + local.get $0 + local.get $0 + i32.load offset=20 + i32.const 1 + i32.sub + i32.store offset=20 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store local.get $0 i32.load offset=4 + i32.const 1 + i32.shr_u + local.set $1 global.get $~lib/memory/__stack_pointer - i32.const 4 + local.get $0 + i32.store + local.get $1 + i32.const 1 i32.add - global.set $~lib/memory/__stack_pointer - ) - (func $"~lib/map/Map#set" (param $0 i32) (param $1 i32) (param $2 i32) - (local $3 i32) - (local $4 i32) - (local $5 i32) - (local $6 i32) - (local $7 i32) - (local $8 i32) - (local $9 i32) - (local $10 i32) - (local $11 i32) - global.get $~lib/memory/__stack_pointer - i32.const 12 + i32.const 4 + local.get $0 + i32.load offset=20 + local.tee $2 + local.get $2 + i32.const 4 + i32.lt_u + select + i32.ge_u + if (result i32) + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + local.get $0 + i32.load offset=20 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + local.get $0 + i32.load offset=12 + i32.const 3 + i32.mul + i32.const 4 + i32.div_s + i32.lt_s + else + i32.const 0 + end + if + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + local.get $0 + local.get $1 + call $"~lib/map/Map#rehash" + end + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.add + global.set $~lib/memory/__stack_pointer + ) + (func $"~lib/map/Map#clear" (param $0 i32) + (local $1 i32) + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.sub + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 3104 + i32.lt_s + if + i32.const 35904 + i32.const 35952 + i32.const 1 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + i32.const 16 + call $~lib/arraybuffer/ArrayBuffer#constructor + local.set $1 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + local.get $0 + local.get $1 + i32.store + local.get $0 + local.get $1 + i32.const 0 + call $~lib/rt/itcms/__link + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + local.get $0 + i32.const 3 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + i32.const 48 + call $~lib/arraybuffer/ArrayBuffer#constructor + local.set $1 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + local.get $0 + local.get $1 + i32.store offset=8 + local.get $0 + local.get $1 + i32.const 0 + call $~lib/rt/itcms/__link + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + local.get $0 + i32.const 4 + i32.store offset=12 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + local.get $0 + i32.const 0 + i32.store offset=16 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + local.get $0 + i32.const 0 + i32.store offset=20 + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.add + global.set $~lib/memory/__stack_pointer + ) + (func $"~lib/array/Array<~lib/map/KeyValue>#push" (param $0 i32) (param $1 i32) + (local $2 i32) + (local $3 i32) + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.sub + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 3104 + i32.lt_s + if + i32.const 35904 + i32.const 35952 + i32.const 1 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + local.get $0 + local.get $0 + i32.load offset=12 + local.tee $2 + i32.const 1 + i32.add + local.tee $3 + i32.const 2 + i32.const 1 + call $~lib/array/ensureCapacity + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + local.get $0 + i32.load offset=4 + local.get $2 + i32.const 2 + i32.shl + i32.add + local.get $1 + i32.store + local.get $0 + local.get $1 + i32.const 1 + call $~lib/rt/itcms/__link + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + local.get $0 + local.get $3 + i32.store offset=12 + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + ) + (func $"std/map/testNumeric" + (local $0 i32) + (local $1 i32) + (local $2 i32) + (local $3 i32) + (local $4 i32) + (local $5 i32) + (local $6 i32) + (local $7 i32) + (local $8 i32) + (local $9 i32) + (local $10 i32) + global.get $~lib/memory/__stack_pointer + i32.const 40 i32.sub global.set $~lib/memory/__stack_pointer block $folding-inner1 global.get $~lib/memory/__stack_pointer - i32.const 1896 + i32.const 3104 i32.lt_s br_if $folding-inner1 global.get $~lib/memory/__stack_pointer - i64.const 0 - i64.store - global.get $~lib/memory/__stack_pointer i32.const 0 - i32.store offset=8 + i32.const 40 + memory.fill global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store - local.get $1 - i32.const 255 - i32.and - i32.const -1028477379 - i32.mul - i32.const 374761394 - i32.add - i32.const 17 - i32.rotl - i32.const 668265263 - i32.mul - local.tee $3 - i32.const 15 - i32.shr_u - local.get $3 - i32.xor - i32.const -2048144777 - i32.mul - local.tee $3 - i32.const 13 - i32.shr_u - local.get $3 - i32.xor - i32.const -1028477379 - i32.mul - local.tee $3 - i32.const 16 - i32.shr_u - local.get $3 - i32.xor - local.tee $8 - local.set $3 global.get $~lib/memory/__stack_pointer - i32.const 4 + i32.const 12 i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 1896 + i32.const 3104 i32.lt_s br_if $folding-inner1 global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store + global.get $~lib/memory/__stack_pointer i32.const 0 - i32.store + i32.store offset=8 global.get $~lib/memory/__stack_pointer - local.get $0 + i32.const 6 + i32.const 1744 + call $~lib/rt/__newArray + local.tee $4 i32.store - local.get $0 - i32.load global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store - local.get $3 - local.get $0 - i32.load offset=4 - i32.and - i32.const 2 - i32.shl + i32.const 0 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + local.get $4 + i32.store offset=8 + local.get $4 + call $"~lib/map/Map#constructor" + local.set $4 + global.get $~lib/memory/__stack_pointer + i32.const 12 i32.add - i32.load - local.set $3 - block $"__inlined_func$~lib/map/Map#find$1383" - loop $while-continue|0 - local.get $3 - if - local.get $3 - i32.load offset=4 - local.tee $4 - i32.const 1 - i32.and - if (result i32) - i32.const 0 - else - local.get $3 - i32.load8_u - local.get $1 - i32.const 255 - i32.and - i32.eq - end - if - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.add - global.set $~lib/memory/__stack_pointer - br $"__inlined_func$~lib/map/Map#find$1383" - end - local.get $4 - i32.const -2 - i32.and - local.set $3 - br $while-continue|0 - end - end - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.add - global.set $~lib/memory/__stack_pointer - i32.const 0 - local.set $3 - end - local.get $3 - if - local.get $3 - local.get $2 - i32.store8 offset=1 - else - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store - local.get $0 - i32.load offset=16 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store + global.set $~lib/memory/__stack_pointer + local.get $4 + i32.store + loop $for-loop|0 local.get $0 - i32.load offset=12 - i32.eq + i32.const 100 + i32.lt_s if global.get $~lib/memory/__stack_pointer + local.get $4 + i32.store offset=4 + local.get $4 local.get $0 - i32.store + call $"~lib/map/Map#has" + if + i32.const 0 + i32.const 1776 + i32.const 7 + i32.const 5 + call $~lib/builtins/abort + unreachable + end global.get $~lib/memory/__stack_pointer - local.get $0 + local.get $4 i32.store offset=4 + local.get $4 local.get $0 - i32.load offset=20 - global.get $~lib/memory/__stack_pointer local.get $0 + i32.const 10 + i32.add + call $"~lib/map/Map#set" + global.get $~lib/memory/__stack_pointer + local.get $4 i32.store offset=4 + local.get $4 local.get $0 - i32.load offset=12 - i32.const 3 - i32.mul - i32.const 4 - i32.div_s - i32.lt_s - if (result i32) - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 - i32.load offset=4 - else - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 - i32.load offset=4 - i32.const 1 - i32.shl - i32.const 1 - i32.or + call $"~lib/map/Map#has" + i32.eqz + if + i32.const 0 + i32.const 1776 + i32.const 9 + i32.const 5 + call $~lib/builtins/abort + unreachable end - local.set $7 global.get $~lib/memory/__stack_pointer - i32.const 16 - i32.sub - global.set $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - i32.const 1896 - i32.lt_s - br_if $folding-inner1 - global.get $~lib/memory/__stack_pointer - i64.const 0 - i64.store - global.get $~lib/memory/__stack_pointer - i64.const 0 - i64.store offset=8 - global.get $~lib/memory/__stack_pointer - local.get $7 + local.get $4 + i32.store offset=4 + local.get $4 + local.get $0 + call $"~lib/map/Map#get" + local.get $0 + i32.const 10 + i32.add + i32.ne + if + i32.const 0 + i32.const 1776 + i32.const 10 + i32.const 5 + call $~lib/builtins/abort + unreachable + end + local.get $0 i32.const 1 i32.add - local.tee $3 - i32.const 2 - i32.shl - call $~lib/arraybuffer/ArrayBuffer#constructor - local.tee $6 - i32.store + local.set $0 + br $for-loop|0 + end + end + global.get $~lib/memory/__stack_pointer + local.get $4 + i32.store offset=4 + local.get $4 + call $"~lib/map/Map#get:size" + i32.const 100 + i32.ne + if + i32.const 0 + i32.const 1776 + i32.const 12 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + i32.const 0 + local.set $0 + loop $for-loop|1 + local.get $0 + i32.const 100 + i32.lt_s + if global.get $~lib/memory/__stack_pointer - local.get $3 - i32.const 3 - i32.shl - i32.const 3 - i32.div_s - local.tee $9 - i32.const 3 - i32.shl - call $~lib/arraybuffer/ArrayBuffer#constructor - local.tee $4 + local.get $4 i32.store offset=4 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=8 + local.get $4 local.get $0 - i32.load offset=8 - local.set $5 + call $"~lib/map/Map#has" + i32.eqz + if + i32.const 0 + i32.const 1776 + i32.const 16 + i32.const 5 + call $~lib/builtins/abort + unreachable + end global.get $~lib/memory/__stack_pointer + local.get $4 + i32.store offset=4 + local.get $4 local.get $0 - i32.store offset=8 - local.get $5 + call $"~lib/map/Map#get" local.get $0 - i32.load offset=16 - i32.const 3 - i32.shl + i32.const 10 i32.add - local.set $10 - local.get $4 - local.set $3 - loop $while-continue|00 - local.get $5 - local.get $10 - i32.ne - if - local.get $5 - i32.load offset=4 - i32.const 1 - i32.and - i32.eqz - if - local.get $3 - local.get $5 - i32.load8_u - local.tee $11 - i32.store8 - local.get $3 - local.get $5 - i32.load8_u offset=1 - i32.store8 offset=1 - local.get $3 - local.get $6 - local.get $7 - local.get $11 - i32.const -1028477379 - i32.mul - i32.const 374761394 - i32.add - i32.const 17 - i32.rotl - i32.const 668265263 - i32.mul - local.tee $11 - local.get $11 - i32.const 15 - i32.shr_u - i32.xor - i32.const -2048144777 - i32.mul - local.tee $11 - local.get $11 - i32.const 13 - i32.shr_u - i32.xor - i32.const -1028477379 - i32.mul - local.tee $11 - local.get $11 - i32.const 16 - i32.shr_u - i32.xor - i32.and - i32.const 2 - i32.shl - i32.add - local.tee $11 - i32.load - i32.store offset=4 - local.get $11 - local.get $3 - i32.store - local.get $3 - i32.const 8 - i32.add - local.set $3 - end - local.get $5 - i32.const 8 - i32.add - local.set $5 - br $while-continue|00 - end + i32.ne + if + i32.const 0 + i32.const 1776 + i32.const 17 + i32.const 5 + call $~lib/builtins/abort + unreachable end global.get $~lib/memory/__stack_pointer + local.get $4 + i32.store offset=4 + local.get $4 local.get $0 - i32.store offset=8 - global.get $~lib/memory/__stack_pointer - local.get $6 - i32.store offset=12 - local.get $0 - local.get $6 - i32.store local.get $0 - local.get $6 - call $~lib/rt/itcms/__link + i32.const 20 + i32.add + call $"~lib/map/Map#set" global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=8 - local.get $0 - local.get $7 + local.get $4 i32.store offset=4 - global.get $~lib/memory/__stack_pointer + local.get $4 local.get $0 - i32.store offset=8 + call $"~lib/map/Map#has" + i32.eqz + if + i32.const 0 + i32.const 1776 + i32.const 19 + i32.const 5 + call $~lib/builtins/abort + unreachable + end global.get $~lib/memory/__stack_pointer local.get $4 - i32.store offset=12 - local.get $0 + i32.store offset=4 local.get $4 - i32.store offset=8 local.get $0 - local.get $4 - call $~lib/rt/itcms/__link - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=8 - local.get $0 - local.get $9 - i32.store offset=12 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=8 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=12 + call $"~lib/map/Map#get" local.get $0 + i32.const 20 + i32.add + i32.ne + if + i32.const 0 + i32.const 1776 + i32.const 20 + i32.const 5 + call $~lib/builtins/abort + unreachable + end local.get $0 - i32.load offset=20 - i32.store offset=16 - global.get $~lib/memory/__stack_pointer - i32.const 16 + i32.const 1 i32.add - global.set $~lib/memory/__stack_pointer + local.set $0 + br $for-loop|1 end - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.load offset=8 - local.tee $3 - i32.store offset=8 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 - local.get $0 - i32.load offset=16 - local.tee $4 - i32.const 1 - i32.add - i32.store offset=16 - local.get $3 - local.get $4 + end + global.get $~lib/memory/__stack_pointer + local.get $4 + i32.store offset=4 + local.get $4 + call $"~lib/map/Map#get:size" + i32.const 100 + i32.ne + if + i32.const 0 + i32.const 1776 + i32.const 22 i32.const 3 - i32.shl - i32.add - local.tee $3 - local.get $1 - i32.store8 - local.get $3 - local.get $2 - i32.store8 offset=1 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 - local.get $0 - i32.load offset=20 - i32.const 1 - i32.add - i32.store offset=20 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store - local.get $0 - i32.load - local.set $1 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store - local.get $3 - local.get $1 - local.get $8 - local.get $0 - i32.load offset=4 - i32.and - i32.const 2 - i32.shl - i32.add - local.tee $0 - i32.load - i32.store offset=4 - local.get $0 - local.get $3 - i32.store + call $~lib/builtins/abort + unreachable end global.get $~lib/memory/__stack_pointer - i32.const 12 - i32.add - global.set $~lib/memory/__stack_pointer - return - end - i32.const 34688 - i32.const 34736 - i32.const 1 - i32.const 1 - call $~lib/builtins/abort - unreachable - ) - (func $"~lib/map/Map#delete" (param $0 i32) (param $1 i32) - (local $2 i32) - global.get $~lib/memory/__stack_pointer - i32.const 8 - i32.sub - global.set $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - i32.const 1896 - i32.lt_s - if - i32.const 34688 - i32.const 34736 - i32.const 1 - i32.const 1 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - i64.const 0 - i64.store - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store - local.get $0 - local.get $1 - local.get $1 - i32.const 255 - i32.and - i32.const -1028477379 - i32.mul - i32.const 374761394 - i32.add - i32.const 17 - i32.rotl - i32.const 668265263 - i32.mul - local.tee $1 - i32.const 15 - i32.shr_u - local.get $1 - i32.xor - i32.const -2048144777 - i32.mul - local.tee $1 - i32.const 13 - i32.shr_u - local.get $1 - i32.xor - i32.const -1028477379 - i32.mul - local.tee $1 - i32.const 16 - i32.shr_u - local.get $1 - i32.xor - call $"~lib/map/Map#find" - local.tee $1 - i32.eqz - if + global.get $~lib/memory/__stack_pointer + local.get $4 + i32.store offset=4 global.get $~lib/memory/__stack_pointer i32.const 8 - i32.add + i32.sub global.set $~lib/memory/__stack_pointer - return - end - local.get $1 - local.get $1 - i32.load offset=8 - i32.const 1 - i32.or - i32.store offset=8 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 - local.get $0 - i32.load offset=20 - i32.const 1 - i32.sub - i32.store offset=20 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store - local.get $0 - i32.load offset=4 - i32.const 1 - i32.shr_u - local.set $1 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store - local.get $1 - i32.const 1 - i32.add - i32.const 4 - local.get $0 - i32.load offset=20 - local.tee $2 - local.get $2 - i32.const 4 - i32.lt_u - select - i32.ge_u - if (result i32) global.get $~lib/memory/__stack_pointer - local.get $0 + i32.const 3104 + i32.lt_s + br_if $folding-inner1 + global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store + global.get $~lib/memory/__stack_pointer + local.get $4 i32.store - local.get $0 - i32.load offset=20 + local.get $4 + i32.load offset=8 + local.set $6 global.get $~lib/memory/__stack_pointer - local.get $0 + local.get $4 i32.store - local.get $0 - i32.load offset=12 - i32.const 3 - i32.mul - i32.const 4 - i32.div_s + local.get $4 + i32.load offset=16 + local.set $7 + global.get $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 16 + i32.sub + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 3104 i32.lt_s - else - i32.const 0 - end - if - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store - local.get $0 - local.get $1 - call $"~lib/map/Map#rehash" - end - global.get $~lib/memory/__stack_pointer - i32.const 8 - i32.add - global.set $~lib/memory/__stack_pointer - ) - (func $"std/map/testNumeric" - (local $0 i32) - (local $1 i32) - (local $2 i32) - (local $3 i32) - (local $4 i32) - (local $5 i32) - (local $6 i32) - (local $7 i32) - (local $8 i32) - global.get $~lib/memory/__stack_pointer - i32.const 24 - i32.sub - global.set $~lib/memory/__stack_pointer - block $folding-inner1 - global.get $~lib/memory/__stack_pointer - i32.const 1896 - i32.lt_s - br_if $folding-inner1 - global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.const 24 - memory.fill - global.get $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - i32.const 12 - i32.sub - global.set $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - i32.const 1896 - i32.lt_s - br_if $folding-inner1 + br_if $folding-inner1 global.get $~lib/memory/__stack_pointer i64.const 0 i64.store global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.store offset=8 + i64.const 0 + i64.store offset=8 global.get $~lib/memory/__stack_pointer - i32.const 24 - i32.const 9 + i32.const 16 + i32.const 8 call $~lib/rt/itcms/__new - local.tee $1 + local.tee $3 i32.store global.get $~lib/memory/__stack_pointer - local.get $1 + local.get $3 i32.store offset=4 - i32.const 16 - call $~lib/arraybuffer/ArrayBuffer#constructor - local.set $5 - global.get $~lib/memory/__stack_pointer - local.get $5 - i32.store offset=8 - local.get $1 - local.get $5 + local.get $3 + i32.const 0 i32.store - local.get $1 - local.get $5 + local.get $3 + i32.const 0 + i32.const 0 call $~lib/rt/itcms/__link global.get $~lib/memory/__stack_pointer - local.get $1 + local.get $3 i32.store offset=4 - local.get $1 - i32.const 3 + local.get $3 + i32.const 0 i32.store offset=4 global.get $~lib/memory/__stack_pointer - local.get $1 + local.get $3 i32.store offset=4 - i32.const 48 - call $~lib/arraybuffer/ArrayBuffer#constructor - local.set $5 - global.get $~lib/memory/__stack_pointer - local.get $5 - i32.store offset=8 - local.get $1 - local.get $5 + local.get $3 + i32.const 0 i32.store offset=8 - local.get $1 - local.get $5 - call $~lib/rt/itcms/__link global.get $~lib/memory/__stack_pointer - local.get $1 + local.get $3 i32.store offset=4 - local.get $1 - i32.const 4 + local.get $3 + i32.const 0 i32.store offset=12 + local.get $7 + i32.const 1073741820 + i32.gt_u + if + i32.const 1056 + i32.const 1568 + i32.const 70 + i32.const 60 + call $~lib/builtins/abort + unreachable + end global.get $~lib/memory/__stack_pointer - local.get $1 + i32.const 8 + local.get $7 + local.get $7 + i32.const 8 + i32.le_u + select + local.tee $8 + i32.const 1 + call $~lib/rt/itcms/__new + local.tee $9 + i32.store offset=8 + global.get $~lib/memory/__stack_pointer + local.get $3 i32.store offset=4 - local.get $1 + global.get $~lib/memory/__stack_pointer + local.get $9 + i32.store offset=12 + local.get $3 + local.get $9 + i32.store + local.get $3 + local.get $9 i32.const 0 - i32.store offset=16 + call $~lib/rt/itcms/__link global.get $~lib/memory/__stack_pointer - local.get $1 + local.get $3 + i32.store offset=4 + local.get $3 + local.get $9 i32.store offset=4 - local.get $1 - i32.const 0 - i32.store offset=20 global.get $~lib/memory/__stack_pointer - i32.const 12 + local.get $3 + i32.store offset=4 + local.get $3 + local.get $8 + i32.store offset=8 + global.get $~lib/memory/__stack_pointer + local.get $3 + i32.store offset=4 + local.get $3 + local.get $7 + i32.store offset=12 + global.get $~lib/memory/__stack_pointer + i32.const 16 i32.add global.set $~lib/memory/__stack_pointer - local.get $1 - i32.store - loop $for-loop|0 - local.get $0 - i32.const 100 - i32.lt_u + local.get $3 + i32.store offset=4 + i32.const 0 + local.set $0 + loop $for-loop|00 + local.get $2 + local.get $7 + i32.lt_s if - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - local.get $1 - local.get $0 - call $"~lib/map/Map#has" - if - i32.const 0 - i32.const 1568 - i32.const 6 - i32.const 5 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - local.get $1 - local.get $0 - local.get $0 - i32.const 10 + local.get $6 + local.get $2 + i32.const 12 + i32.mul i32.add - call $"~lib/map/Map#set" - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - local.get $1 - local.get $0 - call $"~lib/map/Map#has" + local.tee $8 + i32.load offset=8 + i32.const 1 + i32.and i32.eqz if - i32.const 0 - i32.const 1568 - i32.const 8 - i32.const 5 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - local.get $1 - local.get $0 - call $"~lib/map/Map#get" - local.get $0 - i32.const 10 - i32.add - i32.ne - if - i32.const 0 - i32.const 1568 - i32.const 9 - i32.const 5 - call $~lib/builtins/abort - unreachable + global.get $~lib/memory/__stack_pointer + local.get $3 + i32.store + local.get $3 + local.get $0 + local.get $8 + i32.load8_s + call $~lib/array/Array#__set + local.get $0 + i32.const 1 + i32.add + local.set $0 end - local.get $0 + local.get $2 i32.const 1 i32.add - local.set $0 - br $for-loop|0 + local.set $2 + br $for-loop|00 end end global.get $~lib/memory/__stack_pointer - local.get $1 + local.get $3 + i32.store + local.get $3 + local.get $0 + call $~lib/array/Array#set:length + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $3 + i32.store offset=8 + global.get $~lib/memory/__stack_pointer + local.get $4 i32.store offset=4 - local.get $1 - call $"~lib/map/Map#get:size" - i32.const 100 - i32.ne - if - i32.const 0 - i32.const 1568 - i32.const 11 - i32.const 3 - call $~lib/builtins/abort - unreachable - end + global.get $~lib/memory/__stack_pointer + local.get $4 + call $"~lib/map/Map#values" + local.tee $2 + i32.store offset=12 + global.get $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 12 + i32.sub + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 3104 + i32.lt_s + br_if $folding-inner1 + global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store + global.get $~lib/memory/__stack_pointer i32.const 0 - local.set $0 - loop $for-loop|1 - local.get $0 - i32.const 100 - i32.lt_u + i32.store offset=8 + global.get $~lib/memory/__stack_pointer + i32.const 11 + i32.const 1936 + call $~lib/rt/__newArray + local.tee $5 + i32.store + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + local.get $5 + i32.store offset=8 + local.get $5 + call $"~lib/map/Map#constructor" + local.set $5 + global.get $~lib/memory/__stack_pointer + i32.const 12 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $5 + i32.store offset=16 + global.get $~lib/memory/__stack_pointer + call $"~lib/map/Map#constructor@varargs" + local.tee $6 + i32.store offset=20 + loop $for-loop|2 + global.get $~lib/memory/__stack_pointer + local.get $3 + i32.store offset=4 + local.get $3 + call $"~lib/array/Array<~lib/map/KeyValue>#get:length" + local.get $1 + i32.gt_s if global.get $~lib/memory/__stack_pointer - local.get $1 + local.get $3 i32.store offset=4 + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.sub + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 3104 + i32.lt_s + br_if $folding-inner1 + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store + global.get $~lib/memory/__stack_pointer + local.get $3 + i32.store local.get $1 - local.get $0 - call $"~lib/map/Map#has" - i32.eqz + local.get $3 + i32.load offset=12 + i32.ge_u if - i32.const 0 + i32.const 1360 i32.const 1568 - i32.const 15 - i32.const 5 + i32.const 114 + i32.const 42 call $~lib/builtins/abort unreachable end global.get $~lib/memory/__stack_pointer + local.get $3 + i32.store local.get $1 - i32.store offset=4 - local.get $1 - local.get $0 - call $"~lib/map/Map#get" - local.get $0 - i32.const 10 + local.get $3 + i32.load offset=4 i32.add - i32.ne - if - i32.const 0 - i32.const 1568 - i32.const 16 - i32.const 5 - call $~lib/builtins/abort - unreachable - end + i32.load8_s + local.set $7 global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - local.get $1 - local.get $0 - local.get $0 - i32.const 20 + i32.const 4 i32.add - call $"~lib/map/Map#set" + global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - local.get $1 + local.get $2 i32.store offset=4 + local.get $2 local.get $1 - local.get $0 - call $"~lib/map/Map#has" + call $~lib/array/Array#__get + local.set $8 + global.get $~lib/memory/__stack_pointer + local.get $4 + i32.store offset=4 + local.get $4 + local.get $7 + call $"~lib/map/Map#has" i32.eqz if i32.const 0 - i32.const 1568 - i32.const 18 + i32.const 1776 + i32.const 32 i32.const 5 call $~lib/builtins/abort unreachable end global.get $~lib/memory/__stack_pointer - local.get $1 + local.get $4 i32.store offset=4 - local.get $1 - local.get $0 - call $"~lib/map/Map#get" - local.get $0 + local.get $4 + local.get $8 i32.const 20 - i32.add - i32.ne + i32.sub + call $"~lib/map/Map#has" + i32.eqz if i32.const 0 - i32.const 1568 - i32.const 19 + i32.const 1776 + i32.const 33 i32.const 5 call $~lib/builtins/abort unreachable end - local.get $0 - i32.const 1 + global.get $~lib/memory/__stack_pointer + local.get $5 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + i32.const 12 + i32.sub + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 3104 + i32.lt_s + br_if $folding-inner1 + global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store offset=8 + global.get $~lib/memory/__stack_pointer + local.get $5 + i32.store + local.get $5 + local.get $7 + local.get $7 + i32.extend8_s + i32.const -1028477379 + i32.mul + i32.const 374761394 i32.add - local.set $0 - br $for-loop|1 - end - end - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - local.get $1 - call $"~lib/map/Map#get:size" - i32.const 100 - i32.ne - if - i32.const 0 - i32.const 1568 - i32.const 21 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - global.get $~lib/memory/__stack_pointer - i32.const 8 - i32.sub - global.set $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - i32.const 1896 - i32.lt_s - br_if $folding-inner1 - global.get $~lib/memory/__stack_pointer - i64.const 0 - i64.store - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store - local.get $1 - i32.load offset=8 - local.set $5 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store - local.get $1 - i32.load offset=16 - local.set $6 - global.get $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - i32.const 16 - i32.sub - global.set $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - i32.const 1896 - i32.lt_s - br_if $folding-inner1 - global.get $~lib/memory/__stack_pointer - i64.const 0 - i64.store - global.get $~lib/memory/__stack_pointer - i64.const 0 - i64.store offset=8 - global.get $~lib/memory/__stack_pointer - i32.const 16 - i32.const 10 - call $~lib/rt/itcms/__new - local.tee $7 - i32.store - global.get $~lib/memory/__stack_pointer - local.get $7 - i32.store offset=4 - local.get $7 - i32.const 0 - i32.store - local.get $7 - i32.const 0 - call $~lib/rt/itcms/__link - global.get $~lib/memory/__stack_pointer - local.get $7 - i32.store offset=4 - local.get $7 - i32.const 0 - i32.store offset=4 - global.get $~lib/memory/__stack_pointer - local.get $7 - i32.store offset=4 - local.get $7 - i32.const 0 - i32.store offset=8 - global.get $~lib/memory/__stack_pointer - local.get $7 - i32.store offset=4 - local.get $7 - i32.const 0 - i32.store offset=12 - local.get $6 - i32.const 1073741820 - i32.gt_u - if - i32.const 1456 - i32.const 1728 - i32.const 70 - i32.const 60 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - i32.const 8 - local.get $6 - local.get $6 - i32.const 8 - i32.le_u - select - local.tee $0 - i32.const 1 - call $~lib/rt/itcms/__new - local.tee $8 - i32.store offset=8 - global.get $~lib/memory/__stack_pointer - local.get $7 - i32.store offset=4 - global.get $~lib/memory/__stack_pointer - local.get $8 - i32.store offset=12 - local.get $7 - local.get $8 - i32.store - local.get $7 - local.get $8 - call $~lib/rt/itcms/__link - global.get $~lib/memory/__stack_pointer - local.get $7 - i32.store offset=4 - local.get $7 - local.get $8 - i32.store offset=4 - global.get $~lib/memory/__stack_pointer - local.get $7 - i32.store offset=4 - local.get $7 - local.get $0 - i32.store offset=8 - global.get $~lib/memory/__stack_pointer - local.get $7 - i32.store offset=4 - local.get $7 - local.get $6 - i32.store offset=12 - global.get $~lib/memory/__stack_pointer - i32.const 16 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $7 - i32.store offset=4 - i32.const 0 - local.set $0 - loop $for-loop|00 - local.get $3 - local.get $6 - i32.lt_s - if - local.get $5 - local.get $3 - i32.const 12 + i32.const 17 + i32.rotl + i32.const 668265263 i32.mul - i32.add - local.tee $8 - i32.load offset=8 - i32.const 1 - i32.and - i32.eqz + local.tee $0 + local.get $0 + i32.const 15 + i32.shr_u + i32.xor + i32.const -2048144777 + i32.mul + local.tee $0 + local.get $0 + i32.const 13 + i32.shr_u + i32.xor + i32.const -1028477379 + i32.mul + local.tee $0 + local.get $0 + i32.const 16 + i32.shr_u + i32.xor + local.tee $9 + call $"~lib/map/Map#find" + local.tee $0 if - global.get $~lib/memory/__stack_pointer + local.get $0 local.get $7 + i32.store8 offset=1 + else + global.get $~lib/memory/__stack_pointer + local.get $5 i32.store - local.get $7 + local.get $5 + i32.load offset=16 + global.get $~lib/memory/__stack_pointer + local.get $5 + i32.store + local.get $5 + i32.load offset=12 + i32.eq + if + global.get $~lib/memory/__stack_pointer + local.get $5 + i32.store + global.get $~lib/memory/__stack_pointer + local.get $5 + i32.store offset=4 + local.get $5 + i32.load offset=20 + local.set $0 + global.get $~lib/memory/__stack_pointer + local.get $5 + i32.store offset=4 + local.get $5 + local.get $0 + local.get $5 + i32.load offset=12 + i32.const 3 + i32.mul + i32.const 4 + i32.div_s + i32.lt_s + if (result i32) + global.get $~lib/memory/__stack_pointer + local.get $5 + i32.store offset=4 + local.get $5 + i32.load offset=4 + else + global.get $~lib/memory/__stack_pointer + local.get $5 + i32.store offset=4 + local.get $5 + i32.load offset=4 + i32.const 1 + i32.shl + i32.const 1 + i32.or + end + call $"~lib/map/Map#rehash" + end + global.get $~lib/memory/__stack_pointer + local.get $5 + i32.store + global.get $~lib/memory/__stack_pointer + local.get $5 + i32.load offset=8 + local.tee $10 + i32.store offset=8 + global.get $~lib/memory/__stack_pointer + local.get $5 + i32.store + global.get $~lib/memory/__stack_pointer + local.get $5 + i32.store offset=4 + local.get $5 + local.get $5 + i32.load offset=16 + local.tee $0 + i32.const 1 + i32.add + i32.store offset=16 + local.get $10 local.get $0 - local.get $8 - i32.load8_u - call $~lib/array/Array#__set + i32.const 3 + i32.shl + i32.add + local.tee $0 + local.get $7 + i32.store8 local.get $0 + local.get $7 + i32.store8 offset=1 + global.get $~lib/memory/__stack_pointer + local.get $5 + i32.store + global.get $~lib/memory/__stack_pointer + local.get $5 + i32.store offset=4 + local.get $5 + local.get $5 + i32.load offset=20 i32.const 1 i32.add - local.set $0 + i32.store offset=20 + global.get $~lib/memory/__stack_pointer + local.get $5 + i32.store + local.get $5 + i32.load + local.set $7 + global.get $~lib/memory/__stack_pointer + local.get $5 + i32.store + local.get $0 + local.get $7 + local.get $9 + local.get $5 + i32.load offset=4 + i32.and + i32.const 2 + i32.shl + i32.add + local.tee $7 + i32.load + i32.store offset=4 + local.get $7 + local.get $0 + i32.store end - local.get $3 + global.get $~lib/memory/__stack_pointer + i32.const 12 + i32.add + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + local.get $6 + i32.store offset=4 + local.get $6 + local.get $8 + i32.const 20 + i32.sub + local.tee $0 + local.get $0 + call $"~lib/map/Map#set" + local.get $1 i32.const 1 i32.add - local.set $3 - br $for-loop|00 + local.set $1 + br $for-loop|2 end end global.get $~lib/memory/__stack_pointer - local.get $7 - i32.store - local.get $7 - local.get $0 - call $~lib/array/Array#set:length - global.get $~lib/memory/__stack_pointer - i32.const 8 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $7 - i32.store offset=8 - global.get $~lib/memory/__stack_pointer - local.get $1 + local.get $5 i32.store offset=4 + local.get $5 + call $"~lib/map/Map#get:size" + i32.const 100 + i32.ne + if + i32.const 0 + i32.const 1776 + i32.const 37 + i32.const 3 + call $~lib/builtins/abort + unreachable + end global.get $~lib/memory/__stack_pointer - local.get $1 - call $"~lib/map/Map#values" - local.tee $0 - i32.store offset=12 - global.get $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - i32.const 12 - i32.sub - global.set $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - i32.const 1896 - i32.lt_s - br_if $folding-inner1 - global.get $~lib/memory/__stack_pointer - i64.const 0 - i64.store - global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.store offset=8 - global.get $~lib/memory/__stack_pointer - i32.const 24 - i32.const 11 - call $~lib/rt/itcms/__new - local.tee $4 - i32.store - global.get $~lib/memory/__stack_pointer - local.get $4 - i32.store offset=4 - i32.const 16 - call $~lib/arraybuffer/ArrayBuffer#constructor - local.set $5 - global.get $~lib/memory/__stack_pointer - local.get $5 - i32.store offset=8 - local.get $4 - local.get $5 - i32.store - local.get $4 - local.get $5 - call $~lib/rt/itcms/__link - global.get $~lib/memory/__stack_pointer - local.get $4 - i32.store offset=4 - local.get $4 - i32.const 3 - i32.store offset=4 - global.get $~lib/memory/__stack_pointer - local.get $4 - i32.store offset=4 - i32.const 32 - call $~lib/arraybuffer/ArrayBuffer#constructor - local.set $5 - global.get $~lib/memory/__stack_pointer - local.get $5 - i32.store offset=8 - local.get $4 - local.get $5 - i32.store offset=8 - local.get $4 - local.get $5 - call $~lib/rt/itcms/__link - global.get $~lib/memory/__stack_pointer - local.get $4 - i32.store offset=4 - local.get $4 - i32.const 4 - i32.store offset=12 - global.get $~lib/memory/__stack_pointer - local.get $4 - i32.store offset=4 - local.get $4 - i32.const 0 - i32.store offset=16 - global.get $~lib/memory/__stack_pointer - local.get $4 - i32.store offset=4 - local.get $4 - i32.const 0 - i32.store offset=20 - global.get $~lib/memory/__stack_pointer - i32.const 12 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $4 - i32.store offset=16 - global.get $~lib/memory/__stack_pointer - call $"~lib/map/Map#constructor" - local.tee $3 - i32.store offset=20 - loop $for-loop|2 - global.get $~lib/memory/__stack_pointer - local.get $7 - i32.store offset=4 - local.get $7 - call $~lib/array/Array#get:length - local.get $2 - i32.gt_s - if - global.get $~lib/memory/__stack_pointer - local.get $7 - i32.store offset=4 - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.sub - global.set $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - i32.const 1896 - i32.lt_s - br_if $folding-inner1 - global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.store - global.get $~lib/memory/__stack_pointer - local.get $7 - i32.store - local.get $2 - local.get $7 - i32.load offset=12 - i32.ge_u - if - i32.const 1248 - i32.const 1728 - i32.const 114 - i32.const 42 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - local.get $7 - i32.store - local.get $2 - local.get $7 - i32.load offset=4 - i32.add - i32.load8_u - local.set $5 - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.add - global.set $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 - local.get $2 - call $~lib/array/Array#__get - local.set $6 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - local.get $1 - local.get $5 - call $"~lib/map/Map#has" - i32.eqz - if - i32.const 0 - i32.const 1568 - i32.const 31 - i32.const 5 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - local.get $1 - local.get $6 - i32.const 20 - i32.sub - call $"~lib/map/Map#has" - i32.eqz - if - i32.const 0 - i32.const 1568 - i32.const 32 - i32.const 5 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - local.get $4 - i32.store offset=4 - local.get $4 - local.get $5 - local.get $5 - call $"~lib/map/Map#set" - global.get $~lib/memory/__stack_pointer - local.get $3 - i32.store offset=4 - local.get $3 - local.get $6 - i32.const 20 - i32.sub - local.tee $5 - local.get $5 - call $"~lib/map/Map#set" - local.get $2 - i32.const 1 - i32.add - local.set $2 - br $for-loop|2 - end - end - global.get $~lib/memory/__stack_pointer - local.get $4 - i32.store offset=4 - local.get $4 - call $"~lib/map/Map#get:size" - i32.const 100 - i32.ne - if - i32.const 0 - i32.const 1568 - i32.const 36 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - local.get $3 + local.get $6 i32.store offset=4 - local.get $3 + local.get $6 call $"~lib/map/Map#get:size" i32.const 100 i32.ne if i32.const 0 - i32.const 1568 - i32.const 37 + i32.const 1776 + i32.const 38 i32.const 3 call $~lib/builtins/abort unreachable @@ -6966,57 +5998,57 @@ loop $for-loop|3 local.get $0 i32.const 50 - i32.lt_u + i32.lt_s if global.get $~lib/memory/__stack_pointer - local.get $1 + local.get $4 i32.store offset=4 - local.get $1 + local.get $4 local.get $0 - call $"~lib/map/Map#has" + call $"~lib/map/Map#has" i32.eqz if i32.const 0 - i32.const 1568 - i32.const 41 + i32.const 1776 + i32.const 42 i32.const 5 call $~lib/builtins/abort unreachable end global.get $~lib/memory/__stack_pointer - local.get $1 + local.get $4 i32.store offset=4 - local.get $1 + local.get $4 local.get $0 - call $"~lib/map/Map#get" + call $"~lib/map/Map#get" local.get $0 i32.const 20 i32.add i32.ne if i32.const 0 - i32.const 1568 - i32.const 42 + i32.const 1776 + i32.const 43 i32.const 5 call $~lib/builtins/abort unreachable end global.get $~lib/memory/__stack_pointer - local.get $1 + local.get $4 i32.store offset=4 - local.get $1 + local.get $4 local.get $0 - call $"~lib/map/Map#delete" + call $"~lib/map/Map#delete" global.get $~lib/memory/__stack_pointer - local.get $1 + local.get $4 i32.store offset=4 - local.get $1 + local.get $4 local.get $0 - call $"~lib/map/Map#has" + call $"~lib/map/Map#has" if i32.const 0 - i32.const 1568 - i32.const 44 + i32.const 1776 + i32.const 45 i32.const 5 call $~lib/builtins/abort unreachable @@ -7029,16 +6061,16 @@ end end global.get $~lib/memory/__stack_pointer - local.get $1 + local.get $4 i32.store offset=4 - local.get $1 + local.get $4 call $"~lib/map/Map#get:size" i32.const 50 i32.ne if i32.const 0 - i32.const 1568 - i32.const 46 + i32.const 1776 + i32.const 47 i32.const 3 call $~lib/builtins/abort unreachable @@ -7048,62 +6080,62 @@ loop $for-loop|4 local.get $0 i32.const 50 - i32.lt_u + i32.lt_s if global.get $~lib/memory/__stack_pointer - local.get $1 + local.get $4 i32.store offset=4 - local.get $1 + local.get $4 local.get $0 - call $"~lib/map/Map#has" + call $"~lib/map/Map#has" if i32.const 0 - i32.const 1568 - i32.const 50 + i32.const 1776 + i32.const 51 i32.const 5 call $~lib/builtins/abort unreachable end global.get $~lib/memory/__stack_pointer - local.get $1 + local.get $4 i32.store offset=4 - local.get $1 + local.get $4 local.get $0 local.get $0 i32.const 10 i32.add - call $"~lib/map/Map#set" + call $"~lib/map/Map#set" global.get $~lib/memory/__stack_pointer - local.get $1 + local.get $4 i32.store offset=4 - local.get $1 + local.get $4 local.get $0 - call $"~lib/map/Map#has" + call $"~lib/map/Map#has" i32.eqz if i32.const 0 - i32.const 1568 - i32.const 52 + i32.const 1776 + i32.const 53 i32.const 5 call $~lib/builtins/abort unreachable end global.get $~lib/memory/__stack_pointer - local.get $1 + local.get $4 i32.store offset=4 - local.get $1 + local.get $4 local.get $0 - call $"~lib/map/Map#delete" + call $"~lib/map/Map#delete" global.get $~lib/memory/__stack_pointer - local.get $1 + local.get $4 i32.store offset=4 - local.get $1 + local.get $4 local.get $0 - call $"~lib/map/Map#has" + call $"~lib/map/Map#has" if i32.const 0 - i32.const 1568 - i32.const 54 + i32.const 1776 + i32.const 55 i32.const 5 call $~lib/builtins/abort unreachable @@ -7116,263 +6148,316 @@ end end global.get $~lib/memory/__stack_pointer - local.get $1 + local.get $4 i32.store offset=4 - local.get $1 + local.get $4 call $"~lib/map/Map#get:size" i32.const 50 i32.ne if i32.const 0 - i32.const 1568 - i32.const 56 + i32.const 1776 + i32.const 57 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + local.get $4 + i32.store offset=4 + local.get $4 + call $"~lib/map/Map#clear" + global.get $~lib/memory/__stack_pointer + local.get $4 + i32.store offset=4 + local.get $4 + call $"~lib/map/Map#get:size" + if + i32.const 0 + i32.const 1776 + i32.const 61 i32.const 3 call $~lib/builtins/abort unreachable end global.get $~lib/memory/__stack_pointer + i32.const 6 + i32.const 2000 + call $~lib/rt/__newArray + local.tee $1 + i32.store offset=24 + i32.const 0 + local.set $0 + loop $for-loop|5 + local.get $0 + i32.const 100 + i32.lt_s + if + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.sub + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 3104 + i32.lt_s + br_if $folding-inner1 + global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.const 5 + call $~lib/rt/itcms/__new + local.tee $3 + i32.store + global.get $~lib/memory/__stack_pointer + local.get $3 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + local.get $3 + call $~lib/object/Object#constructor + local.tee $3 + i32.store + global.get $~lib/memory/__stack_pointer + local.get $3 + i32.store offset=4 + local.get $3 + i32.const 0 + i32.store8 + global.get $~lib/memory/__stack_pointer + local.get $3 + i32.store offset=4 + local.get $3 + i32.const 0 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $3 + i32.store offset=32 + global.get $~lib/memory/__stack_pointer + local.get $3 + i32.store offset=36 + local.get $3 + local.get $0 + i32.store8 + global.get $~lib/memory/__stack_pointer + local.get $3 + i32.store offset=36 + local.get $3 + local.get $0 + i32.const 10 + i32.add + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + local.get $3 + i32.store offset=28 + local.get $1 + local.get $3 + call $"~lib/array/Array<~lib/map/KeyValue>#push" + local.get $0 + i32.const 1 + i32.add + local.set $0 + br $for-loop|5 + end + end + global.get $~lib/memory/__stack_pointer local.get $1 i32.store offset=4 + global.get $~lib/memory/__stack_pointer local.get $1 - call $"~lib/map/Map#clear" + call $"~lib/map/Map#constructor" + local.tee $1 + i32.store global.get $~lib/memory/__stack_pointer local.get $1 i32.store offset=4 local.get $1 call $"~lib/map/Map#get:size" + i32.const 100 + i32.ne if i32.const 0 - i32.const 1568 - i32.const 60 + i32.const 1776 + i32.const 74 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + i32.const 0 + local.set $0 + loop $for-loop|6 + local.get $0 + i32.const 100 + i32.lt_s + if + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + local.get $1 + local.get $0 + call $"~lib/map/Map#has" + i32.eqz + if + i32.const 0 + i32.const 1776 + i32.const 76 + i32.const 5 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + local.get $1 + local.get $0 + call $"~lib/map/Map#get" + local.get $0 + i32.const 10 + i32.add + i32.ne + if + i32.const 0 + i32.const 1776 + i32.const 77 + i32.const 5 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + local.get $1 + local.get $0 + call $"~lib/map/Map#delete" + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + local.get $1 + local.get $0 + call $"~lib/map/Map#has" + if + i32.const 0 + i32.const 1776 + i32.const 79 + i32.const 5 + call $~lib/builtins/abort + unreachable + end + local.get $0 + i32.const 1 + i32.add + local.set $0 + br $for-loop|6 + end + end + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + local.get $1 + call $"~lib/map/Map#get:size" + if + i32.const 0 + i32.const 1776 + i32.const 81 i32.const 3 call $~lib/builtins/abort unreachable end global.get $~lib/memory/__stack_pointer - i32.const 24 + i32.const 40 i32.add global.set $~lib/memory/__stack_pointer return end - i32.const 34688 - i32.const 34736 + i32.const 35904 + i32.const 35952 i32.const 1 i32.const 1 call $~lib/builtins/abort unreachable ) - (func $"~lib/map/Map#find" (param $0 i32) (param $1 i32) (param $2 i32) (result i32) + (func $"~lib/map/Map#rehash" (param $0 i32) (param $1 i32) + (local $2 i32) (local $3 i32) + (local $4 i32) + (local $5 i32) + (local $6 i32) + (local $7 i32) + (local $8 i32) global.get $~lib/memory/__stack_pointer - i32.const 4 + i32.const 16 i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 1896 + i32.const 3104 i32.lt_s if - i32.const 34688 - i32.const 34736 + i32.const 35904 + i32.const 35952 i32.const 1 i32.const 1 call $~lib/builtins/abort unreachable end global.get $~lib/memory/__stack_pointer - i32.const 0 + i64.const 0 + i64.store + global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store offset=8 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.const 1 + i32.add + local.tee $2 + i32.const 2 + i32.shl + call $~lib/arraybuffer/ArrayBuffer#constructor + local.tee $6 i32.store global.get $~lib/memory/__stack_pointer + local.get $2 + i32.const 3 + i32.shl + i32.const 3 + i32.div_s + local.tee $5 + i32.const 12 + i32.mul + call $~lib/arraybuffer/ArrayBuffer#constructor + local.tee $3 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer local.get $0 - i32.store + i32.store offset=8 local.get $0 - i32.load + i32.load offset=8 + local.set $7 global.get $~lib/memory/__stack_pointer local.get $0 - i32.store - local.get $2 + i32.store offset=8 + local.get $7 local.get $0 - i32.load offset=4 - i32.and - i32.const 2 - i32.shl + i32.load offset=16 + i32.const 12 + i32.mul i32.add - i32.load - local.set $0 + local.set $4 + local.get $3 + local.set $2 loop $while-continue|0 - local.get $0 + local.get $4 + local.get $7 + i32.ne if - local.get $0 - i32.load offset=8 - local.tee $2 - i32.const 1 - i32.and - if (result i32) - i32.const 0 - else - local.get $0 - i32.load16_u - local.get $1 - i32.const 65535 - i32.and - i32.eq - end - if - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $0 - return - end - local.get $2 - i32.const -2 - i32.and - local.set $0 - br $while-continue|0 - end - end - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.add - global.set $~lib/memory/__stack_pointer - i32.const 0 - ) - (func $"~lib/map/Map#has" (param $0 i32) (param $1 i32) (result i32) - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.sub - global.set $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - i32.const 1896 - i32.lt_s - if - i32.const 34688 - i32.const 34736 - i32.const 1 - i32.const 1 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.store - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store - local.get $0 - local.get $1 - local.get $1 - i32.extend16_s - i32.const -1028477379 - i32.mul - i32.const 374761395 - i32.add - i32.const 17 - i32.rotl - i32.const 668265263 - i32.mul - local.tee $0 - local.get $0 - i32.const 15 - i32.shr_u - i32.xor - i32.const -2048144777 - i32.mul - local.tee $0 - local.get $0 - i32.const 13 - i32.shr_u - i32.xor - i32.const -1028477379 - i32.mul - local.tee $0 - local.get $0 - i32.const 16 - i32.shr_u - i32.xor - call $"~lib/map/Map#find" - i32.const 0 - i32.ne - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.add - global.set $~lib/memory/__stack_pointer - ) - (func $"~lib/map/Map#rehash" (param $0 i32) (param $1 i32) - (local $2 i32) - (local $3 i32) - (local $4 i32) - (local $5 i32) - (local $6 i32) - (local $7 i32) - (local $8 i32) - global.get $~lib/memory/__stack_pointer - i32.const 16 - i32.sub - global.set $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - i32.const 1896 - i32.lt_s - if - i32.const 34688 - i32.const 34736 - i32.const 1 - i32.const 1 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - i64.const 0 - i64.store - global.get $~lib/memory/__stack_pointer - i64.const 0 - i64.store offset=8 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.const 1 - i32.add - local.tee $2 - i32.const 2 - i32.shl - call $~lib/arraybuffer/ArrayBuffer#constructor - local.tee $6 - i32.store - global.get $~lib/memory/__stack_pointer - local.get $2 - i32.const 3 - i32.shl - i32.const 3 - i32.div_s - local.tee $5 - i32.const 12 - i32.mul - call $~lib/arraybuffer/ArrayBuffer#constructor - local.tee $3 - i32.store offset=4 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=8 - local.get $0 - i32.load offset=8 - local.set $7 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=8 - local.get $7 - local.get $0 - i32.load offset=16 - i32.const 12 - i32.mul - i32.add - local.set $4 - local.get $3 - local.set $2 - loop $while-continue|0 - local.get $4 - local.get $7 - i32.ne - if - local.get $7 + local.get $7 i32.load offset=8 i32.const 1 i32.and @@ -7380,9 +6465,9 @@ if local.get $2 local.get $7 - i32.load16_s + i32.load8_u local.tee $8 - i32.store16 + i32.store8 local.get $2 local.get $7 i32.load offset=4 @@ -7393,7 +6478,7 @@ local.get $8 i32.const -1028477379 i32.mul - i32.const 374761395 + i32.const 374761394 i32.add i32.const 17 i32.rotl @@ -7451,6 +6536,7 @@ i32.store local.get $0 local.get $6 + i32.const 0 call $~lib/rt/itcms/__link global.get $~lib/memory/__stack_pointer local.get $0 @@ -7469,6 +6555,7 @@ i32.store offset=8 local.get $0 local.get $3 + i32.const 0 call $~lib/rt/itcms/__link global.get $~lib/memory/__stack_pointer local.get $0 @@ -7491,20 +6578,25 @@ i32.add global.set $~lib/memory/__stack_pointer ) - (func $"~lib/map/Map#set" (param $0 i32) (param $1 i32) (param $2 i32) + (func $"~lib/map/Map#constructor" (param $0 i32) (result i32) + (local $1 i32) + (local $2 i32) (local $3 i32) (local $4 i32) (local $5 i32) + (local $6 i32) + (local $7 i32) + (local $8 i32) global.get $~lib/memory/__stack_pointer - i32.const 12 + i32.const 16 i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 1896 + i32.const 3104 i32.lt_s if - i32.const 34688 - i32.const 34736 + i32.const 35904 + i32.const 35952 i32.const 1 i32.const 1 call $~lib/builtins/abort @@ -7514,328 +6606,274 @@ i64.const 0 i64.store global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.store offset=8 + i64.const 0 + i64.store offset=8 global.get $~lib/memory/__stack_pointer - local.get $0 + i32.const 24 + i32.const 15 + call $~lib/rt/itcms/__new + local.tee $1 i32.store - local.get $0 + global.get $~lib/memory/__stack_pointer local.get $1 + i32.store offset=4 + i32.const 16 + call $~lib/arraybuffer/ArrayBuffer#constructor + local.set $3 + global.get $~lib/memory/__stack_pointer + local.get $3 + i32.store offset=8 local.get $1 - i32.extend16_s - i32.const -1028477379 - i32.mul - i32.const 374761395 - i32.add - i32.const 17 - i32.rotl - i32.const 668265263 - i32.mul - local.tee $3 - i32.const 15 - i32.shr_u local.get $3 - i32.xor - i32.const -2048144777 - i32.mul - local.tee $3 - i32.const 13 - i32.shr_u + i32.store + local.get $1 local.get $3 - i32.xor - i32.const -1028477379 - i32.mul - local.tee $3 - i32.const 16 - i32.shr_u + i32.const 0 + call $~lib/rt/itcms/__link + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + local.get $1 + i32.const 3 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + i32.const 48 + call $~lib/arraybuffer/ArrayBuffer#constructor + local.set $3 + global.get $~lib/memory/__stack_pointer + local.get $3 + i32.store offset=8 + local.get $1 + local.get $3 + i32.store offset=8 + local.get $1 local.get $3 - i32.xor - local.tee $4 - call $"~lib/map/Map#find" - local.tee $3 - if - local.get $3 - local.get $2 - i32.store offset=4 - else - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store - local.get $0 - i32.load offset=16 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store - local.get $0 - i32.load offset=12 - i32.eq - if - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 - i32.load offset=20 - local.set $3 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 - local.get $3 - local.get $0 - i32.load offset=12 - i32.const 3 - i32.mul - i32.const 4 - i32.div_s - i32.lt_s - if (result i32) - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 - i32.load offset=4 - else - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 - i32.load offset=4 - i32.const 1 - i32.shl - i32.const 1 - i32.or - end - call $"~lib/map/Map#rehash" - end - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.load offset=8 - local.tee $3 - i32.store offset=8 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 - local.get $0 - i32.load offset=16 - local.tee $5 - i32.const 1 - i32.add - i32.store offset=16 - local.get $3 - local.get $5 - i32.const 12 - i32.mul - i32.add - local.tee $3 - local.get $1 - i32.store16 - local.get $3 - local.get $2 - i32.store offset=4 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 - local.get $0 - i32.load offset=20 - i32.const 1 - i32.add - i32.store offset=20 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store - local.get $0 - i32.load - local.set $1 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store - local.get $3 - local.get $1 - local.get $4 - local.get $0 - i32.load offset=4 - i32.and - i32.const 2 - i32.shl - i32.add - local.tee $0 - i32.load - i32.store offset=8 - local.get $0 - local.get $3 - i32.store - end - global.get $~lib/memory/__stack_pointer - i32.const 12 - i32.add - global.set $~lib/memory/__stack_pointer - ) - (func $"~lib/map/Map#get" (param $0 i32) (param $1 i32) (result i32) - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.sub - global.set $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - i32.const 1896 - i32.lt_s - if - i32.const 34688 - i32.const 34736 - i32.const 1 - i32.const 1 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer i32.const 0 - i32.store + call $~lib/rt/itcms/__link global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store - local.get $0 local.get $1 + i32.store offset=4 local.get $1 - i32.extend16_s - i32.const -1028477379 - i32.mul - i32.const 374761395 - i32.add - i32.const 17 - i32.rotl - i32.const 668265263 - i32.mul - local.tee $0 - local.get $0 - i32.const 15 - i32.shr_u - i32.xor - i32.const -2048144777 - i32.mul - local.tee $0 - local.get $0 - i32.const 13 - i32.shr_u - i32.xor - i32.const -1028477379 - i32.mul - local.tee $0 - local.get $0 - i32.const 16 - i32.shr_u - i32.xor - call $"~lib/map/Map#find" - local.tee $0 - i32.eqz - if - i32.const 1616 - i32.const 1680 - i32.const 105 - i32.const 17 - call $~lib/builtins/abort - unreachable - end - local.get $0 - i32.load offset=4 - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.add - global.set $~lib/memory/__stack_pointer - ) - (func $~lib/array/Array#__set (param $0 i32) (param $1 i32) (param $2 i32) - (local $3 i32) - global.get $~lib/memory/__stack_pointer i32.const 4 - i32.sub - global.set $~lib/memory/__stack_pointer + i32.store offset=12 global.get $~lib/memory/__stack_pointer - i32.const 1896 - i32.lt_s - if - i32.const 34688 - i32.const 34736 - i32.const 1 - i32.const 1 - call $~lib/builtins/abort - unreachable - end + local.get $1 + i32.store offset=4 + local.get $1 + i32.const 0 + i32.store offset=16 global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + local.get $1 i32.const 0 - i32.store + i32.store offset=20 global.get $~lib/memory/__stack_pointer local.get $0 - i32.store - local.get $1 + i32.store offset=4 local.get $0 - i32.load offset=12 - i32.ge_u + call $"~lib/array/Array<~lib/map/KeyValue>#get:length" + local.tee $3 + i32.const 0 + i32.gt_s if + global.get $~lib/memory/__stack_pointer local.get $1 - i32.const 0 - i32.lt_s + i32.store offset=4 + local.get $3 + local.get $1 + i32.load offset=12 + i32.ge_s if - i32.const 1248 - i32.const 1728 - i32.const 130 - i32.const 22 - call $~lib/builtins/abort - unreachable + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + local.get $1 + local.get $3 + i32.store offset=4 end - local.get $0 + global.get $~lib/memory/__stack_pointer local.get $1 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=8 + local.get $1 + local.get $1 + i32.load offset=4 i32.const 1 - i32.add - local.tee $3 - i32.const 1 + i32.shl i32.const 1 - call $~lib/array/ensureCapacity - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store - local.get $0 - local.get $3 - i32.store offset=12 - end - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store - local.get $0 - i32.load offset=4 - local.get $1 - i32.const 1 - i32.shl - i32.add - local.get $2 - i32.store16 + i32.or + call $"~lib/map/Map#rehash" + loop $for-loop|0 + local.get $2 + local.get $3 + i32.lt_s + if + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=8 + local.get $0 + local.get $2 + call $"~lib/array/Array<~lib/map/KeyValue>#__get" + local.set $4 + global.get $~lib/memory/__stack_pointer + local.get $4 + i32.store offset=4 + local.get $4 + i32.load8_u + local.set $4 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=8 + local.get $0 + local.get $2 + call $"~lib/array/Array<~lib/map/KeyValue>#__get" + local.set $5 + global.get $~lib/memory/__stack_pointer + local.get $5 + i32.store offset=4 + local.get $5 + i32.load offset=4 + local.set $6 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + local.get $1 + local.get $4 + local.get $4 + i32.const -1028477379 + i32.mul + i32.const 374761394 + i32.add + i32.const 17 + i32.rotl + i32.const 668265263 + i32.mul + local.tee $5 + i32.const 15 + i32.shr_u + local.get $5 + i32.xor + i32.const -2048144777 + i32.mul + local.tee $5 + i32.const 13 + i32.shr_u + local.get $5 + i32.xor + i32.const -1028477379 + i32.mul + local.tee $5 + i32.const 16 + i32.shr_u + local.get $5 + i32.xor + local.tee $7 + call $"~lib/map/Map#find" + local.tee $5 + if + local.get $5 + local.get $6 + i32.store offset=4 + else + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.load offset=8 + local.tee $5 + i32.store offset=12 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=8 + local.get $1 + local.get $1 + i32.load offset=16 + local.tee $8 + i32.const 1 + i32.add + i32.store offset=16 + local.get $5 + local.get $8 + i32.const 12 + i32.mul + i32.add + local.tee $5 + local.get $4 + i32.store8 + local.get $5 + local.get $6 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=8 + local.get $1 + local.get $1 + i32.load offset=20 + i32.const 1 + i32.add + i32.store offset=20 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + local.get $1 + i32.load + local.set $4 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + local.get $5 + local.get $4 + local.get $7 + local.get $1 + i32.load offset=4 + i32.and + i32.const 2 + i32.shl + i32.add + local.tee $4 + i32.load + i32.store offset=8 + local.get $4 + local.get $5 + i32.store + end + local.get $2 + i32.const 1 + i32.add + local.set $2 + br $for-loop|0 + end + end + end global.get $~lib/memory/__stack_pointer - i32.const 4 + i32.const 16 i32.add global.set $~lib/memory/__stack_pointer + local.get $1 ) - (func $~lib/array/Array#set:length (param $0 i32) (param $1 i32) + (func $"~lib/map/Map#has" (param $0 i32) (param $1 i32) (result i32) global.get $~lib/memory/__stack_pointer i32.const 4 i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 1896 + i32.const 3104 i32.lt_s if - i32.const 34688 - i32.const 34736 + i32.const 35904 + i32.const 35952 i32.const 1 i32.const 1 call $~lib/builtins/abort @@ -7844,603 +6882,316 @@ global.get $~lib/memory/__stack_pointer i32.const 0 i32.store - local.get $0 - local.get $1 - i32.const 1 - i32.const 0 - call $~lib/array/ensureCapacity global.get $~lib/memory/__stack_pointer local.get $0 i32.store local.get $0 local.get $1 - i32.store offset=12 + local.get $1 + i32.const 255 + i32.and + i32.const -1028477379 + i32.mul + i32.const 374761394 + i32.add + i32.const 17 + i32.rotl + i32.const 668265263 + i32.mul + local.tee $0 + local.get $0 + i32.const 15 + i32.shr_u + i32.xor + i32.const -2048144777 + i32.mul + local.tee $0 + local.get $0 + i32.const 13 + i32.shr_u + i32.xor + i32.const -1028477379 + i32.mul + local.tee $0 + local.get $0 + i32.const 16 + i32.shr_u + i32.xor + call $"~lib/map/Map#find" + i32.const 0 + i32.ne global.get $~lib/memory/__stack_pointer i32.const 4 i32.add global.set $~lib/memory/__stack_pointer ) - (func $"~lib/map/Map#set" (param $0 i32) (param $1 i32) (param $2 i32) + (func $"~lib/map/Map#set" (param $0 i32) (param $1 i32) (param $2 i32) (local $3 i32) (local $4 i32) (local $5 i32) - (local $6 i32) - (local $7 i32) - (local $8 i32) - (local $9 i32) - (local $10 i32) - (local $11 i32) global.get $~lib/memory/__stack_pointer i32.const 12 i32.sub global.set $~lib/memory/__stack_pointer - block $folding-inner1 + global.get $~lib/memory/__stack_pointer + i32.const 3104 + i32.lt_s + if + i32.const 35904 + i32.const 35952 + i32.const 1 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store offset=8 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + local.get $0 + local.get $1 + local.get $1 + i32.const 255 + i32.and + i32.const -1028477379 + i32.mul + i32.const 374761394 + i32.add + i32.const 17 + i32.rotl + i32.const 668265263 + i32.mul + local.tee $3 + i32.const 15 + i32.shr_u + local.get $3 + i32.xor + i32.const -2048144777 + i32.mul + local.tee $3 + i32.const 13 + i32.shr_u + local.get $3 + i32.xor + i32.const -1028477379 + i32.mul + local.tee $3 + i32.const 16 + i32.shr_u + local.get $3 + i32.xor + local.tee $4 + call $"~lib/map/Map#find" + local.tee $3 + if + local.get $3 + local.get $2 + i32.store offset=4 + else global.get $~lib/memory/__stack_pointer - i32.const 1896 - i32.lt_s - br_if $folding-inner1 + local.get $0 + i32.store + local.get $0 + i32.load offset=16 global.get $~lib/memory/__stack_pointer - i64.const 0 - i64.store + local.get $0 + i32.store + local.get $0 + i32.load offset=12 + i32.eq + if + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + local.get $0 + i32.load offset=20 + local.set $3 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + local.get $0 + local.get $3 + local.get $0 + i32.load offset=12 + i32.const 3 + i32.mul + i32.const 4 + i32.div_s + i32.lt_s + if (result i32) + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + local.get $0 + i32.load offset=4 + else + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + local.get $0 + i32.load offset=4 + i32.const 1 + i32.shl + i32.const 1 + i32.or + end + call $"~lib/map/Map#rehash" + end global.get $~lib/memory/__stack_pointer - i32.const 0 + local.get $0 + i32.store + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.load offset=8 + local.tee $3 i32.store offset=8 global.get $~lib/memory/__stack_pointer local.get $0 i32.store - local.get $1 - i32.extend16_s - i32.const -1028477379 - i32.mul - i32.const 374761395 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + local.get $0 + local.get $0 + i32.load offset=16 + local.tee $5 + i32.const 1 i32.add - i32.const 17 - i32.rotl - i32.const 668265263 - i32.mul - local.tee $3 - i32.const 15 - i32.shr_u - local.get $3 - i32.xor - i32.const -2048144777 - i32.mul - local.tee $3 - i32.const 13 - i32.shr_u + i32.store offset=16 local.get $3 - i32.xor - i32.const -1028477379 + local.get $5 + i32.const 12 i32.mul + i32.add local.tee $3 - i32.const 16 - i32.shr_u + local.get $1 + i32.store8 local.get $3 - i32.xor - local.tee $8 - local.set $3 - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.sub - global.set $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - i32.const 1896 - i32.lt_s - br_if $folding-inner1 + local.get $2 + i32.store offset=4 global.get $~lib/memory/__stack_pointer - i32.const 0 + local.get $0 i32.store global.get $~lib/memory/__stack_pointer local.get $0 + i32.store offset=4 + local.get $0 + local.get $0 + i32.load offset=20 + i32.const 1 + i32.add + i32.store offset=20 + global.get $~lib/memory/__stack_pointer + local.get $0 i32.store local.get $0 i32.load + local.set $1 global.get $~lib/memory/__stack_pointer local.get $0 i32.store local.get $3 + local.get $1 + local.get $4 local.get $0 i32.load offset=4 i32.and i32.const 2 i32.shl i32.add + local.tee $0 i32.load - local.set $3 - block $"__inlined_func$~lib/map/Map#find$1388" - loop $while-continue|0 - local.get $3 - if - local.get $3 - i32.load offset=4 - local.tee $4 - i32.const 1 - i32.and - if (result i32) - i32.const 0 - else - local.get $3 - i32.load16_u - local.get $1 - i32.const 65535 - i32.and - i32.eq - end - if - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.add - global.set $~lib/memory/__stack_pointer - br $"__inlined_func$~lib/map/Map#find$1388" - end - local.get $4 - i32.const -2 - i32.and - local.set $3 - br $while-continue|0 - end - end - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.add - global.set $~lib/memory/__stack_pointer - i32.const 0 - local.set $3 - end + i32.store offset=8 + local.get $0 local.get $3 - if - local.get $3 - local.get $2 - i32.store16 offset=2 - else - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store - local.get $0 - i32.load offset=16 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store - local.get $0 - i32.load offset=12 - i32.eq - if - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 - i32.load offset=20 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 - i32.load offset=12 - i32.const 3 - i32.mul - i32.const 4 - i32.div_s - i32.lt_s - if (result i32) - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 - i32.load offset=4 - else - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 - i32.load offset=4 - i32.const 1 - i32.shl - i32.const 1 - i32.or - end - local.set $7 - global.get $~lib/memory/__stack_pointer - i32.const 16 - i32.sub - global.set $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - i32.const 1896 - i32.lt_s - br_if $folding-inner1 - global.get $~lib/memory/__stack_pointer - i64.const 0 - i64.store - global.get $~lib/memory/__stack_pointer - i64.const 0 - i64.store offset=8 - global.get $~lib/memory/__stack_pointer - local.get $7 - i32.const 1 - i32.add - local.tee $3 - i32.const 2 - i32.shl - call $~lib/arraybuffer/ArrayBuffer#constructor - local.tee $6 - i32.store - global.get $~lib/memory/__stack_pointer - local.get $3 - i32.const 3 - i32.shl - i32.const 3 - i32.div_s - local.tee $9 - i32.const 3 - i32.shl - call $~lib/arraybuffer/ArrayBuffer#constructor - local.tee $4 - i32.store offset=4 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=8 - local.get $0 - i32.load offset=8 - local.set $5 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=8 - local.get $5 - local.get $0 - i32.load offset=16 - i32.const 3 - i32.shl - i32.add - local.set $10 - local.get $4 - local.set $3 - loop $while-continue|00 - local.get $5 - local.get $10 - i32.ne - if - local.get $5 - i32.load offset=4 - i32.const 1 - i32.and - i32.eqz - if - local.get $3 - local.get $5 - i32.load16_s - local.tee $11 - i32.store16 - local.get $3 - local.get $5 - i32.load16_s offset=2 - i32.store16 offset=2 - local.get $3 - local.get $6 - local.get $7 - local.get $11 - i32.const -1028477379 - i32.mul - i32.const 374761395 - i32.add - i32.const 17 - i32.rotl - i32.const 668265263 - i32.mul - local.tee $11 - local.get $11 - i32.const 15 - i32.shr_u - i32.xor - i32.const -2048144777 - i32.mul - local.tee $11 - local.get $11 - i32.const 13 - i32.shr_u - i32.xor - i32.const -1028477379 - i32.mul - local.tee $11 - local.get $11 - i32.const 16 - i32.shr_u - i32.xor - i32.and - i32.const 2 - i32.shl - i32.add - local.tee $11 - i32.load - i32.store offset=4 - local.get $11 - local.get $3 - i32.store - local.get $3 - i32.const 8 - i32.add - local.set $3 - end - local.get $5 - i32.const 8 - i32.add - local.set $5 - br $while-continue|00 - end - end - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=8 - global.get $~lib/memory/__stack_pointer - local.get $6 - i32.store offset=12 - local.get $0 - local.get $6 - i32.store - local.get $0 - local.get $6 - call $~lib/rt/itcms/__link - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=8 - local.get $0 - local.get $7 - i32.store offset=4 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=8 - global.get $~lib/memory/__stack_pointer - local.get $4 - i32.store offset=12 - local.get $0 - local.get $4 - i32.store offset=8 - local.get $0 - local.get $4 - call $~lib/rt/itcms/__link - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=8 - local.get $0 - local.get $9 - i32.store offset=12 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=8 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=12 - local.get $0 - local.get $0 - i32.load offset=20 - i32.store offset=16 - global.get $~lib/memory/__stack_pointer - i32.const 16 - i32.add - global.set $~lib/memory/__stack_pointer - end - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.load offset=8 - local.tee $3 - i32.store offset=8 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 - local.get $0 - i32.load offset=16 - local.tee $4 - i32.const 1 - i32.add - i32.store offset=16 - local.get $3 - local.get $4 - i32.const 3 - i32.shl - i32.add - local.tee $3 - local.get $1 - i32.store16 - local.get $3 - local.get $2 - i32.store16 offset=2 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 - local.get $0 - i32.load offset=20 - i32.const 1 - i32.add - i32.store offset=20 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store - local.get $0 - i32.load - local.set $1 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store - local.get $3 - local.get $1 - local.get $8 - local.get $0 - i32.load offset=4 - i32.and - i32.const 2 - i32.shl - i32.add - local.tee $0 - i32.load - i32.store offset=4 - local.get $0 - local.get $3 - i32.store - end - global.get $~lib/memory/__stack_pointer - i32.const 12 - i32.add - global.set $~lib/memory/__stack_pointer - return + i32.store end - i32.const 34688 - i32.const 34736 - i32.const 1 - i32.const 1 - call $~lib/builtins/abort - unreachable + global.get $~lib/memory/__stack_pointer + i32.const 12 + i32.add + global.set $~lib/memory/__stack_pointer ) - (func $"~lib/map/Map#delete" (param $0 i32) (param $1 i32) - (local $2 i32) + (func $"~lib/map/Map#get" (param $0 i32) (param $1 i32) (result i32) global.get $~lib/memory/__stack_pointer - i32.const 8 + i32.const 4 i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 1896 + i32.const 3104 i32.lt_s if - i32.const 34688 - i32.const 34736 + i32.const 35904 + i32.const 35952 i32.const 1 i32.const 1 call $~lib/builtins/abort unreachable end global.get $~lib/memory/__stack_pointer - i64.const 0 - i64.store + i32.const 0 + i32.store global.get $~lib/memory/__stack_pointer local.get $0 i32.store local.get $0 local.get $1 local.get $1 - i32.extend16_s + i32.const 255 + i32.and i32.const -1028477379 i32.mul - i32.const 374761395 + i32.const 374761394 i32.add i32.const 17 i32.rotl i32.const 668265263 i32.mul - local.tee $1 + local.tee $0 + local.get $0 i32.const 15 i32.shr_u - local.get $1 i32.xor i32.const -2048144777 i32.mul - local.tee $1 + local.tee $0 + local.get $0 i32.const 13 i32.shr_u - local.get $1 i32.xor i32.const -1028477379 i32.mul - local.tee $1 + local.tee $0 + local.get $0 i32.const 16 i32.shr_u - local.get $1 i32.xor - call $"~lib/map/Map#find" - local.tee $1 + call $"~lib/map/Map#find" + local.tee $0 i32.eqz if - global.get $~lib/memory/__stack_pointer - i32.const 8 - i32.add - global.set $~lib/memory/__stack_pointer - return + i32.const 1824 + i32.const 1888 + i32.const 148 + i32.const 17 + call $~lib/builtins/abort + unreachable end - local.get $1 - local.get $1 - i32.load offset=8 - i32.const 1 - i32.or - i32.store offset=8 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 - local.get $0 - i32.load offset=20 - i32.const 1 - i32.sub - i32.store offset=20 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store local.get $0 i32.load offset=4 - i32.const 1 - i32.shr_u - local.set $1 global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store - local.get $1 - i32.const 1 - i32.add i32.const 4 - local.get $0 - i32.load offset=20 - local.tee $2 - local.get $2 - i32.const 4 - i32.lt_u - select - i32.ge_u - if (result i32) - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store - local.get $0 - i32.load offset=20 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store - local.get $0 - i32.load offset=12 - i32.const 3 - i32.mul - i32.const 4 - i32.div_s - i32.lt_s - else - i32.const 0 - end - if - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store - local.get $0 - local.get $1 - call $"~lib/map/Map#rehash" - end - global.get $~lib/memory/__stack_pointer - i32.const 8 i32.add global.set $~lib/memory/__stack_pointer ) - (func $"std/map/testNumeric" - (local $0 i32) - (local $1 i32) + (func $"~lib/map/Map#rehash" (param $0 i32) (param $1 i32) (local $2 i32) (local $3 i32) (local $4 i32) @@ -8449,487 +7200,647 @@ (local $7 i32) (local $8 i32) global.get $~lib/memory/__stack_pointer - i32.const 24 + i32.const 16 i32.sub global.set $~lib/memory/__stack_pointer - block $folding-inner1 - global.get $~lib/memory/__stack_pointer - i32.const 1896 - i32.lt_s - br_if $folding-inner1 - global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.const 24 - memory.fill - global.get $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - i32.const 12 - i32.sub - global.set $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - i32.const 1896 - i32.lt_s - br_if $folding-inner1 - global.get $~lib/memory/__stack_pointer - i64.const 0 - i64.store - global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.store offset=8 - global.get $~lib/memory/__stack_pointer - i32.const 24 - i32.const 12 - call $~lib/rt/itcms/__new - local.tee $1 - i32.store - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - i32.const 16 - call $~lib/arraybuffer/ArrayBuffer#constructor - local.set $5 - global.get $~lib/memory/__stack_pointer - local.get $5 - i32.store offset=8 - local.get $1 - local.get $5 - i32.store - local.get $1 - local.get $5 - call $~lib/rt/itcms/__link - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - local.get $1 - i32.const 3 - i32.store offset=4 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - i32.const 48 - call $~lib/arraybuffer/ArrayBuffer#constructor - local.set $5 - global.get $~lib/memory/__stack_pointer - local.get $5 - i32.store offset=8 - local.get $1 - local.get $5 - i32.store offset=8 - local.get $1 - local.get $5 - call $~lib/rt/itcms/__link - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - local.get $1 - i32.const 4 - i32.store offset=12 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - local.get $1 - i32.const 0 - i32.store offset=16 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - local.get $1 - i32.const 0 - i32.store offset=20 - global.get $~lib/memory/__stack_pointer - i32.const 12 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $1 - i32.store - loop $for-loop|0 - local.get $0 - i32.const 100 - i32.lt_s + global.get $~lib/memory/__stack_pointer + i32.const 3104 + i32.lt_s + if + i32.const 35904 + i32.const 35952 + i32.const 1 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store + global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store offset=8 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.const 1 + i32.add + local.tee $2 + i32.const 2 + i32.shl + call $~lib/arraybuffer/ArrayBuffer#constructor + local.tee $6 + i32.store + global.get $~lib/memory/__stack_pointer + local.get $2 + i32.const 3 + i32.shl + i32.const 3 + i32.div_s + local.tee $5 + i32.const 3 + i32.shl + call $~lib/arraybuffer/ArrayBuffer#constructor + local.tee $3 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=8 + local.get $0 + i32.load offset=8 + local.set $7 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=8 + local.get $7 + local.get $0 + i32.load offset=16 + i32.const 3 + i32.shl + i32.add + local.set $4 + local.get $3 + local.set $2 + loop $while-continue|0 + local.get $4 + local.get $7 + i32.ne + if + local.get $7 + i32.load offset=4 + i32.const 1 + i32.and + i32.eqz if - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - local.get $1 - local.get $0 - call $"~lib/map/Map#has" - if - i32.const 0 - i32.const 1568 - i32.const 6 - i32.const 5 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 + local.get $2 + local.get $7 + i32.load8_u + local.tee $8 + i32.store8 + local.get $2 + local.get $7 + i32.load8_u offset=1 + i32.store8 offset=1 + local.get $2 + local.get $6 local.get $1 - local.get $0 - local.get $0 - i32.const 10 + local.get $8 + i32.const -1028477379 + i32.mul + i32.const 374761394 i32.add - call $"~lib/map/Map#set" - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - local.get $1 - local.get $0 - call $"~lib/map/Map#has" - i32.eqz - if - i32.const 0 - i32.const 1568 - i32.const 8 - i32.const 5 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - local.get $1 - local.get $0 - call $"~lib/map/Map#get" - local.get $0 - i32.const 10 + i32.const 17 + i32.rotl + i32.const 668265263 + i32.mul + local.tee $8 + local.get $8 + i32.const 15 + i32.shr_u + i32.xor + i32.const -2048144777 + i32.mul + local.tee $8 + local.get $8 + i32.const 13 + i32.shr_u + i32.xor + i32.const -1028477379 + i32.mul + local.tee $8 + local.get $8 + i32.const 16 + i32.shr_u + i32.xor + i32.and + i32.const 2 + i32.shl i32.add - i32.ne - if - i32.const 0 - i32.const 1568 - i32.const 9 - i32.const 5 - call $~lib/builtins/abort - unreachable - end - local.get $0 - i32.const 1 + local.tee $8 + i32.load + i32.store offset=4 + local.get $8 + local.get $2 + i32.store + local.get $2 + i32.const 8 i32.add - local.set $0 - br $for-loop|0 + local.set $2 end + local.get $7 + i32.const 8 + i32.add + local.set $7 + br $while-continue|0 end - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - local.get $1 - call $"~lib/map/Map#get:size" - i32.const 100 - i32.ne - if - i32.const 0 - i32.const 1568 - i32.const 11 - i32.const 3 - call $~lib/builtins/abort - unreachable + end + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=8 + global.get $~lib/memory/__stack_pointer + local.get $6 + i32.store offset=12 + local.get $0 + local.get $6 + i32.store + local.get $0 + local.get $6 + i32.const 0 + call $~lib/rt/itcms/__link + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=8 + local.get $0 + local.get $1 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=8 + global.get $~lib/memory/__stack_pointer + local.get $3 + i32.store offset=12 + local.get $0 + local.get $3 + i32.store offset=8 + local.get $0 + local.get $3 + i32.const 0 + call $~lib/rt/itcms/__link + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=8 + local.get $0 + local.get $5 + i32.store offset=12 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=8 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=12 + local.get $0 + local.get $0 + i32.load offset=20 + i32.store offset=16 + global.get $~lib/memory/__stack_pointer + i32.const 16 + i32.add + global.set $~lib/memory/__stack_pointer + ) + (func $"~lib/map/Map#constructor" (param $0 i32) (result i32) + (local $1 i32) + (local $2 i32) + (local $3 i32) + (local $4 i32) + (local $5 i32) + (local $6 i32) + (local $7 i32) + (local $8 i32) + global.get $~lib/memory/__stack_pointer + i32.const 16 + i32.sub + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 3104 + i32.lt_s + if + i32.const 35904 + i32.const 35952 + i32.const 1 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store + global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store offset=8 + global.get $~lib/memory/__stack_pointer + i32.const 24 + i32.const 19 + call $~lib/rt/itcms/__new + local.tee $1 + i32.store + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + i32.const 16 + call $~lib/arraybuffer/ArrayBuffer#constructor + local.set $3 + global.get $~lib/memory/__stack_pointer + local.get $3 + i32.store offset=8 + local.get $1 + local.get $3 + i32.store + local.get $1 + local.get $3 + i32.const 0 + call $~lib/rt/itcms/__link + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + local.get $1 + i32.const 3 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + i32.const 32 + call $~lib/arraybuffer/ArrayBuffer#constructor + local.set $3 + global.get $~lib/memory/__stack_pointer + local.get $3 + i32.store offset=8 + local.get $1 + local.get $3 + i32.store offset=8 + local.get $1 + local.get $3 + i32.const 0 + call $~lib/rt/itcms/__link + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + local.get $1 + i32.const 4 + i32.store offset=12 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + local.get $1 + i32.const 0 + i32.store offset=16 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + local.get $1 + i32.const 0 + i32.store offset=20 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + local.get $0 + call $"~lib/array/Array<~lib/map/KeyValue>#get:length" + local.tee $3 + i32.const 0 + i32.gt_s + if + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + local.get $3 + local.get $1 + i32.load offset=12 + i32.ge_s + if + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + local.get $1 + local.get $3 + i32.store offset=4 end - i32.const 0 - local.set $0 - loop $for-loop|1 - local.get $0 - i32.const 100 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=8 + local.get $1 + local.get $1 + i32.load offset=4 + i32.const 1 + i32.shl + i32.const 1 + i32.or + call $"~lib/map/Map#rehash" + loop $for-loop|0 + local.get $2 + local.get $3 i32.lt_s if global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - local.get $1 - local.get $0 - call $"~lib/map/Map#has" - i32.eqz - if - i32.const 0 - i32.const 1568 - i32.const 15 - i32.const 5 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - local.get $1 local.get $0 - call $"~lib/map/Map#get" + i32.store offset=8 local.get $0 - i32.const 10 - i32.add - i32.ne - if - i32.const 0 - i32.const 1568 - i32.const 16 - i32.const 5 - call $~lib/builtins/abort - unreachable - end + local.get $2 + call $"~lib/array/Array<~lib/map/KeyValue>#__get" + local.set $4 global.get $~lib/memory/__stack_pointer - local.get $1 + local.get $4 i32.store offset=4 - local.get $1 + local.get $4 + i32.load8_u + local.set $4 + global.get $~lib/memory/__stack_pointer local.get $0 + i32.store offset=8 local.get $0 - i32.const 20 - i32.add - call $"~lib/map/Map#set" + local.get $2 + call $"~lib/array/Array<~lib/map/KeyValue>#__get" + local.set $5 global.get $~lib/memory/__stack_pointer - local.get $1 + local.get $5 i32.store offset=4 - local.get $1 - local.get $0 - call $"~lib/map/Map#has" - i32.eqz - if - i32.const 0 - i32.const 1568 - i32.const 18 - i32.const 5 - call $~lib/builtins/abort - unreachable - end + local.get $5 + i32.load8_u offset=1 + local.set $6 global.get $~lib/memory/__stack_pointer local.get $1 i32.store offset=4 local.get $1 - local.get $0 - call $"~lib/map/Map#get" - local.get $0 - i32.const 20 + local.get $4 + local.get $4 + i32.const -1028477379 + i32.mul + i32.const 374761394 i32.add - i32.ne - if - i32.const 0 - i32.const 1568 - i32.const 19 - i32.const 5 - call $~lib/builtins/abort - unreachable + i32.const 17 + i32.rotl + i32.const 668265263 + i32.mul + local.tee $5 + i32.const 15 + i32.shr_u + local.get $5 + i32.xor + i32.const -2048144777 + i32.mul + local.tee $5 + i32.const 13 + i32.shr_u + local.get $5 + i32.xor + i32.const -1028477379 + i32.mul + local.tee $5 + i32.const 16 + i32.shr_u + local.get $5 + i32.xor + local.tee $7 + call $"~lib/map/Map#find" + local.tee $5 + if + local.get $5 + local.get $6 + i32.store8 offset=1 + else + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.load offset=8 + local.tee $5 + i32.store offset=12 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=8 + local.get $1 + local.get $1 + i32.load offset=16 + local.tee $8 + i32.const 1 + i32.add + i32.store offset=16 + local.get $5 + local.get $8 + i32.const 3 + i32.shl + i32.add + local.tee $5 + local.get $4 + i32.store8 + local.get $5 + local.get $6 + i32.store8 offset=1 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=8 + local.get $1 + local.get $1 + i32.load offset=20 + i32.const 1 + i32.add + i32.store offset=20 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + local.get $1 + i32.load + local.set $4 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + local.get $5 + local.get $4 + local.get $7 + local.get $1 + i32.load offset=4 + i32.and + i32.const 2 + i32.shl + i32.add + local.tee $4 + i32.load + i32.store offset=4 + local.get $4 + local.get $5 + i32.store end - local.get $0 + local.get $2 i32.const 1 i32.add - local.set $0 - br $for-loop|1 + local.set $2 + br $for-loop|0 end end - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - local.get $1 - call $"~lib/map/Map#get:size" - i32.const 100 - i32.ne - if - i32.const 0 - i32.const 1568 - i32.const 21 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 + end + global.get $~lib/memory/__stack_pointer + i32.const 16 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $1 + ) + (func $"~lib/map/Map#delete" (param $0 i32) (param $1 i32) + (local $2 i32) + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.sub + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 3104 + i32.lt_s + if + i32.const 35904 + i32.const 35952 + i32.const 1 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + local.get $0 + local.get $1 + local.get $1 + i32.const 255 + i32.and + i32.const -1028477379 + i32.mul + i32.const 374761394 + i32.add + i32.const 17 + i32.rotl + i32.const 668265263 + i32.mul + local.tee $1 + i32.const 15 + i32.shr_u + local.get $1 + i32.xor + i32.const -2048144777 + i32.mul + local.tee $1 + i32.const 13 + i32.shr_u + local.get $1 + i32.xor + i32.const -1028477379 + i32.mul + local.tee $1 + i32.const 16 + i32.shr_u + local.get $1 + i32.xor + call $"~lib/map/Map#find" + local.tee $1 + i32.eqz + if global.get $~lib/memory/__stack_pointer i32.const 8 - i32.sub + i32.add global.set $~lib/memory/__stack_pointer + return + end + local.get $1 + local.get $1 + i32.load offset=8 + i32.const 1 + i32.or + i32.store offset=8 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + local.get $0 + local.get $0 + i32.load offset=20 + i32.const 1 + i32.sub + i32.store offset=20 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + local.get $0 + i32.load offset=4 + i32.const 1 + i32.shr_u + local.set $1 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + local.get $1 + i32.const 1 + i32.add + i32.const 4 + local.get $0 + i32.load offset=20 + local.tee $2 + local.get $2 + i32.const 4 + i32.lt_u + select + i32.ge_u + if (result i32) global.get $~lib/memory/__stack_pointer - i32.const 1896 - i32.lt_s - br_if $folding-inner1 - global.get $~lib/memory/__stack_pointer - i64.const 0 - i64.store + local.get $0 + i32.store + local.get $0 + i32.load offset=20 global.get $~lib/memory/__stack_pointer - local.get $1 + local.get $0 i32.store - local.get $1 - i32.load offset=8 - local.set $5 + local.get $0 + i32.load offset=12 + i32.const 3 + i32.mul + i32.const 4 + i32.div_s + i32.lt_s + else + i32.const 0 + end + if global.get $~lib/memory/__stack_pointer - local.get $1 + local.get $0 i32.store + local.get $0 local.get $1 - i32.load offset=16 - local.set $6 - global.get $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - i32.const 16 - i32.sub - global.set $~lib/memory/__stack_pointer + call $"~lib/map/Map#rehash" + end + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.add + global.set $~lib/memory/__stack_pointer + ) + (func $"std/map/testNumeric" + (local $0 i32) + (local $1 i32) + (local $2 i32) + (local $3 i32) + (local $4 i32) + (local $5 i32) + (local $6 i32) + (local $7 i32) + (local $8 i32) + (local $9 i32) + (local $10 i32) + global.get $~lib/memory/__stack_pointer + i32.const 40 + i32.sub + global.set $~lib/memory/__stack_pointer + block $folding-inner1 global.get $~lib/memory/__stack_pointer - i32.const 1896 + i32.const 3104 i32.lt_s br_if $folding-inner1 global.get $~lib/memory/__stack_pointer - i64.const 0 - i64.store - global.get $~lib/memory/__stack_pointer - i64.const 0 - i64.store offset=8 - global.get $~lib/memory/__stack_pointer - i32.const 16 - i32.const 13 - call $~lib/rt/itcms/__new - local.tee $7 - i32.store - global.get $~lib/memory/__stack_pointer - local.get $7 - i32.store offset=4 - local.get $7 - i32.const 0 - i32.store - local.get $7 - i32.const 0 - call $~lib/rt/itcms/__link - global.get $~lib/memory/__stack_pointer - local.get $7 - i32.store offset=4 - local.get $7 - i32.const 0 - i32.store offset=4 - global.get $~lib/memory/__stack_pointer - local.get $7 - i32.store offset=4 - local.get $7 - i32.const 0 - i32.store offset=8 - global.get $~lib/memory/__stack_pointer - local.get $7 - i32.store offset=4 - local.get $7 - i32.const 0 - i32.store offset=12 - local.get $6 - i32.const 536870910 - i32.gt_u - if - i32.const 1456 - i32.const 1728 - i32.const 70 - i32.const 60 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - i32.const 8 - local.get $6 - local.get $6 - i32.const 8 - i32.le_u - select - i32.const 1 - i32.shl - local.tee $0 - i32.const 1 - call $~lib/rt/itcms/__new - local.tee $8 - i32.store offset=8 - global.get $~lib/memory/__stack_pointer - local.get $7 - i32.store offset=4 - global.get $~lib/memory/__stack_pointer - local.get $8 - i32.store offset=12 - local.get $7 - local.get $8 - i32.store - local.get $7 - local.get $8 - call $~lib/rt/itcms/__link - global.get $~lib/memory/__stack_pointer - local.get $7 - i32.store offset=4 - local.get $7 - local.get $8 - i32.store offset=4 - global.get $~lib/memory/__stack_pointer - local.get $7 - i32.store offset=4 - local.get $7 - local.get $0 - i32.store offset=8 - global.get $~lib/memory/__stack_pointer - local.get $7 - i32.store offset=4 - local.get $7 - local.get $6 - i32.store offset=12 - global.get $~lib/memory/__stack_pointer - i32.const 16 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $7 - i32.store offset=4 i32.const 0 - local.set $0 - loop $for-loop|00 - local.get $3 - local.get $6 - i32.lt_s - if - local.get $5 - local.get $3 - i32.const 12 - i32.mul - i32.add - local.tee $8 - i32.load offset=8 - i32.const 1 - i32.and - i32.eqz - if - global.get $~lib/memory/__stack_pointer - local.get $7 - i32.store - local.get $7 - local.get $0 - local.get $8 - i32.load16_s - call $~lib/array/Array#__set - local.get $0 - i32.const 1 - i32.add - local.set $0 - end - local.get $3 - i32.const 1 - i32.add - local.set $3 - br $for-loop|00 - end - end - global.get $~lib/memory/__stack_pointer - local.get $7 - i32.store - local.get $7 - local.get $0 - call $~lib/array/Array#set:length - global.get $~lib/memory/__stack_pointer - i32.const 8 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $7 - i32.store offset=8 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - global.get $~lib/memory/__stack_pointer - local.get $1 - call $"~lib/map/Map#values" - local.tee $0 - i32.store offset=12 + i32.const 40 + memory.fill global.get $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer i32.const 12 i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 1896 + i32.const 3104 i32.lt_s br_if $folding-inner1 global.get $~lib/memory/__stack_pointer @@ -8939,189 +7850,92 @@ i32.const 0 i32.store offset=8 global.get $~lib/memory/__stack_pointer - i32.const 24 - i32.const 14 - call $~lib/rt/itcms/__new + i32.const 17 + i32.const 2032 + call $~lib/rt/__newArray local.tee $4 i32.store global.get $~lib/memory/__stack_pointer - local.get $4 - i32.store offset=4 - i32.const 16 - call $~lib/arraybuffer/ArrayBuffer#constructor - local.set $5 - global.get $~lib/memory/__stack_pointer - local.get $5 - i32.store offset=8 - local.get $4 - local.get $5 - i32.store - local.get $4 - local.get $5 - call $~lib/rt/itcms/__link - global.get $~lib/memory/__stack_pointer - local.get $4 - i32.store offset=4 - local.get $4 - i32.const 3 - i32.store offset=4 - global.get $~lib/memory/__stack_pointer - local.get $4 + i32.const 0 i32.store offset=4 - i32.const 32 - call $~lib/arraybuffer/ArrayBuffer#constructor - local.set $5 global.get $~lib/memory/__stack_pointer - local.get $5 - i32.store offset=8 local.get $4 - local.get $5 i32.store offset=8 local.get $4 - local.get $5 - call $~lib/rt/itcms/__link - global.get $~lib/memory/__stack_pointer - local.get $4 - i32.store offset=4 - local.get $4 - i32.const 4 - i32.store offset=12 - global.get $~lib/memory/__stack_pointer - local.get $4 - i32.store offset=4 - local.get $4 - i32.const 0 - i32.store offset=16 - global.get $~lib/memory/__stack_pointer - local.get $4 - i32.store offset=4 - local.get $4 - i32.const 0 - i32.store offset=20 + call $"~lib/map/Map#constructor" + local.set $4 global.get $~lib/memory/__stack_pointer i32.const 12 i32.add global.set $~lib/memory/__stack_pointer local.get $4 - i32.store offset=16 - global.get $~lib/memory/__stack_pointer - call $"~lib/map/Map#constructor" - local.tee $3 - i32.store offset=20 - loop $for-loop|2 - global.get $~lib/memory/__stack_pointer - local.get $7 - i32.store offset=4 - local.get $7 - call $~lib/array/Array#get:length - local.get $2 - i32.gt_s + i32.store + loop $for-loop|0 + local.get $0 + i32.const 100 + i32.lt_u if global.get $~lib/memory/__stack_pointer - local.get $7 + local.get $4 i32.store offset=4 - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.sub - global.set $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - i32.const 1896 - i32.lt_s - br_if $folding-inner1 - global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.store - global.get $~lib/memory/__stack_pointer - local.get $7 - i32.store - local.get $2 - local.get $7 - i32.load offset=12 - i32.ge_u + local.get $4 + local.get $0 + call $"~lib/map/Map#has" if - i32.const 1248 - i32.const 1728 - i32.const 114 - i32.const 42 + i32.const 0 + i32.const 1776 + i32.const 7 + i32.const 5 call $~lib/builtins/abort unreachable end global.get $~lib/memory/__stack_pointer - local.get $7 - i32.store - local.get $7 - i32.load offset=4 - local.get $2 - i32.const 1 - i32.shl - i32.add - i32.load16_s - local.set $5 - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.add - global.set $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - local.get $0 + local.get $4 i32.store offset=4 + local.get $4 local.get $0 - local.get $2 - call $~lib/array/Array#__get - local.set $6 + local.get $0 + i32.const 10 + i32.add + call $"~lib/map/Map#set" global.get $~lib/memory/__stack_pointer - local.get $1 + local.get $4 i32.store offset=4 - local.get $1 - local.get $5 - call $"~lib/map/Map#has" + local.get $4 + local.get $0 + call $"~lib/map/Map#has" i32.eqz if i32.const 0 - i32.const 1568 - i32.const 31 + i32.const 1776 + i32.const 9 i32.const 5 call $~lib/builtins/abort unreachable end global.get $~lib/memory/__stack_pointer - local.get $1 + local.get $4 i32.store offset=4 - local.get $1 - local.get $6 - i32.const 20 - i32.sub - call $"~lib/map/Map#has" - i32.eqz + local.get $4 + local.get $0 + call $"~lib/map/Map#get" + local.get $0 + i32.const 10 + i32.add + i32.ne if i32.const 0 - i32.const 1568 - i32.const 32 + i32.const 1776 + i32.const 10 i32.const 5 call $~lib/builtins/abort unreachable end - global.get $~lib/memory/__stack_pointer - local.get $4 - i32.store offset=4 - local.get $4 - local.get $5 - local.get $5 - call $"~lib/map/Map#set" - global.get $~lib/memory/__stack_pointer - local.get $3 - i32.store offset=4 - local.get $3 - local.get $6 - i32.const 20 - i32.sub - local.tee $5 - local.get $5 - call $"~lib/map/Map#set" - local.get $2 + local.get $0 i32.const 1 i32.add - local.set $2 - br $for-loop|2 + local.set $0 + br $for-loop|0 end end global.get $~lib/memory/__stack_pointer @@ -9133,170 +7947,90 @@ i32.ne if i32.const 0 - i32.const 1568 - i32.const 36 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - local.get $3 - i32.store offset=4 - local.get $3 - call $"~lib/map/Map#get:size" - i32.const 100 - i32.ne - if - i32.const 0 - i32.const 1568 - i32.const 37 + i32.const 1776 + i32.const 12 i32.const 3 call $~lib/builtins/abort unreachable end i32.const 0 local.set $0 - loop $for-loop|3 + loop $for-loop|1 local.get $0 - i32.const 50 - i32.lt_s + i32.const 100 + i32.lt_u if global.get $~lib/memory/__stack_pointer - local.get $1 + local.get $4 i32.store offset=4 - local.get $1 + local.get $4 local.get $0 - call $"~lib/map/Map#has" + call $"~lib/map/Map#has" i32.eqz if i32.const 0 - i32.const 1568 - i32.const 41 + i32.const 1776 + i32.const 16 i32.const 5 call $~lib/builtins/abort unreachable end global.get $~lib/memory/__stack_pointer - local.get $1 + local.get $4 i32.store offset=4 - local.get $1 + local.get $4 local.get $0 - call $"~lib/map/Map#get" + call $"~lib/map/Map#get" local.get $0 - i32.const 20 + i32.const 10 i32.add i32.ne if i32.const 0 - i32.const 1568 - i32.const 42 - i32.const 5 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - local.get $1 - local.get $0 - call $"~lib/map/Map#delete" - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - local.get $1 - local.get $0 - call $"~lib/map/Map#has" - if - i32.const 0 - i32.const 1568 - i32.const 44 - i32.const 5 - call $~lib/builtins/abort - unreachable - end - local.get $0 - i32.const 1 - i32.add - local.set $0 - br $for-loop|3 - end - end - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - local.get $1 - call $"~lib/map/Map#get:size" - i32.const 50 - i32.ne - if - i32.const 0 - i32.const 1568 - i32.const 46 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - i32.const 0 - local.set $0 - loop $for-loop|4 - local.get $0 - i32.const 50 - i32.lt_s - if - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - local.get $1 - local.get $0 - call $"~lib/map/Map#has" - if - i32.const 0 - i32.const 1568 - i32.const 50 + i32.const 1776 + i32.const 17 i32.const 5 call $~lib/builtins/abort unreachable end global.get $~lib/memory/__stack_pointer - local.get $1 + local.get $4 i32.store offset=4 - local.get $1 + local.get $4 local.get $0 local.get $0 - i32.const 10 + i32.const 20 i32.add - call $"~lib/map/Map#set" + call $"~lib/map/Map#set" global.get $~lib/memory/__stack_pointer - local.get $1 + local.get $4 i32.store offset=4 - local.get $1 + local.get $4 local.get $0 - call $"~lib/map/Map#has" + call $"~lib/map/Map#has" i32.eqz if i32.const 0 - i32.const 1568 - i32.const 52 + i32.const 1776 + i32.const 19 i32.const 5 call $~lib/builtins/abort unreachable end global.get $~lib/memory/__stack_pointer - local.get $1 + local.get $4 i32.store offset=4 - local.get $1 + local.get $4 local.get $0 - call $"~lib/map/Map#delete" - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - local.get $1 + call $"~lib/map/Map#get" local.get $0 - call $"~lib/map/Map#has" + i32.const 20 + i32.add + i32.ne if i32.const 0 - i32.const 1568 - i32.const 54 + i32.const 1776 + i32.const 20 i32.const 5 call $~lib/builtins/abort unreachable @@ -9305,593 +8039,225 @@ i32.const 1 i32.add local.set $0 - br $for-loop|4 + br $for-loop|1 end end global.get $~lib/memory/__stack_pointer - local.get $1 + local.get $4 i32.store offset=4 - local.get $1 + local.get $4 call $"~lib/map/Map#get:size" - i32.const 50 + i32.const 100 i32.ne if i32.const 0 - i32.const 1568 - i32.const 56 + i32.const 1776 + i32.const 22 i32.const 3 call $~lib/builtins/abort unreachable end global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - local.get $1 - call $"~lib/map/Map#clear" global.get $~lib/memory/__stack_pointer - local.get $1 + local.get $4 i32.store offset=4 - local.get $1 - call $"~lib/map/Map#get:size" - if - i32.const 0 - i32.const 1568 - i32.const 60 - i32.const 3 - call $~lib/builtins/abort - unreachable - end global.get $~lib/memory/__stack_pointer - i32.const 24 - i32.add + i32.const 8 + i32.sub global.set $~lib/memory/__stack_pointer - return - end - i32.const 34688 - i32.const 34736 - i32.const 1 - i32.const 1 - call $~lib/builtins/abort - unreachable - ) - (func $"~lib/map/Map#has" (param $0 i32) (param $1 i32) (result i32) - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.sub - global.set $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - i32.const 1896 - i32.lt_s - if - i32.const 34688 - i32.const 34736 - i32.const 1 - i32.const 1 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.store - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store - local.get $0 - local.get $1 - local.get $1 - i32.const 65535 - i32.and - i32.const -1028477379 - i32.mul - i32.const 374761395 - i32.add - i32.const 17 - i32.rotl - i32.const 668265263 - i32.mul - local.tee $0 - local.get $0 - i32.const 15 - i32.shr_u - i32.xor - i32.const -2048144777 - i32.mul - local.tee $0 - local.get $0 - i32.const 13 - i32.shr_u - i32.xor - i32.const -1028477379 - i32.mul - local.tee $0 - local.get $0 - i32.const 16 - i32.shr_u - i32.xor - call $"~lib/map/Map#find" - i32.const 0 - i32.ne - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.add - global.set $~lib/memory/__stack_pointer - ) - (func $"~lib/map/Map#rehash" (param $0 i32) (param $1 i32) - (local $2 i32) - (local $3 i32) - (local $4 i32) - (local $5 i32) - (local $6 i32) - (local $7 i32) - (local $8 i32) - global.get $~lib/memory/__stack_pointer - i32.const 16 - i32.sub - global.set $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - i32.const 1896 - i32.lt_s - if - i32.const 34688 - i32.const 34736 - i32.const 1 - i32.const 1 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - i64.const 0 - i64.store - global.get $~lib/memory/__stack_pointer - i64.const 0 - i64.store offset=8 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.const 1 - i32.add - local.tee $2 - i32.const 2 - i32.shl - call $~lib/arraybuffer/ArrayBuffer#constructor - local.tee $6 - i32.store - global.get $~lib/memory/__stack_pointer - local.get $2 - i32.const 3 - i32.shl - i32.const 3 - i32.div_s - local.tee $5 - i32.const 12 - i32.mul - call $~lib/arraybuffer/ArrayBuffer#constructor - local.tee $3 - i32.store offset=4 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=8 - local.get $0 - i32.load offset=8 - local.set $7 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=8 - local.get $7 - local.get $0 - i32.load offset=16 - i32.const 12 - i32.mul - i32.add - local.set $4 - local.get $3 - local.set $2 - loop $while-continue|0 + global.get $~lib/memory/__stack_pointer + i32.const 3104 + i32.lt_s + br_if $folding-inner1 + global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store + global.get $~lib/memory/__stack_pointer + local.get $4 + i32.store + local.get $4 + i32.load offset=8 + local.set $6 + global.get $~lib/memory/__stack_pointer + local.get $4 + i32.store local.get $4 + i32.load offset=16 + local.set $7 + global.get $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 16 + i32.sub + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 3104 + i32.lt_s + br_if $folding-inner1 + global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store + global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store offset=8 + global.get $~lib/memory/__stack_pointer + i32.const 16 + i32.const 18 + call $~lib/rt/itcms/__new + local.tee $3 + i32.store + global.get $~lib/memory/__stack_pointer + local.get $3 + i32.store offset=4 + local.get $3 + i32.const 0 + i32.store + local.get $3 + i32.const 0 + i32.const 0 + call $~lib/rt/itcms/__link + global.get $~lib/memory/__stack_pointer + local.get $3 + i32.store offset=4 + local.get $3 + i32.const 0 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + local.get $3 + i32.store offset=4 + local.get $3 + i32.const 0 + i32.store offset=8 + global.get $~lib/memory/__stack_pointer + local.get $3 + i32.store offset=4 + local.get $3 + i32.const 0 + i32.store offset=12 local.get $7 - i32.ne + i32.const 1073741820 + i32.gt_u if - local.get $7 - i32.load offset=8 - i32.const 1 - i32.and - i32.eqz - if - local.get $2 - local.get $7 - i32.load16_u - local.tee $8 - i32.store16 - local.get $2 - local.get $7 - i32.load offset=4 - i32.store offset=4 - local.get $2 - local.get $6 - local.get $1 - local.get $8 - i32.const -1028477379 - i32.mul - i32.const 374761395 - i32.add - i32.const 17 - i32.rotl - i32.const 668265263 - i32.mul - local.tee $8 - local.get $8 - i32.const 15 - i32.shr_u - i32.xor - i32.const -2048144777 - i32.mul - local.tee $8 - local.get $8 - i32.const 13 - i32.shr_u - i32.xor - i32.const -1028477379 - i32.mul - local.tee $8 - local.get $8 - i32.const 16 - i32.shr_u - i32.xor - i32.and - i32.const 2 - i32.shl - i32.add - local.tee $8 - i32.load - i32.store offset=8 - local.get $8 - local.get $2 - i32.store - local.get $2 - i32.const 12 - i32.add - local.set $2 - end - local.get $7 - i32.const 12 - i32.add - local.set $7 - br $while-continue|0 + i32.const 1056 + i32.const 1568 + i32.const 70 + i32.const 60 + call $~lib/builtins/abort + unreachable end - end - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=8 - global.get $~lib/memory/__stack_pointer - local.get $6 - i32.store offset=12 - local.get $0 - local.get $6 - i32.store - local.get $0 - local.get $6 - call $~lib/rt/itcms/__link - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=8 - local.get $0 - local.get $1 - i32.store offset=4 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=8 - global.get $~lib/memory/__stack_pointer - local.get $3 - i32.store offset=12 - local.get $0 - local.get $3 - i32.store offset=8 - local.get $0 - local.get $3 - call $~lib/rt/itcms/__link - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=8 - local.get $0 - local.get $5 - i32.store offset=12 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=8 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=12 - local.get $0 - local.get $0 - i32.load offset=20 - i32.store offset=16 - global.get $~lib/memory/__stack_pointer - i32.const 16 - i32.add - global.set $~lib/memory/__stack_pointer - ) - (func $"~lib/map/Map#set" (param $0 i32) (param $1 i32) (param $2 i32) - (local $3 i32) - (local $4 i32) - (local $5 i32) - global.get $~lib/memory/__stack_pointer - i32.const 12 - i32.sub - global.set $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - i32.const 1896 - i32.lt_s - if - i32.const 34688 - i32.const 34736 - i32.const 1 + global.get $~lib/memory/__stack_pointer + i32.const 8 + local.get $7 + local.get $7 + i32.const 8 + i32.le_u + select + local.tee $8 i32.const 1 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - i64.const 0 - i64.store - global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.store offset=8 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store - local.get $0 - local.get $1 - local.get $1 - i32.const 65535 - i32.and - i32.const -1028477379 - i32.mul - i32.const 374761395 - i32.add - i32.const 17 - i32.rotl - i32.const 668265263 - i32.mul - local.tee $3 - i32.const 15 - i32.shr_u - local.get $3 - i32.xor - i32.const -2048144777 - i32.mul - local.tee $3 - i32.const 13 - i32.shr_u - local.get $3 - i32.xor - i32.const -1028477379 - i32.mul - local.tee $3 - i32.const 16 - i32.shr_u - local.get $3 - i32.xor - local.tee $4 - call $"~lib/map/Map#find" - local.tee $3 - if + call $~lib/rt/itcms/__new + local.tee $9 + i32.store offset=8 + global.get $~lib/memory/__stack_pointer local.get $3 - local.get $2 i32.store offset=4 - else - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store - local.get $0 - i32.load offset=16 global.get $~lib/memory/__stack_pointer - local.get $0 + local.get $9 + i32.store offset=12 + local.get $3 + local.get $9 i32.store - local.get $0 - i32.load offset=12 - i32.eq - if - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 - i32.load offset=20 - local.set $3 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 - local.get $3 - local.get $0 - i32.load offset=12 - i32.const 3 - i32.mul - i32.const 4 - i32.div_s - i32.lt_s - if (result i32) - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 - i32.load offset=4 - else - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 - i32.load offset=4 - i32.const 1 - i32.shl - i32.const 1 - i32.or - end - call $"~lib/map/Map#rehash" - end + local.get $3 + local.get $9 + i32.const 0 + call $~lib/rt/itcms/__link global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store + local.get $3 + i32.store offset=4 + local.get $3 + local.get $9 + i32.store offset=4 global.get $~lib/memory/__stack_pointer - local.get $0 - i32.load offset=8 - local.tee $3 + local.get $3 + i32.store offset=4 + local.get $3 + local.get $8 i32.store offset=8 global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store - global.get $~lib/memory/__stack_pointer - local.get $0 + local.get $3 i32.store offset=4 - local.get $0 - local.get $0 - i32.load offset=16 - local.tee $5 - i32.const 1 - i32.add - i32.store offset=16 local.get $3 - local.get $5 - i32.const 12 - i32.mul + local.get $7 + i32.store offset=12 + global.get $~lib/memory/__stack_pointer + i32.const 16 i32.add - local.tee $3 - local.get $1 - i32.store16 + global.set $~lib/memory/__stack_pointer local.get $3 - local.get $2 - i32.store offset=4 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store - global.get $~lib/memory/__stack_pointer - local.get $0 i32.store offset=4 - local.get $0 - local.get $0 - i32.load offset=20 - i32.const 1 - i32.add - i32.store offset=20 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store - local.get $0 - i32.load - local.set $1 - global.get $~lib/memory/__stack_pointer - local.get $0 + i32.const 0 + local.set $0 + loop $for-loop|00 + local.get $2 + local.get $7 + i32.lt_s + if + local.get $6 + local.get $2 + i32.const 12 + i32.mul + i32.add + local.tee $8 + i32.load offset=8 + i32.const 1 + i32.and + i32.eqz + if + global.get $~lib/memory/__stack_pointer + local.get $3 + i32.store + local.get $3 + local.get $0 + local.get $8 + i32.load8_u + call $~lib/array/Array#__set + local.get $0 + i32.const 1 + i32.add + local.set $0 + end + local.get $2 + i32.const 1 + i32.add + local.set $2 + br $for-loop|00 + end + end + global.get $~lib/memory/__stack_pointer + local.get $3 i32.store local.get $3 - local.get $1 - local.get $4 local.get $0 - i32.load offset=4 - i32.and - i32.const 2 - i32.shl + call $~lib/array/Array#set:length + global.get $~lib/memory/__stack_pointer + i32.const 8 i32.add - local.tee $0 - i32.load - i32.store offset=8 - local.get $0 + global.set $~lib/memory/__stack_pointer local.get $3 - i32.store - end - global.get $~lib/memory/__stack_pointer - i32.const 12 - i32.add - global.set $~lib/memory/__stack_pointer - ) - (func $"~lib/map/Map#get" (param $0 i32) (param $1 i32) (result i32) - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.sub - global.set $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - i32.const 1896 - i32.lt_s - if - i32.const 34688 - i32.const 34736 - i32.const 1 - i32.const 1 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.store - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store - local.get $0 - local.get $1 - local.get $1 - i32.const 65535 - i32.and - i32.const -1028477379 - i32.mul - i32.const 374761395 - i32.add - i32.const 17 - i32.rotl - i32.const 668265263 - i32.mul - local.tee $0 - local.get $0 - i32.const 15 - i32.shr_u - i32.xor - i32.const -2048144777 - i32.mul - local.tee $0 - local.get $0 - i32.const 13 - i32.shr_u - i32.xor - i32.const -1028477379 - i32.mul - local.tee $0 - local.get $0 - i32.const 16 - i32.shr_u - i32.xor - call $"~lib/map/Map#find" - local.tee $0 - i32.eqz - if - i32.const 1616 - i32.const 1680 - i32.const 105 - i32.const 17 - call $~lib/builtins/abort - unreachable - end - local.get $0 - i32.load offset=4 - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.add - global.set $~lib/memory/__stack_pointer - ) - (func $"~lib/map/Map#set" (param $0 i32) (param $1 i32) (param $2 i32) - (local $3 i32) - (local $4 i32) - (local $5 i32) - (local $6 i32) - (local $7 i32) - (local $8 i32) - (local $9 i32) - (local $10 i32) - (local $11 i32) - global.get $~lib/memory/__stack_pointer - i32.const 12 - i32.sub - global.set $~lib/memory/__stack_pointer - block $folding-inner1 + i32.store offset=8 + global.get $~lib/memory/__stack_pointer + local.get $4 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + local.get $4 + call $"~lib/map/Map#values" + local.tee $2 + i32.store offset=12 + global.get $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 1896 + i32.const 12 + i32.sub + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 3104 i32.lt_s br_if $folding-inner1 global.get $~lib/memory/__stack_pointer @@ -9901,721 +8267,5995 @@ i32.const 0 i32.store offset=8 global.get $~lib/memory/__stack_pointer - local.get $0 + i32.const 21 + i32.const 2064 + call $~lib/rt/__newArray + local.tee $5 i32.store - local.get $1 - i32.const 65535 - i32.and - i32.const -1028477379 - i32.mul - i32.const 374761395 - i32.add - i32.const 17 - i32.rotl - i32.const 668265263 - i32.mul - local.tee $3 - i32.const 15 - i32.shr_u - local.get $3 - i32.xor - i32.const -2048144777 - i32.mul - local.tee $3 - i32.const 13 - i32.shr_u - local.get $3 - i32.xor - i32.const -1028477379 - i32.mul - local.tee $3 - i32.const 16 - i32.shr_u - local.get $3 - i32.xor - local.tee $8 - local.set $3 - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.sub - global.set $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - i32.const 1896 - i32.lt_s - br_if $folding-inner1 global.get $~lib/memory/__stack_pointer i32.const 0 - i32.store + i32.store offset=4 global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store - local.get $0 - i32.load + local.get $5 + i32.store offset=8 + local.get $5 + call $"~lib/map/Map#constructor" + local.set $5 global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store - local.get $3 - local.get $0 - i32.load offset=4 - i32.and - i32.const 2 - i32.shl + i32.const 12 i32.add - i32.load - local.set $3 - block $"__inlined_func$~lib/map/Map#find$1393" - loop $while-continue|0 - local.get $3 - if - local.get $3 - i32.load offset=4 - local.tee $4 - i32.const 1 - i32.and - if (result i32) - i32.const 0 - else - local.get $3 - i32.load16_u - local.get $1 - i32.const 65535 - i32.and - i32.eq - end - if - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.add - global.set $~lib/memory/__stack_pointer - br $"__inlined_func$~lib/map/Map#find$1393" - end - local.get $4 - i32.const -2 - i32.and - local.set $3 - br $while-continue|0 - end - end + global.set $~lib/memory/__stack_pointer + local.get $5 + i32.store offset=16 + global.get $~lib/memory/__stack_pointer + call $"~lib/map/Map#constructor@varargs" + local.tee $6 + i32.store offset=20 + loop $for-loop|2 global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.add - global.set $~lib/memory/__stack_pointer - i32.const 0 - local.set $3 - end - local.get $3 - if local.get $3 - local.get $2 - i32.store16 offset=2 - else - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store - local.get $0 - i32.load offset=16 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store - local.get $0 - i32.load offset=12 - i32.eq + i32.store offset=4 + local.get $3 + call $"~lib/array/Array<~lib/map/KeyValue>#get:length" + local.get $1 + i32.gt_s if global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store - global.get $~lib/memory/__stack_pointer - local.get $0 + local.get $3 i32.store offset=4 - local.get $0 - i32.load offset=20 global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 - i32.load offset=12 - i32.const 3 - i32.mul i32.const 4 - i32.div_s - i32.lt_s - if (result i32) - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 - i32.load offset=4 - else - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 - i32.load offset=4 - i32.const 1 - i32.shl - i32.const 1 - i32.or - end - local.set $7 - global.get $~lib/memory/__stack_pointer - i32.const 16 i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 1896 + i32.const 3104 i32.lt_s br_if $folding-inner1 global.get $~lib/memory/__stack_pointer - i64.const 0 - i64.store - global.get $~lib/memory/__stack_pointer - i64.const 0 - i64.store offset=8 - global.get $~lib/memory/__stack_pointer - local.get $7 - i32.const 1 - i32.add - local.tee $3 - i32.const 2 - i32.shl - call $~lib/arraybuffer/ArrayBuffer#constructor - local.tee $6 + i32.const 0 i32.store global.get $~lib/memory/__stack_pointer local.get $3 - i32.const 3 - i32.shl - i32.const 3 - i32.div_s - local.tee $9 - i32.const 3 - i32.shl - call $~lib/arraybuffer/ArrayBuffer#constructor - local.tee $4 - i32.store offset=4 + i32.store + local.get $1 + local.get $3 + i32.load offset=12 + i32.ge_u + if + i32.const 1360 + i32.const 1568 + i32.const 114 + i32.const 42 + call $~lib/builtins/abort + unreachable + end global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=8 - local.get $0 - i32.load offset=8 - local.set $5 + local.get $3 + i32.store + local.get $1 + local.get $3 + i32.load offset=4 + i32.add + i32.load8_u + local.set $7 global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=8 - local.get $5 - local.get $0 - i32.load offset=16 - i32.const 3 - i32.shl + i32.const 4 i32.add - local.set $10 + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + local.get $2 + i32.store offset=4 + local.get $2 + local.get $1 + call $~lib/array/Array#__get + local.set $8 + global.get $~lib/memory/__stack_pointer local.get $4 - local.set $3 - loop $while-continue|00 - local.get $5 - local.get $10 - i32.ne - if - local.get $5 - i32.load offset=4 - i32.const 1 - i32.and - i32.eqz - if - local.get $3 - local.get $5 - i32.load16_u - local.tee $11 - i32.store16 - local.get $3 - local.get $5 - i32.load16_u offset=2 - i32.store16 offset=2 - local.get $3 - local.get $6 - local.get $7 - local.get $11 - i32.const -1028477379 - i32.mul - i32.const 374761395 - i32.add - i32.const 17 - i32.rotl - i32.const 668265263 - i32.mul - local.tee $11 - local.get $11 - i32.const 15 - i32.shr_u - i32.xor - i32.const -2048144777 - i32.mul - local.tee $11 - local.get $11 - i32.const 13 - i32.shr_u - i32.xor - i32.const -1028477379 - i32.mul - local.tee $11 - local.get $11 - i32.const 16 - i32.shr_u - i32.xor - i32.and - i32.const 2 - i32.shl - i32.add - local.tee $11 - i32.load - i32.store offset=4 - local.get $11 - local.get $3 - i32.store - local.get $3 - i32.const 8 - i32.add - local.set $3 - end - local.get $5 - i32.const 8 - i32.add - local.set $5 - br $while-continue|00 - end + i32.store offset=4 + local.get $4 + local.get $7 + call $"~lib/map/Map#has" + i32.eqz + if + i32.const 0 + i32.const 1776 + i32.const 32 + i32.const 5 + call $~lib/builtins/abort + unreachable end global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=8 - global.get $~lib/memory/__stack_pointer - local.get $6 - i32.store offset=12 - local.get $0 - local.get $6 - i32.store - local.get $0 - local.get $6 - call $~lib/rt/itcms/__link + local.get $4 + i32.store offset=4 + local.get $4 + local.get $8 + i32.const 20 + i32.sub + call $"~lib/map/Map#has" + i32.eqz + if + i32.const 0 + i32.const 1776 + i32.const 33 + i32.const 5 + call $~lib/builtins/abort + unreachable + end global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=8 - local.get $0 - local.get $7 + local.get $5 i32.store offset=4 global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=8 + i32.const 12 + i32.sub + global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - local.get $4 - i32.store offset=12 - local.get $0 - local.get $4 - i32.store offset=8 - local.get $0 - local.get $4 - call $~lib/rt/itcms/__link + i32.const 3104 + i32.lt_s + br_if $folding-inner1 global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=8 - local.get $0 - local.get $9 - i32.store offset=12 + i64.const 0 + i64.store global.get $~lib/memory/__stack_pointer - local.get $0 + i32.const 0 i32.store offset=8 global.get $~lib/memory/__stack_pointer + local.get $5 + i32.store + local.get $5 + local.get $7 + local.get $7 + i32.const 255 + i32.and + i32.const -1028477379 + i32.mul + i32.const 374761394 + i32.add + i32.const 17 + i32.rotl + i32.const 668265263 + i32.mul + local.tee $0 local.get $0 - i32.store offset=12 + i32.const 15 + i32.shr_u + i32.xor + i32.const -2048144777 + i32.mul + local.tee $0 local.get $0 + i32.const 13 + i32.shr_u + i32.xor + i32.const -1028477379 + i32.mul + local.tee $0 local.get $0 - i32.load offset=20 - i32.store offset=16 - global.get $~lib/memory/__stack_pointer i32.const 16 - i32.add - global.set $~lib/memory/__stack_pointer - end - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.load offset=8 - local.tee $3 - i32.store offset=8 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 - local.get $0 - i32.load offset=16 - local.tee $4 - i32.const 1 - i32.add - i32.store offset=16 - local.get $3 - local.get $4 - i32.const 3 - i32.shl - i32.add - local.tee $3 - local.get $1 - i32.store16 - local.get $3 - local.get $2 - i32.store16 offset=2 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 - local.get $0 - i32.load offset=20 - i32.const 1 - i32.add - i32.store offset=20 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store - local.get $0 - i32.load - local.set $1 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store - local.get $3 - local.get $1 - local.get $8 - local.get $0 - i32.load offset=4 - i32.and - i32.const 2 - i32.shl - i32.add - local.tee $0 - i32.load - i32.store offset=4 - local.get $0 - local.get $3 - i32.store + i32.shr_u + i32.xor + local.tee $9 + call $"~lib/map/Map#find" + local.tee $0 + if + local.get $0 + local.get $7 + i32.store8 offset=1 + else + global.get $~lib/memory/__stack_pointer + local.get $5 + i32.store + local.get $5 + i32.load offset=16 + global.get $~lib/memory/__stack_pointer + local.get $5 + i32.store + local.get $5 + i32.load offset=12 + i32.eq + if + global.get $~lib/memory/__stack_pointer + local.get $5 + i32.store + global.get $~lib/memory/__stack_pointer + local.get $5 + i32.store offset=4 + local.get $5 + i32.load offset=20 + local.set $0 + global.get $~lib/memory/__stack_pointer + local.get $5 + i32.store offset=4 + local.get $5 + local.get $0 + local.get $5 + i32.load offset=12 + i32.const 3 + i32.mul + i32.const 4 + i32.div_s + i32.lt_s + if (result i32) + global.get $~lib/memory/__stack_pointer + local.get $5 + i32.store offset=4 + local.get $5 + i32.load offset=4 + else + global.get $~lib/memory/__stack_pointer + local.get $5 + i32.store offset=4 + local.get $5 + i32.load offset=4 + i32.const 1 + i32.shl + i32.const 1 + i32.or + end + call $"~lib/map/Map#rehash" + end + global.get $~lib/memory/__stack_pointer + local.get $5 + i32.store + global.get $~lib/memory/__stack_pointer + local.get $5 + i32.load offset=8 + local.tee $10 + i32.store offset=8 + global.get $~lib/memory/__stack_pointer + local.get $5 + i32.store + global.get $~lib/memory/__stack_pointer + local.get $5 + i32.store offset=4 + local.get $5 + local.get $5 + i32.load offset=16 + local.tee $0 + i32.const 1 + i32.add + i32.store offset=16 + local.get $10 + local.get $0 + i32.const 3 + i32.shl + i32.add + local.tee $0 + local.get $7 + i32.store8 + local.get $0 + local.get $7 + i32.store8 offset=1 + global.get $~lib/memory/__stack_pointer + local.get $5 + i32.store + global.get $~lib/memory/__stack_pointer + local.get $5 + i32.store offset=4 + local.get $5 + local.get $5 + i32.load offset=20 + i32.const 1 + i32.add + i32.store offset=20 + global.get $~lib/memory/__stack_pointer + local.get $5 + i32.store + local.get $5 + i32.load + local.set $7 + global.get $~lib/memory/__stack_pointer + local.get $5 + i32.store + local.get $0 + local.get $7 + local.get $9 + local.get $5 + i32.load offset=4 + i32.and + i32.const 2 + i32.shl + i32.add + local.tee $7 + i32.load + i32.store offset=4 + local.get $7 + local.get $0 + i32.store + end + global.get $~lib/memory/__stack_pointer + i32.const 12 + i32.add + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + local.get $6 + i32.store offset=4 + local.get $6 + local.get $8 + i32.const 20 + i32.sub + local.tee $0 + local.get $0 + call $"~lib/map/Map#set" + local.get $1 + i32.const 1 + i32.add + local.set $1 + br $for-loop|2 + end end global.get $~lib/memory/__stack_pointer - i32.const 12 - i32.add - global.set $~lib/memory/__stack_pointer - return - end - i32.const 34688 - i32.const 34736 - i32.const 1 - i32.const 1 - call $~lib/builtins/abort - unreachable - ) - (func $"~lib/map/Map#delete" (param $0 i32) (param $1 i32) - (local $2 i32) - global.get $~lib/memory/__stack_pointer - i32.const 8 - i32.sub - global.set $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - i32.const 1896 - i32.lt_s - if - i32.const 34688 - i32.const 34736 - i32.const 1 - i32.const 1 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - i64.const 0 - i64.store - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store - local.get $0 - local.get $1 - local.get $1 - i32.const 65535 - i32.and - i32.const -1028477379 - i32.mul - i32.const 374761395 - i32.add - i32.const 17 - i32.rotl - i32.const 668265263 - i32.mul - local.tee $1 - i32.const 15 - i32.shr_u - local.get $1 - i32.xor - i32.const -2048144777 - i32.mul - local.tee $1 - i32.const 13 - i32.shr_u - local.get $1 - i32.xor - i32.const -1028477379 - i32.mul - local.tee $1 - i32.const 16 - i32.shr_u - local.get $1 - i32.xor - call $"~lib/map/Map#find" - local.tee $1 - i32.eqz - if + local.get $5 + i32.store offset=4 + local.get $5 + call $"~lib/map/Map#get:size" + i32.const 100 + i32.ne + if + i32.const 0 + i32.const 1776 + i32.const 37 + i32.const 3 + call $~lib/builtins/abort + unreachable + end global.get $~lib/memory/__stack_pointer - i32.const 8 - i32.add - global.set $~lib/memory/__stack_pointer - return - end - local.get $1 - local.get $1 - i32.load offset=8 - i32.const 1 - i32.or - i32.store offset=8 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 - local.get $0 - i32.load offset=20 - i32.const 1 - i32.sub - i32.store offset=20 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store - local.get $0 - i32.load offset=4 - i32.const 1 - i32.shr_u - local.set $1 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store - local.get $1 - i32.const 1 - i32.add - i32.const 4 - local.get $0 - i32.load offset=20 - local.tee $2 - local.get $2 - i32.const 4 - i32.lt_u - select - i32.ge_u - if (result i32) - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store - local.get $0 - i32.load offset=20 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store - local.get $0 - i32.load offset=12 - i32.const 3 - i32.mul - i32.const 4 - i32.div_s - i32.lt_s - else + local.get $6 + i32.store offset=4 + local.get $6 + call $"~lib/map/Map#get:size" + i32.const 100 + i32.ne + if + i32.const 0 + i32.const 1776 + i32.const 38 + i32.const 3 + call $~lib/builtins/abort + unreachable + end i32.const 0 - end - if - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store - local.get $0 - local.get $1 - call $"~lib/map/Map#rehash" - end - global.get $~lib/memory/__stack_pointer - i32.const 8 - i32.add - global.set $~lib/memory/__stack_pointer - ) - (func $"std/map/testNumeric" - (local $0 i32) - (local $1 i32) - (local $2 i32) - (local $3 i32) - (local $4 i32) - (local $5 i32) - (local $6 i32) - (local $7 i32) - (local $8 i32) - global.get $~lib/memory/__stack_pointer - i32.const 24 - i32.sub - global.set $~lib/memory/__stack_pointer - block $folding-inner1 - global.get $~lib/memory/__stack_pointer - i32.const 1896 - i32.lt_s - br_if $folding-inner1 + local.set $0 + loop $for-loop|3 + local.get $0 + i32.const 50 + i32.lt_u + if + global.get $~lib/memory/__stack_pointer + local.get $4 + i32.store offset=4 + local.get $4 + local.get $0 + call $"~lib/map/Map#has" + i32.eqz + if + i32.const 0 + i32.const 1776 + i32.const 42 + i32.const 5 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + local.get $4 + i32.store offset=4 + local.get $4 + local.get $0 + call $"~lib/map/Map#get" + local.get $0 + i32.const 20 + i32.add + i32.ne + if + i32.const 0 + i32.const 1776 + i32.const 43 + i32.const 5 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + local.get $4 + i32.store offset=4 + local.get $4 + local.get $0 + call $"~lib/map/Map#delete" + global.get $~lib/memory/__stack_pointer + local.get $4 + i32.store offset=4 + local.get $4 + local.get $0 + call $"~lib/map/Map#has" + if + i32.const 0 + i32.const 1776 + i32.const 45 + i32.const 5 + call $~lib/builtins/abort + unreachable + end + local.get $0 + i32.const 1 + i32.add + local.set $0 + br $for-loop|3 + end + end global.get $~lib/memory/__stack_pointer + local.get $4 + i32.store offset=4 + local.get $4 + call $"~lib/map/Map#get:size" + i32.const 50 + i32.ne + if + i32.const 0 + i32.const 1776 + i32.const 47 + i32.const 3 + call $~lib/builtins/abort + unreachable + end i32.const 0 - i32.const 24 - memory.fill - global.get $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - i32.const 12 - i32.sub - global.set $~lib/memory/__stack_pointer + local.set $0 + loop $for-loop|4 + local.get $0 + i32.const 50 + i32.lt_u + if + global.get $~lib/memory/__stack_pointer + local.get $4 + i32.store offset=4 + local.get $4 + local.get $0 + call $"~lib/map/Map#has" + if + i32.const 0 + i32.const 1776 + i32.const 51 + i32.const 5 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + local.get $4 + i32.store offset=4 + local.get $4 + local.get $0 + local.get $0 + i32.const 10 + i32.add + call $"~lib/map/Map#set" + global.get $~lib/memory/__stack_pointer + local.get $4 + i32.store offset=4 + local.get $4 + local.get $0 + call $"~lib/map/Map#has" + i32.eqz + if + i32.const 0 + i32.const 1776 + i32.const 53 + i32.const 5 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + local.get $4 + i32.store offset=4 + local.get $4 + local.get $0 + call $"~lib/map/Map#delete" + global.get $~lib/memory/__stack_pointer + local.get $4 + i32.store offset=4 + local.get $4 + local.get $0 + call $"~lib/map/Map#has" + if + i32.const 0 + i32.const 1776 + i32.const 55 + i32.const 5 + call $~lib/builtins/abort + unreachable + end + local.get $0 + i32.const 1 + i32.add + local.set $0 + br $for-loop|4 + end + end global.get $~lib/memory/__stack_pointer - i32.const 1896 - i32.lt_s - br_if $folding-inner1 + local.get $4 + i32.store offset=4 + local.get $4 + call $"~lib/map/Map#get:size" + i32.const 50 + i32.ne + if + i32.const 0 + i32.const 1776 + i32.const 57 + i32.const 3 + call $~lib/builtins/abort + unreachable + end global.get $~lib/memory/__stack_pointer - i64.const 0 - i64.store + local.get $4 + i32.store offset=4 + local.get $4 + call $"~lib/map/Map#clear" global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.store offset=8 + local.get $4 + i32.store offset=4 + local.get $4 + call $"~lib/map/Map#get:size" + if + i32.const 0 + i32.const 1776 + i32.const 61 + i32.const 3 + call $~lib/builtins/abort + unreachable + end global.get $~lib/memory/__stack_pointer - i32.const 24 - i32.const 15 - call $~lib/rt/itcms/__new + i32.const 17 + i32.const 2096 + call $~lib/rt/__newArray local.tee $1 - i32.store + i32.store offset=24 + i32.const 0 + local.set $0 + loop $for-loop|5 + local.get $0 + i32.const 100 + i32.lt_u + if + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.sub + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 3104 + i32.lt_s + br_if $folding-inner1 + global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.const 16 + call $~lib/rt/itcms/__new + local.tee $3 + i32.store + global.get $~lib/memory/__stack_pointer + local.get $3 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + local.get $3 + call $~lib/object/Object#constructor + local.tee $3 + i32.store + global.get $~lib/memory/__stack_pointer + local.get $3 + i32.store offset=4 + local.get $3 + i32.const 0 + i32.store8 + global.get $~lib/memory/__stack_pointer + local.get $3 + i32.store offset=4 + local.get $3 + i32.const 0 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $3 + i32.store offset=32 + global.get $~lib/memory/__stack_pointer + local.get $3 + i32.store offset=36 + local.get $3 + local.get $0 + i32.store8 + global.get $~lib/memory/__stack_pointer + local.get $3 + i32.store offset=36 + local.get $3 + local.get $0 + i32.const 10 + i32.add + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + local.get $3 + i32.store offset=28 + local.get $1 + local.get $3 + call $"~lib/array/Array<~lib/map/KeyValue>#push" + local.get $0 + i32.const 1 + i32.add + local.set $0 + br $for-loop|5 + end + end global.get $~lib/memory/__stack_pointer local.get $1 i32.store offset=4 - i32.const 16 - call $~lib/arraybuffer/ArrayBuffer#constructor - local.set $5 global.get $~lib/memory/__stack_pointer - local.get $5 - i32.store offset=8 local.get $1 - local.get $5 + call $"~lib/map/Map#constructor" + local.tee $1 i32.store - local.get $1 - local.get $5 - call $~lib/rt/itcms/__link global.get $~lib/memory/__stack_pointer local.get $1 i32.store offset=4 local.get $1 - i32.const 3 - i32.store offset=4 + call $"~lib/map/Map#get:size" + i32.const 100 + i32.ne + if + i32.const 0 + i32.const 1776 + i32.const 74 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + i32.const 0 + local.set $0 + loop $for-loop|6 + local.get $0 + i32.const 100 + i32.lt_u + if + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + local.get $1 + local.get $0 + call $"~lib/map/Map#has" + i32.eqz + if + i32.const 0 + i32.const 1776 + i32.const 76 + i32.const 5 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + local.get $1 + local.get $0 + call $"~lib/map/Map#get" + local.get $0 + i32.const 10 + i32.add + i32.ne + if + i32.const 0 + i32.const 1776 + i32.const 77 + i32.const 5 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + local.get $1 + local.get $0 + call $"~lib/map/Map#delete" + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + local.get $1 + local.get $0 + call $"~lib/map/Map#has" + if + i32.const 0 + i32.const 1776 + i32.const 79 + i32.const 5 + call $~lib/builtins/abort + unreachable + end + local.get $0 + i32.const 1 + i32.add + local.set $0 + br $for-loop|6 + end + end global.get $~lib/memory/__stack_pointer local.get $1 i32.store offset=4 - i32.const 48 - call $~lib/arraybuffer/ArrayBuffer#constructor - local.set $5 - global.get $~lib/memory/__stack_pointer - local.get $5 - i32.store offset=8 - local.get $1 - local.get $5 - i32.store offset=8 local.get $1 - local.get $5 - call $~lib/rt/itcms/__link + call $"~lib/map/Map#get:size" + if + i32.const 0 + i32.const 1776 + i32.const 81 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + i32.const 40 + i32.add + global.set $~lib/memory/__stack_pointer + return + end + i32.const 35904 + i32.const 35952 + i32.const 1 + i32.const 1 + call $~lib/builtins/abort + unreachable + ) + (func $"~lib/map/Map#rehash" (param $0 i32) (param $1 i32) + (local $2 i32) + (local $3 i32) + (local $4 i32) + (local $5 i32) + (local $6 i32) + (local $7 i32) + (local $8 i32) + global.get $~lib/memory/__stack_pointer + i32.const 16 + i32.sub + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 3104 + i32.lt_s + if + i32.const 35904 + i32.const 35952 + i32.const 1 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store + global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store offset=8 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.const 1 + i32.add + local.tee $2 + i32.const 2 + i32.shl + call $~lib/arraybuffer/ArrayBuffer#constructor + local.tee $6 + i32.store + global.get $~lib/memory/__stack_pointer + local.get $2 + i32.const 3 + i32.shl + i32.const 3 + i32.div_s + local.tee $5 + i32.const 12 + i32.mul + call $~lib/arraybuffer/ArrayBuffer#constructor + local.tee $3 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=8 + local.get $0 + i32.load offset=8 + local.set $7 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=8 + local.get $7 + local.get $0 + i32.load offset=16 + i32.const 12 + i32.mul + i32.add + local.set $4 + local.get $3 + local.set $2 + loop $while-continue|0 + local.get $4 + local.get $7 + i32.ne + if + local.get $7 + i32.load offset=8 + i32.const 1 + i32.and + i32.eqz + if + local.get $2 + local.get $7 + i32.load16_s + local.tee $8 + i32.store16 + local.get $2 + local.get $7 + i32.load offset=4 + i32.store offset=4 + local.get $2 + local.get $6 + local.get $1 + local.get $8 + i32.const -1028477379 + i32.mul + i32.const 374761395 + i32.add + i32.const 17 + i32.rotl + i32.const 668265263 + i32.mul + local.tee $8 + local.get $8 + i32.const 15 + i32.shr_u + i32.xor + i32.const -2048144777 + i32.mul + local.tee $8 + local.get $8 + i32.const 13 + i32.shr_u + i32.xor + i32.const -1028477379 + i32.mul + local.tee $8 + local.get $8 + i32.const 16 + i32.shr_u + i32.xor + i32.and + i32.const 2 + i32.shl + i32.add + local.tee $8 + i32.load + i32.store offset=8 + local.get $8 + local.get $2 + i32.store + local.get $2 + i32.const 12 + i32.add + local.set $2 + end + local.get $7 + i32.const 12 + i32.add + local.set $7 + br $while-continue|0 + end + end + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=8 + global.get $~lib/memory/__stack_pointer + local.get $6 + i32.store offset=12 + local.get $0 + local.get $6 + i32.store + local.get $0 + local.get $6 + i32.const 0 + call $~lib/rt/itcms/__link + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=8 + local.get $0 + local.get $1 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=8 + global.get $~lib/memory/__stack_pointer + local.get $3 + i32.store offset=12 + local.get $0 + local.get $3 + i32.store offset=8 + local.get $0 + local.get $3 + i32.const 0 + call $~lib/rt/itcms/__link + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=8 + local.get $0 + local.get $5 + i32.store offset=12 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=8 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=12 + local.get $0 + local.get $0 + i32.load offset=20 + i32.store offset=16 + global.get $~lib/memory/__stack_pointer + i32.const 16 + i32.add + global.set $~lib/memory/__stack_pointer + ) + (func $"~lib/map/Map#find" (param $0 i32) (param $1 i32) (param $2 i32) (result i32) + (local $3 i32) + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.sub + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 3104 + i32.lt_s + if + i32.const 35904 + i32.const 35952 + i32.const 1 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + local.get $0 + i32.load + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + local.get $2 + local.get $0 + i32.load offset=4 + i32.and + i32.const 2 + i32.shl + i32.add + i32.load + local.set $0 + loop $while-continue|0 + local.get $0 + if + local.get $0 + i32.load offset=8 + local.tee $2 + i32.const 1 + i32.and + if (result i32) + i32.const 0 + else + local.get $0 + i32.load16_u + local.get $1 + i32.const 65535 + i32.and + i32.eq + end + if + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $0 + return + end + local.get $2 + i32.const -2 + i32.and + local.set $0 + br $while-continue|0 + end + end + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + i32.const 0 + ) + (func $"~lib/map/Map#constructor" (param $0 i32) (result i32) + (local $1 i32) + (local $2 i32) + (local $3 i32) + (local $4 i32) + (local $5 i32) + (local $6 i32) + (local $7 i32) + (local $8 i32) + global.get $~lib/memory/__stack_pointer + i32.const 16 + i32.sub + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 3104 + i32.lt_s + if + i32.const 35904 + i32.const 35952 + i32.const 1 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store + global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store offset=8 + global.get $~lib/memory/__stack_pointer + i32.const 24 + i32.const 22 + call $~lib/rt/itcms/__new + local.tee $1 + i32.store + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + i32.const 16 + call $~lib/arraybuffer/ArrayBuffer#constructor + local.set $3 + global.get $~lib/memory/__stack_pointer + local.get $3 + i32.store offset=8 + local.get $1 + local.get $3 + i32.store + local.get $1 + local.get $3 + i32.const 0 + call $~lib/rt/itcms/__link + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + local.get $1 + i32.const 3 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + i32.const 48 + call $~lib/arraybuffer/ArrayBuffer#constructor + local.set $3 + global.get $~lib/memory/__stack_pointer + local.get $3 + i32.store offset=8 + local.get $1 + local.get $3 + i32.store offset=8 + local.get $1 + local.get $3 + i32.const 0 + call $~lib/rt/itcms/__link + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + local.get $1 + i32.const 4 + i32.store offset=12 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + local.get $1 + i32.const 0 + i32.store offset=16 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + local.get $1 + i32.const 0 + i32.store offset=20 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + local.get $0 + call $"~lib/array/Array<~lib/map/KeyValue>#get:length" + local.tee $3 + i32.const 0 + i32.gt_s + if + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + local.get $3 + local.get $1 + i32.load offset=12 + i32.ge_s + if + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + local.get $1 + local.get $3 + i32.store offset=4 + end + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=8 + local.get $1 + local.get $1 + i32.load offset=4 + i32.const 1 + i32.shl + i32.const 1 + i32.or + call $"~lib/map/Map#rehash" + loop $for-loop|0 + local.get $2 + local.get $3 + i32.lt_s + if + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=8 + local.get $0 + local.get $2 + call $"~lib/array/Array<~lib/map/KeyValue>#__get" + local.set $4 + global.get $~lib/memory/__stack_pointer + local.get $4 + i32.store offset=4 + local.get $4 + i32.load16_s + local.set $4 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=8 + local.get $0 + local.get $2 + call $"~lib/array/Array<~lib/map/KeyValue>#__get" + local.set $5 + global.get $~lib/memory/__stack_pointer + local.get $5 + i32.store offset=4 + local.get $5 + i32.load offset=4 + local.set $6 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + local.get $1 + local.get $4 + local.get $4 + i32.const -1028477379 + i32.mul + i32.const 374761395 + i32.add + i32.const 17 + i32.rotl + i32.const 668265263 + i32.mul + local.tee $5 + i32.const 15 + i32.shr_u + local.get $5 + i32.xor + i32.const -2048144777 + i32.mul + local.tee $5 + i32.const 13 + i32.shr_u + local.get $5 + i32.xor + i32.const -1028477379 + i32.mul + local.tee $5 + i32.const 16 + i32.shr_u + local.get $5 + i32.xor + local.tee $7 + call $"~lib/map/Map#find" + local.tee $5 + if + local.get $5 + local.get $6 + i32.store offset=4 + else + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.load offset=8 + local.tee $5 + i32.store offset=12 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=8 + local.get $1 + local.get $1 + i32.load offset=16 + local.tee $8 + i32.const 1 + i32.add + i32.store offset=16 + local.get $5 + local.get $8 + i32.const 12 + i32.mul + i32.add + local.tee $5 + local.get $4 + i32.store16 + local.get $5 + local.get $6 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=8 + local.get $1 + local.get $1 + i32.load offset=20 + i32.const 1 + i32.add + i32.store offset=20 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + local.get $1 + i32.load + local.set $4 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + local.get $5 + local.get $4 + local.get $7 + local.get $1 + i32.load offset=4 + i32.and + i32.const 2 + i32.shl + i32.add + local.tee $4 + i32.load + i32.store offset=8 + local.get $4 + local.get $5 + i32.store + end + local.get $2 + i32.const 1 + i32.add + local.set $2 + br $for-loop|0 + end + end + end + global.get $~lib/memory/__stack_pointer + i32.const 16 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $1 + ) + (func $"~lib/map/Map#has" (param $0 i32) (param $1 i32) (result i32) + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.sub + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 3104 + i32.lt_s + if + i32.const 35904 + i32.const 35952 + i32.const 1 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + local.get $0 + local.get $1 + local.get $1 + i32.extend16_s + i32.const -1028477379 + i32.mul + i32.const 374761395 + i32.add + i32.const 17 + i32.rotl + i32.const 668265263 + i32.mul + local.tee $0 + local.get $0 + i32.const 15 + i32.shr_u + i32.xor + i32.const -2048144777 + i32.mul + local.tee $0 + local.get $0 + i32.const 13 + i32.shr_u + i32.xor + i32.const -1028477379 + i32.mul + local.tee $0 + local.get $0 + i32.const 16 + i32.shr_u + i32.xor + call $"~lib/map/Map#find" + i32.const 0 + i32.ne + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + ) + (func $"~lib/map/Map#set" (param $0 i32) (param $1 i32) (param $2 i32) + (local $3 i32) + (local $4 i32) + (local $5 i32) + global.get $~lib/memory/__stack_pointer + i32.const 12 + i32.sub + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 3104 + i32.lt_s + if + i32.const 35904 + i32.const 35952 + i32.const 1 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store offset=8 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + local.get $0 + local.get $1 + local.get $1 + i32.extend16_s + i32.const -1028477379 + i32.mul + i32.const 374761395 + i32.add + i32.const 17 + i32.rotl + i32.const 668265263 + i32.mul + local.tee $3 + i32.const 15 + i32.shr_u + local.get $3 + i32.xor + i32.const -2048144777 + i32.mul + local.tee $3 + i32.const 13 + i32.shr_u + local.get $3 + i32.xor + i32.const -1028477379 + i32.mul + local.tee $3 + i32.const 16 + i32.shr_u + local.get $3 + i32.xor + local.tee $4 + call $"~lib/map/Map#find" + local.tee $3 + if + local.get $3 + local.get $2 + i32.store offset=4 + else + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + local.get $0 + i32.load offset=16 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + local.get $0 + i32.load offset=12 + i32.eq + if + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + local.get $0 + i32.load offset=20 + local.set $3 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + local.get $0 + local.get $3 + local.get $0 + i32.load offset=12 + i32.const 3 + i32.mul + i32.const 4 + i32.div_s + i32.lt_s + if (result i32) + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + local.get $0 + i32.load offset=4 + else + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + local.get $0 + i32.load offset=4 + i32.const 1 + i32.shl + i32.const 1 + i32.or + end + call $"~lib/map/Map#rehash" + end + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.load offset=8 + local.tee $3 + i32.store offset=8 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + local.get $0 + local.get $0 + i32.load offset=16 + local.tee $5 + i32.const 1 + i32.add + i32.store offset=16 + local.get $3 + local.get $5 + i32.const 12 + i32.mul + i32.add + local.tee $3 + local.get $1 + i32.store16 + local.get $3 + local.get $2 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + local.get $0 + local.get $0 + i32.load offset=20 + i32.const 1 + i32.add + i32.store offset=20 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + local.get $0 + i32.load + local.set $1 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + local.get $3 + local.get $1 + local.get $4 + local.get $0 + i32.load offset=4 + i32.and + i32.const 2 + i32.shl + i32.add + local.tee $0 + i32.load + i32.store offset=8 + local.get $0 + local.get $3 + i32.store + end + global.get $~lib/memory/__stack_pointer + i32.const 12 + i32.add + global.set $~lib/memory/__stack_pointer + ) + (func $"~lib/map/Map#get" (param $0 i32) (param $1 i32) (result i32) + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.sub + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 3104 + i32.lt_s + if + i32.const 35904 + i32.const 35952 + i32.const 1 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + local.get $0 + local.get $1 + local.get $1 + i32.extend16_s + i32.const -1028477379 + i32.mul + i32.const 374761395 + i32.add + i32.const 17 + i32.rotl + i32.const 668265263 + i32.mul + local.tee $0 + local.get $0 + i32.const 15 + i32.shr_u + i32.xor + i32.const -2048144777 + i32.mul + local.tee $0 + local.get $0 + i32.const 13 + i32.shr_u + i32.xor + i32.const -1028477379 + i32.mul + local.tee $0 + local.get $0 + i32.const 16 + i32.shr_u + i32.xor + call $"~lib/map/Map#find" + local.tee $0 + i32.eqz + if + i32.const 1824 + i32.const 1888 + i32.const 148 + i32.const 17 + call $~lib/builtins/abort + unreachable + end + local.get $0 + i32.load offset=4 + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + ) + (func $~lib/array/Array#__set (param $0 i32) (param $1 i32) (param $2 i32) + (local $3 i32) + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.sub + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 3104 + i32.lt_s + if + i32.const 35904 + i32.const 35952 + i32.const 1 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + 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 1360 + i32.const 1568 + 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 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + local.get $0 + local.get $3 + i32.store offset=12 + end + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + local.get $0 + i32.load offset=4 + local.get $1 + i32.const 1 + i32.shl + i32.add + local.get $2 + i32.store16 + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + ) + (func $~lib/array/Array#set:length (param $0 i32) (param $1 i32) + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.sub + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 3104 + i32.lt_s + if + i32.const 35904 + i32.const 35952 + i32.const 1 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store + local.get $0 + local.get $1 + i32.const 1 + i32.const 0 + call $~lib/array/ensureCapacity + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + local.get $0 + local.get $1 + i32.store offset=12 + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + ) + (func $"~lib/map/Map#rehash" (param $0 i32) (param $1 i32) + (local $2 i32) + (local $3 i32) + (local $4 i32) + (local $5 i32) + (local $6 i32) + (local $7 i32) + (local $8 i32) + global.get $~lib/memory/__stack_pointer + i32.const 16 + i32.sub + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 3104 + i32.lt_s + if + i32.const 35904 + i32.const 35952 + i32.const 1 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store + global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store offset=8 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.const 1 + i32.add + local.tee $2 + i32.const 2 + i32.shl + call $~lib/arraybuffer/ArrayBuffer#constructor + local.tee $6 + i32.store + global.get $~lib/memory/__stack_pointer + local.get $2 + i32.const 3 + i32.shl + i32.const 3 + i32.div_s + local.tee $5 + i32.const 3 + i32.shl + call $~lib/arraybuffer/ArrayBuffer#constructor + local.tee $3 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=8 + local.get $0 + i32.load offset=8 + local.set $7 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=8 + local.get $7 + local.get $0 + i32.load offset=16 + i32.const 3 + i32.shl + i32.add + local.set $4 + local.get $3 + local.set $2 + loop $while-continue|0 + local.get $4 + local.get $7 + i32.ne + if + local.get $7 + i32.load offset=4 + i32.const 1 + i32.and + i32.eqz + if + local.get $2 + local.get $7 + i32.load16_s + local.tee $8 + i32.store16 + local.get $2 + local.get $7 + i32.load16_s offset=2 + i32.store16 offset=2 + local.get $2 + local.get $6 + local.get $1 + local.get $8 + i32.const -1028477379 + i32.mul + i32.const 374761395 + i32.add + i32.const 17 + i32.rotl + i32.const 668265263 + i32.mul + local.tee $8 + local.get $8 + i32.const 15 + i32.shr_u + i32.xor + i32.const -2048144777 + i32.mul + local.tee $8 + local.get $8 + i32.const 13 + i32.shr_u + i32.xor + i32.const -1028477379 + i32.mul + local.tee $8 + local.get $8 + i32.const 16 + i32.shr_u + i32.xor + i32.and + i32.const 2 + i32.shl + i32.add + local.tee $8 + i32.load + i32.store offset=4 + local.get $8 + local.get $2 + i32.store + local.get $2 + i32.const 8 + i32.add + local.set $2 + end + local.get $7 + i32.const 8 + i32.add + local.set $7 + br $while-continue|0 + end + end + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=8 + global.get $~lib/memory/__stack_pointer + local.get $6 + i32.store offset=12 + local.get $0 + local.get $6 + i32.store + local.get $0 + local.get $6 + i32.const 0 + call $~lib/rt/itcms/__link + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=8 + local.get $0 + local.get $1 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=8 + global.get $~lib/memory/__stack_pointer + local.get $3 + i32.store offset=12 + local.get $0 + local.get $3 + i32.store offset=8 + local.get $0 + local.get $3 + i32.const 0 + call $~lib/rt/itcms/__link + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=8 + local.get $0 + local.get $5 + i32.store offset=12 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=8 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=12 + local.get $0 + local.get $0 + i32.load offset=20 + i32.store offset=16 + global.get $~lib/memory/__stack_pointer + i32.const 16 + i32.add + global.set $~lib/memory/__stack_pointer + ) + (func $"~lib/map/Map#find" (param $0 i32) (param $1 i32) (param $2 i32) (result i32) + (local $3 i32) + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.sub + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 3104 + i32.lt_s + if + i32.const 35904 + i32.const 35952 + i32.const 1 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + local.get $0 + i32.load + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + local.get $2 + local.get $0 + i32.load offset=4 + i32.and + i32.const 2 + i32.shl + i32.add + i32.load + local.set $0 + loop $while-continue|0 + local.get $0 + if + local.get $0 + i32.load offset=4 + local.tee $2 + i32.const 1 + i32.and + if (result i32) + i32.const 0 + else + local.get $0 + i32.load16_u + local.get $1 + i32.const 65535 + i32.and + i32.eq + end + if + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $0 + return + end + local.get $2 + i32.const -2 + i32.and + local.set $0 + br $while-continue|0 + end + end + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + i32.const 0 + ) + (func $"~lib/map/Map#constructor" (param $0 i32) (result i32) + (local $1 i32) + (local $2 i32) + (local $3 i32) + (local $4 i32) + (local $5 i32) + (local $6 i32) + (local $7 i32) + (local $8 i32) + global.get $~lib/memory/__stack_pointer + i32.const 16 + i32.sub + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 3104 + i32.lt_s + if + i32.const 35904 + i32.const 35952 + i32.const 1 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store + global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store offset=8 + global.get $~lib/memory/__stack_pointer + i32.const 24 + i32.const 26 + call $~lib/rt/itcms/__new + local.tee $1 + i32.store + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + i32.const 16 + call $~lib/arraybuffer/ArrayBuffer#constructor + local.set $3 + global.get $~lib/memory/__stack_pointer + local.get $3 + i32.store offset=8 + local.get $1 + local.get $3 + i32.store + local.get $1 + local.get $3 + i32.const 0 + call $~lib/rt/itcms/__link + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + local.get $1 + i32.const 3 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + i32.const 32 + call $~lib/arraybuffer/ArrayBuffer#constructor + local.set $3 + global.get $~lib/memory/__stack_pointer + local.get $3 + i32.store offset=8 + local.get $1 + local.get $3 + i32.store offset=8 + local.get $1 + local.get $3 + i32.const 0 + call $~lib/rt/itcms/__link + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + local.get $1 + i32.const 4 + i32.store offset=12 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + local.get $1 + i32.const 0 + i32.store offset=16 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + local.get $1 + i32.const 0 + i32.store offset=20 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + local.get $0 + call $"~lib/array/Array<~lib/map/KeyValue>#get:length" + local.tee $3 + i32.const 0 + i32.gt_s + if + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + local.get $3 + local.get $1 + i32.load offset=12 + i32.ge_s + if + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + local.get $1 + local.get $3 + i32.store offset=4 + end + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=8 + local.get $1 + local.get $1 + i32.load offset=4 + i32.const 1 + i32.shl + i32.const 1 + i32.or + call $"~lib/map/Map#rehash" + loop $for-loop|0 + local.get $2 + local.get $3 + i32.lt_s + if + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=8 + local.get $0 + local.get $2 + call $"~lib/array/Array<~lib/map/KeyValue>#__get" + local.set $4 + global.get $~lib/memory/__stack_pointer + local.get $4 + i32.store offset=4 + local.get $4 + i32.load16_s + local.set $4 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=8 + local.get $0 + local.get $2 + call $"~lib/array/Array<~lib/map/KeyValue>#__get" + local.set $5 + global.get $~lib/memory/__stack_pointer + local.get $5 + i32.store offset=4 + local.get $5 + i32.load16_s offset=2 + local.set $6 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + local.get $1 + local.get $4 + local.get $4 + i32.const -1028477379 + i32.mul + i32.const 374761395 + i32.add + i32.const 17 + i32.rotl + i32.const 668265263 + i32.mul + local.tee $5 + i32.const 15 + i32.shr_u + local.get $5 + i32.xor + i32.const -2048144777 + i32.mul + local.tee $5 + i32.const 13 + i32.shr_u + local.get $5 + i32.xor + i32.const -1028477379 + i32.mul + local.tee $5 + i32.const 16 + i32.shr_u + local.get $5 + i32.xor + local.tee $7 + call $"~lib/map/Map#find" + local.tee $5 + if + local.get $5 + local.get $6 + i32.store16 offset=2 + else + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.load offset=8 + local.tee $5 + i32.store offset=12 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=8 + local.get $1 + local.get $1 + i32.load offset=16 + local.tee $8 + i32.const 1 + i32.add + i32.store offset=16 + local.get $5 + local.get $8 + i32.const 3 + i32.shl + i32.add + local.tee $5 + local.get $4 + i32.store16 + local.get $5 + local.get $6 + i32.store16 offset=2 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=8 + local.get $1 + local.get $1 + i32.load offset=20 + i32.const 1 + i32.add + i32.store offset=20 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + local.get $1 + i32.load + local.set $4 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + local.get $5 + local.get $4 + local.get $7 + local.get $1 + i32.load offset=4 + i32.and + i32.const 2 + i32.shl + i32.add + local.tee $4 + i32.load + i32.store offset=4 + local.get $4 + local.get $5 + i32.store + end + local.get $2 + i32.const 1 + i32.add + local.set $2 + br $for-loop|0 + end + end + end + global.get $~lib/memory/__stack_pointer + i32.const 16 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $1 + ) + (func $"~lib/map/Map#delete" (param $0 i32) (param $1 i32) + (local $2 i32) + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.sub + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 3104 + i32.lt_s + if + i32.const 35904 + i32.const 35952 + i32.const 1 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + local.get $0 + local.get $1 + local.get $1 + i32.extend16_s + i32.const -1028477379 + i32.mul + i32.const 374761395 + i32.add + i32.const 17 + i32.rotl + i32.const 668265263 + i32.mul + local.tee $1 + i32.const 15 + i32.shr_u + local.get $1 + i32.xor + i32.const -2048144777 + i32.mul + local.tee $1 + i32.const 13 + i32.shr_u + local.get $1 + i32.xor + i32.const -1028477379 + i32.mul + local.tee $1 + i32.const 16 + i32.shr_u + local.get $1 + i32.xor + call $"~lib/map/Map#find" + local.tee $1 + i32.eqz + if + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.add + global.set $~lib/memory/__stack_pointer + return + end + local.get $1 + local.get $1 + i32.load offset=8 + i32.const 1 + i32.or + i32.store offset=8 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + local.get $0 + local.get $0 + i32.load offset=20 + i32.const 1 + i32.sub + i32.store offset=20 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + local.get $0 + i32.load offset=4 + i32.const 1 + i32.shr_u + local.set $1 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + local.get $1 + i32.const 1 + i32.add + i32.const 4 + local.get $0 + i32.load offset=20 + local.tee $2 + local.get $2 + i32.const 4 + i32.lt_u + select + i32.ge_u + if (result i32) + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + local.get $0 + i32.load offset=20 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + local.get $0 + i32.load offset=12 + i32.const 3 + i32.mul + i32.const 4 + i32.div_s + i32.lt_s + else + i32.const 0 + end + if + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + local.get $0 + local.get $1 + call $"~lib/map/Map#rehash" + end + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.add + global.set $~lib/memory/__stack_pointer + ) + (func $"std/map/testNumeric" + (local $0 i32) + (local $1 i32) + (local $2 i32) + (local $3 i32) + (local $4 i32) + (local $5 i32) + (local $6 i32) + (local $7 i32) + (local $8 i32) + (local $9 i32) + (local $10 i32) + global.get $~lib/memory/__stack_pointer + i32.const 40 + i32.sub + global.set $~lib/memory/__stack_pointer + block $folding-inner1 + global.get $~lib/memory/__stack_pointer + i32.const 3104 + i32.lt_s + br_if $folding-inner1 + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.const 40 + memory.fill + global.get $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 12 + i32.sub + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 3104 + i32.lt_s + br_if $folding-inner1 + global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store offset=8 + global.get $~lib/memory/__stack_pointer + i32.const 24 + i32.const 2128 + call $~lib/rt/__newArray + local.tee $4 + i32.store + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + local.get $4 + i32.store offset=8 + local.get $4 + call $"~lib/map/Map#constructor" + local.set $4 + global.get $~lib/memory/__stack_pointer + i32.const 12 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $4 + i32.store + loop $for-loop|0 + local.get $0 + i32.const 100 + i32.lt_s + if + global.get $~lib/memory/__stack_pointer + local.get $4 + i32.store offset=4 + local.get $4 + local.get $0 + call $"~lib/map/Map#has" + if + i32.const 0 + i32.const 1776 + i32.const 7 + i32.const 5 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + local.get $4 + i32.store offset=4 + local.get $4 + local.get $0 + local.get $0 + i32.const 10 + i32.add + call $"~lib/map/Map#set" + global.get $~lib/memory/__stack_pointer + local.get $4 + i32.store offset=4 + local.get $4 + local.get $0 + call $"~lib/map/Map#has" + i32.eqz + if + i32.const 0 + i32.const 1776 + i32.const 9 + i32.const 5 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + local.get $4 + i32.store offset=4 + local.get $4 + local.get $0 + call $"~lib/map/Map#get" + local.get $0 + i32.const 10 + i32.add + i32.ne + if + i32.const 0 + i32.const 1776 + i32.const 10 + i32.const 5 + call $~lib/builtins/abort + unreachable + end + local.get $0 + i32.const 1 + i32.add + local.set $0 + br $for-loop|0 + end + end + global.get $~lib/memory/__stack_pointer + local.get $4 + i32.store offset=4 + local.get $4 + call $"~lib/map/Map#get:size" + i32.const 100 + i32.ne + if + i32.const 0 + i32.const 1776 + i32.const 12 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + i32.const 0 + local.set $0 + loop $for-loop|1 + local.get $0 + i32.const 100 + i32.lt_s + if + global.get $~lib/memory/__stack_pointer + local.get $4 + i32.store offset=4 + local.get $4 + local.get $0 + call $"~lib/map/Map#has" + i32.eqz + if + i32.const 0 + i32.const 1776 + i32.const 16 + i32.const 5 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + local.get $4 + i32.store offset=4 + local.get $4 + local.get $0 + call $"~lib/map/Map#get" + local.get $0 + i32.const 10 + i32.add + i32.ne + if + i32.const 0 + i32.const 1776 + i32.const 17 + i32.const 5 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + local.get $4 + i32.store offset=4 + local.get $4 + local.get $0 + local.get $0 + i32.const 20 + i32.add + call $"~lib/map/Map#set" + global.get $~lib/memory/__stack_pointer + local.get $4 + i32.store offset=4 + local.get $4 + local.get $0 + call $"~lib/map/Map#has" + i32.eqz + if + i32.const 0 + i32.const 1776 + i32.const 19 + i32.const 5 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + local.get $4 + i32.store offset=4 + local.get $4 + local.get $0 + call $"~lib/map/Map#get" + local.get $0 + i32.const 20 + i32.add + i32.ne + if + i32.const 0 + i32.const 1776 + i32.const 20 + i32.const 5 + call $~lib/builtins/abort + unreachable + end + local.get $0 + i32.const 1 + i32.add + local.set $0 + br $for-loop|1 + end + end + global.get $~lib/memory/__stack_pointer + local.get $4 + i32.store offset=4 + local.get $4 + call $"~lib/map/Map#get:size" + i32.const 100 + i32.ne + if + i32.const 0 + i32.const 1776 + i32.const 22 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + local.get $4 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.sub + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 3104 + i32.lt_s + br_if $folding-inner1 + global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store + global.get $~lib/memory/__stack_pointer + local.get $4 + i32.store + local.get $4 + i32.load offset=8 + local.set $6 + global.get $~lib/memory/__stack_pointer + local.get $4 + i32.store + local.get $4 + i32.load offset=16 + local.set $7 + global.get $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 16 + i32.sub + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 3104 + i32.lt_s + br_if $folding-inner1 + global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store + global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store offset=8 + global.get $~lib/memory/__stack_pointer + i32.const 16 + i32.const 25 + call $~lib/rt/itcms/__new + local.tee $3 + i32.store + global.get $~lib/memory/__stack_pointer + local.get $3 + i32.store offset=4 + local.get $3 + i32.const 0 + i32.store + local.get $3 + i32.const 0 + i32.const 0 + call $~lib/rt/itcms/__link + global.get $~lib/memory/__stack_pointer + local.get $3 + i32.store offset=4 + local.get $3 + i32.const 0 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + local.get $3 + i32.store offset=4 + local.get $3 + i32.const 0 + i32.store offset=8 + global.get $~lib/memory/__stack_pointer + local.get $3 + i32.store offset=4 + local.get $3 + i32.const 0 + i32.store offset=12 + local.get $7 + i32.const 536870910 + i32.gt_u + if + i32.const 1056 + i32.const 1568 + i32.const 70 + i32.const 60 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + i32.const 8 + local.get $7 + local.get $7 + i32.const 8 + i32.le_u + select + i32.const 1 + i32.shl + local.tee $8 + i32.const 1 + call $~lib/rt/itcms/__new + local.tee $9 + i32.store offset=8 + global.get $~lib/memory/__stack_pointer + local.get $3 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + local.get $9 + i32.store offset=12 + local.get $3 + local.get $9 + i32.store + local.get $3 + local.get $9 + i32.const 0 + call $~lib/rt/itcms/__link + global.get $~lib/memory/__stack_pointer + local.get $3 + i32.store offset=4 + local.get $3 + local.get $9 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + local.get $3 + i32.store offset=4 + local.get $3 + local.get $8 + i32.store offset=8 + global.get $~lib/memory/__stack_pointer + local.get $3 + i32.store offset=4 + local.get $3 + local.get $7 + i32.store offset=12 + global.get $~lib/memory/__stack_pointer + i32.const 16 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $3 + i32.store offset=4 + i32.const 0 + local.set $0 + loop $for-loop|00 + local.get $2 + local.get $7 + i32.lt_s + if + local.get $6 + local.get $2 + i32.const 12 + i32.mul + i32.add + local.tee $8 + i32.load offset=8 + i32.const 1 + i32.and + i32.eqz + if + global.get $~lib/memory/__stack_pointer + local.get $3 + i32.store + local.get $3 + local.get $0 + local.get $8 + i32.load16_s + call $~lib/array/Array#__set + local.get $0 + i32.const 1 + i32.add + local.set $0 + end + local.get $2 + i32.const 1 + i32.add + local.set $2 + br $for-loop|00 + end + end + global.get $~lib/memory/__stack_pointer + local.get $3 + i32.store + local.get $3 + local.get $0 + call $~lib/array/Array#set:length + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $3 + i32.store offset=8 + global.get $~lib/memory/__stack_pointer + local.get $4 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + local.get $4 + call $"~lib/map/Map#values" + local.tee $2 + i32.store offset=12 + global.get $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 12 + i32.sub + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 3104 + i32.lt_s + br_if $folding-inner1 + global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store offset=8 + global.get $~lib/memory/__stack_pointer + i32.const 28 + i32.const 2160 + call $~lib/rt/__newArray + local.tee $5 + i32.store + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + local.get $5 + i32.store offset=8 + local.get $5 + call $"~lib/map/Map#constructor" + local.set $5 + global.get $~lib/memory/__stack_pointer + i32.const 12 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $5 + i32.store offset=16 + global.get $~lib/memory/__stack_pointer + call $"~lib/map/Map#constructor@varargs" + local.tee $6 + i32.store offset=20 + loop $for-loop|2 + global.get $~lib/memory/__stack_pointer + local.get $3 + i32.store offset=4 + local.get $3 + call $"~lib/array/Array<~lib/map/KeyValue>#get:length" + local.get $1 + i32.gt_s + if + global.get $~lib/memory/__stack_pointer + local.get $3 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.sub + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 3104 + i32.lt_s + br_if $folding-inner1 + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store + global.get $~lib/memory/__stack_pointer + local.get $3 + i32.store + local.get $1 + local.get $3 + i32.load offset=12 + i32.ge_u + if + i32.const 1360 + i32.const 1568 + i32.const 114 + i32.const 42 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + local.get $3 + i32.store + local.get $3 + i32.load offset=4 + local.get $1 + i32.const 1 + i32.shl + i32.add + i32.load16_s + local.set $7 + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + local.get $2 + i32.store offset=4 + local.get $2 + local.get $1 + call $~lib/array/Array#__get + local.set $8 + global.get $~lib/memory/__stack_pointer + local.get $4 + i32.store offset=4 + local.get $4 + local.get $7 + call $"~lib/map/Map#has" + i32.eqz + if + i32.const 0 + i32.const 1776 + i32.const 32 + i32.const 5 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + local.get $4 + i32.store offset=4 + local.get $4 + local.get $8 + i32.const 20 + i32.sub + call $"~lib/map/Map#has" + i32.eqz + if + i32.const 0 + i32.const 1776 + i32.const 33 + i32.const 5 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + local.get $5 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + i32.const 12 + i32.sub + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 3104 + i32.lt_s + br_if $folding-inner1 + global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store offset=8 + global.get $~lib/memory/__stack_pointer + local.get $5 + i32.store + local.get $5 + local.get $7 + local.get $7 + i32.extend16_s + i32.const -1028477379 + i32.mul + i32.const 374761395 + i32.add + i32.const 17 + i32.rotl + i32.const 668265263 + i32.mul + local.tee $0 + local.get $0 + i32.const 15 + i32.shr_u + i32.xor + i32.const -2048144777 + i32.mul + local.tee $0 + local.get $0 + i32.const 13 + i32.shr_u + i32.xor + i32.const -1028477379 + i32.mul + local.tee $0 + local.get $0 + i32.const 16 + i32.shr_u + i32.xor + local.tee $9 + call $"~lib/map/Map#find" + local.tee $0 + if + local.get $0 + local.get $7 + i32.store16 offset=2 + else + global.get $~lib/memory/__stack_pointer + local.get $5 + i32.store + local.get $5 + i32.load offset=16 + global.get $~lib/memory/__stack_pointer + local.get $5 + i32.store + local.get $5 + i32.load offset=12 + i32.eq + if + global.get $~lib/memory/__stack_pointer + local.get $5 + i32.store + global.get $~lib/memory/__stack_pointer + local.get $5 + i32.store offset=4 + local.get $5 + i32.load offset=20 + local.set $0 + global.get $~lib/memory/__stack_pointer + local.get $5 + i32.store offset=4 + local.get $5 + local.get $0 + local.get $5 + i32.load offset=12 + i32.const 3 + i32.mul + i32.const 4 + i32.div_s + i32.lt_s + if (result i32) + global.get $~lib/memory/__stack_pointer + local.get $5 + i32.store offset=4 + local.get $5 + i32.load offset=4 + else + global.get $~lib/memory/__stack_pointer + local.get $5 + i32.store offset=4 + local.get $5 + i32.load offset=4 + i32.const 1 + i32.shl + i32.const 1 + i32.or + end + call $"~lib/map/Map#rehash" + end + global.get $~lib/memory/__stack_pointer + local.get $5 + i32.store + global.get $~lib/memory/__stack_pointer + local.get $5 + i32.load offset=8 + local.tee $10 + i32.store offset=8 + global.get $~lib/memory/__stack_pointer + local.get $5 + i32.store + global.get $~lib/memory/__stack_pointer + local.get $5 + i32.store offset=4 + local.get $5 + local.get $5 + i32.load offset=16 + local.tee $0 + i32.const 1 + i32.add + i32.store offset=16 + local.get $10 + local.get $0 + i32.const 3 + i32.shl + i32.add + local.tee $0 + local.get $7 + i32.store16 + local.get $0 + local.get $7 + i32.store16 offset=2 + global.get $~lib/memory/__stack_pointer + local.get $5 + i32.store + global.get $~lib/memory/__stack_pointer + local.get $5 + i32.store offset=4 + local.get $5 + local.get $5 + i32.load offset=20 + i32.const 1 + i32.add + i32.store offset=20 + global.get $~lib/memory/__stack_pointer + local.get $5 + i32.store + local.get $5 + i32.load + local.set $7 + global.get $~lib/memory/__stack_pointer + local.get $5 + i32.store + local.get $0 + local.get $7 + local.get $9 + local.get $5 + i32.load offset=4 + i32.and + i32.const 2 + i32.shl + i32.add + local.tee $7 + i32.load + i32.store offset=4 + local.get $7 + local.get $0 + i32.store + end + global.get $~lib/memory/__stack_pointer + i32.const 12 + i32.add + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + local.get $6 + i32.store offset=4 + local.get $6 + local.get $8 + i32.const 20 + i32.sub + local.tee $0 + local.get $0 + call $"~lib/map/Map#set" + local.get $1 + i32.const 1 + i32.add + local.set $1 + br $for-loop|2 + end + end + global.get $~lib/memory/__stack_pointer + local.get $5 + i32.store offset=4 + local.get $5 + call $"~lib/map/Map#get:size" + i32.const 100 + i32.ne + if + i32.const 0 + i32.const 1776 + i32.const 37 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + local.get $6 + i32.store offset=4 + local.get $6 + call $"~lib/map/Map#get:size" + i32.const 100 + i32.ne + if + i32.const 0 + i32.const 1776 + i32.const 38 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + i32.const 0 + local.set $0 + loop $for-loop|3 + local.get $0 + i32.const 50 + i32.lt_s + if + global.get $~lib/memory/__stack_pointer + local.get $4 + i32.store offset=4 + local.get $4 + local.get $0 + call $"~lib/map/Map#has" + i32.eqz + if + i32.const 0 + i32.const 1776 + i32.const 42 + i32.const 5 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + local.get $4 + i32.store offset=4 + local.get $4 + local.get $0 + call $"~lib/map/Map#get" + local.get $0 + i32.const 20 + i32.add + i32.ne + if + i32.const 0 + i32.const 1776 + i32.const 43 + i32.const 5 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + local.get $4 + i32.store offset=4 + local.get $4 + local.get $0 + call $"~lib/map/Map#delete" + global.get $~lib/memory/__stack_pointer + local.get $4 + i32.store offset=4 + local.get $4 + local.get $0 + call $"~lib/map/Map#has" + if + i32.const 0 + i32.const 1776 + i32.const 45 + i32.const 5 + call $~lib/builtins/abort + unreachable + end + local.get $0 + i32.const 1 + i32.add + local.set $0 + br $for-loop|3 + end + end + global.get $~lib/memory/__stack_pointer + local.get $4 + i32.store offset=4 + local.get $4 + call $"~lib/map/Map#get:size" + i32.const 50 + i32.ne + if + i32.const 0 + i32.const 1776 + i32.const 47 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + i32.const 0 + local.set $0 + loop $for-loop|4 + local.get $0 + i32.const 50 + i32.lt_s + if + global.get $~lib/memory/__stack_pointer + local.get $4 + i32.store offset=4 + local.get $4 + local.get $0 + call $"~lib/map/Map#has" + if + i32.const 0 + i32.const 1776 + i32.const 51 + i32.const 5 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + local.get $4 + i32.store offset=4 + local.get $4 + local.get $0 + local.get $0 + i32.const 10 + i32.add + call $"~lib/map/Map#set" + global.get $~lib/memory/__stack_pointer + local.get $4 + i32.store offset=4 + local.get $4 + local.get $0 + call $"~lib/map/Map#has" + i32.eqz + if + i32.const 0 + i32.const 1776 + i32.const 53 + i32.const 5 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + local.get $4 + i32.store offset=4 + local.get $4 + local.get $0 + call $"~lib/map/Map#delete" + global.get $~lib/memory/__stack_pointer + local.get $4 + i32.store offset=4 + local.get $4 + local.get $0 + call $"~lib/map/Map#has" + if + i32.const 0 + i32.const 1776 + i32.const 55 + i32.const 5 + call $~lib/builtins/abort + unreachable + end + local.get $0 + i32.const 1 + i32.add + local.set $0 + br $for-loop|4 + end + end + global.get $~lib/memory/__stack_pointer + local.get $4 + i32.store offset=4 + local.get $4 + call $"~lib/map/Map#get:size" + i32.const 50 + i32.ne + if + i32.const 0 + i32.const 1776 + i32.const 57 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + local.get $4 + i32.store offset=4 + local.get $4 + call $"~lib/map/Map#clear" + global.get $~lib/memory/__stack_pointer + local.get $4 + i32.store offset=4 + local.get $4 + call $"~lib/map/Map#get:size" + if + i32.const 0 + i32.const 1776 + i32.const 61 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + i32.const 24 + i32.const 2192 + call $~lib/rt/__newArray + local.tee $1 + i32.store offset=24 + i32.const 0 + local.set $0 + loop $for-loop|5 + local.get $0 + i32.const 100 + i32.lt_s + if + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.sub + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 3104 + i32.lt_s + br_if $folding-inner1 + global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.const 23 + call $~lib/rt/itcms/__new + local.tee $3 + i32.store + global.get $~lib/memory/__stack_pointer + local.get $3 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + local.get $3 + call $~lib/object/Object#constructor + local.tee $3 + i32.store + global.get $~lib/memory/__stack_pointer + local.get $3 + i32.store offset=4 + local.get $3 + i32.const 0 + i32.store16 + global.get $~lib/memory/__stack_pointer + local.get $3 + i32.store offset=4 + local.get $3 + i32.const 0 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $3 + i32.store offset=32 + global.get $~lib/memory/__stack_pointer + local.get $3 + i32.store offset=36 + local.get $3 + local.get $0 + i32.store16 + global.get $~lib/memory/__stack_pointer + local.get $3 + i32.store offset=36 + local.get $3 + local.get $0 + i32.const 10 + i32.add + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + local.get $3 + i32.store offset=28 + local.get $1 + local.get $3 + call $"~lib/array/Array<~lib/map/KeyValue>#push" + local.get $0 + i32.const 1 + i32.add + local.set $0 + br $for-loop|5 + end + end + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + local.get $1 + call $"~lib/map/Map#constructor" + local.tee $1 + i32.store + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + local.get $1 + call $"~lib/map/Map#get:size" + i32.const 100 + i32.ne + if + i32.const 0 + i32.const 1776 + i32.const 74 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + i32.const 0 + local.set $0 + loop $for-loop|6 + local.get $0 + i32.const 100 + i32.lt_s + if + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + local.get $1 + local.get $0 + call $"~lib/map/Map#has" + i32.eqz + if + i32.const 0 + i32.const 1776 + i32.const 76 + i32.const 5 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + local.get $1 + local.get $0 + call $"~lib/map/Map#get" + local.get $0 + i32.const 10 + i32.add + i32.ne + if + i32.const 0 + i32.const 1776 + i32.const 77 + i32.const 5 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + local.get $1 + local.get $0 + call $"~lib/map/Map#delete" + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + local.get $1 + local.get $0 + call $"~lib/map/Map#has" + if + i32.const 0 + i32.const 1776 + i32.const 79 + i32.const 5 + call $~lib/builtins/abort + unreachable + end + local.get $0 + i32.const 1 + i32.add + local.set $0 + br $for-loop|6 + end + end + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + local.get $1 + call $"~lib/map/Map#get:size" + if + i32.const 0 + i32.const 1776 + i32.const 81 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + i32.const 40 + i32.add + global.set $~lib/memory/__stack_pointer + return + end + i32.const 35904 + i32.const 35952 + i32.const 1 + i32.const 1 + call $~lib/builtins/abort + unreachable + ) + (func $"~lib/map/Map#rehash" (param $0 i32) (param $1 i32) + (local $2 i32) + (local $3 i32) + (local $4 i32) + (local $5 i32) + (local $6 i32) + (local $7 i32) + (local $8 i32) + global.get $~lib/memory/__stack_pointer + i32.const 16 + i32.sub + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 3104 + i32.lt_s + if + i32.const 35904 + i32.const 35952 + i32.const 1 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store + global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store offset=8 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.const 1 + i32.add + local.tee $2 + i32.const 2 + i32.shl + call $~lib/arraybuffer/ArrayBuffer#constructor + local.tee $6 + i32.store + global.get $~lib/memory/__stack_pointer + local.get $2 + i32.const 3 + i32.shl + i32.const 3 + i32.div_s + local.tee $5 + i32.const 12 + i32.mul + call $~lib/arraybuffer/ArrayBuffer#constructor + local.tee $3 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=8 + local.get $0 + i32.load offset=8 + local.set $7 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=8 + local.get $7 + local.get $0 + i32.load offset=16 + i32.const 12 + i32.mul + i32.add + local.set $4 + local.get $3 + local.set $2 + loop $while-continue|0 + local.get $4 + local.get $7 + i32.ne + if + local.get $7 + i32.load offset=8 + i32.const 1 + i32.and + i32.eqz + if + local.get $2 + local.get $7 + i32.load16_u + local.tee $8 + i32.store16 + local.get $2 + local.get $7 + i32.load offset=4 + i32.store offset=4 + local.get $2 + local.get $6 + local.get $1 + local.get $8 + i32.const -1028477379 + i32.mul + i32.const 374761395 + i32.add + i32.const 17 + i32.rotl + i32.const 668265263 + i32.mul + local.tee $8 + local.get $8 + i32.const 15 + i32.shr_u + i32.xor + i32.const -2048144777 + i32.mul + local.tee $8 + local.get $8 + i32.const 13 + i32.shr_u + i32.xor + i32.const -1028477379 + i32.mul + local.tee $8 + local.get $8 + i32.const 16 + i32.shr_u + i32.xor + i32.and + i32.const 2 + i32.shl + i32.add + local.tee $8 + i32.load + i32.store offset=8 + local.get $8 + local.get $2 + i32.store + local.get $2 + i32.const 12 + i32.add + local.set $2 + end + local.get $7 + i32.const 12 + i32.add + local.set $7 + br $while-continue|0 + end + end + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=8 + global.get $~lib/memory/__stack_pointer + local.get $6 + i32.store offset=12 + local.get $0 + local.get $6 + i32.store + local.get $0 + local.get $6 + i32.const 0 + call $~lib/rt/itcms/__link + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=8 + local.get $0 + local.get $1 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=8 + global.get $~lib/memory/__stack_pointer + local.get $3 + i32.store offset=12 + local.get $0 + local.get $3 + i32.store offset=8 + local.get $0 + local.get $3 + i32.const 0 + call $~lib/rt/itcms/__link + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=8 + local.get $0 + local.get $5 + i32.store offset=12 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=8 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=12 + local.get $0 + local.get $0 + i32.load offset=20 + i32.store offset=16 + global.get $~lib/memory/__stack_pointer + i32.const 16 + i32.add + global.set $~lib/memory/__stack_pointer + ) + (func $"~lib/map/Map#constructor" (param $0 i32) (result i32) + (local $1 i32) + (local $2 i32) + (local $3 i32) + (local $4 i32) + (local $5 i32) + (local $6 i32) + (local $7 i32) + (local $8 i32) + global.get $~lib/memory/__stack_pointer + i32.const 16 + i32.sub + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 3104 + i32.lt_s + if + i32.const 35904 + i32.const 35952 + i32.const 1 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store + global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store offset=8 + global.get $~lib/memory/__stack_pointer + i32.const 24 + i32.const 29 + call $~lib/rt/itcms/__new + local.tee $1 + i32.store + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + i32.const 16 + call $~lib/arraybuffer/ArrayBuffer#constructor + local.set $3 + global.get $~lib/memory/__stack_pointer + local.get $3 + i32.store offset=8 + local.get $1 + local.get $3 + i32.store + local.get $1 + local.get $3 + i32.const 0 + call $~lib/rt/itcms/__link + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + local.get $1 + i32.const 3 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + i32.const 48 + call $~lib/arraybuffer/ArrayBuffer#constructor + local.set $3 + global.get $~lib/memory/__stack_pointer + local.get $3 + i32.store offset=8 + local.get $1 + local.get $3 + i32.store offset=8 + local.get $1 + local.get $3 + i32.const 0 + call $~lib/rt/itcms/__link + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + local.get $1 + i32.const 4 + i32.store offset=12 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + local.get $1 + i32.const 0 + i32.store offset=16 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + local.get $1 + i32.const 0 + i32.store offset=20 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + local.get $0 + call $"~lib/array/Array<~lib/map/KeyValue>#get:length" + local.tee $3 + i32.const 0 + i32.gt_s + if + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + local.get $3 + local.get $1 + i32.load offset=12 + i32.ge_s + if + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + local.get $1 + local.get $3 + i32.store offset=4 + end + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=8 + local.get $1 + local.get $1 + i32.load offset=4 + i32.const 1 + i32.shl + i32.const 1 + i32.or + call $"~lib/map/Map#rehash" + loop $for-loop|0 + local.get $2 + local.get $3 + i32.lt_s + if + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=8 + local.get $0 + local.get $2 + call $"~lib/array/Array<~lib/map/KeyValue>#__get" + local.set $4 + global.get $~lib/memory/__stack_pointer + local.get $4 + i32.store offset=4 + local.get $4 + i32.load16_u + local.set $4 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=8 + local.get $0 + local.get $2 + call $"~lib/array/Array<~lib/map/KeyValue>#__get" + local.set $5 + global.get $~lib/memory/__stack_pointer + local.get $5 + i32.store offset=4 + local.get $5 + i32.load offset=4 + local.set $6 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + local.get $1 + local.get $4 + local.get $4 + i32.const -1028477379 + i32.mul + i32.const 374761395 + i32.add + i32.const 17 + i32.rotl + i32.const 668265263 + i32.mul + local.tee $5 + i32.const 15 + i32.shr_u + local.get $5 + i32.xor + i32.const -2048144777 + i32.mul + local.tee $5 + i32.const 13 + i32.shr_u + local.get $5 + i32.xor + i32.const -1028477379 + i32.mul + local.tee $5 + i32.const 16 + i32.shr_u + local.get $5 + i32.xor + local.tee $7 + call $"~lib/map/Map#find" + local.tee $5 + if + local.get $5 + local.get $6 + i32.store offset=4 + else + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.load offset=8 + local.tee $5 + i32.store offset=12 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=8 + local.get $1 + local.get $1 + i32.load offset=16 + local.tee $8 + i32.const 1 + i32.add + i32.store offset=16 + local.get $5 + local.get $8 + i32.const 12 + i32.mul + i32.add + local.tee $5 + local.get $4 + i32.store16 + local.get $5 + local.get $6 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=8 + local.get $1 + local.get $1 + i32.load offset=20 + i32.const 1 + i32.add + i32.store offset=20 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + local.get $1 + i32.load + local.set $4 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + local.get $5 + local.get $4 + local.get $7 + local.get $1 + i32.load offset=4 + i32.and + i32.const 2 + i32.shl + i32.add + local.tee $4 + i32.load + i32.store offset=8 + local.get $4 + local.get $5 + i32.store + end + local.get $2 + i32.const 1 + i32.add + local.set $2 + br $for-loop|0 + end + end + end + global.get $~lib/memory/__stack_pointer + i32.const 16 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $1 + ) + (func $"~lib/map/Map#has" (param $0 i32) (param $1 i32) (result i32) + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.sub + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 3104 + i32.lt_s + if + i32.const 35904 + i32.const 35952 + i32.const 1 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + local.get $0 + local.get $1 + local.get $1 + i32.const 65535 + i32.and + i32.const -1028477379 + i32.mul + i32.const 374761395 + i32.add + i32.const 17 + i32.rotl + i32.const 668265263 + i32.mul + local.tee $0 + local.get $0 + i32.const 15 + i32.shr_u + i32.xor + i32.const -2048144777 + i32.mul + local.tee $0 + local.get $0 + i32.const 13 + i32.shr_u + i32.xor + i32.const -1028477379 + i32.mul + local.tee $0 + local.get $0 + i32.const 16 + i32.shr_u + i32.xor + call $"~lib/map/Map#find" + i32.const 0 + i32.ne + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + ) + (func $"~lib/map/Map#set" (param $0 i32) (param $1 i32) (param $2 i32) + (local $3 i32) + (local $4 i32) + (local $5 i32) + global.get $~lib/memory/__stack_pointer + i32.const 12 + i32.sub + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 3104 + i32.lt_s + if + i32.const 35904 + i32.const 35952 + i32.const 1 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store offset=8 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + local.get $0 + local.get $1 + local.get $1 + i32.const 65535 + i32.and + i32.const -1028477379 + i32.mul + i32.const 374761395 + i32.add + i32.const 17 + i32.rotl + i32.const 668265263 + i32.mul + local.tee $3 + i32.const 15 + i32.shr_u + local.get $3 + i32.xor + i32.const -2048144777 + i32.mul + local.tee $3 + i32.const 13 + i32.shr_u + local.get $3 + i32.xor + i32.const -1028477379 + i32.mul + local.tee $3 + i32.const 16 + i32.shr_u + local.get $3 + i32.xor + local.tee $4 + call $"~lib/map/Map#find" + local.tee $3 + if + local.get $3 + local.get $2 + i32.store offset=4 + else + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + local.get $0 + i32.load offset=16 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + local.get $0 + i32.load offset=12 + i32.eq + if + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + local.get $0 + i32.load offset=20 + local.set $3 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + local.get $0 + local.get $3 + local.get $0 + i32.load offset=12 + i32.const 3 + i32.mul + i32.const 4 + i32.div_s + i32.lt_s + if (result i32) + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + local.get $0 + i32.load offset=4 + else + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + local.get $0 + i32.load offset=4 + i32.const 1 + i32.shl + i32.const 1 + i32.or + end + call $"~lib/map/Map#rehash" + end + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.load offset=8 + local.tee $3 + i32.store offset=8 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + local.get $0 + local.get $0 + i32.load offset=16 + local.tee $5 + i32.const 1 + i32.add + i32.store offset=16 + local.get $3 + local.get $5 + i32.const 12 + i32.mul + i32.add + local.tee $3 + local.get $1 + i32.store16 + local.get $3 + local.get $2 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + local.get $0 + local.get $0 + i32.load offset=20 + i32.const 1 + i32.add + i32.store offset=20 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + local.get $0 + i32.load + local.set $1 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + local.get $3 + local.get $1 + local.get $4 + local.get $0 + i32.load offset=4 + i32.and + i32.const 2 + i32.shl + i32.add + local.tee $0 + i32.load + i32.store offset=8 + local.get $0 + local.get $3 + i32.store + end + global.get $~lib/memory/__stack_pointer + i32.const 12 + i32.add + global.set $~lib/memory/__stack_pointer + ) + (func $"~lib/map/Map#get" (param $0 i32) (param $1 i32) (result i32) + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.sub + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 3104 + i32.lt_s + if + i32.const 35904 + i32.const 35952 + i32.const 1 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + local.get $0 + local.get $1 + local.get $1 + i32.const 65535 + i32.and + i32.const -1028477379 + i32.mul + i32.const 374761395 + i32.add + i32.const 17 + i32.rotl + i32.const 668265263 + i32.mul + local.tee $0 + local.get $0 + i32.const 15 + i32.shr_u + i32.xor + i32.const -2048144777 + i32.mul + local.tee $0 + local.get $0 + i32.const 13 + i32.shr_u + i32.xor + i32.const -1028477379 + i32.mul + local.tee $0 + local.get $0 + i32.const 16 + i32.shr_u + i32.xor + call $"~lib/map/Map#find" + local.tee $0 + i32.eqz + if + i32.const 1824 + i32.const 1888 + i32.const 148 + i32.const 17 + call $~lib/builtins/abort + unreachable + end + local.get $0 + i32.load offset=4 + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + ) + (func $"~lib/map/Map#rehash" (param $0 i32) (param $1 i32) + (local $2 i32) + (local $3 i32) + (local $4 i32) + (local $5 i32) + (local $6 i32) + (local $7 i32) + (local $8 i32) + global.get $~lib/memory/__stack_pointer + i32.const 16 + i32.sub + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 3104 + i32.lt_s + if + i32.const 35904 + i32.const 35952 + i32.const 1 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store + global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store offset=8 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.const 1 + i32.add + local.tee $2 + i32.const 2 + i32.shl + call $~lib/arraybuffer/ArrayBuffer#constructor + local.tee $6 + i32.store + global.get $~lib/memory/__stack_pointer + local.get $2 + i32.const 3 + i32.shl + i32.const 3 + i32.div_s + local.tee $5 + i32.const 3 + i32.shl + call $~lib/arraybuffer/ArrayBuffer#constructor + local.tee $3 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=8 + local.get $0 + i32.load offset=8 + local.set $7 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=8 + local.get $7 + local.get $0 + i32.load offset=16 + i32.const 3 + i32.shl + i32.add + local.set $4 + local.get $3 + local.set $2 + loop $while-continue|0 + local.get $4 + local.get $7 + i32.ne + if + local.get $7 + i32.load offset=4 + i32.const 1 + i32.and + i32.eqz + if + local.get $2 + local.get $7 + i32.load16_u + local.tee $8 + i32.store16 + local.get $2 + local.get $7 + i32.load16_u offset=2 + i32.store16 offset=2 + local.get $2 + local.get $6 + local.get $1 + local.get $8 + i32.const -1028477379 + i32.mul + i32.const 374761395 + i32.add + i32.const 17 + i32.rotl + i32.const 668265263 + i32.mul + local.tee $8 + local.get $8 + i32.const 15 + i32.shr_u + i32.xor + i32.const -2048144777 + i32.mul + local.tee $8 + local.get $8 + i32.const 13 + i32.shr_u + i32.xor + i32.const -1028477379 + i32.mul + local.tee $8 + local.get $8 + i32.const 16 + i32.shr_u + i32.xor + i32.and + i32.const 2 + i32.shl + i32.add + local.tee $8 + i32.load + i32.store offset=4 + local.get $8 + local.get $2 + i32.store + local.get $2 + i32.const 8 + i32.add + local.set $2 + end + local.get $7 + i32.const 8 + i32.add + local.set $7 + br $while-continue|0 + end + end + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=8 + global.get $~lib/memory/__stack_pointer + local.get $6 + i32.store offset=12 + local.get $0 + local.get $6 + i32.store + local.get $0 + local.get $6 + i32.const 0 + call $~lib/rt/itcms/__link + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=8 + local.get $0 + local.get $1 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=8 + global.get $~lib/memory/__stack_pointer + local.get $3 + i32.store offset=12 + local.get $0 + local.get $3 + i32.store offset=8 + local.get $0 + local.get $3 + i32.const 0 + call $~lib/rt/itcms/__link + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=8 + local.get $0 + local.get $5 + i32.store offset=12 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=8 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=12 + local.get $0 + local.get $0 + i32.load offset=20 + i32.store offset=16 + global.get $~lib/memory/__stack_pointer + i32.const 16 + i32.add + global.set $~lib/memory/__stack_pointer + ) + (func $"~lib/map/Map#constructor" (param $0 i32) (result i32) + (local $1 i32) + (local $2 i32) + (local $3 i32) + (local $4 i32) + (local $5 i32) + (local $6 i32) + (local $7 i32) + (local $8 i32) + global.get $~lib/memory/__stack_pointer + i32.const 16 + i32.sub + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 3104 + i32.lt_s + if + i32.const 35904 + i32.const 35952 + i32.const 1 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store + global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store offset=8 + global.get $~lib/memory/__stack_pointer + i32.const 24 + i32.const 33 + call $~lib/rt/itcms/__new + local.tee $1 + i32.store + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + i32.const 16 + call $~lib/arraybuffer/ArrayBuffer#constructor + local.set $3 + global.get $~lib/memory/__stack_pointer + local.get $3 + i32.store offset=8 + local.get $1 + local.get $3 + i32.store + local.get $1 + local.get $3 + i32.const 0 + call $~lib/rt/itcms/__link + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + local.get $1 + i32.const 3 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + i32.const 32 + call $~lib/arraybuffer/ArrayBuffer#constructor + local.set $3 + global.get $~lib/memory/__stack_pointer + local.get $3 + i32.store offset=8 + local.get $1 + local.get $3 + i32.store offset=8 + local.get $1 + local.get $3 + i32.const 0 + call $~lib/rt/itcms/__link + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + local.get $1 + i32.const 4 + i32.store offset=12 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + local.get $1 + i32.const 0 + i32.store offset=16 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + local.get $1 + i32.const 0 + i32.store offset=20 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + local.get $0 + call $"~lib/array/Array<~lib/map/KeyValue>#get:length" + local.tee $3 + i32.const 0 + i32.gt_s + if + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + local.get $3 + local.get $1 + i32.load offset=12 + i32.ge_s + if + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + local.get $1 + local.get $3 + i32.store offset=4 + end + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=8 + local.get $1 + local.get $1 + i32.load offset=4 + i32.const 1 + i32.shl + i32.const 1 + i32.or + call $"~lib/map/Map#rehash" + loop $for-loop|0 + local.get $2 + local.get $3 + i32.lt_s + if + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=8 + local.get $0 + local.get $2 + call $"~lib/array/Array<~lib/map/KeyValue>#__get" + local.set $4 + global.get $~lib/memory/__stack_pointer + local.get $4 + i32.store offset=4 + local.get $4 + i32.load16_u + local.set $4 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=8 + local.get $0 + local.get $2 + call $"~lib/array/Array<~lib/map/KeyValue>#__get" + local.set $5 + global.get $~lib/memory/__stack_pointer + local.get $5 + i32.store offset=4 + local.get $5 + i32.load16_u offset=2 + local.set $6 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + local.get $1 + local.get $4 + local.get $4 + i32.const -1028477379 + i32.mul + i32.const 374761395 + i32.add + i32.const 17 + i32.rotl + i32.const 668265263 + i32.mul + local.tee $5 + i32.const 15 + i32.shr_u + local.get $5 + i32.xor + i32.const -2048144777 + i32.mul + local.tee $5 + i32.const 13 + i32.shr_u + local.get $5 + i32.xor + i32.const -1028477379 + i32.mul + local.tee $5 + i32.const 16 + i32.shr_u + local.get $5 + i32.xor + local.tee $7 + call $"~lib/map/Map#find" + local.tee $5 + if + local.get $5 + local.get $6 + i32.store16 offset=2 + else + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.load offset=8 + local.tee $5 + i32.store offset=12 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=8 + local.get $1 + local.get $1 + i32.load offset=16 + local.tee $8 + i32.const 1 + i32.add + i32.store offset=16 + local.get $5 + local.get $8 + i32.const 3 + i32.shl + i32.add + local.tee $5 + local.get $4 + i32.store16 + local.get $5 + local.get $6 + i32.store16 offset=2 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=8 + local.get $1 + local.get $1 + i32.load offset=20 + i32.const 1 + i32.add + i32.store offset=20 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + local.get $1 + i32.load + local.set $4 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + local.get $5 + local.get $4 + local.get $7 + local.get $1 + i32.load offset=4 + i32.and + i32.const 2 + i32.shl + i32.add + local.tee $4 + i32.load + i32.store offset=4 + local.get $4 + local.get $5 + i32.store + end + local.get $2 + i32.const 1 + i32.add + local.set $2 + br $for-loop|0 + end + end + end + global.get $~lib/memory/__stack_pointer + i32.const 16 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $1 + ) + (func $"~lib/map/Map#delete" (param $0 i32) (param $1 i32) + (local $2 i32) + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.sub + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 3104 + i32.lt_s + if + i32.const 35904 + i32.const 35952 + i32.const 1 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + local.get $0 + local.get $1 + local.get $1 + i32.const 65535 + i32.and + i32.const -1028477379 + i32.mul + i32.const 374761395 + i32.add + i32.const 17 + i32.rotl + i32.const 668265263 + i32.mul + local.tee $1 + i32.const 15 + i32.shr_u + local.get $1 + i32.xor + i32.const -2048144777 + i32.mul + local.tee $1 + i32.const 13 + i32.shr_u + local.get $1 + i32.xor + i32.const -1028477379 + i32.mul + local.tee $1 + i32.const 16 + i32.shr_u + local.get $1 + i32.xor + call $"~lib/map/Map#find" + local.tee $1 + i32.eqz + if + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.add + global.set $~lib/memory/__stack_pointer + return + end + local.get $1 + local.get $1 + i32.load offset=8 + i32.const 1 + i32.or + i32.store offset=8 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + local.get $0 + local.get $0 + i32.load offset=20 + i32.const 1 + i32.sub + i32.store offset=20 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + local.get $0 + i32.load offset=4 + i32.const 1 + i32.shr_u + local.set $1 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + local.get $1 + i32.const 1 + i32.add + i32.const 4 + local.get $0 + i32.load offset=20 + local.tee $2 + local.get $2 + i32.const 4 + i32.lt_u + select + i32.ge_u + if (result i32) + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + local.get $0 + i32.load offset=20 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + local.get $0 + i32.load offset=12 + i32.const 3 + i32.mul + i32.const 4 + i32.div_s + i32.lt_s + else + i32.const 0 + end + if + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + local.get $0 + local.get $1 + call $"~lib/map/Map#rehash" + end + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.add + global.set $~lib/memory/__stack_pointer + ) + (func $"std/map/testNumeric" + (local $0 i32) + (local $1 i32) + (local $2 i32) + (local $3 i32) + (local $4 i32) + (local $5 i32) + (local $6 i32) + (local $7 i32) + (local $8 i32) + (local $9 i32) + (local $10 i32) + global.get $~lib/memory/__stack_pointer + i32.const 40 + i32.sub + global.set $~lib/memory/__stack_pointer + block $folding-inner1 + global.get $~lib/memory/__stack_pointer + i32.const 3104 + i32.lt_s + br_if $folding-inner1 + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.const 40 + memory.fill + global.get $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 12 + i32.sub + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 3104 + i32.lt_s + br_if $folding-inner1 + global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store offset=8 + global.get $~lib/memory/__stack_pointer + i32.const 31 + i32.const 2224 + call $~lib/rt/__newArray + local.tee $4 + i32.store + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + local.get $4 + i32.store offset=8 + local.get $4 + call $"~lib/map/Map#constructor" + local.set $4 + global.get $~lib/memory/__stack_pointer + i32.const 12 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $4 + i32.store + loop $for-loop|0 + local.get $0 + i32.const 100 + i32.lt_u + if + global.get $~lib/memory/__stack_pointer + local.get $4 + i32.store offset=4 + local.get $4 + local.get $0 + call $"~lib/map/Map#has" + if + i32.const 0 + i32.const 1776 + i32.const 7 + i32.const 5 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + local.get $4 + i32.store offset=4 + local.get $4 + local.get $0 + local.get $0 + i32.const 10 + i32.add + call $"~lib/map/Map#set" + global.get $~lib/memory/__stack_pointer + local.get $4 + i32.store offset=4 + local.get $4 + local.get $0 + call $"~lib/map/Map#has" + i32.eqz + if + i32.const 0 + i32.const 1776 + i32.const 9 + i32.const 5 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + local.get $4 + i32.store offset=4 + local.get $4 + local.get $0 + call $"~lib/map/Map#get" + local.get $0 + i32.const 10 + i32.add + i32.ne + if + i32.const 0 + i32.const 1776 + i32.const 10 + i32.const 5 + call $~lib/builtins/abort + unreachable + end + local.get $0 + i32.const 1 + i32.add + local.set $0 + br $for-loop|0 + end + end + global.get $~lib/memory/__stack_pointer + local.get $4 + i32.store offset=4 + local.get $4 + call $"~lib/map/Map#get:size" + i32.const 100 + i32.ne + if + i32.const 0 + i32.const 1776 + i32.const 12 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + i32.const 0 + local.set $0 + loop $for-loop|1 + local.get $0 + i32.const 100 + i32.lt_u + if + global.get $~lib/memory/__stack_pointer + local.get $4 + i32.store offset=4 + local.get $4 + local.get $0 + call $"~lib/map/Map#has" + i32.eqz + if + i32.const 0 + i32.const 1776 + i32.const 16 + i32.const 5 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + local.get $4 + i32.store offset=4 + local.get $4 + local.get $0 + call $"~lib/map/Map#get" + local.get $0 + i32.const 10 + i32.add + i32.ne + if + i32.const 0 + i32.const 1776 + i32.const 17 + i32.const 5 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + local.get $4 + i32.store offset=4 + local.get $4 + local.get $0 + local.get $0 + i32.const 20 + i32.add + call $"~lib/map/Map#set" + global.get $~lib/memory/__stack_pointer + local.get $4 + i32.store offset=4 + local.get $4 + local.get $0 + call $"~lib/map/Map#has" + i32.eqz + if + i32.const 0 + i32.const 1776 + i32.const 19 + i32.const 5 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + local.get $4 + i32.store offset=4 + local.get $4 + local.get $0 + call $"~lib/map/Map#get" + local.get $0 + i32.const 20 + i32.add + i32.ne + if + i32.const 0 + i32.const 1776 + i32.const 20 + i32.const 5 + call $~lib/builtins/abort + unreachable + end + local.get $0 + i32.const 1 + i32.add + local.set $0 + br $for-loop|1 + end + end + global.get $~lib/memory/__stack_pointer + local.get $4 + i32.store offset=4 + local.get $4 + call $"~lib/map/Map#get:size" + i32.const 100 + i32.ne + if + i32.const 0 + i32.const 1776 + i32.const 22 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + local.get $4 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.sub + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 3104 + i32.lt_s + br_if $folding-inner1 + global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store + global.get $~lib/memory/__stack_pointer + local.get $4 + i32.store + local.get $4 + i32.load offset=8 + local.set $6 + global.get $~lib/memory/__stack_pointer + local.get $4 + i32.store + local.get $4 + i32.load offset=16 + local.set $7 + global.get $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 16 + i32.sub + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 3104 + i32.lt_s + br_if $folding-inner1 + global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store + global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store offset=8 + global.get $~lib/memory/__stack_pointer + i32.const 16 + i32.const 32 + call $~lib/rt/itcms/__new + local.tee $3 + i32.store + global.get $~lib/memory/__stack_pointer + local.get $3 + i32.store offset=4 + local.get $3 + i32.const 0 + i32.store + local.get $3 + i32.const 0 + i32.const 0 + call $~lib/rt/itcms/__link + global.get $~lib/memory/__stack_pointer + local.get $3 + i32.store offset=4 + local.get $3 + i32.const 0 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + local.get $3 + i32.store offset=4 + local.get $3 + i32.const 0 + i32.store offset=8 + global.get $~lib/memory/__stack_pointer + local.get $3 + i32.store offset=4 + local.get $3 + i32.const 0 + i32.store offset=12 + local.get $7 + i32.const 536870910 + i32.gt_u + if + i32.const 1056 + i32.const 1568 + i32.const 70 + i32.const 60 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + i32.const 8 + local.get $7 + local.get $7 + i32.const 8 + i32.le_u + select + i32.const 1 + i32.shl + local.tee $8 + i32.const 1 + call $~lib/rt/itcms/__new + local.tee $9 + i32.store offset=8 + global.get $~lib/memory/__stack_pointer + local.get $3 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + local.get $9 + i32.store offset=12 + local.get $3 + local.get $9 + i32.store + local.get $3 + local.get $9 + i32.const 0 + call $~lib/rt/itcms/__link + global.get $~lib/memory/__stack_pointer + local.get $3 + i32.store offset=4 + local.get $3 + local.get $9 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + local.get $3 + i32.store offset=4 + local.get $3 + local.get $8 + i32.store offset=8 + global.get $~lib/memory/__stack_pointer + local.get $3 + i32.store offset=4 + local.get $3 + local.get $7 + i32.store offset=12 + global.get $~lib/memory/__stack_pointer + i32.const 16 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $3 + i32.store offset=4 + i32.const 0 + local.set $0 + loop $for-loop|00 + local.get $2 + local.get $7 + i32.lt_s + if + local.get $6 + local.get $2 + i32.const 12 + i32.mul + i32.add + local.tee $8 + i32.load offset=8 + i32.const 1 + i32.and + i32.eqz + if + global.get $~lib/memory/__stack_pointer + local.get $3 + i32.store + local.get $3 + local.get $0 + local.get $8 + i32.load16_u + call $~lib/array/Array#__set + local.get $0 + i32.const 1 + i32.add + local.set $0 + end + local.get $2 + i32.const 1 + i32.add + local.set $2 + br $for-loop|00 + end + end + global.get $~lib/memory/__stack_pointer + local.get $3 + i32.store + local.get $3 + local.get $0 + call $~lib/array/Array#set:length + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $3 + i32.store offset=8 + global.get $~lib/memory/__stack_pointer + local.get $4 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + local.get $4 + call $"~lib/map/Map#values" + local.tee $2 + i32.store offset=12 + global.get $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 12 + i32.sub + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 3104 + i32.lt_s + br_if $folding-inner1 + global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store offset=8 + global.get $~lib/memory/__stack_pointer + i32.const 35 + i32.const 2256 + call $~lib/rt/__newArray + local.tee $5 + i32.store + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + local.get $5 + i32.store offset=8 + local.get $5 + call $"~lib/map/Map#constructor" + local.set $5 + global.get $~lib/memory/__stack_pointer + i32.const 12 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $5 + i32.store offset=16 + global.get $~lib/memory/__stack_pointer + call $"~lib/map/Map#constructor@varargs" + local.tee $6 + i32.store offset=20 + loop $for-loop|2 + global.get $~lib/memory/__stack_pointer + local.get $3 + i32.store offset=4 + local.get $3 + call $"~lib/array/Array<~lib/map/KeyValue>#get:length" + local.get $1 + i32.gt_s + if + global.get $~lib/memory/__stack_pointer + local.get $3 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.sub + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 3104 + i32.lt_s + br_if $folding-inner1 + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store + global.get $~lib/memory/__stack_pointer + local.get $3 + i32.store + local.get $1 + local.get $3 + i32.load offset=12 + i32.ge_u + if + i32.const 1360 + i32.const 1568 + i32.const 114 + i32.const 42 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + local.get $3 + i32.store + local.get $3 + i32.load offset=4 + local.get $1 + i32.const 1 + i32.shl + i32.add + i32.load16_u + local.set $7 + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + local.get $2 + i32.store offset=4 + local.get $2 + local.get $1 + call $~lib/array/Array#__get + local.set $8 + global.get $~lib/memory/__stack_pointer + local.get $4 + i32.store offset=4 + local.get $4 + local.get $7 + call $"~lib/map/Map#has" + i32.eqz + if + i32.const 0 + i32.const 1776 + i32.const 32 + i32.const 5 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + local.get $4 + i32.store offset=4 + local.get $4 + local.get $8 + i32.const 20 + i32.sub + call $"~lib/map/Map#has" + i32.eqz + if + i32.const 0 + i32.const 1776 + i32.const 33 + i32.const 5 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + local.get $5 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + i32.const 12 + i32.sub + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 3104 + i32.lt_s + br_if $folding-inner1 + global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store offset=8 + global.get $~lib/memory/__stack_pointer + local.get $5 + i32.store + local.get $5 + local.get $7 + local.get $7 + i32.const 65535 + i32.and + i32.const -1028477379 + i32.mul + i32.const 374761395 + i32.add + i32.const 17 + i32.rotl + i32.const 668265263 + i32.mul + local.tee $0 + local.get $0 + i32.const 15 + i32.shr_u + i32.xor + i32.const -2048144777 + i32.mul + local.tee $0 + local.get $0 + i32.const 13 + i32.shr_u + i32.xor + i32.const -1028477379 + i32.mul + local.tee $0 + local.get $0 + i32.const 16 + i32.shr_u + i32.xor + local.tee $9 + call $"~lib/map/Map#find" + local.tee $0 + if + local.get $0 + local.get $7 + i32.store16 offset=2 + else + global.get $~lib/memory/__stack_pointer + local.get $5 + i32.store + local.get $5 + i32.load offset=16 + global.get $~lib/memory/__stack_pointer + local.get $5 + i32.store + local.get $5 + i32.load offset=12 + i32.eq + if + global.get $~lib/memory/__stack_pointer + local.get $5 + i32.store + global.get $~lib/memory/__stack_pointer + local.get $5 + i32.store offset=4 + local.get $5 + i32.load offset=20 + local.set $0 + global.get $~lib/memory/__stack_pointer + local.get $5 + i32.store offset=4 + local.get $5 + local.get $0 + local.get $5 + i32.load offset=12 + i32.const 3 + i32.mul + i32.const 4 + i32.div_s + i32.lt_s + if (result i32) + global.get $~lib/memory/__stack_pointer + local.get $5 + i32.store offset=4 + local.get $5 + i32.load offset=4 + else + global.get $~lib/memory/__stack_pointer + local.get $5 + i32.store offset=4 + local.get $5 + i32.load offset=4 + i32.const 1 + i32.shl + i32.const 1 + i32.or + end + call $"~lib/map/Map#rehash" + end + global.get $~lib/memory/__stack_pointer + local.get $5 + i32.store + global.get $~lib/memory/__stack_pointer + local.get $5 + i32.load offset=8 + local.tee $10 + i32.store offset=8 + global.get $~lib/memory/__stack_pointer + local.get $5 + i32.store + global.get $~lib/memory/__stack_pointer + local.get $5 + i32.store offset=4 + local.get $5 + local.get $5 + i32.load offset=16 + local.tee $0 + i32.const 1 + i32.add + i32.store offset=16 + local.get $10 + local.get $0 + i32.const 3 + i32.shl + i32.add + local.tee $0 + local.get $7 + i32.store16 + local.get $0 + local.get $7 + i32.store16 offset=2 + global.get $~lib/memory/__stack_pointer + local.get $5 + i32.store + global.get $~lib/memory/__stack_pointer + local.get $5 + i32.store offset=4 + local.get $5 + local.get $5 + i32.load offset=20 + i32.const 1 + i32.add + i32.store offset=20 + global.get $~lib/memory/__stack_pointer + local.get $5 + i32.store + local.get $5 + i32.load + local.set $7 + global.get $~lib/memory/__stack_pointer + local.get $5 + i32.store + local.get $0 + local.get $7 + local.get $9 + local.get $5 + i32.load offset=4 + i32.and + i32.const 2 + i32.shl + i32.add + local.tee $7 + i32.load + i32.store offset=4 + local.get $7 + local.get $0 + i32.store + end + global.get $~lib/memory/__stack_pointer + i32.const 12 + i32.add + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + local.get $6 + i32.store offset=4 + local.get $6 + local.get $8 + i32.const 20 + i32.sub + local.tee $0 + local.get $0 + call $"~lib/map/Map#set" + local.get $1 + i32.const 1 + i32.add + local.set $1 + br $for-loop|2 + end + end global.get $~lib/memory/__stack_pointer - local.get $1 + local.get $5 i32.store offset=4 - local.get $1 - i32.const 4 - i32.store offset=12 + local.get $5 + call $"~lib/map/Map#get:size" + i32.const 100 + i32.ne + if + i32.const 0 + i32.const 1776 + i32.const 37 + i32.const 3 + call $~lib/builtins/abort + unreachable + end global.get $~lib/memory/__stack_pointer - local.get $1 + local.get $6 i32.store offset=4 - local.get $1 + local.get $6 + call $"~lib/map/Map#get:size" + i32.const 100 + i32.ne + if + i32.const 0 + i32.const 1776 + i32.const 38 + i32.const 3 + call $~lib/builtins/abort + unreachable + end i32.const 0 - i32.store offset=16 + local.set $0 + loop $for-loop|3 + local.get $0 + i32.const 50 + i32.lt_u + if + global.get $~lib/memory/__stack_pointer + local.get $4 + i32.store offset=4 + local.get $4 + local.get $0 + call $"~lib/map/Map#has" + i32.eqz + if + i32.const 0 + i32.const 1776 + i32.const 42 + i32.const 5 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + local.get $4 + i32.store offset=4 + local.get $4 + local.get $0 + call $"~lib/map/Map#get" + local.get $0 + i32.const 20 + i32.add + i32.ne + if + i32.const 0 + i32.const 1776 + i32.const 43 + i32.const 5 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + local.get $4 + i32.store offset=4 + local.get $4 + local.get $0 + call $"~lib/map/Map#delete" + global.get $~lib/memory/__stack_pointer + local.get $4 + i32.store offset=4 + local.get $4 + local.get $0 + call $"~lib/map/Map#has" + if + i32.const 0 + i32.const 1776 + i32.const 45 + i32.const 5 + call $~lib/builtins/abort + unreachable + end + local.get $0 + i32.const 1 + i32.add + local.set $0 + br $for-loop|3 + end + end global.get $~lib/memory/__stack_pointer - local.get $1 + local.get $4 i32.store offset=4 - local.get $1 + local.get $4 + call $"~lib/map/Map#get:size" + i32.const 50 + i32.ne + if + i32.const 0 + i32.const 1776 + i32.const 47 + i32.const 3 + call $~lib/builtins/abort + unreachable + end i32.const 0 - i32.store offset=20 - global.get $~lib/memory/__stack_pointer - i32.const 12 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $1 - i32.store - loop $for-loop|0 + local.set $0 + loop $for-loop|4 local.get $0 - i32.const 100 + i32.const 50 i32.lt_u if global.get $~lib/memory/__stack_pointer - local.get $1 + local.get $4 i32.store offset=4 - local.get $1 + local.get $4 local.get $0 call $"~lib/map/Map#has" if i32.const 0 - i32.const 1568 - i32.const 6 + i32.const 1776 + i32.const 51 i32.const 5 call $~lib/builtins/abort unreachable end global.get $~lib/memory/__stack_pointer - local.get $1 + local.get $4 i32.store offset=4 - local.get $1 + local.get $4 local.get $0 local.get $0 i32.const 10 i32.add call $"~lib/map/Map#set" global.get $~lib/memory/__stack_pointer - local.get $1 + local.get $4 i32.store offset=4 - local.get $1 + local.get $4 local.get $0 call $"~lib/map/Map#has" i32.eqz if i32.const 0 - i32.const 1568 - i32.const 8 + i32.const 1776 + i32.const 53 i32.const 5 call $~lib/builtins/abort unreachable end global.get $~lib/memory/__stack_pointer - local.get $1 + local.get $4 i32.store offset=4 - local.get $1 + local.get $4 local.get $0 - call $"~lib/map/Map#get" + call $"~lib/map/Map#delete" + global.get $~lib/memory/__stack_pointer + local.get $4 + i32.store offset=4 + local.get $4 local.get $0 - i32.const 10 - i32.add - i32.ne + call $"~lib/map/Map#has" if i32.const 0 - i32.const 1568 - i32.const 9 + i32.const 1776 + i32.const 55 i32.const 5 call $~lib/builtins/abort unreachable @@ -10624,27 +14264,155 @@ i32.const 1 i32.add local.set $0 - br $for-loop|0 + br $for-loop|4 + end + end + global.get $~lib/memory/__stack_pointer + local.get $4 + i32.store offset=4 + local.get $4 + call $"~lib/map/Map#get:size" + i32.const 50 + i32.ne + if + i32.const 0 + i32.const 1776 + i32.const 57 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + local.get $4 + i32.store offset=4 + local.get $4 + call $"~lib/map/Map#clear" + global.get $~lib/memory/__stack_pointer + local.get $4 + i32.store offset=4 + local.get $4 + call $"~lib/map/Map#get:size" + if + i32.const 0 + i32.const 1776 + i32.const 61 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + i32.const 31 + i32.const 2288 + call $~lib/rt/__newArray + local.tee $1 + i32.store offset=24 + i32.const 0 + local.set $0 + loop $for-loop|5 + local.get $0 + i32.const 100 + i32.lt_u + if + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.sub + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 3104 + i32.lt_s + br_if $folding-inner1 + global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.const 30 + call $~lib/rt/itcms/__new + local.tee $3 + i32.store + global.get $~lib/memory/__stack_pointer + local.get $3 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + local.get $3 + call $~lib/object/Object#constructor + local.tee $3 + i32.store + global.get $~lib/memory/__stack_pointer + local.get $3 + i32.store offset=4 + local.get $3 + i32.const 0 + i32.store16 + global.get $~lib/memory/__stack_pointer + local.get $3 + i32.store offset=4 + local.get $3 + i32.const 0 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $3 + i32.store offset=32 + global.get $~lib/memory/__stack_pointer + local.get $3 + i32.store offset=36 + local.get $3 + local.get $0 + i32.store16 + global.get $~lib/memory/__stack_pointer + local.get $3 + i32.store offset=36 + local.get $3 + local.get $0 + i32.const 10 + i32.add + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + local.get $3 + i32.store offset=28 + local.get $1 + local.get $3 + call $"~lib/array/Array<~lib/map/KeyValue>#push" + local.get $0 + i32.const 1 + i32.add + local.set $0 + br $for-loop|5 end end global.get $~lib/memory/__stack_pointer local.get $1 i32.store offset=4 + global.get $~lib/memory/__stack_pointer + local.get $1 + call $"~lib/map/Map#constructor" + local.tee $1 + i32.store + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 local.get $1 call $"~lib/map/Map#get:size" i32.const 100 i32.ne if i32.const 0 - i32.const 1568 - i32.const 11 + i32.const 1776 + i32.const 74 i32.const 3 call $~lib/builtins/abort unreachable end i32.const 0 local.set $0 - loop $for-loop|1 + loop $for-loop|6 local.get $0 i32.const 100 i32.lt_u @@ -10658,8 +14426,8 @@ i32.eqz if i32.const 0 - i32.const 1568 - i32.const 15 + i32.const 1776 + i32.const 76 i32.const 5 call $~lib/builtins/abort unreachable @@ -10676,8 +14444,8 @@ i32.ne if i32.const 0 - i32.const 1568 - i32.const 16 + i32.const 1776 + i32.const 77 i32.const 5 call $~lib/builtins/abort unreachable @@ -10687,39 +14455,17 @@ i32.store offset=4 local.get $1 local.get $0 - local.get $0 - i32.const 20 - i32.add - call $"~lib/map/Map#set" + call $"~lib/map/Map#delete" global.get $~lib/memory/__stack_pointer local.get $1 i32.store offset=4 local.get $1 local.get $0 call $"~lib/map/Map#has" - i32.eqz - if - i32.const 0 - i32.const 1568 - i32.const 18 - i32.const 5 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - local.get $1 - local.get $0 - call $"~lib/map/Map#get" - local.get $0 - i32.const 20 - i32.add - i32.ne if i32.const 0 - i32.const 1568 - i32.const 19 + i32.const 1776 + i32.const 79 i32.const 5 call $~lib/builtins/abort unreachable @@ -10728,7 +14474,7 @@ i32.const 1 i32.add local.set $0 - br $for-loop|1 + br $for-loop|6 end end global.get $~lib/memory/__stack_pointer @@ -10736,427 +14482,388 @@ i32.store offset=4 local.get $1 call $"~lib/map/Map#get:size" - i32.const 100 - i32.ne if i32.const 0 - i32.const 1568 - i32.const 21 + i32.const 1776 + i32.const 81 i32.const 3 call $~lib/builtins/abort unreachable end global.get $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - global.get $~lib/memory/__stack_pointer - i32.const 8 - i32.sub - global.set $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - i32.const 1896 - i32.lt_s - br_if $folding-inner1 - global.get $~lib/memory/__stack_pointer - i64.const 0 - i64.store - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store - local.get $1 - i32.load offset=8 - local.set $5 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store - local.get $1 - i32.load offset=16 - local.set $6 - global.get $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - i32.const 16 - i32.sub + i32.const 40 + i32.add global.set $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - i32.const 1896 - i32.lt_s - br_if $folding-inner1 - global.get $~lib/memory/__stack_pointer - i64.const 0 - i64.store - global.get $~lib/memory/__stack_pointer - i64.const 0 - i64.store offset=8 - global.get $~lib/memory/__stack_pointer - i32.const 16 - i32.const 16 - call $~lib/rt/itcms/__new - local.tee $7 - i32.store - global.get $~lib/memory/__stack_pointer - local.get $7 - i32.store offset=4 - local.get $7 - i32.const 0 - i32.store - local.get $7 - i32.const 0 - call $~lib/rt/itcms/__link - global.get $~lib/memory/__stack_pointer - local.get $7 - i32.store offset=4 - local.get $7 - i32.const 0 - i32.store offset=4 - global.get $~lib/memory/__stack_pointer - local.get $7 - i32.store offset=4 - local.get $7 - i32.const 0 - i32.store offset=8 - global.get $~lib/memory/__stack_pointer - local.get $7 - i32.store offset=4 - local.get $7 - i32.const 0 - i32.store offset=12 - local.get $6 - i32.const 536870910 - i32.gt_u - if - i32.const 1456 - i32.const 1728 - i32.const 70 - i32.const 60 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - i32.const 8 - local.get $6 - local.get $6 - i32.const 8 - i32.le_u - select + return + end + i32.const 35904 + i32.const 35952 + i32.const 1 + i32.const 1 + call $~lib/builtins/abort + unreachable + ) + (func $"~lib/map/Map#has" (param $0 i32) (param $1 i32) (result i32) + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.sub + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 3104 + i32.lt_s + if + i32.const 35904 + i32.const 35952 + i32.const 1 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + local.get $0 + local.get $1 + local.get $1 + i32.const -1028477379 + i32.mul + i32.const 374761397 + i32.add + i32.const 17 + i32.rotl + i32.const 668265263 + i32.mul + local.tee $0 + local.get $0 + i32.const 15 + i32.shr_u + i32.xor + i32.const -2048144777 + i32.mul + local.tee $0 + local.get $0 + i32.const 13 + i32.shr_u + i32.xor + i32.const -1028477379 + i32.mul + local.tee $0 + local.get $0 + i32.const 16 + i32.shr_u + i32.xor + call $"~lib/map/Map#find" + i32.const 0 + i32.ne + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + ) + (func $"~lib/map/Map#get" (param $0 i32) (param $1 i32) (result i32) + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.sub + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 3104 + i32.lt_s + if + i32.const 35904 + i32.const 35952 + i32.const 1 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + local.get $0 + local.get $1 + local.get $1 + i32.const -1028477379 + i32.mul + i32.const 374761397 + i32.add + i32.const 17 + i32.rotl + i32.const 668265263 + i32.mul + local.tee $0 + local.get $0 + i32.const 15 + i32.shr_u + i32.xor + i32.const -2048144777 + i32.mul + local.tee $0 + local.get $0 + i32.const 13 + i32.shr_u + i32.xor + i32.const -1028477379 + i32.mul + local.tee $0 + local.get $0 + i32.const 16 + i32.shr_u + i32.xor + call $"~lib/map/Map#find" + local.tee $0 + i32.eqz + if + i32.const 1824 + i32.const 1888 + i32.const 148 + i32.const 17 + call $~lib/builtins/abort + unreachable + end + local.get $0 + i32.load offset=4 + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + ) + (func $"~lib/map/Map#delete" (param $0 i32) (param $1 i32) + (local $2 i32) + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.sub + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 3104 + i32.lt_s + if + i32.const 35904 + i32.const 35952 i32.const 1 - i32.shl - local.tee $0 i32.const 1 - call $~lib/rt/itcms/__new - local.tee $8 - i32.store offset=8 - global.get $~lib/memory/__stack_pointer - local.get $7 - i32.store offset=4 - global.get $~lib/memory/__stack_pointer - local.get $8 - i32.store offset=12 - local.get $7 - local.get $8 - i32.store - local.get $7 - local.get $8 - call $~lib/rt/itcms/__link - global.get $~lib/memory/__stack_pointer - local.get $7 - i32.store offset=4 - local.get $7 - local.get $8 - i32.store offset=4 - global.get $~lib/memory/__stack_pointer - local.get $7 - i32.store offset=4 - local.get $7 - local.get $0 - i32.store offset=8 - global.get $~lib/memory/__stack_pointer - local.get $7 - i32.store offset=4 - local.get $7 - local.get $6 - i32.store offset=12 - global.get $~lib/memory/__stack_pointer - i32.const 16 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $7 - i32.store offset=4 - i32.const 0 - local.set $0 - loop $for-loop|00 - local.get $3 - local.get $6 - i32.lt_s - if - local.get $5 - local.get $3 - i32.const 12 - i32.mul - i32.add - local.tee $8 - i32.load offset=8 - i32.const 1 - i32.and - i32.eqz - if - global.get $~lib/memory/__stack_pointer - local.get $7 - i32.store - local.get $7 - local.get $0 - local.get $8 - i32.load16_u - call $~lib/array/Array#__set - local.get $0 - i32.const 1 - i32.add - local.set $0 - end - local.get $3 - i32.const 1 - i32.add - local.set $3 - br $for-loop|00 - end - end - global.get $~lib/memory/__stack_pointer - local.get $7 - i32.store - local.get $7 - local.get $0 - call $~lib/array/Array#set:length + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + local.get $0 + local.get $1 + local.get $1 + i32.const -1028477379 + i32.mul + i32.const 374761397 + i32.add + i32.const 17 + i32.rotl + i32.const 668265263 + i32.mul + local.tee $1 + i32.const 15 + i32.shr_u + local.get $1 + i32.xor + i32.const -2048144777 + i32.mul + local.tee $1 + i32.const 13 + i32.shr_u + local.get $1 + i32.xor + i32.const -1028477379 + i32.mul + local.tee $1 + i32.const 16 + i32.shr_u + local.get $1 + i32.xor + call $"~lib/map/Map#find" + local.tee $1 + i32.eqz + if global.get $~lib/memory/__stack_pointer i32.const 8 i32.add global.set $~lib/memory/__stack_pointer - local.get $7 - i32.store offset=8 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - global.get $~lib/memory/__stack_pointer - local.get $1 - call $"~lib/map/Map#values" - local.tee $0 - i32.store offset=12 - global.get $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - i32.const 12 - i32.sub - global.set $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - i32.const 1896 - i32.lt_s - br_if $folding-inner1 - global.get $~lib/memory/__stack_pointer - i64.const 0 - i64.store - global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.store offset=8 + return + end + local.get $1 + local.get $1 + i32.load offset=8 + i32.const 1 + i32.or + i32.store offset=8 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + local.get $0 + local.get $0 + i32.load offset=20 + i32.const 1 + i32.sub + i32.store offset=20 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + local.get $0 + i32.load offset=4 + i32.const 1 + i32.shr_u + local.set $1 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + local.get $1 + i32.const 1 + i32.add + i32.const 4 + local.get $0 + i32.load offset=20 + local.tee $2 + local.get $2 + i32.const 4 + i32.lt_u + select + i32.ge_u + if (result i32) global.get $~lib/memory/__stack_pointer - i32.const 24 - i32.const 17 - call $~lib/rt/itcms/__new - local.tee $4 + local.get $0 i32.store + local.get $0 + i32.load offset=20 global.get $~lib/memory/__stack_pointer - local.get $4 - i32.store offset=4 - i32.const 16 - call $~lib/arraybuffer/ArrayBuffer#constructor - local.set $5 - global.get $~lib/memory/__stack_pointer - local.get $5 - i32.store offset=8 - local.get $4 - local.get $5 + local.get $0 i32.store - local.get $4 - local.get $5 - call $~lib/rt/itcms/__link - global.get $~lib/memory/__stack_pointer - local.get $4 - i32.store offset=4 - local.get $4 + local.get $0 + i32.load offset=12 i32.const 3 - i32.store offset=4 - global.get $~lib/memory/__stack_pointer - local.get $4 - i32.store offset=4 - i32.const 32 - call $~lib/arraybuffer/ArrayBuffer#constructor - local.set $5 - global.get $~lib/memory/__stack_pointer - local.get $5 - i32.store offset=8 - local.get $4 - local.get $5 - i32.store offset=8 - local.get $4 - local.get $5 - call $~lib/rt/itcms/__link - global.get $~lib/memory/__stack_pointer - local.get $4 - i32.store offset=4 - local.get $4 + i32.mul i32.const 4 - i32.store offset=12 + i32.div_s + i32.lt_s + else + i32.const 0 + end + if + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + local.get $0 + local.get $1 + call $"~lib/map/Map#rehash" + end + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.add + global.set $~lib/memory/__stack_pointer + ) + (func $"std/map/testNumeric" + (local $0 i32) + (local $1 i32) + (local $2 i32) + (local $3 i32) + (local $4 i32) + (local $5 i32) + (local $6 i32) + (local $7 i32) + global.get $~lib/memory/__stack_pointer + i32.const 40 + i32.sub + global.set $~lib/memory/__stack_pointer + block $folding-inner0 global.get $~lib/memory/__stack_pointer - local.get $4 - i32.store offset=4 - local.get $4 - i32.const 0 - i32.store offset=16 + i32.const 3104 + i32.lt_s + br_if $folding-inner0 global.get $~lib/memory/__stack_pointer - local.get $4 - i32.store offset=4 - local.get $4 i32.const 0 - i32.store offset=20 - global.get $~lib/memory/__stack_pointer - i32.const 12 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $4 - i32.store offset=16 + i32.const 40 + memory.fill global.get $~lib/memory/__stack_pointer - call $"~lib/map/Map#constructor" + call $"~lib/map/Map#constructor@varargs" local.tee $3 - i32.store offset=20 - loop $for-loop|2 - global.get $~lib/memory/__stack_pointer - local.get $7 - i32.store offset=4 - local.get $7 - call $~lib/array/Array#get:length - local.get $2 - i32.gt_s + i32.store + loop $for-loop|0 + local.get $0 + i32.const 100 + i32.lt_s if global.get $~lib/memory/__stack_pointer - local.get $7 + local.get $3 i32.store offset=4 - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.sub - global.set $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - i32.const 1896 - i32.lt_s - br_if $folding-inner1 - global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.store - global.get $~lib/memory/__stack_pointer - local.get $7 - i32.store - local.get $2 - local.get $7 - i32.load offset=12 - i32.ge_u + local.get $3 + local.get $0 + call $"~lib/map/Map#has" if - i32.const 1248 - i32.const 1728 - i32.const 114 - i32.const 42 + i32.const 0 + i32.const 1776 + i32.const 7 + i32.const 5 call $~lib/builtins/abort unreachable end global.get $~lib/memory/__stack_pointer - local.get $7 - i32.store - local.get $7 - i32.load offset=4 - local.get $2 - i32.const 1 - i32.shl - i32.add - i32.load16_u - local.set $5 - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.add - global.set $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - local.get $0 + local.get $3 i32.store offset=4 + local.get $3 local.get $0 - local.get $2 - call $~lib/array/Array#__get - local.set $6 + local.get $0 + i32.const 10 + i32.add + call $"~lib/map/Map#set" global.get $~lib/memory/__stack_pointer - local.get $1 + local.get $3 i32.store offset=4 - local.get $1 - local.get $5 - call $"~lib/map/Map#has" + local.get $3 + local.get $0 + call $"~lib/map/Map#has" i32.eqz if i32.const 0 - i32.const 1568 - i32.const 31 + i32.const 1776 + i32.const 9 i32.const 5 call $~lib/builtins/abort unreachable end global.get $~lib/memory/__stack_pointer - local.get $1 + local.get $3 i32.store offset=4 - local.get $1 - local.get $6 - i32.const 20 - i32.sub - call $"~lib/map/Map#has" - i32.eqz + local.get $3 + local.get $0 + call $"~lib/map/Map#get" + local.get $0 + i32.const 10 + i32.add + i32.ne if i32.const 0 - i32.const 1568 - i32.const 32 + i32.const 1776 + i32.const 10 i32.const 5 call $~lib/builtins/abort unreachable end - global.get $~lib/memory/__stack_pointer - local.get $4 - i32.store offset=4 - local.get $4 - local.get $5 - local.get $5 - call $"~lib/map/Map#set" - global.get $~lib/memory/__stack_pointer - local.get $3 - i32.store offset=4 - local.get $3 - local.get $6 - i32.const 20 - i32.sub - local.tee $5 - local.get $5 - call $"~lib/map/Map#set" - local.get $2 + local.get $0 i32.const 1 i32.add - local.set $2 - br $for-loop|2 + local.set $0 + br $for-loop|0 end end global.get $~lib/memory/__stack_pointer - local.get $4 - i32.store offset=4 - local.get $4 - call $"~lib/map/Map#get:size" - i32.const 100 - i32.ne - if - i32.const 0 - i32.const 1568 - i32.const 36 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer local.get $3 i32.store offset=4 local.get $3 @@ -11165,155 +14872,90 @@ i32.ne if i32.const 0 - i32.const 1568 - i32.const 37 + i32.const 1776 + i32.const 12 i32.const 3 call $~lib/builtins/abort unreachable end i32.const 0 local.set $0 - loop $for-loop|3 + loop $for-loop|1 local.get $0 - i32.const 50 - i32.lt_u + i32.const 100 + i32.lt_s if global.get $~lib/memory/__stack_pointer - local.get $1 + local.get $3 i32.store offset=4 - local.get $1 + local.get $3 local.get $0 - call $"~lib/map/Map#has" + call $"~lib/map/Map#has" i32.eqz if i32.const 0 - i32.const 1568 - i32.const 41 - i32.const 5 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - local.get $1 - local.get $0 - call $"~lib/map/Map#get" - local.get $0 - i32.const 20 - i32.add - i32.ne - if - i32.const 0 - i32.const 1568 - i32.const 42 + i32.const 1776 + i32.const 16 i32.const 5 call $~lib/builtins/abort unreachable end global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - local.get $1 - local.get $0 - call $"~lib/map/Map#delete" - global.get $~lib/memory/__stack_pointer - local.get $1 + local.get $3 i32.store offset=4 - local.get $1 - local.get $0 - call $"~lib/map/Map#has" - if - i32.const 0 - i32.const 1568 - i32.const 44 - i32.const 5 - call $~lib/builtins/abort - unreachable - end + local.get $3 local.get $0 - i32.const 1 - i32.add - local.set $0 - br $for-loop|3 - end - end - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - local.get $1 - call $"~lib/map/Map#get:size" - i32.const 50 - i32.ne - if - i32.const 0 - i32.const 1568 - i32.const 46 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - i32.const 0 - local.set $0 - loop $for-loop|4 - local.get $0 - i32.const 50 - i32.lt_u - if - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - local.get $1 + call $"~lib/map/Map#get" local.get $0 - call $"~lib/map/Map#has" + i32.const 10 + i32.add + i32.ne if i32.const 0 - i32.const 1568 - i32.const 50 + i32.const 1776 + i32.const 17 i32.const 5 call $~lib/builtins/abort unreachable end global.get $~lib/memory/__stack_pointer - local.get $1 + local.get $3 i32.store offset=4 - local.get $1 + local.get $3 local.get $0 local.get $0 - i32.const 10 + i32.const 20 i32.add - call $"~lib/map/Map#set" + call $"~lib/map/Map#set" global.get $~lib/memory/__stack_pointer - local.get $1 + local.get $3 i32.store offset=4 - local.get $1 + local.get $3 local.get $0 - call $"~lib/map/Map#has" + call $"~lib/map/Map#has" i32.eqz if i32.const 0 - i32.const 1568 - i32.const 52 + i32.const 1776 + i32.const 19 i32.const 5 call $~lib/builtins/abort unreachable end global.get $~lib/memory/__stack_pointer - local.get $1 + local.get $3 i32.store offset=4 - local.get $1 + local.get $3 local.get $0 - call $"~lib/map/Map#delete" - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - local.get $1 + call $"~lib/map/Map#get" local.get $0 - call $"~lib/map/Map#has" + i32.const 20 + i32.add + i32.ne if i32.const 0 - i32.const 1568 - i32.const 54 + i32.const 1776 + i32.const 20 i32.const 5 call $~lib/builtins/abort unreachable @@ -11322,404 +14964,288 @@ i32.const 1 i32.add local.set $0 - br $for-loop|4 + br $for-loop|1 end end global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - local.get $1 - call $"~lib/map/Map#get:size" - i32.const 50 - i32.ne - if - i32.const 0 - i32.const 1568 - i32.const 56 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - local.get $1 - call $"~lib/map/Map#clear" - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - local.get $1 - call $"~lib/map/Map#get:size" - if - i32.const 0 - i32.const 1568 - i32.const 60 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - i32.const 24 - i32.add - global.set $~lib/memory/__stack_pointer - return - end - i32.const 34688 - i32.const 34736 - i32.const 1 - i32.const 1 - call $~lib/builtins/abort - unreachable - ) - (func $"~lib/map/Map#has" (param $0 i32) (param $1 i32) (result i32) - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.sub - global.set $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - i32.const 1896 - i32.lt_s - if - i32.const 34688 - i32.const 34736 - i32.const 1 - i32.const 1 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.store - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store - local.get $0 - local.get $1 - local.get $1 - i32.const -1028477379 - i32.mul - i32.const 374761397 - i32.add - i32.const 17 - i32.rotl - i32.const 668265263 - i32.mul - local.tee $0 - local.get $0 - i32.const 15 - i32.shr_u - i32.xor - i32.const -2048144777 - i32.mul - local.tee $0 - local.get $0 - i32.const 13 - i32.shr_u - i32.xor - i32.const -1028477379 - i32.mul - local.tee $0 - local.get $0 - i32.const 16 - i32.shr_u - i32.xor - call $"~lib/map/Map#find" - i32.const 0 - i32.ne - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.add - global.set $~lib/memory/__stack_pointer - ) - (func $"~lib/map/Map#get" (param $0 i32) (param $1 i32) (result i32) - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.sub - global.set $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - i32.const 1896 - i32.lt_s - if - i32.const 34688 - i32.const 34736 - i32.const 1 - i32.const 1 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.store - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store - local.get $0 - local.get $1 - local.get $1 - i32.const -1028477379 - i32.mul - i32.const 374761397 - i32.add - i32.const 17 - i32.rotl - i32.const 668265263 - i32.mul - local.tee $0 - local.get $0 - i32.const 15 - i32.shr_u - i32.xor - i32.const -2048144777 - i32.mul - local.tee $0 - local.get $0 - i32.const 13 - i32.shr_u - i32.xor - i32.const -1028477379 - i32.mul - local.tee $0 - local.get $0 - i32.const 16 - i32.shr_u - i32.xor - call $"~lib/map/Map#find" - local.tee $0 - i32.eqz - if - i32.const 1616 - i32.const 1680 - i32.const 105 - i32.const 17 - call $~lib/builtins/abort - unreachable - end - local.get $0 - i32.load offset=4 - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.add - global.set $~lib/memory/__stack_pointer - ) - (func $"~lib/map/Map#delete" (param $0 i32) (param $1 i32) - (local $2 i32) - global.get $~lib/memory/__stack_pointer - i32.const 8 - i32.sub - global.set $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - i32.const 1896 - i32.lt_s - if - i32.const 34688 - i32.const 34736 - i32.const 1 - i32.const 1 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - i64.const 0 - i64.store - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store - local.get $0 - local.get $1 - local.get $1 - i32.const -1028477379 - i32.mul - i32.const 374761397 - i32.add - i32.const 17 - i32.rotl - i32.const 668265263 - i32.mul - local.tee $1 - i32.const 15 - i32.shr_u - local.get $1 - i32.xor - i32.const -2048144777 - i32.mul - local.tee $1 - i32.const 13 - i32.shr_u - local.get $1 - i32.xor - i32.const -1028477379 - i32.mul - local.tee $1 - i32.const 16 - i32.shr_u - local.get $1 - i32.xor - call $"~lib/map/Map#find" - local.tee $1 - i32.eqz - if + local.get $3 + i32.store offset=4 + local.get $3 + call $"~lib/map/Map#get:size" + i32.const 100 + i32.ne + if + i32.const 0 + i32.const 1776 + i32.const 22 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + local.get $3 + i32.store offset=4 global.get $~lib/memory/__stack_pointer i32.const 8 - i32.add + i32.sub global.set $~lib/memory/__stack_pointer - return - end - local.get $1 - local.get $1 - i32.load offset=8 - i32.const 1 - i32.or - i32.store offset=8 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 - local.get $0 - i32.load offset=20 - i32.const 1 - i32.sub - i32.store offset=20 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store - local.get $0 - i32.load offset=4 - i32.const 1 - i32.shr_u - local.set $1 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store - local.get $1 - i32.const 1 - i32.add - i32.const 4 - local.get $0 - i32.load offset=20 - local.tee $2 - local.get $2 - i32.const 4 - i32.lt_u - select - i32.ge_u - if (result i32) global.get $~lib/memory/__stack_pointer - local.get $0 + i32.const 3104 + i32.lt_s + br_if $folding-inner0 + global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store + global.get $~lib/memory/__stack_pointer + local.get $3 i32.store - local.get $0 - i32.load offset=20 + local.get $3 + i32.load offset=8 + local.set $5 global.get $~lib/memory/__stack_pointer - local.get $0 + local.get $3 i32.store - local.get $0 - i32.load offset=12 - i32.const 3 - i32.mul - i32.const 4 - i32.div_s - i32.lt_s - else + global.get $~lib/memory/__stack_pointer + local.get $3 + i32.load offset=16 + local.tee $6 + call $~lib/array/Array#constructor + local.tee $2 + i32.store offset=4 i32.const 0 - end - if + local.set $0 + loop $for-loop|00 + local.get $1 + local.get $6 + i32.lt_s + if + local.get $5 + local.get $1 + i32.const 12 + i32.mul + i32.add + local.tee $7 + i32.load offset=8 + i32.const 1 + i32.and + i32.eqz + if + global.get $~lib/memory/__stack_pointer + local.get $2 + i32.store + local.get $2 + local.get $0 + local.get $7 + i32.load + call $~lib/array/Array#__set + local.get $0 + i32.const 1 + i32.add + local.set $0 + end + local.get $1 + i32.const 1 + i32.add + local.set $1 + br $for-loop|00 + end + end global.get $~lib/memory/__stack_pointer - local.get $0 + local.get $2 i32.store + local.get $2 local.get $0 - local.get $1 - call $"~lib/map/Map#rehash" - end - global.get $~lib/memory/__stack_pointer - i32.const 8 - i32.add - global.set $~lib/memory/__stack_pointer - ) - (func $"std/map/testNumeric" - (local $0 i32) - (local $1 i32) - (local $2 i32) - (local $3 i32) - (local $4 i32) - (local $5 i32) - (local $6 i32) - (local $7 i32) - global.get $~lib/memory/__stack_pointer - i32.const 24 - i32.sub - global.set $~lib/memory/__stack_pointer - block $folding-inner0 + call $~lib/array/Array#set:length global.get $~lib/memory/__stack_pointer - i32.const 1896 - i32.lt_s - br_if $folding-inner0 + i32.const 8 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $2 + i32.store offset=8 + global.get $~lib/memory/__stack_pointer + local.get $3 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + local.get $3 + call $"~lib/map/Map#values" + local.tee $0 + i32.store offset=12 + global.get $~lib/memory/__stack_pointer + call $"~lib/map/Map#constructor@varargs" + local.tee $4 + i32.store offset=16 + global.get $~lib/memory/__stack_pointer + call $"~lib/map/Map#constructor@varargs" + local.tee $5 + i32.store offset=20 + i32.const 0 + local.set $1 + loop $for-loop|2 + global.get $~lib/memory/__stack_pointer + local.get $2 + i32.store offset=4 + local.get $2 + call $"~lib/array/Array<~lib/map/KeyValue>#get:length" + local.get $1 + i32.gt_s + if + global.get $~lib/memory/__stack_pointer + local.get $2 + i32.store offset=4 + local.get $2 + local.get $1 + call $~lib/array/Array#__get + local.set $6 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + local.get $0 + local.get $1 + call $~lib/array/Array#__get + local.set $7 + global.get $~lib/memory/__stack_pointer + local.get $3 + i32.store offset=4 + local.get $3 + local.get $6 + call $"~lib/map/Map#has" + i32.eqz + if + i32.const 0 + i32.const 1776 + i32.const 32 + i32.const 5 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + local.get $3 + i32.store offset=4 + local.get $3 + local.get $7 + i32.const 20 + i32.sub + call $"~lib/map/Map#has" + i32.eqz + if + i32.const 0 + i32.const 1776 + i32.const 33 + i32.const 5 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + local.get $4 + i32.store offset=4 + local.get $4 + local.get $6 + local.get $6 + call $"~lib/map/Map#set" + global.get $~lib/memory/__stack_pointer + local.get $5 + i32.store offset=4 + local.get $5 + local.get $7 + i32.const 20 + i32.sub + local.tee $6 + local.get $6 + call $"~lib/map/Map#set" + local.get $1 + i32.const 1 + i32.add + local.set $1 + br $for-loop|2 + end + end + global.get $~lib/memory/__stack_pointer + local.get $4 + i32.store offset=4 + local.get $4 + call $"~lib/map/Map#get:size" + i32.const 100 + i32.ne + if + i32.const 0 + i32.const 1776 + i32.const 37 + i32.const 3 + call $~lib/builtins/abort + unreachable + end global.get $~lib/memory/__stack_pointer + local.get $5 + i32.store offset=4 + local.get $5 + call $"~lib/map/Map#get:size" + i32.const 100 + i32.ne + if + i32.const 0 + i32.const 1776 + i32.const 38 + i32.const 3 + call $~lib/builtins/abort + unreachable + end i32.const 0 - i32.const 24 - memory.fill - global.get $~lib/memory/__stack_pointer - call $"~lib/map/Map#constructor" - local.tee $1 - i32.store - loop $for-loop|0 + local.set $0 + loop $for-loop|3 local.get $0 - i32.const 100 + i32.const 50 i32.lt_s if global.get $~lib/memory/__stack_pointer - local.get $1 + local.get $3 i32.store offset=4 - local.get $1 + local.get $3 local.get $0 call $"~lib/map/Map#has" + i32.eqz if i32.const 0 - i32.const 1568 - i32.const 6 + i32.const 1776 + i32.const 42 i32.const 5 call $~lib/builtins/abort unreachable end global.get $~lib/memory/__stack_pointer - local.get $1 + local.get $3 i32.store offset=4 - local.get $1 + local.get $3 local.get $0 + call $"~lib/map/Map#get" local.get $0 - i32.const 10 + i32.const 20 i32.add - call $"~lib/map/Map#set" - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - local.get $1 - local.get $0 - call $"~lib/map/Map#has" - i32.eqz + i32.ne if i32.const 0 - i32.const 1568 - i32.const 8 + i32.const 1776 + i32.const 43 i32.const 5 call $~lib/builtins/abort unreachable end global.get $~lib/memory/__stack_pointer - local.get $1 + local.get $3 i32.store offset=4 - local.get $1 + local.get $3 local.get $0 - call $"~lib/map/Map#get" + call $"~lib/map/Map#delete" + global.get $~lib/memory/__stack_pointer + local.get $3 + i32.store offset=4 + local.get $3 local.get $0 - i32.const 10 - i32.add - i32.ne + call $"~lib/map/Map#has" if i32.const 0 - i32.const 1568 - i32.const 9 + i32.const 1776 + i32.const 45 i32.const 5 call $~lib/builtins/abort unreachable @@ -11728,102 +15254,85 @@ i32.const 1 i32.add local.set $0 - br $for-loop|0 + br $for-loop|3 end end global.get $~lib/memory/__stack_pointer - local.get $1 + local.get $3 i32.store offset=4 - local.get $1 + local.get $3 call $"~lib/map/Map#get:size" - i32.const 100 + i32.const 50 i32.ne if i32.const 0 - i32.const 1568 - i32.const 11 + i32.const 1776 + i32.const 47 i32.const 3 call $~lib/builtins/abort unreachable end i32.const 0 local.set $0 - loop $for-loop|1 + loop $for-loop|4 local.get $0 - i32.const 100 + i32.const 50 i32.lt_s if global.get $~lib/memory/__stack_pointer - local.get $1 + local.get $3 i32.store offset=4 - local.get $1 + local.get $3 local.get $0 call $"~lib/map/Map#has" - i32.eqz if i32.const 0 - i32.const 1568 - i32.const 15 + i32.const 1776 + i32.const 51 i32.const 5 call $~lib/builtins/abort unreachable end global.get $~lib/memory/__stack_pointer - local.get $1 + local.get $3 i32.store offset=4 - local.get $1 + local.get $3 local.get $0 - call $"~lib/map/Map#get" local.get $0 i32.const 10 i32.add - i32.ne - if - i32.const 0 - i32.const 1568 - i32.const 16 - i32.const 5 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - local.get $1 - local.get $0 - local.get $0 - i32.const 20 - i32.add call $"~lib/map/Map#set" global.get $~lib/memory/__stack_pointer - local.get $1 + local.get $3 i32.store offset=4 - local.get $1 + local.get $3 local.get $0 call $"~lib/map/Map#has" i32.eqz if i32.const 0 - i32.const 1568 - i32.const 18 + i32.const 1776 + i32.const 53 i32.const 5 call $~lib/builtins/abort unreachable end global.get $~lib/memory/__stack_pointer - local.get $1 + local.get $3 i32.store offset=4 - local.get $1 + local.get $3 local.get $0 - call $"~lib/map/Map#get" + call $"~lib/map/Map#delete" + global.get $~lib/memory/__stack_pointer + local.get $3 + i32.store offset=4 + local.get $3 local.get $0 - i32.const 20 - i32.add - i32.ne + call $"~lib/map/Map#has" if i32.const 0 - i32.const 1568 - i32.const 19 + i32.const 1776 + i32.const 55 i32.const 5 call $~lib/builtins/abort unreachable @@ -11832,157 +15341,170 @@ i32.const 1 i32.add local.set $0 - br $for-loop|1 + br $for-loop|4 end end global.get $~lib/memory/__stack_pointer - local.get $1 + local.get $3 i32.store offset=4 - local.get $1 + local.get $3 call $"~lib/map/Map#get:size" - i32.const 100 + i32.const 50 i32.ne if i32.const 0 - i32.const 1568 - i32.const 21 + i32.const 1776 + i32.const 57 i32.const 3 call $~lib/builtins/abort unreachable end global.get $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - local.get $1 + local.get $3 i32.store offset=4 + local.get $3 + call $"~lib/map/Map#clear" global.get $~lib/memory/__stack_pointer - i32.const 8 - i32.sub - global.set $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - i32.const 1896 - i32.lt_s - br_if $folding-inner0 - global.get $~lib/memory/__stack_pointer - i64.const 0 - i64.store - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store - local.get $1 - i32.load offset=8 - local.set $5 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.load offset=16 - local.tee $6 - call $~lib/array/Array#constructor - local.tee $2 + local.get $3 i32.store offset=4 + local.get $3 + call $"~lib/map/Map#get:size" + if + i32.const 0 + i32.const 1776 + i32.const 61 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + i32.const 14 + i32.const 2320 + call $~lib/rt/__newArray + local.tee $1 + i32.store offset=24 i32.const 0 local.set $0 - loop $for-loop|00 - local.get $3 - local.get $6 + loop $for-loop|5 + local.get $0 + i32.const 100 i32.lt_s if - local.get $5 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.sub + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 3104 + i32.lt_s + br_if $folding-inner0 + global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.const 13 + call $~lib/rt/itcms/__new + local.tee $3 + i32.store + global.get $~lib/memory/__stack_pointer local.get $3 - i32.const 12 - i32.mul + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + local.get $3 + call $~lib/object/Object#constructor + local.tee $3 + i32.store + global.get $~lib/memory/__stack_pointer + local.get $3 + i32.store offset=4 + local.get $3 + i32.const 0 + i32.store + global.get $~lib/memory/__stack_pointer + local.get $3 + i32.store offset=4 + local.get $3 + i32.const 0 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + i32.const 8 i32.add - local.tee $7 - i32.load offset=8 - i32.const 1 - i32.and - i32.eqz - if - global.get $~lib/memory/__stack_pointer - local.get $2 - i32.store - local.get $2 - local.get $0 - local.get $7 - i32.load - call $~lib/array/Array#__set - local.get $0 - i32.const 1 - i32.add - local.set $0 - end + global.set $~lib/memory/__stack_pointer + local.get $3 + i32.store offset=32 + global.get $~lib/memory/__stack_pointer local.get $3 + i32.store offset=36 + local.get $3 + local.get $0 + i32.store + global.get $~lib/memory/__stack_pointer + local.get $3 + i32.store offset=36 + local.get $3 + local.get $0 + i32.const 10 + i32.add + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + local.get $3 + i32.store offset=28 + local.get $1 + local.get $3 + call $"~lib/array/Array<~lib/map/KeyValue>#push" + local.get $0 i32.const 1 i32.add - local.set $3 - br $for-loop|00 + local.set $0 + br $for-loop|5 end end global.get $~lib/memory/__stack_pointer - local.get $2 - i32.store - local.get $2 - local.get $0 - call $~lib/array/Array#set:length - global.get $~lib/memory/__stack_pointer - i32.const 8 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $2 - i32.store offset=8 - global.get $~lib/memory/__stack_pointer local.get $1 i32.store offset=4 global.get $~lib/memory/__stack_pointer local.get $1 - call $"~lib/map/Map#values" - local.tee $0 - i32.store offset=12 - global.get $~lib/memory/__stack_pointer call $"~lib/map/Map#constructor" - local.tee $4 - i32.store offset=16 + local.tee $1 + i32.store global.get $~lib/memory/__stack_pointer - call $"~lib/map/Map#constructor" - local.tee $5 - i32.store offset=20 + local.get $1 + i32.store offset=4 + local.get $1 + call $"~lib/map/Map#get:size" + i32.const 100 + i32.ne + if + i32.const 0 + i32.const 1776 + i32.const 74 + i32.const 3 + call $~lib/builtins/abort + unreachable + end i32.const 0 - local.set $3 - loop $for-loop|2 - global.get $~lib/memory/__stack_pointer - local.get $2 - i32.store offset=4 - local.get $2 - call $~lib/array/Array#get:length - local.get $3 - i32.gt_s + local.set $0 + loop $for-loop|6 + local.get $0 + i32.const 100 + i32.lt_s if - global.get $~lib/memory/__stack_pointer - local.get $2 - i32.store offset=4 - local.get $2 - local.get $3 - call $~lib/array/Array#__get - local.set $6 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 - local.get $3 - call $~lib/array/Array#__get - local.set $7 global.get $~lib/memory/__stack_pointer local.get $1 i32.store offset=4 local.get $1 - local.get $6 + local.get $0 call $"~lib/map/Map#has" i32.eqz if i32.const 0 - i32.const 1568 - i32.const 31 + i32.const 1776 + i32.const 76 i32.const 5 call $~lib/builtins/abort unreachable @@ -11991,285 +15513,638 @@ local.get $1 i32.store offset=4 local.get $1 - local.get $7 - i32.const 20 - i32.sub - call $"~lib/map/Map#has" - i32.eqz + local.get $0 + call $"~lib/map/Map#get" + local.get $0 + i32.const 10 + i32.add + i32.ne if i32.const 0 - i32.const 1568 - i32.const 32 + i32.const 1776 + i32.const 77 i32.const 5 call $~lib/builtins/abort unreachable end global.get $~lib/memory/__stack_pointer - local.get $4 + local.get $1 i32.store offset=4 - local.get $4 - local.get $6 - local.get $6 - call $"~lib/map/Map#set" + local.get $1 + local.get $0 + call $"~lib/map/Map#delete" global.get $~lib/memory/__stack_pointer - local.get $5 + local.get $1 i32.store offset=4 - local.get $5 + local.get $1 + local.get $0 + call $"~lib/map/Map#has" + if + i32.const 0 + i32.const 1776 + i32.const 79 + i32.const 5 + call $~lib/builtins/abort + unreachable + end + local.get $0 + i32.const 1 + i32.add + local.set $0 + br $for-loop|6 + end + end + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + local.get $1 + call $"~lib/map/Map#get:size" + if + i32.const 0 + i32.const 1776 + i32.const 81 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + i32.const 40 + i32.add + global.set $~lib/memory/__stack_pointer + return + end + i32.const 35904 + i32.const 35952 + i32.const 1 + i32.const 1 + call $~lib/builtins/abort + unreachable + ) + (func $"~lib/map/Map#rehash" (param $0 i32) (param $1 i32) + (local $2 i32) + (local $3 i32) + (local $4 i32) + (local $5 i32) + (local $6 i32) + (local $7 i32) + (local $8 i32) + global.get $~lib/memory/__stack_pointer + i32.const 16 + i32.sub + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 3104 + i32.lt_s + if + i32.const 35904 + i32.const 35952 + i32.const 1 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store + global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store offset=8 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.const 1 + i32.add + local.tee $2 + i32.const 2 + i32.shl + call $~lib/arraybuffer/ArrayBuffer#constructor + local.tee $6 + i32.store + global.get $~lib/memory/__stack_pointer + local.get $2 + i32.const 3 + i32.shl + i32.const 3 + i32.div_s + local.tee $5 + i32.const 12 + i32.mul + call $~lib/arraybuffer/ArrayBuffer#constructor + local.tee $3 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=8 + local.get $0 + i32.load offset=8 + local.set $7 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=8 + local.get $7 + local.get $0 + i32.load offset=16 + i32.const 12 + i32.mul + i32.add + local.set $4 + local.get $3 + local.set $2 + loop $while-continue|0 + local.get $4 + local.get $7 + i32.ne + if + local.get $7 + i32.load offset=8 + i32.const 1 + i32.and + i32.eqz + if + local.get $2 local.get $7 - i32.const 20 - i32.sub - local.tee $6 + i32.load + local.tee $8 + i32.store + local.get $2 + local.get $7 + i32.load offset=4 + i32.store offset=4 + local.get $2 local.get $6 - call $"~lib/map/Map#set" - local.get $3 - i32.const 1 + local.get $1 + local.get $8 + i32.const -1028477379 + i32.mul + i32.const 374761397 + i32.add + i32.const 17 + i32.rotl + i32.const 668265263 + i32.mul + local.tee $8 + local.get $8 + i32.const 15 + i32.shr_u + i32.xor + i32.const -2048144777 + i32.mul + local.tee $8 + local.get $8 + i32.const 13 + i32.shr_u + i32.xor + i32.const -1028477379 + i32.mul + local.tee $8 + local.get $8 + i32.const 16 + i32.shr_u + i32.xor + i32.and + i32.const 2 + i32.shl i32.add - local.set $3 - br $for-loop|2 + local.tee $8 + i32.load + i32.store offset=8 + local.get $8 + local.get $2 + i32.store + local.get $2 + i32.const 12 + i32.add + local.set $2 end + local.get $7 + i32.const 12 + i32.add + local.set $7 + br $while-continue|0 end - global.get $~lib/memory/__stack_pointer - local.get $4 - i32.store offset=4 - local.get $4 - call $"~lib/map/Map#get:size" - i32.const 100 - i32.ne - if - i32.const 0 - i32.const 1568 - i32.const 36 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - local.get $5 - i32.store offset=4 - local.get $5 - call $"~lib/map/Map#get:size" - i32.const 100 - i32.ne + end + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=8 + global.get $~lib/memory/__stack_pointer + local.get $6 + i32.store offset=12 + local.get $0 + local.get $6 + i32.store + local.get $0 + local.get $6 + i32.const 0 + call $~lib/rt/itcms/__link + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=8 + local.get $0 + local.get $1 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=8 + global.get $~lib/memory/__stack_pointer + local.get $3 + i32.store offset=12 + local.get $0 + local.get $3 + i32.store offset=8 + local.get $0 + local.get $3 + i32.const 0 + call $~lib/rt/itcms/__link + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=8 + local.get $0 + local.get $5 + i32.store offset=12 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=8 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=12 + local.get $0 + local.get $0 + i32.load offset=20 + i32.store offset=16 + global.get $~lib/memory/__stack_pointer + i32.const 16 + i32.add + global.set $~lib/memory/__stack_pointer + ) + (func $"~lib/map/Map#find" (param $0 i32) (param $1 i32) (param $2 i32) (result i32) + (local $3 i32) + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.sub + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 3104 + i32.lt_s + if + i32.const 35904 + i32.const 35952 + i32.const 1 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + local.get $0 + i32.load + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + local.get $2 + local.get $0 + i32.load offset=4 + i32.and + i32.const 2 + i32.shl + i32.add + i32.load + local.set $0 + loop $while-continue|0 + local.get $0 if - i32.const 0 - i32.const 1568 - i32.const 37 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - i32.const 0 - local.set $0 - loop $for-loop|3 local.get $0 - i32.const 50 - i32.lt_s - if - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 + i32.load offset=8 + local.tee $2 + i32.const 1 + i32.and + if (result i32) + i32.const 0 + else local.get $1 local.get $0 - call $"~lib/map/Map#has" - i32.eqz - if - i32.const 0 - i32.const 1568 - i32.const 41 - i32.const 5 - call $~lib/builtins/abort - unreachable - end + i32.load + i32.eq + end + if global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - local.get $1 - local.get $0 - call $"~lib/map/Map#get" - local.get $0 - i32.const 20 + i32.const 4 i32.add - i32.ne - if - i32.const 0 - i32.const 1568 - i32.const 42 - i32.const 5 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - local.get $1 - local.get $0 - call $"~lib/map/Map#delete" - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - local.get $1 - local.get $0 - call $"~lib/map/Map#has" - if - i32.const 0 - i32.const 1568 - i32.const 44 - i32.const 5 - call $~lib/builtins/abort - unreachable - end + global.set $~lib/memory/__stack_pointer local.get $0 - i32.const 1 - i32.add - local.set $0 - br $for-loop|3 + return end + local.get $2 + i32.const -2 + i32.and + local.set $0 + br $while-continue|0 end + end + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + i32.const 0 + ) + (func $"~lib/map/Map#constructor" (param $0 i32) (result i32) + (local $1 i32) + (local $2 i32) + (local $3 i32) + (local $4 i32) + (local $5 i32) + (local $6 i32) + (local $7 i32) + (local $8 i32) + global.get $~lib/memory/__stack_pointer + i32.const 16 + i32.sub + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 3104 + i32.lt_s + if + i32.const 35904 + i32.const 35952 + i32.const 1 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store + global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store offset=8 + global.get $~lib/memory/__stack_pointer + i32.const 24 + i32.const 36 + call $~lib/rt/itcms/__new + local.tee $1 + i32.store + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + i32.const 16 + call $~lib/arraybuffer/ArrayBuffer#constructor + local.set $3 + global.get $~lib/memory/__stack_pointer + local.get $3 + i32.store offset=8 + local.get $1 + local.get $3 + i32.store + local.get $1 + local.get $3 + i32.const 0 + call $~lib/rt/itcms/__link + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + local.get $1 + i32.const 3 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + i32.const 48 + call $~lib/arraybuffer/ArrayBuffer#constructor + local.set $3 + global.get $~lib/memory/__stack_pointer + local.get $3 + i32.store offset=8 + local.get $1 + local.get $3 + i32.store offset=8 + local.get $1 + local.get $3 + i32.const 0 + call $~lib/rt/itcms/__link + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + local.get $1 + i32.const 4 + i32.store offset=12 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + local.get $1 + i32.const 0 + i32.store offset=16 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + local.get $1 + i32.const 0 + i32.store offset=20 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + local.get $0 + call $"~lib/array/Array<~lib/map/KeyValue>#get:length" + local.tee $3 + i32.const 0 + i32.gt_s + if global.get $~lib/memory/__stack_pointer local.get $1 i32.store offset=4 + local.get $3 local.get $1 - call $"~lib/map/Map#get:size" - i32.const 50 - i32.ne + i32.load offset=12 + i32.ge_s if - i32.const 0 - i32.const 1568 - i32.const 46 - i32.const 3 - call $~lib/builtins/abort - unreachable + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + local.get $1 + local.get $3 + i32.store offset=4 end - i32.const 0 - local.set $0 - loop $for-loop|4 - local.get $0 - i32.const 50 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=8 + local.get $1 + local.get $1 + i32.load offset=4 + i32.const 1 + i32.shl + i32.const 1 + i32.or + call $"~lib/map/Map#rehash" + loop $for-loop|0 + local.get $2 + local.get $3 i32.lt_s if global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - local.get $1 - local.get $0 - call $"~lib/map/Map#has" - if - i32.const 0 - i32.const 1568 - i32.const 50 - i32.const 5 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - local.get $1 local.get $0 + i32.store offset=8 local.get $0 - i32.const 10 - i32.add - call $"~lib/map/Map#set" + local.get $2 + call $"~lib/array/Array<~lib/map/KeyValue>#__get" + local.set $4 global.get $~lib/memory/__stack_pointer - local.get $1 + local.get $4 i32.store offset=4 - local.get $1 + local.get $4 + i32.load + local.set $4 + global.get $~lib/memory/__stack_pointer local.get $0 - call $"~lib/map/Map#has" - i32.eqz - if - i32.const 0 - i32.const 1568 - i32.const 52 - i32.const 5 - call $~lib/builtins/abort - unreachable - end + i32.store offset=8 + local.get $0 + local.get $2 + call $"~lib/array/Array<~lib/map/KeyValue>#__get" + local.set $5 global.get $~lib/memory/__stack_pointer - local.get $1 + local.get $5 i32.store offset=4 - local.get $1 - local.get $0 - call $"~lib/map/Map#delete" + local.get $5 + i32.load offset=4 + local.set $6 global.get $~lib/memory/__stack_pointer local.get $1 i32.store offset=4 local.get $1 - local.get $0 - call $"~lib/map/Map#has" + local.get $4 + local.get $4 + i32.const -1028477379 + i32.mul + i32.const 374761397 + i32.add + i32.const 17 + i32.rotl + i32.const 668265263 + i32.mul + local.tee $5 + i32.const 15 + i32.shr_u + local.get $5 + i32.xor + i32.const -2048144777 + i32.mul + local.tee $5 + i32.const 13 + i32.shr_u + local.get $5 + i32.xor + i32.const -1028477379 + i32.mul + local.tee $5 + i32.const 16 + i32.shr_u + local.get $5 + i32.xor + local.tee $7 + call $"~lib/map/Map#find" + local.tee $5 if - i32.const 0 - i32.const 1568 - i32.const 54 - i32.const 5 - call $~lib/builtins/abort - unreachable + local.get $5 + local.get $6 + i32.store offset=4 + else + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.load offset=8 + local.tee $5 + i32.store offset=12 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=8 + local.get $1 + local.get $1 + i32.load offset=16 + local.tee $8 + i32.const 1 + i32.add + i32.store offset=16 + local.get $5 + local.get $8 + i32.const 12 + i32.mul + i32.add + local.tee $5 + local.get $4 + i32.store + local.get $5 + local.get $6 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=8 + local.get $1 + local.get $1 + i32.load offset=20 + i32.const 1 + i32.add + i32.store offset=20 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + local.get $1 + i32.load + local.set $4 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + local.get $5 + local.get $4 + local.get $7 + local.get $1 + i32.load offset=4 + i32.and + i32.const 2 + i32.shl + i32.add + local.tee $4 + i32.load + i32.store offset=8 + local.get $4 + local.get $5 + i32.store end - local.get $0 + local.get $2 i32.const 1 i32.add - local.set $0 - br $for-loop|4 + local.set $2 + br $for-loop|0 end end - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - local.get $1 - call $"~lib/map/Map#get:size" - i32.const 50 - i32.ne - if - i32.const 0 - i32.const 1568 - i32.const 56 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - local.get $1 - call $"~lib/map/Map#clear" - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - local.get $1 - call $"~lib/map/Map#get:size" - if - i32.const 0 - i32.const 1568 - i32.const 60 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - i32.const 24 - i32.add - global.set $~lib/memory/__stack_pointer - return end - i32.const 34688 - i32.const 34736 - i32.const 1 - i32.const 1 - call $~lib/builtins/abort - unreachable + global.get $~lib/memory/__stack_pointer + i32.const 16 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $1 ) - (func $"~lib/map/Map#find" (param $0 i32) (param $1 i32) (param $2 i32) (result i32) - (local $3 i32) + (func $"~lib/map/Map#has" (param $0 i32) (param $1 i32) (result i32) global.get $~lib/memory/__stack_pointer i32.const 4 i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 1896 + i32.const 3104 i32.lt_s if - i32.const 34688 - i32.const 34736 + i32.const 35904 + i32.const 35952 i32.const 1 i32.const 1 call $~lib/builtins/abort @@ -12282,67 +16157,246 @@ local.get $0 i32.store local.get $0 - i32.load + local.get $1 + local.get $1 + i32.const -1028477379 + i32.mul + i32.const 374761397 + i32.add + i32.const 17 + i32.rotl + i32.const 668265263 + i32.mul + local.tee $0 + local.get $0 + i32.const 15 + i32.shr_u + i32.xor + i32.const -2048144777 + i32.mul + local.tee $0 + local.get $0 + i32.const 13 + i32.shr_u + i32.xor + i32.const -1028477379 + i32.mul + local.tee $0 + local.get $0 + i32.const 16 + i32.shr_u + i32.xor + call $"~lib/map/Map#find" + i32.const 0 + i32.ne + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + ) + (func $"~lib/map/Map#set" (param $0 i32) (param $1 i32) (param $2 i32) + (local $3 i32) + (local $4 i32) + (local $5 i32) + global.get $~lib/memory/__stack_pointer + i32.const 12 + i32.sub + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 3104 + i32.lt_s + if + i32.const 35904 + i32.const 35952 + i32.const 1 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store offset=8 global.get $~lib/memory/__stack_pointer local.get $0 i32.store - local.get $2 local.get $0 - i32.load offset=4 - i32.and - i32.const 2 - i32.shl + local.get $1 + local.get $1 + i32.const -1028477379 + i32.mul + i32.const 374761397 i32.add - i32.load - local.set $0 - loop $while-continue|0 + i32.const 17 + i32.rotl + i32.const 668265263 + i32.mul + local.tee $3 + i32.const 15 + i32.shr_u + local.get $3 + i32.xor + i32.const -2048144777 + i32.mul + local.tee $3 + i32.const 13 + i32.shr_u + local.get $3 + i32.xor + i32.const -1028477379 + i32.mul + local.tee $3 + i32.const 16 + i32.shr_u + local.get $3 + i32.xor + local.tee $4 + call $"~lib/map/Map#find" + local.tee $3 + if + local.get $3 + local.get $2 + i32.store offset=4 + else + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + local.get $0 + i32.load offset=16 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + local.get $0 + i32.load offset=12 + i32.eq + if + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + local.get $0 + i32.load offset=20 + local.set $3 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + local.get $0 + local.get $3 + local.get $0 + i32.load offset=12 + i32.const 3 + i32.mul + i32.const 4 + i32.div_s + i32.lt_s + if (result i32) + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + local.get $0 + i32.load offset=4 + else + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + local.get $0 + i32.load offset=4 + i32.const 1 + i32.shl + i32.const 1 + i32.or + end + call $"~lib/map/Map#rehash" + end + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.load offset=8 + local.tee $3 + i32.store offset=8 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + local.get $0 + local.get $0 + i32.load offset=16 + local.tee $5 + i32.const 1 + i32.add + i32.store offset=16 + local.get $3 + local.get $5 + i32.const 12 + i32.mul + i32.add + local.tee $3 + local.get $1 + i32.store + local.get $3 + local.get $2 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + local.get $0 + local.get $0 + i32.load offset=20 + i32.const 1 + i32.add + i32.store offset=20 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + local.get $0 + i32.load + local.set $1 + global.get $~lib/memory/__stack_pointer local.get $0 - if - local.get $0 - i32.load offset=8 - local.tee $2 - i32.const 1 - i32.and - if (result i32) - i32.const 0 - else - local.get $1 - local.get $0 - i32.load - i32.eq - end - if - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $0 - return - end - local.get $2 - i32.const -2 - i32.and - local.set $0 - br $while-continue|0 - end + i32.store + local.get $3 + local.get $1 + local.get $4 + local.get $0 + i32.load offset=4 + i32.and + i32.const 2 + i32.shl + i32.add + local.tee $0 + i32.load + i32.store offset=8 + local.get $0 + local.get $3 + i32.store end global.get $~lib/memory/__stack_pointer - i32.const 4 + i32.const 12 i32.add global.set $~lib/memory/__stack_pointer - i32.const 0 ) - (func $"~lib/map/Map#has" (param $0 i32) (param $1 i32) (result i32) + (func $"~lib/map/Map#get" (param $0 i32) (param $1 i32) (result i32) global.get $~lib/memory/__stack_pointer i32.const 4 i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 1896 + i32.const 3104 i32.lt_s if - i32.const 34688 - i32.const 34736 + i32.const 35904 + i32.const 35952 i32.const 1 i32.const 1 call $~lib/builtins/abort @@ -12385,14 +16439,24 @@ i32.shr_u i32.xor call $"~lib/map/Map#find" - i32.const 0 - i32.ne + local.tee $0 + i32.eqz + if + i32.const 1824 + i32.const 1888 + i32.const 148 + i32.const 17 + call $~lib/builtins/abort + unreachable + end + local.get $0 + i32.load offset=4 global.get $~lib/memory/__stack_pointer i32.const 4 i32.add global.set $~lib/memory/__stack_pointer ) - (func $"~lib/map/Map#rehash" (param $0 i32) (param $1 i32) + (func $"~lib/map/Map#rehash" (param $0 i32) (param $1 i32) (local $2 i32) (local $3 i32) (local $4 i32) @@ -12405,11 +16469,11 @@ i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 1896 + i32.const 3104 i32.lt_s if - i32.const 34688 - i32.const 34736 + i32.const 35904 + i32.const 35952 i32.const 1 i32.const 1 call $~lib/builtins/abort @@ -12545,6 +16609,7 @@ i32.store local.get $0 local.get $6 + i32.const 0 call $~lib/rt/itcms/__link global.get $~lib/memory/__stack_pointer local.get $0 @@ -12563,6 +16628,7 @@ i32.store offset=8 local.get $0 local.get $3 + i32.const 0 call $~lib/rt/itcms/__link global.get $~lib/memory/__stack_pointer local.get $0 @@ -12585,641 +16651,290 @@ i32.add global.set $~lib/memory/__stack_pointer ) - (func $"~lib/map/Map#set" (param $0 i32) (param $1 i32) (param $2 i32) - (local $3 i32) - (local $4 i32) - (local $5 i32) - global.get $~lib/memory/__stack_pointer - i32.const 12 - i32.sub - global.set $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - i32.const 1896 - i32.lt_s - if - i32.const 34688 - i32.const 34736 - i32.const 1 - i32.const 1 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - i64.const 0 - i64.store - global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.store offset=8 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store - local.get $0 - local.get $1 - local.get $1 - i32.const -1028477379 - i32.mul - i32.const 374761397 - i32.add - i32.const 17 - i32.rotl - i32.const 668265263 - i32.mul - local.tee $3 - i32.const 15 - i32.shr_u - local.get $3 - i32.xor - i32.const -2048144777 - i32.mul - local.tee $3 - i32.const 13 - i32.shr_u - local.get $3 - i32.xor - i32.const -1028477379 - i32.mul - local.tee $3 - i32.const 16 - i32.shr_u - local.get $3 - i32.xor - local.tee $4 - call $"~lib/map/Map#find" - local.tee $3 - if - local.get $3 - local.get $2 - i32.store offset=4 - else - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store - local.get $0 - i32.load offset=16 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store - local.get $0 - i32.load offset=12 - i32.eq - if - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 - i32.load offset=20 - local.set $3 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 - local.get $3 - local.get $0 - i32.load offset=12 - i32.const 3 - i32.mul - i32.const 4 - i32.div_s - i32.lt_s - if (result i32) - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 - i32.load offset=4 - else - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 - i32.load offset=4 - i32.const 1 - i32.shl - i32.const 1 - i32.or - end - call $"~lib/map/Map#rehash" - end - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.load offset=8 - local.tee $3 - i32.store offset=8 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 - local.get $0 - i32.load offset=16 - local.tee $5 - i32.const 1 - i32.add - i32.store offset=16 - local.get $3 - local.get $5 - i32.const 12 - i32.mul - i32.add - local.tee $3 - local.get $1 - i32.store - local.get $3 - local.get $2 - i32.store offset=4 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 - local.get $0 - i32.load offset=20 - i32.const 1 - i32.add - i32.store offset=20 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store - local.get $0 - i32.load - local.set $1 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store - local.get $3 - local.get $1 - local.get $4 - local.get $0 - i32.load offset=4 - i32.and - i32.const 2 - i32.shl - i32.add - local.tee $0 - i32.load - i32.store offset=8 - local.get $0 - local.get $3 - i32.store - end - global.get $~lib/memory/__stack_pointer - i32.const 12 - i32.add - global.set $~lib/memory/__stack_pointer - ) - (func $"~lib/map/Map#get" (param $0 i32) (param $1 i32) (result i32) + (func $"~lib/map/Map#constructor" (param $0 i32) (result i32) + (local $1 i32) + (local $2 i32) + (local $3 i32) + (local $4 i32) + (local $5 i32) + (local $6 i32) + (local $7 i32) + (local $8 i32) global.get $~lib/memory/__stack_pointer - i32.const 4 + i32.const 16 i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 1896 + i32.const 3104 i32.lt_s if - i32.const 34688 - i32.const 34736 + i32.const 35904 + i32.const 35952 i32.const 1 i32.const 1 call $~lib/builtins/abort unreachable end global.get $~lib/memory/__stack_pointer - i32.const 0 + i64.const 0 + i64.store + global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store offset=8 + global.get $~lib/memory/__stack_pointer + i32.const 24 + i32.const 40 + call $~lib/rt/itcms/__new + local.tee $1 i32.store global.get $~lib/memory/__stack_pointer - local.get $0 + local.get $1 + i32.store offset=4 + i32.const 16 + call $~lib/arraybuffer/ArrayBuffer#constructor + local.set $3 + global.get $~lib/memory/__stack_pointer + local.get $3 + i32.store offset=8 + local.get $1 + local.get $3 i32.store - local.get $0 local.get $1 + local.get $3 + i32.const 0 + call $~lib/rt/itcms/__link + global.get $~lib/memory/__stack_pointer local.get $1 - i32.const -1028477379 - i32.mul - i32.const 374761397 - i32.add - i32.const 17 - i32.rotl - i32.const 668265263 - i32.mul - local.tee $0 - local.get $0 - i32.const 15 - i32.shr_u - i32.xor - i32.const -2048144777 - i32.mul - local.tee $0 - local.get $0 - i32.const 13 - i32.shr_u - i32.xor - i32.const -1028477379 - i32.mul - local.tee $0 - local.get $0 - i32.const 16 - i32.shr_u - i32.xor - call $"~lib/map/Map#find" - local.tee $0 - i32.eqz - if - i32.const 1616 - i32.const 1680 - i32.const 105 - i32.const 17 - call $~lib/builtins/abort - unreachable - end - local.get $0 - i32.load offset=4 + i32.store offset=4 + local.get $1 + i32.const 3 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + i32.const 48 + call $~lib/arraybuffer/ArrayBuffer#constructor + local.set $3 + global.get $~lib/memory/__stack_pointer + local.get $3 + i32.store offset=8 + local.get $1 + local.get $3 + i32.store offset=8 + local.get $1 + local.get $3 + i32.const 0 + call $~lib/rt/itcms/__link global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + local.get $1 i32.const 4 - i32.add - global.set $~lib/memory/__stack_pointer - ) - (func $"~lib/map/Map#set" (param $0 i32) (param $1 i32) (param $2 i32) - (local $3 i32) - (local $4 i32) - (local $5 i32) - (local $6 i32) - (local $7 i32) - (local $8 i32) - (local $9 i32) - (local $10 i32) - (local $11 i32) + i32.store offset=12 global.get $~lib/memory/__stack_pointer - i32.const 12 - i32.sub - global.set $~lib/memory/__stack_pointer - block $folding-inner0 - global.get $~lib/memory/__stack_pointer - i32.const 1896 - i32.lt_s - br_if $folding-inner0 - global.get $~lib/memory/__stack_pointer - i64.const 0 - i64.store - global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.store offset=8 + local.get $1 + i32.store offset=4 + local.get $1 + i32.const 0 + i32.store offset=16 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + local.get $1 + i32.const 0 + i32.store offset=20 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + local.get $0 + call $"~lib/array/Array<~lib/map/KeyValue>#get:length" + local.tee $3 + i32.const 0 + i32.gt_s + if global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store - local.get $0 local.get $1 - local.get $1 - i32.const -1028477379 - i32.mul - i32.const 374761397 - i32.add - i32.const 17 - i32.rotl - i32.const 668265263 - i32.mul - local.tee $3 - i32.const 15 - i32.shr_u - local.get $3 - i32.xor - i32.const -2048144777 - i32.mul - local.tee $3 - i32.const 13 - i32.shr_u - local.get $3 - i32.xor - i32.const -1028477379 - i32.mul - local.tee $3 - i32.const 16 - i32.shr_u + i32.store offset=4 local.get $3 - i32.xor - local.tee $7 - call $"~lib/map/Map#find" - local.tee $3 + local.get $1 + i32.load offset=12 + i32.ge_s if + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + local.get $1 local.get $3 - local.get $2 i32.store offset=4 - else - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store - local.get $0 - i32.load offset=16 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store - local.get $0 - i32.load offset=12 - i32.eq - if - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 - i32.load offset=20 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 - i32.load offset=12 - i32.const 3 - i32.mul - i32.const 4 - i32.div_s - i32.lt_s - if (result i32) - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 - i32.load offset=4 - else - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 - i32.load offset=4 - i32.const 1 - i32.shl - i32.const 1 - i32.or - end - local.set $8 - global.get $~lib/memory/__stack_pointer - i32.const 16 - i32.sub - global.set $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - i32.const 1896 - i32.lt_s - br_if $folding-inner0 - global.get $~lib/memory/__stack_pointer - i64.const 0 - i64.store - global.get $~lib/memory/__stack_pointer - i64.const 0 - i64.store offset=8 - global.get $~lib/memory/__stack_pointer - local.get $8 - i32.const 1 - i32.add - local.tee $3 - i32.const 2 - i32.shl - call $~lib/arraybuffer/ArrayBuffer#constructor - local.tee $9 - i32.store - global.get $~lib/memory/__stack_pointer - local.get $3 - i32.const 3 - i32.shl - i32.const 3 - i32.div_s - local.tee $6 - i32.const 12 - i32.mul - call $~lib/arraybuffer/ArrayBuffer#constructor - local.tee $4 - i32.store offset=4 + end + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=8 + local.get $1 + local.get $1 + i32.load offset=4 + i32.const 1 + i32.shl + i32.const 1 + i32.or + call $"~lib/map/Map#rehash" + loop $for-loop|0 + local.get $2 + local.get $3 + i32.lt_s + if global.get $~lib/memory/__stack_pointer local.get $0 i32.store offset=8 local.get $0 - i32.load offset=8 - local.set $10 + local.get $2 + call $"~lib/array/Array<~lib/map/KeyValue>#__get" + local.set $4 global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=8 - local.get $10 - local.get $0 - i32.load offset=16 - i32.const 12 - i32.mul - i32.add - local.set $5 local.get $4 - local.set $3 - loop $while-continue|0 - local.get $5 - local.get $10 - i32.ne - if - local.get $10 - i32.load offset=8 - i32.const 1 - i32.and - i32.eqz - if - local.get $3 - local.get $10 - i32.load - local.tee $11 - i32.store - local.get $3 - local.get $10 - i32.load offset=4 - i32.store offset=4 - local.get $3 - local.get $9 - local.get $8 - local.get $11 - i32.const -1028477379 - i32.mul - i32.const 374761397 - i32.add - i32.const 17 - i32.rotl - i32.const 668265263 - i32.mul - local.tee $11 - local.get $11 - i32.const 15 - i32.shr_u - i32.xor - i32.const -2048144777 - i32.mul - local.tee $11 - local.get $11 - i32.const 13 - i32.shr_u - i32.xor - i32.const -1028477379 - i32.mul - local.tee $11 - local.get $11 - i32.const 16 - i32.shr_u - i32.xor - i32.and - i32.const 2 - i32.shl - i32.add - local.tee $11 - i32.load - i32.store offset=8 - local.get $11 - local.get $3 - i32.store - local.get $3 - i32.const 12 - i32.add - local.set $3 - end - local.get $10 - i32.const 12 - i32.add - local.set $10 - br $while-continue|0 - end - end + i32.store offset=4 + local.get $4 + i32.load + local.set $4 global.get $~lib/memory/__stack_pointer local.get $0 i32.store offset=8 - global.get $~lib/memory/__stack_pointer - local.get $9 - i32.store offset=12 - local.get $0 - local.get $9 - i32.store local.get $0 - local.get $9 - call $~lib/rt/itcms/__link + local.get $2 + call $"~lib/array/Array<~lib/map/KeyValue>#__get" + local.set $5 global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=8 - local.get $0 - local.get $8 + local.get $5 i32.store offset=4 + local.get $5 + i32.load offset=4 + local.set $6 global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=8 - global.get $~lib/memory/__stack_pointer - local.get $4 - i32.store offset=12 - local.get $0 + local.get $1 + i32.store offset=4 + local.get $1 local.get $4 - i32.store offset=8 - local.get $0 local.get $4 - call $~lib/rt/itcms/__link - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=8 - local.get $0 - local.get $6 - i32.store offset=12 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=8 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=12 - local.get $0 - local.get $0 - i32.load offset=20 - i32.store offset=16 - global.get $~lib/memory/__stack_pointer + i32.const -1028477379 + i32.mul + i32.const 374761397 + i32.add + i32.const 17 + i32.rotl + i32.const 668265263 + i32.mul + local.tee $5 + i32.const 15 + i32.shr_u + local.get $5 + i32.xor + i32.const -2048144777 + i32.mul + local.tee $5 + i32.const 13 + i32.shr_u + local.get $5 + i32.xor + i32.const -1028477379 + i32.mul + local.tee $5 i32.const 16 + i32.shr_u + local.get $5 + i32.xor + local.tee $7 + call $"~lib/map/Map#find" + local.tee $5 + if + local.get $5 + local.get $6 + i32.store offset=4 + else + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.load offset=8 + local.tee $5 + i32.store offset=12 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=8 + local.get $1 + local.get $1 + i32.load offset=16 + local.tee $8 + i32.const 1 + i32.add + i32.store offset=16 + local.get $5 + local.get $8 + i32.const 12 + i32.mul + i32.add + local.tee $5 + local.get $4 + i32.store + local.get $5 + local.get $6 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=8 + local.get $1 + local.get $1 + i32.load offset=20 + i32.const 1 + i32.add + i32.store offset=20 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + local.get $1 + i32.load + local.set $4 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + local.get $5 + local.get $4 + local.get $7 + local.get $1 + i32.load offset=4 + i32.and + i32.const 2 + i32.shl + i32.add + local.tee $4 + i32.load + i32.store offset=8 + local.get $4 + local.get $5 + i32.store + end + local.get $2 + i32.const 1 i32.add - global.set $~lib/memory/__stack_pointer + local.set $2 + br $for-loop|0 end - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.load offset=8 - local.tee $3 - i32.store offset=8 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 - local.get $0 - i32.load offset=16 - local.tee $4 - i32.const 1 - i32.add - i32.store offset=16 - local.get $3 - local.get $4 - i32.const 12 - i32.mul - i32.add - local.tee $3 - local.get $1 - i32.store - local.get $3 - local.get $2 - i32.store offset=4 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 - local.get $0 - i32.load offset=20 - i32.const 1 - i32.add - i32.store offset=20 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store - local.get $0 - i32.load - local.set $1 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store - local.get $3 - local.get $1 - local.get $7 - local.get $0 - i32.load offset=4 - i32.and - i32.const 2 - i32.shl - i32.add - local.tee $0 - i32.load - i32.store offset=8 - local.get $0 - local.get $3 - i32.store end - global.get $~lib/memory/__stack_pointer - i32.const 12 - i32.add - global.set $~lib/memory/__stack_pointer - return end - i32.const 34688 - i32.const 34736 - i32.const 1 - i32.const 1 - call $~lib/builtins/abort - unreachable + global.get $~lib/memory/__stack_pointer + i32.const 16 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $1 ) (func $"~lib/map/Map#delete" (param $0 i32) (param $1 i32) (local $2 i32) @@ -13228,11 +16943,11 @@ i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 1896 + i32.const 3104 i32.lt_s if - i32.const 34688 - i32.const 34736 + i32.const 35904 + i32.const 35952 i32.const 1 i32.const 1 call $~lib/builtins/abort @@ -13327,301 +17042,898 @@ i32.ge_u if (result i32) global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store - local.get $0 - i32.load offset=20 + local.get $0 + i32.store + local.get $0 + i32.load offset=20 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + local.get $0 + i32.load offset=12 + i32.const 3 + i32.mul + i32.const 4 + i32.div_s + i32.lt_s + else + i32.const 0 + end + if + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + local.get $0 + local.get $1 + call $"~lib/map/Map#rehash" + end + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.add + global.set $~lib/memory/__stack_pointer + ) + (func $"std/map/testNumeric" + (local $0 i32) + (local $1 i32) + (local $2 i32) + (local $3 i32) + (local $4 i32) + (local $5 i32) + (local $6 i32) + (local $7 i32) + (local $8 i32) + (local $9 i32) + (local $10 i32) + global.get $~lib/memory/__stack_pointer + i32.const 40 + i32.sub + global.set $~lib/memory/__stack_pointer + block $folding-inner1 + global.get $~lib/memory/__stack_pointer + i32.const 3104 + i32.lt_s + br_if $folding-inner1 + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.const 40 + memory.fill + global.get $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 12 + i32.sub + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 3104 + i32.lt_s + br_if $folding-inner1 + global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store offset=8 + global.get $~lib/memory/__stack_pointer + i32.const 38 + i32.const 2352 + call $~lib/rt/__newArray + local.tee $4 + i32.store + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + local.get $4 + i32.store offset=8 + local.get $4 + call $"~lib/map/Map#constructor" + local.set $4 + global.get $~lib/memory/__stack_pointer + i32.const 12 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $4 + i32.store + loop $for-loop|0 + local.get $0 + i32.const 100 + i32.lt_u + if + global.get $~lib/memory/__stack_pointer + local.get $4 + i32.store offset=4 + local.get $4 + local.get $0 + call $"~lib/map/Map#has" + if + i32.const 0 + i32.const 1776 + i32.const 7 + i32.const 5 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + local.get $4 + i32.store offset=4 + local.get $4 + local.get $0 + local.get $0 + i32.const 10 + i32.add + call $"~lib/map/Map#set" + global.get $~lib/memory/__stack_pointer + local.get $4 + i32.store offset=4 + local.get $4 + local.get $0 + call $"~lib/map/Map#has" + i32.eqz + if + i32.const 0 + i32.const 1776 + i32.const 9 + i32.const 5 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + local.get $4 + i32.store offset=4 + local.get $4 + local.get $0 + call $"~lib/map/Map#get" + local.get $0 + i32.const 10 + i32.add + i32.ne + if + i32.const 0 + i32.const 1776 + i32.const 10 + i32.const 5 + call $~lib/builtins/abort + unreachable + end + local.get $0 + i32.const 1 + i32.add + local.set $0 + br $for-loop|0 + end + end + global.get $~lib/memory/__stack_pointer + local.get $4 + i32.store offset=4 + local.get $4 + call $"~lib/map/Map#get:size" + i32.const 100 + i32.ne + if + i32.const 0 + i32.const 1776 + i32.const 12 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + i32.const 0 + local.set $0 + loop $for-loop|1 + local.get $0 + i32.const 100 + i32.lt_u + if + global.get $~lib/memory/__stack_pointer + local.get $4 + i32.store offset=4 + local.get $4 + local.get $0 + call $"~lib/map/Map#has" + i32.eqz + if + i32.const 0 + i32.const 1776 + i32.const 16 + i32.const 5 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + local.get $4 + i32.store offset=4 + local.get $4 + local.get $0 + call $"~lib/map/Map#get" + local.get $0 + i32.const 10 + i32.add + i32.ne + if + i32.const 0 + i32.const 1776 + i32.const 17 + i32.const 5 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + local.get $4 + i32.store offset=4 + local.get $4 + local.get $0 + local.get $0 + i32.const 20 + i32.add + call $"~lib/map/Map#set" + global.get $~lib/memory/__stack_pointer + local.get $4 + i32.store offset=4 + local.get $4 + local.get $0 + call $"~lib/map/Map#has" + i32.eqz + if + i32.const 0 + i32.const 1776 + i32.const 19 + i32.const 5 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + local.get $4 + i32.store offset=4 + local.get $4 + local.get $0 + call $"~lib/map/Map#get" + local.get $0 + i32.const 20 + i32.add + i32.ne + if + i32.const 0 + i32.const 1776 + i32.const 20 + i32.const 5 + call $~lib/builtins/abort + unreachable + end + local.get $0 + i32.const 1 + i32.add + local.set $0 + br $for-loop|1 + end + end + global.get $~lib/memory/__stack_pointer + local.get $4 + i32.store offset=4 + local.get $4 + call $"~lib/map/Map#get:size" + i32.const 100 + i32.ne + if + i32.const 0 + i32.const 1776 + i32.const 22 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store - local.get $0 - i32.load offset=12 - i32.const 3 - i32.mul - i32.const 4 - i32.div_s - i32.lt_s - else - i32.const 0 - end - if + local.get $4 + i32.store offset=4 global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store - local.get $0 - local.get $1 - call $"~lib/map/Map#rehash" - end - global.get $~lib/memory/__stack_pointer - i32.const 8 - i32.add - global.set $~lib/memory/__stack_pointer - ) - (func $"std/map/testNumeric" - (local $0 i32) - (local $1 i32) - (local $2 i32) - (local $3 i32) - (local $4 i32) - (local $5 i32) - (local $6 i32) - (local $7 i32) - (local $8 i32) - global.get $~lib/memory/__stack_pointer - i32.const 24 - i32.sub - global.set $~lib/memory/__stack_pointer - block $folding-inner1 + i32.const 8 + i32.sub + global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 1896 + i32.const 3104 i32.lt_s br_if $folding-inner1 global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.const 24 - memory.fill + i64.const 0 + i64.store + global.get $~lib/memory/__stack_pointer + local.get $4 + i32.store + local.get $4 + i32.load offset=8 + local.set $6 global.get $~lib/memory/__stack_pointer + local.get $4 + i32.store + local.get $4 + i32.load offset=16 + local.set $7 global.get $~lib/memory/__stack_pointer - i32.const 12 + global.get $~lib/memory/__stack_pointer + i32.const 16 i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 1896 + i32.const 3104 i32.lt_s br_if $folding-inner1 global.get $~lib/memory/__stack_pointer i64.const 0 i64.store global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.store offset=8 + i64.const 0 + i64.store offset=8 global.get $~lib/memory/__stack_pointer - i32.const 24 - i32.const 18 + i32.const 16 + i32.const 39 call $~lib/rt/itcms/__new - local.tee $1 + local.tee $3 i32.store global.get $~lib/memory/__stack_pointer - local.get $1 + local.get $3 i32.store offset=4 - i32.const 16 - call $~lib/arraybuffer/ArrayBuffer#constructor - local.set $5 - global.get $~lib/memory/__stack_pointer - local.get $5 - i32.store offset=8 - local.get $1 - local.get $5 + local.get $3 + i32.const 0 i32.store - local.get $1 - local.get $5 + local.get $3 + i32.const 0 + i32.const 0 call $~lib/rt/itcms/__link global.get $~lib/memory/__stack_pointer - local.get $1 + local.get $3 i32.store offset=4 - local.get $1 - i32.const 3 + local.get $3 + i32.const 0 i32.store offset=4 global.get $~lib/memory/__stack_pointer - local.get $1 + local.get $3 i32.store offset=4 - i32.const 48 - call $~lib/arraybuffer/ArrayBuffer#constructor - local.set $5 - global.get $~lib/memory/__stack_pointer - local.get $5 + local.get $3 + i32.const 0 i32.store offset=8 - local.get $1 - local.get $5 + global.get $~lib/memory/__stack_pointer + local.get $3 + i32.store offset=4 + local.get $3 + i32.const 0 + i32.store offset=12 + local.get $7 + i32.const 268435455 + i32.gt_u + if + i32.const 1056 + i32.const 1568 + i32.const 70 + i32.const 60 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + i32.const 8 + local.get $7 + local.get $7 + i32.const 8 + i32.le_u + select + i32.const 2 + i32.shl + local.tee $8 + i32.const 1 + call $~lib/rt/itcms/__new + local.tee $9 i32.store offset=8 - local.get $1 - local.get $5 + global.get $~lib/memory/__stack_pointer + local.get $3 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + local.get $9 + i32.store offset=12 + local.get $3 + local.get $9 + i32.store + local.get $3 + local.get $9 + i32.const 0 call $~lib/rt/itcms/__link global.get $~lib/memory/__stack_pointer - local.get $1 + local.get $3 i32.store offset=4 - local.get $1 - i32.const 4 + local.get $3 + local.get $9 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + local.get $3 + i32.store offset=4 + local.get $3 + local.get $8 + i32.store offset=8 + global.get $~lib/memory/__stack_pointer + local.get $3 + i32.store offset=4 + local.get $3 + local.get $7 i32.store offset=12 global.get $~lib/memory/__stack_pointer - local.get $1 + i32.const 16 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $3 i32.store offset=4 - local.get $1 i32.const 0 - i32.store offset=16 + local.set $0 + loop $for-loop|00 + local.get $2 + local.get $7 + i32.lt_s + if + local.get $6 + local.get $2 + i32.const 12 + i32.mul + i32.add + local.tee $8 + i32.load offset=8 + i32.const 1 + i32.and + i32.eqz + if + global.get $~lib/memory/__stack_pointer + local.get $3 + i32.store + local.get $3 + local.get $0 + local.get $8 + i32.load + call $~lib/array/Array#__set + local.get $0 + i32.const 1 + i32.add + local.set $0 + end + local.get $2 + i32.const 1 + i32.add + local.set $2 + br $for-loop|00 + end + end + global.get $~lib/memory/__stack_pointer + local.get $3 + i32.store + local.get $3 + local.get $0 + call $~lib/array/Array#set:length + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $3 + i32.store offset=8 + global.get $~lib/memory/__stack_pointer + local.get $4 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + local.get $4 + call $"~lib/map/Map#values" + local.tee $2 + i32.store offset=12 + global.get $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 12 + i32.sub + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 3104 + i32.lt_s + br_if $folding-inner1 + global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store offset=8 + global.get $~lib/memory/__stack_pointer + i32.const 42 + i32.const 2384 + call $~lib/rt/__newArray + local.tee $5 + i32.store global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - local.get $1 i32.const 0 - i32.store offset=20 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + local.get $5 + i32.store offset=8 + local.get $5 + call $"~lib/map/Map#constructor" + local.set $5 global.get $~lib/memory/__stack_pointer i32.const 12 i32.add global.set $~lib/memory/__stack_pointer - local.get $1 - i32.store - loop $for-loop|0 - local.get $0 - i32.const 100 - i32.lt_u + local.get $5 + i32.store offset=16 + global.get $~lib/memory/__stack_pointer + call $"~lib/map/Map#constructor@varargs" + local.tee $6 + i32.store offset=20 + loop $for-loop|2 + global.get $~lib/memory/__stack_pointer + local.get $3 + i32.store offset=4 + local.get $3 + call $"~lib/array/Array<~lib/map/KeyValue>#get:length" + local.get $1 + i32.gt_s if global.get $~lib/memory/__stack_pointer - local.get $1 + local.get $3 i32.store offset=4 + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.sub + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 3104 + i32.lt_s + br_if $folding-inner1 + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store + global.get $~lib/memory/__stack_pointer + local.get $3 + i32.store local.get $1 - local.get $0 - call $"~lib/map/Map#has" + local.get $3 + i32.load offset=12 + i32.ge_u if - i32.const 0 + i32.const 1360 i32.const 1568 - i32.const 6 - i32.const 5 + i32.const 114 + i32.const 42 call $~lib/builtins/abort unreachable end global.get $~lib/memory/__stack_pointer + local.get $3 + i32.store + local.get $3 + i32.load offset=4 local.get $1 - i32.store offset=4 - local.get $1 - local.get $0 - local.get $0 - i32.const 10 + i32.const 2 + i32.shl i32.add - call $"~lib/map/Map#set" + i32.load + local.set $7 global.get $~lib/memory/__stack_pointer - local.get $1 + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + local.get $2 i32.store offset=4 + local.get $2 local.get $1 - local.get $0 + call $~lib/array/Array#__get + local.set $8 + global.get $~lib/memory/__stack_pointer + local.get $4 + i32.store offset=4 + local.get $4 + local.get $7 call $"~lib/map/Map#has" i32.eqz if i32.const 0 - i32.const 1568 - i32.const 8 + i32.const 1776 + i32.const 32 + i32.const 5 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + local.get $4 + i32.store offset=4 + local.get $4 + local.get $8 + i32.const 20 + i32.sub + call $"~lib/map/Map#has" + i32.eqz + if + i32.const 0 + i32.const 1776 + i32.const 33 i32.const 5 call $~lib/builtins/abort unreachable end global.get $~lib/memory/__stack_pointer - local.get $1 + local.get $5 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + i32.const 12 + i32.sub + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 3104 + i32.lt_s + br_if $folding-inner1 + global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store offset=8 + global.get $~lib/memory/__stack_pointer + local.get $5 + i32.store + local.get $5 + local.get $7 + local.get $7 + i32.const -1028477379 + i32.mul + i32.const 374761397 + i32.add + i32.const 17 + i32.rotl + i32.const 668265263 + i32.mul + local.tee $0 + local.get $0 + i32.const 15 + i32.shr_u + i32.xor + i32.const -2048144777 + i32.mul + local.tee $0 + local.get $0 + i32.const 13 + i32.shr_u + i32.xor + i32.const -1028477379 + i32.mul + local.tee $0 + local.get $0 + i32.const 16 + i32.shr_u + i32.xor + local.tee $9 + call $"~lib/map/Map#find" + local.tee $0 + if + local.get $0 + local.get $7 + i32.store offset=4 + else + global.get $~lib/memory/__stack_pointer + local.get $5 + i32.store + local.get $5 + i32.load offset=16 + global.get $~lib/memory/__stack_pointer + local.get $5 + i32.store + local.get $5 + i32.load offset=12 + i32.eq + if + global.get $~lib/memory/__stack_pointer + local.get $5 + i32.store + global.get $~lib/memory/__stack_pointer + local.get $5 + i32.store offset=4 + local.get $5 + i32.load offset=20 + local.set $0 + global.get $~lib/memory/__stack_pointer + local.get $5 + i32.store offset=4 + local.get $5 + local.get $0 + local.get $5 + i32.load offset=12 + i32.const 3 + i32.mul + i32.const 4 + i32.div_s + i32.lt_s + if (result i32) + global.get $~lib/memory/__stack_pointer + local.get $5 + i32.store offset=4 + local.get $5 + i32.load offset=4 + else + global.get $~lib/memory/__stack_pointer + local.get $5 + i32.store offset=4 + local.get $5 + i32.load offset=4 + i32.const 1 + i32.shl + i32.const 1 + i32.or + end + call $"~lib/map/Map#rehash" + end + global.get $~lib/memory/__stack_pointer + local.get $5 + i32.store + global.get $~lib/memory/__stack_pointer + local.get $5 + i32.load offset=8 + local.tee $10 + i32.store offset=8 + global.get $~lib/memory/__stack_pointer + local.get $5 + i32.store + global.get $~lib/memory/__stack_pointer + local.get $5 + i32.store offset=4 + local.get $5 + local.get $5 + i32.load offset=16 + local.tee $0 + i32.const 1 + i32.add + i32.store offset=16 + local.get $10 + local.get $0 + i32.const 12 + i32.mul + i32.add + local.tee $0 + local.get $7 + i32.store + local.get $0 + local.get $7 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + local.get $5 + i32.store + global.get $~lib/memory/__stack_pointer + local.get $5 + i32.store offset=4 + local.get $5 + local.get $5 + i32.load offset=20 + i32.const 1 + i32.add + i32.store offset=20 + global.get $~lib/memory/__stack_pointer + local.get $5 + i32.store + local.get $5 + i32.load + local.set $7 + global.get $~lib/memory/__stack_pointer + local.get $5 + i32.store + local.get $0 + local.get $7 + local.get $9 + local.get $5 + i32.load offset=4 + i32.and + i32.const 2 + i32.shl + i32.add + local.tee $7 + i32.load + i32.store offset=8 + local.get $7 + local.get $0 + i32.store + end + global.get $~lib/memory/__stack_pointer + i32.const 12 + i32.add + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + local.get $6 i32.store offset=4 - local.get $1 - local.get $0 - call $"~lib/map/Map#get" - local.get $0 - i32.const 10 - i32.add - i32.ne - if - i32.const 0 - i32.const 1568 - i32.const 9 - i32.const 5 - call $~lib/builtins/abort - unreachable - end + local.get $6 + local.get $8 + i32.const 20 + i32.sub + local.tee $0 local.get $0 + call $"~lib/map/Map#set" + local.get $1 i32.const 1 i32.add - local.set $0 - br $for-loop|0 + local.set $1 + br $for-loop|2 end end global.get $~lib/memory/__stack_pointer - local.get $1 + local.get $5 i32.store offset=4 - local.get $1 + local.get $5 call $"~lib/map/Map#get:size" i32.const 100 i32.ne if i32.const 0 - i32.const 1568 - i32.const 11 + i32.const 1776 + i32.const 37 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + local.get $6 + i32.store offset=4 + local.get $6 + call $"~lib/map/Map#get:size" + i32.const 100 + i32.ne + if + i32.const 0 + i32.const 1776 + i32.const 38 i32.const 3 call $~lib/builtins/abort unreachable end i32.const 0 local.set $0 - loop $for-loop|1 + loop $for-loop|3 local.get $0 - i32.const 100 + i32.const 50 i32.lt_u if global.get $~lib/memory/__stack_pointer - local.get $1 + local.get $4 i32.store offset=4 - local.get $1 + local.get $4 local.get $0 call $"~lib/map/Map#has" i32.eqz if i32.const 0 - i32.const 1568 - i32.const 15 + i32.const 1776 + i32.const 42 i32.const 5 call $~lib/builtins/abort unreachable end global.get $~lib/memory/__stack_pointer - local.get $1 + local.get $4 i32.store offset=4 - local.get $1 + local.get $4 local.get $0 call $"~lib/map/Map#get" local.get $0 - i32.const 10 + i32.const 20 i32.add i32.ne if i32.const 0 - i32.const 1568 - i32.const 16 + i32.const 1776 + i32.const 43 i32.const 5 call $~lib/builtins/abort unreachable end global.get $~lib/memory/__stack_pointer - local.get $1 + local.get $4 i32.store offset=4 - local.get $1 - local.get $0 + local.get $4 local.get $0 - i32.const 20 - i32.add - call $"~lib/map/Map#set" + call $"~lib/map/Map#delete" global.get $~lib/memory/__stack_pointer - local.get $1 + local.get $4 i32.store offset=4 - local.get $1 + local.get $4 local.get $0 call $"~lib/map/Map#has" - i32.eqz - if - i32.const 0 - i32.const 1568 - i32.const 18 - i32.const 5 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - local.get $1 - local.get $0 - call $"~lib/map/Map#get" - local.get $0 - i32.const 20 - i32.add - i32.ne if i32.const 0 - i32.const 1568 - i32.const 19 + i32.const 1776 + i32.const 45 i32.const 5 call $~lib/builtins/abort unreachable @@ -13630,454 +17942,244 @@ i32.const 1 i32.add local.set $0 - br $for-loop|1 + br $for-loop|3 end end global.get $~lib/memory/__stack_pointer - local.get $1 + local.get $4 i32.store offset=4 - local.get $1 + local.get $4 call $"~lib/map/Map#get:size" - i32.const 100 + i32.const 50 i32.ne if i32.const 0 - i32.const 1568 - i32.const 21 + i32.const 1776 + i32.const 47 i32.const 3 call $~lib/builtins/abort unreachable end - global.get $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - global.get $~lib/memory/__stack_pointer - i32.const 8 - i32.sub - global.set $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - i32.const 1896 - i32.lt_s - br_if $folding-inner1 - global.get $~lib/memory/__stack_pointer - i64.const 0 - i64.store - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store - local.get $1 - i32.load offset=8 - local.set $5 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store - local.get $1 - i32.load offset=16 - local.set $6 - global.get $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - i32.const 16 - i32.sub - global.set $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - i32.const 1896 - i32.lt_s - br_if $folding-inner1 - global.get $~lib/memory/__stack_pointer - i64.const 0 - i64.store - global.get $~lib/memory/__stack_pointer - i64.const 0 - i64.store offset=8 - global.get $~lib/memory/__stack_pointer - i32.const 16 - i32.const 19 - call $~lib/rt/itcms/__new - local.tee $7 - i32.store - global.get $~lib/memory/__stack_pointer - local.get $7 - i32.store offset=4 - local.get $7 - i32.const 0 - i32.store - local.get $7 - i32.const 0 - call $~lib/rt/itcms/__link - global.get $~lib/memory/__stack_pointer - local.get $7 - i32.store offset=4 - local.get $7 - i32.const 0 - i32.store offset=4 - global.get $~lib/memory/__stack_pointer - local.get $7 - i32.store offset=4 - local.get $7 - i32.const 0 - i32.store offset=8 - global.get $~lib/memory/__stack_pointer - local.get $7 - i32.store offset=4 - local.get $7 - i32.const 0 - i32.store offset=12 - local.get $6 - i32.const 268435455 - i32.gt_u - if - i32.const 1456 - i32.const 1728 - i32.const 70 - i32.const 60 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - i32.const 8 - local.get $6 - local.get $6 - i32.const 8 - i32.le_u - select - i32.const 2 - i32.shl - local.tee $0 - i32.const 1 - call $~lib/rt/itcms/__new - local.tee $8 - i32.store offset=8 - global.get $~lib/memory/__stack_pointer - local.get $7 - i32.store offset=4 - global.get $~lib/memory/__stack_pointer - local.get $8 - i32.store offset=12 - local.get $7 - local.get $8 - i32.store - local.get $7 - local.get $8 - call $~lib/rt/itcms/__link - global.get $~lib/memory/__stack_pointer - local.get $7 - i32.store offset=4 - local.get $7 - local.get $8 - i32.store offset=4 - global.get $~lib/memory/__stack_pointer - local.get $7 - i32.store offset=4 - local.get $7 - local.get $0 - i32.store offset=8 - global.get $~lib/memory/__stack_pointer - local.get $7 - i32.store offset=4 - local.get $7 - local.get $6 - i32.store offset=12 - global.get $~lib/memory/__stack_pointer - i32.const 16 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $7 - i32.store offset=4 i32.const 0 local.set $0 - loop $for-loop|00 - local.get $3 - local.get $6 - i32.lt_s + loop $for-loop|4 + local.get $0 + i32.const 50 + i32.lt_u if - local.get $5 - local.get $3 - i32.const 12 - i32.mul + global.get $~lib/memory/__stack_pointer + local.get $4 + i32.store offset=4 + local.get $4 + local.get $0 + call $"~lib/map/Map#has" + if + i32.const 0 + i32.const 1776 + i32.const 51 + i32.const 5 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + local.get $4 + i32.store offset=4 + local.get $4 + local.get $0 + local.get $0 + i32.const 10 i32.add - local.tee $8 - i32.load offset=8 - i32.const 1 - i32.and + call $"~lib/map/Map#set" + global.get $~lib/memory/__stack_pointer + local.get $4 + i32.store offset=4 + local.get $4 + local.get $0 + call $"~lib/map/Map#has" i32.eqz if - global.get $~lib/memory/__stack_pointer - local.get $7 - i32.store - local.get $7 - local.get $0 - local.get $8 - i32.load - call $~lib/array/Array#__set - local.get $0 - i32.const 1 - i32.add - local.set $0 + i32.const 0 + i32.const 1776 + i32.const 53 + i32.const 5 + call $~lib/builtins/abort + unreachable end - local.get $3 + global.get $~lib/memory/__stack_pointer + local.get $4 + i32.store offset=4 + local.get $4 + local.get $0 + call $"~lib/map/Map#delete" + global.get $~lib/memory/__stack_pointer + local.get $4 + i32.store offset=4 + local.get $4 + local.get $0 + call $"~lib/map/Map#has" + if + i32.const 0 + i32.const 1776 + i32.const 55 + i32.const 5 + call $~lib/builtins/abort + unreachable + end + local.get $0 i32.const 1 i32.add - local.set $3 - br $for-loop|00 + local.set $0 + br $for-loop|4 end end global.get $~lib/memory/__stack_pointer - local.get $7 - i32.store - local.get $7 - local.get $0 - call $~lib/array/Array#set:length - global.get $~lib/memory/__stack_pointer - i32.const 8 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $7 - i32.store offset=8 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - global.get $~lib/memory/__stack_pointer - local.get $1 - call $"~lib/map/Map#values" - local.tee $0 - i32.store offset=12 - global.get $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - i32.const 12 - i32.sub - global.set $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - i32.const 1896 - i32.lt_s - br_if $folding-inner1 - global.get $~lib/memory/__stack_pointer - i64.const 0 - i64.store - global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.store offset=8 - global.get $~lib/memory/__stack_pointer - i32.const 24 - i32.const 20 - call $~lib/rt/itcms/__new - local.tee $4 - i32.store - global.get $~lib/memory/__stack_pointer - local.get $4 - i32.store offset=4 - i32.const 16 - call $~lib/arraybuffer/ArrayBuffer#constructor - local.set $5 - global.get $~lib/memory/__stack_pointer - local.get $5 - i32.store offset=8 - local.get $4 - local.get $5 - i32.store - local.get $4 - local.get $5 - call $~lib/rt/itcms/__link - global.get $~lib/memory/__stack_pointer - local.get $4 - i32.store offset=4 - local.get $4 - i32.const 3 - i32.store offset=4 - global.get $~lib/memory/__stack_pointer local.get $4 i32.store offset=4 - i32.const 48 - call $~lib/arraybuffer/ArrayBuffer#constructor - local.set $5 - global.get $~lib/memory/__stack_pointer - local.get $5 - i32.store offset=8 - local.get $4 - local.get $5 - i32.store offset=8 local.get $4 - local.get $5 - call $~lib/rt/itcms/__link + call $"~lib/map/Map#get:size" + i32.const 50 + i32.ne + if + i32.const 0 + i32.const 1776 + i32.const 57 + i32.const 3 + call $~lib/builtins/abort + unreachable + end global.get $~lib/memory/__stack_pointer local.get $4 i32.store offset=4 local.get $4 - i32.const 4 - i32.store offset=12 + call $"~lib/map/Map#clear" global.get $~lib/memory/__stack_pointer local.get $4 i32.store offset=4 local.get $4 - i32.const 0 - i32.store offset=16 + call $"~lib/map/Map#get:size" + if + i32.const 0 + i32.const 1776 + i32.const 61 + i32.const 3 + call $~lib/builtins/abort + unreachable + end global.get $~lib/memory/__stack_pointer - local.get $4 - i32.store offset=4 - local.get $4 + i32.const 38 + i32.const 2416 + call $~lib/rt/__newArray + local.tee $1 + i32.store offset=24 i32.const 0 - i32.store offset=20 - global.get $~lib/memory/__stack_pointer - i32.const 12 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $4 - i32.store offset=16 - global.get $~lib/memory/__stack_pointer - call $"~lib/map/Map#constructor" - local.tee $3 - i32.store offset=20 - loop $for-loop|2 - global.get $~lib/memory/__stack_pointer - local.get $7 - i32.store offset=4 - local.get $7 - call $~lib/array/Array#get:length - local.get $2 - i32.gt_s + local.set $0 + loop $for-loop|5 + local.get $0 + i32.const 100 + i32.lt_u if global.get $~lib/memory/__stack_pointer - local.get $7 + local.get $1 i32.store offset=4 global.get $~lib/memory/__stack_pointer - i32.const 4 + global.get $~lib/memory/__stack_pointer + i32.const 8 i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 1896 + i32.const 3104 i32.lt_s br_if $folding-inner1 global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.store - global.get $~lib/memory/__stack_pointer - local.get $7 - i32.store - local.get $2 - local.get $7 - i32.load offset=12 - i32.ge_u - if - i32.const 1248 - i32.const 1728 - i32.const 114 - i32.const 42 - call $~lib/builtins/abort - unreachable - end + i64.const 0 + i64.store global.get $~lib/memory/__stack_pointer - local.get $7 + i32.const 8 + i32.const 37 + call $~lib/rt/itcms/__new + local.tee $3 i32.store - local.get $7 - i32.load offset=4 - local.get $2 - i32.const 2 - i32.shl - i32.add - i32.load - local.set $5 - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.add - global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - local.get $0 + local.get $3 i32.store offset=4 - local.get $0 - local.get $2 - call $~lib/array/Array#__get - local.set $6 global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - local.get $1 - local.get $5 - call $"~lib/map/Map#has" - i32.eqz - if - i32.const 0 - i32.const 1568 - i32.const 31 - i32.const 5 - call $~lib/builtins/abort - unreachable - end + local.get $3 + call $~lib/object/Object#constructor + local.tee $3 + i32.store global.get $~lib/memory/__stack_pointer - local.get $1 + local.get $3 i32.store offset=4 - local.get $1 - local.get $6 - i32.const 20 - i32.sub - call $"~lib/map/Map#has" - i32.eqz - if - i32.const 0 - i32.const 1568 - i32.const 32 - i32.const 5 - call $~lib/builtins/abort - unreachable - end + local.get $3 + i32.const 0 + i32.store global.get $~lib/memory/__stack_pointer - local.get $4 + local.get $3 i32.store offset=4 - local.get $4 - local.get $5 - local.get $5 - call $"~lib/map/Map#set" + local.get $3 + i32.const 0 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $3 + i32.store offset=32 + global.get $~lib/memory/__stack_pointer + local.get $3 + i32.store offset=36 + local.get $3 + local.get $0 + i32.store global.get $~lib/memory/__stack_pointer local.get $3 + i32.store offset=36 + local.get $3 + local.get $0 + i32.const 10 + i32.add i32.store offset=4 + global.get $~lib/memory/__stack_pointer local.get $3 - local.get $6 - i32.const 20 - i32.sub - local.tee $5 - local.get $5 - call $"~lib/map/Map#set" - local.get $2 + i32.store offset=28 + local.get $1 + local.get $3 + call $"~lib/array/Array<~lib/map/KeyValue>#push" + local.get $0 i32.const 1 i32.add - local.set $2 - br $for-loop|2 + local.set $0 + br $for-loop|5 end end global.get $~lib/memory/__stack_pointer - local.get $4 + local.get $1 i32.store offset=4 - local.get $4 - call $"~lib/map/Map#get:size" - i32.const 100 - i32.ne - if - i32.const 0 - i32.const 1568 - i32.const 36 - i32.const 3 - call $~lib/builtins/abort - unreachable - end global.get $~lib/memory/__stack_pointer - local.get $3 + local.get $1 + call $"~lib/map/Map#constructor" + local.tee $1 + i32.store + global.get $~lib/memory/__stack_pointer + local.get $1 i32.store offset=4 - local.get $3 + local.get $1 call $"~lib/map/Map#get:size" i32.const 100 i32.ne if i32.const 0 - i32.const 1568 - i32.const 37 + i32.const 1776 + i32.const 74 i32.const 3 call $~lib/builtins/abort unreachable end i32.const 0 local.set $0 - loop $for-loop|3 + loop $for-loop|6 local.get $0 - i32.const 50 + i32.const 100 i32.lt_u if global.get $~lib/memory/__stack_pointer @@ -14089,8 +18191,8 @@ i32.eqz if i32.const 0 - i32.const 1568 - i32.const 41 + i32.const 1776 + i32.const 76 i32.const 5 call $~lib/builtins/abort unreachable @@ -14102,13 +18204,13 @@ local.get $0 call $"~lib/map/Map#get" local.get $0 - i32.const 20 + i32.const 10 i32.add i32.ne if i32.const 0 - i32.const 1568 - i32.const 42 + i32.const 1776 + i32.const 77 i32.const 5 call $~lib/builtins/abort unreachable @@ -14127,8 +18229,8 @@ call $"~lib/map/Map#has" if i32.const 0 - i32.const 1568 - i32.const 44 + i32.const 1776 + i32.const 79 i32.const 5 call $~lib/builtins/abort unreachable @@ -14137,7 +18239,7 @@ i32.const 1 i32.add local.set $0 - br $for-loop|3 + br $for-loop|6 end end global.get $~lib/memory/__stack_pointer @@ -14145,133 +18247,234 @@ i32.store offset=4 local.get $1 call $"~lib/map/Map#get:size" - i32.const 50 - i32.ne if i32.const 0 - i32.const 1568 - i32.const 46 + i32.const 1776 + i32.const 81 i32.const 3 call $~lib/builtins/abort unreachable end - i32.const 0 - local.set $0 - loop $for-loop|4 - local.get $0 - i32.const 50 - i32.lt_u + global.get $~lib/memory/__stack_pointer + i32.const 40 + i32.add + global.set $~lib/memory/__stack_pointer + return + end + i32.const 35904 + i32.const 35952 + i32.const 1 + i32.const 1 + call $~lib/builtins/abort + unreachable + ) + (func $"~lib/map/Map#rehash" (param $0 i32) (param $1 i32) + (local $2 i32) + (local $3 i32) + (local $4 i32) + (local $5 i32) + (local $6 i64) + (local $7 i32) + (local $8 i32) + (local $9 i32) + global.get $~lib/memory/__stack_pointer + i32.const 16 + i32.sub + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 3104 + i32.lt_s + if + i32.const 35904 + i32.const 35952 + i32.const 1 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store + global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store offset=8 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.const 1 + i32.add + local.tee $2 + i32.const 2 + i32.shl + call $~lib/arraybuffer/ArrayBuffer#constructor + local.tee $7 + i32.store + global.get $~lib/memory/__stack_pointer + local.get $2 + i32.const 3 + i32.shl + i32.const 3 + i32.div_s + local.tee $5 + i32.const 4 + i32.shl + call $~lib/arraybuffer/ArrayBuffer#constructor + local.tee $3 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=8 + local.get $0 + i32.load offset=8 + local.set $8 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=8 + local.get $8 + local.get $0 + i32.load offset=16 + i32.const 4 + i32.shl + i32.add + local.set $4 + local.get $3 + local.set $2 + loop $while-continue|0 + local.get $4 + local.get $8 + i32.ne + if + local.get $8 + i32.load offset=12 + i32.const 1 + i32.and + i32.eqz if - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - local.get $1 - local.get $0 - call $"~lib/map/Map#has" - if - i32.const 0 - i32.const 1568 - i32.const 50 - i32.const 5 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 + local.get $2 + local.get $8 + i64.load + local.tee $6 + i64.store + local.get $2 + local.get $8 + i32.load offset=8 + i32.store offset=8 + local.get $2 + local.get $7 local.get $1 - local.get $0 - local.get $0 - i32.const 10 + local.get $6 + i32.wrap_i64 + i32.const -1028477379 + i32.mul + i32.const 374761401 i32.add - call $"~lib/map/Map#set" - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - local.get $1 - local.get $0 - call $"~lib/map/Map#has" - i32.eqz - if - i32.const 0 - i32.const 1568 - i32.const 52 - i32.const 5 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - local.get $1 - local.get $0 - call $"~lib/map/Map#delete" - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - local.get $1 - local.get $0 - call $"~lib/map/Map#has" - if - i32.const 0 - i32.const 1568 - i32.const 54 - i32.const 5 - call $~lib/builtins/abort - unreachable - end - local.get $0 - i32.const 1 + i32.const 17 + i32.rotl + i32.const 668265263 + i32.mul + local.get $6 + i64.const 32 + i64.shr_u + i32.wrap_i64 + i32.const -1028477379 + i32.mul + i32.add + i32.const 17 + i32.rotl + i32.const 668265263 + i32.mul + local.tee $9 + i32.const 15 + i32.shr_u + local.get $9 + i32.xor + i32.const -2048144777 + i32.mul + local.tee $9 + i32.const 13 + i32.shr_u + local.get $9 + i32.xor + i32.const -1028477379 + i32.mul + local.tee $9 + i32.const 16 + i32.shr_u + local.get $9 + i32.xor + i32.and + i32.const 2 + i32.shl i32.add - local.set $0 - br $for-loop|4 + local.tee $9 + i32.load + i32.store offset=12 + local.get $9 + local.get $2 + i32.store + local.get $2 + i32.const 16 + i32.add + local.set $2 end + local.get $8 + i32.const 16 + i32.add + local.set $8 + br $while-continue|0 end - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - local.get $1 - call $"~lib/map/Map#get:size" - i32.const 50 - i32.ne - if - i32.const 0 - i32.const 1568 - i32.const 56 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - local.get $1 - call $"~lib/map/Map#clear" - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - local.get $1 - call $"~lib/map/Map#get:size" - if - i32.const 0 - i32.const 1568 - i32.const 60 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - i32.const 24 - i32.add - global.set $~lib/memory/__stack_pointer - return end - i32.const 34688 - i32.const 34736 - i32.const 1 - i32.const 1 - call $~lib/builtins/abort - unreachable + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=8 + global.get $~lib/memory/__stack_pointer + local.get $7 + i32.store offset=12 + local.get $0 + local.get $7 + i32.store + local.get $0 + local.get $7 + i32.const 0 + call $~lib/rt/itcms/__link + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=8 + local.get $0 + local.get $1 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=8 + global.get $~lib/memory/__stack_pointer + local.get $3 + i32.store offset=12 + local.get $0 + local.get $3 + i32.store offset=8 + local.get $0 + local.get $3 + i32.const 0 + call $~lib/rt/itcms/__link + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=8 + local.get $0 + local.get $5 + i32.store offset=12 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=8 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=12 + local.get $0 + local.get $0 + i32.load offset=20 + i32.store offset=16 + global.get $~lib/memory/__stack_pointer + i32.const 16 + i32.add + global.set $~lib/memory/__stack_pointer ) (func $"~lib/map/Map#find" (param $0 i32) (param $1 i64) (param $2 i32) (result i32) (local $3 i32) @@ -14280,11 +18483,11 @@ i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 1896 + i32.const 3104 i32.lt_s if - i32.const 34688 - i32.const 34736 + i32.const 35904 + i32.const 35952 i32.const 1 i32.const 1 call $~lib/builtins/abort @@ -14347,97 +18550,25 @@ global.set $~lib/memory/__stack_pointer i32.const 0 ) - (func $"~lib/map/Map#has" (param $0 i32) (param $1 i64) (result i32) - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.sub - global.set $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - i32.const 1896 - i32.lt_s - if - i32.const 34688 - i32.const 34736 - i32.const 1 - i32.const 1 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.store - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store - local.get $0 - local.get $1 - local.get $1 - i32.wrap_i64 - i32.const -1028477379 - i32.mul - i32.const 374761401 - i32.add - i32.const 17 - i32.rotl - i32.const 668265263 - i32.mul - local.get $1 - i64.const 32 - i64.shr_u - i32.wrap_i64 - i32.const -1028477379 - i32.mul - i32.add - i32.const 17 - i32.rotl - i32.const 668265263 - i32.mul - local.tee $0 - i32.const 15 - i32.shr_u - local.get $0 - i32.xor - i32.const -2048144777 - i32.mul - local.tee $0 - i32.const 13 - i32.shr_u - local.get $0 - i32.xor - i32.const -1028477379 - i32.mul - local.tee $0 - i32.const 16 - i32.shr_u - local.get $0 - i32.xor - call $"~lib/map/Map#find" - i32.const 0 - i32.ne - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.add - global.set $~lib/memory/__stack_pointer - ) - (func $"~lib/map/Map#rehash" (param $0 i32) (param $1 i32) + (func $"~lib/map/Map#constructor" (param $0 i32) (result i32) + (local $1 i32) (local $2 i32) - (local $3 i32) + (local $3 i64) (local $4 i32) (local $5 i32) - (local $6 i64) + (local $6 i32) (local $7 i32) (local $8 i32) - (local $9 i32) global.get $~lib/memory/__stack_pointer i32.const 16 i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 1896 + i32.const 3104 i32.lt_s if - i32.const 34688 - i32.const 34736 + i32.const 35904 + i32.const 35952 i32.const 1 i32.const 1 call $~lib/builtins/abort @@ -14450,69 +18581,142 @@ i64.const 0 i64.store offset=8 global.get $~lib/memory/__stack_pointer + i32.const 24 + i32.const 43 + call $~lib/rt/itcms/__new + local.tee $1 + i32.store + global.get $~lib/memory/__stack_pointer local.get $1 - i32.const 1 - i32.add - local.tee $2 - i32.const 2 - i32.shl + i32.store offset=4 + i32.const 16 call $~lib/arraybuffer/ArrayBuffer#constructor - local.tee $7 + local.set $4 + global.get $~lib/memory/__stack_pointer + local.get $4 + i32.store offset=8 + local.get $1 + local.get $4 i32.store + local.get $1 + local.get $4 + i32.const 0 + call $~lib/rt/itcms/__link global.get $~lib/memory/__stack_pointer - local.get $2 - i32.const 3 - i32.shl + local.get $1 + i32.store offset=4 + local.get $1 i32.const 3 - i32.div_s - local.tee $5 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + i32.const 64 + call $~lib/arraybuffer/ArrayBuffer#constructor + local.set $4 + global.get $~lib/memory/__stack_pointer + local.get $4 + i32.store offset=8 + local.get $1 + local.get $4 + i32.store offset=8 + local.get $1 + local.get $4 + i32.const 0 + call $~lib/rt/itcms/__link + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + local.get $1 i32.const 4 - i32.shl - call $~lib/arraybuffer/ArrayBuffer#constructor - local.tee $3 + i32.store offset=12 + global.get $~lib/memory/__stack_pointer + local.get $1 i32.store offset=4 + local.get $1 + i32.const 0 + i32.store offset=16 global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=8 - local.get $0 - i32.load offset=8 - local.set $8 + local.get $1 + i32.store offset=4 + local.get $1 + i32.const 0 + i32.store offset=20 global.get $~lib/memory/__stack_pointer local.get $0 - i32.store offset=8 - local.get $8 + i32.store offset=4 local.get $0 - i32.load offset=16 - i32.const 4 - i32.shl - i32.add - local.set $4 - local.get $3 - local.set $2 - loop $while-continue|0 + call $"~lib/array/Array<~lib/map/KeyValue>#get:length" + local.tee $4 + i32.const 0 + i32.gt_s + if + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 local.get $4 - local.get $8 - i32.ne + local.get $1 + i32.load offset=12 + i32.ge_s if - local.get $8 - i32.load offset=12 - i32.const 1 - i32.and - i32.eqz + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + local.get $1 + local.get $4 + i32.store offset=4 + end + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=8 + local.get $1 + local.get $1 + i32.load offset=4 + i32.const 1 + i32.shl + i32.const 1 + i32.or + call $"~lib/map/Map#rehash" + loop $for-loop|0 + local.get $2 + local.get $4 + i32.lt_s if + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=8 + local.get $0 local.get $2 - local.get $8 + call $"~lib/array/Array<~lib/map/KeyValue>#__get" + local.set $5 + global.get $~lib/memory/__stack_pointer + local.get $5 + i32.store offset=4 + local.get $5 i64.load - local.tee $6 - i64.store - local.get $2 - local.get $8 - i32.load offset=8 + local.set $3 + global.get $~lib/memory/__stack_pointer + local.get $0 i32.store offset=8 + local.get $0 local.get $2 - local.get $7 + call $"~lib/array/Array<~lib/map/KeyValue>#__get" + local.set $5 + global.get $~lib/memory/__stack_pointer + local.get $5 + i32.store offset=4 + local.get $5 + i32.load offset=8 + local.set $6 + global.get $~lib/memory/__stack_pointer local.get $1 - local.get $6 + i32.store offset=4 + local.get $1 + local.get $3 + local.get $3 i32.wrap_i64 i32.const -1028477379 i32.mul @@ -14522,7 +18726,7 @@ i32.rotl i32.const 668265263 i32.mul - local.get $6 + local.get $3 i64.const 32 i64.shr_u i32.wrap_i64 @@ -14533,95 +18737,185 @@ i32.rotl i32.const 668265263 i32.mul - local.tee $9 + local.tee $5 i32.const 15 i32.shr_u - local.get $9 + local.get $5 i32.xor i32.const -2048144777 i32.mul - local.tee $9 + local.tee $5 i32.const 13 i32.shr_u - local.get $9 + local.get $5 i32.xor i32.const -1028477379 i32.mul - local.tee $9 + local.tee $5 i32.const 16 i32.shr_u - local.get $9 + local.get $5 i32.xor - i32.and - i32.const 2 - i32.shl - i32.add - local.tee $9 - i32.load - i32.store offset=12 - local.get $9 - local.get $2 - i32.store + local.tee $7 + call $"~lib/map/Map#find" + local.tee $5 + if + local.get $5 + local.get $6 + i32.store offset=8 + else + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.load offset=8 + local.tee $5 + i32.store offset=12 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=8 + local.get $1 + local.get $1 + i32.load offset=16 + local.tee $8 + i32.const 1 + i32.add + i32.store offset=16 + local.get $5 + local.get $8 + i32.const 4 + i32.shl + i32.add + local.tee $5 + local.get $3 + i64.store + local.get $5 + local.get $6 + i32.store offset=8 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=8 + local.get $1 + local.get $1 + i32.load offset=20 + i32.const 1 + i32.add + i32.store offset=20 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + local.get $1 + i32.load + local.set $6 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + local.get $5 + local.get $6 + local.get $7 + local.get $1 + i32.load offset=4 + i32.and + i32.const 2 + i32.shl + i32.add + local.tee $6 + i32.load + i32.store offset=12 + local.get $6 + local.get $5 + i32.store + end local.get $2 - i32.const 16 + i32.const 1 i32.add local.set $2 + br $for-loop|0 end - local.get $8 - i32.const 16 - i32.add - local.set $8 - br $while-continue|0 end end global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=8 - global.get $~lib/memory/__stack_pointer - local.get $7 - i32.store offset=12 - local.get $0 - local.get $7 - i32.store - local.get $0 - local.get $7 - call $~lib/rt/itcms/__link - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=8 - local.get $0 + i32.const 16 + i32.add + global.set $~lib/memory/__stack_pointer local.get $1 - i32.store offset=4 + ) + (func $"~lib/map/Map#has" (param $0 i32) (param $1 i64) (result i32) global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=8 + i32.const 4 + i32.sub + global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - local.get $3 - i32.store offset=12 - local.get $0 - local.get $3 - i32.store offset=8 - local.get $0 - local.get $3 - call $~lib/rt/itcms/__link + i32.const 3104 + i32.lt_s + if + i32.const 35904 + i32.const 35952 + i32.const 1 + i32.const 1 + call $~lib/builtins/abort + unreachable + end global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=8 - local.get $0 - local.get $5 - i32.store offset=12 + i32.const 0 + i32.store global.get $~lib/memory/__stack_pointer local.get $0 - i32.store offset=8 - global.get $~lib/memory/__stack_pointer + i32.store + local.get $0 + local.get $1 + local.get $1 + i32.wrap_i64 + i32.const -1028477379 + i32.mul + i32.const 374761401 + i32.add + i32.const 17 + i32.rotl + i32.const 668265263 + i32.mul + local.get $1 + i64.const 32 + i64.shr_u + i32.wrap_i64 + i32.const -1028477379 + i32.mul + i32.add + i32.const 17 + i32.rotl + i32.const 668265263 + i32.mul + local.tee $0 + i32.const 15 + i32.shr_u local.get $0 - i32.store offset=12 + i32.xor + i32.const -2048144777 + i32.mul + local.tee $0 + i32.const 13 + i32.shr_u local.get $0 + i32.xor + i32.const -1028477379 + i32.mul + local.tee $0 + i32.const 16 + i32.shr_u local.get $0 - i32.load offset=20 - i32.store offset=16 + i32.xor + call $"~lib/map/Map#find" + i32.const 0 + i32.ne global.get $~lib/memory/__stack_pointer - i32.const 16 + i32.const 4 i32.add global.set $~lib/memory/__stack_pointer ) @@ -14634,11 +18928,11 @@ i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 1896 + i32.const 3104 i32.lt_s if - i32.const 34688 - i32.const 34736 + i32.const 35904 + i32.const 35952 i32.const 1 i32.const 1 call $~lib/builtins/abort @@ -14821,108 +19115,509 @@ i32.load i32.store offset=12 local.get $0 - local.get $3 - i32.store + local.get $3 + i32.store + end + global.get $~lib/memory/__stack_pointer + i32.const 12 + i32.add + global.set $~lib/memory/__stack_pointer + ) + (func $"~lib/map/Map#get" (param $0 i32) (param $1 i64) (result i32) + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.sub + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 3104 + i32.lt_s + if + i32.const 35904 + i32.const 35952 + i32.const 1 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + local.get $0 + local.get $1 + local.get $1 + i32.wrap_i64 + i32.const -1028477379 + i32.mul + i32.const 374761401 + i32.add + i32.const 17 + i32.rotl + i32.const 668265263 + i32.mul + local.get $1 + i64.const 32 + i64.shr_u + i32.wrap_i64 + i32.const -1028477379 + i32.mul + i32.add + i32.const 17 + i32.rotl + i32.const 668265263 + i32.mul + local.tee $0 + i32.const 15 + i32.shr_u + local.get $0 + i32.xor + i32.const -2048144777 + i32.mul + local.tee $0 + i32.const 13 + i32.shr_u + local.get $0 + i32.xor + i32.const -1028477379 + i32.mul + local.tee $0 + i32.const 16 + i32.shr_u + local.get $0 + i32.xor + call $"~lib/map/Map#find" + local.tee $0 + i32.eqz + if + i32.const 1824 + i32.const 1888 + i32.const 148 + i32.const 17 + call $~lib/builtins/abort + unreachable + end + local.get $0 + i32.load offset=8 + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + ) + (func $~lib/array/Array#__set (param $0 i32) (param $1 i32) (param $2 i64) + (local $3 i32) + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.sub + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 3104 + i32.lt_s + if + i32.const 35904 + i32.const 35952 + i32.const 1 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + 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 1360 + i32.const 1568 + 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 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + local.get $0 + local.get $3 + i32.store offset=12 + end + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + local.get $0 + i32.load offset=4 + local.get $1 + i32.const 3 + i32.shl + i32.add + local.get $2 + i64.store + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + ) + (func $~lib/array/Array#set:length (param $0 i32) (param $1 i32) + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.sub + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 3104 + i32.lt_s + if + i32.const 35904 + i32.const 35952 + i32.const 1 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store + local.get $0 + local.get $1 + i32.const 3 + i32.const 0 + call $~lib/array/ensureCapacity + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + local.get $0 + local.get $1 + i32.store offset=12 + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + ) + (func $"~lib/map/Map#values" (param $0 i32) (result i32) + (local $1 i32) + (local $2 i32) + (local $3 i32) + (local $4 i32) + (local $5 i32) + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.sub + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 3104 + i32.lt_s + if + i32.const 35904 + i32.const 35952 + i32.const 1 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + local.get $0 + i32.load offset=8 + local.set $3 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.load offset=16 + local.tee $0 + call $~lib/array/Array#constructor + local.tee $5 + i32.store offset=4 + loop $for-loop|0 + local.get $0 + local.get $2 + i32.gt_s + if + local.get $3 + local.get $2 + i32.const 4 + i32.shl + i32.add + local.tee $4 + i32.load offset=12 + i32.const 1 + i32.and + i32.eqz + if + global.get $~lib/memory/__stack_pointer + local.get $5 + i32.store + local.get $5 + local.get $1 + local.get $4 + i32.load offset=8 + call $~lib/array/Array#__set + local.get $1 + i32.const 1 + i32.add + local.set $1 + end + local.get $2 + i32.const 1 + i32.add + local.set $2 + br $for-loop|0 + end end global.get $~lib/memory/__stack_pointer - i32.const 12 + local.get $5 + i32.store + local.get $5 + local.get $1 + call $~lib/array/Array#set:length + global.get $~lib/memory/__stack_pointer + i32.const 8 i32.add global.set $~lib/memory/__stack_pointer + local.get $5 ) - (func $"~lib/map/Map#get" (param $0 i32) (param $1 i64) (result i32) + (func $"~lib/map/Map#rehash" (param $0 i32) (param $1 i32) + (local $2 i32) + (local $3 i32) + (local $4 i32) + (local $5 i32) + (local $6 i64) + (local $7 i32) + (local $8 i32) + (local $9 i32) global.get $~lib/memory/__stack_pointer - i32.const 4 + i32.const 16 i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 1896 + i32.const 3104 i32.lt_s if - i32.const 34688 - i32.const 34736 + i32.const 35904 + i32.const 35952 i32.const 1 i32.const 1 call $~lib/builtins/abort unreachable end global.get $~lib/memory/__stack_pointer - i32.const 0 + i64.const 0 + i64.store + global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store offset=8 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.const 1 + i32.add + local.tee $2 + i32.const 2 + i32.shl + call $~lib/arraybuffer/ArrayBuffer#constructor + local.tee $7 i32.store global.get $~lib/memory/__stack_pointer + local.get $2 + i32.const 3 + i32.shl + i32.const 3 + i32.div_s + local.tee $5 + i32.const 24 + i32.mul + call $~lib/arraybuffer/ArrayBuffer#constructor + local.tee $3 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer local.get $0 - i32.store + i32.store offset=8 local.get $0 - local.get $1 - local.get $1 - i32.wrap_i64 - i32.const -1028477379 + i32.load offset=8 + local.set $8 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=8 + local.get $8 + local.get $0 + i32.load offset=16 + i32.const 24 i32.mul - i32.const 374761401 i32.add - i32.const 17 - i32.rotl - i32.const 668265263 - i32.mul + local.set $4 + local.get $3 + local.set $2 + loop $while-continue|0 + local.get $4 + local.get $8 + i32.ne + if + local.get $8 + i32.load offset=16 + i32.const 1 + i32.and + i32.eqz + if + local.get $2 + local.get $8 + i64.load + local.tee $6 + i64.store + local.get $2 + local.get $8 + i64.load offset=8 + i64.store offset=8 + local.get $2 + local.get $7 + local.get $1 + local.get $6 + i32.wrap_i64 + i32.const -1028477379 + i32.mul + i32.const 374761401 + i32.add + i32.const 17 + i32.rotl + i32.const 668265263 + i32.mul + local.get $6 + i64.const 32 + i64.shr_u + i32.wrap_i64 + i32.const -1028477379 + i32.mul + i32.add + i32.const 17 + i32.rotl + i32.const 668265263 + i32.mul + local.tee $9 + i32.const 15 + i32.shr_u + local.get $9 + i32.xor + i32.const -2048144777 + i32.mul + local.tee $9 + i32.const 13 + i32.shr_u + local.get $9 + i32.xor + i32.const -1028477379 + i32.mul + local.tee $9 + i32.const 16 + i32.shr_u + local.get $9 + i32.xor + i32.and + i32.const 2 + i32.shl + i32.add + local.tee $9 + i32.load + i32.store offset=16 + local.get $9 + local.get $2 + i32.store + local.get $2 + i32.const 24 + i32.add + local.set $2 + end + local.get $8 + i32.const 24 + i32.add + local.set $8 + br $while-continue|0 + end + end + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=8 + global.get $~lib/memory/__stack_pointer + local.get $7 + i32.store offset=12 + local.get $0 + local.get $7 + i32.store + local.get $0 + local.get $7 + i32.const 0 + call $~lib/rt/itcms/__link + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=8 + local.get $0 local.get $1 - i64.const 32 - i64.shr_u - i32.wrap_i64 - i32.const -1028477379 - i32.mul - i32.add - i32.const 17 - i32.rotl - i32.const 668265263 - i32.mul - local.tee $0 - i32.const 15 - i32.shr_u + i32.store offset=4 + global.get $~lib/memory/__stack_pointer local.get $0 - i32.xor - i32.const -2048144777 - i32.mul - local.tee $0 - i32.const 13 - i32.shr_u + i32.store offset=8 + global.get $~lib/memory/__stack_pointer + local.get $3 + i32.store offset=12 local.get $0 - i32.xor - i32.const -1028477379 - i32.mul - local.tee $0 - i32.const 16 - i32.shr_u + local.get $3 + i32.store offset=8 + local.get $0 + local.get $3 + i32.const 0 + call $~lib/rt/itcms/__link + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=8 + local.get $0 + local.get $5 + i32.store offset=12 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=8 + global.get $~lib/memory/__stack_pointer local.get $0 - i32.xor - call $"~lib/map/Map#find" - local.tee $0 - i32.eqz - if - i32.const 1616 - i32.const 1680 - i32.const 105 - i32.const 17 - call $~lib/builtins/abort - unreachable - end + i32.store offset=12 local.get $0 - i32.load offset=8 + local.get $0 + i32.load offset=20 + i32.store offset=16 global.get $~lib/memory/__stack_pointer - i32.const 4 + i32.const 16 i32.add global.set $~lib/memory/__stack_pointer ) - (func $~lib/array/Array#__set (param $0 i32) (param $1 i32) (param $2 i64) + (func $"~lib/map/Map#find" (param $0 i32) (param $1 i64) (param $2 i32) (result i32) (local $3 i32) global.get $~lib/memory/__stack_pointer i32.const 4 i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 1896 + i32.const 3104 i32.lt_s if - i32.const 34688 - i32.const 34736 + i32.const 35904 + i32.const 35952 i32.const 1 i32.const 1 call $~lib/builtins/abort @@ -14934,104 +19629,76 @@ global.get $~lib/memory/__stack_pointer local.get $0 i32.store - 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 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store - local.get $0 - local.get $3 - i32.store offset=12 - end + i32.load global.get $~lib/memory/__stack_pointer local.get $0 i32.store + local.get $2 local.get $0 i32.load offset=4 - local.get $1 - i32.const 3 + i32.and + i32.const 2 i32.shl i32.add - local.get $2 - i64.store - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.add - global.set $~lib/memory/__stack_pointer - ) - (func $~lib/array/Array#set:length (param $0 i32) (param $1 i32) - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.sub - global.set $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - i32.const 1896 - i32.lt_s - if - i32.const 34688 - i32.const 34736 - i32.const 1 - i32.const 1 - call $~lib/builtins/abort - unreachable + i32.load + local.set $0 + loop $while-continue|0 + local.get $0 + if + local.get $0 + i32.load offset=16 + local.tee $2 + i32.const 1 + i32.and + if (result i32) + i32.const 0 + else + local.get $1 + local.get $0 + i64.load + i64.eq + end + if + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $0 + return + end + local.get $2 + i32.const -2 + i32.and + local.set $0 + br $while-continue|0 + end end global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.store - local.get $0 - local.get $1 - i32.const 3 - i32.const 0 - call $~lib/array/ensureCapacity - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store - local.get $0 - local.get $1 - i32.store offset=12 - global.get $~lib/memory/__stack_pointer i32.const 4 i32.add global.set $~lib/memory/__stack_pointer + i32.const 0 ) - (func $"~lib/map/Map#values" (param $0 i32) (result i32) + (func $"~lib/map/Map#constructor" (param $0 i32) (result i32) (local $1 i32) (local $2 i32) - (local $3 i32) - (local $4 i32) + (local $3 i64) + (local $4 i64) (local $5 i32) + (local $6 i32) + (local $7 i32) + (local $8 i32) global.get $~lib/memory/__stack_pointer - i32.const 8 + i32.const 16 i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 1896 + i32.const 3104 i32.lt_s if - i32.const 34688 - i32.const 34736 + i32.const 35904 + i32.const 35952 i32.const 1 i32.const 1 call $~lib/builtins/abort @@ -15041,480 +19708,365 @@ i64.const 0 i64.store global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store - local.get $0 - i32.load offset=8 - local.set $3 + i64.const 0 + i64.store offset=8 global.get $~lib/memory/__stack_pointer - local.get $0 + i32.const 24 + i32.const 47 + call $~lib/rt/itcms/__new + local.tee $1 i32.store global.get $~lib/memory/__stack_pointer - local.get $0 - i32.load offset=16 - local.tee $0 - call $~lib/array/Array#constructor - local.tee $5 + local.get $1 i32.store offset=4 - loop $for-loop|0 - local.get $0 - local.get $2 - i32.gt_s - if - local.get $3 - local.get $2 - i32.const 4 - i32.shl - i32.add - local.tee $4 - i32.load offset=12 - i32.const 1 - i32.and - i32.eqz - if - global.get $~lib/memory/__stack_pointer - local.get $5 - i32.store - local.get $5 - local.get $1 - local.get $4 - i32.load offset=8 - call $~lib/array/Array#__set - local.get $1 - i32.const 1 - i32.add - local.set $1 - end - local.get $2 - i32.const 1 - i32.add - local.set $2 - br $for-loop|0 - end - end + i32.const 16 + call $~lib/arraybuffer/ArrayBuffer#constructor + local.set $5 global.get $~lib/memory/__stack_pointer local.get $5 + i32.store offset=8 + local.get $1 + local.get $5 i32.store + local.get $1 local.get $5 + i32.const 0 + call $~lib/rt/itcms/__link + global.get $~lib/memory/__stack_pointer local.get $1 - call $~lib/array/Array#set:length + i32.store offset=4 + local.get $1 + i32.const 3 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + i32.const 96 + call $~lib/arraybuffer/ArrayBuffer#constructor + local.set $5 global.get $~lib/memory/__stack_pointer - i32.const 8 - i32.add - global.set $~lib/memory/__stack_pointer local.get $5 - ) - (func $"~lib/map/Map#set" (param $0 i32) (param $1 i64) (param $2 i64) - (local $3 i32) - (local $4 i32) - (local $5 i32) - (local $6 i32) - (local $7 i32) - (local $8 i32) - (local $9 i64) - (local $10 i32) - (local $11 i32) - (local $12 i32) + i32.store offset=8 + local.get $1 + local.get $5 + i32.store offset=8 + local.get $1 + local.get $5 + i32.const 0 + call $~lib/rt/itcms/__link global.get $~lib/memory/__stack_pointer - i32.const 12 - i32.sub - global.set $~lib/memory/__stack_pointer - block $folding-inner1 - global.get $~lib/memory/__stack_pointer - i32.const 1896 - i32.lt_s - br_if $folding-inner1 - global.get $~lib/memory/__stack_pointer - i64.const 0 - i64.store - global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.store offset=8 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.sub - global.set $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - i32.const 1896 - i32.lt_s - br_if $folding-inner1 + local.get $1 + i32.store offset=4 + local.get $1 + i32.const 4 + i32.store offset=12 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + local.get $1 + i32.const 0 + i32.store offset=16 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + local.get $1 + i32.const 0 + i32.store offset=20 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + local.get $0 + call $"~lib/array/Array<~lib/map/KeyValue>#get:length" + local.tee $5 + i32.const 0 + i32.gt_s + if global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.store + local.get $1 + i32.store offset=4 + local.get $5 + local.get $1 + i32.load offset=12 + i32.ge_s + if + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + local.get $1 + local.get $5 + i32.store offset=4 + end global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store - local.get $0 - i32.load + local.get $1 + i32.store offset=4 global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store local.get $1 - i32.wrap_i64 - i32.const -1028477379 - i32.mul - i32.const 374761401 - i32.add - i32.const 17 - i32.rotl - i32.const 668265263 - i32.mul + i32.store offset=8 + local.get $1 local.get $1 - i64.const 32 - i64.shr_u - i32.wrap_i64 - i32.const -1028477379 - i32.mul - i32.add - i32.const 17 - i32.rotl - i32.const 668265263 - i32.mul - local.tee $3 - local.get $3 - i32.const 15 - i32.shr_u - i32.xor - i32.const -2048144777 - i32.mul - local.tee $3 - local.get $3 - i32.const 13 - i32.shr_u - i32.xor - i32.const -1028477379 - i32.mul - local.tee $3 - local.get $3 - i32.const 16 - i32.shr_u - i32.xor - local.tee $8 - local.get $0 i32.load offset=4 - i32.and - i32.const 2 + i32.const 1 i32.shl - i32.add - i32.load - local.set $3 - block $"__inlined_func$~lib/map/Map#find$1403" - loop $while-continue|0 - local.get $3 - if - local.get $3 - i32.load offset=16 - local.tee $4 - i32.const 1 - i32.and - if (result i32) - i32.const 0 - else - local.get $1 - local.get $3 - i64.load - i64.eq - end - if - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.add - global.set $~lib/memory/__stack_pointer - br $"__inlined_func$~lib/map/Map#find$1403" - end - local.get $4 - i32.const -2 - i32.and - local.set $3 - br $while-continue|0 - end - end - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.add - global.set $~lib/memory/__stack_pointer - i32.const 0 - local.set $3 - end - local.get $3 - if - local.get $3 + i32.const 1 + i32.or + call $"~lib/map/Map#rehash" + loop $for-loop|0 local.get $2 - i64.store offset=8 - else - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store - local.get $0 - i32.load offset=16 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store - local.get $0 - i32.load offset=12 - i32.eq + local.get $5 + i32.lt_s if - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 - i32.load offset=20 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 - i32.load offset=12 - i32.const 3 - i32.mul - i32.const 4 - i32.div_s - i32.lt_s - if (result i32) - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 - i32.load offset=4 - else - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 - i32.load offset=4 - i32.const 1 - i32.shl - i32.const 1 - i32.or - end - local.set $5 - global.get $~lib/memory/__stack_pointer - i32.const 16 - i32.sub - global.set $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - i32.const 1896 - i32.lt_s - br_if $folding-inner1 - global.get $~lib/memory/__stack_pointer - i64.const 0 - i64.store - global.get $~lib/memory/__stack_pointer - i64.const 0 - i64.store offset=8 - global.get $~lib/memory/__stack_pointer - local.get $5 - i32.const 1 - i32.add - local.tee $3 - i32.const 2 - i32.shl - call $~lib/arraybuffer/ArrayBuffer#constructor - local.tee $10 - i32.store - global.get $~lib/memory/__stack_pointer - local.get $3 - i32.const 3 - i32.shl - i32.const 3 - i32.div_s - local.tee $7 - i32.const 24 - i32.mul - call $~lib/arraybuffer/ArrayBuffer#constructor - local.tee $4 - i32.store offset=4 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=8 - local.get $0 - i32.load offset=8 - local.set $11 global.get $~lib/memory/__stack_pointer local.get $0 i32.store offset=8 - local.get $11 local.get $0 - i32.load offset=16 - i32.const 24 - i32.mul - i32.add + local.get $2 + call $"~lib/array/Array<~lib/map/KeyValue>#__get" local.set $6 - local.get $4 - local.set $3 - loop $while-continue|00 - local.get $6 - local.get $11 - i32.ne - if - local.get $11 - i32.load offset=16 - i32.const 1 - i32.and - i32.eqz - if - local.get $3 - local.get $11 - i64.load - local.tee $9 - i64.store - local.get $3 - local.get $11 - i64.load offset=8 - i64.store offset=8 - local.get $3 - local.get $10 - local.get $5 - local.get $9 - i32.wrap_i64 - i32.const -1028477379 - i32.mul - i32.const 374761401 - i32.add - i32.const 17 - i32.rotl - i32.const 668265263 - i32.mul - local.get $9 - i64.const 32 - i64.shr_u - i32.wrap_i64 - i32.const -1028477379 - i32.mul - i32.add - i32.const 17 - i32.rotl - i32.const 668265263 - i32.mul - local.tee $12 - local.get $12 - i32.const 15 - i32.shr_u - i32.xor - i32.const -2048144777 - i32.mul - local.tee $12 - local.get $12 - i32.const 13 - i32.shr_u - i32.xor - i32.const -1028477379 - i32.mul - local.tee $12 - local.get $12 - i32.const 16 - i32.shr_u - i32.xor - i32.and - i32.const 2 - i32.shl - i32.add - local.tee $12 - i32.load - i32.store offset=16 - local.get $12 - local.get $3 - i32.store - local.get $3 - i32.const 24 - i32.add - local.set $3 - end - local.get $11 - i32.const 24 - i32.add - local.set $11 - br $while-continue|00 - end - end - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=8 - global.get $~lib/memory/__stack_pointer - local.get $10 - i32.store offset=12 - local.get $0 - local.get $10 - i32.store - local.get $0 - local.get $10 - call $~lib/rt/itcms/__link global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=8 - local.get $0 - local.get $5 + local.get $6 i32.store offset=4 + local.get $6 + i64.load + local.set $3 global.get $~lib/memory/__stack_pointer local.get $0 i32.store offset=8 - global.get $~lib/memory/__stack_pointer - local.get $4 - i32.store offset=12 - local.get $0 - local.get $4 - i32.store offset=8 - local.get $0 - local.get $4 - call $~lib/rt/itcms/__link - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=8 - local.get $0 - local.get $7 - i32.store offset=12 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=8 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=12 - local.get $0 local.get $0 - i32.load offset=20 - i32.store offset=16 + local.get $2 + call $"~lib/array/Array<~lib/map/KeyValue>#__get" + local.set $6 + global.get $~lib/memory/__stack_pointer + local.get $6 + i32.store offset=4 + local.get $6 + i64.load offset=8 + local.set $4 global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + local.get $1 + local.get $3 + local.get $3 + i32.wrap_i64 + i32.const -1028477379 + i32.mul + i32.const 374761401 + i32.add + i32.const 17 + i32.rotl + i32.const 668265263 + i32.mul + local.get $3 + i64.const 32 + i64.shr_u + i32.wrap_i64 + i32.const -1028477379 + i32.mul + i32.add + i32.const 17 + i32.rotl + i32.const 668265263 + i32.mul + local.tee $6 + i32.const 15 + i32.shr_u + local.get $6 + i32.xor + i32.const -2048144777 + i32.mul + local.tee $6 + i32.const 13 + i32.shr_u + local.get $6 + i32.xor + i32.const -1028477379 + i32.mul + local.tee $6 i32.const 16 + i32.shr_u + local.get $6 + i32.xor + local.tee $6 + call $"~lib/map/Map#find" + local.tee $7 + if + local.get $7 + local.get $4 + i64.store offset=8 + else + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.load offset=8 + local.tee $7 + i32.store offset=12 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=8 + local.get $1 + local.get $1 + i32.load offset=16 + local.tee $8 + i32.const 1 + i32.add + i32.store offset=16 + local.get $7 + local.get $8 + i32.const 24 + i32.mul + i32.add + local.tee $7 + local.get $3 + i64.store + local.get $7 + local.get $4 + i64.store offset=8 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=8 + local.get $1 + local.get $1 + i32.load offset=20 + i32.const 1 + i32.add + i32.store offset=20 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + local.get $1 + i32.load + local.set $8 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + local.get $7 + local.get $8 + local.get $6 + local.get $1 + i32.load offset=4 + i32.and + i32.const 2 + i32.shl + i32.add + local.tee $6 + i32.load + i32.store offset=16 + local.get $6 + local.get $7 + i32.store + end + local.get $2 + i32.const 1 i32.add - global.set $~lib/memory/__stack_pointer + local.set $2 + br $for-loop|0 end - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.load offset=8 - local.tee $3 - i32.store offset=8 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 - local.get $0 - i32.load offset=16 - local.tee $4 - i32.const 1 - i32.add - i32.store offset=16 - local.get $3 - local.get $4 - i32.const 24 - i32.mul - i32.add - local.tee $3 - local.get $1 - i64.store - local.get $3 - local.get $2 - i64.store offset=8 + end + end + global.get $~lib/memory/__stack_pointer + i32.const 16 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $1 + ) + (func $"~lib/map/Map#set" (param $0 i32) (param $1 i64) (param $2 i64) + (local $3 i32) + (local $4 i32) + (local $5 i32) + global.get $~lib/memory/__stack_pointer + i32.const 12 + i32.sub + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 3104 + i32.lt_s + if + i32.const 35904 + i32.const 35952 + i32.const 1 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store offset=8 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + local.get $0 + local.get $1 + local.get $1 + i32.wrap_i64 + i32.const -1028477379 + i32.mul + i32.const 374761401 + i32.add + i32.const 17 + i32.rotl + i32.const 668265263 + i32.mul + local.get $1 + i64.const 32 + i64.shr_u + i32.wrap_i64 + i32.const -1028477379 + i32.mul + i32.add + i32.const 17 + i32.rotl + i32.const 668265263 + i32.mul + local.tee $3 + i32.const 15 + i32.shr_u + local.get $3 + i32.xor + i32.const -2048144777 + i32.mul + local.tee $3 + i32.const 13 + i32.shr_u + local.get $3 + i32.xor + i32.const -1028477379 + i32.mul + local.tee $3 + i32.const 16 + i32.shr_u + local.get $3 + i32.xor + local.tee $3 + call $"~lib/map/Map#find" + local.tee $4 + if + local.get $4 + local.get $2 + i64.store offset=8 + else + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + local.get $0 + i32.load offset=16 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + local.get $0 + i32.load offset=12 + i32.eq + if global.get $~lib/memory/__stack_pointer local.get $0 i32.store @@ -15522,48 +20074,112 @@ local.get $0 i32.store offset=4 local.get $0 - local.get $0 i32.load offset=20 - i32.const 1 - i32.add - i32.store offset=20 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store - local.get $0 - i32.load local.set $4 global.get $~lib/memory/__stack_pointer local.get $0 - i32.store - local.get $3 - local.get $4 - local.get $8 - local.get $0 - i32.load offset=4 - i32.and - i32.const 2 - i32.shl - i32.add - local.tee $0 - i32.load - i32.store offset=16 + i32.store offset=4 local.get $0 - local.get $3 - i32.store + local.get $4 + local.get $0 + i32.load offset=12 + i32.const 3 + i32.mul + i32.const 4 + i32.div_s + i32.lt_s + if (result i32) + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + local.get $0 + i32.load offset=4 + else + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + local.get $0 + i32.load offset=4 + i32.const 1 + i32.shl + i32.const 1 + i32.or + end + call $"~lib/map/Map#rehash" end global.get $~lib/memory/__stack_pointer - i32.const 12 + local.get $0 + i32.store + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.load offset=8 + local.tee $4 + i32.store offset=8 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + local.get $0 + local.get $0 + i32.load offset=16 + local.tee $5 + i32.const 1 i32.add - global.set $~lib/memory/__stack_pointer - return + i32.store offset=16 + local.get $4 + local.get $5 + i32.const 24 + i32.mul + i32.add + local.tee $4 + local.get $1 + i64.store + local.get $4 + local.get $2 + i64.store offset=8 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + local.get $0 + local.get $0 + i32.load offset=20 + i32.const 1 + i32.add + i32.store offset=20 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + local.get $0 + i32.load + local.set $5 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + local.get $4 + local.get $5 + local.get $3 + local.get $0 + i32.load offset=4 + i32.and + i32.const 2 + i32.shl + i32.add + local.tee $0 + i32.load + i32.store offset=16 + local.get $0 + local.get $4 + i32.store end - i32.const 34688 - i32.const 34736 - i32.const 1 - i32.const 1 - call $~lib/builtins/abort - unreachable + global.get $~lib/memory/__stack_pointer + i32.const 12 + i32.add + global.set $~lib/memory/__stack_pointer ) (func $"~lib/map/Map#delete" (param $0 i32) (param $1 i64) (local $2 i32) @@ -15573,11 +20189,11 @@ i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 1896 + i32.const 3104 i32.lt_s if - i32.const 34688 - i32.const 34736 + i32.const 35904 + i32.const 35952 i32.const 1 i32.const 1 call $~lib/builtins/abort @@ -15721,11 +20337,11 @@ i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 1896 + i32.const 3104 i32.lt_s if - i32.const 34688 - i32.const 34736 + i32.const 35904 + i32.const 35952 i32.const 1 i32.const 1 call $~lib/builtins/abort @@ -15748,6 +20364,7 @@ i32.store local.get $0 local.get $1 + i32.const 0 call $~lib/rt/itcms/__link global.get $~lib/memory/__stack_pointer local.get $0 @@ -15769,6 +20386,7 @@ i32.store offset=8 local.get $0 local.get $1 + i32.const 0 call $~lib/rt/itcms/__link global.get $~lib/memory/__stack_pointer local.get $0 @@ -15795,8 +20413,8 @@ ) (func $"std/map/testNumeric" (local $0 i32) - (local $1 i32) - (local $2 i64) + (local $1 i64) + (local $2 i32) (local $3 i32) (local $4 i32) (local $5 i32) @@ -15805,931 +20423,1613 @@ (local $8 i32) (local $9 i32) global.get $~lib/memory/__stack_pointer - i32.const 24 + i32.const 40 i32.sub global.set $~lib/memory/__stack_pointer block $folding-inner1 global.get $~lib/memory/__stack_pointer - i32.const 1896 + i32.const 3104 + i32.lt_s + br_if $folding-inner1 + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.const 40 + memory.fill + global.get $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 12 + i32.sub + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 3104 + i32.lt_s + br_if $folding-inner1 + global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store offset=8 + global.get $~lib/memory/__stack_pointer + i32.const 45 + i32.const 2448 + call $~lib/rt/__newArray + local.tee $4 + i32.store + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + local.get $4 + i32.store offset=8 + local.get $4 + call $"~lib/map/Map#constructor" + local.set $4 + global.get $~lib/memory/__stack_pointer + i32.const 12 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $4 + i32.store + loop $for-loop|0 + local.get $1 + i64.const 100 + i64.lt_s + if + global.get $~lib/memory/__stack_pointer + local.get $4 + i32.store offset=4 + local.get $4 + local.get $1 + call $"~lib/map/Map#has" + if + i32.const 0 + i32.const 1776 + i32.const 7 + i32.const 5 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + local.get $4 + i32.store offset=4 + local.get $4 + local.get $1 + local.get $1 + i32.wrap_i64 + i32.const 10 + i32.add + call $"~lib/map/Map#set" + global.get $~lib/memory/__stack_pointer + local.get $4 + i32.store offset=4 + local.get $4 + local.get $1 + call $"~lib/map/Map#has" + i32.eqz + if + i32.const 0 + i32.const 1776 + i32.const 9 + i32.const 5 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + local.get $4 + i32.store offset=4 + local.get $4 + local.get $1 + call $"~lib/map/Map#get" + local.get $1 + i32.wrap_i64 + i32.const 10 + i32.add + i32.ne + if + i32.const 0 + i32.const 1776 + i32.const 10 + i32.const 5 + call $~lib/builtins/abort + unreachable + end + local.get $1 + i64.const 1 + i64.add + local.set $1 + br $for-loop|0 + end + end + global.get $~lib/memory/__stack_pointer + local.get $4 + i32.store offset=4 + local.get $4 + call $"~lib/map/Map#get:size" + i32.const 100 + i32.ne + if + i32.const 0 + i32.const 1776 + i32.const 12 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + i64.const 0 + local.set $1 + loop $for-loop|1 + local.get $1 + i64.const 100 + i64.lt_s + if + global.get $~lib/memory/__stack_pointer + local.get $4 + i32.store offset=4 + local.get $4 + local.get $1 + call $"~lib/map/Map#has" + i32.eqz + if + i32.const 0 + i32.const 1776 + i32.const 16 + i32.const 5 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + local.get $4 + i32.store offset=4 + local.get $4 + local.get $1 + call $"~lib/map/Map#get" + local.get $1 + i32.wrap_i64 + i32.const 10 + i32.add + i32.ne + if + i32.const 0 + i32.const 1776 + i32.const 17 + i32.const 5 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + local.get $4 + i32.store offset=4 + local.get $4 + local.get $1 + local.get $1 + i32.wrap_i64 + i32.const 20 + i32.add + call $"~lib/map/Map#set" + global.get $~lib/memory/__stack_pointer + local.get $4 + i32.store offset=4 + local.get $4 + local.get $1 + call $"~lib/map/Map#has" + i32.eqz + if + i32.const 0 + i32.const 1776 + i32.const 19 + i32.const 5 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + local.get $4 + i32.store offset=4 + local.get $4 + local.get $1 + call $"~lib/map/Map#get" + local.get $1 + i32.wrap_i64 + i32.const 20 + i32.add + i32.ne + if + i32.const 0 + i32.const 1776 + i32.const 20 + i32.const 5 + call $~lib/builtins/abort + unreachable + end + local.get $1 + i64.const 1 + i64.add + local.set $1 + br $for-loop|1 + end + end + global.get $~lib/memory/__stack_pointer + local.get $4 + i32.store offset=4 + local.get $4 + call $"~lib/map/Map#get:size" + i32.const 100 + i32.ne + if + i32.const 0 + i32.const 1776 + i32.const 22 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + local.get $4 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.sub + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 3104 i32.lt_s br_if $folding-inner1 global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.const 24 - memory.fill + i64.const 0 + i64.store global.get $~lib/memory/__stack_pointer + local.get $4 + i32.store + local.get $4 + i32.load offset=8 + local.set $6 global.get $~lib/memory/__stack_pointer - i32.const 12 + local.get $4 + i32.store + local.get $4 + i32.load offset=16 + local.set $7 + global.get $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 16 i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 1896 + i32.const 3104 i32.lt_s br_if $folding-inner1 global.get $~lib/memory/__stack_pointer i64.const 0 i64.store global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.store offset=8 + i64.const 0 + i64.store offset=8 global.get $~lib/memory/__stack_pointer - i32.const 24 - i32.const 21 + i32.const 16 + i32.const 46 call $~lib/rt/itcms/__new - local.tee $1 + local.tee $8 i32.store global.get $~lib/memory/__stack_pointer - local.get $1 + local.get $8 i32.store offset=4 - i32.const 16 - call $~lib/arraybuffer/ArrayBuffer#constructor - local.set $5 + local.get $8 + i32.const 0 + i32.store + local.get $8 + i32.const 0 + i32.const 0 + call $~lib/rt/itcms/__link global.get $~lib/memory/__stack_pointer - local.get $5 + local.get $8 + i32.store offset=4 + local.get $8 + i32.const 0 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + local.get $8 + i32.store offset=4 + local.get $8 + i32.const 0 i32.store offset=8 - local.get $1 - local.get $5 + global.get $~lib/memory/__stack_pointer + local.get $8 + i32.store offset=4 + local.get $8 + i32.const 0 + i32.store offset=12 + local.get $7 + i32.const 134217727 + i32.gt_u + if + i32.const 1056 + i32.const 1568 + i32.const 70 + i32.const 60 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + i32.const 8 + local.get $7 + local.get $7 + i32.const 8 + i32.le_u + select + i32.const 3 + i32.shl + local.tee $9 + i32.const 1 + call $~lib/rt/itcms/__new + local.tee $3 + i32.store offset=8 + global.get $~lib/memory/__stack_pointer + local.get $8 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + local.get $3 + i32.store offset=12 + local.get $8 + local.get $3 i32.store - local.get $1 - local.get $5 + local.get $8 + local.get $3 + i32.const 0 call $~lib/rt/itcms/__link global.get $~lib/memory/__stack_pointer - local.get $1 + local.get $8 i32.store offset=4 - local.get $1 - i32.const 3 + local.get $8 + local.get $3 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + local.get $8 + i32.store offset=4 + local.get $8 + local.get $9 + i32.store offset=8 + global.get $~lib/memory/__stack_pointer + local.get $8 + i32.store offset=4 + local.get $8 + local.get $7 + i32.store offset=12 + global.get $~lib/memory/__stack_pointer + i32.const 16 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $8 + i32.store offset=4 + loop $for-loop|00 + local.get $2 + local.get $7 + i32.lt_s + if + local.get $6 + local.get $2 + i32.const 4 + i32.shl + i32.add + local.tee $3 + i32.load offset=12 + i32.const 1 + i32.and + i32.eqz + if + global.get $~lib/memory/__stack_pointer + local.get $8 + i32.store + local.get $8 + local.get $0 + local.get $3 + i64.load + call $~lib/array/Array#__set + local.get $0 + i32.const 1 + i32.add + local.set $0 + end + local.get $2 + i32.const 1 + i32.add + local.set $2 + br $for-loop|00 + end + end + global.get $~lib/memory/__stack_pointer + local.get $8 + i32.store + local.get $8 + local.get $0 + call $~lib/array/Array#set:length + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $8 + i32.store offset=8 + global.get $~lib/memory/__stack_pointer + local.get $4 i32.store offset=4 global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - i32.const 64 - call $~lib/arraybuffer/ArrayBuffer#constructor - local.set $5 + local.get $4 + call $"~lib/map/Map#values" + local.tee $0 + i32.store offset=12 + global.get $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 12 + i32.sub + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 3104 + i32.lt_s + br_if $folding-inner1 + global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store global.get $~lib/memory/__stack_pointer - local.get $5 - i32.store offset=8 - local.get $1 - local.get $5 + i32.const 0 i32.store offset=8 - local.get $1 - local.get $5 - call $~lib/rt/itcms/__link global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - local.get $1 - i32.const 4 - i32.store offset=12 + i32.const 49 + i32.const 2480 + call $~lib/rt/__newArray + local.tee $3 + i32.store global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - local.get $1 i32.const 0 - i32.store offset=16 - global.get $~lib/memory/__stack_pointer - local.get $1 i32.store offset=4 - local.get $1 - i32.const 0 - i32.store offset=20 + global.get $~lib/memory/__stack_pointer + local.get $3 + i32.store offset=8 + local.get $3 + call $"~lib/map/Map#constructor" + local.set $3 global.get $~lib/memory/__stack_pointer i32.const 12 i32.add global.set $~lib/memory/__stack_pointer - local.get $1 - i32.store - loop $for-loop|0 + local.get $3 + i32.store offset=16 + global.get $~lib/memory/__stack_pointer + call $"~lib/map/Map#constructor@varargs" + local.tee $5 + i32.store offset=20 + i32.const 0 + local.set $2 + loop $for-loop|2 + global.get $~lib/memory/__stack_pointer + local.get $8 + i32.store offset=4 + local.get $8 + call $"~lib/array/Array<~lib/map/KeyValue>#get:length" local.get $2 - i64.const 100 - i64.lt_s + i32.gt_s if global.get $~lib/memory/__stack_pointer - local.get $1 + local.get $8 i32.store offset=4 - local.get $1 + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.sub + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 3104 + i32.lt_s + br_if $folding-inner1 + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store + global.get $~lib/memory/__stack_pointer + local.get $8 + i32.store local.get $2 - call $"~lib/map/Map#has" + local.get $8 + i32.load offset=12 + i32.ge_u if - i32.const 0 + i32.const 1360 i32.const 1568 - i32.const 6 - i32.const 5 + i32.const 114 + i32.const 42 call $~lib/builtins/abort unreachable end global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - local.get $1 - local.get $2 + local.get $8 + i32.store + local.get $8 + i32.load offset=4 local.get $2 - i32.wrap_i64 - i32.const 10 + i32.const 3 + i32.shl i32.add - call $"~lib/map/Map#set" + i64.load + local.set $1 global.get $~lib/memory/__stack_pointer - local.get $1 + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + local.get $0 i32.store offset=4 - local.get $1 + local.get $0 local.get $2 + call $~lib/array/Array#__get + local.set $6 + global.get $~lib/memory/__stack_pointer + local.get $4 + i32.store offset=4 + local.get $4 + local.get $1 call $"~lib/map/Map#has" i32.eqz if i32.const 0 - i32.const 1568 - i32.const 8 + i32.const 1776 + i32.const 32 i32.const 5 call $~lib/builtins/abort unreachable end global.get $~lib/memory/__stack_pointer - local.get $1 + local.get $4 i32.store offset=4 - local.get $1 - local.get $2 - call $"~lib/map/Map#get" - local.get $2 - i32.wrap_i64 - i32.const 10 - i32.add - i32.ne + local.get $4 + local.get $6 + i32.const 20 + i32.sub + i64.extend_i32_s + call $"~lib/map/Map#has" + i32.eqz if i32.const 0 - i32.const 1568 - i32.const 9 + i32.const 1776 + i32.const 33 i32.const 5 call $~lib/builtins/abort unreachable end + global.get $~lib/memory/__stack_pointer + local.get $3 + i32.store offset=4 + local.get $3 + local.get $1 + local.get $1 + call $"~lib/map/Map#set" + global.get $~lib/memory/__stack_pointer + local.get $5 + i32.store offset=4 + local.get $5 + local.get $6 + i32.const 20 + i32.sub + local.tee $6 + local.get $6 + call $"~lib/map/Map#set" local.get $2 - i64.const 1 - i64.add + i32.const 1 + i32.add local.set $2 - br $for-loop|0 + br $for-loop|2 end end global.get $~lib/memory/__stack_pointer - local.get $1 + local.get $3 i32.store offset=4 - local.get $1 + local.get $3 call $"~lib/map/Map#get:size" i32.const 100 i32.ne if i32.const 0 - i32.const 1568 - i32.const 11 + i32.const 1776 + i32.const 37 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + local.get $5 + i32.store offset=4 + local.get $5 + call $"~lib/map/Map#get:size" + i32.const 100 + i32.ne + if + i32.const 0 + i32.const 1776 + i32.const 38 i32.const 3 call $~lib/builtins/abort unreachable end i64.const 0 - local.set $2 - loop $for-loop|1 - local.get $2 - i64.const 100 + local.set $1 + loop $for-loop|3 + local.get $1 + i64.const 50 i64.lt_s if global.get $~lib/memory/__stack_pointer - local.get $1 + local.get $4 i32.store offset=4 + local.get $4 local.get $1 - local.get $2 call $"~lib/map/Map#has" i32.eqz if i32.const 0 - i32.const 1568 - i32.const 15 + i32.const 1776 + i32.const 42 i32.const 5 call $~lib/builtins/abort unreachable end global.get $~lib/memory/__stack_pointer - local.get $1 + local.get $4 i32.store offset=4 + local.get $4 local.get $1 - local.get $2 call $"~lib/map/Map#get" - local.get $2 + local.get $1 i32.wrap_i64 - i32.const 10 + i32.const 20 i32.add i32.ne if i32.const 0 - i32.const 1568 - i32.const 16 + i32.const 1776 + i32.const 43 i32.const 5 call $~lib/builtins/abort unreachable end global.get $~lib/memory/__stack_pointer + local.get $4 + i32.store offset=4 + local.get $4 local.get $1 + call $"~lib/map/Map#delete" + global.get $~lib/memory/__stack_pointer + local.get $4 i32.store offset=4 + local.get $4 + local.get $1 + call $"~lib/map/Map#has" + if + i32.const 0 + i32.const 1776 + i32.const 45 + i32.const 5 + call $~lib/builtins/abort + unreachable + end + local.get $1 + i64.const 1 + i64.add + local.set $1 + br $for-loop|3 + end + end + global.get $~lib/memory/__stack_pointer + local.get $4 + i32.store offset=4 + local.get $4 + call $"~lib/map/Map#get:size" + i32.const 50 + i32.ne + if + i32.const 0 + i32.const 1776 + i32.const 47 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + i64.const 0 + local.set $1 + loop $for-loop|4 + local.get $1 + i64.const 50 + i64.lt_s + if + global.get $~lib/memory/__stack_pointer + local.get $4 + i32.store offset=4 + local.get $4 + local.get $1 + call $"~lib/map/Map#has" + if + i32.const 0 + i32.const 1776 + i32.const 51 + i32.const 5 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + local.get $4 + i32.store offset=4 + local.get $4 + local.get $1 local.get $1 - local.get $2 - local.get $2 i32.wrap_i64 - i32.const 20 + i32.const 10 i32.add call $"~lib/map/Map#set" global.get $~lib/memory/__stack_pointer - local.get $1 + local.get $4 i32.store offset=4 + local.get $4 local.get $1 - local.get $2 call $"~lib/map/Map#has" i32.eqz if i32.const 0 - i32.const 1568 - i32.const 18 + i32.const 1776 + i32.const 53 i32.const 5 call $~lib/builtins/abort unreachable end global.get $~lib/memory/__stack_pointer + local.get $4 + i32.store offset=4 + local.get $4 local.get $1 + call $"~lib/map/Map#delete" + global.get $~lib/memory/__stack_pointer + local.get $4 i32.store offset=4 + local.get $4 local.get $1 - local.get $2 - call $"~lib/map/Map#get" - local.get $2 - i32.wrap_i64 - i32.const 20 - i32.add - i32.ne + call $"~lib/map/Map#has" if i32.const 0 - i32.const 1568 - i32.const 19 + i32.const 1776 + i32.const 55 i32.const 5 call $~lib/builtins/abort - unreachable - end - local.get $2 - i64.const 1 - i64.add - local.set $2 - br $for-loop|1 - end - end - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - local.get $1 - call $"~lib/map/Map#get:size" - i32.const 100 - i32.ne - if - i32.const 0 - i32.const 1568 - i32.const 21 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - global.get $~lib/memory/__stack_pointer - i32.const 8 - i32.sub - global.set $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - i32.const 1896 - i32.lt_s - br_if $folding-inner1 - global.get $~lib/memory/__stack_pointer - i64.const 0 - i64.store - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store - local.get $1 - i32.load offset=8 - local.set $6 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store - local.get $1 - i32.load offset=16 - local.set $7 - global.get $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - i32.const 16 - i32.sub - global.set $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - i32.const 1896 - i32.lt_s - br_if $folding-inner1 - global.get $~lib/memory/__stack_pointer - i64.const 0 - i64.store - global.get $~lib/memory/__stack_pointer - i64.const 0 - i64.store offset=8 - global.get $~lib/memory/__stack_pointer - i32.const 16 - i32.const 22 - call $~lib/rt/itcms/__new - local.tee $8 - i32.store - global.get $~lib/memory/__stack_pointer - local.get $8 - i32.store offset=4 - local.get $8 - i32.const 0 - i32.store - local.get $8 - i32.const 0 - call $~lib/rt/itcms/__link - global.get $~lib/memory/__stack_pointer - local.get $8 - i32.store offset=4 - local.get $8 - i32.const 0 - i32.store offset=4 - global.get $~lib/memory/__stack_pointer - local.get $8 - i32.store offset=4 - local.get $8 - i32.const 0 - i32.store offset=8 - global.get $~lib/memory/__stack_pointer - local.get $8 - i32.store offset=4 - local.get $8 - i32.const 0 - i32.store offset=12 - local.get $7 - i32.const 134217727 - i32.gt_u - if - i32.const 1456 - i32.const 1728 - i32.const 70 - i32.const 60 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - i32.const 8 - local.get $7 - local.get $7 - i32.const 8 - i32.le_u - select - i32.const 3 - i32.shl - local.tee $9 - i32.const 1 - call $~lib/rt/itcms/__new - local.tee $4 - i32.store offset=8 - global.get $~lib/memory/__stack_pointer - local.get $8 - i32.store offset=4 - global.get $~lib/memory/__stack_pointer - local.get $4 - i32.store offset=12 - local.get $8 - local.get $4 - i32.store - local.get $8 - local.get $4 - call $~lib/rt/itcms/__link - global.get $~lib/memory/__stack_pointer - local.get $8 - i32.store offset=4 - local.get $8 - local.get $4 - i32.store offset=4 - global.get $~lib/memory/__stack_pointer - local.get $8 - i32.store offset=4 - local.get $8 - local.get $9 - i32.store offset=8 - global.get $~lib/memory/__stack_pointer - local.get $8 - i32.store offset=4 - local.get $8 - local.get $7 - i32.store offset=12 - global.get $~lib/memory/__stack_pointer - i32.const 16 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $8 - i32.store offset=4 - loop $for-loop|00 - local.get $3 - local.get $7 - i32.lt_s - if - local.get $6 - local.get $3 - i32.const 4 - i32.shl - i32.add - local.tee $4 - i32.load offset=12 - i32.const 1 - i32.and - i32.eqz - if - global.get $~lib/memory/__stack_pointer - local.get $8 - i32.store - local.get $8 - local.get $0 - local.get $4 - i64.load - call $~lib/array/Array#__set - local.get $0 - i32.const 1 - i32.add - local.set $0 - end - local.get $3 - i32.const 1 - i32.add - local.set $3 - br $for-loop|00 - end - end - global.get $~lib/memory/__stack_pointer - local.get $8 - i32.store - local.get $8 - local.get $0 - call $~lib/array/Array#set:length - global.get $~lib/memory/__stack_pointer - i32.const 8 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $8 - i32.store offset=8 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - global.get $~lib/memory/__stack_pointer - local.get $1 - call $"~lib/map/Map#values" - local.tee $0 - i32.store offset=12 - global.get $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - i32.const 12 - i32.sub - global.set $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - i32.const 1896 - i32.lt_s - br_if $folding-inner1 - global.get $~lib/memory/__stack_pointer - i64.const 0 - i64.store - global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.store offset=8 - global.get $~lib/memory/__stack_pointer - i32.const 24 - i32.const 23 - call $~lib/rt/itcms/__new - local.tee $4 - i32.store + unreachable + end + local.get $1 + i64.const 1 + i64.add + local.set $1 + br $for-loop|4 + end + end global.get $~lib/memory/__stack_pointer local.get $4 i32.store offset=4 - i32.const 16 - call $~lib/arraybuffer/ArrayBuffer#constructor - local.set $5 - global.get $~lib/memory/__stack_pointer - local.get $5 - i32.store offset=8 - local.get $4 - local.get $5 - i32.store local.get $4 - local.get $5 - call $~lib/rt/itcms/__link + call $"~lib/map/Map#get:size" + i32.const 50 + i32.ne + if + i32.const 0 + i32.const 1776 + i32.const 57 + i32.const 3 + call $~lib/builtins/abort + unreachable + end global.get $~lib/memory/__stack_pointer local.get $4 i32.store offset=4 local.get $4 - i32.const 3 - i32.store offset=4 + call $"~lib/map/Map#clear" global.get $~lib/memory/__stack_pointer local.get $4 i32.store offset=4 - i32.const 96 - call $~lib/arraybuffer/ArrayBuffer#constructor - local.set $5 - global.get $~lib/memory/__stack_pointer - local.get $5 - i32.store offset=8 - local.get $4 - local.get $5 - i32.store offset=8 local.get $4 - local.get $5 - call $~lib/rt/itcms/__link + call $"~lib/map/Map#get:size" + if + i32.const 0 + i32.const 1776 + i32.const 61 + i32.const 3 + call $~lib/builtins/abort + unreachable + end global.get $~lib/memory/__stack_pointer - local.get $4 + i32.const 45 + i32.const 2512 + call $~lib/rt/__newArray + local.tee $0 + i32.store offset=24 + i64.const 0 + local.set $1 + loop $for-loop|5 + local.get $1 + i64.const 100 + i64.lt_s + if + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.sub + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 3104 + i32.lt_s + br_if $folding-inner1 + global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store + global.get $~lib/memory/__stack_pointer + i32.const 12 + i32.const 44 + call $~lib/rt/itcms/__new + local.tee $3 + i32.store + global.get $~lib/memory/__stack_pointer + local.get $3 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + local.get $3 + call $~lib/object/Object#constructor + local.tee $3 + i32.store + global.get $~lib/memory/__stack_pointer + local.get $3 + i32.store offset=4 + local.get $3 + i64.const 0 + i64.store + global.get $~lib/memory/__stack_pointer + local.get $3 + i32.store offset=4 + local.get $3 + i32.const 0 + i32.store offset=8 + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $3 + i32.store offset=32 + global.get $~lib/memory/__stack_pointer + local.get $3 + i32.store offset=36 + local.get $3 + local.get $1 + i64.store + global.get $~lib/memory/__stack_pointer + local.get $3 + i32.store offset=36 + local.get $3 + local.get $1 + i32.wrap_i64 + i32.const 10 + i32.add + i32.store offset=8 + global.get $~lib/memory/__stack_pointer + local.get $3 + i32.store offset=28 + local.get $0 + local.get $3 + call $"~lib/array/Array<~lib/map/KeyValue>#push" + local.get $1 + i64.const 1 + i64.add + local.set $1 + br $for-loop|5 + end + end + global.get $~lib/memory/__stack_pointer + local.get $0 i32.store offset=4 - local.get $4 - i32.const 4 - i32.store offset=12 global.get $~lib/memory/__stack_pointer - local.get $4 + local.get $0 + call $"~lib/map/Map#constructor" + local.tee $0 + i32.store + global.get $~lib/memory/__stack_pointer + local.get $0 i32.store offset=4 - local.get $4 - i32.const 0 - i32.store offset=16 + local.get $0 + call $"~lib/map/Map#get:size" + i32.const 100 + i32.ne + if + i32.const 0 + i32.const 1776 + i32.const 74 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + i64.const 0 + local.set $1 + loop $for-loop|6 + local.get $1 + i64.const 100 + i64.lt_s + if + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + local.get $0 + local.get $1 + call $"~lib/map/Map#has" + i32.eqz + if + i32.const 0 + i32.const 1776 + i32.const 76 + i32.const 5 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + local.get $0 + local.get $1 + call $"~lib/map/Map#get" + local.get $1 + i32.wrap_i64 + i32.const 10 + i32.add + i32.ne + if + i32.const 0 + i32.const 1776 + i32.const 77 + i32.const 5 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + local.get $0 + local.get $1 + call $"~lib/map/Map#delete" + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + local.get $0 + local.get $1 + call $"~lib/map/Map#has" + if + i32.const 0 + i32.const 1776 + i32.const 79 + i32.const 5 + call $~lib/builtins/abort + unreachable + end + local.get $1 + i64.const 1 + i64.add + local.set $1 + br $for-loop|6 + end + end global.get $~lib/memory/__stack_pointer - local.get $4 + local.get $0 i32.store offset=4 - local.get $4 - i32.const 0 - i32.store offset=20 + local.get $0 + call $"~lib/map/Map#get:size" + if + i32.const 0 + i32.const 1776 + i32.const 81 + i32.const 3 + call $~lib/builtins/abort + unreachable + end global.get $~lib/memory/__stack_pointer - i32.const 12 + i32.const 40 i32.add global.set $~lib/memory/__stack_pointer + return + end + i32.const 35904 + i32.const 35952 + i32.const 1 + i32.const 1 + call $~lib/builtins/abort + unreachable + ) + (func $"~lib/map/Map#rehash" (param $0 i32) (param $1 i32) + (local $2 i32) + (local $3 i32) + (local $4 i32) + (local $5 i32) + (local $6 i64) + (local $7 i32) + (local $8 i32) + (local $9 i32) + global.get $~lib/memory/__stack_pointer + i32.const 16 + i32.sub + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 3104 + i32.lt_s + if + i32.const 35904 + i32.const 35952 + i32.const 1 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store + global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store offset=8 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.const 1 + i32.add + local.tee $2 + i32.const 2 + i32.shl + call $~lib/arraybuffer/ArrayBuffer#constructor + local.tee $7 + i32.store + global.get $~lib/memory/__stack_pointer + local.get $2 + i32.const 3 + i32.shl + i32.const 3 + i32.div_s + local.tee $5 + i32.const 4 + i32.shl + call $~lib/arraybuffer/ArrayBuffer#constructor + local.tee $3 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=8 + local.get $0 + i32.load offset=8 + local.set $8 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=8 + local.get $8 + local.get $0 + i32.load offset=16 + i32.const 4 + i32.shl + i32.add + local.set $4 + local.get $3 + local.set $2 + loop $while-continue|0 local.get $4 - i32.store offset=16 - global.get $~lib/memory/__stack_pointer - call $"~lib/map/Map#constructor" - local.tee $5 - i32.store offset=20 - i32.const 0 - local.set $3 - loop $for-loop|2 - global.get $~lib/memory/__stack_pointer - local.get $8 - i32.store offset=4 + local.get $8 + i32.ne + if local.get $8 - call $~lib/array/Array#get:length - local.get $3 - i32.gt_s + i32.load offset=12 + i32.const 1 + i32.and + i32.eqz if - global.get $~lib/memory/__stack_pointer - local.get $8 - i32.store offset=4 - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.sub - global.set $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - i32.const 1896 - i32.lt_s - br_if $folding-inner1 - global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.store - global.get $~lib/memory/__stack_pointer - local.get $8 - i32.store - local.get $3 - local.get $8 - i32.load offset=12 - i32.ge_u - if - i32.const 1248 - i32.const 1728 - i32.const 114 - i32.const 42 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer + local.get $2 local.get $8 - i32.store + i64.load + local.tee $6 + i64.store + local.get $2 local.get $8 - i32.load offset=4 - local.get $3 - i32.const 3 + i32.load offset=8 + i32.store offset=8 + local.get $2 + local.get $7 + local.get $1 + local.get $6 + i32.wrap_i64 + i32.const -1028477379 + i32.mul + i32.const 374761401 + i32.add + i32.const 17 + i32.rotl + i32.const 668265263 + i32.mul + local.get $6 + i64.const 32 + i64.shr_u + i32.wrap_i64 + i32.const -1028477379 + i32.mul + i32.add + i32.const 17 + i32.rotl + i32.const 668265263 + i32.mul + local.tee $9 + i32.const 15 + i32.shr_u + local.get $9 + i32.xor + i32.const -2048144777 + i32.mul + local.tee $9 + i32.const 13 + i32.shr_u + local.get $9 + i32.xor + i32.const -1028477379 + i32.mul + local.tee $9 + i32.const 16 + i32.shr_u + local.get $9 + i32.xor + i32.and + i32.const 2 i32.shl i32.add + local.tee $9 + i32.load + i32.store offset=12 + local.get $9 + local.get $2 + i32.store + local.get $2 + i32.const 16 + i32.add + local.set $2 + end + local.get $8 + i32.const 16 + i32.add + local.set $8 + br $while-continue|0 + end + end + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=8 + global.get $~lib/memory/__stack_pointer + local.get $7 + i32.store offset=12 + local.get $0 + local.get $7 + i32.store + local.get $0 + local.get $7 + i32.const 0 + call $~lib/rt/itcms/__link + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=8 + local.get $0 + local.get $1 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=8 + global.get $~lib/memory/__stack_pointer + local.get $3 + i32.store offset=12 + local.get $0 + local.get $3 + i32.store offset=8 + local.get $0 + local.get $3 + i32.const 0 + call $~lib/rt/itcms/__link + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=8 + local.get $0 + local.get $5 + i32.store offset=12 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=8 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=12 + local.get $0 + local.get $0 + i32.load offset=20 + i32.store offset=16 + global.get $~lib/memory/__stack_pointer + i32.const 16 + i32.add + global.set $~lib/memory/__stack_pointer + ) + (func $"~lib/map/Map#find" (param $0 i32) (param $1 i64) (param $2 i32) (result i32) + (local $3 i32) + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.sub + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 3104 + i32.lt_s + if + i32.const 35904 + i32.const 35952 + i32.const 1 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + local.get $0 + i32.load + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + local.get $2 + local.get $0 + i32.load offset=4 + i32.and + i32.const 2 + i32.shl + i32.add + i32.load + local.set $0 + loop $while-continue|0 + local.get $0 + if + local.get $0 + i32.load offset=12 + local.tee $2 + i32.const 1 + i32.and + if (result i32) + i32.const 0 + else + local.get $1 + local.get $0 i64.load - local.set $2 + i64.eq + end + if global.get $~lib/memory/__stack_pointer i32.const 4 i32.add global.set $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 local.get $0 - local.get $3 - call $~lib/array/Array#__get - local.set $6 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - local.get $1 - local.get $2 - call $"~lib/map/Map#has" - i32.eqz - if - i32.const 0 - i32.const 1568 - i32.const 31 - i32.const 5 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - local.get $1 - local.get $6 - i32.const 20 - i32.sub - i64.extend_i32_s - call $"~lib/map/Map#has" - i32.eqz - if - i32.const 0 - i32.const 1568 - i32.const 32 - i32.const 5 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - local.get $4 - i32.store offset=4 - local.get $4 - local.get $2 - local.get $2 - call $"~lib/map/Map#set" - global.get $~lib/memory/__stack_pointer - local.get $5 - i32.store offset=4 - local.get $5 - local.get $6 - i32.const 20 - i32.sub - local.tee $6 - local.get $6 - call $"~lib/map/Map#set" - local.get $3 - i32.const 1 - i32.add - local.set $3 - br $for-loop|2 + return end - end - global.get $~lib/memory/__stack_pointer - local.get $4 - i32.store offset=4 - local.get $4 - call $"~lib/map/Map#get:size" - i32.const 100 - i32.ne - if - i32.const 0 - i32.const 1568 - i32.const 36 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - local.get $5 - i32.store offset=4 - local.get $5 - call $"~lib/map/Map#get:size" - i32.const 100 - i32.ne - if - i32.const 0 - i32.const 1568 - i32.const 37 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - i64.const 0 - local.set $2 - loop $for-loop|3 local.get $2 - i64.const 50 - i64.lt_s - if - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - local.get $1 - local.get $2 - call $"~lib/map/Map#has" - i32.eqz - if - i32.const 0 - i32.const 1568 - i32.const 41 - i32.const 5 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - local.get $1 - local.get $2 - call $"~lib/map/Map#get" - local.get $2 - i32.wrap_i64 - i32.const 20 - i32.add - i32.ne - if - i32.const 0 - i32.const 1568 - i32.const 42 - i32.const 5 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - local.get $1 - local.get $2 - call $"~lib/map/Map#delete" - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - local.get $1 - local.get $2 - call $"~lib/map/Map#has" - if - i32.const 0 - i32.const 1568 - i32.const 44 - i32.const 5 - call $~lib/builtins/abort - unreachable - end - local.get $2 - i64.const 1 - i64.add - local.set $2 - br $for-loop|3 - end + i32.const -2 + i32.and + local.set $0 + br $while-continue|0 end + end + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + i32.const 0 + ) + (func $"~lib/map/Map#constructor" (param $0 i32) (result i32) + (local $1 i32) + (local $2 i32) + (local $3 i64) + (local $4 i32) + (local $5 i32) + (local $6 i32) + (local $7 i32) + (local $8 i32) + global.get $~lib/memory/__stack_pointer + i32.const 16 + i32.sub + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 3104 + i32.lt_s + if + i32.const 35904 + i32.const 35952 + i32.const 1 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store + global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store offset=8 + global.get $~lib/memory/__stack_pointer + i32.const 24 + i32.const 50 + call $~lib/rt/itcms/__new + local.tee $1 + i32.store + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + i32.const 16 + call $~lib/arraybuffer/ArrayBuffer#constructor + local.set $4 + global.get $~lib/memory/__stack_pointer + local.get $4 + i32.store offset=8 + local.get $1 + local.get $4 + i32.store + local.get $1 + local.get $4 + i32.const 0 + call $~lib/rt/itcms/__link + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + local.get $1 + i32.const 3 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + i32.const 64 + call $~lib/arraybuffer/ArrayBuffer#constructor + local.set $4 + global.get $~lib/memory/__stack_pointer + local.get $4 + i32.store offset=8 + local.get $1 + local.get $4 + i32.store offset=8 + local.get $1 + local.get $4 + i32.const 0 + call $~lib/rt/itcms/__link + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + local.get $1 + i32.const 4 + i32.store offset=12 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + local.get $1 + i32.const 0 + i32.store offset=16 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + local.get $1 + i32.const 0 + i32.store offset=20 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + local.get $0 + call $"~lib/array/Array<~lib/map/KeyValue>#get:length" + local.tee $4 + i32.const 0 + i32.gt_s + if global.get $~lib/memory/__stack_pointer local.get $1 i32.store offset=4 + local.get $4 local.get $1 - call $"~lib/map/Map#get:size" - i32.const 50 - i32.ne + i32.load offset=12 + i32.ge_s if - i32.const 0 - i32.const 1568 - i32.const 46 - i32.const 3 - call $~lib/builtins/abort - unreachable + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + local.get $1 + local.get $4 + i32.store offset=4 end - i64.const 0 - local.set $2 - loop $for-loop|4 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=8 + local.get $1 + local.get $1 + i32.load offset=4 + i32.const 1 + i32.shl + i32.const 1 + i32.or + call $"~lib/map/Map#rehash" + loop $for-loop|0 local.get $2 - i64.const 50 - i64.lt_s + local.get $4 + i32.lt_s if global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - local.get $1 + local.get $0 + i32.store offset=8 + local.get $0 local.get $2 - call $"~lib/map/Map#has" - if - i32.const 0 - i32.const 1568 - i32.const 50 - i32.const 5 - call $~lib/builtins/abort - unreachable - end + call $"~lib/array/Array<~lib/map/KeyValue>#__get" + local.set $5 global.get $~lib/memory/__stack_pointer - local.get $1 + local.get $5 i32.store offset=4 - local.get $1 - local.get $2 - local.get $2 - i32.wrap_i64 - i32.const 10 - i32.add - call $"~lib/map/Map#set" + local.get $5 + i64.load + local.set $3 global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - local.get $1 + local.get $0 + i32.store offset=8 + local.get $0 local.get $2 - call $"~lib/map/Map#has" - i32.eqz - if - i32.const 0 - i32.const 1568 - i32.const 52 - i32.const 5 - call $~lib/builtins/abort - unreachable - end + call $"~lib/array/Array<~lib/map/KeyValue>#__get" + local.set $5 global.get $~lib/memory/__stack_pointer - local.get $1 + local.get $5 i32.store offset=4 - local.get $1 - local.get $2 - call $"~lib/map/Map#delete" + local.get $5 + i32.load offset=8 + local.set $6 global.get $~lib/memory/__stack_pointer local.get $1 i32.store offset=4 local.get $1 - local.get $2 - call $"~lib/map/Map#has" + local.get $3 + local.get $3 + i32.wrap_i64 + i32.const -1028477379 + i32.mul + i32.const 374761401 + i32.add + i32.const 17 + i32.rotl + i32.const 668265263 + i32.mul + local.get $3 + i64.const 32 + i64.shr_u + i32.wrap_i64 + i32.const -1028477379 + i32.mul + i32.add + i32.const 17 + i32.rotl + i32.const 668265263 + i32.mul + local.tee $5 + i32.const 15 + i32.shr_u + local.get $5 + i32.xor + i32.const -2048144777 + i32.mul + local.tee $5 + i32.const 13 + i32.shr_u + local.get $5 + i32.xor + i32.const -1028477379 + i32.mul + local.tee $5 + i32.const 16 + i32.shr_u + local.get $5 + i32.xor + local.tee $7 + call $"~lib/map/Map#find" + local.tee $5 if - i32.const 0 - i32.const 1568 - i32.const 54 - i32.const 5 - call $~lib/builtins/abort - unreachable + local.get $5 + local.get $6 + i32.store offset=8 + else + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.load offset=8 + local.tee $5 + i32.store offset=12 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=8 + local.get $1 + local.get $1 + i32.load offset=16 + local.tee $8 + i32.const 1 + i32.add + i32.store offset=16 + local.get $5 + local.get $8 + i32.const 4 + i32.shl + i32.add + local.tee $5 + local.get $3 + i64.store + local.get $5 + local.get $6 + i32.store offset=8 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=8 + local.get $1 + local.get $1 + i32.load offset=20 + i32.const 1 + i32.add + i32.store offset=20 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + local.get $1 + i32.load + local.set $6 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + local.get $5 + local.get $6 + local.get $7 + local.get $1 + i32.load offset=4 + i32.and + i32.const 2 + i32.shl + i32.add + local.tee $6 + i32.load + i32.store offset=12 + local.get $6 + local.get $5 + i32.store end local.get $2 - i64.const 1 - i64.add + i32.const 1 + i32.add local.set $2 - br $for-loop|4 + br $for-loop|0 end end - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - local.get $1 - call $"~lib/map/Map#get:size" - i32.const 50 - i32.ne - if - i32.const 0 - i32.const 1568 - i32.const 56 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - local.get $1 - call $"~lib/map/Map#clear" - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - local.get $1 - call $"~lib/map/Map#get:size" - if - i32.const 0 - i32.const 1568 - i32.const 60 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - i32.const 24 - i32.add - global.set $~lib/memory/__stack_pointer - return end - i32.const 34688 - i32.const 34736 - i32.const 1 - i32.const 1 - call $~lib/builtins/abort - unreachable + global.get $~lib/memory/__stack_pointer + i32.const 16 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $1 ) - (func $"~lib/map/Map#find" (param $0 i32) (param $1 i64) (param $2 i32) (result i32) - (local $3 i32) + (func $"~lib/map/Map#has" (param $0 i32) (param $1 i64) (result i32) global.get $~lib/memory/__stack_pointer i32.const 4 i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 1896 + i32.const 3104 i32.lt_s if - i32.const 34688 - i32.const 34736 + i32.const 35904 + i32.const 35952 i32.const 1 i32.const 1 call $~lib/builtins/abort @@ -16742,67 +22042,270 @@ local.get $0 i32.store local.get $0 - i32.load + local.get $1 + local.get $1 + i32.wrap_i64 + i32.const -1028477379 + i32.mul + i32.const 374761401 + i32.add + i32.const 17 + i32.rotl + i32.const 668265263 + i32.mul + local.get $1 + i64.const 32 + i64.shr_u + i32.wrap_i64 + i32.const -1028477379 + i32.mul + i32.add + i32.const 17 + i32.rotl + i32.const 668265263 + i32.mul + local.tee $0 + i32.const 15 + i32.shr_u + local.get $0 + i32.xor + i32.const -2048144777 + i32.mul + local.tee $0 + i32.const 13 + i32.shr_u + local.get $0 + i32.xor + i32.const -1028477379 + i32.mul + local.tee $0 + i32.const 16 + i32.shr_u + local.get $0 + i32.xor + call $"~lib/map/Map#find" + i32.const 0 + i32.ne + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + ) + (func $"~lib/map/Map#set" (param $0 i32) (param $1 i64) (param $2 i32) + (local $3 i32) + (local $4 i32) + (local $5 i32) + global.get $~lib/memory/__stack_pointer + i32.const 12 + i32.sub + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 3104 + i32.lt_s + if + i32.const 35904 + i32.const 35952 + i32.const 1 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store offset=8 global.get $~lib/memory/__stack_pointer local.get $0 i32.store - local.get $2 local.get $0 - i32.load offset=4 - i32.and - i32.const 2 - i32.shl + local.get $1 + local.get $1 + i32.wrap_i64 + i32.const -1028477379 + i32.mul + i32.const 374761401 i32.add - i32.load - local.set $0 - loop $while-continue|0 + i32.const 17 + i32.rotl + i32.const 668265263 + i32.mul + local.get $1 + i64.const 32 + i64.shr_u + i32.wrap_i64 + i32.const -1028477379 + i32.mul + i32.add + i32.const 17 + i32.rotl + i32.const 668265263 + i32.mul + local.tee $3 + i32.const 15 + i32.shr_u + local.get $3 + i32.xor + i32.const -2048144777 + i32.mul + local.tee $3 + i32.const 13 + i32.shr_u + local.get $3 + i32.xor + i32.const -1028477379 + i32.mul + local.tee $3 + i32.const 16 + i32.shr_u + local.get $3 + i32.xor + local.tee $4 + call $"~lib/map/Map#find" + local.tee $3 + if + local.get $3 + local.get $2 + i32.store offset=8 + else + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + local.get $0 + i32.load offset=16 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store local.get $0 + i32.load offset=12 + i32.eq if + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + local.get $0 + i32.load offset=20 + local.set $3 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + local.get $0 + local.get $3 local.get $0 i32.load offset=12 - local.tee $2 - i32.const 1 - i32.and + i32.const 3 + i32.mul + i32.const 4 + i32.div_s + i32.lt_s if (result i32) - i32.const 0 - else - local.get $1 + global.get $~lib/memory/__stack_pointer local.get $0 - i64.load - i64.eq - end - if + i32.store offset=4 + local.get $0 + i32.load offset=4 + else global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.add - global.set $~lib/memory/__stack_pointer local.get $0 - return + i32.store offset=4 + local.get $0 + i32.load offset=4 + i32.const 1 + i32.shl + i32.const 1 + i32.or end - local.get $2 - i32.const -2 - i32.and - local.set $0 - br $while-continue|0 + call $"~lib/map/Map#rehash" end + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.load offset=8 + local.tee $3 + i32.store offset=8 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + local.get $0 + local.get $0 + i32.load offset=16 + local.tee $5 + i32.const 1 + i32.add + i32.store offset=16 + local.get $3 + local.get $5 + i32.const 4 + i32.shl + i32.add + local.tee $3 + local.get $1 + i64.store + local.get $3 + local.get $2 + i32.store offset=8 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + local.get $0 + local.get $0 + i32.load offset=20 + i32.const 1 + i32.add + i32.store offset=20 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + local.get $0 + i32.load + local.set $2 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + local.get $3 + local.get $2 + local.get $4 + local.get $0 + i32.load offset=4 + i32.and + i32.const 2 + i32.shl + i32.add + local.tee $0 + i32.load + i32.store offset=12 + local.get $0 + local.get $3 + i32.store end global.get $~lib/memory/__stack_pointer - i32.const 4 + i32.const 12 i32.add global.set $~lib/memory/__stack_pointer - i32.const 0 ) - (func $"~lib/map/Map#has" (param $0 i32) (param $1 i64) (result i32) + (func $"~lib/map/Map#get" (param $0 i32) (param $1 i64) (result i32) global.get $~lib/memory/__stack_pointer i32.const 4 i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 1896 + i32.const 3104 i32.lt_s if - i32.const 34688 - i32.const 34736 + i32.const 35904 + i32.const 35952 i32.const 1 i32.const 1 call $~lib/builtins/abort @@ -16857,14 +22360,24 @@ local.get $0 i32.xor call $"~lib/map/Map#find" - i32.const 0 - i32.ne + local.tee $0 + i32.eqz + if + i32.const 1824 + i32.const 1888 + i32.const 148 + i32.const 17 + call $~lib/builtins/abort + unreachable + end + local.get $0 + i32.load offset=8 global.get $~lib/memory/__stack_pointer i32.const 4 i32.add global.set $~lib/memory/__stack_pointer ) - (func $"~lib/map/Map#rehash" (param $0 i32) (param $1 i32) + (func $"~lib/map/Map#rehash" (param $0 i32) (param $1 i32) (local $2 i32) (local $3 i32) (local $4 i32) @@ -16878,11 +22391,11 @@ i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 1896 + i32.const 3104 i32.lt_s if - i32.const 34688 - i32.const 34736 + i32.const 35904 + i32.const 35952 i32.const 1 i32.const 1 call $~lib/builtins/abort @@ -16911,8 +22424,8 @@ i32.const 3 i32.div_s local.tee $5 - i32.const 4 - i32.shl + i32.const 24 + i32.mul call $~lib/arraybuffer/ArrayBuffer#constructor local.tee $3 i32.store offset=4 @@ -16928,8 +22441,8 @@ local.get $8 local.get $0 i32.load offset=16 - i32.const 4 - i32.shl + i32.const 24 + i32.mul i32.add local.set $4 local.get $3 @@ -16940,7 +22453,7 @@ i32.ne if local.get $8 - i32.load offset=12 + i32.load offset=16 i32.const 1 i32.and i32.eqz @@ -16952,8 +22465,8 @@ i64.store local.get $2 local.get $8 - i32.load offset=8 - i32.store offset=8 + i64.load offset=8 + i64.store offset=8 local.get $2 local.get $7 local.get $1 @@ -16969,322 +22482,121 @@ i32.mul local.get $6 i64.const 32 - i64.shr_u - i32.wrap_i64 - i32.const -1028477379 - i32.mul - i32.add - i32.const 17 - i32.rotl - i32.const 668265263 - i32.mul - local.tee $9 - i32.const 15 - i32.shr_u - local.get $9 - i32.xor - i32.const -2048144777 - i32.mul - local.tee $9 - i32.const 13 - i32.shr_u - local.get $9 - i32.xor - i32.const -1028477379 - i32.mul - local.tee $9 - i32.const 16 - i32.shr_u - local.get $9 - i32.xor - i32.and - i32.const 2 - i32.shl - i32.add - local.tee $9 - i32.load - i32.store offset=12 - local.get $9 - local.get $2 - i32.store - local.get $2 - i32.const 16 - i32.add - local.set $2 - end - local.get $8 - i32.const 16 - i32.add - local.set $8 - br $while-continue|0 - end - end - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=8 - global.get $~lib/memory/__stack_pointer - local.get $7 - i32.store offset=12 - local.get $0 - local.get $7 - i32.store - local.get $0 - local.get $7 - call $~lib/rt/itcms/__link - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=8 - local.get $0 - local.get $1 - i32.store offset=4 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=8 - global.get $~lib/memory/__stack_pointer - local.get $3 - i32.store offset=12 - local.get $0 - local.get $3 - i32.store offset=8 - local.get $0 - local.get $3 - call $~lib/rt/itcms/__link - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=8 - local.get $0 - local.get $5 - i32.store offset=12 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=8 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=12 - local.get $0 - local.get $0 - i32.load offset=20 - i32.store offset=16 - global.get $~lib/memory/__stack_pointer - i32.const 16 - i32.add - global.set $~lib/memory/__stack_pointer - ) - (func $"~lib/map/Map#set" (param $0 i32) (param $1 i64) (param $2 i32) - (local $3 i32) - (local $4 i32) - (local $5 i32) - global.get $~lib/memory/__stack_pointer - i32.const 12 - i32.sub - global.set $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - i32.const 1896 - i32.lt_s - if - i32.const 34688 - i32.const 34736 - i32.const 1 - i32.const 1 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - i64.const 0 - i64.store - global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.store offset=8 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store - local.get $0 - local.get $1 - local.get $1 - i32.wrap_i64 - i32.const -1028477379 - i32.mul - i32.const 374761401 - i32.add - i32.const 17 - i32.rotl - i32.const 668265263 - i32.mul - local.get $1 - i64.const 32 - i64.shr_u - i32.wrap_i64 - i32.const -1028477379 - i32.mul - i32.add - i32.const 17 - i32.rotl - i32.const 668265263 - i32.mul - local.tee $3 - i32.const 15 - i32.shr_u - local.get $3 - i32.xor - i32.const -2048144777 - i32.mul - local.tee $3 - i32.const 13 - i32.shr_u - local.get $3 - i32.xor - i32.const -1028477379 - i32.mul - local.tee $3 - i32.const 16 - i32.shr_u - local.get $3 - i32.xor - local.tee $4 - call $"~lib/map/Map#find" - local.tee $3 - if - local.get $3 - local.get $2 - i32.store offset=8 - else - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store - local.get $0 - i32.load offset=16 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store - local.get $0 - i32.load offset=12 - i32.eq - if - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 - i32.load offset=20 - local.set $3 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 - local.get $3 - local.get $0 - i32.load offset=12 - i32.const 3 - i32.mul - i32.const 4 - i32.div_s - i32.lt_s - if (result i32) - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 - i32.load offset=4 - else - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 - i32.load offset=4 - i32.const 1 + i64.shr_u + i32.wrap_i64 + i32.const -1028477379 + i32.mul + i32.add + i32.const 17 + i32.rotl + i32.const 668265263 + i32.mul + local.tee $9 + i32.const 15 + i32.shr_u + local.get $9 + i32.xor + i32.const -2048144777 + i32.mul + local.tee $9 + i32.const 13 + i32.shr_u + local.get $9 + i32.xor + i32.const -1028477379 + i32.mul + local.tee $9 + i32.const 16 + i32.shr_u + local.get $9 + i32.xor + i32.and + i32.const 2 i32.shl - i32.const 1 - i32.or + i32.add + local.tee $9 + i32.load + i32.store offset=16 + local.get $9 + local.get $2 + i32.store + local.get $2 + i32.const 24 + i32.add + local.set $2 end - call $"~lib/map/Map#rehash" + local.get $8 + i32.const 24 + i32.add + local.set $8 + br $while-continue|0 end - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.load offset=8 - local.tee $3 - i32.store offset=8 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 - local.get $0 - i32.load offset=16 - local.tee $5 - i32.const 1 - i32.add - i32.store offset=16 - local.get $3 - local.get $5 - i32.const 4 - i32.shl - i32.add - local.tee $3 - local.get $1 - i64.store - local.get $3 - local.get $2 - i32.store offset=8 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 - local.get $0 - i32.load offset=20 - i32.const 1 - i32.add - i32.store offset=20 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store - local.get $0 - i32.load - local.set $2 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store - local.get $3 - local.get $2 - local.get $4 - local.get $0 - i32.load offset=4 - i32.and - i32.const 2 - i32.shl - i32.add - local.tee $0 - i32.load - i32.store offset=12 - local.get $0 - local.get $3 - i32.store end global.get $~lib/memory/__stack_pointer - i32.const 12 + local.get $0 + i32.store offset=8 + global.get $~lib/memory/__stack_pointer + local.get $7 + i32.store offset=12 + local.get $0 + local.get $7 + i32.store + local.get $0 + local.get $7 + i32.const 0 + call $~lib/rt/itcms/__link + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=8 + local.get $0 + local.get $1 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=8 + global.get $~lib/memory/__stack_pointer + local.get $3 + i32.store offset=12 + local.get $0 + local.get $3 + i32.store offset=8 + local.get $0 + local.get $3 + i32.const 0 + call $~lib/rt/itcms/__link + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=8 + local.get $0 + local.get $5 + i32.store offset=12 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=8 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=12 + local.get $0 + local.get $0 + i32.load offset=20 + i32.store offset=16 + global.get $~lib/memory/__stack_pointer + i32.const 16 i32.add global.set $~lib/memory/__stack_pointer ) - (func $"~lib/map/Map#get" (param $0 i32) (param $1 i64) (result i32) + (func $"~lib/map/Map#find" (param $0 i32) (param $1 i64) (param $2 i32) (result i32) + (local $3 i32) global.get $~lib/memory/__stack_pointer i32.const 4 i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 1896 + i32.const 3104 i32.lt_s if - i32.const 34688 - i32.const 34736 + i32.const 35904 + i32.const 35952 i32.const 1 i32.const 1 call $~lib/builtins/abort @@ -17297,476 +22609,443 @@ local.get $0 i32.store local.get $0 - local.get $1 - local.get $1 - i32.wrap_i64 - i32.const -1028477379 - i32.mul - i32.const 374761401 - i32.add - i32.const 17 - i32.rotl - i32.const 668265263 - i32.mul - local.get $1 - i64.const 32 - i64.shr_u - i32.wrap_i64 - i32.const -1028477379 - i32.mul - i32.add - i32.const 17 - i32.rotl - i32.const 668265263 - i32.mul - local.tee $0 - i32.const 15 - i32.shr_u - local.get $0 - i32.xor - i32.const -2048144777 - i32.mul - local.tee $0 - i32.const 13 - i32.shr_u + i32.load + global.get $~lib/memory/__stack_pointer local.get $0 - i32.xor - i32.const -1028477379 - i32.mul - local.tee $0 - i32.const 16 - i32.shr_u + i32.store + local.get $2 local.get $0 - i32.xor - call $"~lib/map/Map#find" - local.tee $0 - i32.eqz - if - i32.const 1616 - i32.const 1680 - i32.const 105 - i32.const 17 - call $~lib/builtins/abort - unreachable + i32.load offset=4 + i32.and + i32.const 2 + i32.shl + i32.add + i32.load + local.set $0 + loop $while-continue|0 + local.get $0 + if + local.get $0 + i32.load offset=16 + local.tee $2 + i32.const 1 + i32.and + if (result i32) + i32.const 0 + else + local.get $1 + local.get $0 + i64.load + i64.eq + end + if + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $0 + return + end + local.get $2 + i32.const -2 + i32.and + local.set $0 + br $while-continue|0 + end end - local.get $0 - i32.load offset=8 global.get $~lib/memory/__stack_pointer i32.const 4 i32.add global.set $~lib/memory/__stack_pointer + i32.const 0 ) - (func $"~lib/map/Map#set" (param $0 i32) (param $1 i64) (param $2 i64) - (local $3 i32) - (local $4 i32) + (func $"~lib/map/Map#constructor" (param $0 i32) (result i32) + (local $1 i32) + (local $2 i32) + (local $3 i64) + (local $4 i64) (local $5 i32) (local $6 i32) (local $7 i32) (local $8 i32) - (local $9 i64) - (local $10 i32) - (local $11 i32) - (local $12 i32) global.get $~lib/memory/__stack_pointer - i32.const 12 + i32.const 16 i32.sub global.set $~lib/memory/__stack_pointer - block $folding-inner1 - global.get $~lib/memory/__stack_pointer - i32.const 1896 - i32.lt_s - br_if $folding-inner1 - global.get $~lib/memory/__stack_pointer - i64.const 0 - i64.store - global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.store offset=8 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.sub - global.set $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - i32.const 1896 - i32.lt_s - br_if $folding-inner1 - global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.store - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store - local.get $0 - i32.load - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store - local.get $1 - i32.wrap_i64 - i32.const -1028477379 - i32.mul - i32.const 374761401 - i32.add - i32.const 17 - i32.rotl - i32.const 668265263 - i32.mul - local.get $1 - i64.const 32 - i64.shr_u - i32.wrap_i64 - i32.const -1028477379 - i32.mul - i32.add - i32.const 17 - i32.rotl - i32.const 668265263 - i32.mul - local.tee $3 - local.get $3 - i32.const 15 - i32.shr_u - i32.xor - i32.const -2048144777 - i32.mul - local.tee $3 - local.get $3 - i32.const 13 - i32.shr_u - i32.xor - i32.const -1028477379 - i32.mul - local.tee $3 - local.get $3 - i32.const 16 - i32.shr_u - i32.xor - local.tee $8 - local.get $0 - i32.load offset=4 - i32.and - i32.const 2 - i32.shl - i32.add - i32.load - local.set $3 - block $"__inlined_func$~lib/map/Map#find$1408" - loop $while-continue|0 - local.get $3 - if - local.get $3 - i32.load offset=16 - local.tee $4 - i32.const 1 - i32.and - if (result i32) - i32.const 0 - else - local.get $1 - local.get $3 - i64.load - i64.eq - end - if - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.add - global.set $~lib/memory/__stack_pointer - br $"__inlined_func$~lib/map/Map#find$1408" - end - local.get $4 - i32.const -2 - i32.and - local.set $3 - br $while-continue|0 - end - end - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.add - global.set $~lib/memory/__stack_pointer - i32.const 0 - local.set $3 - end - local.get $3 - if - local.get $3 - local.get $2 - i64.store offset=8 - else - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store - local.get $0 - i32.load offset=16 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store - local.get $0 - i32.load offset=12 - i32.eq - if - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 - i32.load offset=20 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 - i32.load offset=12 - i32.const 3 - i32.mul - i32.const 4 - i32.div_s - i32.lt_s - if (result i32) - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 - i32.load offset=4 - else - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 - i32.load offset=4 - i32.const 1 - i32.shl - i32.const 1 - i32.or - end - local.set $5 - global.get $~lib/memory/__stack_pointer - i32.const 16 - i32.sub - global.set $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - i32.const 1896 - i32.lt_s - br_if $folding-inner1 - global.get $~lib/memory/__stack_pointer - i64.const 0 - i64.store - global.get $~lib/memory/__stack_pointer - i64.const 0 - i64.store offset=8 - global.get $~lib/memory/__stack_pointer - local.get $5 - i32.const 1 - i32.add - local.tee $3 - i32.const 2 - i32.shl - call $~lib/arraybuffer/ArrayBuffer#constructor - local.tee $10 - i32.store - global.get $~lib/memory/__stack_pointer - local.get $3 - i32.const 3 - i32.shl - i32.const 3 - i32.div_s - local.tee $7 - i32.const 24 - i32.mul - call $~lib/arraybuffer/ArrayBuffer#constructor - local.tee $4 - i32.store offset=4 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=8 - local.get $0 - i32.load offset=8 - local.set $11 + global.get $~lib/memory/__stack_pointer + i32.const 3104 + i32.lt_s + if + i32.const 35904 + i32.const 35952 + i32.const 1 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store + global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store offset=8 + global.get $~lib/memory/__stack_pointer + i32.const 24 + i32.const 54 + call $~lib/rt/itcms/__new + local.tee $1 + i32.store + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + i32.const 16 + call $~lib/arraybuffer/ArrayBuffer#constructor + local.set $5 + global.get $~lib/memory/__stack_pointer + local.get $5 + i32.store offset=8 + local.get $1 + local.get $5 + i32.store + local.get $1 + local.get $5 + i32.const 0 + call $~lib/rt/itcms/__link + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + local.get $1 + i32.const 3 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + i32.const 96 + call $~lib/arraybuffer/ArrayBuffer#constructor + local.set $5 + global.get $~lib/memory/__stack_pointer + local.get $5 + i32.store offset=8 + local.get $1 + local.get $5 + i32.store offset=8 + local.get $1 + local.get $5 + i32.const 0 + call $~lib/rt/itcms/__link + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + local.get $1 + i32.const 4 + i32.store offset=12 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + local.get $1 + i32.const 0 + i32.store offset=16 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + local.get $1 + i32.const 0 + i32.store offset=20 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + local.get $0 + call $"~lib/array/Array<~lib/map/KeyValue>#get:length" + local.tee $5 + i32.const 0 + i32.gt_s + if + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + local.get $5 + local.get $1 + i32.load offset=12 + i32.ge_s + if + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + local.get $1 + local.get $5 + i32.store offset=4 + end + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=8 + local.get $1 + local.get $1 + i32.load offset=4 + i32.const 1 + i32.shl + i32.const 1 + i32.or + call $"~lib/map/Map#rehash" + loop $for-loop|0 + local.get $2 + local.get $5 + i32.lt_s + if global.get $~lib/memory/__stack_pointer local.get $0 i32.store offset=8 - local.get $11 local.get $0 - i32.load offset=16 - i32.const 24 - i32.mul - i32.add + local.get $2 + call $"~lib/array/Array<~lib/map/KeyValue>#__get" local.set $6 - local.get $4 - local.set $3 - loop $while-continue|00 - local.get $6 - local.get $11 - i32.ne - if - local.get $11 - i32.load offset=16 - i32.const 1 - i32.and - i32.eqz - if - local.get $3 - local.get $11 - i64.load - local.tee $9 - i64.store - local.get $3 - local.get $11 - i64.load offset=8 - i64.store offset=8 - local.get $3 - local.get $10 - local.get $5 - local.get $9 - i32.wrap_i64 - i32.const -1028477379 - i32.mul - i32.const 374761401 - i32.add - i32.const 17 - i32.rotl - i32.const 668265263 - i32.mul - local.get $9 - i64.const 32 - i64.shr_u - i32.wrap_i64 - i32.const -1028477379 - i32.mul - i32.add - i32.const 17 - i32.rotl - i32.const 668265263 - i32.mul - local.tee $12 - local.get $12 - i32.const 15 - i32.shr_u - i32.xor - i32.const -2048144777 - i32.mul - local.tee $12 - local.get $12 - i32.const 13 - i32.shr_u - i32.xor - i32.const -1028477379 - i32.mul - local.tee $12 - local.get $12 - i32.const 16 - i32.shr_u - i32.xor - i32.and - i32.const 2 - i32.shl - i32.add - local.tee $12 - i32.load - i32.store offset=16 - local.get $12 - local.get $3 - i32.store - local.get $3 - i32.const 24 - i32.add - local.set $3 - end - local.get $11 - i32.const 24 - i32.add - local.set $11 - br $while-continue|00 - end - end - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=8 - global.get $~lib/memory/__stack_pointer - local.get $10 - i32.store offset=12 - local.get $0 - local.get $10 - i32.store - local.get $0 - local.get $10 - call $~lib/rt/itcms/__link global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=8 - local.get $0 - local.get $5 + local.get $6 i32.store offset=4 + local.get $6 + i64.load + local.set $3 global.get $~lib/memory/__stack_pointer local.get $0 i32.store offset=8 - global.get $~lib/memory/__stack_pointer - local.get $4 - i32.store offset=12 - local.get $0 - local.get $4 - i32.store offset=8 - local.get $0 - local.get $4 - call $~lib/rt/itcms/__link - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=8 - local.get $0 - local.get $7 - i32.store offset=12 - global.get $~lib/memory/__stack_pointer local.get $0 - i32.store offset=8 + local.get $2 + call $"~lib/array/Array<~lib/map/KeyValue>#__get" + local.set $6 global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=12 - local.get $0 - local.get $0 - i32.load offset=20 - i32.store offset=16 + local.get $6 + i32.store offset=4 + local.get $6 + i64.load offset=8 + local.set $4 global.get $~lib/memory/__stack_pointer - i32.const 16 + local.get $1 + i32.store offset=4 + local.get $1 + local.get $3 + local.get $3 + i32.wrap_i64 + i32.const -1028477379 + i32.mul + i32.const 374761401 i32.add - global.set $~lib/memory/__stack_pointer - end - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.load offset=8 - local.tee $3 - i32.store offset=8 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 - local.get $0 - i32.load offset=16 - local.tee $4 - i32.const 1 - i32.add - i32.store offset=16 - local.get $3 - local.get $4 - i32.const 24 - i32.mul - i32.add - local.tee $3 - local.get $1 - i64.store - local.get $3 - local.get $2 - i64.store offset=8 + i32.const 17 + i32.rotl + i32.const 668265263 + i32.mul + local.get $3 + i64.const 32 + i64.shr_u + i32.wrap_i64 + i32.const -1028477379 + i32.mul + i32.add + i32.const 17 + i32.rotl + i32.const 668265263 + i32.mul + local.tee $6 + i32.const 15 + i32.shr_u + local.get $6 + i32.xor + i32.const -2048144777 + i32.mul + local.tee $6 + i32.const 13 + i32.shr_u + local.get $6 + i32.xor + i32.const -1028477379 + i32.mul + local.tee $6 + i32.const 16 + i32.shr_u + local.get $6 + i32.xor + local.tee $6 + call $"~lib/map/Map#find" + local.tee $7 + if + local.get $7 + local.get $4 + i64.store offset=8 + else + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.load offset=8 + local.tee $7 + i32.store offset=12 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=8 + local.get $1 + local.get $1 + i32.load offset=16 + local.tee $8 + i32.const 1 + i32.add + i32.store offset=16 + local.get $7 + local.get $8 + i32.const 24 + i32.mul + i32.add + local.tee $7 + local.get $3 + i64.store + local.get $7 + local.get $4 + i64.store offset=8 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=8 + local.get $1 + local.get $1 + i32.load offset=20 + i32.const 1 + i32.add + i32.store offset=20 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + local.get $1 + i32.load + local.set $8 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + local.get $7 + local.get $8 + local.get $6 + local.get $1 + i32.load offset=4 + i32.and + i32.const 2 + i32.shl + i32.add + local.tee $6 + i32.load + i32.store offset=16 + local.get $6 + local.get $7 + i32.store + end + local.get $2 + i32.const 1 + i32.add + local.set $2 + br $for-loop|0 + end + end + end + global.get $~lib/memory/__stack_pointer + i32.const 16 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $1 + ) + (func $"~lib/map/Map#set" (param $0 i32) (param $1 i64) (param $2 i64) + (local $3 i32) + (local $4 i32) + (local $5 i32) + global.get $~lib/memory/__stack_pointer + i32.const 12 + i32.sub + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 3104 + i32.lt_s + if + i32.const 35904 + i32.const 35952 + i32.const 1 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store offset=8 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + local.get $0 + local.get $1 + local.get $1 + i32.wrap_i64 + i32.const -1028477379 + i32.mul + i32.const 374761401 + i32.add + i32.const 17 + i32.rotl + i32.const 668265263 + i32.mul + local.get $1 + i64.const 32 + i64.shr_u + i32.wrap_i64 + i32.const -1028477379 + i32.mul + i32.add + i32.const 17 + i32.rotl + i32.const 668265263 + i32.mul + local.tee $3 + i32.const 15 + i32.shr_u + local.get $3 + i32.xor + i32.const -2048144777 + i32.mul + local.tee $3 + i32.const 13 + i32.shr_u + local.get $3 + i32.xor + i32.const -1028477379 + i32.mul + local.tee $3 + i32.const 16 + i32.shr_u + local.get $3 + i32.xor + local.tee $3 + call $"~lib/map/Map#find" + local.tee $4 + if + local.get $4 + local.get $2 + i64.store offset=8 + else + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + local.get $0 + i32.load offset=16 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + local.get $0 + i32.load offset=12 + i32.eq + if global.get $~lib/memory/__stack_pointer local.get $0 i32.store @@ -17774,48 +23053,112 @@ local.get $0 i32.store offset=4 local.get $0 - local.get $0 i32.load offset=20 - i32.const 1 - i32.add - i32.store offset=20 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store - local.get $0 - i32.load local.set $4 global.get $~lib/memory/__stack_pointer local.get $0 - i32.store - local.get $3 - local.get $4 - local.get $8 + i32.store offset=4 local.get $0 - i32.load offset=4 - i32.and - i32.const 2 - i32.shl - i32.add - local.tee $0 - i32.load - i32.store offset=16 + local.get $4 local.get $0 - local.get $3 - i32.store + i32.load offset=12 + i32.const 3 + i32.mul + i32.const 4 + i32.div_s + i32.lt_s + if (result i32) + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + local.get $0 + i32.load offset=4 + else + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + local.get $0 + i32.load offset=4 + i32.const 1 + i32.shl + i32.const 1 + i32.or + end + call $"~lib/map/Map#rehash" end global.get $~lib/memory/__stack_pointer - i32.const 12 + local.get $0 + i32.store + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.load offset=8 + local.tee $4 + i32.store offset=8 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + local.get $0 + local.get $0 + i32.load offset=16 + local.tee $5 + i32.const 1 i32.add - global.set $~lib/memory/__stack_pointer - return + i32.store offset=16 + local.get $4 + local.get $5 + i32.const 24 + i32.mul + i32.add + local.tee $4 + local.get $1 + i64.store + local.get $4 + local.get $2 + i64.store offset=8 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + local.get $0 + local.get $0 + i32.load offset=20 + i32.const 1 + i32.add + i32.store offset=20 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + local.get $0 + i32.load + local.set $5 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + local.get $4 + local.get $5 + local.get $3 + local.get $0 + i32.load offset=4 + i32.and + i32.const 2 + i32.shl + i32.add + local.tee $0 + i32.load + i32.store offset=16 + local.get $0 + local.get $4 + i32.store end - i32.const 34688 - i32.const 34736 - i32.const 1 - i32.const 1 - call $~lib/builtins/abort - unreachable + global.get $~lib/memory/__stack_pointer + i32.const 12 + i32.add + global.set $~lib/memory/__stack_pointer ) (func $"~lib/map/Map#delete" (param $0 i32) (param $1 i64) (local $2 i32) @@ -17825,11 +23168,11 @@ i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 1896 + i32.const 3104 i32.lt_s if - i32.const 34688 - i32.const 34736 + i32.const 35904 + i32.const 35952 i32.const 1 i32.const 1 call $~lib/builtins/abort @@ -17968,8 +23311,8 @@ ) (func $"std/map/testNumeric" (local $0 i32) - (local $1 i32) - (local $2 i64) + (local $1 i64) + (local $2 i32) (local $3 i32) (local $4 i32) (local $5 i32) @@ -17978,316 +23321,271 @@ (local $8 i32) (local $9 i32) global.get $~lib/memory/__stack_pointer - i32.const 24 + i32.const 40 i32.sub global.set $~lib/memory/__stack_pointer block $folding-inner1 global.get $~lib/memory/__stack_pointer - i32.const 1896 + i32.const 3104 i32.lt_s br_if $folding-inner1 global.get $~lib/memory/__stack_pointer i32.const 0 - i32.const 24 + i32.const 40 memory.fill global.get $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer i32.const 12 i32.sub - global.set $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - i32.const 1896 - i32.lt_s - br_if $folding-inner1 - global.get $~lib/memory/__stack_pointer - i64.const 0 - i64.store - global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.store offset=8 - global.get $~lib/memory/__stack_pointer - i32.const 24 - i32.const 24 - call $~lib/rt/itcms/__new - local.tee $1 - i32.store - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - i32.const 16 - call $~lib/arraybuffer/ArrayBuffer#constructor - local.set $5 - global.get $~lib/memory/__stack_pointer - local.get $5 - i32.store offset=8 - local.get $1 - local.get $5 - i32.store - local.get $1 - local.get $5 - call $~lib/rt/itcms/__link + global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - local.get $1 - i32.const 3 - i32.store offset=4 + i32.const 3104 + i32.lt_s + br_if $folding-inner1 global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - i32.const 64 - call $~lib/arraybuffer/ArrayBuffer#constructor - local.set $5 + i64.const 0 + i64.store global.get $~lib/memory/__stack_pointer - local.get $5 - i32.store offset=8 - local.get $1 - local.get $5 + i32.const 0 i32.store offset=8 - local.get $1 - local.get $5 - call $~lib/rt/itcms/__link global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - local.get $1 - i32.const 4 - i32.store offset=12 + i32.const 52 + i32.const 2544 + call $~lib/rt/__newArray + local.tee $4 + i32.store global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - local.get $1 i32.const 0 - i32.store offset=16 - global.get $~lib/memory/__stack_pointer - local.get $1 i32.store offset=4 - local.get $1 - i32.const 0 - i32.store offset=20 + global.get $~lib/memory/__stack_pointer + local.get $4 + i32.store offset=8 + local.get $4 + call $"~lib/map/Map#constructor" + local.set $4 global.get $~lib/memory/__stack_pointer i32.const 12 i32.add global.set $~lib/memory/__stack_pointer - local.get $1 + local.get $4 i32.store loop $for-loop|0 - local.get $2 + local.get $1 i64.const 100 i64.lt_u if global.get $~lib/memory/__stack_pointer - local.get $1 + local.get $4 i32.store offset=4 + local.get $4 local.get $1 - local.get $2 call $"~lib/map/Map#has" if i32.const 0 - i32.const 1568 - i32.const 6 + i32.const 1776 + i32.const 7 i32.const 5 call $~lib/builtins/abort unreachable end global.get $~lib/memory/__stack_pointer - local.get $1 + local.get $4 i32.store offset=4 + local.get $4 + local.get $1 local.get $1 - local.get $2 - local.get $2 i32.wrap_i64 i32.const 10 i32.add call $"~lib/map/Map#set" global.get $~lib/memory/__stack_pointer - local.get $1 + local.get $4 i32.store offset=4 + local.get $4 local.get $1 - local.get $2 call $"~lib/map/Map#has" i32.eqz if i32.const 0 - i32.const 1568 - i32.const 8 + i32.const 1776 + i32.const 9 i32.const 5 call $~lib/builtins/abort unreachable end global.get $~lib/memory/__stack_pointer - local.get $1 + local.get $4 i32.store offset=4 + local.get $4 local.get $1 - local.get $2 call $"~lib/map/Map#get" - local.get $2 + local.get $1 i32.wrap_i64 i32.const 10 i32.add i32.ne if i32.const 0 - i32.const 1568 - i32.const 9 + i32.const 1776 + i32.const 10 i32.const 5 call $~lib/builtins/abort unreachable end - local.get $2 + local.get $1 i64.const 1 i64.add - local.set $2 + local.set $1 br $for-loop|0 end end global.get $~lib/memory/__stack_pointer - local.get $1 + local.get $4 i32.store offset=4 - local.get $1 + local.get $4 call $"~lib/map/Map#get:size" i32.const 100 i32.ne if i32.const 0 - i32.const 1568 - i32.const 11 + i32.const 1776 + i32.const 12 i32.const 3 call $~lib/builtins/abort unreachable end i64.const 0 - local.set $2 + local.set $1 loop $for-loop|1 - local.get $2 + local.get $1 i64.const 100 i64.lt_u if global.get $~lib/memory/__stack_pointer - local.get $1 + local.get $4 i32.store offset=4 + local.get $4 local.get $1 - local.get $2 call $"~lib/map/Map#has" i32.eqz if i32.const 0 - i32.const 1568 - i32.const 15 + i32.const 1776 + i32.const 16 i32.const 5 call $~lib/builtins/abort unreachable end global.get $~lib/memory/__stack_pointer - local.get $1 + local.get $4 i32.store offset=4 + local.get $4 local.get $1 - local.get $2 call $"~lib/map/Map#get" - local.get $2 + local.get $1 i32.wrap_i64 i32.const 10 i32.add i32.ne if i32.const 0 - i32.const 1568 - i32.const 16 + i32.const 1776 + i32.const 17 i32.const 5 call $~lib/builtins/abort unreachable end global.get $~lib/memory/__stack_pointer - local.get $1 + local.get $4 i32.store offset=4 + local.get $4 + local.get $1 local.get $1 - local.get $2 - local.get $2 i32.wrap_i64 i32.const 20 i32.add call $"~lib/map/Map#set" global.get $~lib/memory/__stack_pointer - local.get $1 + local.get $4 i32.store offset=4 + local.get $4 local.get $1 - local.get $2 call $"~lib/map/Map#has" i32.eqz if i32.const 0 - i32.const 1568 - i32.const 18 + i32.const 1776 + i32.const 19 i32.const 5 call $~lib/builtins/abort unreachable end global.get $~lib/memory/__stack_pointer - local.get $1 + local.get $4 i32.store offset=4 + local.get $4 local.get $1 - local.get $2 call $"~lib/map/Map#get" - local.get $2 + local.get $1 i32.wrap_i64 i32.const 20 i32.add i32.ne if i32.const 0 - i32.const 1568 - i32.const 19 + i32.const 1776 + i32.const 20 i32.const 5 call $~lib/builtins/abort unreachable end - local.get $2 + local.get $1 i64.const 1 i64.add - local.set $2 + local.set $1 br $for-loop|1 end end global.get $~lib/memory/__stack_pointer - local.get $1 + local.get $4 i32.store offset=4 - local.get $1 + local.get $4 call $"~lib/map/Map#get:size" i32.const 100 i32.ne if i32.const 0 - i32.const 1568 - i32.const 21 + i32.const 1776 + i32.const 22 i32.const 3 call $~lib/builtins/abort unreachable end global.get $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - local.get $1 + local.get $4 i32.store offset=4 global.get $~lib/memory/__stack_pointer i32.const 8 i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 1896 + i32.const 3104 i32.lt_s br_if $folding-inner1 global.get $~lib/memory/__stack_pointer i64.const 0 i64.store global.get $~lib/memory/__stack_pointer - local.get $1 + local.get $4 i32.store - local.get $1 + local.get $4 i32.load offset=8 local.set $6 global.get $~lib/memory/__stack_pointer - local.get $1 + local.get $4 i32.store - local.get $1 + local.get $4 i32.load offset=16 local.set $7 global.get $~lib/memory/__stack_pointer @@ -18296,7 +23594,7 @@ i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 1896 + i32.const 3104 i32.lt_s br_if $folding-inner1 global.get $~lib/memory/__stack_pointer @@ -18307,7 +23605,7 @@ i64.store offset=8 global.get $~lib/memory/__stack_pointer i32.const 16 - i32.const 25 + i32.const 53 call $~lib/rt/itcms/__new local.tee $8 i32.store @@ -18319,6 +23617,7 @@ i32.store local.get $8 i32.const 0 + i32.const 0 call $~lib/rt/itcms/__link global.get $~lib/memory/__stack_pointer local.get $8 @@ -18342,8 +23641,8 @@ i32.const 134217727 i32.gt_u if - i32.const 1456 - i32.const 1728 + i32.const 1056 + i32.const 1568 i32.const 70 i32.const 60 call $~lib/builtins/abort @@ -18361,25 +23660,26 @@ local.tee $9 i32.const 1 call $~lib/rt/itcms/__new - local.tee $4 + local.tee $3 i32.store offset=8 global.get $~lib/memory/__stack_pointer local.get $8 i32.store offset=4 global.get $~lib/memory/__stack_pointer - local.get $4 + local.get $3 i32.store offset=12 local.get $8 - local.get $4 + local.get $3 i32.store local.get $8 - local.get $4 + local.get $3 + i32.const 0 call $~lib/rt/itcms/__link global.get $~lib/memory/__stack_pointer local.get $8 i32.store offset=4 local.get $8 - local.get $4 + local.get $3 i32.store offset=4 global.get $~lib/memory/__stack_pointer local.get $8 @@ -18400,16 +23700,16 @@ local.get $8 i32.store offset=4 loop $for-loop|00 - local.get $3 + local.get $2 local.get $7 i32.lt_s if local.get $6 - local.get $3 + local.get $2 i32.const 4 i32.shl i32.add - local.tee $4 + local.tee $3 i32.load offset=12 i32.const 1 i32.and @@ -18420,7 +23720,7 @@ i32.store local.get $8 local.get $0 - local.get $4 + local.get $3 i64.load call $~lib/array/Array#__set local.get $0 @@ -18428,10 +23728,10 @@ i32.add local.set $0 end - local.get $3 + local.get $2 i32.const 1 i32.add - local.set $3 + local.set $2 br $for-loop|00 end end @@ -18448,10 +23748,10 @@ local.get $8 i32.store offset=8 global.get $~lib/memory/__stack_pointer - local.get $1 + local.get $4 i32.store offset=4 global.get $~lib/memory/__stack_pointer - local.get $1 + local.get $4 call $"~lib/map/Map#values" local.tee $0 i32.store offset=12 @@ -18461,7 +23761,7 @@ i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 1896 + i32.const 3104 i32.lt_s br_if $folding-inner1 global.get $~lib/memory/__stack_pointer @@ -18471,84 +23771,39 @@ i32.const 0 i32.store offset=8 global.get $~lib/memory/__stack_pointer - i32.const 24 - i32.const 26 - call $~lib/rt/itcms/__new - local.tee $4 - i32.store - global.get $~lib/memory/__stack_pointer - local.get $4 - i32.store offset=4 - i32.const 16 - call $~lib/arraybuffer/ArrayBuffer#constructor - local.set $5 - global.get $~lib/memory/__stack_pointer - local.get $5 - i32.store offset=8 - local.get $4 - local.get $5 + i32.const 56 + i32.const 2576 + call $~lib/rt/__newArray + local.tee $3 i32.store - local.get $4 - local.get $5 - call $~lib/rt/itcms/__link - global.get $~lib/memory/__stack_pointer - local.get $4 - i32.store offset=4 - local.get $4 - i32.const 3 - i32.store offset=4 global.get $~lib/memory/__stack_pointer - local.get $4 + i32.const 0 i32.store offset=4 - i32.const 96 - call $~lib/arraybuffer/ArrayBuffer#constructor - local.set $5 global.get $~lib/memory/__stack_pointer - local.get $5 - i32.store offset=8 - local.get $4 - local.get $5 + local.get $3 i32.store offset=8 - local.get $4 - local.get $5 - call $~lib/rt/itcms/__link - global.get $~lib/memory/__stack_pointer - local.get $4 - i32.store offset=4 - local.get $4 - i32.const 4 - i32.store offset=12 - global.get $~lib/memory/__stack_pointer - local.get $4 - i32.store offset=4 - local.get $4 - i32.const 0 - i32.store offset=16 - global.get $~lib/memory/__stack_pointer - local.get $4 - i32.store offset=4 - local.get $4 - i32.const 0 - i32.store offset=20 + local.get $3 + call $"~lib/map/Map#constructor" + local.set $3 global.get $~lib/memory/__stack_pointer i32.const 12 i32.add global.set $~lib/memory/__stack_pointer - local.get $4 + local.get $3 i32.store offset=16 global.get $~lib/memory/__stack_pointer - call $"~lib/map/Map#constructor" + call $"~lib/map/Map#constructor@varargs" local.tee $5 i32.store offset=20 i32.const 0 - local.set $3 + local.set $2 loop $for-loop|2 global.get $~lib/memory/__stack_pointer local.get $8 i32.store offset=4 local.get $8 - call $~lib/array/Array#get:length - local.get $3 + call $"~lib/array/Array<~lib/map/KeyValue>#get:length" + local.get $2 i32.gt_s if global.get $~lib/memory/__stack_pointer @@ -18559,7 +23814,7 @@ i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 1896 + i32.const 3104 i32.lt_s br_if $folding-inner1 global.get $~lib/memory/__stack_pointer @@ -18568,13 +23823,13 @@ global.get $~lib/memory/__stack_pointer local.get $8 i32.store - local.get $3 + local.get $2 local.get $8 i32.load offset=12 i32.ge_u if - i32.const 1248 - i32.const 1728 + i32.const 1360 + i32.const 1568 i32.const 114 i32.const 42 call $~lib/builtins/abort @@ -18585,12 +23840,12 @@ i32.store local.get $8 i32.load offset=4 - local.get $3 + local.get $2 i32.const 3 i32.shl i32.add i64.load - local.set $2 + local.set $1 global.get $~lib/memory/__stack_pointer i32.const 4 i32.add @@ -18599,28 +23854,28 @@ local.get $0 i32.store offset=4 local.get $0 - local.get $3 + local.get $2 call $~lib/array/Array#__get local.set $6 global.get $~lib/memory/__stack_pointer - local.get $1 + local.get $4 i32.store offset=4 + local.get $4 local.get $1 - local.get $2 call $"~lib/map/Map#has" i32.eqz if i32.const 0 - i32.const 1568 - i32.const 31 + i32.const 1776 + i32.const 32 i32.const 5 call $~lib/builtins/abort unreachable end global.get $~lib/memory/__stack_pointer - local.get $1 + local.get $4 i32.store offset=4 - local.get $1 + local.get $4 local.get $6 i32.const 20 i32.sub @@ -18629,18 +23884,18 @@ i32.eqz if i32.const 0 - i32.const 1568 - i32.const 32 + i32.const 1776 + i32.const 33 i32.const 5 call $~lib/builtins/abort unreachable end global.get $~lib/memory/__stack_pointer - local.get $4 + local.get $3 i32.store offset=4 - local.get $4 - local.get $2 - local.get $2 + local.get $3 + local.get $1 + local.get $1 call $"~lib/map/Map#set" global.get $~lib/memory/__stack_pointer local.get $5 @@ -18652,24 +23907,24 @@ local.tee $6 local.get $6 call $"~lib/map/Map#set" - local.get $3 + local.get $2 i32.const 1 i32.add - local.set $3 + local.set $2 br $for-loop|2 end end global.get $~lib/memory/__stack_pointer - local.get $4 + local.get $3 i32.store offset=4 - local.get $4 + local.get $3 call $"~lib/map/Map#get:size" i32.const 100 i32.ne if i32.const 0 - i32.const 1568 - i32.const 36 + i32.const 1776 + i32.const 37 i32.const 3 call $~lib/builtins/abort unreachable @@ -18683,299 +23938,615 @@ i32.ne if i32.const 0 - i32.const 1568 - i32.const 37 + i32.const 1776 + i32.const 38 i32.const 3 call $~lib/builtins/abort unreachable end i64.const 0 - local.set $2 + local.set $1 loop $for-loop|3 - local.get $2 + local.get $1 i64.const 50 i64.lt_u if global.get $~lib/memory/__stack_pointer - local.get $1 + local.get $4 i32.store offset=4 + local.get $4 local.get $1 - local.get $2 call $"~lib/map/Map#has" i32.eqz if i32.const 0 - i32.const 1568 - i32.const 41 + i32.const 1776 + i32.const 42 i32.const 5 call $~lib/builtins/abort unreachable end global.get $~lib/memory/__stack_pointer - local.get $1 + local.get $4 i32.store offset=4 + local.get $4 local.get $1 - local.get $2 call $"~lib/map/Map#get" - local.get $2 + local.get $1 i32.wrap_i64 i32.const 20 i32.add i32.ne if i32.const 0 - i32.const 1568 - i32.const 42 + i32.const 1776 + i32.const 43 i32.const 5 call $~lib/builtins/abort unreachable end global.get $~lib/memory/__stack_pointer - local.get $1 + local.get $4 i32.store offset=4 + local.get $4 local.get $1 - local.get $2 call $"~lib/map/Map#delete" global.get $~lib/memory/__stack_pointer - local.get $1 + local.get $4 i32.store offset=4 + local.get $4 local.get $1 - local.get $2 call $"~lib/map/Map#has" if i32.const 0 - i32.const 1568 - i32.const 44 + i32.const 1776 + i32.const 45 i32.const 5 call $~lib/builtins/abort unreachable end - local.get $2 + local.get $1 i64.const 1 i64.add - local.set $2 + local.set $1 br $for-loop|3 end end global.get $~lib/memory/__stack_pointer - local.get $1 + local.get $4 i32.store offset=4 - local.get $1 + local.get $4 call $"~lib/map/Map#get:size" i32.const 50 i32.ne if i32.const 0 - i32.const 1568 - i32.const 46 + i32.const 1776 + i32.const 47 i32.const 3 call $~lib/builtins/abort unreachable end i64.const 0 - local.set $2 + local.set $1 loop $for-loop|4 - local.get $2 + local.get $1 i64.const 50 i64.lt_u if global.get $~lib/memory/__stack_pointer - local.get $1 + local.get $4 i32.store offset=4 + local.get $4 local.get $1 - local.get $2 call $"~lib/map/Map#has" if i32.const 0 - i32.const 1568 - i32.const 50 + i32.const 1776 + i32.const 51 i32.const 5 call $~lib/builtins/abort unreachable end global.get $~lib/memory/__stack_pointer - local.get $1 + local.get $4 i32.store offset=4 + local.get $4 + local.get $1 local.get $1 - local.get $2 - local.get $2 i32.wrap_i64 i32.const 10 i32.add call $"~lib/map/Map#set" global.get $~lib/memory/__stack_pointer - local.get $1 + local.get $4 i32.store offset=4 + local.get $4 local.get $1 - local.get $2 call $"~lib/map/Map#has" i32.eqz if i32.const 0 - i32.const 1568 - i32.const 52 + i32.const 1776 + i32.const 53 i32.const 5 call $~lib/builtins/abort unreachable end global.get $~lib/memory/__stack_pointer - local.get $1 + local.get $4 i32.store offset=4 + local.get $4 local.get $1 - local.get $2 call $"~lib/map/Map#delete" global.get $~lib/memory/__stack_pointer - local.get $1 + local.get $4 i32.store offset=4 + local.get $4 local.get $1 - local.get $2 call $"~lib/map/Map#has" if i32.const 0 - i32.const 1568 - i32.const 54 + i32.const 1776 + i32.const 55 i32.const 5 call $~lib/builtins/abort unreachable end - local.get $2 + local.get $1 i64.const 1 i64.add - local.set $2 + local.set $1 br $for-loop|4 end end global.get $~lib/memory/__stack_pointer - local.get $1 + local.get $4 i32.store offset=4 - local.get $1 + local.get $4 call $"~lib/map/Map#get:size" i32.const 50 i32.ne if i32.const 0 - i32.const 1568 - i32.const 56 + i32.const 1776 + i32.const 57 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + local.get $4 + i32.store offset=4 + local.get $4 + call $"~lib/map/Map#clear" + global.get $~lib/memory/__stack_pointer + local.get $4 + i32.store offset=4 + local.get $4 + call $"~lib/map/Map#get:size" + if + i32.const 0 + i32.const 1776 + i32.const 61 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + i32.const 52 + i32.const 2608 + call $~lib/rt/__newArray + local.tee $0 + i32.store offset=24 + i64.const 0 + local.set $1 + loop $for-loop|5 + local.get $1 + i64.const 100 + i64.lt_u + if + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.sub + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 3104 + i32.lt_s + br_if $folding-inner1 + global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store + global.get $~lib/memory/__stack_pointer + i32.const 12 + i32.const 51 + call $~lib/rt/itcms/__new + local.tee $3 + i32.store + global.get $~lib/memory/__stack_pointer + local.get $3 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + local.get $3 + call $~lib/object/Object#constructor + local.tee $3 + i32.store + global.get $~lib/memory/__stack_pointer + local.get $3 + i32.store offset=4 + local.get $3 + i64.const 0 + i64.store + global.get $~lib/memory/__stack_pointer + local.get $3 + i32.store offset=4 + local.get $3 + i32.const 0 + i32.store offset=8 + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $3 + i32.store offset=32 + global.get $~lib/memory/__stack_pointer + local.get $3 + i32.store offset=36 + local.get $3 + local.get $1 + i64.store + global.get $~lib/memory/__stack_pointer + local.get $3 + i32.store offset=36 + local.get $3 + local.get $1 + i32.wrap_i64 + i32.const 10 + i32.add + i32.store offset=8 + global.get $~lib/memory/__stack_pointer + local.get $3 + i32.store offset=28 + local.get $0 + local.get $3 + call $"~lib/array/Array<~lib/map/KeyValue>#push" + local.get $1 + i64.const 1 + i64.add + local.set $1 + br $for-loop|5 + end + end + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + local.get $0 + call $"~lib/map/Map#constructor" + local.tee $0 + i32.store + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + local.get $0 + call $"~lib/map/Map#get:size" + i32.const 100 + i32.ne + if + i32.const 0 + i32.const 1776 + i32.const 74 i32.const 3 call $~lib/builtins/abort unreachable end + i64.const 0 + local.set $1 + loop $for-loop|6 + local.get $1 + i64.const 100 + i64.lt_u + if + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + local.get $0 + local.get $1 + call $"~lib/map/Map#has" + i32.eqz + if + i32.const 0 + i32.const 1776 + i32.const 76 + i32.const 5 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + local.get $0 + local.get $1 + call $"~lib/map/Map#get" + local.get $1 + i32.wrap_i64 + i32.const 10 + i32.add + i32.ne + if + i32.const 0 + i32.const 1776 + i32.const 77 + i32.const 5 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + local.get $0 + local.get $1 + call $"~lib/map/Map#delete" + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + local.get $0 + local.get $1 + call $"~lib/map/Map#has" + if + i32.const 0 + i32.const 1776 + i32.const 79 + i32.const 5 + call $~lib/builtins/abort + unreachable + end + local.get $1 + i64.const 1 + i64.add + local.set $1 + br $for-loop|6 + end + end global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - local.get $1 - call $"~lib/map/Map#clear" - global.get $~lib/memory/__stack_pointer - local.get $1 + local.get $0 i32.store offset=4 - local.get $1 + local.get $0 call $"~lib/map/Map#get:size" if i32.const 0 - i32.const 1568 - i32.const 60 + i32.const 1776 + i32.const 81 i32.const 3 call $~lib/builtins/abort unreachable end global.get $~lib/memory/__stack_pointer - i32.const 24 + i32.const 40 i32.add global.set $~lib/memory/__stack_pointer return end - i32.const 34688 - i32.const 34736 + i32.const 35904 + i32.const 35952 i32.const 1 i32.const 1 call $~lib/builtins/abort unreachable ) - (func $"~lib/map/Map#find" (param $0 i32) (param $1 f32) (param $2 i32) (result i32) + (func $"~lib/map/Map#rehash" (param $0 i32) (param $1 i32) + (local $2 i32) (local $3 i32) + (local $4 f32) + (local $5 i32) + (local $6 i32) + (local $7 i32) + (local $8 i32) + (local $9 i32) global.get $~lib/memory/__stack_pointer - i32.const 4 + i32.const 16 i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 1896 + i32.const 3104 i32.lt_s if - i32.const 34688 - i32.const 34736 + i32.const 35904 + i32.const 35952 i32.const 1 i32.const 1 call $~lib/builtins/abort unreachable end global.get $~lib/memory/__stack_pointer - i32.const 0 + i64.const 0 + i64.store + global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store offset=8 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.const 1 + i32.add + local.tee $2 + i32.const 2 + i32.shl + call $~lib/arraybuffer/ArrayBuffer#constructor + local.tee $7 i32.store global.get $~lib/memory/__stack_pointer + local.get $2 + i32.const 3 + i32.shl + i32.const 3 + i32.div_s + local.tee $6 + i32.const 12 + i32.mul + call $~lib/arraybuffer/ArrayBuffer#constructor + local.tee $3 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer local.get $0 - i32.store + i32.store offset=8 local.get $0 - i32.load + i32.load offset=8 + local.set $8 global.get $~lib/memory/__stack_pointer local.get $0 - i32.store - local.get $2 + i32.store offset=8 + local.get $8 local.get $0 - i32.load offset=4 - i32.and - i32.const 2 - i32.shl + i32.load offset=16 + i32.const 12 + i32.mul i32.add - i32.load - local.set $0 + local.set $5 + local.get $3 + local.set $2 loop $while-continue|0 - local.get $0 + local.get $5 + local.get $8 + i32.ne if - local.get $0 + local.get $8 i32.load offset=8 - local.tee $2 i32.const 1 i32.and - if (result i32) - i32.const 0 - else - local.get $1 - local.get $0 - f32.load - f32.eq - end + i32.eqz if - global.get $~lib/memory/__stack_pointer - i32.const 4 + local.get $2 + local.get $8 + f32.load + local.tee $4 + f32.store + local.get $2 + local.get $8 + i32.load offset=4 + i32.store offset=4 + local.get $2 + local.get $7 + local.get $1 + local.get $4 + i32.reinterpret_f32 + i32.const -1028477379 + i32.mul + i32.const 374761397 i32.add - global.set $~lib/memory/__stack_pointer - local.get $0 - return + i32.const 17 + i32.rotl + i32.const 668265263 + i32.mul + local.tee $9 + local.get $9 + i32.const 15 + i32.shr_u + i32.xor + i32.const -2048144777 + i32.mul + local.tee $9 + local.get $9 + i32.const 13 + i32.shr_u + i32.xor + i32.const -1028477379 + i32.mul + local.tee $9 + local.get $9 + i32.const 16 + i32.shr_u + i32.xor + i32.and + i32.const 2 + i32.shl + i32.add + local.tee $9 + i32.load + i32.store offset=8 + local.get $9 + local.get $2 + i32.store + local.get $2 + i32.const 12 + i32.add + local.set $2 end - local.get $2 - i32.const -2 - i32.and - local.set $0 + local.get $8 + i32.const 12 + i32.add + local.set $8 br $while-continue|0 end end global.get $~lib/memory/__stack_pointer - i32.const 4 + local.get $0 + i32.store offset=8 + global.get $~lib/memory/__stack_pointer + local.get $7 + i32.store offset=12 + local.get $0 + local.get $7 + i32.store + local.get $0 + local.get $7 + i32.const 0 + call $~lib/rt/itcms/__link + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=8 + local.get $0 + local.get $1 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=8 + global.get $~lib/memory/__stack_pointer + local.get $3 + i32.store offset=12 + local.get $0 + local.get $3 + i32.store offset=8 + local.get $0 + local.get $3 + i32.const 0 + call $~lib/rt/itcms/__link + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=8 + local.get $0 + local.get $6 + i32.store offset=12 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=8 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=12 + local.get $0 + local.get $0 + i32.load offset=20 + i32.store offset=16 + global.get $~lib/memory/__stack_pointer + i32.const 16 i32.add global.set $~lib/memory/__stack_pointer - i32.const 0 ) - (func $"~lib/map/Map#has" (param $0 i32) (param $1 f32) (result i32) + (func $"~lib/map/Map#find" (param $0 i32) (param $1 f32) (param $2 i32) (result i32) + (local $3 i32) global.get $~lib/memory/__stack_pointer i32.const 4 i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 1896 + i32.const 3104 i32.lt_s if - i32.const 34688 - i32.const 34736 + i32.const 35904 + i32.const 35952 i32.const 1 i32.const 1 call $~lib/builtins/abort @@ -18988,63 +24559,75 @@ local.get $0 i32.store local.get $0 - local.get $1 - local.get $1 - i32.reinterpret_f32 - i32.const -1028477379 - i32.mul - i32.const 374761397 - i32.add - i32.const 17 - i32.rotl - i32.const 668265263 - i32.mul - local.tee $0 - local.get $0 - i32.const 15 - i32.shr_u - i32.xor - i32.const -2048144777 - i32.mul - local.tee $0 + i32.load + global.get $~lib/memory/__stack_pointer local.get $0 - i32.const 13 - i32.shr_u - i32.xor - i32.const -1028477379 - i32.mul - local.tee $0 + i32.store + local.get $2 local.get $0 - i32.const 16 - i32.shr_u - i32.xor - call $"~lib/map/Map#find" - i32.const 0 - i32.ne + i32.load offset=4 + i32.and + i32.const 2 + i32.shl + i32.add + i32.load + local.set $0 + loop $while-continue|0 + local.get $0 + if + local.get $0 + i32.load offset=8 + local.tee $2 + i32.const 1 + i32.and + if (result i32) + i32.const 0 + else + local.get $1 + local.get $0 + f32.load + f32.eq + end + if + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $0 + return + end + local.get $2 + i32.const -2 + i32.and + local.set $0 + br $while-continue|0 + end + end global.get $~lib/memory/__stack_pointer i32.const 4 i32.add global.set $~lib/memory/__stack_pointer + i32.const 0 ) - (func $"~lib/map/Map#rehash" (param $0 i32) (param $1 i32) + (func $"~lib/map/Map#constructor" (param $0 i32) (result i32) + (local $1 i32) (local $2 i32) - (local $3 i32) - (local $4 f32) + (local $3 f32) + (local $4 i32) (local $5 i32) (local $6 i32) (local $7 i32) (local $8 i32) - (local $9 i32) global.get $~lib/memory/__stack_pointer i32.const 16 i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 1896 + i32.const 3104 i32.lt_s if - i32.const 34688 - i32.const 34736 + i32.const 35904 + i32.const 35952 i32.const 1 i32.const 1 call $~lib/builtins/abort @@ -19057,69 +24640,142 @@ i64.const 0 i64.store offset=8 global.get $~lib/memory/__stack_pointer + i32.const 24 + i32.const 57 + call $~lib/rt/itcms/__new + local.tee $1 + i32.store + global.get $~lib/memory/__stack_pointer local.get $1 - i32.const 1 - i32.add - local.tee $2 - i32.const 2 - i32.shl + i32.store offset=4 + i32.const 16 call $~lib/arraybuffer/ArrayBuffer#constructor - local.tee $7 + local.set $4 + global.get $~lib/memory/__stack_pointer + local.get $4 + i32.store offset=8 + local.get $1 + local.get $4 i32.store + local.get $1 + local.get $4 + i32.const 0 + call $~lib/rt/itcms/__link global.get $~lib/memory/__stack_pointer - local.get $2 - i32.const 3 - i32.shl + local.get $1 + i32.store offset=4 + local.get $1 i32.const 3 - i32.div_s - local.tee $6 - i32.const 12 - i32.mul - call $~lib/arraybuffer/ArrayBuffer#constructor - local.tee $3 i32.store offset=4 global.get $~lib/memory/__stack_pointer - local.get $0 + local.get $1 + i32.store offset=4 + i32.const 48 + call $~lib/arraybuffer/ArrayBuffer#constructor + local.set $4 + global.get $~lib/memory/__stack_pointer + local.get $4 i32.store offset=8 - local.get $0 - i32.load offset=8 - local.set $8 + local.get $1 + local.get $4 + i32.store offset=8 + local.get $1 + local.get $4 + i32.const 0 + call $~lib/rt/itcms/__link + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + local.get $1 + i32.const 4 + i32.store offset=12 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + local.get $1 + i32.const 0 + i32.store offset=16 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + local.get $1 + i32.const 0 + i32.store offset=20 global.get $~lib/memory/__stack_pointer local.get $0 - i32.store offset=8 - local.get $8 + i32.store offset=4 local.get $0 - i32.load offset=16 - i32.const 12 - i32.mul - i32.add - local.set $5 - local.get $3 - local.set $2 - loop $while-continue|0 - local.get $5 - local.get $8 - i32.ne + call $"~lib/array/Array<~lib/map/KeyValue>#get:length" + local.tee $4 + i32.const 0 + i32.gt_s + if + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + local.get $4 + local.get $1 + i32.load offset=12 + i32.ge_s if - local.get $8 - i32.load offset=8 - i32.const 1 - i32.and - i32.eqz + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + local.get $1 + local.get $4 + i32.store offset=4 + end + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=8 + local.get $1 + local.get $1 + i32.load offset=4 + i32.const 1 + i32.shl + i32.const 1 + i32.or + call $"~lib/map/Map#rehash" + loop $for-loop|0 + local.get $2 + local.get $4 + i32.lt_s if + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=8 + local.get $0 local.get $2 - local.get $8 + call $"~lib/array/Array<~lib/map/KeyValue>#__get" + local.set $5 + global.get $~lib/memory/__stack_pointer + local.get $5 + i32.store offset=4 + local.get $5 f32.load - local.tee $4 - f32.store + local.set $3 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=8 + local.get $0 local.get $2 - local.get $8 + call $"~lib/array/Array<~lib/map/KeyValue>#__get" + local.set $5 + global.get $~lib/memory/__stack_pointer + local.get $5 + i32.store offset=4 + local.get $5 i32.load offset=4 + local.set $6 + global.get $~lib/memory/__stack_pointer + local.get $1 i32.store offset=4 - local.get $2 - local.get $7 local.get $1 - local.get $4 + local.get $3 + local.get $3 i32.reinterpret_f32 i32.const -1028477379 i32.mul @@ -19129,95 +24785,174 @@ i32.rotl i32.const 668265263 i32.mul - local.tee $9 - local.get $9 + local.tee $5 i32.const 15 i32.shr_u + local.get $5 i32.xor i32.const -2048144777 i32.mul - local.tee $9 - local.get $9 + local.tee $5 i32.const 13 i32.shr_u + local.get $5 i32.xor i32.const -1028477379 i32.mul - local.tee $9 - local.get $9 + local.tee $5 i32.const 16 i32.shr_u + local.get $5 i32.xor - i32.and - i32.const 2 - i32.shl - i32.add - local.tee $9 - i32.load - i32.store offset=8 - local.get $9 - local.get $2 - i32.store + local.tee $7 + call $"~lib/map/Map#find" + local.tee $5 + if + local.get $5 + local.get $6 + i32.store offset=4 + else + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.load offset=8 + local.tee $5 + i32.store offset=12 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=8 + local.get $1 + local.get $1 + i32.load offset=16 + local.tee $8 + i32.const 1 + i32.add + i32.store offset=16 + local.get $5 + local.get $8 + i32.const 12 + i32.mul + i32.add + local.tee $5 + local.get $3 + f32.store + local.get $5 + local.get $6 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=8 + local.get $1 + local.get $1 + i32.load offset=20 + i32.const 1 + i32.add + i32.store offset=20 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + local.get $1 + i32.load + local.set $6 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + local.get $5 + local.get $6 + local.get $7 + local.get $1 + i32.load offset=4 + i32.and + i32.const 2 + i32.shl + i32.add + local.tee $6 + i32.load + i32.store offset=8 + local.get $6 + local.get $5 + i32.store + end local.get $2 - i32.const 12 + i32.const 1 i32.add local.set $2 + br $for-loop|0 end - local.get $8 - i32.const 12 - i32.add - local.set $8 - br $while-continue|0 end end global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=8 - global.get $~lib/memory/__stack_pointer - local.get $7 - i32.store offset=12 - local.get $0 - local.get $7 - i32.store - local.get $0 - local.get $7 - call $~lib/rt/itcms/__link - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=8 - local.get $0 + i32.const 16 + i32.add + global.set $~lib/memory/__stack_pointer local.get $1 - i32.store offset=4 + ) + (func $"~lib/map/Map#has" (param $0 i32) (param $1 f32) (result i32) global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=8 + i32.const 4 + i32.sub + global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - local.get $3 - i32.store offset=12 - local.get $0 - local.get $3 - i32.store offset=8 - local.get $0 - local.get $3 - call $~lib/rt/itcms/__link + i32.const 3104 + i32.lt_s + if + i32.const 35904 + i32.const 35952 + i32.const 1 + i32.const 1 + call $~lib/builtins/abort + unreachable + end global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=8 - local.get $0 - local.get $6 - i32.store offset=12 + i32.const 0 + i32.store global.get $~lib/memory/__stack_pointer local.get $0 - i32.store offset=8 - global.get $~lib/memory/__stack_pointer + i32.store local.get $0 - i32.store offset=12 + local.get $1 + local.get $1 + i32.reinterpret_f32 + i32.const -1028477379 + i32.mul + i32.const 374761397 + i32.add + i32.const 17 + i32.rotl + i32.const 668265263 + i32.mul + local.tee $0 + local.get $0 + i32.const 15 + i32.shr_u + i32.xor + i32.const -2048144777 + i32.mul + local.tee $0 local.get $0 + i32.const 13 + i32.shr_u + i32.xor + i32.const -1028477379 + i32.mul + local.tee $0 local.get $0 - i32.load offset=20 - i32.store offset=16 - global.get $~lib/memory/__stack_pointer i32.const 16 + i32.shr_u + i32.xor + call $"~lib/map/Map#find" + i32.const 0 + i32.ne + global.get $~lib/memory/__stack_pointer + i32.const 4 i32.add global.set $~lib/memory/__stack_pointer ) @@ -19230,11 +24965,11 @@ i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 1896 + i32.const 3104 i32.lt_s if - i32.const 34688 - i32.const 34736 + i32.const 35904 + i32.const 35952 i32.const 1 i32.const 1 call $~lib/builtins/abort @@ -19420,11 +25155,11 @@ i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 1896 + i32.const 3104 i32.lt_s if - i32.const 34688 - i32.const 34736 + i32.const 35904 + i32.const 35952 i32.const 1 i32.const 1 call $~lib/builtins/abort @@ -19471,9 +25206,9 @@ local.tee $0 i32.eqz if - i32.const 1616 - i32.const 1680 - i32.const 105 + i32.const 1824 + i32.const 1888 + i32.const 148 i32.const 17 call $~lib/builtins/abort unreachable @@ -19499,7 +25234,7 @@ global.set $~lib/memory/__stack_pointer block $folding-inner1 global.get $~lib/memory/__stack_pointer - i32.const 1896 + i32.const 3104 i32.lt_s br_if $folding-inner1 global.get $~lib/memory/__stack_pointer @@ -19523,7 +25258,7 @@ i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 1896 + i32.const 3104 i32.lt_s br_if $folding-inner1 global.get $~lib/memory/__stack_pointer @@ -19534,7 +25269,7 @@ i64.store offset=8 global.get $~lib/memory/__stack_pointer i32.const 16 - i32.const 28 + i32.const 60 call $~lib/rt/itcms/__new local.tee $6 i32.store @@ -19546,6 +25281,7 @@ i32.store local.get $6 i32.const 0 + i32.const 0 call $~lib/rt/itcms/__link global.get $~lib/memory/__stack_pointer local.get $6 @@ -19569,8 +25305,8 @@ i32.const 268435455 i32.gt_u if - i32.const 1456 - i32.const 1728 + i32.const 1056 + i32.const 1568 i32.const 70 i32.const 60 call $~lib/builtins/abort @@ -19601,6 +25337,7 @@ i32.store local.get $6 local.get $7 + i32.const 0 call $~lib/rt/itcms/__link global.get $~lib/memory/__stack_pointer local.get $6 @@ -19658,7 +25395,7 @@ i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 1896 + i32.const 3104 i32.lt_s br_if $folding-inner1 global.get $~lib/memory/__stack_pointer @@ -19676,8 +25413,8 @@ i32.const 0 i32.lt_s if - i32.const 1248 - i32.const 1728 + i32.const 1360 + i32.const 1568 i32.const 130 i32.const 22 call $~lib/builtins/abort @@ -19734,389 +25471,495 @@ local.get $6 return end - i32.const 34688 - i32.const 34736 - i32.const 1 - i32.const 1 - call $~lib/builtins/abort - unreachable + i32.const 35904 + i32.const 35952 + i32.const 1 + i32.const 1 + call $~lib/builtins/abort + unreachable + ) + (func $"~lib/map/Map#rehash" (param $0 i32) (param $1 i32) + (local $2 i32) + (local $3 i32) + (local $4 f32) + (local $5 i32) + (local $6 i32) + (local $7 i32) + (local $8 i32) + (local $9 i32) + global.get $~lib/memory/__stack_pointer + i32.const 16 + i32.sub + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 3104 + i32.lt_s + if + i32.const 35904 + i32.const 35952 + i32.const 1 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store + global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store offset=8 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.const 1 + i32.add + local.tee $2 + i32.const 2 + i32.shl + call $~lib/arraybuffer/ArrayBuffer#constructor + local.tee $7 + i32.store + global.get $~lib/memory/__stack_pointer + local.get $2 + i32.const 3 + i32.shl + i32.const 3 + i32.div_s + local.tee $6 + i32.const 12 + i32.mul + call $~lib/arraybuffer/ArrayBuffer#constructor + local.tee $3 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=8 + local.get $0 + i32.load offset=8 + local.set $8 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=8 + local.get $8 + local.get $0 + i32.load offset=16 + i32.const 12 + i32.mul + i32.add + local.set $5 + local.get $3 + local.set $2 + loop $while-continue|0 + local.get $5 + local.get $8 + i32.ne + if + local.get $8 + i32.load offset=8 + i32.const 1 + i32.and + i32.eqz + if + local.get $2 + local.get $8 + f32.load + local.tee $4 + f32.store + local.get $2 + local.get $8 + f32.load offset=4 + f32.store offset=4 + local.get $2 + local.get $7 + local.get $1 + local.get $4 + i32.reinterpret_f32 + i32.const -1028477379 + i32.mul + i32.const 374761397 + i32.add + i32.const 17 + i32.rotl + i32.const 668265263 + i32.mul + local.tee $9 + local.get $9 + i32.const 15 + i32.shr_u + i32.xor + i32.const -2048144777 + i32.mul + local.tee $9 + local.get $9 + i32.const 13 + i32.shr_u + i32.xor + i32.const -1028477379 + i32.mul + local.tee $9 + local.get $9 + i32.const 16 + i32.shr_u + i32.xor + i32.and + i32.const 2 + i32.shl + i32.add + local.tee $9 + i32.load + i32.store offset=8 + local.get $9 + local.get $2 + i32.store + local.get $2 + i32.const 12 + i32.add + local.set $2 + end + local.get $8 + i32.const 12 + i32.add + local.set $8 + br $while-continue|0 + end + end + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=8 + global.get $~lib/memory/__stack_pointer + local.get $7 + i32.store offset=12 + local.get $0 + local.get $7 + i32.store + local.get $0 + local.get $7 + i32.const 0 + call $~lib/rt/itcms/__link + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=8 + local.get $0 + local.get $1 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=8 + global.get $~lib/memory/__stack_pointer + local.get $3 + i32.store offset=12 + local.get $0 + local.get $3 + i32.store offset=8 + local.get $0 + local.get $3 + i32.const 0 + call $~lib/rt/itcms/__link + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=8 + local.get $0 + local.get $6 + i32.store offset=12 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=8 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=12 + local.get $0 + local.get $0 + i32.load offset=20 + i32.store offset=16 + global.get $~lib/memory/__stack_pointer + i32.const 16 + i32.add + global.set $~lib/memory/__stack_pointer ) - (func $"~lib/map/Map#set" (param $0 i32) (param $1 f32) (param $2 f32) - (local $3 i32) - (local $4 i32) - (local $5 f32) + (func $"~lib/map/Map#constructor" (param $0 i32) (result i32) + (local $1 i32) + (local $2 i32) + (local $3 f32) + (local $4 f32) + (local $5 i32) (local $6 i32) (local $7 i32) (local $8 i32) - (local $9 i32) - (local $10 i32) - (local $11 i32) - (local $12 i32) global.get $~lib/memory/__stack_pointer - i32.const 12 + i32.const 16 i32.sub global.set $~lib/memory/__stack_pointer - block $folding-inner0 - global.get $~lib/memory/__stack_pointer - i32.const 1896 - i32.lt_s - br_if $folding-inner0 - global.get $~lib/memory/__stack_pointer - i64.const 0 - i64.store - global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.store offset=8 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store - local.get $0 - local.get $1 - local.get $1 - i32.reinterpret_f32 - i32.const -1028477379 - i32.mul - i32.const 374761397 - i32.add - i32.const 17 - i32.rotl - i32.const 668265263 - i32.mul - local.tee $3 - i32.const 15 - i32.shr_u - local.get $3 - i32.xor - i32.const -2048144777 - i32.mul - local.tee $3 - i32.const 13 - i32.shr_u - local.get $3 - i32.xor - i32.const -1028477379 - i32.mul - local.tee $3 - i32.const 16 - i32.shr_u - local.get $3 - i32.xor - local.tee $8 - call $"~lib/map/Map#find" - local.tee $3 - if - local.get $3 - local.get $2 - f32.store offset=4 - else - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store - local.get $0 - i32.load offset=16 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store - local.get $0 - i32.load offset=12 - i32.eq - if - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 - i32.load offset=20 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 - i32.load offset=12 - i32.const 3 - i32.mul - i32.const 4 - i32.div_s - i32.lt_s - if (result i32) - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 - i32.load offset=4 - else - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 - i32.load offset=4 - i32.const 1 - i32.shl - i32.const 1 - i32.or - end - local.set $9 - global.get $~lib/memory/__stack_pointer - i32.const 16 - i32.sub - global.set $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - i32.const 1896 - i32.lt_s - br_if $folding-inner0 - global.get $~lib/memory/__stack_pointer - i64.const 0 - i64.store - global.get $~lib/memory/__stack_pointer - i64.const 0 - i64.store offset=8 - global.get $~lib/memory/__stack_pointer - local.get $9 - i32.const 1 - i32.add - local.tee $3 - i32.const 2 - i32.shl - call $~lib/arraybuffer/ArrayBuffer#constructor - local.tee $10 - i32.store - global.get $~lib/memory/__stack_pointer - local.get $3 - i32.const 3 - i32.shl - i32.const 3 - i32.div_s - local.tee $7 - i32.const 12 - i32.mul - call $~lib/arraybuffer/ArrayBuffer#constructor - local.tee $4 - i32.store offset=4 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=8 - local.get $0 - i32.load offset=8 - local.set $11 + global.get $~lib/memory/__stack_pointer + i32.const 3104 + i32.lt_s + if + i32.const 35904 + i32.const 35952 + i32.const 1 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store + global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store offset=8 + global.get $~lib/memory/__stack_pointer + i32.const 24 + i32.const 61 + call $~lib/rt/itcms/__new + local.tee $1 + i32.store + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + i32.const 16 + call $~lib/arraybuffer/ArrayBuffer#constructor + local.set $5 + global.get $~lib/memory/__stack_pointer + local.get $5 + i32.store offset=8 + local.get $1 + local.get $5 + i32.store + local.get $1 + local.get $5 + i32.const 0 + call $~lib/rt/itcms/__link + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + local.get $1 + i32.const 3 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + i32.const 48 + call $~lib/arraybuffer/ArrayBuffer#constructor + local.set $5 + global.get $~lib/memory/__stack_pointer + local.get $5 + i32.store offset=8 + local.get $1 + local.get $5 + i32.store offset=8 + local.get $1 + local.get $5 + i32.const 0 + call $~lib/rt/itcms/__link + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + local.get $1 + i32.const 4 + i32.store offset=12 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + local.get $1 + i32.const 0 + i32.store offset=16 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + local.get $1 + i32.const 0 + i32.store offset=20 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + local.get $0 + call $"~lib/array/Array<~lib/map/KeyValue>#get:length" + local.tee $5 + i32.const 0 + i32.gt_s + if + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + local.get $5 + local.get $1 + i32.load offset=12 + i32.ge_s + if + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + local.get $1 + local.get $5 + i32.store offset=4 + end + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=8 + local.get $1 + local.get $1 + i32.load offset=4 + i32.const 1 + i32.shl + i32.const 1 + i32.or + call $"~lib/map/Map#rehash" + loop $for-loop|0 + local.get $2 + local.get $5 + i32.lt_s + if global.get $~lib/memory/__stack_pointer local.get $0 i32.store offset=8 - local.get $11 local.get $0 - i32.load offset=16 - i32.const 12 - i32.mul - i32.add + local.get $2 + call $"~lib/array/Array<~lib/map/KeyValue>#__get" local.set $6 - local.get $4 - local.set $3 - loop $while-continue|0 - local.get $6 - local.get $11 - i32.ne - if - local.get $11 - i32.load offset=8 - i32.const 1 - i32.and - i32.eqz - if - local.get $3 - local.get $11 - f32.load - local.tee $5 - f32.store - local.get $3 - local.get $11 - f32.load offset=4 - f32.store offset=4 - local.get $3 - local.get $10 - local.get $9 - local.get $5 - i32.reinterpret_f32 - i32.const -1028477379 - i32.mul - i32.const 374761397 - i32.add - i32.const 17 - i32.rotl - i32.const 668265263 - i32.mul - local.tee $12 - local.get $12 - i32.const 15 - i32.shr_u - i32.xor - i32.const -2048144777 - i32.mul - local.tee $12 - local.get $12 - i32.const 13 - i32.shr_u - i32.xor - i32.const -1028477379 - i32.mul - local.tee $12 - local.get $12 - i32.const 16 - i32.shr_u - i32.xor - i32.and - i32.const 2 - i32.shl - i32.add - local.tee $12 - i32.load - i32.store offset=8 - local.get $12 - local.get $3 - i32.store - local.get $3 - i32.const 12 - i32.add - local.set $3 - end - local.get $11 - i32.const 12 - i32.add - local.set $11 - br $while-continue|0 - end - end - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=8 - global.get $~lib/memory/__stack_pointer - local.get $10 - i32.store offset=12 - local.get $0 - local.get $10 - i32.store - local.get $0 - local.get $10 - call $~lib/rt/itcms/__link global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=8 - local.get $0 - local.get $9 + local.get $6 i32.store offset=4 + local.get $6 + f32.load + local.set $3 global.get $~lib/memory/__stack_pointer local.get $0 i32.store offset=8 - global.get $~lib/memory/__stack_pointer - local.get $4 - i32.store offset=12 - local.get $0 - local.get $4 - i32.store offset=8 - local.get $0 - local.get $4 - call $~lib/rt/itcms/__link - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=8 - local.get $0 - local.get $7 - i32.store offset=12 - global.get $~lib/memory/__stack_pointer local.get $0 - i32.store offset=8 + local.get $2 + call $"~lib/array/Array<~lib/map/KeyValue>#__get" + local.set $6 global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=12 - local.get $0 - local.get $0 - i32.load offset=20 - i32.store offset=16 + local.get $6 + i32.store offset=4 + local.get $6 + f32.load offset=4 + local.set $4 global.get $~lib/memory/__stack_pointer - i32.const 16 + local.get $1 + i32.store offset=4 + local.get $1 + local.get $3 + local.get $3 + i32.reinterpret_f32 + i32.const -1028477379 + i32.mul + i32.const 374761397 i32.add - global.set $~lib/memory/__stack_pointer - end - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.load offset=8 - local.tee $3 - i32.store offset=8 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 - local.get $0 - i32.load offset=16 - local.tee $4 - i32.const 1 - i32.add - i32.store offset=16 - local.get $3 - local.get $4 - i32.const 12 - i32.mul - i32.add - local.tee $3 - local.get $1 - f32.store - local.get $3 - local.get $2 - f32.store offset=4 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 - local.get $0 - i32.load offset=20 - i32.const 1 - i32.add - i32.store offset=20 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store - local.get $0 - i32.load - local.set $4 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store - local.get $3 - local.get $4 - local.get $8 - local.get $0 - i32.load offset=4 - i32.and - i32.const 2 - i32.shl - i32.add - local.tee $0 - i32.load - i32.store offset=8 - local.get $0 - local.get $3 - i32.store + i32.const 17 + i32.rotl + i32.const 668265263 + i32.mul + local.tee $6 + i32.const 15 + i32.shr_u + local.get $6 + i32.xor + i32.const -2048144777 + i32.mul + local.tee $6 + i32.const 13 + i32.shr_u + local.get $6 + i32.xor + i32.const -1028477379 + i32.mul + local.tee $6 + i32.const 16 + i32.shr_u + local.get $6 + i32.xor + local.tee $6 + call $"~lib/map/Map#find" + local.tee $7 + if + local.get $7 + local.get $4 + f32.store offset=4 + else + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.load offset=8 + local.tee $7 + i32.store offset=12 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=8 + local.get $1 + local.get $1 + i32.load offset=16 + local.tee $8 + i32.const 1 + i32.add + i32.store offset=16 + local.get $7 + local.get $8 + i32.const 12 + i32.mul + i32.add + local.tee $7 + local.get $3 + f32.store + local.get $7 + local.get $4 + f32.store offset=4 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=8 + local.get $1 + local.get $1 + i32.load offset=20 + i32.const 1 + i32.add + i32.store offset=20 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + local.get $1 + i32.load + local.set $8 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + local.get $7 + local.get $8 + local.get $6 + local.get $1 + i32.load offset=4 + i32.and + i32.const 2 + i32.shl + i32.add + local.tee $6 + i32.load + i32.store offset=8 + local.get $6 + local.get $7 + i32.store + end + local.get $2 + i32.const 1 + i32.add + local.set $2 + br $for-loop|0 + end end - global.get $~lib/memory/__stack_pointer - i32.const 12 - i32.add - global.set $~lib/memory/__stack_pointer - return end - i32.const 34688 - i32.const 34736 - i32.const 1 - i32.const 1 - call $~lib/builtins/abort - unreachable + global.get $~lib/memory/__stack_pointer + i32.const 16 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $1 ) (func $"~lib/map/Map#delete" (param $0 i32) (param $1 f32) (local $2 i32) @@ -20126,11 +25969,11 @@ i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 1896 + i32.const 3104 i32.lt_s if - i32.const 34688 - i32.const 34736 + i32.const 35904 + i32.const 35952 i32.const 1 i32.const 1 call $~lib/builtins/abort @@ -20265,18 +26108,21 @@ (local $5 i32) (local $6 i32) (local $7 i32) + (local $8 i32) + (local $9 i32) + (local $10 i32) global.get $~lib/memory/__stack_pointer - i32.const 24 + i32.const 40 i32.sub global.set $~lib/memory/__stack_pointer - block $folding-inner0 + block $folding-inner1 global.get $~lib/memory/__stack_pointer - i32.const 1896 + i32.const 3104 i32.lt_s - br_if $folding-inner0 + br_if $folding-inner1 global.get $~lib/memory/__stack_pointer i32.const 0 - i32.const 24 + i32.const 40 memory.fill global.get $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer @@ -20284,9 +26130,9 @@ i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 1896 + i32.const 3104 i32.lt_s - br_if $folding-inner0 + br_if $folding-inner1 global.get $~lib/memory/__stack_pointer i64.const 0 i64.store @@ -20294,70 +26140,25 @@ i32.const 0 i32.store offset=8 global.get $~lib/memory/__stack_pointer - i32.const 24 - i32.const 27 - call $~lib/rt/itcms/__new - local.tee $0 - i32.store - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - i32.const 16 - call $~lib/arraybuffer/ArrayBuffer#constructor - local.set $4 - global.get $~lib/memory/__stack_pointer - local.get $4 - i32.store offset=8 - local.get $0 - local.get $4 + i32.const 59 + i32.const 2640 + call $~lib/rt/__newArray + local.tee $2 i32.store - local.get $0 - local.get $4 - call $~lib/rt/itcms/__link global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 - i32.const 3 - i32.store offset=4 - global.get $~lib/memory/__stack_pointer - local.get $0 + i32.const 0 i32.store offset=4 - i32.const 48 - call $~lib/arraybuffer/ArrayBuffer#constructor - local.set $4 global.get $~lib/memory/__stack_pointer - local.get $4 - i32.store offset=8 - local.get $0 - local.get $4 + local.get $2 i32.store offset=8 - local.get $0 - local.get $4 - call $~lib/rt/itcms/__link - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 - i32.const 4 - i32.store offset=12 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 - i32.const 0 - i32.store offset=16 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 - i32.const 0 - i32.store offset=20 + local.get $2 + call $"~lib/map/Map#constructor" + local.set $2 global.get $~lib/memory/__stack_pointer i32.const 12 i32.add global.set $~lib/memory/__stack_pointer - local.get $0 + local.get $2 i32.store loop $for-loop|0 local.get $1 @@ -20365,23 +26166,23 @@ f32.lt if global.get $~lib/memory/__stack_pointer - local.get $0 + local.get $2 i32.store offset=4 - local.get $0 + local.get $2 local.get $1 call $"~lib/map/Map#has" if i32.const 0 - i32.const 1568 - i32.const 6 + i32.const 1776 + i32.const 7 i32.const 5 call $~lib/builtins/abort unreachable end global.get $~lib/memory/__stack_pointer - local.get $0 + local.get $2 i32.store offset=4 - local.get $0 + local.get $2 local.get $1 local.get $1 i32.trunc_sat_f32_s @@ -20389,24 +26190,24 @@ i32.add call $"~lib/map/Map#set" global.get $~lib/memory/__stack_pointer - local.get $0 + local.get $2 i32.store offset=4 - local.get $0 + local.get $2 local.get $1 call $"~lib/map/Map#has" i32.eqz if i32.const 0 - i32.const 1568 - i32.const 8 + i32.const 1776 + i32.const 9 i32.const 5 call $~lib/builtins/abort unreachable end global.get $~lib/memory/__stack_pointer - local.get $0 + local.get $2 i32.store offset=4 - local.get $0 + local.get $2 local.get $1 call $"~lib/map/Map#get" local.get $1 @@ -20416,8 +26217,8 @@ i32.ne if i32.const 0 - i32.const 1568 - i32.const 9 + i32.const 1776 + i32.const 10 i32.const 5 call $~lib/builtins/abort unreachable @@ -20430,16 +26231,16 @@ end end global.get $~lib/memory/__stack_pointer - local.get $0 + local.get $2 i32.store offset=4 - local.get $0 + local.get $2 call $"~lib/map/Map#get:size" i32.const 100 i32.ne if i32.const 0 - i32.const 1568 - i32.const 11 + i32.const 1776 + i32.const 12 i32.const 3 call $~lib/builtins/abort unreachable @@ -20452,24 +26253,24 @@ f32.lt if global.get $~lib/memory/__stack_pointer - local.get $0 + local.get $2 i32.store offset=4 - local.get $0 + local.get $2 local.get $1 call $"~lib/map/Map#has" i32.eqz if i32.const 0 - i32.const 1568 - i32.const 15 + i32.const 1776 + i32.const 16 i32.const 5 call $~lib/builtins/abort unreachable end global.get $~lib/memory/__stack_pointer - local.get $0 + local.get $2 i32.store offset=4 - local.get $0 + local.get $2 local.get $1 call $"~lib/map/Map#get" local.get $1 @@ -20479,16 +26280,16 @@ i32.ne if i32.const 0 - i32.const 1568 - i32.const 16 + i32.const 1776 + i32.const 17 i32.const 5 call $~lib/builtins/abort unreachable end global.get $~lib/memory/__stack_pointer - local.get $0 + local.get $2 i32.store offset=4 - local.get $0 + local.get $2 local.get $1 local.get $1 i32.trunc_sat_f32_s @@ -20496,24 +26297,24 @@ i32.add call $"~lib/map/Map#set" global.get $~lib/memory/__stack_pointer - local.get $0 + local.get $2 i32.store offset=4 - local.get $0 + local.get $2 local.get $1 call $"~lib/map/Map#has" i32.eqz if i32.const 0 - i32.const 1568 - i32.const 18 + i32.const 1776 + i32.const 19 i32.const 5 call $~lib/builtins/abort unreachable end global.get $~lib/memory/__stack_pointer - local.get $0 + local.get $2 i32.store offset=4 - local.get $0 + local.get $2 local.get $1 call $"~lib/map/Map#get" local.get $1 @@ -20523,8 +26324,8 @@ i32.ne if i32.const 0 - i32.const 1568 - i32.const 19 + i32.const 1776 + i32.const 20 i32.const 5 call $~lib/builtins/abort unreachable @@ -20537,35 +26338,35 @@ end end global.get $~lib/memory/__stack_pointer - local.get $0 + local.get $2 i32.store offset=4 - local.get $0 + local.get $2 call $"~lib/map/Map#get:size" i32.const 100 i32.ne if i32.const 0 - i32.const 1568 - i32.const 21 + i32.const 1776 + i32.const 22 i32.const 3 call $~lib/builtins/abort unreachable end global.get $~lib/memory/__stack_pointer - local.get $0 + local.get $2 i32.store offset=4 global.get $~lib/memory/__stack_pointer - local.get $0 + local.get $2 call $"~lib/map/Map#keys" - local.tee $4 + local.tee $3 i32.store offset=8 global.get $~lib/memory/__stack_pointer - local.get $0 + local.get $2 i32.store offset=4 global.get $~lib/memory/__stack_pointer - local.get $0 + local.get $2 call $"~lib/map/Map#values" - local.tee $3 + local.tee $5 i32.store offset=12 global.get $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer @@ -20573,9 +26374,9 @@ i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 1896 + i32.const 3104 i32.lt_s - br_if $folding-inner0 + br_if $folding-inner1 global.get $~lib/memory/__stack_pointer i64.const 0 i64.store @@ -20583,65 +26384,20 @@ i32.const 0 i32.store offset=8 global.get $~lib/memory/__stack_pointer - i32.const 24 - i32.const 29 - call $~lib/rt/itcms/__new + i32.const 63 + i32.const 2672 + call $~lib/rt/__newArray local.tee $6 i32.store global.get $~lib/memory/__stack_pointer - local.get $6 - i32.store offset=4 - i32.const 16 - call $~lib/arraybuffer/ArrayBuffer#constructor - local.set $7 - global.get $~lib/memory/__stack_pointer - local.get $7 - i32.store offset=8 - local.get $6 - local.get $7 - i32.store - local.get $6 - local.get $7 - call $~lib/rt/itcms/__link - global.get $~lib/memory/__stack_pointer - local.get $6 - i32.store offset=4 - local.get $6 - i32.const 3 - i32.store offset=4 - global.get $~lib/memory/__stack_pointer - local.get $6 + i32.const 0 i32.store offset=4 - i32.const 48 - call $~lib/arraybuffer/ArrayBuffer#constructor - local.set $7 global.get $~lib/memory/__stack_pointer - local.get $7 - i32.store offset=8 local.get $6 - local.get $7 i32.store offset=8 local.get $6 - local.get $7 - call $~lib/rt/itcms/__link - global.get $~lib/memory/__stack_pointer - local.get $6 - i32.store offset=4 - local.get $6 - i32.const 4 - i32.store offset=12 - global.get $~lib/memory/__stack_pointer - local.get $6 - i32.store offset=4 - local.get $6 - i32.const 0 - i32.store offset=16 - global.get $~lib/memory/__stack_pointer - local.get $6 - i32.store offset=4 - local.get $6 - i32.const 0 - i32.store offset=20 + call $"~lib/map/Map#constructor" + local.set $6 global.get $~lib/memory/__stack_pointer i32.const 12 i32.add @@ -20649,53 +26405,53 @@ local.get $6 i32.store offset=16 global.get $~lib/memory/__stack_pointer - call $"~lib/map/Map#constructor" - local.tee $5 + call $"~lib/map/Map#constructor@varargs" + local.tee $4 i32.store offset=20 loop $for-loop|2 global.get $~lib/memory/__stack_pointer - local.get $4 + local.get $3 i32.store offset=4 - local.get $4 - call $~lib/array/Array#get:length - local.get $2 + local.get $3 + call $"~lib/array/Array<~lib/map/KeyValue>#get:length" + local.get $0 i32.gt_s if global.get $~lib/memory/__stack_pointer - local.get $4 + local.get $3 i32.store offset=4 global.get $~lib/memory/__stack_pointer i32.const 4 i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 1896 + i32.const 3104 i32.lt_s - br_if $folding-inner0 + br_if $folding-inner1 global.get $~lib/memory/__stack_pointer i32.const 0 i32.store global.get $~lib/memory/__stack_pointer - local.get $4 - i32.store - local.get $2 - local.get $4 + local.get $3 + i32.store + local.get $0 + local.get $3 i32.load offset=12 i32.ge_u if - i32.const 1248 - i32.const 1728 + i32.const 1360 + i32.const 1568 i32.const 114 i32.const 42 call $~lib/builtins/abort unreachable end global.get $~lib/memory/__stack_pointer - local.get $4 + local.get $3 i32.store - local.get $4 + local.get $3 i32.load offset=4 - local.get $2 + local.get $0 i32.const 2 i32.shl i32.add @@ -20706,31 +26462,31 @@ i32.add global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - local.get $3 + local.get $5 i32.store offset=4 - local.get $3 - local.get $2 + local.get $5 + local.get $0 call $~lib/array/Array#__get local.set $7 global.get $~lib/memory/__stack_pointer - local.get $0 + local.get $2 i32.store offset=4 - local.get $0 + local.get $2 local.get $1 call $"~lib/map/Map#has" i32.eqz if i32.const 0 - i32.const 1568 - i32.const 31 + i32.const 1776 + i32.const 32 i32.const 5 call $~lib/builtins/abort unreachable end global.get $~lib/memory/__stack_pointer - local.get $0 + local.get $2 i32.store offset=4 - local.get $0 + local.get $2 local.get $7 i32.const 20 i32.sub @@ -20739,8 +26495,8 @@ i32.eqz if i32.const 0 - i32.const 1568 - i32.const 32 + i32.const 1776 + i32.const 33 i32.const 5 call $~lib/builtins/abort unreachable @@ -20748,24 +26504,201 @@ global.get $~lib/memory/__stack_pointer local.get $6 i32.store offset=4 + global.get $~lib/memory/__stack_pointer + i32.const 12 + i32.sub + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 3104 + i32.lt_s + br_if $folding-inner1 + global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store offset=8 + global.get $~lib/memory/__stack_pointer + local.get $6 + i32.store local.get $6 local.get $1 local.get $1 - call $"~lib/map/Map#set" + i32.reinterpret_f32 + i32.const -1028477379 + i32.mul + i32.const 374761397 + i32.add + i32.const 17 + i32.rotl + i32.const 668265263 + i32.mul + local.tee $8 + local.get $8 + i32.const 15 + i32.shr_u + i32.xor + i32.const -2048144777 + i32.mul + local.tee $8 + local.get $8 + i32.const 13 + i32.shr_u + i32.xor + i32.const -1028477379 + i32.mul + local.tee $8 + local.get $8 + i32.const 16 + i32.shr_u + i32.xor + local.tee $8 + call $"~lib/map/Map#find" + local.tee $9 + if + local.get $9 + local.get $1 + f32.store offset=4 + else + global.get $~lib/memory/__stack_pointer + local.get $6 + i32.store + local.get $6 + i32.load offset=16 + global.get $~lib/memory/__stack_pointer + local.get $6 + i32.store + local.get $6 + i32.load offset=12 + i32.eq + if + global.get $~lib/memory/__stack_pointer + local.get $6 + i32.store + global.get $~lib/memory/__stack_pointer + local.get $6 + i32.store offset=4 + local.get $6 + i32.load offset=20 + local.set $9 + global.get $~lib/memory/__stack_pointer + local.get $6 + i32.store offset=4 + local.get $6 + local.get $9 + local.get $6 + i32.load offset=12 + i32.const 3 + i32.mul + i32.const 4 + i32.div_s + i32.lt_s + if (result i32) + global.get $~lib/memory/__stack_pointer + local.get $6 + i32.store offset=4 + local.get $6 + i32.load offset=4 + else + global.get $~lib/memory/__stack_pointer + local.get $6 + i32.store offset=4 + local.get $6 + i32.load offset=4 + i32.const 1 + i32.shl + i32.const 1 + i32.or + end + call $"~lib/map/Map#rehash" + end + global.get $~lib/memory/__stack_pointer + local.get $6 + i32.store + global.get $~lib/memory/__stack_pointer + local.get $6 + i32.load offset=8 + local.tee $9 + i32.store offset=8 + global.get $~lib/memory/__stack_pointer + local.get $6 + i32.store + global.get $~lib/memory/__stack_pointer + local.get $6 + i32.store offset=4 + local.get $6 + local.get $6 + i32.load offset=16 + local.tee $10 + i32.const 1 + i32.add + i32.store offset=16 + local.get $9 + local.get $10 + i32.const 12 + i32.mul + i32.add + local.tee $9 + local.get $1 + f32.store + local.get $9 + local.get $1 + f32.store offset=4 + global.get $~lib/memory/__stack_pointer + local.get $6 + i32.store + global.get $~lib/memory/__stack_pointer + local.get $6 + i32.store offset=4 + local.get $6 + local.get $6 + i32.load offset=20 + i32.const 1 + i32.add + i32.store offset=20 + global.get $~lib/memory/__stack_pointer + local.get $6 + i32.store + local.get $6 + i32.load + local.set $10 + global.get $~lib/memory/__stack_pointer + local.get $6 + i32.store + local.get $9 + local.get $10 + local.get $8 + local.get $6 + i32.load offset=4 + i32.and + i32.const 2 + i32.shl + i32.add + local.tee $8 + i32.load + i32.store offset=8 + local.get $8 + local.get $9 + i32.store + end global.get $~lib/memory/__stack_pointer - local.get $5 + i32.const 12 + i32.add + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + local.get $4 i32.store offset=4 - local.get $5 + local.get $4 local.get $7 i32.const 20 i32.sub local.tee $7 local.get $7 call $"~lib/map/Map#set" - local.get $2 + local.get $0 i32.const 1 i32.add - local.set $2 + local.set $0 br $for-loop|2 end end @@ -20778,84 +26711,172 @@ i32.ne if i32.const 0 - i32.const 1568 - i32.const 36 + i32.const 1776 + i32.const 37 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + local.get $4 + i32.store offset=4 + local.get $4 + call $"~lib/map/Map#get:size" + i32.const 100 + i32.ne + if + i32.const 0 + i32.const 1776 + i32.const 38 i32.const 3 call $~lib/builtins/abort unreachable end + f32.const 0 + local.set $1 + loop $for-loop|3 + local.get $1 + f32.const 50 + f32.lt + if + global.get $~lib/memory/__stack_pointer + local.get $2 + i32.store offset=4 + local.get $2 + local.get $1 + call $"~lib/map/Map#has" + i32.eqz + if + i32.const 0 + i32.const 1776 + i32.const 42 + i32.const 5 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + local.get $2 + i32.store offset=4 + local.get $2 + local.get $1 + call $"~lib/map/Map#get" + local.get $1 + i32.trunc_sat_f32_s + i32.const 20 + i32.add + i32.ne + if + i32.const 0 + i32.const 1776 + i32.const 43 + i32.const 5 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + local.get $2 + i32.store offset=4 + local.get $2 + local.get $1 + call $"~lib/map/Map#delete" + global.get $~lib/memory/__stack_pointer + local.get $2 + i32.store offset=4 + local.get $2 + local.get $1 + call $"~lib/map/Map#has" + if + i32.const 0 + i32.const 1776 + i32.const 45 + i32.const 5 + call $~lib/builtins/abort + unreachable + end + local.get $1 + f32.const 1 + f32.add + local.set $1 + br $for-loop|3 + end + end global.get $~lib/memory/__stack_pointer - local.get $5 + local.get $2 i32.store offset=4 - local.get $5 + local.get $2 call $"~lib/map/Map#get:size" - i32.const 100 + i32.const 50 i32.ne if i32.const 0 - i32.const 1568 - i32.const 37 + i32.const 1776 + i32.const 47 i32.const 3 call $~lib/builtins/abort unreachable end f32.const 0 local.set $1 - loop $for-loop|3 + loop $for-loop|4 local.get $1 f32.const 50 f32.lt if global.get $~lib/memory/__stack_pointer - local.get $0 + local.get $2 i32.store offset=4 - local.get $0 + local.get $2 local.get $1 call $"~lib/map/Map#has" - i32.eqz if i32.const 0 - i32.const 1568 - i32.const 41 + i32.const 1776 + i32.const 51 i32.const 5 call $~lib/builtins/abort unreachable end global.get $~lib/memory/__stack_pointer - local.get $0 + local.get $2 i32.store offset=4 - local.get $0 + local.get $2 local.get $1 - call $"~lib/map/Map#get" local.get $1 i32.trunc_sat_f32_s - i32.const 20 + i32.const 10 i32.add - i32.ne + call $"~lib/map/Map#set" + global.get $~lib/memory/__stack_pointer + local.get $2 + i32.store offset=4 + local.get $2 + local.get $1 + call $"~lib/map/Map#has" + i32.eqz if i32.const 0 - i32.const 1568 - i32.const 42 + i32.const 1776 + i32.const 53 i32.const 5 call $~lib/builtins/abort unreachable end global.get $~lib/memory/__stack_pointer - local.get $0 + local.get $2 i32.store offset=4 - local.get $0 + local.get $2 local.get $1 call $"~lib/map/Map#delete" global.get $~lib/memory/__stack_pointer - local.get $0 + local.get $2 i32.store offset=4 - local.get $0 + local.get $2 local.get $1 call $"~lib/map/Map#has" if i32.const 0 - i32.const 1568 - i32.const 44 + i32.const 1776 + i32.const 55 i32.const 5 call $~lib/builtins/abort unreachable @@ -20864,29 +26885,158 @@ f32.const 1 f32.add local.set $1 - br $for-loop|3 + br $for-loop|4 + end + end + global.get $~lib/memory/__stack_pointer + local.get $2 + i32.store offset=4 + local.get $2 + call $"~lib/map/Map#get:size" + i32.const 50 + i32.ne + if + i32.const 0 + i32.const 1776 + i32.const 57 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + local.get $2 + i32.store offset=4 + local.get $2 + call $"~lib/map/Map#clear" + global.get $~lib/memory/__stack_pointer + local.get $2 + i32.store offset=4 + local.get $2 + call $"~lib/map/Map#get:size" + if + i32.const 0 + i32.const 1776 + i32.const 61 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + i32.const 59 + i32.const 2704 + call $~lib/rt/__newArray + local.tee $0 + i32.store offset=24 + f32.const 0 + local.set $1 + loop $for-loop|5 + local.get $1 + f32.const 100 + f32.lt + if + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.sub + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 3104 + i32.lt_s + br_if $folding-inner1 + global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.const 58 + call $~lib/rt/itcms/__new + local.tee $3 + i32.store + global.get $~lib/memory/__stack_pointer + local.get $3 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + local.get $3 + call $~lib/object/Object#constructor + local.tee $3 + i32.store + global.get $~lib/memory/__stack_pointer + local.get $3 + i32.store offset=4 + local.get $3 + f32.const 0 + f32.store + global.get $~lib/memory/__stack_pointer + local.get $3 + i32.store offset=4 + local.get $3 + i32.const 0 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $3 + i32.store offset=32 + global.get $~lib/memory/__stack_pointer + local.get $3 + i32.store offset=36 + local.get $3 + local.get $1 + f32.store + global.get $~lib/memory/__stack_pointer + local.get $3 + i32.store offset=36 + local.get $3 + local.get $1 + i32.trunc_sat_f32_s + i32.const 10 + i32.add + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + local.get $3 + i32.store offset=28 + local.get $0 + local.get $3 + call $"~lib/array/Array<~lib/map/KeyValue>#push" + local.get $1 + f32.const 1 + f32.add + local.set $1 + br $for-loop|5 end end global.get $~lib/memory/__stack_pointer local.get $0 i32.store offset=4 + global.get $~lib/memory/__stack_pointer + local.get $0 + call $"~lib/map/Map#constructor" + local.tee $0 + i32.store + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 local.get $0 call $"~lib/map/Map#get:size" - i32.const 50 + i32.const 100 i32.ne if i32.const 0 - i32.const 1568 - i32.const 46 + i32.const 1776 + i32.const 74 i32.const 3 call $~lib/builtins/abort unreachable end f32.const 0 local.set $1 - loop $for-loop|4 + loop $for-loop|6 local.get $1 - f32.const 50 + f32.const 100 f32.lt if global.get $~lib/memory/__stack_pointer @@ -20895,10 +27045,11 @@ local.get $0 local.get $1 call $"~lib/map/Map#has" + i32.eqz if i32.const 0 - i32.const 1568 - i32.const 50 + i32.const 1776 + i32.const 76 i32.const 5 call $~lib/builtins/abort unreachable @@ -20908,22 +27059,16 @@ i32.store offset=4 local.get $0 local.get $1 + call $"~lib/map/Map#get" local.get $1 i32.trunc_sat_f32_s i32.const 10 i32.add - call $"~lib/map/Map#set" - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 - local.get $1 - call $"~lib/map/Map#has" - i32.eqz + i32.ne if i32.const 0 - i32.const 1568 - i32.const 52 + i32.const 1776 + i32.const 77 i32.const 5 call $~lib/builtins/abort unreachable @@ -20942,8 +27087,8 @@ call $"~lib/map/Map#has" if i32.const 0 - i32.const 1568 - i32.const 54 + i32.const 1776 + i32.const 79 i32.const 5 call $~lib/builtins/abort unreachable @@ -20952,7 +27097,7 @@ f32.const 1 f32.add local.set $1 - br $for-loop|4 + br $for-loop|6 end end global.get $~lib/memory/__stack_pointer @@ -20960,46 +27105,237 @@ i32.store offset=4 local.get $0 call $"~lib/map/Map#get:size" - i32.const 50 + if + i32.const 0 + i32.const 1776 + i32.const 81 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + i32.const 40 + i32.add + global.set $~lib/memory/__stack_pointer + return + end + i32.const 35904 + i32.const 35952 + i32.const 1 + i32.const 1 + call $~lib/builtins/abort + unreachable + ) + (func $"~lib/map/Map#rehash" (param $0 i32) (param $1 i32) + (local $2 i32) + (local $3 i32) + (local $4 i64) + (local $5 f64) + (local $6 i32) + (local $7 i32) + (local $8 i32) + (local $9 i32) + (local $10 i32) + global.get $~lib/memory/__stack_pointer + i32.const 16 + i32.sub + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 3104 + i32.lt_s + if + i32.const 35904 + i32.const 35952 + i32.const 1 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store + global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store offset=8 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.const 1 + i32.add + local.tee $2 + i32.const 2 + i32.shl + call $~lib/arraybuffer/ArrayBuffer#constructor + local.tee $8 + i32.store + global.get $~lib/memory/__stack_pointer + local.get $2 + i32.const 3 + i32.shl + i32.const 3 + i32.div_s + local.tee $7 + i32.const 4 + i32.shl + call $~lib/arraybuffer/ArrayBuffer#constructor + local.tee $3 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=8 + local.get $0 + i32.load offset=8 + local.set $9 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=8 + local.get $9 + local.get $0 + i32.load offset=16 + i32.const 4 + i32.shl + i32.add + local.set $6 + local.get $3 + local.set $2 + loop $while-continue|0 + local.get $6 + local.get $9 i32.ne if - i32.const 0 - i32.const 1568 - i32.const 56 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 - call $"~lib/map/Map#clear" - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 - call $"~lib/map/Map#get:size" - if - i32.const 0 - i32.const 1568 - i32.const 60 - i32.const 3 - call $~lib/builtins/abort - unreachable + local.get $9 + i32.load offset=12 + i32.const 1 + i32.and + i32.eqz + if + local.get $2 + local.get $9 + f64.load + local.tee $5 + f64.store + local.get $2 + local.get $9 + i32.load offset=8 + i32.store offset=8 + local.get $2 + local.get $8 + local.get $1 + local.get $5 + i64.reinterpret_f64 + local.tee $4 + i32.wrap_i64 + i32.const -1028477379 + i32.mul + i32.const 374761401 + i32.add + i32.const 17 + i32.rotl + i32.const 668265263 + i32.mul + local.get $4 + i64.const 32 + i64.shr_u + i32.wrap_i64 + i32.const -1028477379 + i32.mul + i32.add + i32.const 17 + i32.rotl + i32.const 668265263 + i32.mul + local.tee $10 + i32.const 15 + i32.shr_u + local.get $10 + i32.xor + i32.const -2048144777 + i32.mul + local.tee $10 + i32.const 13 + i32.shr_u + local.get $10 + i32.xor + i32.const -1028477379 + i32.mul + local.tee $10 + i32.const 16 + i32.shr_u + local.get $10 + i32.xor + i32.and + i32.const 2 + i32.shl + i32.add + local.tee $10 + i32.load + i32.store offset=12 + local.get $10 + local.get $2 + i32.store + local.get $2 + i32.const 16 + i32.add + local.set $2 + end + local.get $9 + i32.const 16 + i32.add + local.set $9 + br $while-continue|0 end - global.get $~lib/memory/__stack_pointer - i32.const 24 - i32.add - global.set $~lib/memory/__stack_pointer - return end - i32.const 34688 - i32.const 34736 - i32.const 1 - i32.const 1 - call $~lib/builtins/abort - unreachable + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=8 + global.get $~lib/memory/__stack_pointer + local.get $8 + i32.store offset=12 + local.get $0 + local.get $8 + i32.store + local.get $0 + local.get $8 + i32.const 0 + call $~lib/rt/itcms/__link + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=8 + local.get $0 + local.get $1 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=8 + global.get $~lib/memory/__stack_pointer + local.get $3 + i32.store offset=12 + local.get $0 + local.get $3 + i32.store offset=8 + local.get $0 + local.get $3 + i32.const 0 + call $~lib/rt/itcms/__link + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=8 + local.get $0 + local.get $7 + i32.store offset=12 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=8 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=12 + local.get $0 + local.get $0 + i32.load offset=20 + i32.store offset=16 + global.get $~lib/memory/__stack_pointer + i32.const 16 + i32.add + global.set $~lib/memory/__stack_pointer ) (func $"~lib/map/Map#find" (param $0 i32) (param $1 f64) (param $2 i32) (result i32) (local $3 i32) @@ -21008,11 +27344,11 @@ i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 1896 + i32.const 3104 i32.lt_s if - i32.const 34688 - i32.const 34736 + i32.const 35904 + i32.const 35952 i32.const 1 i32.const 1 call $~lib/builtins/abort @@ -21053,123 +27389,48 @@ local.get $0 f64.load f64.eq - end - if - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $0 - return - end - local.get $2 - i32.const -2 - i32.and - local.set $0 - br $while-continue|0 - end - end - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.add - global.set $~lib/memory/__stack_pointer - i32.const 0 - ) - (func $"~lib/map/Map#has" (param $0 i32) (param $1 f64) (result i32) - (local $2 i64) - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.sub - global.set $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - i32.const 1896 - i32.lt_s - if - i32.const 34688 - i32.const 34736 - i32.const 1 - i32.const 1 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.store - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store - local.get $0 - local.get $1 - local.get $1 - i64.reinterpret_f64 - local.tee $2 - i32.wrap_i64 - i32.const -1028477379 - i32.mul - i32.const 374761401 - i32.add - i32.const 17 - i32.rotl - i32.const 668265263 - i32.mul - local.get $2 - i64.const 32 - i64.shr_u - i32.wrap_i64 - i32.const -1028477379 - i32.mul - i32.add - i32.const 17 - i32.rotl - i32.const 668265263 - i32.mul - local.tee $0 - i32.const 15 - i32.shr_u - local.get $0 - i32.xor - i32.const -2048144777 - i32.mul - local.tee $0 - i32.const 13 - i32.shr_u - local.get $0 - i32.xor - i32.const -1028477379 - i32.mul - local.tee $0 - i32.const 16 - i32.shr_u - local.get $0 - i32.xor - call $"~lib/map/Map#find" - i32.const 0 - i32.ne + end + if + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $0 + return + end + local.get $2 + i32.const -2 + i32.and + local.set $0 + br $while-continue|0 + end + end global.get $~lib/memory/__stack_pointer i32.const 4 i32.add global.set $~lib/memory/__stack_pointer + i32.const 0 ) - (func $"~lib/map/Map#rehash" (param $0 i32) (param $1 i32) + (func $"~lib/map/Map#constructor" (param $0 i32) (result i32) + (local $1 i32) (local $2 i32) - (local $3 i32) + (local $3 f64) (local $4 i64) - (local $5 f64) + (local $5 i32) (local $6 i32) (local $7 i32) (local $8 i32) (local $9 i32) - (local $10 i32) global.get $~lib/memory/__stack_pointer i32.const 16 i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 1896 + i32.const 3104 i32.lt_s if - i32.const 34688 - i32.const 34736 + i32.const 35904 + i32.const 35952 i32.const 1 i32.const 1 call $~lib/builtins/abort @@ -21182,69 +27443,142 @@ i64.const 0 i64.store offset=8 global.get $~lib/memory/__stack_pointer + i32.const 24 + i32.const 64 + call $~lib/rt/itcms/__new + local.tee $1 + i32.store + global.get $~lib/memory/__stack_pointer local.get $1 - i32.const 1 - i32.add - local.tee $2 - i32.const 2 - i32.shl + i32.store offset=4 + i32.const 16 call $~lib/arraybuffer/ArrayBuffer#constructor - local.tee $8 + local.set $5 + global.get $~lib/memory/__stack_pointer + local.get $5 + i32.store offset=8 + local.get $1 + local.get $5 i32.store + local.get $1 + local.get $5 + i32.const 0 + call $~lib/rt/itcms/__link global.get $~lib/memory/__stack_pointer - local.get $2 - i32.const 3 - i32.shl + local.get $1 + i32.store offset=4 + local.get $1 i32.const 3 - i32.div_s - local.tee $7 - i32.const 4 - i32.shl - call $~lib/arraybuffer/ArrayBuffer#constructor - local.tee $3 i32.store offset=4 global.get $~lib/memory/__stack_pointer - local.get $0 + local.get $1 + i32.store offset=4 + i32.const 64 + call $~lib/arraybuffer/ArrayBuffer#constructor + local.set $5 + global.get $~lib/memory/__stack_pointer + local.get $5 i32.store offset=8 - local.get $0 - i32.load offset=8 - local.set $9 + local.get $1 + local.get $5 + i32.store offset=8 + local.get $1 + local.get $5 + i32.const 0 + call $~lib/rt/itcms/__link + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + local.get $1 + i32.const 4 + i32.store offset=12 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + local.get $1 + i32.const 0 + i32.store offset=16 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + local.get $1 + i32.const 0 + i32.store offset=20 global.get $~lib/memory/__stack_pointer local.get $0 - i32.store offset=8 - local.get $9 + i32.store offset=4 local.get $0 - i32.load offset=16 - i32.const 4 - i32.shl - i32.add - local.set $6 - local.get $3 - local.set $2 - loop $while-continue|0 - local.get $6 - local.get $9 - i32.ne + call $"~lib/array/Array<~lib/map/KeyValue>#get:length" + local.tee $5 + i32.const 0 + i32.gt_s + if + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + local.get $5 + local.get $1 + i32.load offset=12 + i32.ge_s if - local.get $9 - i32.load offset=12 - i32.const 1 - i32.and - i32.eqz + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + local.get $1 + local.get $5 + i32.store offset=4 + end + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=8 + local.get $1 + local.get $1 + i32.load offset=4 + i32.const 1 + i32.shl + i32.const 1 + i32.or + call $"~lib/map/Map#rehash" + loop $for-loop|0 + local.get $2 + local.get $5 + i32.lt_s if + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=8 + local.get $0 local.get $2 - local.get $9 + call $"~lib/array/Array<~lib/map/KeyValue>#__get" + local.set $6 + global.get $~lib/memory/__stack_pointer + local.get $6 + i32.store offset=4 + local.get $6 f64.load - local.tee $5 - f64.store - local.get $2 - local.get $9 - i32.load offset=8 + local.set $3 + global.get $~lib/memory/__stack_pointer + local.get $0 i32.store offset=8 + local.get $0 local.get $2 - local.get $8 + call $"~lib/array/Array<~lib/map/KeyValue>#__get" + local.set $6 + global.get $~lib/memory/__stack_pointer + local.get $6 + i32.store offset=4 + local.get $6 + i32.load offset=8 + local.set $7 + global.get $~lib/memory/__stack_pointer local.get $1 - local.get $5 + i32.store offset=4 + local.get $1 + local.get $3 + local.get $3 i64.reinterpret_f64 local.tee $4 i32.wrap_i64 @@ -21267,95 +27601,188 @@ i32.rotl i32.const 668265263 i32.mul - local.tee $10 + local.tee $6 i32.const 15 i32.shr_u - local.get $10 + local.get $6 i32.xor i32.const -2048144777 i32.mul - local.tee $10 + local.tee $6 i32.const 13 i32.shr_u - local.get $10 + local.get $6 i32.xor i32.const -1028477379 i32.mul - local.tee $10 + local.tee $6 i32.const 16 i32.shr_u - local.get $10 + local.get $6 i32.xor - i32.and - i32.const 2 - i32.shl - i32.add - local.tee $10 - i32.load - i32.store offset=12 - local.get $10 - local.get $2 - i32.store + local.tee $8 + call $"~lib/map/Map#find" + local.tee $6 + if + local.get $6 + local.get $7 + i32.store offset=8 + else + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.load offset=8 + local.tee $6 + i32.store offset=12 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=8 + local.get $1 + local.get $1 + i32.load offset=16 + local.tee $9 + i32.const 1 + i32.add + i32.store offset=16 + local.get $6 + local.get $9 + i32.const 4 + i32.shl + i32.add + local.tee $6 + local.get $3 + f64.store + local.get $6 + local.get $7 + i32.store offset=8 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=8 + local.get $1 + local.get $1 + i32.load offset=20 + i32.const 1 + i32.add + i32.store offset=20 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + local.get $1 + i32.load + local.set $7 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + local.get $6 + local.get $7 + local.get $8 + local.get $1 + i32.load offset=4 + i32.and + i32.const 2 + i32.shl + i32.add + local.tee $7 + i32.load + i32.store offset=12 + local.get $7 + local.get $6 + i32.store + end local.get $2 - i32.const 16 + i32.const 1 i32.add local.set $2 + br $for-loop|0 end - local.get $9 - i32.const 16 - i32.add - local.set $9 - br $while-continue|0 end end global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=8 - global.get $~lib/memory/__stack_pointer - local.get $8 - i32.store offset=12 - local.get $0 - local.get $8 - i32.store - local.get $0 - local.get $8 - call $~lib/rt/itcms/__link - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=8 - local.get $0 + i32.const 16 + i32.add + global.set $~lib/memory/__stack_pointer local.get $1 - i32.store offset=4 + ) + (func $"~lib/map/Map#has" (param $0 i32) (param $1 f64) (result i32) + (local $2 i64) global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=8 + i32.const 4 + i32.sub + global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - local.get $3 - i32.store offset=12 - local.get $0 - local.get $3 - i32.store offset=8 - local.get $0 - local.get $3 - call $~lib/rt/itcms/__link + i32.const 3104 + i32.lt_s + if + i32.const 35904 + i32.const 35952 + i32.const 1 + i32.const 1 + call $~lib/builtins/abort + unreachable + end global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=8 - local.get $0 - local.get $7 - i32.store offset=12 + i32.const 0 + i32.store global.get $~lib/memory/__stack_pointer local.get $0 - i32.store offset=8 - global.get $~lib/memory/__stack_pointer + i32.store local.get $0 - i32.store offset=12 + local.get $1 + local.get $1 + i64.reinterpret_f64 + local.tee $2 + i32.wrap_i64 + i32.const -1028477379 + i32.mul + i32.const 374761401 + i32.add + i32.const 17 + i32.rotl + i32.const 668265263 + i32.mul + local.get $2 + i64.const 32 + i64.shr_u + i32.wrap_i64 + i32.const -1028477379 + i32.mul + i32.add + i32.const 17 + i32.rotl + i32.const 668265263 + i32.mul + local.tee $0 + i32.const 15 + i32.shr_u local.get $0 + i32.xor + i32.const -2048144777 + i32.mul + local.tee $0 + i32.const 13 + i32.shr_u local.get $0 - i32.load offset=20 - i32.store offset=16 - global.get $~lib/memory/__stack_pointer + i32.xor + i32.const -1028477379 + i32.mul + local.tee $0 i32.const 16 + i32.shr_u + local.get $0 + i32.xor + call $"~lib/map/Map#find" + i32.const 0 + i32.ne + global.get $~lib/memory/__stack_pointer + i32.const 4 i32.add global.set $~lib/memory/__stack_pointer ) @@ -21369,11 +27796,11 @@ i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 1896 + i32.const 3104 i32.lt_s if - i32.const 34688 - i32.const 34736 + i32.const 35904 + i32.const 35952 i32.const 1 i32.const 1 call $~lib/builtins/abort @@ -21573,11 +28000,11 @@ i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 1896 + i32.const 3104 i32.lt_s if - i32.const 34688 - i32.const 34736 + i32.const 35904 + i32.const 35952 i32.const 1 i32.const 1 call $~lib/builtins/abort @@ -21637,9 +28064,9 @@ local.tee $0 i32.eqz if - i32.const 1616 - i32.const 1680 - i32.const 105 + i32.const 1824 + i32.const 1888 + i32.const 148 i32.const 17 call $~lib/builtins/abort unreachable @@ -21665,7 +28092,7 @@ global.set $~lib/memory/__stack_pointer block $folding-inner1 global.get $~lib/memory/__stack_pointer - i32.const 1896 + i32.const 3104 i32.lt_s br_if $folding-inner1 global.get $~lib/memory/__stack_pointer @@ -21689,7 +28116,7 @@ i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 1896 + i32.const 3104 i32.lt_s br_if $folding-inner1 global.get $~lib/memory/__stack_pointer @@ -21700,7 +28127,7 @@ i64.store offset=8 global.get $~lib/memory/__stack_pointer i32.const 16 - i32.const 31 + i32.const 67 call $~lib/rt/itcms/__new local.tee $6 i32.store @@ -21712,6 +28139,7 @@ i32.store local.get $6 i32.const 0 + i32.const 0 call $~lib/rt/itcms/__link global.get $~lib/memory/__stack_pointer local.get $6 @@ -21735,8 +28163,8 @@ i32.const 134217727 i32.gt_u if - i32.const 1456 - i32.const 1728 + i32.const 1056 + i32.const 1568 i32.const 70 i32.const 60 call $~lib/builtins/abort @@ -21767,6 +28195,7 @@ i32.store local.get $6 local.get $7 + i32.const 0 call $~lib/rt/itcms/__link global.get $~lib/memory/__stack_pointer local.get $6 @@ -21824,7 +28253,7 @@ i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 1896 + i32.const 3104 i32.lt_s br_if $folding-inner1 global.get $~lib/memory/__stack_pointer @@ -21842,8 +28271,8 @@ i32.const 0 i32.lt_s if - i32.const 1248 - i32.const 1728 + i32.const 1360 + i32.const 1568 i32.const 130 i32.const 22 call $~lib/builtins/abort @@ -21881,448 +28310,710 @@ global.set $~lib/memory/__stack_pointer end local.get $2 - i32.const 1 + i32.const 1 + i32.add + local.set $2 + br $for-loop|0 + end + end + global.get $~lib/memory/__stack_pointer + local.get $6 + i32.store + local.get $6 + local.get $1 + call $~lib/array/Array#set:length + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $6 + return + end + i32.const 35904 + i32.const 35952 + i32.const 1 + i32.const 1 + call $~lib/builtins/abort + unreachable + ) + (func $"~lib/map/Map#rehash" (param $0 i32) (param $1 i32) + (local $2 i32) + (local $3 i32) + (local $4 i64) + (local $5 f64) + (local $6 i32) + (local $7 i32) + (local $8 i32) + (local $9 i32) + (local $10 i32) + global.get $~lib/memory/__stack_pointer + i32.const 16 + i32.sub + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 3104 + i32.lt_s + if + i32.const 35904 + i32.const 35952 + i32.const 1 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store + global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store offset=8 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.const 1 + i32.add + local.tee $2 + i32.const 2 + i32.shl + call $~lib/arraybuffer/ArrayBuffer#constructor + local.tee $8 + i32.store + global.get $~lib/memory/__stack_pointer + local.get $2 + i32.const 3 + i32.shl + i32.const 3 + i32.div_s + local.tee $7 + i32.const 24 + i32.mul + call $~lib/arraybuffer/ArrayBuffer#constructor + local.tee $3 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=8 + local.get $0 + i32.load offset=8 + local.set $9 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=8 + local.get $9 + local.get $0 + i32.load offset=16 + i32.const 24 + i32.mul + i32.add + local.set $6 + local.get $3 + local.set $2 + loop $while-continue|0 + local.get $6 + local.get $9 + i32.ne + if + local.get $9 + i32.load offset=16 + i32.const 1 + i32.and + i32.eqz + if + local.get $2 + local.get $9 + f64.load + local.tee $5 + f64.store + local.get $2 + local.get $9 + f64.load offset=8 + f64.store offset=8 + local.get $2 + local.get $8 + local.get $1 + local.get $5 + i64.reinterpret_f64 + local.tee $4 + i32.wrap_i64 + i32.const -1028477379 + i32.mul + i32.const 374761401 + i32.add + i32.const 17 + i32.rotl + i32.const 668265263 + i32.mul + local.get $4 + i64.const 32 + i64.shr_u + i32.wrap_i64 + i32.const -1028477379 + i32.mul + i32.add + i32.const 17 + i32.rotl + i32.const 668265263 + i32.mul + local.tee $10 + i32.const 15 + i32.shr_u + local.get $10 + i32.xor + i32.const -2048144777 + i32.mul + local.tee $10 + i32.const 13 + i32.shr_u + local.get $10 + i32.xor + i32.const -1028477379 + i32.mul + local.tee $10 + i32.const 16 + i32.shr_u + local.get $10 + i32.xor + i32.and + i32.const 2 + i32.shl + i32.add + local.tee $10 + i32.load + i32.store offset=16 + local.get $10 + local.get $2 + i32.store + local.get $2 + i32.const 24 i32.add local.set $2 - br $for-loop|0 end + local.get $9 + i32.const 24 + i32.add + local.set $9 + br $while-continue|0 end - global.get $~lib/memory/__stack_pointer - local.get $6 - i32.store - local.get $6 - local.get $1 - call $~lib/array/Array#set:length - global.get $~lib/memory/__stack_pointer - i32.const 8 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $6 - return end - i32.const 34688 - i32.const 34736 - i32.const 1 - i32.const 1 - call $~lib/builtins/abort - unreachable + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=8 + global.get $~lib/memory/__stack_pointer + local.get $8 + i32.store offset=12 + local.get $0 + local.get $8 + i32.store + local.get $0 + local.get $8 + i32.const 0 + call $~lib/rt/itcms/__link + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=8 + local.get $0 + local.get $1 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=8 + global.get $~lib/memory/__stack_pointer + local.get $3 + i32.store offset=12 + local.get $0 + local.get $3 + i32.store offset=8 + local.get $0 + local.get $3 + i32.const 0 + call $~lib/rt/itcms/__link + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=8 + local.get $0 + local.get $7 + i32.store offset=12 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=8 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=12 + local.get $0 + local.get $0 + i32.load offset=20 + i32.store offset=16 + global.get $~lib/memory/__stack_pointer + i32.const 16 + i32.add + global.set $~lib/memory/__stack_pointer ) - (func $"~lib/map/Map#set" (param $0 i32) (param $1 f64) (param $2 f64) + (func $"~lib/map/Map#find" (param $0 i32) (param $1 f64) (param $2 i32) (result i32) (local $3 i32) - (local $4 i32) + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.sub + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 3104 + i32.lt_s + if + i32.const 35904 + i32.const 35952 + i32.const 1 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + local.get $0 + i32.load + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + local.get $2 + local.get $0 + i32.load offset=4 + i32.and + i32.const 2 + i32.shl + i32.add + i32.load + local.set $0 + loop $while-continue|0 + local.get $0 + if + local.get $0 + i32.load offset=16 + local.tee $2 + i32.const 1 + i32.and + if (result i32) + i32.const 0 + else + local.get $1 + local.get $0 + f64.load + f64.eq + end + if + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $0 + return + end + local.get $2 + i32.const -2 + i32.and + local.set $0 + br $while-continue|0 + end + end + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + i32.const 0 + ) + (func $"~lib/map/Map#constructor" (param $0 i32) (result i32) + (local $1 i32) + (local $2 i32) + (local $3 f64) + (local $4 f64) (local $5 i64) (local $6 i32) - (local $7 f64) + (local $7 i32) (local $8 i32) (local $9 i32) - (local $10 i32) - (local $11 i32) - (local $12 i32) - (local $13 i32) global.get $~lib/memory/__stack_pointer - i32.const 12 - i32.sub - global.set $~lib/memory/__stack_pointer - block $folding-inner1 + i32.const 16 + i32.sub + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 3104 + i32.lt_s + if + i32.const 35904 + i32.const 35952 + i32.const 1 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store + global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store offset=8 + global.get $~lib/memory/__stack_pointer + i32.const 24 + i32.const 68 + call $~lib/rt/itcms/__new + local.tee $1 + i32.store + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + i32.const 16 + call $~lib/arraybuffer/ArrayBuffer#constructor + local.set $6 + global.get $~lib/memory/__stack_pointer + local.get $6 + i32.store offset=8 + local.get $1 + local.get $6 + i32.store + local.get $1 + local.get $6 + i32.const 0 + call $~lib/rt/itcms/__link + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + local.get $1 + i32.const 3 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + i32.const 96 + call $~lib/arraybuffer/ArrayBuffer#constructor + local.set $6 + global.get $~lib/memory/__stack_pointer + local.get $6 + i32.store offset=8 + local.get $1 + local.get $6 + i32.store offset=8 + local.get $1 + local.get $6 + i32.const 0 + call $~lib/rt/itcms/__link + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + local.get $1 + i32.const 4 + i32.store offset=12 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + local.get $1 + i32.const 0 + i32.store offset=16 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + local.get $1 + i32.const 0 + i32.store offset=20 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + local.get $0 + call $"~lib/array/Array<~lib/map/KeyValue>#get:length" + local.tee $6 + i32.const 0 + i32.gt_s + if global.get $~lib/memory/__stack_pointer - i32.const 1896 - i32.lt_s - br_if $folding-inner1 + local.get $1 + i32.store offset=4 + local.get $6 + local.get $1 + i32.load offset=12 + i32.ge_s + if + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + local.get $1 + local.get $6 + i32.store offset=4 + end global.get $~lib/memory/__stack_pointer - i64.const 0 - i64.store + local.get $1 + i32.store offset=4 global.get $~lib/memory/__stack_pointer - i32.const 0 + local.get $1 i32.store offset=8 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.sub - global.set $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - i32.const 1896 - i32.lt_s - br_if $folding-inner1 - global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.store - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store - local.get $0 - i32.load - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store local.get $1 - i64.reinterpret_f64 - local.tee $5 - i32.wrap_i64 - i32.const -1028477379 - i32.mul - i32.const 374761401 - i32.add - i32.const 17 - i32.rotl - i32.const 668265263 - i32.mul - local.get $5 - i64.const 32 - i64.shr_u - i32.wrap_i64 - i32.const -1028477379 - i32.mul - i32.add - i32.const 17 - i32.rotl - i32.const 668265263 - i32.mul - local.tee $3 - local.get $3 - i32.const 15 - i32.shr_u - i32.xor - i32.const -2048144777 - i32.mul - local.tee $3 - local.get $3 - i32.const 13 - i32.shr_u - i32.xor - i32.const -1028477379 - i32.mul - local.tee $3 - local.get $3 - i32.const 16 - i32.shr_u - i32.xor - local.tee $10 - local.get $0 + local.get $1 i32.load offset=4 - i32.and - i32.const 2 + i32.const 1 i32.shl - i32.add - i32.load - local.set $3 - block $"__inlined_func$~lib/map/Map#find$1418" - loop $while-continue|0 - local.get $3 - if - local.get $3 - i32.load offset=16 - local.tee $4 - i32.const 1 - i32.and - if (result i32) - i32.const 0 - else - local.get $1 - local.get $3 - f64.load - f64.eq - end - if - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.add - global.set $~lib/memory/__stack_pointer - br $"__inlined_func$~lib/map/Map#find$1418" - end - local.get $4 - i32.const -2 - i32.and - local.set $3 - br $while-continue|0 - end - end - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.add - global.set $~lib/memory/__stack_pointer - i32.const 0 - local.set $3 - end - local.get $3 - if - local.get $3 + i32.const 1 + i32.or + call $"~lib/map/Map#rehash" + loop $for-loop|0 local.get $2 - f64.store offset=8 - else - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store - local.get $0 - i32.load offset=16 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store - local.get $0 - i32.load offset=12 - i32.eq + local.get $6 + i32.lt_s if global.get $~lib/memory/__stack_pointer local.get $0 - i32.store - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 - i32.load offset=20 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 - i32.load offset=12 - i32.const 3 - i32.mul - i32.const 4 - i32.div_s - i32.lt_s - if (result i32) - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 - i32.load offset=4 - else - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 - i32.load offset=4 - i32.const 1 - i32.shl - i32.const 1 - i32.or - end - local.set $6 - global.get $~lib/memory/__stack_pointer - i32.const 16 - i32.sub - global.set $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - i32.const 1896 - i32.lt_s - br_if $folding-inner1 - global.get $~lib/memory/__stack_pointer - i64.const 0 - i64.store - global.get $~lib/memory/__stack_pointer - i64.const 0 - i64.store offset=8 - global.get $~lib/memory/__stack_pointer - local.get $6 - i32.const 1 - i32.add - local.tee $3 - i32.const 2 - i32.shl - call $~lib/arraybuffer/ArrayBuffer#constructor - local.tee $11 - i32.store - global.get $~lib/memory/__stack_pointer - local.get $3 - i32.const 3 - i32.shl - i32.const 3 - i32.div_s - local.tee $9 - i32.const 24 - i32.mul - call $~lib/arraybuffer/ArrayBuffer#constructor - local.tee $4 - i32.store offset=4 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=8 - local.get $0 - i32.load offset=8 - local.set $12 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=8 - local.get $12 - local.get $0 - i32.load offset=16 - i32.const 24 - i32.mul - i32.add - local.set $8 - local.get $4 - local.set $3 - loop $while-continue|00 - local.get $8 - local.get $12 - i32.ne - if - local.get $12 - i32.load offset=16 - i32.const 1 - i32.and - i32.eqz - if - local.get $3 - local.get $12 - f64.load - local.tee $7 - f64.store - local.get $3 - local.get $12 - f64.load offset=8 - f64.store offset=8 - local.get $3 - local.get $11 - local.get $6 - local.get $7 - i64.reinterpret_f64 - local.tee $5 - i32.wrap_i64 - i32.const -1028477379 - i32.mul - i32.const 374761401 - i32.add - i32.const 17 - i32.rotl - i32.const 668265263 - i32.mul - local.get $5 - i64.const 32 - i64.shr_u - i32.wrap_i64 - i32.const -1028477379 - i32.mul - i32.add - i32.const 17 - i32.rotl - i32.const 668265263 - i32.mul - local.tee $13 - local.get $13 - i32.const 15 - i32.shr_u - i32.xor - i32.const -2048144777 - i32.mul - local.tee $13 - local.get $13 - i32.const 13 - i32.shr_u - i32.xor - i32.const -1028477379 - i32.mul - local.tee $13 - local.get $13 - i32.const 16 - i32.shr_u - i32.xor - i32.and - i32.const 2 - i32.shl - i32.add - local.tee $13 - i32.load - i32.store offset=16 - local.get $13 - local.get $3 - i32.store - local.get $3 - i32.const 24 - i32.add - local.set $3 - end - local.get $12 - i32.const 24 - i32.add - local.set $12 - br $while-continue|00 - end - end - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=8 - global.get $~lib/memory/__stack_pointer - local.get $11 - i32.store offset=12 - local.get $0 - local.get $11 - i32.store - local.get $0 - local.get $11 - call $~lib/rt/itcms/__link - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=8 - local.get $0 - local.get $6 - i32.store offset=4 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=8 - global.get $~lib/memory/__stack_pointer - local.get $4 - i32.store offset=12 - local.get $0 - local.get $4 i32.store offset=8 local.get $0 - local.get $4 - call $~lib/rt/itcms/__link + local.get $2 + call $"~lib/array/Array<~lib/map/KeyValue>#__get" + local.set $7 global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=8 - local.get $0 - local.get $9 - i32.store offset=12 + local.get $7 + i32.store offset=4 + local.get $7 + f64.load + local.set $3 global.get $~lib/memory/__stack_pointer local.get $0 i32.store offset=8 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=12 - local.get $0 local.get $0 - i32.load offset=20 - i32.store offset=16 + local.get $2 + call $"~lib/array/Array<~lib/map/KeyValue>#__get" + local.set $7 + global.get $~lib/memory/__stack_pointer + local.get $7 + i32.store offset=4 + local.get $7 + f64.load offset=8 + local.set $4 global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + local.get $1 + local.get $3 + local.get $3 + i64.reinterpret_f64 + local.tee $5 + i32.wrap_i64 + i32.const -1028477379 + i32.mul + i32.const 374761401 + i32.add + i32.const 17 + i32.rotl + i32.const 668265263 + i32.mul + local.get $5 + i64.const 32 + i64.shr_u + i32.wrap_i64 + i32.const -1028477379 + i32.mul + i32.add + i32.const 17 + i32.rotl + i32.const 668265263 + i32.mul + local.tee $7 + i32.const 15 + i32.shr_u + local.get $7 + i32.xor + i32.const -2048144777 + i32.mul + local.tee $7 + i32.const 13 + i32.shr_u + local.get $7 + i32.xor + i32.const -1028477379 + i32.mul + local.tee $7 i32.const 16 + i32.shr_u + local.get $7 + i32.xor + local.tee $7 + call $"~lib/map/Map#find" + local.tee $8 + if + local.get $8 + local.get $4 + f64.store offset=8 + else + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.load offset=8 + local.tee $8 + i32.store offset=12 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=8 + local.get $1 + local.get $1 + i32.load offset=16 + local.tee $9 + i32.const 1 + i32.add + i32.store offset=16 + local.get $8 + local.get $9 + i32.const 24 + i32.mul + i32.add + local.tee $8 + local.get $3 + f64.store + local.get $8 + local.get $4 + f64.store offset=8 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=8 + local.get $1 + local.get $1 + i32.load offset=20 + i32.const 1 + i32.add + i32.store offset=20 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + local.get $1 + i32.load + local.set $9 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + local.get $8 + local.get $9 + local.get $7 + local.get $1 + i32.load offset=4 + i32.and + i32.const 2 + i32.shl + i32.add + local.tee $7 + i32.load + i32.store offset=16 + local.get $7 + local.get $8 + i32.store + end + local.get $2 + i32.const 1 i32.add - global.set $~lib/memory/__stack_pointer + local.set $2 + br $for-loop|0 end - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.load offset=8 - local.tee $3 - i32.store offset=8 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 - local.get $0 - i32.load offset=16 - local.tee $4 - i32.const 1 - i32.add - i32.store offset=16 - local.get $3 - local.get $4 - i32.const 24 - i32.mul - i32.add - local.tee $3 - local.get $1 - f64.store - local.get $3 - local.get $2 - f64.store offset=8 + end + end + global.get $~lib/memory/__stack_pointer + i32.const 16 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $1 + ) + (func $"~lib/map/Map#set" (param $0 i32) (param $1 f64) (param $2 f64) + (local $3 i64) + (local $4 i32) + (local $5 i32) + (local $6 i32) + global.get $~lib/memory/__stack_pointer + i32.const 12 + i32.sub + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 3104 + i32.lt_s + if + i32.const 35904 + i32.const 35952 + i32.const 1 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store offset=8 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + local.get $0 + local.get $1 + local.get $1 + i64.reinterpret_f64 + local.tee $3 + i32.wrap_i64 + i32.const -1028477379 + i32.mul + i32.const 374761401 + i32.add + i32.const 17 + i32.rotl + i32.const 668265263 + i32.mul + local.get $3 + i64.const 32 + i64.shr_u + i32.wrap_i64 + i32.const -1028477379 + i32.mul + i32.add + i32.const 17 + i32.rotl + i32.const 668265263 + i32.mul + local.tee $4 + i32.const 15 + i32.shr_u + local.get $4 + i32.xor + i32.const -2048144777 + i32.mul + local.tee $4 + i32.const 13 + i32.shr_u + local.get $4 + i32.xor + i32.const -1028477379 + i32.mul + local.tee $4 + i32.const 16 + i32.shr_u + local.get $4 + i32.xor + local.tee $4 + call $"~lib/map/Map#find" + local.tee $5 + if + local.get $5 + local.get $2 + f64.store offset=8 + else + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + local.get $0 + i32.load offset=16 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + local.get $0 + i32.load offset=12 + i32.eq + if global.get $~lib/memory/__stack_pointer local.get $0 i32.store @@ -22330,48 +29021,112 @@ local.get $0 i32.store offset=4 local.get $0 - local.get $0 i32.load offset=20 - i32.const 1 - i32.add - i32.store offset=20 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store - local.get $0 - i32.load - local.set $4 + local.set $5 global.get $~lib/memory/__stack_pointer local.get $0 - i32.store - local.get $3 - local.get $4 - local.get $10 + i32.store offset=4 local.get $0 - i32.load offset=4 - i32.and - i32.const 2 - i32.shl - i32.add - local.tee $0 - i32.load - i32.store offset=16 + local.get $5 local.get $0 - local.get $3 - i32.store + i32.load offset=12 + i32.const 3 + i32.mul + i32.const 4 + i32.div_s + i32.lt_s + if (result i32) + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + local.get $0 + i32.load offset=4 + else + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + local.get $0 + i32.load offset=4 + i32.const 1 + i32.shl + i32.const 1 + i32.or + end + call $"~lib/map/Map#rehash" end global.get $~lib/memory/__stack_pointer - i32.const 12 + local.get $0 + i32.store + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.load offset=8 + local.tee $5 + i32.store offset=8 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + local.get $0 + local.get $0 + i32.load offset=16 + local.tee $6 + i32.const 1 i32.add - global.set $~lib/memory/__stack_pointer - return + i32.store offset=16 + local.get $5 + local.get $6 + i32.const 24 + i32.mul + i32.add + local.tee $5 + local.get $1 + f64.store + local.get $5 + local.get $2 + f64.store offset=8 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + local.get $0 + local.get $0 + i32.load offset=20 + i32.const 1 + i32.add + i32.store offset=20 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + local.get $0 + i32.load + local.set $6 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + local.get $5 + local.get $6 + local.get $4 + local.get $0 + i32.load offset=4 + i32.and + i32.const 2 + i32.shl + i32.add + local.tee $0 + i32.load + i32.store offset=16 + local.get $0 + local.get $5 + i32.store end - i32.const 34688 - i32.const 34736 - i32.const 1 - i32.const 1 - call $~lib/builtins/abort - unreachable + global.get $~lib/memory/__stack_pointer + i32.const 12 + i32.add + global.set $~lib/memory/__stack_pointer ) (func $"~lib/map/Map#delete" (param $0 i32) (param $1 f64) (local $2 i64) @@ -22382,11 +29137,11 @@ i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 1896 + i32.const 3104 i32.lt_s if - i32.const 34688 - i32.const 34736 + i32.const 35904 + i32.const 35952 i32.const 1 i32.const 1 call $~lib/builtins/abort @@ -22535,17 +29290,17 @@ (local $6 i32) (local $7 i32) global.get $~lib/memory/__stack_pointer - i32.const 24 + i32.const 40 i32.sub global.set $~lib/memory/__stack_pointer block $folding-inner0 global.get $~lib/memory/__stack_pointer - i32.const 1896 + i32.const 3104 i32.lt_s br_if $folding-inner0 global.get $~lib/memory/__stack_pointer i32.const 0 - i32.const 24 + i32.const 40 memory.fill global.get $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer @@ -22553,7 +29308,7 @@ i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 1896 + i32.const 3104 i32.lt_s br_if $folding-inner0 global.get $~lib/memory/__stack_pointer @@ -22563,70 +29318,25 @@ i32.const 0 i32.store offset=8 global.get $~lib/memory/__stack_pointer - i32.const 24 - i32.const 30 - call $~lib/rt/itcms/__new - local.tee $0 - i32.store - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - i32.const 16 - call $~lib/arraybuffer/ArrayBuffer#constructor - local.set $4 - global.get $~lib/memory/__stack_pointer - local.get $4 - i32.store offset=8 - local.get $0 - local.get $4 + i32.const 66 + i32.const 2736 + call $~lib/rt/__newArray + local.tee $3 i32.store - local.get $0 - local.get $4 - call $~lib/rt/itcms/__link - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 - i32.const 3 - i32.store offset=4 global.get $~lib/memory/__stack_pointer - local.get $0 + i32.const 0 i32.store offset=4 - i32.const 64 - call $~lib/arraybuffer/ArrayBuffer#constructor - local.set $4 global.get $~lib/memory/__stack_pointer - local.get $4 - i32.store offset=8 - local.get $0 - local.get $4 + local.get $3 i32.store offset=8 - local.get $0 - local.get $4 - call $~lib/rt/itcms/__link - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 - i32.const 4 - i32.store offset=12 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 - i32.const 0 - i32.store offset=16 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 - i32.const 0 - i32.store offset=20 + local.get $3 + call $"~lib/map/Map#constructor" + local.set $3 global.get $~lib/memory/__stack_pointer i32.const 12 i32.add global.set $~lib/memory/__stack_pointer - local.get $0 + local.get $3 i32.store loop $for-loop|0 local.get $1 @@ -22634,23 +29344,23 @@ f64.lt if global.get $~lib/memory/__stack_pointer - local.get $0 + local.get $3 i32.store offset=4 - local.get $0 + local.get $3 local.get $1 call $"~lib/map/Map#has" if i32.const 0 - i32.const 1568 - i32.const 6 + i32.const 1776 + i32.const 7 i32.const 5 call $~lib/builtins/abort unreachable end global.get $~lib/memory/__stack_pointer - local.get $0 + local.get $3 i32.store offset=4 - local.get $0 + local.get $3 local.get $1 local.get $1 i32.trunc_sat_f64_s @@ -22658,24 +29368,24 @@ i32.add call $"~lib/map/Map#set" global.get $~lib/memory/__stack_pointer - local.get $0 + local.get $3 i32.store offset=4 - local.get $0 + local.get $3 local.get $1 call $"~lib/map/Map#has" i32.eqz if i32.const 0 - i32.const 1568 - i32.const 8 + i32.const 1776 + i32.const 9 i32.const 5 call $~lib/builtins/abort unreachable end global.get $~lib/memory/__stack_pointer - local.get $0 + local.get $3 i32.store offset=4 - local.get $0 + local.get $3 local.get $1 call $"~lib/map/Map#get" local.get $1 @@ -22685,8 +29395,8 @@ i32.ne if i32.const 0 - i32.const 1568 - i32.const 9 + i32.const 1776 + i32.const 10 i32.const 5 call $~lib/builtins/abort unreachable @@ -22699,16 +29409,16 @@ end end global.get $~lib/memory/__stack_pointer - local.get $0 + local.get $3 i32.store offset=4 - local.get $0 + local.get $3 call $"~lib/map/Map#get:size" i32.const 100 i32.ne if i32.const 0 - i32.const 1568 - i32.const 11 + i32.const 1776 + i32.const 12 i32.const 3 call $~lib/builtins/abort unreachable @@ -22721,24 +29431,24 @@ f64.lt if global.get $~lib/memory/__stack_pointer - local.get $0 + local.get $3 i32.store offset=4 - local.get $0 + local.get $3 local.get $1 call $"~lib/map/Map#has" i32.eqz if i32.const 0 - i32.const 1568 - i32.const 15 + i32.const 1776 + i32.const 16 i32.const 5 call $~lib/builtins/abort unreachable end global.get $~lib/memory/__stack_pointer - local.get $0 + local.get $3 i32.store offset=4 - local.get $0 + local.get $3 local.get $1 call $"~lib/map/Map#get" local.get $1 @@ -22748,16 +29458,16 @@ i32.ne if i32.const 0 - i32.const 1568 - i32.const 16 + i32.const 1776 + i32.const 17 i32.const 5 call $~lib/builtins/abort unreachable end global.get $~lib/memory/__stack_pointer - local.get $0 + local.get $3 i32.store offset=4 - local.get $0 + local.get $3 local.get $1 local.get $1 i32.trunc_sat_f64_s @@ -22765,24 +29475,24 @@ i32.add call $"~lib/map/Map#set" global.get $~lib/memory/__stack_pointer - local.get $0 + local.get $3 i32.store offset=4 - local.get $0 + local.get $3 local.get $1 call $"~lib/map/Map#has" i32.eqz if i32.const 0 - i32.const 1568 - i32.const 18 + i32.const 1776 + i32.const 19 i32.const 5 call $~lib/builtins/abort unreachable end global.get $~lib/memory/__stack_pointer - local.get $0 + local.get $3 i32.store offset=4 - local.get $0 + local.get $3 local.get $1 call $"~lib/map/Map#get" local.get $1 @@ -22792,8 +29502,8 @@ i32.ne if i32.const 0 - i32.const 1568 - i32.const 19 + i32.const 1776 + i32.const 20 i32.const 5 call $~lib/builtins/abort unreachable @@ -22806,35 +29516,35 @@ end end global.get $~lib/memory/__stack_pointer - local.get $0 + local.get $3 i32.store offset=4 - local.get $0 + local.get $3 call $"~lib/map/Map#get:size" i32.const 100 i32.ne if i32.const 0 - i32.const 1568 - i32.const 21 + i32.const 1776 + i32.const 22 i32.const 3 call $~lib/builtins/abort unreachable end global.get $~lib/memory/__stack_pointer - local.get $0 + local.get $3 i32.store offset=4 global.get $~lib/memory/__stack_pointer - local.get $0 + local.get $3 call $"~lib/map/Map#keys" - local.tee $4 + local.tee $2 i32.store offset=8 global.get $~lib/memory/__stack_pointer - local.get $0 + local.get $3 i32.store offset=4 global.get $~lib/memory/__stack_pointer - local.get $0 + local.get $3 call $"~lib/map/Map#values" - local.tee $3 + local.tee $4 i32.store offset=12 global.get $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer @@ -22842,7 +29552,7 @@ i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 1896 + i32.const 3104 i32.lt_s br_if $folding-inner0 global.get $~lib/memory/__stack_pointer @@ -22852,65 +29562,20 @@ i32.const 0 i32.store offset=8 global.get $~lib/memory/__stack_pointer - i32.const 24 - i32.const 32 - call $~lib/rt/itcms/__new + i32.const 70 + i32.const 2768 + call $~lib/rt/__newArray local.tee $6 i32.store global.get $~lib/memory/__stack_pointer - local.get $6 - i32.store offset=4 - i32.const 16 - call $~lib/arraybuffer/ArrayBuffer#constructor - local.set $7 - global.get $~lib/memory/__stack_pointer - local.get $7 - i32.store offset=8 - local.get $6 - local.get $7 - i32.store - local.get $6 - local.get $7 - call $~lib/rt/itcms/__link - global.get $~lib/memory/__stack_pointer - local.get $6 - i32.store offset=4 - local.get $6 - i32.const 3 - i32.store offset=4 - global.get $~lib/memory/__stack_pointer - local.get $6 + i32.const 0 i32.store offset=4 - i32.const 96 - call $~lib/arraybuffer/ArrayBuffer#constructor - local.set $7 global.get $~lib/memory/__stack_pointer - local.get $7 - i32.store offset=8 local.get $6 - local.get $7 i32.store offset=8 local.get $6 - local.get $7 - call $~lib/rt/itcms/__link - global.get $~lib/memory/__stack_pointer - local.get $6 - i32.store offset=4 - local.get $6 - i32.const 4 - i32.store offset=12 - global.get $~lib/memory/__stack_pointer - local.get $6 - i32.store offset=4 - local.get $6 - i32.const 0 - i32.store offset=16 - global.get $~lib/memory/__stack_pointer - local.get $6 - i32.store offset=4 - local.get $6 - i32.const 0 - i32.store offset=20 + call $"~lib/map/Map#constructor" + local.set $6 global.get $~lib/memory/__stack_pointer i32.const 12 i32.add @@ -22918,53 +29583,53 @@ local.get $6 i32.store offset=16 global.get $~lib/memory/__stack_pointer - call $"~lib/map/Map#constructor" + call $"~lib/map/Map#constructor@varargs" local.tee $5 i32.store offset=20 loop $for-loop|2 global.get $~lib/memory/__stack_pointer - local.get $4 + local.get $2 i32.store offset=4 - local.get $4 - call $~lib/array/Array#get:length local.get $2 + call $"~lib/array/Array<~lib/map/KeyValue>#get:length" + local.get $0 i32.gt_s if global.get $~lib/memory/__stack_pointer - local.get $4 + local.get $2 i32.store offset=4 global.get $~lib/memory/__stack_pointer i32.const 4 i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 1896 + i32.const 3104 i32.lt_s br_if $folding-inner0 global.get $~lib/memory/__stack_pointer i32.const 0 i32.store global.get $~lib/memory/__stack_pointer - local.get $4 + local.get $2 i32.store + local.get $0 local.get $2 - local.get $4 i32.load offset=12 i32.ge_u if - i32.const 1248 - i32.const 1728 + i32.const 1360 + i32.const 1568 i32.const 114 i32.const 42 call $~lib/builtins/abort unreachable end global.get $~lib/memory/__stack_pointer - local.get $4 + local.get $2 i32.store - local.get $4 - i32.load offset=4 local.get $2 + i32.load offset=4 + local.get $0 i32.const 3 i32.shl i32.add @@ -22975,31 +29640,31 @@ i32.add global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - local.get $3 + local.get $4 i32.store offset=4 - local.get $3 - local.get $2 + local.get $4 + local.get $0 call $~lib/array/Array#__get local.set $7 global.get $~lib/memory/__stack_pointer - local.get $0 + local.get $3 i32.store offset=4 - local.get $0 + local.get $3 local.get $1 call $"~lib/map/Map#has" i32.eqz if i32.const 0 - i32.const 1568 - i32.const 31 + i32.const 1776 + i32.const 32 i32.const 5 call $~lib/builtins/abort unreachable end global.get $~lib/memory/__stack_pointer - local.get $0 + local.get $3 i32.store offset=4 - local.get $0 + local.get $3 local.get $7 i32.const 20 i32.sub @@ -23008,8 +29673,8 @@ i32.eqz if i32.const 0 - i32.const 1568 - i32.const 32 + i32.const 1776 + i32.const 33 i32.const 5 call $~lib/builtins/abort unreachable @@ -23031,131 +29696,348 @@ local.tee $7 local.get $7 call $"~lib/map/Map#set" - local.get $2 + local.get $0 i32.const 1 i32.add - local.set $2 + local.set $0 br $for-loop|2 end end global.get $~lib/memory/__stack_pointer - local.get $6 + local.get $6 + i32.store offset=4 + local.get $6 + call $"~lib/map/Map#get:size" + i32.const 100 + i32.ne + if + i32.const 0 + i32.const 1776 + i32.const 37 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + local.get $5 + i32.store offset=4 + local.get $5 + call $"~lib/map/Map#get:size" + i32.const 100 + i32.ne + if + i32.const 0 + i32.const 1776 + i32.const 38 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + f64.const 0 + local.set $1 + loop $for-loop|3 + local.get $1 + f64.const 50 + f64.lt + if + global.get $~lib/memory/__stack_pointer + local.get $3 + i32.store offset=4 + local.get $3 + local.get $1 + call $"~lib/map/Map#has" + i32.eqz + if + i32.const 0 + i32.const 1776 + i32.const 42 + i32.const 5 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + local.get $3 + i32.store offset=4 + local.get $3 + local.get $1 + call $"~lib/map/Map#get" + local.get $1 + i32.trunc_sat_f64_s + i32.const 20 + i32.add + i32.ne + if + i32.const 0 + i32.const 1776 + i32.const 43 + i32.const 5 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + local.get $3 + i32.store offset=4 + local.get $3 + local.get $1 + call $"~lib/map/Map#delete" + global.get $~lib/memory/__stack_pointer + local.get $3 + i32.store offset=4 + local.get $3 + local.get $1 + call $"~lib/map/Map#has" + if + i32.const 0 + i32.const 1776 + i32.const 45 + i32.const 5 + call $~lib/builtins/abort + unreachable + end + local.get $1 + f64.const 1 + f64.add + local.set $1 + br $for-loop|3 + end + end + global.get $~lib/memory/__stack_pointer + local.get $3 + i32.store offset=4 + local.get $3 + call $"~lib/map/Map#get:size" + i32.const 50 + i32.ne + if + i32.const 0 + i32.const 1776 + i32.const 47 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + f64.const 0 + local.set $1 + loop $for-loop|4 + local.get $1 + f64.const 50 + f64.lt + if + global.get $~lib/memory/__stack_pointer + local.get $3 + i32.store offset=4 + local.get $3 + local.get $1 + call $"~lib/map/Map#has" + if + i32.const 0 + i32.const 1776 + i32.const 51 + i32.const 5 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + local.get $3 + i32.store offset=4 + local.get $3 + local.get $1 + local.get $1 + i32.trunc_sat_f64_s + i32.const 10 + i32.add + call $"~lib/map/Map#set" + global.get $~lib/memory/__stack_pointer + local.get $3 + i32.store offset=4 + local.get $3 + local.get $1 + call $"~lib/map/Map#has" + i32.eqz + if + i32.const 0 + i32.const 1776 + i32.const 53 + i32.const 5 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + local.get $3 + i32.store offset=4 + local.get $3 + local.get $1 + call $"~lib/map/Map#delete" + global.get $~lib/memory/__stack_pointer + local.get $3 + i32.store offset=4 + local.get $3 + local.get $1 + call $"~lib/map/Map#has" + if + i32.const 0 + i32.const 1776 + i32.const 55 + i32.const 5 + call $~lib/builtins/abort + unreachable + end + local.get $1 + f64.const 1 + f64.add + local.set $1 + br $for-loop|4 + end + end + global.get $~lib/memory/__stack_pointer + local.get $3 i32.store offset=4 - local.get $6 + local.get $3 call $"~lib/map/Map#get:size" - i32.const 100 + i32.const 50 i32.ne if i32.const 0 - i32.const 1568 - i32.const 36 + i32.const 1776 + i32.const 57 i32.const 3 call $~lib/builtins/abort unreachable end global.get $~lib/memory/__stack_pointer - local.get $5 + local.get $3 i32.store offset=4 - local.get $5 + local.get $3 + call $"~lib/map/Map#clear" + global.get $~lib/memory/__stack_pointer + local.get $3 + i32.store offset=4 + local.get $3 call $"~lib/map/Map#get:size" - i32.const 100 - i32.ne if i32.const 0 - i32.const 1568 - i32.const 37 + i32.const 1776 + i32.const 61 i32.const 3 call $~lib/builtins/abort unreachable end + global.get $~lib/memory/__stack_pointer + i32.const 66 + i32.const 2800 + call $~lib/rt/__newArray + local.tee $0 + i32.store offset=24 f64.const 0 local.set $1 - loop $for-loop|3 + loop $for-loop|5 local.get $1 - f64.const 50 + f64.const 100 f64.lt if global.get $~lib/memory/__stack_pointer local.get $0 i32.store offset=4 - local.get $0 - local.get $1 - call $"~lib/map/Map#has" - i32.eqz - if - i32.const 0 - i32.const 1568 - i32.const 41 - i32.const 5 - call $~lib/builtins/abort - unreachable - end global.get $~lib/memory/__stack_pointer - local.get $0 + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.sub + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 3104 + i32.lt_s + br_if $folding-inner0 + global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store + global.get $~lib/memory/__stack_pointer + i32.const 12 + i32.const 65 + call $~lib/rt/itcms/__new + local.tee $3 + i32.store + global.get $~lib/memory/__stack_pointer + local.get $3 i32.store offset=4 - local.get $0 + global.get $~lib/memory/__stack_pointer + local.get $3 + call $~lib/object/Object#constructor + local.tee $3 + i32.store + global.get $~lib/memory/__stack_pointer + local.get $3 + i32.store offset=4 + local.get $3 + f64.const 0 + f64.store + global.get $~lib/memory/__stack_pointer + local.get $3 + i32.store offset=4 + local.get $3 + i32.const 0 + i32.store offset=8 + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $3 + i32.store offset=32 + global.get $~lib/memory/__stack_pointer + local.get $3 + i32.store offset=36 + local.get $3 local.get $1 - call $"~lib/map/Map#get" + f64.store + global.get $~lib/memory/__stack_pointer + local.get $3 + i32.store offset=36 + local.get $3 local.get $1 i32.trunc_sat_f64_s - i32.const 20 + i32.const 10 i32.add - i32.ne - if - i32.const 0 - i32.const 1568 - i32.const 42 - i32.const 5 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 - local.get $1 - call $"~lib/map/Map#delete" + i32.store offset=8 global.get $~lib/memory/__stack_pointer + local.get $3 + i32.store offset=28 local.get $0 - i32.store offset=4 - local.get $0 - local.get $1 - call $"~lib/map/Map#has" - if - i32.const 0 - i32.const 1568 - i32.const 44 - i32.const 5 - call $~lib/builtins/abort - unreachable - end + local.get $3 + call $"~lib/array/Array<~lib/map/KeyValue>#push" local.get $1 f64.const 1 f64.add local.set $1 - br $for-loop|3 + br $for-loop|5 end end global.get $~lib/memory/__stack_pointer local.get $0 i32.store offset=4 + global.get $~lib/memory/__stack_pointer + local.get $0 + call $"~lib/map/Map#constructor" + local.tee $0 + i32.store + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 local.get $0 call $"~lib/map/Map#get:size" - i32.const 50 + i32.const 100 i32.ne if i32.const 0 - i32.const 1568 - i32.const 46 + i32.const 1776 + i32.const 74 i32.const 3 call $~lib/builtins/abort unreachable end f64.const 0 local.set $1 - loop $for-loop|4 + loop $for-loop|6 local.get $1 - f64.const 50 + f64.const 100 f64.lt if global.get $~lib/memory/__stack_pointer @@ -23164,10 +30046,11 @@ local.get $0 local.get $1 call $"~lib/map/Map#has" + i32.eqz if i32.const 0 - i32.const 1568 - i32.const 50 + i32.const 1776 + i32.const 76 i32.const 5 call $~lib/builtins/abort unreachable @@ -23177,22 +30060,16 @@ i32.store offset=4 local.get $0 local.get $1 + call $"~lib/map/Map#get" local.get $1 i32.trunc_sat_f64_s i32.const 10 i32.add - call $"~lib/map/Map#set" - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 - local.get $1 - call $"~lib/map/Map#has" - i32.eqz + i32.ne if i32.const 0 - i32.const 1568 - i32.const 52 + i32.const 1776 + i32.const 77 i32.const 5 call $~lib/builtins/abort unreachable @@ -23211,8 +30088,8 @@ call $"~lib/map/Map#has" if i32.const 0 - i32.const 1568 - i32.const 54 + i32.const 1776 + i32.const 79 i32.const 5 call $~lib/builtins/abort unreachable @@ -23221,7 +30098,7 @@ f64.const 1 f64.add local.set $1 - br $for-loop|4 + br $for-loop|6 end end global.get $~lib/memory/__stack_pointer @@ -23229,42 +30106,22 @@ i32.store offset=4 local.get $0 call $"~lib/map/Map#get:size" - i32.const 50 - i32.ne - if - i32.const 0 - i32.const 1568 - i32.const 56 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 - call $"~lib/map/Map#clear" - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 - call $"~lib/map/Map#get:size" if i32.const 0 - i32.const 1568 - i32.const 60 + i32.const 1776 + i32.const 81 i32.const 3 call $~lib/builtins/abort unreachable end global.get $~lib/memory/__stack_pointer - i32.const 24 + i32.const 40 i32.add global.set $~lib/memory/__stack_pointer return end - i32.const 34688 - i32.const 34736 + i32.const 35904 + i32.const 35952 i32.const 1 i32.const 1 call $~lib/builtins/abort @@ -23276,11 +30133,11 @@ i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 1896 + i32.const 3104 i32.lt_s if - i32.const 34688 - i32.const 34736 + i32.const 35904 + i32.const 35952 i32.const 1 i32.const 1 call $~lib/builtins/abort @@ -23293,8 +30150,8 @@ i32.const 1073741820 i32.gt_u if - i32.const 1456 - i32.const 1504 + i32.const 1056 + i32.const 1104 i32.const 52 i32.const 43 call $~lib/builtins/abort @@ -23312,4 +30169,99 @@ global.set $~lib/memory/__stack_pointer local.get $0 ) + (func $~lib/rt/__newArray (param $0 i32) (param $1 i32) (result i32) + (local $2 i32) + (local $3 i32) + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.sub + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 3104 + i32.lt_s + if + i32.const 35904 + i32.const 35952 + i32.const 1 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.const 1 + call $~lib/rt/itcms/__new + local.set $2 + local.get $1 + if + local.get $2 + local.get $1 + i32.const 0 + memory.copy + end + local.get $2 + i32.store + i32.const 16 + local.get $0 + call $~lib/rt/itcms/__new + local.tee $0 + local.get $2 + i32.store + local.get $0 + local.get $2 + i32.const 0 + call $~lib/rt/itcms/__link + local.get $0 + local.get $2 + i32.store offset=4 + local.get $0 + i32.const 0 + i32.store offset=8 + local.get $0 + i32.const 0 + i32.store offset=12 + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $0 + ) + (func $~lib/object/Object#constructor (param $0 i32) (result i32) + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.sub + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 3104 + i32.lt_s + if + i32.const 35904 + i32.const 35952 + i32.const 1 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store + local.get $0 + i32.eqz + if + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.const 0 + call $~lib/rt/itcms/__new + local.tee $0 + i32.store + end + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $0 + ) ) From d746161950095922651a02b03924c31152d127d1 Mon Sep 17 00:00:00 2001 From: Pebrian Date: Sun, 24 Aug 2025 04:27:25 +0700 Subject: [PATCH 3/7] fix: update std/symbol --- tests/compiler/std/symbol.debug.wat | 2911 ++++++++++++++++------- tests/compiler/std/symbol.release.wat | 3127 +++++++++++++++---------- 2 files changed, 3961 insertions(+), 2077 deletions(-) diff --git a/tests/compiler/std/symbol.debug.wat b/tests/compiler/std/symbol.debug.wat index a6cb7d2d76..095ffd0c18 100644 --- a/tests/compiler/std/symbol.debug.wat +++ b/tests/compiler/std/symbol.debug.wat @@ -10,10 +10,14 @@ (type $8 (func (param i32 i32 i64) (result i32))) (type $9 (func (result i32))) (type $10 (func (param i32 i32 i32 i32 i32) (result i32))) + (type $11 (func (param i32 i32 i32 i32) (result i32))) (import "env" "abort" (func $~lib/builtins/abort (param i32 i32 i32 i32))) (global $~lib/symbol/nextId (mut i32) (i32.const 12)) (global $std/symbol/sym1 (mut i32) (i32.const 0)) (global $std/symbol/sym2 (mut i32) (i32.const 0)) + (global $~lib/shared/runtime/Runtime.Stub i32 (i32.const 0)) + (global $~lib/shared/runtime/Runtime.Minimal i32 (i32.const 1)) + (global $~lib/shared/runtime/Runtime.Incremental i32 (i32.const 2)) (global $~lib/rt/itcms/total (mut i32) (i32.const 0)) (global $~lib/rt/itcms/threshold (mut i32) (i32.const 0)) (global $~lib/rt/itcms/state (mut i32) (i32.const 0)) @@ -22,15 +26,13 @@ (global $~lib/rt/itcms/iter (mut i32) (i32.const 0)) (global $~lib/rt/itcms/toSpace (mut i32) (i32.const 0)) (global $~lib/rt/itcms/white (mut i32) (i32.const 0)) - (global $~lib/shared/runtime/Runtime.Stub i32 (i32.const 0)) - (global $~lib/shared/runtime/Runtime.Minimal i32 (i32.const 1)) - (global $~lib/shared/runtime/Runtime.Incremental i32 (i32.const 2)) (global $~lib/rt/itcms/fromSpace (mut i32) (i32.const 0)) (global $~lib/rt/tlsf/ROOT (mut i32) (i32.const 0)) (global $~lib/native/ASC_LOW_MEMORY_LIMIT i32 (i32.const 0)) (global $~lib/native/ASC_RUNTIME i32 (i32.const 2)) - (global $~lib/symbol/stringToId (mut i32) (i32.const 0)) (global $~lib/native/ASC_SHRINK_LEVEL i32 (i32.const 0)) + (global $~argumentsLength (mut i32) (i32.const 0)) + (global $~lib/symbol/stringToId (mut i32) (i32.const 0)) (global $~lib/symbol/idToString (mut i32) (i32.const 0)) (global $std/symbol/sym3 (mut i32) (i32.const 0)) (global $std/symbol/sym4 (mut i32) (i32.const 0)) @@ -42,46 +44,50 @@ (global $std/symbol/hasInstance (mut i32) (i32.const 0)) (global $~lib/symbol/_Symbol.isConcatSpreadable i32 (i32.const 2)) (global $std/symbol/isConcatSpreadable (mut i32) (i32.const 0)) - (global $~lib/rt/__rtti_base i32 (i32.const 1696)) - (global $~lib/memory/__data_end i32 (i32.const 1724)) - (global $~lib/memory/__stack_pointer (mut i32) (i32.const 34492)) - (global $~lib/memory/__heap_base i32 (i32.const 34492)) + (global $~lib/rt/__rtti_base i32 (i32.const 1936)) + (global $~lib/memory/__data_end i32 (i32.const 1984)) + (global $~lib/memory/__stack_pointer (mut i32) (i32.const 34752)) + (global $~lib/memory/__heap_base i32 (i32.const 34752)) (global $~started (mut i32) (i32.const 0)) (memory $0 1) (data $0 (i32.const 12) "\1c\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\06\00\00\001\002\003\00\00\00\00\00\00\00") (data $1 (i32.const 44) ",\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\1a\00\00\00s\00t\00d\00/\00s\00y\00m\00b\00o\00l\00.\00t\00s\00\00\00") - (data $2 (i32.const 92) "<\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00(\00\00\00A\00l\00l\00o\00c\00a\00t\00i\00o\00n\00 \00t\00o\00o\00 \00l\00a\00r\00g\00e\00\00\00\00\00") - (data $3 (i32.const 156) "<\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00 \00\00\00~\00l\00i\00b\00/\00r\00t\00/\00i\00t\00c\00m\00s\00.\00t\00s\00\00\00\00\00\00\00\00\00\00\00\00\00") - (data $4 (i32.const 224) "\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00") - (data $5 (i32.const 256) "\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00") - (data $6 (i32.const 284) "<\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00$\00\00\00I\00n\00d\00e\00x\00 \00o\00u\00t\00 \00o\00f\00 \00r\00a\00n\00g\00e\00\00\00\00\00\00\00\00\00") - (data $7 (i32.const 348) ",\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\14\00\00\00~\00l\00i\00b\00/\00r\00t\00.\00t\00s\00\00\00\00\00\00\00\00\00") - (data $8 (i32.const 400) "\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00") - (data $9 (i32.const 428) "<\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\1e\00\00\00~\00l\00i\00b\00/\00r\00t\00/\00t\00l\00s\00f\00.\00t\00s\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00") - (data $10 (i32.const 492) ",\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\1c\00\00\00I\00n\00v\00a\00l\00i\00d\00 \00l\00e\00n\00g\00t\00h\00") - (data $11 (i32.const 540) "<\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00&\00\00\00~\00l\00i\00b\00/\00a\00r\00r\00a\00y\00b\00u\00f\00f\00e\00r\00.\00t\00s\00\00\00\00\00\00\00") - (data $12 (i32.const 604) "<\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00$\00\00\00K\00e\00y\00 \00d\00o\00e\00s\00 \00n\00o\00t\00 \00e\00x\00i\00s\00t\00\00\00\00\00\00\00\00\00") - (data $13 (i32.const 668) ",\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\16\00\00\00~\00l\00i\00b\00/\00m\00a\00p\00.\00t\00s\00\00\00\00\00\00\00") - (data $14 (i32.const 716) "|\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00^\00\00\00U\00n\00e\00x\00p\00e\00c\00t\00e\00d\00 \00\'\00n\00u\00l\00l\00\'\00 \00(\00n\00o\00t\00 \00a\00s\00s\00i\00g\00n\00e\00d\00 \00o\00r\00 \00f\00a\00i\00l\00e\00d\00 \00c\00a\00s\00t\00)\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00") - (data $15 (i32.const 844) "\1c\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00") - (data $16 (i32.const 876) ",\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\16\00\00\00h\00a\00s\00I\00n\00s\00t\00a\00n\00c\00e\00\00\00\00\00\00\00") - (data $17 (i32.const 924) "<\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00$\00\00\00i\00s\00C\00o\00n\00c\00a\00t\00S\00p\00r\00e\00a\00d\00a\00b\00l\00e\00\00\00\00\00\00\00\00\00") - (data $18 (i32.const 988) ",\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\10\00\00\00i\00s\00R\00e\00g\00E\00x\00p\00\00\00\00\00\00\00\00\00\00\00\00\00") - (data $19 (i32.const 1036) "\1c\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\n\00\00\00m\00a\00t\00c\00h\00\00\00") - (data $20 (i32.const 1068) ",\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\0e\00\00\00r\00e\00p\00l\00a\00c\00e\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00") - (data $21 (i32.const 1116) "\1c\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\0c\00\00\00s\00e\00a\00r\00c\00h\00") - (data $22 (i32.const 1148) ",\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\0e\00\00\00s\00p\00e\00c\00i\00e\00s\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00") - (data $23 (i32.const 1196) "\1c\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\n\00\00\00s\00p\00l\00i\00t\00\00\00") - (data $24 (i32.const 1228) ",\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\16\00\00\00t\00o\00P\00r\00i\00m\00i\00t\00i\00v\00e\00\00\00\00\00\00\00") - (data $25 (i32.const 1276) ",\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\16\00\00\00t\00o\00S\00t\00r\00i\00n\00g\00T\00a\00g\00\00\00\00\00\00\00") - (data $26 (i32.const 1324) ",\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\16\00\00\00u\00n\00s\00c\00o\00p\00a\00b\00l\00e\00s\00\00\00\00\00\00\00") - (data $27 (i32.const 1372) ",\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\0e\00\00\00S\00y\00m\00b\00o\00l\00(\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00") - (data $28 (i32.const 1420) "\1c\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\02\00\00\00)\00\00\00\00\00\00\00\00\00\00\00") - (data $29 (i32.const 1452) ",\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\10\00\00\00S\00y\00m\00b\00o\00l\00(\00)\00\00\00\00\00\00\00\00\00\00\00\00\00") - (data $30 (i32.const 1500) ",\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\16\00\00\00S\00y\00m\00b\00o\00l\00(\001\002\003\00)\00\00\00\00\00\00\00") - (data $31 (i32.const 1548) "<\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00&\00\00\00S\00y\00m\00b\00o\00l\00(\00h\00a\00s\00I\00n\00s\00t\00a\00n\00c\00e\00)\00\00\00\00\00\00\00") - (data $32 (i32.const 1612) "L\00\00\00\00\00\00\00\00\00\00\00\02\00\00\004\00\00\00S\00y\00m\00b\00o\00l\00(\00i\00s\00C\00o\00n\00c\00a\00t\00S\00p\00r\00e\00a\00d\00a\00b\00l\00e\00)\00\00\00\00\00\00\00\00\00") - (data $33 (i32.const 1696) "\06\00\00\00 \00\00\00 \00\00\00 \00\00\00\00\00\00\00\10\01\82\00\10A\02\00") + (data $2 (i32.const 92) ",\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\1c\00\00\00I\00n\00v\00a\00l\00i\00d\00 \00l\00e\00n\00g\00t\00h\00") + (data $3 (i32.const 140) "<\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00&\00\00\00~\00l\00i\00b\00/\00a\00r\00r\00a\00y\00b\00u\00f\00f\00e\00r\00.\00t\00s\00\00\00\00\00\00\00") + (data $4 (i32.const 204) "<\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00(\00\00\00A\00l\00l\00o\00c\00a\00t\00i\00o\00n\00 \00t\00o\00o\00 \00l\00a\00r\00g\00e\00\00\00\00\00") + (data $5 (i32.const 268) "<\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00 \00\00\00~\00l\00i\00b\00/\00r\00t\00/\00i\00t\00c\00m\00s\00.\00t\00s\00\00\00\00\00\00\00\00\00\00\00\00\00") + (data $6 (i32.const 336) "\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00") + (data $7 (i32.const 368) "\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00") + (data $8 (i32.const 396) "<\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00$\00\00\00I\00n\00d\00e\00x\00 \00o\00u\00t\00 \00o\00f\00 \00r\00a\00n\00g\00e\00\00\00\00\00\00\00\00\00") + (data $9 (i32.const 460) ",\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\14\00\00\00~\00l\00i\00b\00/\00r\00t\00.\00t\00s\00\00\00\00\00\00\00\00\00") + (data $10 (i32.const 512) "\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00") + (data $11 (i32.const 540) "<\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\1e\00\00\00~\00l\00i\00b\00/\00r\00t\00/\00t\00l\00s\00f\00.\00t\00s\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00") + (data $12 (i32.const 604) ",\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\1a\00\00\00~\00l\00i\00b\00/\00a\00r\00r\00a\00y\00.\00t\00s\00\00\00") + (data $13 (i32.const 652) "|\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00^\00\00\00E\00l\00e\00m\00e\00n\00t\00 \00t\00y\00p\00e\00 \00m\00u\00s\00t\00 \00b\00e\00 \00n\00u\00l\00l\00a\00b\00l\00e\00 \00i\00f\00 \00a\00r\00r\00a\00y\00 \00i\00s\00 \00h\00o\00l\00e\00y\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00") + (data $14 (i32.const 780) "\1c\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00") + (data $15 (i32.const 812) "<\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00$\00\00\00K\00e\00y\00 \00d\00o\00e\00s\00 \00n\00o\00t\00 \00e\00x\00i\00s\00t\00\00\00\00\00\00\00\00\00") + (data $16 (i32.const 876) ",\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\16\00\00\00~\00l\00i\00b\00/\00m\00a\00p\00.\00t\00s\00\00\00\00\00\00\00") + (data $17 (i32.const 924) "\1c\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00") + (data $18 (i32.const 956) "|\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00^\00\00\00U\00n\00e\00x\00p\00e\00c\00t\00e\00d\00 \00\'\00n\00u\00l\00l\00\'\00 \00(\00n\00o\00t\00 \00a\00s\00s\00i\00g\00n\00e\00d\00 \00o\00r\00 \00f\00a\00i\00l\00e\00d\00 \00c\00a\00s\00t\00)\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00") + (data $19 (i32.const 1084) "\1c\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00") + (data $20 (i32.const 1116) ",\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\16\00\00\00h\00a\00s\00I\00n\00s\00t\00a\00n\00c\00e\00\00\00\00\00\00\00") + (data $21 (i32.const 1164) "<\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00$\00\00\00i\00s\00C\00o\00n\00c\00a\00t\00S\00p\00r\00e\00a\00d\00a\00b\00l\00e\00\00\00\00\00\00\00\00\00") + (data $22 (i32.const 1228) ",\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\10\00\00\00i\00s\00R\00e\00g\00E\00x\00p\00\00\00\00\00\00\00\00\00\00\00\00\00") + (data $23 (i32.const 1276) "\1c\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\n\00\00\00m\00a\00t\00c\00h\00\00\00") + (data $24 (i32.const 1308) ",\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\0e\00\00\00r\00e\00p\00l\00a\00c\00e\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00") + (data $25 (i32.const 1356) "\1c\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\0c\00\00\00s\00e\00a\00r\00c\00h\00") + (data $26 (i32.const 1388) ",\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\0e\00\00\00s\00p\00e\00c\00i\00e\00s\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00") + (data $27 (i32.const 1436) "\1c\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\n\00\00\00s\00p\00l\00i\00t\00\00\00") + (data $28 (i32.const 1468) ",\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\16\00\00\00t\00o\00P\00r\00i\00m\00i\00t\00i\00v\00e\00\00\00\00\00\00\00") + (data $29 (i32.const 1516) ",\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\16\00\00\00t\00o\00S\00t\00r\00i\00n\00g\00T\00a\00g\00\00\00\00\00\00\00") + (data $30 (i32.const 1564) ",\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\16\00\00\00u\00n\00s\00c\00o\00p\00a\00b\00l\00e\00s\00\00\00\00\00\00\00") + (data $31 (i32.const 1612) ",\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\0e\00\00\00S\00y\00m\00b\00o\00l\00(\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00") + (data $32 (i32.const 1660) "\1c\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\02\00\00\00)\00\00\00\00\00\00\00\00\00\00\00") + (data $33 (i32.const 1692) ",\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\10\00\00\00S\00y\00m\00b\00o\00l\00(\00)\00\00\00\00\00\00\00\00\00\00\00\00\00") + (data $34 (i32.const 1740) ",\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\16\00\00\00S\00y\00m\00b\00o\00l\00(\001\002\003\00)\00\00\00\00\00\00\00") + (data $35 (i32.const 1788) "<\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00&\00\00\00S\00y\00m\00b\00o\00l\00(\00h\00a\00s\00I\00n\00s\00t\00a\00n\00c\00e\00)\00\00\00\00\00\00\00") + (data $36 (i32.const 1852) "L\00\00\00\00\00\00\00\00\00\00\00\02\00\00\004\00\00\00S\00y\00m\00b\00o\00l\00(\00i\00s\00C\00o\00n\00c\00a\00t\00S\00p\00r\00e\00a\00d\00a\00b\00l\00e\00)\00\00\00\00\00\00\00\00\00") + (data $37 (i32.const 1936) "\0b\00\00\00 \00\00\00 \00\00\00 \00\00\00\00\00\00\00\10\01\82\00\00\00\00\00\02A\00\00\02\t\00\00\10A\02\00\00\00\00\00\02A\00\00") (table $0 1 1 funcref) (elem $0 (i32.const 1)) (export "memory" (memory $0)) @@ -104,6 +110,23 @@ local.get $id return ) + (func $"~lib/array/Array<~lib/map/KeyValue<~lib/string/String,usize>>#get:length_" (param $this i32) (result i32) + local.get $this + i32.load offset=12 + ) + (func $"~lib/map/Map<~lib/string/String,usize>#get:entriesCapacity" (param $this i32) (result i32) + local.get $this + i32.load offset=12 + ) + (func $"~lib/map/Map<~lib/string/String,usize>#set:bucketsMask" (param $this i32) (param $bucketsMask i32) + local.get $this + local.get $bucketsMask + i32.store offset=4 + ) + (func $"~lib/map/Map<~lib/string/String,usize>#get:bucketsMask" (param $this i32) (result i32) + local.get $this + i32.load offset=4 + ) (func $~lib/rt/itcms/Object#set:nextWithColor (param $this i32) (param $nextWithColor i32) local.get $this local.get $nextWithColor @@ -168,7 +191,7 @@ i32.eqz if i32.const 0 - i32.const 176 + i32.const 288 i32.const 160 i32.const 16 call $~lib/builtins/abort @@ -238,7 +261,7 @@ i32.eqz if i32.const 0 - i32.const 176 + i32.const 288 i32.const 128 i32.const 18 call $~lib/builtins/abort @@ -255,7 +278,7 @@ i32.eqz if i32.const 0 - i32.const 176 + i32.const 288 i32.const 132 i32.const 16 call $~lib/builtins/abort @@ -285,8 +308,8 @@ i32.load i32.gt_u if - i32.const 304 - i32.const 368 + i32.const 416 + i32.const 480 i32.const 21 i32.const 28 call $~lib/builtins/abort @@ -354,7 +377,7 @@ i32.eqz if (result i32) i32.const 0 - i32.const 176 + i32.const 288 i32.const 148 i32.const 30 call $~lib/builtins/abort @@ -506,7 +529,7 @@ i32.eqz if i32.const 0 - i32.const 448 + i32.const 560 i32.const 268 i32.const 14 call $~lib/builtins/abort @@ -526,7 +549,7 @@ i32.eqz if i32.const 0 - i32.const 448 + i32.const 560 i32.const 270 i32.const 14 call $~lib/builtins/abort @@ -589,7 +612,7 @@ i32.eqz if i32.const 0 - i32.const 448 + i32.const 560 i32.const 284 i32.const 14 call $~lib/builtins/abort @@ -742,7 +765,7 @@ i32.eqz if i32.const 0 - i32.const 448 + i32.const 560 i32.const 201 i32.const 14 call $~lib/builtins/abort @@ -759,7 +782,7 @@ i32.eqz if i32.const 0 - i32.const 448 + i32.const 560 i32.const 203 i32.const 14 call $~lib/builtins/abort @@ -848,7 +871,7 @@ i32.eqz if i32.const 0 - i32.const 448 + i32.const 560 i32.const 221 i32.const 16 call $~lib/builtins/abort @@ -891,7 +914,7 @@ i32.eqz if i32.const 0 - i32.const 448 + i32.const 560 i32.const 233 i32.const 14 call $~lib/builtins/abort @@ -909,7 +932,7 @@ i32.eqz if i32.const 0 - i32.const 448 + i32.const 560 i32.const 234 i32.const 14 call $~lib/builtins/abort @@ -977,7 +1000,7 @@ i32.eqz if i32.const 0 - i32.const 448 + i32.const 560 i32.const 251 i32.const 14 call $~lib/builtins/abort @@ -1094,7 +1117,7 @@ i32.eqz if i32.const 0 - i32.const 448 + i32.const 560 i32.const 382 i32.const 14 call $~lib/builtins/abort @@ -1140,7 +1163,7 @@ i32.eqz if i32.const 0 - i32.const 448 + i32.const 560 i32.const 389 i32.const 16 call $~lib/builtins/abort @@ -1172,7 +1195,7 @@ i32.eqz if i32.const 0 - i32.const 448 + i32.const 560 i32.const 402 i32.const 5 call $~lib/builtins/abort @@ -1416,7 +1439,7 @@ i32.eqz if i32.const 0 - i32.const 448 + i32.const 560 i32.const 562 i32.const 3 call $~lib/builtins/abort @@ -1636,7 +1659,7 @@ i32.eqz if i32.const 0 - i32.const 176 + i32.const 288 i32.const 229 i32.const 20 call $~lib/builtins/abort @@ -1744,8 +1767,8 @@ i32.const 1073741820 i32.gt_u if - i32.const 112 - i32.const 448 + i32.const 224 + i32.const 560 i32.const 461 i32.const 29 call $~lib/builtins/abort @@ -1847,7 +1870,7 @@ i32.eqz if i32.const 0 - i32.const 448 + i32.const 560 i32.const 334 i32.const 14 call $~lib/builtins/abort @@ -1918,7 +1941,7 @@ i32.eqz if i32.const 0 - i32.const 448 + i32.const 560 i32.const 347 i32.const 18 call $~lib/builtins/abort @@ -2075,7 +2098,7 @@ i32.eqz if i32.const 0 - i32.const 448 + i32.const 560 i32.const 361 i32.const 14 call $~lib/builtins/abort @@ -2190,7 +2213,7 @@ i32.eqz if i32.const 0 - i32.const 448 + i32.const 560 i32.const 499 i32.const 16 call $~lib/builtins/abort @@ -2210,7 +2233,7 @@ i32.eqz if i32.const 0 - i32.const 448 + i32.const 560 i32.const 501 i32.const 14 call $~lib/builtins/abort @@ -2258,8 +2281,8 @@ i32.const 1073741804 i32.ge_u if - i32.const 112 - i32.const 176 + i32.const 224 + i32.const 288 i32.const 261 i32.const 31 call $~lib/builtins/abort @@ -2304,6 +2327,54 @@ local.get $ptr return ) + (func $"~lib/map/Map<~lib/string/String,usize>#get:entries" (param $this i32) (result i32) + local.get $this + i32.load offset=8 + ) + (func $"~lib/map/Map<~lib/string/String,usize>#get:entriesOffset" (param $this i32) (result i32) + local.get $this + i32.load offset=16 + ) + (func $"~lib/map/MapEntry<~lib/string/String,usize>#get:taggedNext" (param $this i32) (result i32) + local.get $this + i32.load offset=8 + ) + (func $"~lib/map/MapEntry<~lib/string/String,usize>#get:key" (param $this i32) (result i32) + local.get $this + i32.load + ) + (func $"~lib/map/MapEntry<~lib/string/String,usize>#set:key" (param $this i32) (param $key i32) + local.get $this + local.get $key + i32.store + ) + (func $"~lib/map/MapEntry<~lib/string/String,usize>#get:value" (param $this i32) (result i32) + local.get $this + i32.load offset=4 + ) + (func $"~lib/map/MapEntry<~lib/string/String,usize>#set:value" (param $this i32) (param $value i32) + local.get $this + local.get $value + i32.store offset=4 + ) + (func $~lib/rt/common/OBJECT#get:rtSize (param $this i32) (result i32) + local.get $this + i32.load offset=16 + ) + (func $~lib/string/String#get:length (param $this i32) (result i32) + local.get $this + i32.const 20 + i32.sub + call $~lib/rt/common/OBJECT#get:rtSize + i32.const 1 + i32.shr_u + return + ) + (func $"~lib/map/MapEntry<~lib/string/String,usize>#set:taggedNext" (param $this i32) (param $taggedNext i32) + local.get $this + local.get $taggedNext + i32.store offset=8 + ) (func $~lib/rt/itcms/__link (param $parentPtr i32) (param $childPtr i32) (param $expectMultiple i32) (local $child i32) (local $parent i32) @@ -2319,7 +2390,7 @@ i32.eqz if i32.const 0 - i32.const 176 + i32.const 288 i32.const 295 i32.const 14 call $~lib/builtins/abort @@ -2381,11 +2452,6 @@ i32.const 0 call $~lib/rt/itcms/__link ) - (func $"~lib/map/Map<~lib/string/String,usize>#set:bucketsMask" (param $this i32) (param $bucketsMask i32) - local.get $this - local.get $bucketsMask - i32.store offset=4 - ) (func $"~lib/map/Map<~lib/string/String,usize>#set:entries" (param $this i32) (param $entries i32) local.get $this local.get $entries @@ -2400,42 +2466,28 @@ local.get $entriesCapacity i32.store offset=12 ) + (func $"~lib/map/Map<~lib/string/String,usize>#get:entriesCount" (param $this i32) (result i32) + local.get $this + i32.load offset=20 + ) (func $"~lib/map/Map<~lib/string/String,usize>#set:entriesOffset" (param $this i32) (param $entriesOffset i32) local.get $this local.get $entriesOffset i32.store offset=16 ) - (func $"~lib/map/Map<~lib/string/String,usize>#set:entriesCount" (param $this i32) (param $entriesCount i32) - local.get $this - local.get $entriesCount - i32.store offset=20 - ) - (func $~lib/rt/common/OBJECT#get:rtSize (param $this i32) (result i32) - local.get $this - i32.load offset=16 - ) - (func $~lib/string/String#get:length (param $this i32) (result i32) + (func $"~lib/array/Array<~lib/map/KeyValue<~lib/string/String,usize>>#get:dataStart" (param $this i32) (result i32) local.get $this - i32.const 20 - i32.sub - call $~lib/rt/common/OBJECT#get:rtSize - i32.const 1 - i32.shr_u - return + i32.load offset=4 ) - (func $"~lib/map/Map<~lib/string/String,usize>#get:buckets" (param $this i32) (result i32) + (func $"~lib/map/KeyValue<~lib/string/String,usize>#get:key" (param $this i32) (result i32) local.get $this i32.load ) - (func $"~lib/map/Map<~lib/string/String,usize>#get:bucketsMask" (param $this i32) (result i32) + (func $"~lib/map/KeyValue<~lib/string/String,usize>#get:value" (param $this i32) (result i32) local.get $this i32.load offset=4 ) - (func $"~lib/map/MapEntry<~lib/string/String,usize>#get:taggedNext" (param $this i32) (result i32) - local.get $this - i32.load offset=8 - ) - (func $"~lib/map/MapEntry<~lib/string/String,usize>#get:key" (param $this i32) (result i32) + (func $"~lib/map/Map<~lib/string/String,usize>#get:buckets" (param $this i32) (result i32) local.get $this i32.load ) @@ -2543,78 +2595,73 @@ i32.const 0 return ) - (func $"~lib/map/MapEntry<~lib/string/String,usize>#get:value" (param $this i32) (result i32) - local.get $this - i32.load offset=4 - ) - (func $"~lib/map/MapEntry<~lib/string/String,usize>#set:value" (param $this i32) (param $value i32) + (func $"~lib/map/Map<~lib/string/String,usize>#set:entriesCount" (param $this i32) (param $entriesCount i32) local.get $this - local.get $value - i32.store offset=4 + local.get $entriesCount + i32.store offset=20 ) - (func $"~lib/map/Map<~lib/string/String,usize>#get:entriesOffset" (param $this i32) (result i32) - local.get $this - i32.load offset=16 + (func $~lib/rt/__newBuffer (param $size i32) (param $id i32) (param $data i32) (result i32) + (local $buffer i32) + local.get $size + local.get $id + call $~lib/rt/itcms/__new + local.set $buffer + local.get $data + if + local.get $buffer + local.get $data + local.get $size + memory.copy + end + local.get $buffer + return ) - (func $"~lib/map/Map<~lib/string/String,usize>#get:entriesCapacity" (param $this i32) (result i32) + (func $"~lib/array/Array<~lib/map/KeyValue>#get:length_" (param $this i32) (result i32) local.get $this i32.load offset=12 ) - (func $"~lib/map/Map<~lib/string/String,usize>#get:entriesCount" (param $this i32) (result i32) + (func $"~lib/map/Map#get:entriesCapacity" (param $this i32) (result i32) local.get $this - i32.load offset=20 + i32.load offset=12 ) - (func $"~lib/map/Map<~lib/string/String,usize>#get:entries" (param $this i32) (result i32) + (func $"~lib/map/Map#set:bucketsMask" (param $this i32) (param $bucketsMask i32) local.get $this - i32.load offset=8 + local.get $bucketsMask + i32.store offset=4 ) - (func $"~lib/map/MapEntry<~lib/string/String,usize>#set:key" (param $this i32) (param $key i32) + (func $"~lib/map/Map#get:bucketsMask" (param $this i32) (result i32) local.get $this - local.get $key - i32.store + i32.load offset=4 ) - (func $"~lib/map/MapEntry<~lib/string/String,usize>#set:taggedNext" (param $this i32) (param $taggedNext i32) + (func $"~lib/map/Map#get:entries" (param $this i32) (result i32) local.get $this - local.get $taggedNext - i32.store offset=8 + i32.load offset=8 ) - (func $"~lib/map/Map#set:buckets" (param $this i32) (param $buckets i32) - local.get $this - local.get $buckets - i32.store + (func $"~lib/map/Map#get:entriesOffset" (param $this i32) (result i32) local.get $this - local.get $buckets - i32.const 0 - call $~lib/rt/itcms/__link + i32.load offset=16 ) - (func $"~lib/map/Map#set:bucketsMask" (param $this i32) (param $bucketsMask i32) + (func $"~lib/map/MapEntry#get:taggedNext" (param $this i32) (result i32) local.get $this - local.get $bucketsMask - i32.store offset=4 + i32.load offset=8 ) - (func $"~lib/map/Map#set:entries" (param $this i32) (param $entries i32) - local.get $this - local.get $entries - i32.store offset=8 + (func $"~lib/map/MapEntry#get:key" (param $this i32) (result i32) local.get $this - local.get $entries - i32.const 0 - call $~lib/rt/itcms/__link + i32.load ) - (func $"~lib/map/Map#set:entriesCapacity" (param $this i32) (param $entriesCapacity i32) + (func $"~lib/map/MapEntry#set:key" (param $this i32) (param $key i32) local.get $this - local.get $entriesCapacity - i32.store offset=12 + local.get $key + i32.store ) - (func $"~lib/map/Map#set:entriesOffset" (param $this i32) (param $entriesOffset i32) + (func $"~lib/map/MapEntry#get:value" (param $this i32) (result i32) local.get $this - local.get $entriesOffset - i32.store offset=16 + i32.load offset=4 ) - (func $"~lib/map/Map#set:entriesCount" (param $this i32) (param $entriesCount i32) + (func $"~lib/map/MapEntry#set:value" (param $this i32) (param $value i32) local.get $this - local.get $entriesCount - i32.store offset=20 + local.get $value + i32.store offset=4 ) (func $~lib/util/hash/HASH (param $key i32) (result i32) (local $key|1 i32) @@ -2684,56 +2731,63 @@ end return ) - (func $"~lib/map/Map#get:buckets" (param $this i32) (result i32) - local.get $this - i32.load - ) - (func $"~lib/map/Map#get:bucketsMask" (param $this i32) (result i32) + (func $"~lib/map/MapEntry#set:taggedNext" (param $this i32) (param $taggedNext i32) local.get $this - i32.load offset=4 + local.get $taggedNext + i32.store offset=8 ) - (func $"~lib/map/MapEntry#get:taggedNext" (param $this i32) (result i32) + (func $"~lib/map/Map#set:buckets" (param $this i32) (param $buckets i32) local.get $this - i32.load offset=8 - ) - (func $"~lib/map/MapEntry#get:key" (param $this i32) (result i32) + local.get $buckets + i32.store local.get $this - i32.load + local.get $buckets + i32.const 0 + call $~lib/rt/itcms/__link ) - (func $"~lib/map/MapEntry#set:value" (param $this i32) (param $value i32) + (func $"~lib/map/Map#set:entries" (param $this i32) (param $entries i32) local.get $this - local.get $value - i32.store offset=4 - ) - (func $"~lib/map/Map#get:entriesOffset" (param $this i32) (result i32) + local.get $entries + i32.store offset=8 local.get $this - i32.load offset=16 + local.get $entries + i32.const 0 + call $~lib/rt/itcms/__link ) - (func $"~lib/map/Map#get:entriesCapacity" (param $this i32) (result i32) + (func $"~lib/map/Map#set:entriesCapacity" (param $this i32) (param $entriesCapacity i32) local.get $this - i32.load offset=12 + local.get $entriesCapacity + i32.store offset=12 ) (func $"~lib/map/Map#get:entriesCount" (param $this i32) (result i32) local.get $this i32.load offset=20 ) - (func $"~lib/map/Map#get:entries" (param $this i32) (result i32) + (func $"~lib/map/Map#set:entriesOffset" (param $this i32) (param $entriesOffset i32) local.get $this - i32.load offset=8 + local.get $entriesOffset + i32.store offset=16 ) - (func $"~lib/map/MapEntry#set:key" (param $this i32) (param $key i32) + (func $"~lib/array/Array<~lib/map/KeyValue>#get:dataStart" (param $this i32) (result i32) local.get $this - local.get $key - i32.store + i32.load offset=4 ) - (func $"~lib/map/MapEntry#get:value" (param $this i32) (result i32) + (func $"~lib/map/KeyValue#get:key" (param $this i32) (result i32) + local.get $this + i32.load + ) + (func $"~lib/map/KeyValue#get:value" (param $this i32) (result i32) local.get $this i32.load offset=4 ) - (func $"~lib/map/MapEntry#set:taggedNext" (param $this i32) (param $taggedNext i32) + (func $"~lib/map/Map#get:buckets" (param $this i32) (result i32) local.get $this - local.get $taggedNext - i32.store offset=8 + i32.load + ) + (func $"~lib/map/Map#set:entriesCount" (param $this i32) (param $entriesCount i32) + local.get $this + local.get $entriesCount + i32.store offset=20 ) (func $~lib/rt/__visit_globals (param $0 i32) (local $1 i32) @@ -2779,16 +2833,19 @@ local.get $0 call $~lib/rt/itcms/__visit end - i32.const 304 + i32.const 416 local.get $0 call $~lib/rt/itcms/__visit - i32.const 512 + i32.const 112 local.get $0 call $~lib/rt/itcms/__visit - i32.const 624 + i32.const 672 local.get $0 call $~lib/rt/itcms/__visit - i32.const 112 + i32.const 832 + local.get $0 + call $~lib/rt/itcms/__visit + i32.const 224 local.get $0 call $~lib/rt/itcms/__visit ) @@ -2812,6 +2869,40 @@ local.get $1 call $"~lib/map/Map<~lib/string/String,usize>#__visit" ) + (func $"~lib/map/KeyValue<~lib/string/String,usize>~visit" (param $0 i32) (param $1 i32) + (local $2 i32) + local.get $0 + local.get $1 + call $~lib/object/Object~visit + local.get $0 + i32.load + local.get $1 + call $~lib/rt/itcms/__visit + ) + (func $"~lib/array/Array<~lib/map/KeyValue<~lib/string/String,usize>>#get:buffer" (param $this i32) (result i32) + local.get $this + i32.load + ) + (func $"~lib/array/Array<~lib/map/KeyValue<~lib/string/String,usize>>~visit" (param $0 i32) (param $1 i32) + local.get $0 + local.get $1 + call $~lib/object/Object~visit + local.get $0 + local.get $1 + call $"~lib/array/Array<~lib/map/KeyValue<~lib/string/String,usize>>#__visit" + ) + (func $~lib/array/Array#get:buffer (param $this i32) (result i32) + local.get $this + i32.load + ) + (func $~lib/array/Array~visit (param $0 i32) (param $1 i32) + local.get $0 + local.get $1 + call $~lib/object/Object~visit + local.get $0 + local.get $1 + call $~lib/array/Array#__visit + ) (func $"~lib/map/Map~visit" (param $0 i32) (param $1 i32) local.get $0 local.get $1 @@ -2820,39 +2911,91 @@ local.get $1 call $"~lib/map/Map#__visit" ) + (func $"~lib/map/KeyValue~visit" (param $0 i32) (param $1 i32) + (local $2 i32) + local.get $0 + local.get $1 + call $~lib/object/Object~visit + local.get $0 + i32.load offset=4 + local.get $1 + call $~lib/rt/itcms/__visit + ) + (func $"~lib/array/Array<~lib/map/KeyValue>#get:buffer" (param $this i32) (result i32) + local.get $this + i32.load + ) + (func $"~lib/array/Array<~lib/map/KeyValue>~visit" (param $0 i32) (param $1 i32) + local.get $0 + local.get $1 + call $~lib/object/Object~visit + local.get $0 + local.get $1 + call $"~lib/array/Array<~lib/map/KeyValue>#__visit" + ) (func $~lib/rt/__visit_members (param $0 i32) (param $1 i32) block $invalid - block $"~lib/map/Map" - block $"~lib/map/Map<~lib/string/String,usize>" - block $~lib/arraybuffer/ArrayBufferView - block $~lib/string/String - block $~lib/arraybuffer/ArrayBuffer - block $~lib/object/Object + block $"~lib/array/Array<~lib/map/KeyValue>" + block $"~lib/map/KeyValue" + block $"~lib/map/Map" + block $~lib/array/Array + block $"~lib/array/Array<~lib/map/KeyValue<~lib/string/String,usize>>" + block $"~lib/map/KeyValue<~lib/string/String,usize>" + block $"~lib/map/Map<~lib/string/String,usize>" + block $~lib/arraybuffer/ArrayBufferView + block $~lib/string/String + block $~lib/arraybuffer/ArrayBuffer + block $~lib/object/Object + local.get $0 + i32.const 8 + i32.sub + i32.load + br_table $~lib/object/Object $~lib/arraybuffer/ArrayBuffer $~lib/string/String $~lib/arraybuffer/ArrayBufferView $"~lib/map/Map<~lib/string/String,usize>" $"~lib/map/KeyValue<~lib/string/String,usize>" $"~lib/array/Array<~lib/map/KeyValue<~lib/string/String,usize>>" $~lib/array/Array $"~lib/map/Map" $"~lib/map/KeyValue" $"~lib/array/Array<~lib/map/KeyValue>" $invalid + end + return + end + return + end + return + end + local.get $0 + local.get $1 + call $~lib/arraybuffer/ArrayBufferView~visit + return + end local.get $0 - i32.const 8 - i32.sub - i32.load - br_table $~lib/object/Object $~lib/arraybuffer/ArrayBuffer $~lib/string/String $~lib/arraybuffer/ArrayBufferView $"~lib/map/Map<~lib/string/String,usize>" $"~lib/map/Map" $invalid + local.get $1 + call $"~lib/map/Map<~lib/string/String,usize>~visit" + return end + local.get $0 + local.get $1 + call $"~lib/map/KeyValue<~lib/string/String,usize>~visit" return end + local.get $0 + local.get $1 + call $"~lib/array/Array<~lib/map/KeyValue<~lib/string/String,usize>>~visit" return end + local.get $0 + local.get $1 + call $~lib/array/Array~visit return end local.get $0 local.get $1 - call $~lib/arraybuffer/ArrayBufferView~visit + call $"~lib/map/Map~visit" return end local.get $0 local.get $1 - call $"~lib/map/Map<~lib/string/String,usize>~visit" + call $"~lib/map/KeyValue~visit" return end local.get $0 local.get $1 - call $"~lib/map/Map~visit" + call $"~lib/array/Array<~lib/map/KeyValue>~visit" return end unreachable @@ -2871,115 +3014,38 @@ global.get $~lib/memory/__data_end i32.lt_s if - i32.const 34512 - i32.const 34560 + i32.const 34784 + i32.const 34832 i32.const 1 i32.const 1 call $~lib/builtins/abort unreachable end ) - (func $"~lib/map/Map<~lib/string/String,usize>#constructor" (param $this i32) (result i32) + (func $"~lib/array/Array<~lib/map/KeyValue<~lib/string/String,usize>>#get:length" (param $this i32) (result i32) (local $1 i32) global.get $~lib/memory/__stack_pointer - i32.const 12 + i32.const 4 i32.sub global.set $~lib/memory/__stack_pointer call $~stack_check global.get $~lib/memory/__stack_pointer - i64.const 0 - i64.store - global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.store offset=8 - local.get $this - i32.eqz - if - global.get $~lib/memory/__stack_pointer - i32.const 24 - i32.const 4 - call $~lib/rt/itcms/__new - local.tee $this - i32.store - end - local.get $this - local.set $1 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - local.get $1 i32.const 0 - i32.const 4 - i32.const 4 - i32.mul - call $~lib/arraybuffer/ArrayBuffer#constructor - local.set $1 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=8 - local.get $1 - call $"~lib/map/Map<~lib/string/String,usize>#set:buckets" - local.get $this - local.set $1 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - local.get $1 - i32.const 4 - i32.const 1 - i32.sub - call $"~lib/map/Map<~lib/string/String,usize>#set:bucketsMask" + i32.store local.get $this local.set $1 global.get $~lib/memory/__stack_pointer local.get $1 - i32.store offset=4 - local.get $1 - i32.const 0 - i32.const 4 - block $"~lib/map/ENTRY_SIZE<~lib/string/String,usize>|inlined.0" (result i32) - i32.const 12 - br $"~lib/map/ENTRY_SIZE<~lib/string/String,usize>|inlined.0" - end - i32.mul - call $~lib/arraybuffer/ArrayBuffer#constructor - local.set $1 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=8 + i32.store local.get $1 - call $"~lib/map/Map<~lib/string/String,usize>#set:entries" - local.get $this + call $"~lib/array/Array<~lib/map/KeyValue<~lib/string/String,usize>>#get:length_" local.set $1 global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - local.get $1 i32.const 4 - call $"~lib/map/Map<~lib/string/String,usize>#set:entriesCapacity" - local.get $this - local.set $1 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - local.get $1 - i32.const 0 - call $"~lib/map/Map<~lib/string/String,usize>#set:entriesOffset" - local.get $this - local.set $1 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - local.get $1 - i32.const 0 - call $"~lib/map/Map<~lib/string/String,usize>#set:entriesCount" - local.get $this - local.set $1 - global.get $~lib/memory/__stack_pointer - i32.const 12 i32.add global.set $~lib/memory/__stack_pointer local.get $1 + return ) (func $~lib/util/hash/HASH<~lib/string/String> (param $key i32) (result i32) (local $key|1 i32) @@ -3270,336 +3336,53 @@ local.get $19 return ) - (func $~lib/string/String.__eq (param $left i32) (param $right i32) (result i32) - (local $leftLength i32) - (local $3 i32) + (func $"~lib/map/Map<~lib/string/String,usize>#rehash" (param $this i32) (param $newBucketsMask i32) + (local $newBucketsCapacity i32) + (local $newBuckets i32) + (local $newEntriesCapacity i32) + (local $newEntries i32) + (local $oldPtr i32) + (local $oldEnd i32) + (local $newPtr i32) + (local $oldEntry i32) + (local $newEntry i32) + (local $oldEntryKey i32) + (local $newBucketIndex i32) + (local $newBucketPtrBase i32) + (local $14 i32) global.get $~lib/memory/__stack_pointer - i32.const 8 + i32.const 20 i32.sub global.set $~lib/memory/__stack_pointer call $~stack_check global.get $~lib/memory/__stack_pointer - i64.const 0 - i64.store - local.get $left - local.get $right - i32.eq - if - i32.const 1 - local.set $3 - global.get $~lib/memory/__stack_pointer - i32.const 8 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $3 - return - end - local.get $left i32.const 0 - i32.eq - if (result i32) - i32.const 1 - else - local.get $right - i32.const 0 - i32.eq - end - if - i32.const 0 - local.set $3 - global.get $~lib/memory/__stack_pointer - i32.const 8 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $3 - return - end - local.get $left - local.set $3 - global.get $~lib/memory/__stack_pointer - local.get $3 - i32.store - local.get $3 - call $~lib/string/String#get:length - local.set $leftLength - local.get $leftLength - local.get $right - local.set $3 + i32.const 20 + memory.fill + local.get $newBucketsMask + i32.const 1 + i32.add + local.set $newBucketsCapacity global.get $~lib/memory/__stack_pointer - local.get $3 + i32.const 0 + local.get $newBucketsCapacity + i32.const 4 + i32.mul + call $~lib/arraybuffer/ArrayBuffer#constructor + local.tee $newBuckets i32.store - local.get $3 - call $~lib/string/String#get:length - i32.ne - if - i32.const 0 - local.set $3 - global.get $~lib/memory/__stack_pointer - i32.const 8 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $3 - return - end - local.get $left - local.set $3 - global.get $~lib/memory/__stack_pointer - local.get $3 - i32.store - local.get $3 - i32.const 0 - local.get $right - local.set $3 - global.get $~lib/memory/__stack_pointer - local.get $3 - i32.store offset=4 - local.get $3 - i32.const 0 - local.get $leftLength - call $~lib/util/string/compareImpl - i32.eqz - local.set $3 - global.get $~lib/memory/__stack_pointer - i32.const 8 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $3 - return - ) - (func $"~lib/map/Map<~lib/string/String,usize>#find" (param $this i32) (param $key i32) (param $hashCode i32) (result i32) - (local $entry i32) - (local $taggedNext i32) - (local $5 i32) - global.get $~lib/memory/__stack_pointer - i32.const 8 - i32.sub - global.set $~lib/memory/__stack_pointer - call $~stack_check - global.get $~lib/memory/__stack_pointer - i64.const 0 - i64.store - local.get $this - local.set $5 - global.get $~lib/memory/__stack_pointer - local.get $5 - i32.store - local.get $5 - call $"~lib/map/Map<~lib/string/String,usize>#get:buckets" - local.get $hashCode - local.get $this - local.set $5 - global.get $~lib/memory/__stack_pointer - local.get $5 - i32.store - local.get $5 - call $"~lib/map/Map<~lib/string/String,usize>#get:bucketsMask" - i32.and - i32.const 4 - i32.mul - i32.add - i32.load - local.set $entry - loop $while-continue|0 - local.get $entry - if - local.get $entry - call $"~lib/map/MapEntry<~lib/string/String,usize>#get:taggedNext" - local.set $taggedNext - local.get $taggedNext - i32.const 1 - i32.and - i32.eqz - if (result i32) - local.get $entry - call $"~lib/map/MapEntry<~lib/string/String,usize>#get:key" - local.set $5 - global.get $~lib/memory/__stack_pointer - local.get $5 - i32.store - local.get $5 - local.get $key - local.set $5 - global.get $~lib/memory/__stack_pointer - local.get $5 - i32.store offset=4 - local.get $5 - call $~lib/string/String.__eq - else - i32.const 0 - end - if - local.get $entry - local.set $5 - global.get $~lib/memory/__stack_pointer - i32.const 8 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $5 - return - end - local.get $taggedNext - i32.const 1 - i32.const -1 - i32.xor - i32.and - local.set $entry - br $while-continue|0 - end - end - i32.const 0 - local.set $5 - global.get $~lib/memory/__stack_pointer - i32.const 8 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $5 - return - ) - (func $"~lib/map/Map<~lib/string/String,usize>#has" (param $this i32) (param $key i32) (result i32) - (local $2 i32) - global.get $~lib/memory/__stack_pointer - i32.const 12 - i32.sub - global.set $~lib/memory/__stack_pointer - call $~stack_check - global.get $~lib/memory/__stack_pointer - i64.const 0 - i64.store - global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.store offset=8 - local.get $this - local.set $2 - global.get $~lib/memory/__stack_pointer - local.get $2 - i32.store - local.get $2 - local.get $key - local.set $2 - global.get $~lib/memory/__stack_pointer - local.get $2 - i32.store offset=4 - local.get $2 - local.get $key - local.set $2 - global.get $~lib/memory/__stack_pointer - local.get $2 - i32.store offset=8 - local.get $2 - call $~lib/util/hash/HASH<~lib/string/String> - call $"~lib/map/Map<~lib/string/String,usize>#find" - i32.const 0 - i32.ne - local.set $2 - global.get $~lib/memory/__stack_pointer - i32.const 12 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $2 - return - ) - (func $"~lib/map/Map<~lib/string/String,usize>#get" (param $this i32) (param $key i32) (result i32) - (local $entry i32) - (local $3 i32) - global.get $~lib/memory/__stack_pointer - i32.const 12 - i32.sub - global.set $~lib/memory/__stack_pointer - call $~stack_check - global.get $~lib/memory/__stack_pointer - i64.const 0 - i64.store - global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.store offset=8 - local.get $this - local.set $3 - global.get $~lib/memory/__stack_pointer - local.get $3 - i32.store - local.get $3 - local.get $key - local.set $3 - global.get $~lib/memory/__stack_pointer - local.get $3 - i32.store offset=4 - local.get $3 - local.get $key - local.set $3 - global.get $~lib/memory/__stack_pointer - local.get $3 - i32.store offset=8 - local.get $3 - call $~lib/util/hash/HASH<~lib/string/String> - call $"~lib/map/Map<~lib/string/String,usize>#find" - local.set $entry - local.get $entry - i32.eqz - if - i32.const 624 - i32.const 688 - i32.const 105 - i32.const 17 - call $~lib/builtins/abort - unreachable - end - local.get $entry - call $"~lib/map/MapEntry<~lib/string/String,usize>#get:value" - local.set $3 - global.get $~lib/memory/__stack_pointer - i32.const 12 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $3 - return - ) - (func $"~lib/map/Map<~lib/string/String,usize>#rehash" (param $this i32) (param $newBucketsMask i32) - (local $newBucketsCapacity i32) - (local $newBuckets i32) - (local $newEntriesCapacity i32) - (local $newEntries i32) - (local $oldPtr i32) - (local $oldEnd i32) - (local $newPtr i32) - (local $oldEntry i32) - (local $newEntry i32) - (local $oldEntryKey i32) - (local $newBucketIndex i32) - (local $newBucketPtrBase i32) - (local $14 i32) - global.get $~lib/memory/__stack_pointer - i32.const 20 - i32.sub - global.set $~lib/memory/__stack_pointer - call $~stack_check - global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.const 20 - memory.fill - local.get $newBucketsMask - i32.const 1 - i32.add - local.set $newBucketsCapacity - global.get $~lib/memory/__stack_pointer - i32.const 0 - local.get $newBucketsCapacity - i32.const 4 - i32.mul - call $~lib/arraybuffer/ArrayBuffer#constructor - local.tee $newBuckets - i32.store - local.get $newBucketsCapacity - i32.const 8 - i32.mul - i32.const 3 - i32.div_s - local.set $newEntriesCapacity + local.get $newBucketsCapacity + i32.const 8 + i32.mul + i32.const 3 + i32.div_s + local.set $newEntriesCapacity global.get $~lib/memory/__stack_pointer i32.const 0 local.get $newEntriesCapacity - block $"~lib/map/ENTRY_SIZE<~lib/string/String,usize>|inlined.1" (result i32) + block $"~lib/map/ENTRY_SIZE<~lib/string/String,usize>|inlined.0" (result i32) i32.const 12 - br $"~lib/map/ENTRY_SIZE<~lib/string/String,usize>|inlined.1" + br $"~lib/map/ENTRY_SIZE<~lib/string/String,usize>|inlined.0" end i32.mul call $~lib/arraybuffer/ArrayBuffer#constructor @@ -3621,9 +3404,9 @@ i32.store offset=8 local.get $14 call $"~lib/map/Map<~lib/string/String,usize>#get:entriesOffset" - block $"~lib/map/ENTRY_SIZE<~lib/string/String,usize>|inlined.2" (result i32) + block $"~lib/map/ENTRY_SIZE<~lib/string/String,usize>|inlined.1" (result i32) i32.const 12 - br $"~lib/map/ENTRY_SIZE<~lib/string/String,usize>|inlined.2" + br $"~lib/map/ENTRY_SIZE<~lib/string/String,usize>|inlined.1" end i32.mul i32.add @@ -3686,17 +3469,17 @@ local.get $newPtr i32.store local.get $newPtr - block $"~lib/map/ENTRY_SIZE<~lib/string/String,usize>|inlined.3" (result i32) + block $"~lib/map/ENTRY_SIZE<~lib/string/String,usize>|inlined.2" (result i32) i32.const 12 - br $"~lib/map/ENTRY_SIZE<~lib/string/String,usize>|inlined.3" + br $"~lib/map/ENTRY_SIZE<~lib/string/String,usize>|inlined.2" end i32.add local.set $newPtr end local.get $oldPtr - block $"~lib/map/ENTRY_SIZE<~lib/string/String,usize>|inlined.4" (result i32) + block $"~lib/map/ENTRY_SIZE<~lib/string/String,usize>|inlined.3" (result i32) i32.const 12 - br $"~lib/map/ENTRY_SIZE<~lib/string/String,usize>|inlined.4" + br $"~lib/map/ENTRY_SIZE<~lib/string/String,usize>|inlined.3" end i32.add local.set $oldPtr @@ -3764,13 +3547,750 @@ i32.add global.set $~lib/memory/__stack_pointer ) - (func $"~lib/map/Map<~lib/string/String,usize>#set" (param $this i32) (param $key i32) (param $value i32) (result i32) - (local $hashCode i32) - (local $entry i32) - (local $entries i32) - (local $6 i32) - (local $bucketPtrBase i32) - (local $8 i32) + (func $"~lib/array/Array<~lib/map/KeyValue<~lib/string/String,usize>>#__get" (param $this i32) (param $index i32) (result i32) + (local $value i32) + (local $3 i32) + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.sub + global.set $~lib/memory/__stack_pointer + call $~stack_check + global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store + local.get $index + local.get $this + local.set $3 + global.get $~lib/memory/__stack_pointer + local.get $3 + i32.store + local.get $3 + call $"~lib/array/Array<~lib/map/KeyValue<~lib/string/String,usize>>#get:length_" + i32.ge_u + if + i32.const 416 + i32.const 624 + i32.const 114 + i32.const 42 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + local.get $this + local.set $3 + global.get $~lib/memory/__stack_pointer + local.get $3 + i32.store + local.get $3 + call $"~lib/array/Array<~lib/map/KeyValue<~lib/string/String,usize>>#get:dataStart" + local.get $index + i32.const 2 + i32.shl + i32.add + i32.load + local.tee $value + i32.store offset=4 + i32.const 1 + drop + i32.const 0 + i32.eqz + drop + local.get $value + i32.eqz + if + i32.const 672 + i32.const 624 + i32.const 118 + i32.const 40 + call $~lib/builtins/abort + unreachable + end + local.get $value + local.set $3 + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $3 + return + ) + (func $~lib/string/String.__eq (param $left i32) (param $right i32) (result i32) + (local $leftLength i32) + (local $3 i32) + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.sub + global.set $~lib/memory/__stack_pointer + call $~stack_check + global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store + local.get $left + local.get $right + i32.eq + if + i32.const 1 + local.set $3 + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $3 + return + end + local.get $left + i32.const 0 + i32.eq + if (result i32) + i32.const 1 + else + local.get $right + i32.const 0 + i32.eq + end + if + i32.const 0 + local.set $3 + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $3 + return + end + local.get $left + local.set $3 + global.get $~lib/memory/__stack_pointer + local.get $3 + i32.store + local.get $3 + call $~lib/string/String#get:length + local.set $leftLength + local.get $leftLength + local.get $right + local.set $3 + global.get $~lib/memory/__stack_pointer + local.get $3 + i32.store + local.get $3 + call $~lib/string/String#get:length + i32.ne + if + i32.const 0 + local.set $3 + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $3 + return + end + local.get $left + local.set $3 + global.get $~lib/memory/__stack_pointer + local.get $3 + i32.store + local.get $3 + i32.const 0 + local.get $right + local.set $3 + global.get $~lib/memory/__stack_pointer + local.get $3 + i32.store offset=4 + local.get $3 + i32.const 0 + local.get $leftLength + call $~lib/util/string/compareImpl + i32.eqz + local.set $3 + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $3 + return + ) + (func $"~lib/map/Map<~lib/string/String,usize>#find" (param $this i32) (param $key i32) (param $hashCode i32) (result i32) + (local $entry i32) + (local $taggedNext i32) + (local $5 i32) + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.sub + global.set $~lib/memory/__stack_pointer + call $~stack_check + global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store + local.get $this + local.set $5 + global.get $~lib/memory/__stack_pointer + local.get $5 + i32.store + local.get $5 + call $"~lib/map/Map<~lib/string/String,usize>#get:buckets" + local.get $hashCode + local.get $this + local.set $5 + global.get $~lib/memory/__stack_pointer + local.get $5 + i32.store + local.get $5 + call $"~lib/map/Map<~lib/string/String,usize>#get:bucketsMask" + i32.and + i32.const 4 + i32.mul + i32.add + i32.load + local.set $entry + loop $while-continue|0 + local.get $entry + if + local.get $entry + call $"~lib/map/MapEntry<~lib/string/String,usize>#get:taggedNext" + local.set $taggedNext + local.get $taggedNext + i32.const 1 + i32.and + i32.eqz + if (result i32) + local.get $entry + call $"~lib/map/MapEntry<~lib/string/String,usize>#get:key" + local.set $5 + global.get $~lib/memory/__stack_pointer + local.get $5 + i32.store + local.get $5 + local.get $key + local.set $5 + global.get $~lib/memory/__stack_pointer + local.get $5 + i32.store offset=4 + local.get $5 + call $~lib/string/String.__eq + else + i32.const 0 + end + if + local.get $entry + local.set $5 + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $5 + return + end + local.get $taggedNext + i32.const 1 + i32.const -1 + i32.xor + i32.and + local.set $entry + br $while-continue|0 + end + end + i32.const 0 + local.set $5 + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $5 + return + ) + (func $"~lib/map/Map<~lib/string/String,usize>#constructor" (param $this i32) (param $initialEntries i32) (result i32) + (local $entriesLength i32) + (local $i i32) + (local $key i32) + (local $value i32) + (local $hashCode i32) + (local $entry i32) + (local $entries i32) + (local $9 i32) + (local $entry|10 i32) + (local $bucketPtrBase i32) + (local $12 i32) + global.get $~lib/memory/__stack_pointer + i32.const 20 + i32.sub + global.set $~lib/memory/__stack_pointer + call $~stack_check + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.const 20 + memory.fill + local.get $this + i32.eqz + if + global.get $~lib/memory/__stack_pointer + i32.const 24 + i32.const 4 + call $~lib/rt/itcms/__new + local.tee $this + i32.store + end + local.get $this + local.set $12 + global.get $~lib/memory/__stack_pointer + local.get $12 + i32.store offset=4 + local.get $12 + i32.const 0 + i32.const 4 + i32.const 4 + i32.mul + call $~lib/arraybuffer/ArrayBuffer#constructor + local.set $12 + global.get $~lib/memory/__stack_pointer + local.get $12 + i32.store offset=8 + local.get $12 + call $"~lib/map/Map<~lib/string/String,usize>#set:buckets" + local.get $this + local.set $12 + global.get $~lib/memory/__stack_pointer + local.get $12 + i32.store offset=4 + local.get $12 + i32.const 4 + i32.const 1 + i32.sub + call $"~lib/map/Map<~lib/string/String,usize>#set:bucketsMask" + local.get $this + local.set $12 + global.get $~lib/memory/__stack_pointer + local.get $12 + i32.store offset=4 + local.get $12 + i32.const 0 + i32.const 4 + block $"~lib/map/ENTRY_SIZE<~lib/string/String,usize>|inlined.5" (result i32) + i32.const 12 + br $"~lib/map/ENTRY_SIZE<~lib/string/String,usize>|inlined.5" + end + i32.mul + call $~lib/arraybuffer/ArrayBuffer#constructor + local.set $12 + global.get $~lib/memory/__stack_pointer + local.get $12 + i32.store offset=8 + local.get $12 + call $"~lib/map/Map<~lib/string/String,usize>#set:entries" + local.get $this + local.set $12 + global.get $~lib/memory/__stack_pointer + local.get $12 + i32.store offset=4 + local.get $12 + i32.const 4 + call $"~lib/map/Map<~lib/string/String,usize>#set:entriesCapacity" + local.get $this + local.set $12 + global.get $~lib/memory/__stack_pointer + local.get $12 + i32.store offset=4 + local.get $12 + i32.const 0 + call $"~lib/map/Map<~lib/string/String,usize>#set:entriesOffset" + local.get $this + local.set $12 + global.get $~lib/memory/__stack_pointer + local.get $12 + i32.store offset=4 + local.get $12 + i32.const 0 + call $"~lib/map/Map<~lib/string/String,usize>#set:entriesCount" + local.get $initialEntries + local.set $12 + global.get $~lib/memory/__stack_pointer + local.get $12 + i32.store offset=4 + local.get $12 + call $"~lib/array/Array<~lib/map/KeyValue<~lib/string/String,usize>>#get:length" + local.set $entriesLength + local.get $entriesLength + i32.const 0 + i32.gt_s + if + local.get $entriesLength + local.get $this + local.set $12 + global.get $~lib/memory/__stack_pointer + local.get $12 + i32.store offset=4 + local.get $12 + call $"~lib/map/Map<~lib/string/String,usize>#get:entriesCapacity" + i32.ge_s + if + local.get $this + local.set $12 + global.get $~lib/memory/__stack_pointer + local.get $12 + i32.store offset=4 + local.get $12 + local.get $entriesLength + call $"~lib/map/Map<~lib/string/String,usize>#set:bucketsMask" + end + local.get $this + local.set $12 + global.get $~lib/memory/__stack_pointer + local.get $12 + i32.store offset=4 + local.get $12 + local.get $this + local.set $12 + global.get $~lib/memory/__stack_pointer + local.get $12 + i32.store offset=8 + local.get $12 + call $"~lib/map/Map<~lib/string/String,usize>#get:bucketsMask" + i32.const 1 + i32.shl + i32.const 1 + i32.or + call $"~lib/map/Map<~lib/string/String,usize>#rehash" + i32.const 0 + local.set $i + loop $for-loop|0 + local.get $i + local.get $entriesLength + i32.lt_s + if + global.get $~lib/memory/__stack_pointer + local.get $initialEntries + local.set $12 + global.get $~lib/memory/__stack_pointer + local.get $12 + i32.store offset=8 + local.get $12 + local.get $i + call $"~lib/array/Array<~lib/map/KeyValue<~lib/string/String,usize>>#__get" + local.set $12 + global.get $~lib/memory/__stack_pointer + local.get $12 + i32.store offset=4 + local.get $12 + call $"~lib/map/KeyValue<~lib/string/String,usize>#get:key" + local.tee $key + i32.store offset=12 + local.get $initialEntries + local.set $12 + global.get $~lib/memory/__stack_pointer + local.get $12 + i32.store offset=8 + local.get $12 + local.get $i + call $"~lib/array/Array<~lib/map/KeyValue<~lib/string/String,usize>>#__get" + local.set $12 + global.get $~lib/memory/__stack_pointer + local.get $12 + i32.store offset=4 + local.get $12 + call $"~lib/map/KeyValue<~lib/string/String,usize>#get:value" + local.set $value + local.get $key + local.set $12 + global.get $~lib/memory/__stack_pointer + local.get $12 + i32.store offset=4 + local.get $12 + call $~lib/util/hash/HASH<~lib/string/String> + local.set $hashCode + local.get $this + local.set $12 + global.get $~lib/memory/__stack_pointer + local.get $12 + i32.store offset=4 + local.get $12 + local.get $key + local.set $12 + global.get $~lib/memory/__stack_pointer + local.get $12 + i32.store offset=8 + local.get $12 + local.get $hashCode + call $"~lib/map/Map<~lib/string/String,usize>#find" + local.set $entry + local.get $entry + if + local.get $entry + local.get $value + call $"~lib/map/MapEntry<~lib/string/String,usize>#set:value" + i32.const 0 + drop + else + global.get $~lib/memory/__stack_pointer + local.get $this + local.set $12 + global.get $~lib/memory/__stack_pointer + local.get $12 + i32.store offset=4 + local.get $12 + call $"~lib/map/Map<~lib/string/String,usize>#get:entries" + local.tee $entries + i32.store offset=16 + local.get $entries + local.get $this + local.set $12 + global.get $~lib/memory/__stack_pointer + local.get $12 + i32.store offset=4 + local.get $12 + local.get $this + local.set $12 + global.get $~lib/memory/__stack_pointer + local.get $12 + i32.store offset=8 + local.get $12 + call $"~lib/map/Map<~lib/string/String,usize>#get:entriesOffset" + local.tee $9 + i32.const 1 + i32.add + call $"~lib/map/Map<~lib/string/String,usize>#set:entriesOffset" + local.get $9 + block $"~lib/map/ENTRY_SIZE<~lib/string/String,usize>|inlined.4" (result i32) + i32.const 12 + br $"~lib/map/ENTRY_SIZE<~lib/string/String,usize>|inlined.4" + end + i32.mul + i32.add + local.set $entry|10 + local.get $entry|10 + local.get $key + local.set $12 + global.get $~lib/memory/__stack_pointer + local.get $12 + i32.store offset=4 + local.get $12 + call $"~lib/map/MapEntry<~lib/string/String,usize>#set:key" + i32.const 1 + drop + local.get $this + local.get $key + i32.const 1 + call $~lib/rt/itcms/__link + local.get $entry|10 + local.get $value + call $"~lib/map/MapEntry<~lib/string/String,usize>#set:value" + i32.const 0 + drop + local.get $this + local.set $12 + global.get $~lib/memory/__stack_pointer + local.get $12 + i32.store offset=4 + local.get $12 + local.get $this + local.set $12 + global.get $~lib/memory/__stack_pointer + local.get $12 + i32.store offset=8 + local.get $12 + call $"~lib/map/Map<~lib/string/String,usize>#get:entriesCount" + i32.const 1 + i32.add + call $"~lib/map/Map<~lib/string/String,usize>#set:entriesCount" + local.get $this + local.set $12 + global.get $~lib/memory/__stack_pointer + local.get $12 + i32.store offset=4 + local.get $12 + call $"~lib/map/Map<~lib/string/String,usize>#get:buckets" + local.get $hashCode + local.get $this + local.set $12 + global.get $~lib/memory/__stack_pointer + local.get $12 + i32.store offset=4 + local.get $12 + call $"~lib/map/Map<~lib/string/String,usize>#get:bucketsMask" + i32.and + i32.const 4 + i32.mul + i32.add + local.set $bucketPtrBase + local.get $entry|10 + local.get $bucketPtrBase + i32.load + call $"~lib/map/MapEntry<~lib/string/String,usize>#set:taggedNext" + local.get $bucketPtrBase + local.get $entry|10 + i32.store + end + local.get $i + i32.const 1 + i32.add + local.set $i + br $for-loop|0 + end + end + end + local.get $this + local.set $12 + global.get $~lib/memory/__stack_pointer + i32.const 20 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $12 + ) + (func $"~lib/map/Map<~lib/string/String,usize>#constructor@varargs" (param $this i32) (param $initialEntries i32) (result i32) + (local $2 i32) + (local $3 i32) + global.get $~lib/memory/__stack_pointer + i32.const 12 + i32.sub + global.set $~lib/memory/__stack_pointer + call $~stack_check + global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store offset=8 + block $1of1 + block $0of1 + block $outOfRange + global.get $~argumentsLength + br_table $0of1 $1of1 $outOfRange + end + unreachable + end + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.const 2 + i32.const 6 + i32.const 800 + call $~lib/rt/__newArray + local.tee $initialEntries + i32.store + end + local.get $this + local.set $3 + global.get $~lib/memory/__stack_pointer + local.get $3 + i32.store offset=4 + local.get $3 + local.get $initialEntries + local.set $3 + global.get $~lib/memory/__stack_pointer + local.get $3 + i32.store offset=8 + local.get $3 + call $"~lib/map/Map<~lib/string/String,usize>#constructor" + local.set $3 + global.get $~lib/memory/__stack_pointer + i32.const 12 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $3 + ) + (func $"~lib/map/Map<~lib/string/String,usize>#has" (param $this i32) (param $key i32) (result i32) + (local $2 i32) + global.get $~lib/memory/__stack_pointer + i32.const 12 + i32.sub + global.set $~lib/memory/__stack_pointer + call $~stack_check + global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store offset=8 + local.get $this + local.set $2 + global.get $~lib/memory/__stack_pointer + local.get $2 + i32.store + local.get $2 + local.get $key + local.set $2 + global.get $~lib/memory/__stack_pointer + local.get $2 + i32.store offset=4 + local.get $2 + local.get $key + local.set $2 + global.get $~lib/memory/__stack_pointer + local.get $2 + i32.store offset=8 + local.get $2 + call $~lib/util/hash/HASH<~lib/string/String> + call $"~lib/map/Map<~lib/string/String,usize>#find" + i32.const 0 + i32.ne + local.set $2 + global.get $~lib/memory/__stack_pointer + i32.const 12 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $2 + return + ) + (func $"~lib/map/Map<~lib/string/String,usize>#get" (param $this i32) (param $key i32) (result i32) + (local $entry i32) + (local $3 i32) + global.get $~lib/memory/__stack_pointer + i32.const 12 + i32.sub + global.set $~lib/memory/__stack_pointer + call $~stack_check + global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store offset=8 + local.get $this + local.set $3 + global.get $~lib/memory/__stack_pointer + local.get $3 + i32.store + local.get $3 + local.get $key + local.set $3 + global.get $~lib/memory/__stack_pointer + local.get $3 + i32.store offset=4 + local.get $3 + local.get $key + local.set $3 + global.get $~lib/memory/__stack_pointer + local.get $3 + i32.store offset=8 + local.get $3 + call $~lib/util/hash/HASH<~lib/string/String> + call $"~lib/map/Map<~lib/string/String,usize>#find" + local.set $entry + local.get $entry + i32.eqz + if + i32.const 832 + i32.const 896 + i32.const 148 + i32.const 17 + call $~lib/builtins/abort + unreachable + end + local.get $entry + call $"~lib/map/MapEntry<~lib/string/String,usize>#get:value" + local.set $3 + global.get $~lib/memory/__stack_pointer + i32.const 12 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $3 + return + ) + (func $"~lib/map/Map<~lib/string/String,usize>#set" (param $this i32) (param $key i32) (param $value i32) (result i32) + (local $hashCode i32) + (local $entry i32) + (local $entries i32) + (local $6 i32) + (local $bucketPtrBase i32) + (local $8 i32) global.get $~lib/memory/__stack_pointer i32.const 12 i32.sub @@ -3906,9 +4426,9 @@ i32.add call $"~lib/map/Map<~lib/string/String,usize>#set:entriesOffset" local.get $6 - block $"~lib/map/ENTRY_SIZE<~lib/string/String,usize>|inlined.5" (result i32) + block $"~lib/map/ENTRY_SIZE<~lib/string/String,usize>|inlined.6" (result i32) i32.const 12 - br $"~lib/map/ENTRY_SIZE<~lib/string/String,usize>|inlined.5" + br $"~lib/map/ENTRY_SIZE<~lib/string/String,usize>|inlined.6" end i32.mul i32.add @@ -3977,115 +4497,311 @@ i32.store end local.get $this - local.set $8 - global.get $~lib/memory/__stack_pointer - i32.const 12 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $8 - return - ) - (func $"~lib/map/Map#constructor" (param $this i32) (result i32) - (local $1 i32) - global.get $~lib/memory/__stack_pointer - i32.const 12 - i32.sub - global.set $~lib/memory/__stack_pointer - call $~stack_check - global.get $~lib/memory/__stack_pointer - i64.const 0 - i64.store + local.set $8 + global.get $~lib/memory/__stack_pointer + i32.const 12 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $8 + return + ) + (func $"~lib/array/Array<~lib/map/KeyValue>#get:length" (param $this i32) (result i32) + (local $1 i32) + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.sub + global.set $~lib/memory/__stack_pointer + call $~stack_check + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store + local.get $this + local.set $1 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store + local.get $1 + call $"~lib/array/Array<~lib/map/KeyValue>#get:length_" + local.set $1 + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $1 + return + ) + (func $"~lib/map/Map#rehash" (param $this i32) (param $newBucketsMask i32) + (local $newBucketsCapacity i32) + (local $newBuckets i32) + (local $newEntriesCapacity i32) + (local $newEntries i32) + (local $oldPtr i32) + (local $oldEnd i32) + (local $newPtr i32) + (local $oldEntry i32) + (local $newEntry i32) + (local $oldEntryKey i32) + (local $newBucketIndex i32) + (local $newBucketPtrBase i32) + (local $14 i32) + global.get $~lib/memory/__stack_pointer + i32.const 16 + i32.sub + global.set $~lib/memory/__stack_pointer + call $~stack_check + global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store + global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store offset=8 + local.get $newBucketsMask + i32.const 1 + i32.add + local.set $newBucketsCapacity + global.get $~lib/memory/__stack_pointer + i32.const 0 + local.get $newBucketsCapacity + i32.const 4 + i32.mul + call $~lib/arraybuffer/ArrayBuffer#constructor + local.tee $newBuckets + i32.store + local.get $newBucketsCapacity + i32.const 8 + i32.mul + i32.const 3 + i32.div_s + local.set $newEntriesCapacity + global.get $~lib/memory/__stack_pointer + i32.const 0 + local.get $newEntriesCapacity + block $"~lib/map/ENTRY_SIZE|inlined.0" (result i32) + i32.const 12 + br $"~lib/map/ENTRY_SIZE|inlined.0" + end + i32.mul + call $~lib/arraybuffer/ArrayBuffer#constructor + local.tee $newEntries + i32.store offset=4 + local.get $this + local.set $14 global.get $~lib/memory/__stack_pointer - i32.const 0 + local.get $14 i32.store offset=8 + local.get $14 + call $"~lib/map/Map#get:entries" + local.set $oldPtr + local.get $oldPtr local.get $this - i32.eqz - if - global.get $~lib/memory/__stack_pointer - i32.const 24 - i32.const 5 - call $~lib/rt/itcms/__new - local.tee $this - i32.store - end - local.get $this - local.set $1 + local.set $14 global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - local.get $1 - i32.const 0 - i32.const 4 - i32.const 4 + local.get $14 + i32.store offset=8 + local.get $14 + call $"~lib/map/Map#get:entriesOffset" + block $"~lib/map/ENTRY_SIZE|inlined.1" (result i32) + i32.const 12 + br $"~lib/map/ENTRY_SIZE|inlined.1" + end i32.mul - call $~lib/arraybuffer/ArrayBuffer#constructor - local.set $1 + i32.add + local.set $oldEnd + local.get $newEntries + local.set $newPtr + loop $while-continue|0 + local.get $oldPtr + local.get $oldEnd + i32.ne + if + local.get $oldPtr + local.set $oldEntry + local.get $oldEntry + call $"~lib/map/MapEntry#get:taggedNext" + i32.const 1 + i32.and + i32.eqz + if + local.get $newPtr + local.set $newEntry + local.get $oldEntry + call $"~lib/map/MapEntry#get:key" + local.set $oldEntryKey + local.get $newEntry + local.get $oldEntryKey + call $"~lib/map/MapEntry#set:key" + local.get $newEntry + local.get $oldEntry + call $"~lib/map/MapEntry#get:value" + local.set $14 + global.get $~lib/memory/__stack_pointer + local.get $14 + i32.store offset=8 + local.get $14 + call $"~lib/map/MapEntry#set:value" + local.get $oldEntryKey + call $~lib/util/hash/HASH + local.get $newBucketsMask + i32.and + local.set $newBucketIndex + local.get $newBuckets + local.get $newBucketIndex + i32.const 4 + i32.mul + i32.add + local.set $newBucketPtrBase + local.get $newEntry + local.get $newBucketPtrBase + i32.load + call $"~lib/map/MapEntry#set:taggedNext" + local.get $newBucketPtrBase + local.get $newPtr + i32.store + local.get $newPtr + block $"~lib/map/ENTRY_SIZE|inlined.2" (result i32) + i32.const 12 + br $"~lib/map/ENTRY_SIZE|inlined.2" + end + i32.add + local.set $newPtr + end + local.get $oldPtr + block $"~lib/map/ENTRY_SIZE|inlined.3" (result i32) + i32.const 12 + br $"~lib/map/ENTRY_SIZE|inlined.3" + end + i32.add + local.set $oldPtr + br $while-continue|0 + end + end + local.get $this + local.set $14 global.get $~lib/memory/__stack_pointer - local.get $1 + local.get $14 i32.store offset=8 - local.get $1 + local.get $14 + local.get $newBuckets + local.set $14 + global.get $~lib/memory/__stack_pointer + local.get $14 + i32.store offset=12 + local.get $14 call $"~lib/map/Map#set:buckets" local.get $this - local.set $1 + local.set $14 global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - local.get $1 - i32.const 4 - i32.const 1 - i32.sub + local.get $14 + i32.store offset=8 + local.get $14 + local.get $newBucketsMask call $"~lib/map/Map#set:bucketsMask" local.get $this - local.set $1 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - local.get $1 - i32.const 0 - i32.const 4 - block $"~lib/map/ENTRY_SIZE|inlined.0" (result i32) - i32.const 12 - br $"~lib/map/ENTRY_SIZE|inlined.0" - end - i32.mul - call $~lib/arraybuffer/ArrayBuffer#constructor - local.set $1 + local.set $14 global.get $~lib/memory/__stack_pointer - local.get $1 + local.get $14 i32.store offset=8 - local.get $1 + local.get $14 + local.get $newEntries + local.set $14 + global.get $~lib/memory/__stack_pointer + local.get $14 + i32.store offset=12 + local.get $14 call $"~lib/map/Map#set:entries" local.get $this - local.set $1 + local.set $14 global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - local.get $1 - i32.const 4 + local.get $14 + i32.store offset=8 + local.get $14 + local.get $newEntriesCapacity call $"~lib/map/Map#set:entriesCapacity" local.get $this - local.set $1 + local.set $14 global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - local.get $1 - i32.const 0 + local.get $14 + i32.store offset=8 + local.get $14 + local.get $this + local.set $14 + global.get $~lib/memory/__stack_pointer + local.get $14 + i32.store offset=12 + local.get $14 + call $"~lib/map/Map#get:entriesCount" call $"~lib/map/Map#set:entriesOffset" + global.get $~lib/memory/__stack_pointer + i32.const 16 + i32.add + global.set $~lib/memory/__stack_pointer + ) + (func $"~lib/array/Array<~lib/map/KeyValue>#__get" (param $this i32) (param $index i32) (result i32) + (local $value i32) + (local $3 i32) + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.sub + global.set $~lib/memory/__stack_pointer + call $~stack_check + global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store + local.get $index local.get $this - local.set $1 + local.set $3 global.get $~lib/memory/__stack_pointer - local.get $1 + local.get $3 + i32.store + local.get $3 + call $"~lib/array/Array<~lib/map/KeyValue>#get:length_" + i32.ge_u + if + i32.const 416 + i32.const 624 + i32.const 114 + i32.const 42 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + local.get $this + local.set $3 + global.get $~lib/memory/__stack_pointer + local.get $3 + i32.store + local.get $3 + call $"~lib/array/Array<~lib/map/KeyValue>#get:dataStart" + local.get $index + i32.const 2 + i32.shl + i32.add + i32.load + local.tee $value i32.store offset=4 - local.get $1 + i32.const 1 + drop i32.const 0 - call $"~lib/map/Map#set:entriesCount" - local.get $this - local.set $1 + i32.eqz + drop + local.get $value + i32.eqz + if + i32.const 672 + i32.const 624 + i32.const 118 + i32.const 40 + call $~lib/builtins/abort + unreachable + end + local.get $value + local.set $3 global.get $~lib/memory/__stack_pointer - i32.const 12 + i32.const 8 i32.add global.set $~lib/memory/__stack_pointer - local.get $1 + local.get $3 + return ) (func $"~lib/map/Map#find" (param $this i32) (param $key i32) (param $hashCode i32) (result i32) (local $entry i32) @@ -4166,211 +4882,391 @@ local.get $5 return ) - (func $"~lib/map/Map#rehash" (param $this i32) (param $newBucketsMask i32) - (local $newBucketsCapacity i32) - (local $newBuckets i32) - (local $newEntriesCapacity i32) - (local $newEntries i32) - (local $oldPtr i32) - (local $oldEnd i32) - (local $newPtr i32) - (local $oldEntry i32) - (local $newEntry i32) - (local $oldEntryKey i32) - (local $newBucketIndex i32) - (local $newBucketPtrBase i32) - (local $14 i32) + (func $"~lib/map/Map#constructor" (param $this i32) (param $initialEntries i32) (result i32) + (local $entriesLength i32) + (local $i i32) + (local $key i32) + (local $value i32) + (local $hashCode i32) + (local $entry i32) + (local $entries i32) + (local $9 i32) + (local $entry|10 i32) + (local $bucketPtrBase i32) + (local $12 i32) global.get $~lib/memory/__stack_pointer - i32.const 16 + i32.const 20 i32.sub global.set $~lib/memory/__stack_pointer call $~stack_check global.get $~lib/memory/__stack_pointer - i64.const 0 - i64.store - global.get $~lib/memory/__stack_pointer - i64.const 0 - i64.store offset=8 - local.get $newBucketsMask - i32.const 1 - i32.add - local.set $newBucketsCapacity + i32.const 0 + i32.const 20 + memory.fill + local.get $this + i32.eqz + if + global.get $~lib/memory/__stack_pointer + i32.const 24 + i32.const 8 + call $~lib/rt/itcms/__new + local.tee $this + i32.store + end + local.get $this + local.set $12 global.get $~lib/memory/__stack_pointer + local.get $12 + i32.store offset=4 + local.get $12 i32.const 0 - local.get $newBucketsCapacity + i32.const 4 i32.const 4 i32.mul call $~lib/arraybuffer/ArrayBuffer#constructor - local.tee $newBuckets - i32.store - local.get $newBucketsCapacity - i32.const 8 - i32.mul - i32.const 3 - i32.div_s - local.set $newEntriesCapacity + local.set $12 + global.get $~lib/memory/__stack_pointer + local.get $12 + i32.store offset=8 + local.get $12 + call $"~lib/map/Map#set:buckets" + local.get $this + local.set $12 + global.get $~lib/memory/__stack_pointer + local.get $12 + i32.store offset=4 + local.get $12 + i32.const 4 + i32.const 1 + i32.sub + call $"~lib/map/Map#set:bucketsMask" + local.get $this + local.set $12 global.get $~lib/memory/__stack_pointer + local.get $12 + i32.store offset=4 + local.get $12 i32.const 0 - local.get $newEntriesCapacity - block $"~lib/map/ENTRY_SIZE|inlined.1" (result i32) + i32.const 4 + block $"~lib/map/ENTRY_SIZE|inlined.5" (result i32) i32.const 12 - br $"~lib/map/ENTRY_SIZE|inlined.1" + br $"~lib/map/ENTRY_SIZE|inlined.5" end i32.mul call $~lib/arraybuffer/ArrayBuffer#constructor - local.tee $newEntries + local.set $12 + global.get $~lib/memory/__stack_pointer + local.get $12 + i32.store offset=8 + local.get $12 + call $"~lib/map/Map#set:entries" + local.get $this + local.set $12 + global.get $~lib/memory/__stack_pointer + local.get $12 i32.store offset=4 + local.get $12 + i32.const 4 + call $"~lib/map/Map#set:entriesCapacity" local.get $this - local.set $14 + local.set $12 global.get $~lib/memory/__stack_pointer - local.get $14 - i32.store offset=8 - local.get $14 - call $"~lib/map/Map#get:entries" - local.set $oldPtr - local.get $oldPtr + local.get $12 + i32.store offset=4 + local.get $12 + i32.const 0 + call $"~lib/map/Map#set:entriesOffset" local.get $this - local.set $14 + local.set $12 global.get $~lib/memory/__stack_pointer - local.get $14 - i32.store offset=8 - local.get $14 - call $"~lib/map/Map#get:entriesOffset" - block $"~lib/map/ENTRY_SIZE|inlined.2" (result i32) - i32.const 12 - br $"~lib/map/ENTRY_SIZE|inlined.2" - end - i32.mul - i32.add - local.set $oldEnd - local.get $newEntries - local.set $newPtr - loop $while-continue|0 - local.get $oldPtr - local.get $oldEnd - i32.ne + local.get $12 + i32.store offset=4 + local.get $12 + i32.const 0 + call $"~lib/map/Map#set:entriesCount" + local.get $initialEntries + local.set $12 + global.get $~lib/memory/__stack_pointer + local.get $12 + i32.store offset=4 + local.get $12 + call $"~lib/array/Array<~lib/map/KeyValue>#get:length" + local.set $entriesLength + local.get $entriesLength + i32.const 0 + i32.gt_s + if + local.get $entriesLength + local.get $this + local.set $12 + global.get $~lib/memory/__stack_pointer + local.get $12 + i32.store offset=4 + local.get $12 + call $"~lib/map/Map#get:entriesCapacity" + i32.ge_s if - local.get $oldPtr - local.set $oldEntry - local.get $oldEntry - call $"~lib/map/MapEntry#get:taggedNext" - i32.const 1 - i32.and - i32.eqz + local.get $this + local.set $12 + global.get $~lib/memory/__stack_pointer + local.get $12 + i32.store offset=4 + local.get $12 + local.get $entriesLength + call $"~lib/map/Map#set:bucketsMask" + end + local.get $this + local.set $12 + global.get $~lib/memory/__stack_pointer + local.get $12 + i32.store offset=4 + local.get $12 + local.get $this + local.set $12 + global.get $~lib/memory/__stack_pointer + local.get $12 + i32.store offset=8 + local.get $12 + call $"~lib/map/Map#get:bucketsMask" + i32.const 1 + i32.shl + i32.const 1 + i32.or + call $"~lib/map/Map#rehash" + i32.const 0 + local.set $i + loop $for-loop|0 + local.get $i + local.get $entriesLength + i32.lt_s if - local.get $newPtr - local.set $newEntry - local.get $oldEntry - call $"~lib/map/MapEntry#get:key" - local.set $oldEntryKey - local.get $newEntry - local.get $oldEntryKey - call $"~lib/map/MapEntry#set:key" - local.get $newEntry - local.get $oldEntry - call $"~lib/map/MapEntry#get:value" - local.set $14 + local.get $initialEntries + local.set $12 global.get $~lib/memory/__stack_pointer - local.get $14 + local.get $12 i32.store offset=8 - local.get $14 - call $"~lib/map/MapEntry#set:value" - local.get $oldEntryKey + local.get $12 + local.get $i + call $"~lib/array/Array<~lib/map/KeyValue>#__get" + local.set $12 + global.get $~lib/memory/__stack_pointer + local.get $12 + i32.store offset=4 + local.get $12 + call $"~lib/map/KeyValue#get:key" + local.set $key + global.get $~lib/memory/__stack_pointer + local.get $initialEntries + local.set $12 + global.get $~lib/memory/__stack_pointer + local.get $12 + i32.store offset=8 + local.get $12 + local.get $i + call $"~lib/array/Array<~lib/map/KeyValue>#__get" + local.set $12 + global.get $~lib/memory/__stack_pointer + local.get $12 + i32.store offset=4 + local.get $12 + call $"~lib/map/KeyValue#get:value" + local.tee $value + i32.store offset=12 + local.get $key call $~lib/util/hash/HASH - local.get $newBucketsMask - i32.and - local.set $newBucketIndex - local.get $newBuckets - local.get $newBucketIndex - i32.const 4 - i32.mul - i32.add - local.set $newBucketPtrBase - local.get $newEntry - local.get $newBucketPtrBase - i32.load - call $"~lib/map/MapEntry#set:taggedNext" - local.get $newBucketPtrBase - local.get $newPtr - i32.store - local.get $newPtr - block $"~lib/map/ENTRY_SIZE|inlined.3" (result i32) - i32.const 12 - br $"~lib/map/ENTRY_SIZE|inlined.3" + local.set $hashCode + local.get $this + local.set $12 + global.get $~lib/memory/__stack_pointer + local.get $12 + i32.store offset=4 + local.get $12 + local.get $key + local.get $hashCode + call $"~lib/map/Map#find" + local.set $entry + local.get $entry + if + local.get $entry + local.get $value + local.set $12 + global.get $~lib/memory/__stack_pointer + local.get $12 + i32.store offset=4 + local.get $12 + call $"~lib/map/MapEntry#set:value" + i32.const 1 + drop + local.get $this + local.get $value + i32.const 1 + call $~lib/rt/itcms/__link + else + global.get $~lib/memory/__stack_pointer + local.get $this + local.set $12 + global.get $~lib/memory/__stack_pointer + local.get $12 + i32.store offset=4 + local.get $12 + call $"~lib/map/Map#get:entries" + local.tee $entries + i32.store offset=16 + local.get $entries + local.get $this + local.set $12 + global.get $~lib/memory/__stack_pointer + local.get $12 + i32.store offset=4 + local.get $12 + local.get $this + local.set $12 + global.get $~lib/memory/__stack_pointer + local.get $12 + i32.store offset=8 + local.get $12 + call $"~lib/map/Map#get:entriesOffset" + local.tee $9 + i32.const 1 + i32.add + call $"~lib/map/Map#set:entriesOffset" + local.get $9 + block $"~lib/map/ENTRY_SIZE|inlined.4" (result i32) + i32.const 12 + br $"~lib/map/ENTRY_SIZE|inlined.4" + end + i32.mul + i32.add + local.set $entry|10 + local.get $entry|10 + local.get $key + call $"~lib/map/MapEntry#set:key" + i32.const 0 + drop + local.get $entry|10 + local.get $value + local.set $12 + global.get $~lib/memory/__stack_pointer + local.get $12 + i32.store offset=4 + local.get $12 + call $"~lib/map/MapEntry#set:value" + i32.const 1 + drop + local.get $this + local.get $value + i32.const 1 + call $~lib/rt/itcms/__link + local.get $this + local.set $12 + global.get $~lib/memory/__stack_pointer + local.get $12 + i32.store offset=4 + local.get $12 + local.get $this + local.set $12 + global.get $~lib/memory/__stack_pointer + local.get $12 + i32.store offset=8 + local.get $12 + call $"~lib/map/Map#get:entriesCount" + i32.const 1 + i32.add + call $"~lib/map/Map#set:entriesCount" + local.get $this + local.set $12 + global.get $~lib/memory/__stack_pointer + local.get $12 + i32.store offset=4 + local.get $12 + call $"~lib/map/Map#get:buckets" + local.get $hashCode + local.get $this + local.set $12 + global.get $~lib/memory/__stack_pointer + local.get $12 + i32.store offset=4 + local.get $12 + call $"~lib/map/Map#get:bucketsMask" + i32.and + i32.const 4 + i32.mul + i32.add + local.set $bucketPtrBase + local.get $entry|10 + local.get $bucketPtrBase + i32.load + call $"~lib/map/MapEntry#set:taggedNext" + local.get $bucketPtrBase + local.get $entry|10 + i32.store end + local.get $i + i32.const 1 i32.add - local.set $newPtr + local.set $i + br $for-loop|0 end - local.get $oldPtr - block $"~lib/map/ENTRY_SIZE|inlined.4" (result i32) - i32.const 12 - br $"~lib/map/ENTRY_SIZE|inlined.4" - end - i32.add - local.set $oldPtr - br $while-continue|0 end end local.get $this - local.set $14 - global.get $~lib/memory/__stack_pointer - local.get $14 - i32.store offset=8 - local.get $14 - local.get $newBuckets - local.set $14 - global.get $~lib/memory/__stack_pointer - local.get $14 - i32.store offset=12 - local.get $14 - call $"~lib/map/Map#set:buckets" - local.get $this - local.set $14 - global.get $~lib/memory/__stack_pointer - local.get $14 - i32.store offset=8 - local.get $14 - local.get $newBucketsMask - call $"~lib/map/Map#set:bucketsMask" - local.get $this - local.set $14 - global.get $~lib/memory/__stack_pointer - local.get $14 - i32.store offset=8 - local.get $14 - local.get $newEntries - local.set $14 - global.get $~lib/memory/__stack_pointer - local.get $14 - i32.store offset=12 - local.get $14 - call $"~lib/map/Map#set:entries" - local.get $this - local.set $14 + local.set $12 global.get $~lib/memory/__stack_pointer - local.get $14 - i32.store offset=8 - local.get $14 - local.get $newEntriesCapacity - call $"~lib/map/Map#set:entriesCapacity" - local.get $this - local.set $14 + i32.const 20 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $12 + ) + (func $"~lib/map/Map#constructor@varargs" (param $this i32) (param $initialEntries i32) (result i32) + (local $2 i32) + (local $3 i32) global.get $~lib/memory/__stack_pointer - local.get $14 + i32.const 12 + i32.sub + global.set $~lib/memory/__stack_pointer + call $~stack_check + global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store + global.get $~lib/memory/__stack_pointer + i32.const 0 i32.store offset=8 - local.get $14 + block $1of1 + block $0of1 + block $outOfRange + global.get $~argumentsLength + br_table $0of1 $1of1 $outOfRange + end + unreachable + end + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.const 2 + i32.const 10 + i32.const 944 + call $~lib/rt/__newArray + local.tee $initialEntries + i32.store + end local.get $this - local.set $14 + local.set $3 global.get $~lib/memory/__stack_pointer - local.get $14 - i32.store offset=12 - local.get $14 - call $"~lib/map/Map#get:entriesCount" - call $"~lib/map/Map#set:entriesOffset" + local.get $3 + i32.store offset=4 + local.get $3 + local.get $initialEntries + local.set $3 global.get $~lib/memory/__stack_pointer - i32.const 16 + local.get $3 + i32.store offset=8 + local.get $3 + call $"~lib/map/Map#constructor" + local.set $3 + global.get $~lib/memory/__stack_pointer + i32.const 12 i32.add global.set $~lib/memory/__stack_pointer + local.get $3 ) (func $"~lib/map/Map#set" (param $this i32) (param $key i32) (param $value i32) (result i32) (local $hashCode i32) @@ -4513,9 +5409,9 @@ i32.add call $"~lib/map/Map#set:entriesOffset" local.get $6 - block $"~lib/map/ENTRY_SIZE|inlined.5" (result i32) + block $"~lib/map/ENTRY_SIZE|inlined.6" (result i32) i32.const 12 - br $"~lib/map/ENTRY_SIZE|inlined.5" + br $"~lib/map/ENTRY_SIZE|inlined.6" end i32.mul i32.add @@ -4745,9 +5641,9 @@ local.get $entry i32.eqz if - i32.const 624 - i32.const 688 - i32.const 105 + i32.const 832 + i32.const 896 + i32.const 148 i32.const 17 call $~lib/builtins/abort unreachable @@ -4842,7 +5738,7 @@ i32.const 0 i32.eq if - i32.const 864 + i32.const 1104 local.set $6 global.get $~lib/memory/__stack_pointer i32.const 8 @@ -4924,7 +5820,7 @@ local.get $this local.set $id global.get $~lib/memory/__stack_pointer - i32.const 864 + i32.const 1104 local.tee $str i32.store block $break|0 @@ -4989,67 +5885,67 @@ br $case11|0 end global.get $~lib/memory/__stack_pointer - i32.const 896 + i32.const 1136 local.tee $str i32.store br $break|0 end global.get $~lib/memory/__stack_pointer - i32.const 944 + i32.const 1184 local.tee $str i32.store br $break|0 end global.get $~lib/memory/__stack_pointer - i32.const 1008 + i32.const 1248 local.tee $str i32.store br $break|0 end global.get $~lib/memory/__stack_pointer - i32.const 1056 + i32.const 1296 local.tee $str i32.store br $break|0 end global.get $~lib/memory/__stack_pointer - i32.const 1088 + i32.const 1328 local.tee $str i32.store br $break|0 end global.get $~lib/memory/__stack_pointer - i32.const 1136 + i32.const 1376 local.tee $str i32.store br $break|0 end global.get $~lib/memory/__stack_pointer - i32.const 1168 + i32.const 1408 local.tee $str i32.store br $break|0 end global.get $~lib/memory/__stack_pointer - i32.const 1216 + i32.const 1456 local.tee $str i32.store br $break|0 end global.get $~lib/memory/__stack_pointer - i32.const 1248 + i32.const 1488 local.tee $str i32.store br $break|0 end global.get $~lib/memory/__stack_pointer - i32.const 1296 + i32.const 1536 local.tee $str i32.store br $break|0 end global.get $~lib/memory/__stack_pointer - i32.const 1344 + i32.const 1584 local.tee $str i32.store br $break|0 @@ -5084,7 +5980,7 @@ end br $break|0 end - i32.const 1392 + i32.const 1632 local.set $4 global.get $~lib/memory/__stack_pointer local.get $4 @@ -5102,7 +5998,7 @@ local.get $4 i32.store offset=4 local.get $4 - i32.const 1440 + i32.const 1680 local.set $4 global.get $~lib/memory/__stack_pointer local.get $4 @@ -5168,20 +6064,26 @@ i32.const 1 i32.shr_u global.set $~lib/rt/itcms/threshold - i32.const 224 + i32.const 336 call $~lib/rt/itcms/initLazy global.set $~lib/rt/itcms/pinSpace - i32.const 256 + i32.const 368 call $~lib/rt/itcms/initLazy global.set $~lib/rt/itcms/toSpace - i32.const 400 + i32.const 512 call $~lib/rt/itcms/initLazy global.set $~lib/rt/itcms/fromSpace i32.const 0 - call $"~lib/map/Map<~lib/string/String,usize>#constructor" + i32.const 0 + global.set $~argumentsLength + i32.const 0 + call $"~lib/map/Map<~lib/string/String,usize>#constructor@varargs" global.set $~lib/symbol/stringToId i32.const 0 - call $"~lib/map/Map#constructor" + i32.const 0 + global.set $~argumentsLength + i32.const 0 + call $"~lib/map/Map#constructor@varargs" global.set $~lib/symbol/idToString i32.const 32 local.set $2 @@ -5260,7 +6162,7 @@ if (result i32) local.get $0 else - i32.const 736 + i32.const 976 i32.const 64 i32.const 17 i32.const 12 @@ -5277,7 +6179,7 @@ if (result i32) local.get $1 else - i32.const 736 + i32.const 976 i32.const 64 i32.const 18 i32.const 12 @@ -5337,7 +6239,7 @@ local.get $2 i32.store local.get $2 - i32.const 1472 + i32.const 1712 local.set $2 global.get $~lib/memory/__stack_pointer local.get $2 @@ -5360,7 +6262,7 @@ local.get $2 i32.store local.get $2 - i32.const 1520 + i32.const 1760 local.set $2 global.get $~lib/memory/__stack_pointer local.get $2 @@ -5387,7 +6289,7 @@ local.get $2 i32.store local.get $2 - i32.const 1568 + i32.const 1808 local.set $2 global.get $~lib/memory/__stack_pointer local.get $2 @@ -5410,7 +6312,7 @@ local.get $2 i32.store local.get $2 - i32.const 1632 + i32.const 1872 local.set $2 global.get $~lib/memory/__stack_pointer local.get $2 @@ -5479,9 +6381,9 @@ i32.store local.get $7 call $"~lib/map/Map<~lib/string/String,usize>#get:entriesOffset" - block $"~lib/map/ENTRY_SIZE<~lib/string/String,usize>|inlined.6" (result i32) + block $"~lib/map/ENTRY_SIZE<~lib/string/String,usize>|inlined.7" (result i32) i32.const 12 - br $"~lib/map/ENTRY_SIZE<~lib/string/String,usize>|inlined.6" + br $"~lib/map/ENTRY_SIZE<~lib/string/String,usize>|inlined.7" end i32.mul i32.add @@ -5513,9 +6415,9 @@ drop end local.get $cur - block $"~lib/map/ENTRY_SIZE<~lib/string/String,usize>|inlined.7" (result i32) + block $"~lib/map/ENTRY_SIZE<~lib/string/String,usize>|inlined.8" (result i32) i32.const 12 - br $"~lib/map/ENTRY_SIZE<~lib/string/String,usize>|inlined.7" + br $"~lib/map/ENTRY_SIZE<~lib/string/String,usize>|inlined.8" end i32.add local.set $cur @@ -5530,6 +6432,102 @@ i32.add global.set $~lib/memory/__stack_pointer ) + (func $"~lib/array/Array<~lib/map/KeyValue<~lib/string/String,usize>>#__visit" (param $this i32) (param $cookie i32) + (local $cur i32) + (local $end i32) + (local $val i32) + (local $5 i32) + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.sub + global.set $~lib/memory/__stack_pointer + call $~stack_check + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store + i32.const 1 + drop + local.get $this + local.set $5 + global.get $~lib/memory/__stack_pointer + local.get $5 + i32.store + local.get $5 + call $"~lib/array/Array<~lib/map/KeyValue<~lib/string/String,usize>>#get:dataStart" + local.set $cur + local.get $cur + local.get $this + local.set $5 + global.get $~lib/memory/__stack_pointer + local.get $5 + i32.store + local.get $5 + call $"~lib/array/Array<~lib/map/KeyValue<~lib/string/String,usize>>#get:length_" + i32.const 2 + i32.shl + i32.add + local.set $end + loop $while-continue|0 + local.get $cur + local.get $end + i32.lt_u + if + local.get $cur + i32.load + local.set $val + local.get $val + if + local.get $val + local.get $cookie + call $~lib/rt/itcms/__visit + end + local.get $cur + i32.const 4 + i32.add + local.set $cur + br $while-continue|0 + end + end + local.get $this + local.set $5 + global.get $~lib/memory/__stack_pointer + local.get $5 + i32.store + local.get $5 + call $"~lib/array/Array<~lib/map/KeyValue<~lib/string/String,usize>>#get:buffer" + local.get $cookie + call $~lib/rt/itcms/__visit + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + ) + (func $~lib/array/Array#__visit (param $this i32) (param $cookie i32) + (local $2 i32) + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.sub + global.set $~lib/memory/__stack_pointer + call $~stack_check + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store + i32.const 0 + drop + local.get $this + local.set $2 + global.get $~lib/memory/__stack_pointer + local.get $2 + i32.store + local.get $2 + call $~lib/array/Array#get:buffer + local.get $cookie + call $~lib/rt/itcms/__visit + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + ) (func $"~lib/map/Map#__visit" (param $this i32) (param $cookie i32) (local $entries i32) (local $cur i32) @@ -5574,9 +6572,9 @@ i32.store local.get $7 call $"~lib/map/Map#get:entriesOffset" - block $"~lib/map/ENTRY_SIZE|inlined.6" (result i32) + block $"~lib/map/ENTRY_SIZE|inlined.7" (result i32) i32.const 12 - br $"~lib/map/ENTRY_SIZE|inlined.6" + br $"~lib/map/ENTRY_SIZE|inlined.7" end i32.mul i32.add @@ -5608,9 +6606,9 @@ call $~lib/rt/itcms/__visit end local.get $cur - block $"~lib/map/ENTRY_SIZE|inlined.7" (result i32) + block $"~lib/map/ENTRY_SIZE|inlined.8" (result i32) i32.const 12 - br $"~lib/map/ENTRY_SIZE|inlined.7" + br $"~lib/map/ENTRY_SIZE|inlined.8" end i32.add local.set $cur @@ -5625,6 +6623,76 @@ i32.add global.set $~lib/memory/__stack_pointer ) + (func $"~lib/array/Array<~lib/map/KeyValue>#__visit" (param $this i32) (param $cookie i32) + (local $cur i32) + (local $end i32) + (local $val i32) + (local $5 i32) + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.sub + global.set $~lib/memory/__stack_pointer + call $~stack_check + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store + i32.const 1 + drop + local.get $this + local.set $5 + global.get $~lib/memory/__stack_pointer + local.get $5 + i32.store + local.get $5 + call $"~lib/array/Array<~lib/map/KeyValue>#get:dataStart" + local.set $cur + local.get $cur + local.get $this + local.set $5 + global.get $~lib/memory/__stack_pointer + local.get $5 + i32.store + local.get $5 + call $"~lib/array/Array<~lib/map/KeyValue>#get:length_" + i32.const 2 + i32.shl + i32.add + local.set $end + loop $while-continue|0 + local.get $cur + local.get $end + i32.lt_u + if + local.get $cur + i32.load + local.set $val + local.get $val + if + local.get $val + local.get $cookie + call $~lib/rt/itcms/__visit + end + local.get $cur + i32.const 4 + i32.add + local.set $cur + br $while-continue|0 + end + end + local.get $this + local.set $5 + global.get $~lib/memory/__stack_pointer + local.get $5 + i32.store + local.get $5 + call $"~lib/array/Array<~lib/map/KeyValue>#get:buffer" + local.get $cookie + call $~lib/rt/itcms/__visit + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + ) (func $~lib/arraybuffer/ArrayBuffer#constructor (param $this i32) (param $length i32) (result i32) (local $buffer i32) (local $3 i32) @@ -5640,8 +6708,8 @@ i32.const 1073741820 i32.gt_u if - i32.const 512 - i32.const 560 + i32.const 112 + i32.const 160 i32.const 52 i32.const 43 call $~lib/builtins/abort @@ -5666,4 +6734,57 @@ local.get $3 return ) + (func $~lib/rt/__newArray (param $length i32) (param $alignLog2 i32) (param $id i32) (param $data i32) (result i32) + (local $bufferSize i32) + (local $buffer i32) + (local $array i32) + (local $7 i32) + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.sub + global.set $~lib/memory/__stack_pointer + call $~stack_check + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store + local.get $length + local.get $alignLog2 + i32.shl + local.set $bufferSize + global.get $~lib/memory/__stack_pointer + local.get $bufferSize + i32.const 1 + local.get $data + call $~lib/rt/__newBuffer + local.tee $buffer + i32.store + i32.const 16 + local.get $id + call $~lib/rt/itcms/__new + local.set $array + local.get $array + local.get $buffer + i32.store + local.get $array + local.get $buffer + i32.const 0 + call $~lib/rt/itcms/__link + local.get $array + local.get $buffer + i32.store offset=4 + local.get $array + local.get $bufferSize + i32.store offset=8 + local.get $array + local.get $length + i32.store offset=12 + local.get $array + local.set $7 + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $7 + return + ) ) diff --git a/tests/compiler/std/symbol.release.wat b/tests/compiler/std/symbol.release.wat index 51197770e1..d20a016aec 100644 --- a/tests/compiler/std/symbol.release.wat +++ b/tests/compiler/std/symbol.release.wat @@ -1,14 +1,14 @@ (module (type $0 (func (param i32 i32) (result i32))) - (type $1 (func)) + (type $1 (func (param i32) (result i32))) (type $2 (func (param i32 i32))) - (type $3 (func (param i32) (result i32))) + (type $3 (func)) (type $4 (func (param i32))) (type $5 (func (result i32))) - (type $6 (func (param i32 i32 i32 i32))) - (type $7 (func (param i32 i32 i64))) - (type $8 (func (param i32 i32 i32))) - (type $9 (func (param i32 i32 i32) (result i32))) + (type $6 (func (param i32 i32 i32) (result i32))) + (type $7 (func (param i32 i32 i32 i32))) + (type $8 (func (param i32 i32 i64))) + (type $9 (func (param i32 i32 i32))) (import "env" "abort" (func $~lib/builtins/abort (param i32 i32 i32 i32))) (global $~lib/symbol/nextId (mut i32) (i32.const 12)) (global $std/symbol/sym1 (mut i32) (i32.const 0)) @@ -32,70 +32,78 @@ (global $std/symbol/key3 (mut i32) (i32.const 0)) (global $std/symbol/key4 (mut i32) (i32.const 0)) (global $std/symbol/isConcatSpreadable (mut i32) (i32.const 0)) - (global $~lib/memory/__stack_pointer (mut i32) (i32.const 35516)) + (global $~lib/memory/__stack_pointer (mut i32) (i32.const 35776)) (global $~started (mut i32) (i32.const 0)) (memory $0 1) (data $0 (i32.const 1036) "\1c") (data $0.1 (i32.const 1048) "\02\00\00\00\06\00\00\001\002\003") (data $1 (i32.const 1068) ",") (data $1.1 (i32.const 1080) "\02\00\00\00\1a\00\00\00s\00t\00d\00/\00s\00y\00m\00b\00o\00l\00.\00t\00s") - (data $2 (i32.const 1116) "<") - (data $2.1 (i32.const 1128) "\02\00\00\00(\00\00\00A\00l\00l\00o\00c\00a\00t\00i\00o\00n\00 \00t\00o\00o\00 \00l\00a\00r\00g\00e") - (data $3 (i32.const 1180) "<") - (data $3.1 (i32.const 1192) "\02\00\00\00 \00\00\00~\00l\00i\00b\00/\00r\00t\00/\00i\00t\00c\00m\00s\00.\00t\00s") - (data $6 (i32.const 1308) "<") - (data $6.1 (i32.const 1320) "\02\00\00\00$\00\00\00I\00n\00d\00e\00x\00 \00o\00u\00t\00 \00o\00f\00 \00r\00a\00n\00g\00e") - (data $7 (i32.const 1372) ",") - (data $7.1 (i32.const 1384) "\02\00\00\00\14\00\00\00~\00l\00i\00b\00/\00r\00t\00.\00t\00s") - (data $9 (i32.const 1452) "<") - (data $9.1 (i32.const 1464) "\02\00\00\00\1e\00\00\00~\00l\00i\00b\00/\00r\00t\00/\00t\00l\00s\00f\00.\00t\00s") - (data $10 (i32.const 1516) ",") - (data $10.1 (i32.const 1528) "\02\00\00\00\1c\00\00\00I\00n\00v\00a\00l\00i\00d\00 \00l\00e\00n\00g\00t\00h") + (data $2 (i32.const 1116) ",") + (data $2.1 (i32.const 1128) "\02\00\00\00\1c\00\00\00I\00n\00v\00a\00l\00i\00d\00 \00l\00e\00n\00g\00t\00h") + (data $3 (i32.const 1164) "<") + (data $3.1 (i32.const 1176) "\02\00\00\00&\00\00\00~\00l\00i\00b\00/\00a\00r\00r\00a\00y\00b\00u\00f\00f\00e\00r\00.\00t\00s") + (data $4 (i32.const 1228) "<") + (data $4.1 (i32.const 1240) "\02\00\00\00(\00\00\00A\00l\00l\00o\00c\00a\00t\00i\00o\00n\00 \00t\00o\00o\00 \00l\00a\00r\00g\00e") + (data $5 (i32.const 1292) "<") + (data $5.1 (i32.const 1304) "\02\00\00\00 \00\00\00~\00l\00i\00b\00/\00r\00t\00/\00i\00t\00c\00m\00s\00.\00t\00s") + (data $8 (i32.const 1420) "<") + (data $8.1 (i32.const 1432) "\02\00\00\00$\00\00\00I\00n\00d\00e\00x\00 \00o\00u\00t\00 \00o\00f\00 \00r\00a\00n\00g\00e") + (data $9 (i32.const 1484) ",") + (data $9.1 (i32.const 1496) "\02\00\00\00\14\00\00\00~\00l\00i\00b\00/\00r\00t\00.\00t\00s") (data $11 (i32.const 1564) "<") - (data $11.1 (i32.const 1576) "\02\00\00\00&\00\00\00~\00l\00i\00b\00/\00a\00r\00r\00a\00y\00b\00u\00f\00f\00e\00r\00.\00t\00s") - (data $12 (i32.const 1628) "<") - (data $12.1 (i32.const 1640) "\02\00\00\00$\00\00\00K\00e\00y\00 \00d\00o\00e\00s\00 \00n\00o\00t\00 \00e\00x\00i\00s\00t") - (data $13 (i32.const 1692) ",") - (data $13.1 (i32.const 1704) "\02\00\00\00\16\00\00\00~\00l\00i\00b\00/\00m\00a\00p\00.\00t\00s") - (data $14 (i32.const 1740) "|") - (data $14.1 (i32.const 1752) "\02\00\00\00^\00\00\00U\00n\00e\00x\00p\00e\00c\00t\00e\00d\00 \00\'\00n\00u\00l\00l\00\'\00 \00(\00n\00o\00t\00 \00a\00s\00s\00i\00g\00n\00e\00d\00 \00o\00r\00 \00f\00a\00i\00l\00e\00d\00 \00c\00a\00s\00t\00)") - (data $15 (i32.const 1868) "\1c") - (data $15.1 (i32.const 1880) "\02") + (data $11.1 (i32.const 1576) "\02\00\00\00\1e\00\00\00~\00l\00i\00b\00/\00r\00t\00/\00t\00l\00s\00f\00.\00t\00s") + (data $12 (i32.const 1628) ",") + (data $12.1 (i32.const 1640) "\02\00\00\00\1a\00\00\00~\00l\00i\00b\00/\00a\00r\00r\00a\00y\00.\00t\00s") + (data $13 (i32.const 1676) "|") + (data $13.1 (i32.const 1688) "\02\00\00\00^\00\00\00E\00l\00e\00m\00e\00n\00t\00 \00t\00y\00p\00e\00 \00m\00u\00s\00t\00 \00b\00e\00 \00n\00u\00l\00l\00a\00b\00l\00e\00 \00i\00f\00 \00a\00r\00r\00a\00y\00 \00i\00s\00 \00h\00o\00l\00e\00y") + (data $14 (i32.const 1804) "\1c") + (data $14.1 (i32.const 1816) "\01") + (data $15 (i32.const 1836) "<") + (data $15.1 (i32.const 1848) "\02\00\00\00$\00\00\00K\00e\00y\00 \00d\00o\00e\00s\00 \00n\00o\00t\00 \00e\00x\00i\00s\00t") (data $16 (i32.const 1900) ",") - (data $16.1 (i32.const 1912) "\02\00\00\00\16\00\00\00h\00a\00s\00I\00n\00s\00t\00a\00n\00c\00e") - (data $17 (i32.const 1948) "<") - (data $17.1 (i32.const 1960) "\02\00\00\00$\00\00\00i\00s\00C\00o\00n\00c\00a\00t\00S\00p\00r\00e\00a\00d\00a\00b\00l\00e") - (data $18 (i32.const 2012) ",") - (data $18.1 (i32.const 2024) "\02\00\00\00\10\00\00\00i\00s\00R\00e\00g\00E\00x\00p") - (data $19 (i32.const 2060) "\1c") - (data $19.1 (i32.const 2072) "\02\00\00\00\n\00\00\00m\00a\00t\00c\00h") - (data $20 (i32.const 2092) ",") - (data $20.1 (i32.const 2104) "\02\00\00\00\0e\00\00\00r\00e\00p\00l\00a\00c\00e") - (data $21 (i32.const 2140) "\1c") - (data $21.1 (i32.const 2152) "\02\00\00\00\0c\00\00\00s\00e\00a\00r\00c\00h") - (data $22 (i32.const 2172) ",") - (data $22.1 (i32.const 2184) "\02\00\00\00\0e\00\00\00s\00p\00e\00c\00i\00e\00s") - (data $23 (i32.const 2220) "\1c") - (data $23.1 (i32.const 2232) "\02\00\00\00\n\00\00\00s\00p\00l\00i\00t") - (data $24 (i32.const 2252) ",") - (data $24.1 (i32.const 2264) "\02\00\00\00\16\00\00\00t\00o\00P\00r\00i\00m\00i\00t\00i\00v\00e") - (data $25 (i32.const 2300) ",") - (data $25.1 (i32.const 2312) "\02\00\00\00\16\00\00\00t\00o\00S\00t\00r\00i\00n\00g\00T\00a\00g") - (data $26 (i32.const 2348) ",") - (data $26.1 (i32.const 2360) "\02\00\00\00\16\00\00\00u\00n\00s\00c\00o\00p\00a\00b\00l\00e\00s") - (data $27 (i32.const 2396) ",") - (data $27.1 (i32.const 2408) "\02\00\00\00\0e\00\00\00S\00y\00m\00b\00o\00l\00(") - (data $28 (i32.const 2444) "\1c") - (data $28.1 (i32.const 2456) "\02\00\00\00\02\00\00\00)") - (data $29 (i32.const 2476) ",") - (data $29.1 (i32.const 2488) "\02\00\00\00\10\00\00\00S\00y\00m\00b\00o\00l\00(\00)") - (data $30 (i32.const 2524) ",") - (data $30.1 (i32.const 2536) "\02\00\00\00\16\00\00\00S\00y\00m\00b\00o\00l\00(\001\002\003\00)") - (data $31 (i32.const 2572) "<") - (data $31.1 (i32.const 2584) "\02\00\00\00&\00\00\00S\00y\00m\00b\00o\00l\00(\00h\00a\00s\00I\00n\00s\00t\00a\00n\00c\00e\00)") - (data $32 (i32.const 2636) "L") - (data $32.1 (i32.const 2648) "\02\00\00\004\00\00\00S\00y\00m\00b\00o\00l\00(\00i\00s\00C\00o\00n\00c\00a\00t\00S\00p\00r\00e\00a\00d\00a\00b\00l\00e\00)") - (data $33 (i32.const 2720) "\06\00\00\00 \00\00\00 \00\00\00 \00\00\00\00\00\00\00\10\01\82\00\10A\02") + (data $16.1 (i32.const 1912) "\02\00\00\00\16\00\00\00~\00l\00i\00b\00/\00m\00a\00p\00.\00t\00s") + (data $17 (i32.const 1948) "\1c") + (data $17.1 (i32.const 1960) "\01") + (data $18 (i32.const 1980) "|") + (data $18.1 (i32.const 1992) "\02\00\00\00^\00\00\00U\00n\00e\00x\00p\00e\00c\00t\00e\00d\00 \00\'\00n\00u\00l\00l\00\'\00 \00(\00n\00o\00t\00 \00a\00s\00s\00i\00g\00n\00e\00d\00 \00o\00r\00 \00f\00a\00i\00l\00e\00d\00 \00c\00a\00s\00t\00)") + (data $19 (i32.const 2108) "\1c") + (data $19.1 (i32.const 2120) "\02") + (data $20 (i32.const 2140) ",") + (data $20.1 (i32.const 2152) "\02\00\00\00\16\00\00\00h\00a\00s\00I\00n\00s\00t\00a\00n\00c\00e") + (data $21 (i32.const 2188) "<") + (data $21.1 (i32.const 2200) "\02\00\00\00$\00\00\00i\00s\00C\00o\00n\00c\00a\00t\00S\00p\00r\00e\00a\00d\00a\00b\00l\00e") + (data $22 (i32.const 2252) ",") + (data $22.1 (i32.const 2264) "\02\00\00\00\10\00\00\00i\00s\00R\00e\00g\00E\00x\00p") + (data $23 (i32.const 2300) "\1c") + (data $23.1 (i32.const 2312) "\02\00\00\00\n\00\00\00m\00a\00t\00c\00h") + (data $24 (i32.const 2332) ",") + (data $24.1 (i32.const 2344) "\02\00\00\00\0e\00\00\00r\00e\00p\00l\00a\00c\00e") + (data $25 (i32.const 2380) "\1c") + (data $25.1 (i32.const 2392) "\02\00\00\00\0c\00\00\00s\00e\00a\00r\00c\00h") + (data $26 (i32.const 2412) ",") + (data $26.1 (i32.const 2424) "\02\00\00\00\0e\00\00\00s\00p\00e\00c\00i\00e\00s") + (data $27 (i32.const 2460) "\1c") + (data $27.1 (i32.const 2472) "\02\00\00\00\n\00\00\00s\00p\00l\00i\00t") + (data $28 (i32.const 2492) ",") + (data $28.1 (i32.const 2504) "\02\00\00\00\16\00\00\00t\00o\00P\00r\00i\00m\00i\00t\00i\00v\00e") + (data $29 (i32.const 2540) ",") + (data $29.1 (i32.const 2552) "\02\00\00\00\16\00\00\00t\00o\00S\00t\00r\00i\00n\00g\00T\00a\00g") + (data $30 (i32.const 2588) ",") + (data $30.1 (i32.const 2600) "\02\00\00\00\16\00\00\00u\00n\00s\00c\00o\00p\00a\00b\00l\00e\00s") + (data $31 (i32.const 2636) ",") + (data $31.1 (i32.const 2648) "\02\00\00\00\0e\00\00\00S\00y\00m\00b\00o\00l\00(") + (data $32 (i32.const 2684) "\1c") + (data $32.1 (i32.const 2696) "\02\00\00\00\02\00\00\00)") + (data $33 (i32.const 2716) ",") + (data $33.1 (i32.const 2728) "\02\00\00\00\10\00\00\00S\00y\00m\00b\00o\00l\00(\00)") + (data $34 (i32.const 2764) ",") + (data $34.1 (i32.const 2776) "\02\00\00\00\16\00\00\00S\00y\00m\00b\00o\00l\00(\001\002\003\00)") + (data $35 (i32.const 2812) "<") + (data $35.1 (i32.const 2824) "\02\00\00\00&\00\00\00S\00y\00m\00b\00o\00l\00(\00h\00a\00s\00I\00n\00s\00t\00a\00n\00c\00e\00)") + (data $36 (i32.const 2876) "L") + (data $36.1 (i32.const 2888) "\02\00\00\004\00\00\00S\00y\00m\00b\00o\00l\00(\00i\00s\00C\00o\00n\00c\00a\00t\00S\00p\00r\00e\00a\00d\00a\00b\00l\00e\00)") + (data $37 (i32.const 2960) "\0b\00\00\00 \00\00\00 \00\00\00 \00\00\00\00\00\00\00\10\01\82\00\00\00\00\00\02A\00\00\02\t\00\00\10A\02\00\00\00\00\00\02A") (export "memory" (memory $0)) (export "_start" (func $~start)) (func $~lib/rt/itcms/visitRoots @@ -137,13 +145,15 @@ local.get $0 call $~lib/rt/itcms/__visit end - i32.const 1328 + i32.const 1440 call $~lib/rt/itcms/__visit - i32.const 1536 + i32.const 1136 call $~lib/rt/itcms/__visit - i32.const 1648 + i32.const 1696 call $~lib/rt/itcms/__visit - i32.const 1136 + i32.const 1856 + call $~lib/rt/itcms/__visit + i32.const 1248 call $~lib/rt/itcms/__visit global.get $~lib/rt/itcms/pinSpace local.tee $1 @@ -164,7 +174,7 @@ i32.ne if i32.const 0 - i32.const 1200 + i32.const 1312 i32.const 160 i32.const 16 call $~lib/builtins/abort @@ -197,7 +207,7 @@ i32.eqz if i32.const 0 - i32.const 1200 + i32.const 1312 i32.const 148 i32.const 30 call $~lib/builtins/abort @@ -206,7 +216,7 @@ local.get $1 global.set $~lib/rt/itcms/iter end - block $__inlined_func$~lib/rt/itcms/Object#unlink$246 + block $__inlined_func$~lib/rt/itcms/Object#unlink$301 local.get $0 i32.load offset=4 i32.const -4 @@ -218,19 +228,19 @@ i32.load offset=8 i32.eqz local.get $0 - i32.const 35516 + i32.const 35776 i32.lt_u i32.and i32.eqz if i32.const 0 - i32.const 1200 + i32.const 1312 i32.const 128 i32.const 18 call $~lib/builtins/abort unreachable end - br $__inlined_func$~lib/rt/itcms/Object#unlink$246 + br $__inlined_func$~lib/rt/itcms/Object#unlink$301 end local.get $0 i32.load offset=8 @@ -238,7 +248,7 @@ i32.eqz if i32.const 0 - i32.const 1200 + i32.const 1312 i32.const 132 i32.const 16 call $~lib/builtins/abort @@ -267,12 +277,12 @@ i32.const 1 else local.get $1 - i32.const 2720 + i32.const 2960 i32.load i32.gt_u if - i32.const 1328 - i32.const 1392 + i32.const 1440 + i32.const 1504 i32.const 21 i32.const 28 call $~lib/builtins/abort @@ -281,7 +291,7 @@ local.get $1 i32.const 2 i32.shl - i32.const 2724 + i32.const 2964 i32.add i32.load i32.const 32 @@ -352,7 +362,7 @@ i32.eqz if i32.const 0 - i32.const 1472 + i32.const 1584 i32.const 268 i32.const 14 call $~lib/builtins/abort @@ -366,7 +376,7 @@ i32.lt_u if i32.const 0 - i32.const 1472 + i32.const 1584 i32.const 270 i32.const 14 call $~lib/builtins/abort @@ -412,7 +422,7 @@ i32.eqz if i32.const 0 - i32.const 1472 + i32.const 1584 i32.const 284 i32.const 14 call $~lib/builtins/abort @@ -495,7 +505,7 @@ i32.eqz if i32.const 0 - i32.const 1472 + i32.const 1584 i32.const 201 i32.const 14 call $~lib/builtins/abort @@ -509,7 +519,7 @@ i32.eqz if i32.const 0 - i32.const 1472 + i32.const 1584 i32.const 203 i32.const 14 call $~lib/builtins/abort @@ -570,7 +580,7 @@ i32.eqz if i32.const 0 - i32.const 1472 + i32.const 1584 i32.const 221 i32.const 16 call $~lib/builtins/abort @@ -603,7 +613,7 @@ i32.lt_u if i32.const 0 - i32.const 1472 + i32.const 1584 i32.const 233 i32.const 14 call $~lib/builtins/abort @@ -618,7 +628,7 @@ i32.ne if i32.const 0 - i32.const 1472 + i32.const 1584 i32.const 234 i32.const 14 call $~lib/builtins/abort @@ -669,7 +679,7 @@ i32.eqz if i32.const 0 - i32.const 1472 + i32.const 1584 i32.const 251 i32.const 14 call $~lib/builtins/abort @@ -741,7 +751,7 @@ i64.lt_u if i32.const 0 - i32.const 1472 + i32.const 1584 i32.const 382 i32.const 14 call $~lib/builtins/abort @@ -766,7 +776,7 @@ i32.gt_u if i32.const 0 - i32.const 1472 + i32.const 1584 i32.const 389 i32.const 16 call $~lib/builtins/abort @@ -793,7 +803,7 @@ i32.gt_u if i32.const 0 - i32.const 1472 + i32.const 1584 i32.const 402 i32.const 5 call $~lib/builtins/abort @@ -865,10 +875,10 @@ if unreachable end - i32.const 35520 + i32.const 35776 i32.const 0 i32.store - i32.const 37088 + i32.const 37344 i32.const 0 i32.store loop $for-loop|0 @@ -879,7 +889,7 @@ local.get $0 i32.const 2 i32.shl - i32.const 35520 + i32.const 35776 i32.add i32.const 0 i32.store offset=4 @@ -897,7 +907,7 @@ i32.add i32.const 2 i32.shl - i32.const 35520 + i32.const 35776 i32.add i32.const 0 i32.store offset=96 @@ -915,14 +925,14 @@ br $for-loop|0 end end - i32.const 35520 - i32.const 37092 + i32.const 35776 + i32.const 37348 memory.size i64.extend_i32_s i64.const 16 i64.shl call $~lib/rt/tlsf/addMemory - i32.const 35520 + i32.const 35776 global.set $~lib/rt/tlsf/ROOT ) (func $~lib/rt/itcms/step (result i32) @@ -1007,7 +1017,7 @@ local.set $0 loop $while-continue|0 local.get $0 - i32.const 35516 + i32.const 35776 i32.lt_u if local.get $0 @@ -1096,14 +1106,14 @@ i32.ne if i32.const 0 - i32.const 1200 + i32.const 1312 i32.const 229 i32.const 20 call $~lib/builtins/abort unreachable end local.get $0 - i32.const 35516 + i32.const 35776 i32.lt_u if local.get $0 @@ -1126,7 +1136,7 @@ i32.const 4 i32.add local.tee $0 - i32.const 35516 + i32.const 35776 i32.ge_u if global.get $~lib/rt/tlsf/ROOT @@ -1155,7 +1165,7 @@ end if i32.const 0 - i32.const 1472 + i32.const 1584 i32.const 562 i32.const 3 call $~lib/builtins/abort @@ -1239,7 +1249,7 @@ i32.eqz if i32.const 0 - i32.const 1472 + i32.const 1584 i32.const 334 i32.const 14 call $~lib/builtins/abort @@ -1291,7 +1301,7 @@ i32.eqz if i32.const 0 - i32.const 1472 + i32.const 1584 i32.const 347 i32.const 18 call $~lib/builtins/abort @@ -1323,8 +1333,8 @@ i32.const 1073741804 i32.ge_u if - i32.const 1136 - i32.const 1200 + i32.const 1248 + i32.const 1312 i32.const 261 i32.const 31 call $~lib/builtins/abort @@ -1388,8 +1398,8 @@ i32.const 1073741820 i32.gt_u if - i32.const 1136 - i32.const 1472 + i32.const 1248 + i32.const 1584 i32.const 461 i32.const 29 call $~lib/builtins/abort @@ -1491,7 +1501,7 @@ i32.eqz if i32.const 0 - i32.const 1472 + i32.const 1584 i32.const 499 i32.const 16 call $~lib/builtins/abort @@ -1506,7 +1516,7 @@ i32.gt_u if i32.const 0 - i32.const 1472 + i32.const 1584 i32.const 501 i32.const 14 call $~lib/builtins/abort @@ -1525,7 +1535,7 @@ i32.and if i32.const 0 - i32.const 1472 + i32.const 1584 i32.const 361 i32.const 14 call $~lib/builtins/abort @@ -1641,7 +1651,7 @@ i32.eqz if i32.const 0 - i32.const 1200 + i32.const 1312 i32.const 295 i32.const 14 call $~lib/builtins/abort @@ -1689,155 +1699,269 @@ end end ) + (func $"~lib/array/Array<~lib/map/KeyValue<~lib/string/String,usize>>~visit" (param $0 i32) + (local $1 i32) + (local $2 i32) + (local $3 i32) + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.sub + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 3008 + i32.lt_s + if + i32.const 35808 + i32.const 35856 + i32.const 1 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + local.get $0 + i32.load offset=4 + local.set $1 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + local.get $1 + local.get $0 + i32.load offset=12 + i32.const 2 + i32.shl + i32.add + local.set $2 + loop $while-continue|0 + local.get $1 + local.get $2 + i32.lt_u + if + local.get $1 + i32.load + local.tee $3 + if + local.get $3 + call $~lib/rt/itcms/__visit + end + local.get $1 + i32.const 4 + i32.add + local.set $1 + br $while-continue|0 + end + end + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + local.get $0 + i32.load + call $~lib/rt/itcms/__visit + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + ) (func $~lib/rt/__visit_members (param $0 i32) (local $1 i32) (local $2 i32) block $folding-inner1 block $folding-inner0 block $invalid - block $"~lib/map/Map" - block $"~lib/map/Map<~lib/string/String,usize>" - block $~lib/arraybuffer/ArrayBufferView - block $~lib/string/String - block $~lib/arraybuffer/ArrayBuffer - block $~lib/object/Object - local.get $0 - i32.const 8 + block $"~lib/array/Array<~lib/map/KeyValue>" + block $"~lib/map/KeyValue" + block $"~lib/map/Map" + block $~lib/array/Array + block $"~lib/array/Array<~lib/map/KeyValue<~lib/string/String,usize>>" + block $"~lib/map/KeyValue<~lib/string/String,usize>" + block $"~lib/map/Map<~lib/string/String,usize>" + block $~lib/arraybuffer/ArrayBufferView + block $~lib/string/String + block $~lib/arraybuffer/ArrayBuffer + block $~lib/object/Object + local.get $0 + i32.const 8 + i32.sub + i32.load + br_table $~lib/object/Object $~lib/arraybuffer/ArrayBuffer $~lib/string/String $~lib/arraybuffer/ArrayBufferView $"~lib/map/Map<~lib/string/String,usize>" $"~lib/map/KeyValue<~lib/string/String,usize>" $"~lib/array/Array<~lib/map/KeyValue<~lib/string/String,usize>>" $~lib/array/Array $"~lib/map/Map" $"~lib/map/KeyValue" $"~lib/array/Array<~lib/map/KeyValue>" $invalid + end + return + end + return + end + return + end + local.get $0 + i32.load + call $~lib/rt/itcms/__visit + return + end + global.get $~lib/memory/__stack_pointer + i32.const 4 i32.sub + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 3008 + i32.lt_s + br_if $folding-inner0 + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + local.get $0 i32.load - br_table $~lib/object/Object $~lib/arraybuffer/ArrayBuffer $~lib/string/String $~lib/arraybuffer/ArrayBufferView $"~lib/map/Map<~lib/string/String,usize>" $"~lib/map/Map" $invalid + call $~lib/rt/itcms/__visit + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + local.get $0 + i32.load offset=8 + local.tee $2 + local.set $1 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + local.get $1 + local.get $0 + i32.load offset=16 + i32.const 12 + i32.mul + i32.add + local.set $0 + loop $while-continue|0 + local.get $0 + local.get $1 + i32.gt_u + if + local.get $1 + i32.load offset=8 + i32.const 1 + i32.and + i32.eqz + if + local.get $1 + i32.load + call $~lib/rt/itcms/__visit + end + local.get $1 + i32.const 12 + i32.add + local.set $1 + br $while-continue|0 + end + end + br $folding-inner1 end + local.get $0 + i32.load + call $~lib/rt/itcms/__visit return end + local.get $0 + call $"~lib/array/Array<~lib/map/KeyValue<~lib/string/String,usize>>~visit" return end + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.sub + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 3008 + i32.lt_s + br_if $folding-inner0 + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + local.get $0 + i32.load + call $~lib/rt/itcms/__visit + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer return end + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.sub + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 3008 + i32.lt_s + br_if $folding-inner0 + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store local.get $0 i32.load call $~lib/rt/itcms/__visit - return - end - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.sub - global.set $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - i32.const 2748 - i32.lt_s - br_if $folding-inner0 - global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.store - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store - local.get $0 - i32.load - call $~lib/rt/itcms/__visit - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store - local.get $0 - i32.load offset=8 - local.tee $2 - local.set $1 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store - local.get $1 - local.get $0 - i32.load offset=16 - i32.const 12 - i32.mul - i32.add - local.set $0 - loop $while-continue|0 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + local.get $0 + i32.load offset=8 + local.tee $2 + local.set $1 + global.get $~lib/memory/__stack_pointer local.get $0 + i32.store local.get $1 - i32.gt_u - if + local.get $0 + i32.load offset=16 + i32.const 12 + i32.mul + i32.add + local.set $0 + loop $while-continue|01 + local.get $0 local.get $1 - i32.load offset=8 - i32.const 1 - i32.and - i32.eqz + i32.gt_u if local.get $1 - i32.load - call $~lib/rt/itcms/__visit + i32.load offset=8 + i32.const 1 + i32.and + i32.eqz + if + local.get $1 + i32.load offset=4 + call $~lib/rt/itcms/__visit + end + local.get $1 + i32.const 12 + i32.add + local.set $1 + br $while-continue|01 end - local.get $1 - i32.const 12 - i32.add - local.set $1 - br $while-continue|0 end + br $folding-inner1 end - br $folding-inner1 - end - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.sub - global.set $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - i32.const 2748 - i32.lt_s - br_if $folding-inner0 - global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.store - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store - local.get $0 - i32.load - call $~lib/rt/itcms/__visit - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store - local.get $0 - i32.load offset=8 - local.tee $2 - local.set $1 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store - local.get $1 - local.get $0 - i32.load offset=16 - i32.const 12 - i32.mul - i32.add - local.set $0 - loop $while-continue|01 local.get $0 - local.get $1 - i32.gt_u - if - local.get $1 - i32.load offset=8 - i32.const 1 - i32.and - i32.eqz - if - local.get $1 - i32.load offset=4 - call $~lib/rt/itcms/__visit - end - local.get $1 - i32.const 12 - i32.add - local.set $1 - br $while-continue|01 - end + i32.load offset=4 + call $~lib/rt/itcms/__visit + return end - br $folding-inner1 + local.get $0 + call $"~lib/array/Array<~lib/map/KeyValue<~lib/string/String,usize>>~visit" + return end unreachable end - i32.const 35536 - i32.const 35584 + i32.const 35808 + i32.const 35856 i32.const 1 i32.const 1 call $~lib/builtins/abort @@ -1859,38 +1983,67 @@ global.set $~started call $start:std/symbol ) - (func $~lib/util/hash/HASH<~lib/string/String> (param $0 i32) (result i32) - (local $1 i32) - (local $2 i32) - (local $3 i32) - (local $4 i32) - (local $5 i32) - (local $6 i32) - (local $7 i32) + (func $"~lib/array/Array<~lib/map/KeyValue<~lib/string/String,usize>>#get:length" (param $0 i32) (result i32) global.get $~lib/memory/__stack_pointer - i32.const 8 + i32.const 4 i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 2748 + i32.const 3008 i32.lt_s if - i32.const 35536 - i32.const 35584 + i32.const 35808 + i32.const 35856 i32.const 1 i32.const 1 call $~lib/builtins/abort unreachable end global.get $~lib/memory/__stack_pointer - i64.const 0 - i64.store - block $~lib/util/hash/hashStr|inlined.0 (result i32) - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store - i32.const 0 - local.get $0 + i32.const 0 + i32.store + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + local.get $0 + i32.load offset=12 + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + ) + (func $~lib/util/hash/HASH<~lib/string/String> (param $0 i32) (result i32) + (local $1 i32) + (local $2 i32) + (local $3 i32) + (local $4 i32) + (local $5 i32) + (local $6 i32) + (local $7 i32) + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.sub + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 3008 + i32.lt_s + if + i32.const 35808 + i32.const 35856 + i32.const 1 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store + block $~lib/util/hash/hashStr|inlined.0 (result i32) + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + i32.const 0 + local.get $0 i32.eqz br_if $~lib/util/hash/hashStr|inlined.0 drop @@ -2080,6 +2233,245 @@ i32.add global.set $~lib/memory/__stack_pointer ) + (func $"~lib/map/Map<~lib/string/String,usize>#rehash" (param $0 i32) (param $1 i32) + (local $2 i32) + (local $3 i32) + (local $4 i32) + (local $5 i32) + (local $6 i32) + (local $7 i32) + (local $8 i32) + global.get $~lib/memory/__stack_pointer + i32.const 20 + i32.sub + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 3008 + i32.lt_s + if + i32.const 35808 + i32.const 35856 + i32.const 1 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.const 20 + memory.fill + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.const 1 + i32.add + local.tee $2 + i32.const 2 + i32.shl + call $~lib/arraybuffer/ArrayBuffer#constructor + local.tee $6 + i32.store + global.get $~lib/memory/__stack_pointer + local.get $2 + i32.const 3 + i32.shl + i32.const 3 + i32.div_s + local.tee $5 + i32.const 12 + i32.mul + call $~lib/arraybuffer/ArrayBuffer#constructor + local.tee $3 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=8 + local.get $0 + i32.load offset=8 + local.set $7 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=8 + local.get $7 + local.get $0 + i32.load offset=16 + i32.const 12 + i32.mul + i32.add + local.set $4 + local.get $3 + local.set $2 + loop $while-continue|0 + local.get $4 + local.get $7 + i32.ne + if + local.get $7 + i32.load offset=8 + i32.const 1 + i32.and + i32.eqz + if + global.get $~lib/memory/__stack_pointer + local.get $7 + i32.load + local.tee $8 + i32.store offset=12 + global.get $~lib/memory/__stack_pointer + local.get $8 + i32.store offset=8 + local.get $2 + local.get $8 + i32.store + local.get $2 + local.get $7 + i32.load offset=4 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + local.get $8 + i32.store offset=8 + local.get $2 + local.get $6 + local.get $8 + call $~lib/util/hash/HASH<~lib/string/String> + local.get $1 + i32.and + i32.const 2 + i32.shl + i32.add + local.tee $8 + i32.load + i32.store offset=8 + local.get $8 + local.get $2 + i32.store + local.get $2 + i32.const 12 + i32.add + local.set $2 + end + local.get $7 + i32.const 12 + i32.add + local.set $7 + br $while-continue|0 + end + end + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=8 + global.get $~lib/memory/__stack_pointer + local.get $6 + i32.store offset=16 + local.get $0 + local.get $6 + i32.store + local.get $0 + local.get $6 + i32.const 0 + call $~lib/rt/itcms/__link + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=8 + local.get $0 + local.get $1 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=8 + global.get $~lib/memory/__stack_pointer + local.get $3 + i32.store offset=16 + local.get $0 + local.get $3 + i32.store offset=8 + local.get $0 + local.get $3 + i32.const 0 + call $~lib/rt/itcms/__link + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=8 + local.get $0 + local.get $5 + i32.store offset=12 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=8 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=16 + local.get $0 + local.get $0 + i32.load offset=20 + i32.store offset=16 + global.get $~lib/memory/__stack_pointer + i32.const 20 + i32.add + global.set $~lib/memory/__stack_pointer + ) + (func $"~lib/array/Array<~lib/map/KeyValue<~lib/string/String,usize>>#__get" (param $0 i32) (param $1 i32) (result i32) + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.sub + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 3008 + i32.lt_s + if + i32.const 35808 + i32.const 35856 + i32.const 1 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + local.get $1 + local.get $0 + i32.load offset=12 + i32.ge_u + if + i32.const 1440 + i32.const 1648 + i32.const 114 + i32.const 42 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.load offset=4 + local.get $1 + i32.const 2 + i32.shl + i32.add + i32.load + local.tee $0 + i32.store offset=4 + local.get $0 + i32.eqz + if + i32.const 1696 + i32.const 1648 + i32.const 118 + i32.const 40 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $0 + ) (func $~lib/string/String.__eq (param $0 i32) (param $1 i32) (result i32) (local $2 i32) (local $3 i32) @@ -2090,11 +2482,11 @@ i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 2748 + i32.const 3008 i32.lt_s if - i32.const 35536 - i32.const 35584 + i32.const 35808 + i32.const 35856 i32.const 1 i32.const 1 call $~lib/builtins/abort @@ -2193,7 +2585,7 @@ end end end - block $__inlined_func$~lib/util/string/compareImpl$88 + block $__inlined_func$~lib/util/string/compareImpl$106 loop $while-continue|1 local.get $0 local.tee $3 @@ -2213,7 +2605,7 @@ local.get $4 local.get $5 i32.ne - br_if $__inlined_func$~lib/util/string/compareImpl$88 + br_if $__inlined_func$~lib/util/string/compareImpl$106 local.get $2 i32.const 2 i32.add @@ -2242,18 +2634,18 @@ global.set $~lib/memory/__stack_pointer i32.const 0 ) - (func $"~lib/map/Map<~lib/string/String,usize>#find" (param $0 i32) (param $1 i32) (result i32) - (local $2 i32) + (func $"~lib/map/Map<~lib/string/String,usize>#find" (param $0 i32) (param $1 i32) (param $2 i32) (result i32) + (local $3 i32) global.get $~lib/memory/__stack_pointer i32.const 8 i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 2748 + i32.const 3008 i32.lt_s if - i32.const 35536 - i32.const 35584 + i32.const 35808 + i32.const 35856 i32.const 1 i32.const 1 call $~lib/builtins/abort @@ -2270,7 +2662,7 @@ global.get $~lib/memory/__stack_pointer local.get $0 i32.store - local.get $1 + local.get $2 local.get $0 i32.load offset=4 i32.and @@ -2278,11 +2670,11 @@ i32.shl i32.add i32.load - local.set $1 + local.set $2 loop $while-continue|0 - local.get $1 + local.get $2 if - local.get $1 + local.get $2 i32.load offset=8 local.tee $0 i32.const 1 @@ -2291,15 +2683,15 @@ i32.const 0 else global.get $~lib/memory/__stack_pointer - local.get $1 + local.get $2 i32.load - local.tee $2 + local.tee $3 i32.store global.get $~lib/memory/__stack_pointer - i32.const 1056 + local.get $1 i32.store offset=4 - local.get $2 - i32.const 1056 + local.get $3 + local.get $1 call $~lib/string/String.__eq end if @@ -2307,13 +2699,13 @@ i32.const 8 i32.add global.set $~lib/memory/__stack_pointer - local.get $1 + local.get $2 return end local.get $0 i32.const -2 i32.and - local.set $1 + local.set $2 br $while-continue|0 end end @@ -2323,7 +2715,8 @@ global.set $~lib/memory/__stack_pointer i32.const 0 ) - (func $"~lib/map/Map<~lib/string/String,usize>#set" (param $0 i32) (param $1 i32) + (func $"~lib/map/Map<~lib/string/String,usize>#constructor" (param $0 i32) (result i32) + (local $1 i32) (local $2 i32) (local $3 i32) (local $4 i32) @@ -2331,375 +2724,503 @@ (local $6 i32) (local $7 i32) (local $8 i32) - (local $9 i32) - (local $10 i32) global.get $~lib/memory/__stack_pointer - i32.const 12 + i32.const 20 i32.sub global.set $~lib/memory/__stack_pointer - block $folding-inner0 - global.get $~lib/memory/__stack_pointer - i32.const 2748 - i32.lt_s - br_if $folding-inner0 - global.get $~lib/memory/__stack_pointer - i64.const 0 - i64.store - global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.store offset=8 - global.get $~lib/memory/__stack_pointer - i32.const 1056 - i32.store - i32.const 1056 - call $~lib/util/hash/HASH<~lib/string/String> - local.set $6 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store + global.get $~lib/memory/__stack_pointer + i32.const 3008 + i32.lt_s + if + i32.const 35808 + i32.const 35856 + i32.const 1 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.const 20 + memory.fill + global.get $~lib/memory/__stack_pointer + i32.const 24 + i32.const 4 + call $~lib/rt/itcms/__new + local.tee $1 + i32.store + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + i32.const 16 + call $~lib/arraybuffer/ArrayBuffer#constructor + local.set $3 + global.get $~lib/memory/__stack_pointer + local.get $3 + i32.store offset=8 + local.get $1 + local.get $3 + i32.store + local.get $1 + local.get $3 + i32.const 0 + call $~lib/rt/itcms/__link + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + local.get $1 + i32.const 3 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + i32.const 48 + call $~lib/arraybuffer/ArrayBuffer#constructor + local.set $3 + global.get $~lib/memory/__stack_pointer + local.get $3 + i32.store offset=8 + local.get $1 + local.get $3 + i32.store offset=8 + local.get $1 + local.get $3 + i32.const 0 + call $~lib/rt/itcms/__link + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + local.get $1 + i32.const 4 + i32.store offset=12 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + local.get $1 + i32.const 0 + i32.store offset=16 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + local.get $1 + i32.const 0 + i32.store offset=20 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + local.get $0 + call $"~lib/array/Array<~lib/map/KeyValue<~lib/string/String,usize>>#get:length" + local.tee $5 + i32.const 0 + i32.gt_s + if global.get $~lib/memory/__stack_pointer - i32.const 1056 + local.get $1 i32.store offset=4 - local.get $0 - local.get $6 - call $"~lib/map/Map<~lib/string/String,usize>#find" - local.tee $2 + local.get $5 + local.get $1 + i32.load offset=12 + i32.ge_s if - local.get $2 + global.get $~lib/memory/__stack_pointer local.get $1 i32.store offset=4 - else - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store - local.get $0 - i32.load offset=16 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store - local.get $0 - i32.load offset=12 - i32.eq + local.get $1 + local.get $5 + i32.store offset=4 + end + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=8 + local.get $1 + local.get $1 + i32.load offset=4 + i32.const 1 + i32.shl + i32.const 1 + i32.or + call $"~lib/map/Map<~lib/string/String,usize>#rehash" + loop $for-loop|0 + local.get $2 + local.get $5 + i32.lt_s if global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store global.get $~lib/memory/__stack_pointer local.get $0 - i32.store offset=4 + i32.store offset=8 local.get $0 - i32.load offset=20 + local.get $2 + call $"~lib/array/Array<~lib/map/KeyValue<~lib/string/String,usize>>#__get" + local.set $4 global.get $~lib/memory/__stack_pointer - local.get $0 + local.get $4 i32.store offset=4 - local.get $0 - i32.load offset=12 - i32.const 3 - i32.mul - i32.const 4 - i32.div_s - i32.lt_s - if (result i32) - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 - i32.load offset=4 - else - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 - i32.load offset=4 - i32.const 1 - i32.shl - i32.const 1 - i32.or - end - local.set $7 - global.get $~lib/memory/__stack_pointer - i32.const 20 - i32.sub - global.set $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - i32.const 2748 - i32.lt_s - br_if $folding-inner0 - global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.const 20 - memory.fill - global.get $~lib/memory/__stack_pointer - local.get $7 - i32.const 1 - i32.add - local.tee $2 - i32.const 2 - i32.shl - call $~lib/arraybuffer/ArrayBuffer#constructor - local.tee $8 - i32.store - global.get $~lib/memory/__stack_pointer - local.get $2 - i32.const 3 - i32.shl - i32.const 3 - i32.div_s - local.tee $5 - i32.const 12 - i32.mul - call $~lib/arraybuffer/ArrayBuffer#constructor + local.get $4 + i32.load local.tee $3 - i32.store offset=4 + i32.store offset=12 global.get $~lib/memory/__stack_pointer local.get $0 i32.store offset=8 local.get $0 - i32.load offset=8 - local.set $9 + local.get $2 + call $"~lib/array/Array<~lib/map/KeyValue<~lib/string/String,usize>>#__get" + local.set $4 global.get $~lib/memory/__stack_pointer - local.get $0 + local.get $4 + i32.store offset=4 + local.get $4 + i32.load offset=4 + local.set $6 + global.get $~lib/memory/__stack_pointer + local.get $3 + i32.store offset=4 + local.get $3 + call $~lib/util/hash/HASH<~lib/string/String> + local.set $7 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + local.get $3 i32.store offset=8 - local.get $9 - local.get $0 - i32.load offset=16 - i32.const 12 - i32.mul - i32.add - local.set $4 + local.get $1 local.get $3 - local.set $2 - loop $while-continue|0 + local.get $7 + call $"~lib/map/Map<~lib/string/String,usize>#find" + local.tee $4 + if local.get $4 - local.get $9 - i32.ne - if - local.get $9 - i32.load offset=8 - i32.const 1 - i32.and - i32.eqz - if - global.get $~lib/memory/__stack_pointer - local.get $9 - i32.load - local.tee $10 - i32.store offset=12 - global.get $~lib/memory/__stack_pointer - local.get $10 - i32.store offset=8 - local.get $2 - local.get $10 - i32.store - local.get $2 - local.get $9 - i32.load offset=4 - i32.store offset=4 - global.get $~lib/memory/__stack_pointer - local.get $10 - i32.store offset=8 - local.get $2 - local.get $8 - local.get $10 - call $~lib/util/hash/HASH<~lib/string/String> - local.get $7 - i32.and - i32.const 2 - i32.shl - i32.add - local.tee $10 - i32.load - i32.store offset=8 - local.get $10 - local.get $2 - i32.store - local.get $2 - i32.const 12 - i32.add - local.set $2 - end - local.get $9 - i32.const 12 - i32.add - local.set $9 - br $while-continue|0 - end + local.get $6 + i32.store offset=4 + else + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.load offset=8 + local.tee $4 + i32.store offset=16 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=8 + local.get $1 + local.get $1 + i32.load offset=16 + local.tee $8 + i32.const 1 + i32.add + i32.store offset=16 + global.get $~lib/memory/__stack_pointer + local.get $3 + i32.store offset=4 + local.get $4 + local.get $8 + i32.const 12 + i32.mul + i32.add + local.tee $4 + local.get $3 + i32.store + local.get $1 + local.get $3 + i32.const 1 + call $~lib/rt/itcms/__link + local.get $4 + local.get $6 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=8 + local.get $1 + local.get $1 + i32.load offset=20 + i32.const 1 + i32.add + i32.store offset=20 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + local.get $1 + i32.load + local.set $3 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + local.get $4 + local.get $3 + local.get $7 + local.get $1 + i32.load offset=4 + i32.and + i32.const 2 + i32.shl + i32.add + local.tee $3 + i32.load + i32.store offset=8 + local.get $3 + local.get $4 + i32.store end - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=8 - global.get $~lib/memory/__stack_pointer - local.get $8 - i32.store offset=16 - local.get $0 - local.get $8 - i32.store - local.get $0 - local.get $8 - i32.const 0 - call $~lib/rt/itcms/__link - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=8 - local.get $0 - local.get $7 - i32.store offset=4 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=8 - global.get $~lib/memory/__stack_pointer - local.get $3 - i32.store offset=16 - local.get $0 - local.get $3 - i32.store offset=8 - local.get $0 - local.get $3 - i32.const 0 - call $~lib/rt/itcms/__link - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=8 - local.get $0 - local.get $5 - i32.store offset=12 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=8 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=16 - local.get $0 - local.get $0 - i32.load offset=20 - i32.store offset=16 - global.get $~lib/memory/__stack_pointer - i32.const 20 + local.get $2 + i32.const 1 i32.add - global.set $~lib/memory/__stack_pointer + local.set $2 + br $for-loop|0 end - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.load offset=8 - local.tee $2 - i32.store offset=8 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 - local.get $0 - i32.load offset=16 - local.tee $3 - i32.const 1 - i32.add - i32.store offset=16 - global.get $~lib/memory/__stack_pointer - i32.const 1056 - i32.store - local.get $2 - local.get $3 - i32.const 12 - i32.mul - i32.add - local.tee $2 - i32.const 1056 - i32.store - local.get $0 - i32.const 1056 - i32.const 1 - call $~lib/rt/itcms/__link - local.get $2 - local.get $1 - i32.store offset=4 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 - local.get $0 - i32.load offset=20 - i32.const 1 - i32.add - i32.store offset=20 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store - local.get $0 - i32.load - local.set $1 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store - local.get $2 - local.get $1 - local.get $6 - local.get $0 - i32.load offset=4 - i32.and - i32.const 2 - i32.shl - i32.add - local.tee $0 - i32.load - i32.store offset=8 - local.get $0 - local.get $2 - i32.store end - global.get $~lib/memory/__stack_pointer - i32.const 12 - i32.add - global.set $~lib/memory/__stack_pointer - return end - i32.const 35536 - i32.const 35584 - i32.const 1 - i32.const 1 - call $~lib/builtins/abort - unreachable + global.get $~lib/memory/__stack_pointer + i32.const 20 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $1 ) - (func $"~lib/map/Map#find" (param $0 i32) (param $1 i32) (param $2 i32) (result i32) + (func $"~lib/map/Map#rehash" (param $0 i32) (param $1 i32) + (local $2 i32) (local $3 i32) + (local $4 i32) + (local $5 i32) + (local $6 i32) + (local $7 i32) + (local $8 i32) + (local $9 i32) global.get $~lib/memory/__stack_pointer - i32.const 4 + i32.const 16 i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 2748 + i32.const 3008 i32.lt_s if - i32.const 35536 - i32.const 35584 + i32.const 35808 + i32.const 35856 i32.const 1 i32.const 1 call $~lib/builtins/abort unreachable end global.get $~lib/memory/__stack_pointer - i32.const 0 + i64.const 0 + i64.store + global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store offset=8 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.const 1 + i32.add + local.tee $2 + i32.const 2 + i32.shl + call $~lib/arraybuffer/ArrayBuffer#constructor + local.tee $7 i32.store global.get $~lib/memory/__stack_pointer + local.get $2 + i32.const 3 + i32.shl + i32.const 3 + i32.div_s + local.tee $6 + i32.const 12 + i32.mul + call $~lib/arraybuffer/ArrayBuffer#constructor + local.tee $3 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer local.get $0 - i32.store + i32.store offset=8 local.get $0 - i32.load + i32.load offset=8 + local.set $8 global.get $~lib/memory/__stack_pointer local.get $0 - i32.store - local.get $2 + i32.store offset=8 + local.get $8 local.get $0 - i32.load offset=4 - i32.and - i32.const 2 + i32.load offset=16 + i32.const 12 + i32.mul + i32.add + local.set $5 + local.get $3 + local.set $2 + loop $while-continue|0 + local.get $5 + local.get $8 + i32.ne + if + local.get $8 + i32.load offset=8 + i32.const 1 + i32.and + i32.eqz + if + local.get $2 + local.get $8 + i32.load + local.tee $9 + i32.store + global.get $~lib/memory/__stack_pointer + local.get $8 + i32.load offset=4 + local.tee $4 + i32.store offset=8 + local.get $2 + local.get $4 + i32.store offset=4 + local.get $2 + local.get $7 + local.get $1 + local.get $9 + i32.const -1028477379 + i32.mul + i32.const 374761397 + i32.add + i32.const 17 + i32.rotl + i32.const 668265263 + i32.mul + local.tee $4 + local.get $4 + i32.const 15 + i32.shr_u + i32.xor + i32.const -2048144777 + i32.mul + local.tee $4 + local.get $4 + i32.const 13 + i32.shr_u + i32.xor + i32.const -1028477379 + i32.mul + local.tee $4 + local.get $4 + i32.const 16 + i32.shr_u + i32.xor + i32.and + i32.const 2 + i32.shl + i32.add + local.tee $4 + i32.load + i32.store offset=8 + local.get $4 + local.get $2 + i32.store + local.get $2 + i32.const 12 + i32.add + local.set $2 + end + local.get $8 + i32.const 12 + i32.add + local.set $8 + br $while-continue|0 + end + end + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=8 + global.get $~lib/memory/__stack_pointer + local.get $7 + i32.store offset=12 + local.get $0 + local.get $7 + i32.store + local.get $0 + local.get $7 + i32.const 0 + call $~lib/rt/itcms/__link + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=8 + local.get $0 + local.get $1 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=8 + global.get $~lib/memory/__stack_pointer + local.get $3 + i32.store offset=12 + local.get $0 + local.get $3 + i32.store offset=8 + local.get $0 + local.get $3 + i32.const 0 + call $~lib/rt/itcms/__link + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=8 + local.get $0 + local.get $6 + i32.store offset=12 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=8 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=12 + local.get $0 + local.get $0 + i32.load offset=20 + i32.store offset=16 + global.get $~lib/memory/__stack_pointer + i32.const 16 + i32.add + global.set $~lib/memory/__stack_pointer + ) + (func $"~lib/map/Map#find" (param $0 i32) (param $1 i32) (param $2 i32) (result i32) + (local $3 i32) + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.sub + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 3008 + i32.lt_s + if + i32.const 35808 + i32.const 35856 + i32.const 1 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + local.get $0 + i32.load + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + local.get $2 + local.get $0 + i32.load offset=4 + i32.and + i32.const 2 i32.shl i32.add i32.load @@ -2741,7 +3262,8 @@ global.set $~lib/memory/__stack_pointer i32.const 0 ) - (func $"~lib/map/Map#set" (param $0 i32) (param $1 i32) + (func $"~lib/map/Map#constructor" (param $0 i32) (result i32) + (local $1 i32) (local $2 i32) (local $3 i32) (local $4 i32) @@ -2749,343 +3271,381 @@ (local $6 i32) (local $7 i32) (local $8 i32) - (local $9 i32) - (local $10 i32) - (local $11 i32) global.get $~lib/memory/__stack_pointer - i32.const 12 + i32.const 20 i32.sub global.set $~lib/memory/__stack_pointer - block $folding-inner0 + global.get $~lib/memory/__stack_pointer + i32.const 3008 + i32.lt_s + if + i32.const 35808 + i32.const 35856 + i32.const 1 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.const 20 + memory.fill + global.get $~lib/memory/__stack_pointer + i32.const 24 + i32.const 8 + call $~lib/rt/itcms/__new + local.tee $1 + i32.store + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + i32.const 16 + call $~lib/arraybuffer/ArrayBuffer#constructor + local.set $3 + global.get $~lib/memory/__stack_pointer + local.get $3 + i32.store offset=8 + local.get $1 + local.get $3 + i32.store + local.get $1 + local.get $3 + i32.const 0 + call $~lib/rt/itcms/__link + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + local.get $1 + i32.const 3 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + i32.const 48 + call $~lib/arraybuffer/ArrayBuffer#constructor + local.set $3 + global.get $~lib/memory/__stack_pointer + local.get $3 + i32.store offset=8 + local.get $1 + local.get $3 + i32.store offset=8 + local.get $1 + local.get $3 + i32.const 0 + call $~lib/rt/itcms/__link + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + local.get $1 + i32.const 4 + i32.store offset=12 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + local.get $1 + i32.const 0 + i32.store offset=16 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + local.get $1 + i32.const 0 + i32.store offset=20 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + local.get $0 + call $"~lib/array/Array<~lib/map/KeyValue<~lib/string/String,usize>>#get:length" + local.tee $5 + i32.const 0 + i32.gt_s + if global.get $~lib/memory/__stack_pointer - i32.const 2748 - i32.lt_s - br_if $folding-inner0 + local.get $1 + i32.store offset=4 + local.get $5 + local.get $1 + i32.load offset=12 + i32.ge_s + if + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + local.get $1 + local.get $5 + i32.store offset=4 + end global.get $~lib/memory/__stack_pointer - i64.const 0 - i64.store + local.get $1 + i32.store offset=4 global.get $~lib/memory/__stack_pointer - i32.const 0 + local.get $1 i32.store offset=8 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store - local.get $0 local.get $1 local.get $1 - i32.const -1028477379 - i32.mul - i32.const 374761397 - i32.add - i32.const 17 - i32.rotl - i32.const 668265263 - i32.mul - local.tee $2 - i32.const 15 - i32.shr_u - local.get $2 - i32.xor - i32.const -2048144777 - i32.mul - local.tee $2 - i32.const 13 - i32.shr_u - local.get $2 - i32.xor - i32.const -1028477379 - i32.mul - local.tee $2 - i32.const 16 - i32.shr_u - local.get $2 - i32.xor - local.tee $7 - call $"~lib/map/Map#find" - local.tee $2 - if - global.get $~lib/memory/__stack_pointer - i32.const 1056 - i32.store + i32.load offset=4 + i32.const 1 + i32.shl + i32.const 1 + i32.or + call $"~lib/map/Map#rehash" + loop $for-loop|0 local.get $2 - i32.const 1056 - i32.store offset=4 - local.get $0 - i32.const 1056 - i32.const 1 - call $~lib/rt/itcms/__link - else - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store - local.get $0 - i32.load offset=16 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store - local.get $0 - i32.load offset=12 - i32.eq + local.get $5 + i32.lt_s if global.get $~lib/memory/__stack_pointer local.get $0 - i32.store - global.get $~lib/memory/__stack_pointer + i32.store offset=8 local.get $0 + local.get $2 + call $"~lib/array/Array<~lib/map/KeyValue<~lib/string/String,usize>>#__get" + local.set $3 + global.get $~lib/memory/__stack_pointer + local.get $3 i32.store offset=4 - local.get $0 - i32.load offset=20 + local.get $3 + i32.load + local.set $6 + global.get $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer local.get $0 - i32.store offset=4 + i32.store offset=8 local.get $0 - i32.load offset=12 - i32.const 3 + local.get $2 + call $"~lib/array/Array<~lib/map/KeyValue<~lib/string/String,usize>>#__get" + local.set $4 + global.get $~lib/memory/__stack_pointer + local.get $4 + i32.store offset=4 + local.get $4 + i32.load offset=4 + local.tee $3 + i32.store offset=12 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + local.get $1 + local.get $6 + local.get $6 + i32.const -1028477379 i32.mul - i32.const 4 - i32.div_s - i32.lt_s - if (result i32) + i32.const 374761397 + i32.add + i32.const 17 + i32.rotl + i32.const 668265263 + i32.mul + local.tee $4 + i32.const 15 + i32.shr_u + local.get $4 + i32.xor + i32.const -2048144777 + i32.mul + local.tee $4 + i32.const 13 + i32.shr_u + local.get $4 + i32.xor + i32.const -1028477379 + i32.mul + local.tee $4 + i32.const 16 + i32.shr_u + local.get $4 + i32.xor + local.tee $7 + call $"~lib/map/Map#find" + local.tee $4 + if global.get $~lib/memory/__stack_pointer - local.get $0 + local.get $3 i32.store offset=4 - local.get $0 - i32.load offset=4 + local.get $4 + local.get $3 + i32.store offset=4 + local.get $1 + local.get $3 + i32.const 1 + call $~lib/rt/itcms/__link else global.get $~lib/memory/__stack_pointer - local.get $0 + local.get $1 i32.store offset=4 - local.get $0 - i32.load offset=4 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.load offset=8 + local.tee $4 + i32.store offset=16 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=8 + local.get $1 + local.get $1 + i32.load offset=16 + local.tee $8 i32.const 1 - i32.shl + i32.add + i32.store offset=16 + local.get $4 + local.get $8 + i32.const 12 + i32.mul + i32.add + local.tee $4 + local.get $6 + i32.store + global.get $~lib/memory/__stack_pointer + local.get $3 + i32.store offset=4 + local.get $4 + local.get $3 + i32.store offset=4 + local.get $1 + local.get $3 i32.const 1 - i32.or + call $~lib/rt/itcms/__link + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=8 + local.get $1 + local.get $1 + i32.load offset=20 + i32.const 1 + i32.add + i32.store offset=20 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + local.get $1 + i32.load + local.set $3 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + local.get $4 + local.get $3 + local.get $7 + local.get $1 + i32.load offset=4 + i32.and + i32.const 2 + i32.shl + i32.add + local.tee $3 + i32.load + i32.store offset=8 + local.get $3 + local.get $4 + i32.store end - local.set $8 - global.get $~lib/memory/__stack_pointer - i32.const 16 - i32.sub - global.set $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - i32.const 2748 - i32.lt_s - br_if $folding-inner0 - global.get $~lib/memory/__stack_pointer - i64.const 0 - i64.store - global.get $~lib/memory/__stack_pointer - i64.const 0 - i64.store offset=8 - global.get $~lib/memory/__stack_pointer - local.get $8 - i32.const 1 - i32.add - local.tee $2 - i32.const 2 - i32.shl - call $~lib/arraybuffer/ArrayBuffer#constructor - local.tee $9 - i32.store - global.get $~lib/memory/__stack_pointer local.get $2 - i32.const 3 - i32.shl - i32.const 3 - i32.div_s - local.tee $6 - i32.const 12 - i32.mul - call $~lib/arraybuffer/ArrayBuffer#constructor - local.tee $3 - i32.store offset=4 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=8 - local.get $0 - i32.load offset=8 - local.set $10 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=8 - local.get $10 - local.get $0 - i32.load offset=16 - i32.const 12 - i32.mul + i32.const 1 i32.add - local.set $5 - local.get $3 local.set $2 - loop $while-continue|0 - local.get $5 - local.get $10 - i32.ne - if - local.get $10 - i32.load offset=8 - i32.const 1 - i32.and - i32.eqz - if - local.get $2 - local.get $10 - i32.load - local.tee $11 - i32.store - global.get $~lib/memory/__stack_pointer - local.get $10 - i32.load offset=4 - local.tee $4 - i32.store offset=8 - local.get $2 - local.get $4 - i32.store offset=4 - local.get $2 - local.get $9 - local.get $8 - local.get $11 - i32.const -1028477379 - i32.mul - i32.const 374761397 - i32.add - i32.const 17 - i32.rotl - i32.const 668265263 - i32.mul - local.tee $4 - i32.const 15 - i32.shr_u - local.get $4 - i32.xor - i32.const -2048144777 - i32.mul - local.tee $4 - i32.const 13 - i32.shr_u - local.get $4 - i32.xor - i32.const -1028477379 - i32.mul - local.tee $4 - i32.const 16 - i32.shr_u - local.get $4 - i32.xor - i32.and - i32.const 2 - i32.shl - i32.add - local.tee $4 - i32.load - i32.store offset=8 - local.get $4 - local.get $2 - i32.store - local.get $2 - i32.const 12 - i32.add - local.set $2 - end - local.get $10 - i32.const 12 - i32.add - local.set $10 - br $while-continue|0 - end - end - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=8 - global.get $~lib/memory/__stack_pointer - local.get $9 - i32.store offset=12 - local.get $0 - local.get $9 - i32.store - local.get $0 - local.get $9 - i32.const 0 - call $~lib/rt/itcms/__link - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=8 - local.get $0 - local.get $8 - i32.store offset=4 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=8 - global.get $~lib/memory/__stack_pointer - local.get $3 - i32.store offset=12 - local.get $0 - local.get $3 - i32.store offset=8 - local.get $0 - local.get $3 - i32.const 0 - call $~lib/rt/itcms/__link - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=8 - local.get $0 - local.get $6 - i32.store offset=12 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=8 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=12 - local.get $0 - local.get $0 - i32.load offset=20 - i32.store offset=16 - global.get $~lib/memory/__stack_pointer - i32.const 16 - i32.add - global.set $~lib/memory/__stack_pointer + br $for-loop|0 end - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.load offset=8 - local.tee $2 - i32.store offset=8 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 - local.get $0 - i32.load offset=16 - local.tee $3 - i32.const 1 - i32.add - i32.store offset=16 - local.get $2 - local.get $3 - i32.const 12 - i32.mul - i32.add - local.tee $2 - local.get $1 - i32.store - global.get $~lib/memory/__stack_pointer - i32.const 1056 - i32.store - local.get $2 - i32.const 1056 - i32.store offset=4 - local.get $0 - i32.const 1056 - i32.const 1 - call $~lib/rt/itcms/__link + end + end + global.get $~lib/memory/__stack_pointer + i32.const 20 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $1 + ) + (func $"~lib/map/Map#set" (param $0 i32) (param $1 i32) + (local $2 i32) + (local $3 i32) + (local $4 i32) + global.get $~lib/memory/__stack_pointer + i32.const 12 + i32.sub + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 3008 + i32.lt_s + if + i32.const 35808 + i32.const 35856 + i32.const 1 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store offset=8 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + local.get $0 + local.get $1 + local.get $1 + i32.const -1028477379 + i32.mul + i32.const 374761397 + i32.add + i32.const 17 + i32.rotl + i32.const 668265263 + i32.mul + local.tee $2 + local.get $2 + i32.const 15 + i32.shr_u + i32.xor + i32.const -2048144777 + i32.mul + local.tee $2 + local.get $2 + i32.const 13 + i32.shr_u + i32.xor + i32.const -1028477379 + i32.mul + local.tee $2 + local.get $2 + i32.const 16 + i32.shr_u + i32.xor + local.tee $3 + call $"~lib/map/Map#find" + local.tee $2 + if + global.get $~lib/memory/__stack_pointer + i32.const 1056 + i32.store + local.get $2 + i32.const 1056 + i32.store offset=4 + local.get $0 + i32.const 1056 + i32.const 1 + call $~lib/rt/itcms/__link + else + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + local.get $0 + i32.load offset=16 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + local.get $0 + i32.load offset=12 + i32.eq + if global.get $~lib/memory/__stack_pointer local.get $0 i32.store @@ -3093,62 +3653,136 @@ local.get $0 i32.store offset=4 local.get $0 - local.get $0 i32.load offset=20 - i32.const 1 - i32.add - i32.store offset=20 + local.set $2 global.get $~lib/memory/__stack_pointer local.get $0 - i32.store - local.get $0 - i32.load - local.set $1 - global.get $~lib/memory/__stack_pointer + i32.store offset=4 local.get $0 - i32.store local.get $2 - local.get $1 - local.get $7 - local.get $0 - i32.load offset=4 - i32.and - i32.const 2 - i32.shl - i32.add - local.tee $0 - i32.load - i32.store offset=8 local.get $0 - local.get $2 - i32.store + i32.load offset=12 + i32.const 3 + i32.mul + i32.const 4 + i32.div_s + i32.lt_s + if (result i32) + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + local.get $0 + i32.load offset=4 + else + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + local.get $0 + i32.load offset=4 + i32.const 1 + i32.shl + i32.const 1 + i32.or + end + call $"~lib/map/Map#rehash" end global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.load offset=8 + local.tee $2 + i32.store offset=8 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + local.get $0 + local.get $0 + i32.load offset=16 + local.tee $4 + i32.const 1 + i32.add + i32.store offset=16 + local.get $2 + local.get $4 i32.const 12 + i32.mul i32.add - global.set $~lib/memory/__stack_pointer - return + local.tee $2 + local.get $1 + i32.store + global.get $~lib/memory/__stack_pointer + i32.const 1056 + i32.store + local.get $2 + i32.const 1056 + i32.store offset=4 + local.get $0 + i32.const 1056 + i32.const 1 + call $~lib/rt/itcms/__link + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + local.get $0 + local.get $0 + i32.load offset=20 + i32.const 1 + i32.add + i32.store offset=20 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + local.get $0 + i32.load + local.set $1 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + local.get $2 + local.get $1 + local.get $3 + local.get $0 + i32.load offset=4 + i32.and + i32.const 2 + i32.shl + i32.add + local.tee $0 + i32.load + i32.store offset=8 + local.get $0 + local.get $2 + i32.store end - i32.const 35536 - i32.const 35584 - i32.const 1 - i32.const 1 - call $~lib/builtins/abort - unreachable + global.get $~lib/memory/__stack_pointer + i32.const 12 + i32.add + global.set $~lib/memory/__stack_pointer ) (func $~lib/symbol/_Symbol.for (result i32) (local $0 i32) (local $1 i32) + (local $2 i32) + (local $3 i32) + (local $4 i32) global.get $~lib/memory/__stack_pointer i32.const 8 i32.sub global.set $~lib/memory/__stack_pointer - block $folding-inner1 - block $folding-inner0 + block $folding-inner2 + block $folding-inner1 global.get $~lib/memory/__stack_pointer - i32.const 2748 + i32.const 3008 i32.lt_s - br_if $folding-inner0 + br_if $folding-inner2 global.get $~lib/memory/__stack_pointer i64.const 0 i64.store @@ -3164,9 +3798,9 @@ i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 2748 + i32.const 3008 i32.lt_s - br_if $folding-inner0 + br_if $folding-inner2 global.get $~lib/memory/__stack_pointer i64.const 0 i64.store @@ -3184,6 +3818,7 @@ i32.store offset=8 local.get $0 i32.const 1056 + i32.const 1056 call $~lib/util/hash/HASH<~lib/string/String> call $"~lib/map/Map<~lib/string/String,usize>#find" i32.const 0 @@ -3205,9 +3840,9 @@ i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 2748 + i32.const 3008 i32.lt_s - br_if $folding-inner0 + br_if $folding-inner2 global.get $~lib/memory/__stack_pointer i64.const 0 i64.store @@ -3218,54 +3853,220 @@ local.get $0 i32.store global.get $~lib/memory/__stack_pointer - i32.const 1056 + i32.const 1056 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + i32.const 1056 + i32.store offset=8 + local.get $0 + i32.const 1056 + i32.const 1056 + call $~lib/util/hash/HASH<~lib/string/String> + call $"~lib/map/Map<~lib/string/String,usize>#find" + local.tee $0 + i32.eqz + if + i32.const 1856 + i32.const 1920 + i32.const 148 + i32.const 17 + call $~lib/builtins/abort + unreachable + end + local.get $0 + i32.load offset=4 + local.set $0 + global.get $~lib/memory/__stack_pointer + i32.const 12 + i32.add + global.set $~lib/memory/__stack_pointer + br $folding-inner1 + end + global.get $~lib/symbol/nextId + local.tee $0 + i32.const 1 + i32.add + global.set $~lib/symbol/nextId + local.get $0 + i32.eqz + if + unreachable + end + global.get $~lib/memory/__stack_pointer + global.get $~lib/symbol/stringToId + local.tee $1 + i32.store + global.get $~lib/memory/__stack_pointer + i32.const 1056 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + i32.const 12 + i32.sub + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 3008 + i32.lt_s + br_if $folding-inner2 + global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store offset=8 + global.get $~lib/memory/__stack_pointer + i32.const 1056 + i32.store + i32.const 1056 + call $~lib/util/hash/HASH<~lib/string/String> + local.set $2 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store + global.get $~lib/memory/__stack_pointer + i32.const 1056 + i32.store offset=4 + local.get $1 + i32.const 1056 + local.get $2 + call $"~lib/map/Map<~lib/string/String,usize>#find" + local.tee $3 + if + local.get $3 + local.get $0 + i32.store offset=4 + else + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store + local.get $1 + i32.load offset=16 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store + local.get $1 + i32.load offset=12 + i32.eq + if + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + local.get $1 + i32.load offset=20 + local.set $3 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + local.get $1 + local.get $3 + local.get $1 + i32.load offset=12 + i32.const 3 + i32.mul + i32.const 4 + i32.div_s + i32.lt_s + if (result i32) + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + local.get $1 + i32.load offset=4 + else + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + local.get $1 + i32.load offset=4 + i32.const 1 + i32.shl + i32.const 1 + i32.or + end + call $"~lib/map/Map<~lib/string/String,usize>#rehash" + end + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.load offset=8 + local.tee $3 + i32.store offset=8 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + local.get $1 + local.get $1 + i32.load offset=16 + local.tee $4 + i32.const 1 + i32.add + i32.store offset=16 + global.get $~lib/memory/__stack_pointer + i32.const 1056 + i32.store + local.get $3 + local.get $4 + i32.const 12 + i32.mul + i32.add + local.tee $3 + i32.const 1056 + i32.store + local.get $1 + i32.const 1056 + i32.const 1 + call $~lib/rt/itcms/__link + local.get $3 + local.get $0 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store + global.get $~lib/memory/__stack_pointer + local.get $1 i32.store offset=4 + local.get $1 + local.get $1 + i32.load offset=20 + i32.const 1 + i32.add + i32.store offset=20 global.get $~lib/memory/__stack_pointer - i32.const 1056 - i32.store offset=8 - local.get $0 - i32.const 1056 - call $~lib/util/hash/HASH<~lib/string/String> - call $"~lib/map/Map<~lib/string/String,usize>#find" - local.tee $0 - i32.eqz - if - i32.const 1648 - i32.const 1712 - i32.const 105 - i32.const 17 - call $~lib/builtins/abort - unreachable - end - local.get $0 - i32.load offset=4 - local.set $0 + local.get $1 + i32.store + local.get $1 + i32.load + local.set $4 global.get $~lib/memory/__stack_pointer - i32.const 12 + local.get $1 + i32.store + local.get $3 + local.get $4 + local.get $2 + local.get $1 + i32.load offset=4 + i32.and + i32.const 2 + i32.shl i32.add - global.set $~lib/memory/__stack_pointer - br $folding-inner1 - end - global.get $~lib/symbol/nextId - local.tee $0 - i32.const 1 - i32.add - global.set $~lib/symbol/nextId - local.get $0 - i32.eqz - if - unreachable + local.tee $1 + i32.load + i32.store offset=8 + local.get $1 + local.get $3 + i32.store end global.get $~lib/memory/__stack_pointer - global.get $~lib/symbol/stringToId - local.tee $1 - i32.store - global.get $~lib/memory/__stack_pointer - i32.const 1056 - i32.store offset=4 - local.get $1 - local.get $0 - call $"~lib/map/Map<~lib/string/String,usize>#set" + i32.const 12 + i32.add + global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer global.get $~lib/symbol/idToString local.tee $1 @@ -3276,20 +4077,20 @@ local.get $1 local.get $0 call $"~lib/map/Map#set" - br $folding-inner1 end - i32.const 35536 - i32.const 35584 - i32.const 1 - i32.const 1 - call $~lib/builtins/abort - unreachable + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $0 + return end - global.get $~lib/memory/__stack_pointer - i32.const 8 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $0 + i32.const 35808 + i32.const 35856 + i32.const 1 + i32.const 1 + call $~lib/builtins/abort + unreachable ) (func $"~lib/map/Map#has" (param $0 i32) (param $1 i32) (result i32) global.get $~lib/memory/__stack_pointer @@ -3297,11 +4098,11 @@ i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 2748 + i32.const 3008 i32.lt_s if - i32.const 35536 - i32.const 35584 + i32.const 35808 + i32.const 35856 i32.const 1 i32.const 1 call $~lib/builtins/abort @@ -3357,11 +4158,11 @@ i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 2748 + i32.const 3008 i32.lt_s if - i32.const 35536 - i32.const 35584 + i32.const 35808 + i32.const 35856 i32.const 1 i32.const 1 call $~lib/builtins/abort @@ -3407,9 +4208,9 @@ local.tee $0 i32.eqz if - i32.const 1648 - i32.const 1712 - i32.const 105 + i32.const 1856 + i32.const 1920 + i32.const 148 i32.const 17 call $~lib/builtins/abort unreachable @@ -3428,11 +4229,11 @@ i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 2748 + i32.const 3008 i32.lt_s if - i32.const 35536 - i32.const 35584 + i32.const 35808 + i32.const 35856 i32.const 1 i32.const 1 call $~lib/builtins/abort @@ -3474,7 +4275,7 @@ global.set $~lib/memory/__stack_pointer block $folding-inner0 global.get $~lib/memory/__stack_pointer - i32.const 2748 + i32.const 3008 i32.lt_s br_if $folding-inner0 global.get $~lib/memory/__stack_pointer @@ -3491,7 +4292,7 @@ i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 2748 + i32.const 3008 i32.lt_s br_if $folding-inner0 global.get $~lib/memory/__stack_pointer @@ -3511,7 +4312,7 @@ global.get $~lib/memory/__stack_pointer local.get $1 i32.store - block $__inlined_func$~lib/string/String#concat$253 + block $__inlined_func$~lib/string/String#concat$309 local.get $1 i32.const 20 i32.sub @@ -3528,9 +4329,9 @@ i32.const 8 i32.add global.set $~lib/memory/__stack_pointer - i32.const 1888 + i32.const 2128 local.set $0 - br $__inlined_func$~lib/string/String#concat$253 + br $__inlined_func$~lib/string/String#concat$309 end global.get $~lib/memory/__stack_pointer local.get $0 @@ -3560,8 +4361,8 @@ local.get $0 return end - i32.const 35536 - i32.const 35584 + i32.const 35808 + i32.const 35856 i32.const 1 i32.const 1 call $~lib/builtins/abort @@ -3575,11 +4376,11 @@ i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 2748 + i32.const 3008 i32.lt_s if - i32.const 35536 - i32.const 35584 + i32.const 35808 + i32.const 35856 i32.const 1 i32.const 1 call $~lib/builtins/abort @@ -3589,10 +4390,10 @@ i32.const 0 i32.const 20 memory.fill - i32.const 1888 + i32.const 2128 local.set $1 global.get $~lib/memory/__stack_pointer - i32.const 1888 + i32.const 2128 i32.store block $break|0 block $case11|0 @@ -3612,80 +4413,80 @@ i32.sub br_table $case0|0 $case1|0 $case2|0 $case3|0 $case4|0 $case5|0 $case6|0 $case7|0 $case8|0 $case9|0 $case10|0 $case11|0 end - i32.const 1920 + i32.const 2160 local.set $1 global.get $~lib/memory/__stack_pointer - i32.const 1920 + i32.const 2160 i32.store br $break|0 end - i32.const 1968 + i32.const 2208 local.set $1 global.get $~lib/memory/__stack_pointer - i32.const 1968 + i32.const 2208 i32.store br $break|0 end - i32.const 2032 + i32.const 2272 local.set $1 global.get $~lib/memory/__stack_pointer - i32.const 2032 + i32.const 2272 i32.store br $break|0 end - i32.const 2080 + i32.const 2320 local.set $1 global.get $~lib/memory/__stack_pointer - i32.const 2080 + i32.const 2320 i32.store br $break|0 end - i32.const 2112 + i32.const 2352 local.set $1 global.get $~lib/memory/__stack_pointer - i32.const 2112 + i32.const 2352 i32.store br $break|0 end - i32.const 2160 + i32.const 2400 local.set $1 global.get $~lib/memory/__stack_pointer - i32.const 2160 + i32.const 2400 i32.store br $break|0 end - i32.const 2192 + i32.const 2432 local.set $1 global.get $~lib/memory/__stack_pointer - i32.const 2192 + i32.const 2432 i32.store br $break|0 end - i32.const 2240 + i32.const 2480 local.set $1 global.get $~lib/memory/__stack_pointer - i32.const 2240 + i32.const 2480 i32.store br $break|0 end - i32.const 2272 + i32.const 2512 local.set $1 global.get $~lib/memory/__stack_pointer - i32.const 2272 + i32.const 2512 i32.store br $break|0 end - i32.const 2320 + i32.const 2560 local.set $1 global.get $~lib/memory/__stack_pointer - i32.const 2320 + i32.const 2560 i32.store br $break|0 end - i32.const 2368 + i32.const 2608 local.set $1 global.get $~lib/memory/__stack_pointer - i32.const 2368 + i32.const 2608 i32.store br $break|0 end @@ -3715,12 +4516,12 @@ end end global.get $~lib/memory/__stack_pointer - i32.const 2416 + i32.const 2656 i32.store offset=12 global.get $~lib/memory/__stack_pointer local.get $1 i32.store offset=16 - i32.const 2416 + i32.const 2656 local.get $1 call $~lib/string/String.__concat local.set $0 @@ -3728,10 +4529,10 @@ local.get $0 i32.store offset=4 global.get $~lib/memory/__stack_pointer - i32.const 2464 + i32.const 2704 i32.store offset=8 local.get $0 - i32.const 2464 + i32.const 2704 call $~lib/string/String.__concat global.get $~lib/memory/__stack_pointer i32.const 20 @@ -3747,7 +4548,7 @@ global.set $~lib/memory/__stack_pointer block $folding-inner0 global.get $~lib/memory/__stack_pointer - i32.const 2748 + i32.const 3008 i32.lt_s br_if $folding-inner0 global.get $~lib/memory/__stack_pointer @@ -3800,41 +4601,41 @@ memory.size i32.const 16 i32.shl - i32.const 35516 + i32.const 35776 i32.sub i32.const 1 i32.shr_u global.set $~lib/rt/itcms/threshold - i32.const 1252 - i32.const 1248 + i32.const 1364 + i32.const 1360 i32.store - i32.const 1256 - i32.const 1248 + i32.const 1368 + i32.const 1360 i32.store - i32.const 1248 + i32.const 1360 global.set $~lib/rt/itcms/pinSpace - i32.const 1284 - i32.const 1280 + i32.const 1396 + i32.const 1392 i32.store - i32.const 1288 - i32.const 1280 + i32.const 1400 + i32.const 1392 i32.store - i32.const 1280 + i32.const 1392 global.set $~lib/rt/itcms/toSpace - i32.const 1428 - i32.const 1424 + i32.const 1540 + i32.const 1536 i32.store - i32.const 1432 - i32.const 1424 + i32.const 1544 + i32.const 1536 i32.store - i32.const 1424 + i32.const 1536 global.set $~lib/rt/itcms/fromSpace global.get $~lib/memory/__stack_pointer i32.const 12 i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 2748 + i32.const 3008 i32.lt_s br_if $folding-inner0 global.get $~lib/memory/__stack_pointer @@ -3844,79 +4645,30 @@ i32.const 0 i32.store offset=8 global.get $~lib/memory/__stack_pointer - i32.const 24 - i32.const 4 - call $~lib/rt/itcms/__new + i32.const 6 + i32.const 1824 + call $~lib/rt/__newArray local.tee $0 i32.store global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - i32.const 16 - call $~lib/arraybuffer/ArrayBuffer#constructor - local.set $1 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=8 - local.get $0 - local.get $1 - i32.store - local.get $0 - local.get $1 i32.const 0 - call $~lib/rt/itcms/__link - global.get $~lib/memory/__stack_pointer - local.get $0 i32.store offset=4 - local.get $0 - i32.const 3 - i32.store offset=4 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - i32.const 48 - call $~lib/arraybuffer/ArrayBuffer#constructor - local.set $1 global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=8 local.get $0 - local.get $1 i32.store offset=8 local.get $0 - local.get $1 - i32.const 0 - call $~lib/rt/itcms/__link - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 - i32.const 4 - i32.store offset=12 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 - i32.const 0 - i32.store offset=16 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 - i32.const 0 - i32.store offset=20 + call $"~lib/map/Map<~lib/string/String,usize>#constructor" global.get $~lib/memory/__stack_pointer i32.const 12 i32.add global.set $~lib/memory/__stack_pointer - local.get $0 global.set $~lib/symbol/stringToId global.get $~lib/memory/__stack_pointer i32.const 12 i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 2748 + i32.const 3008 i32.lt_s br_if $folding-inner0 global.get $~lib/memory/__stack_pointer @@ -3926,72 +4678,23 @@ i32.const 0 i32.store offset=8 global.get $~lib/memory/__stack_pointer - i32.const 24 - i32.const 5 - call $~lib/rt/itcms/__new + i32.const 10 + i32.const 1968 + call $~lib/rt/__newArray local.tee $0 i32.store global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - i32.const 16 - call $~lib/arraybuffer/ArrayBuffer#constructor - local.set $1 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=8 - local.get $0 - local.get $1 - i32.store - local.get $0 - local.get $1 i32.const 0 - call $~lib/rt/itcms/__link - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 - i32.const 3 - i32.store offset=4 - global.get $~lib/memory/__stack_pointer - local.get $0 i32.store offset=4 - i32.const 48 - call $~lib/arraybuffer/ArrayBuffer#constructor - local.set $1 global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=8 local.get $0 - local.get $1 i32.store offset=8 local.get $0 - local.get $1 - i32.const 0 - call $~lib/rt/itcms/__link - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 - i32.const 4 - i32.store offset=12 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 - i32.const 0 - i32.store offset=16 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 - i32.const 0 - i32.store offset=20 + call $"~lib/map/Map#constructor" global.get $~lib/memory/__stack_pointer i32.const 12 i32.add global.set $~lib/memory/__stack_pointer - local.get $0 global.set $~lib/symbol/idToString global.get $~lib/memory/__stack_pointer i32.const 1056 @@ -4060,7 +4763,7 @@ local.get $0 i32.eqz if - i32.const 1760 + i32.const 2000 i32.const 1088 i32.const 17 i32.const 12 @@ -4077,7 +4780,7 @@ local.get $0 i32.eqz if - i32.const 1760 + i32.const 2000 i32.const 1088 i32.const 18 i32.const 12 @@ -4142,10 +4845,10 @@ local.get $0 i32.store global.get $~lib/memory/__stack_pointer - i32.const 2496 + i32.const 2736 i32.store offset=12 local.get $0 - i32.const 2496 + i32.const 2736 call $~lib/string/String.__eq i32.eqz if @@ -4163,10 +4866,10 @@ local.get $0 i32.store global.get $~lib/memory/__stack_pointer - i32.const 2544 + i32.const 2784 i32.store offset=12 local.get $0 - i32.const 2544 + i32.const 2784 call $~lib/string/String.__eq i32.eqz if @@ -4186,10 +4889,10 @@ local.get $0 i32.store global.get $~lib/memory/__stack_pointer - i32.const 2592 + i32.const 2832 i32.store offset=12 local.get $0 - i32.const 2592 + i32.const 2832 call $~lib/string/String.__eq i32.eqz if @@ -4207,10 +4910,10 @@ local.get $0 i32.store global.get $~lib/memory/__stack_pointer - i32.const 2656 + i32.const 2896 i32.store offset=12 local.get $0 - i32.const 2656 + i32.const 2896 call $~lib/string/String.__eq i32.eqz if @@ -4227,8 +4930,8 @@ global.set $~lib/memory/__stack_pointer return end - i32.const 35536 - i32.const 35584 + i32.const 35808 + i32.const 35856 i32.const 1 i32.const 1 call $~lib/builtins/abort @@ -4240,11 +4943,11 @@ i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 2748 + i32.const 3008 i32.lt_s if - i32.const 35536 - i32.const 35584 + i32.const 35808 + i32.const 35856 i32.const 1 i32.const 1 call $~lib/builtins/abort @@ -4257,8 +4960,8 @@ i32.const 1073741820 i32.gt_u if - i32.const 1536 - i32.const 1584 + i32.const 1136 + i32.const 1184 i32.const 52 i32.const 43 call $~lib/builtins/abort @@ -4276,4 +4979,64 @@ global.set $~lib/memory/__stack_pointer local.get $0 ) + (func $~lib/rt/__newArray (param $0 i32) (param $1 i32) (result i32) + (local $2 i32) + (local $3 i32) + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.sub + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 3008 + i32.lt_s + if + i32.const 35808 + i32.const 35856 + i32.const 1 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.const 1 + call $~lib/rt/itcms/__new + local.set $2 + local.get $1 + if + local.get $2 + local.get $1 + i32.const 0 + memory.copy + end + local.get $2 + i32.store + i32.const 16 + local.get $0 + call $~lib/rt/itcms/__new + local.tee $0 + local.get $2 + i32.store + local.get $0 + local.get $2 + i32.const 0 + call $~lib/rt/itcms/__link + local.get $0 + local.get $2 + i32.store offset=4 + local.get $0 + i32.const 0 + i32.store offset=8 + local.get $0 + i32.const 0 + i32.store offset=12 + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $0 + ) ) From 71fefe7d954cb894241f4428e8d9187b999c47e1 Mon Sep 17 00:00:00 2001 From: Pebrian Date: Sun, 24 Aug 2025 05:19:24 +0700 Subject: [PATCH 4/7] fix test rt/flags --- tests/compiler/rt/flags.debug.wat | 164 ++++++++------------ tests/compiler/rt/flags.release.wat | 30 ++-- tests/compiler/rt/flags.ts | 227 +++++++++++++++++++++++----- 3 files changed, 255 insertions(+), 166 deletions(-) diff --git a/tests/compiler/rt/flags.debug.wat b/tests/compiler/rt/flags.debug.wat index 7a20ca9635..83cfb82e3a 100644 --- a/tests/compiler/rt/flags.debug.wat +++ b/tests/compiler/rt/flags.debug.wat @@ -10,14 +10,14 @@ (global $rt/flags/VALUE_ALIGN_REF i32 (i32.const 256)) (global $rt/flags/KEY_ALIGN_REF i32 (i32.const 131072)) (global $~lib/rt/__rtti_base i32 (i32.const 176)) - (global $~lib/memory/__data_end i32 (i32.const 392)) - (global $~lib/memory/__stack_pointer (mut i32) (i32.const 33160)) - (global $~lib/memory/__heap_base i32 (i32.const 33160)) + (global $~lib/memory/__data_end i32 (i32.const 456)) + (global $~lib/memory/__stack_pointer (mut i32) (i32.const 33224)) + (global $~lib/memory/__heap_base i32 (i32.const 33224)) (memory $0 1) (data $0 (i32.const 12) "<\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00$\00\00\00I\00n\00d\00e\00x\00 \00o\00u\00t\00 \00o\00f\00 \00r\00a\00n\00g\00e\00\00\00\00\00\00\00\00\00") (data $1 (i32.const 76) ",\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\14\00\00\00~\00l\00i\00b\00/\00r\00t\00.\00t\00s\00\00\00\00\00\00\00\00\00") (data $2 (i32.const 124) ",\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\16\00\00\00r\00t\00/\00f\00l\00a\00g\00s\00.\00t\00s\00\00\00\00\00\00\00") - (data $3 (i32.const 176) "5\00\00\00 \00\00\00 \00\00\00 \00\00\00\00\00\00\00A\08\00\00A\00\00\00A\00\00\00\81\08\00\00\81\00\00\00\01\t\00\00\01\01\00\00\01\n\00\00\01\02\00\00\01\19\00\00\01\1a\00\00B\08\00\00B\00\00\00\82\08\00\00\82\00\00\00\02\t\00\00\02\01\00\00\02\n\00\00\02\02\00\00\02\19\00\00\02\1a\00\00\02\04\00\00 \00\00\00\02A\00\00\02a\00\00H\08\00\00H\00\00\00\88\08\00\00\88\00\00\00\08\t\00\00\08\01\00\00\08\n\00\00\08\02\00\00\08\19\00\00\08\1a\00\00\08\04\00\00\08A\00\00\08a\00\00P\08\08\00\90\08\14\00\10\t\12\00\10\n\11\00\10\84\10\00P\08\82\00P\08\c2\00\10\c1\10\00\10\e1\10\00\10a\c2\00\10\t2\00") + (data $3 (i32.const 176) "E\00\00\00 \00\00\00 \00\00\00 \00\00\00\00\00\00\00A\08\00\00A\00\00\00A\00\00\00\81\08\00\00\81\00\00\00\01\t\00\00\01\01\00\00\01\n\00\00\01\02\00\00\01\19\00\00\01\1a\00\00B\08\00\00B\00\00\00\82\08\00\00\82\00\00\00\02\t\00\00\02\01\00\00\02\n\00\00\02\02\00\00\02\19\00\00\02\1a\00\00\02\04\00\00 \00\00\00\02A\00\00\02a\00\00H\08\00\00H\00\00\00\88\08\00\00\88\00\00\00\08\t\00\00\08\01\00\00\08\n\00\00\08\02\00\00\08\19\00\00\08\1a\00\00\08\04\00\00\08A\00\00\08a\00\00\90\08\14\00 \00\00\00\02A\00\00\10\t\12\00 \00\00\00\02A\00\00\10\n\11\00 \00\00\00\02A\00\00P\08\82\00\00\00\00\00\02A\00\00P\08\c2\00\00\00\00\00\02A\00\00\10\c1\10\00\00\00\00\00\02A\00\00\10\e1\10\00\00\00\00\00\02A\00\00\10a\c2\00\00\00\00\00\02A\00\00\10\t2\00 \00\00\00\02A\00\00") (table $0 1 1 funcref) (elem $0 (i32.const 1)) (export "memory" (memory $0)) @@ -62,7 +62,7 @@ i32.const 0 i32.const 144 i32.const 6 - i32.const 3 + i32.const 2 call $~lib/builtins/abort unreachable end @@ -77,7 +77,7 @@ i32.const 0 i32.const 144 i32.const 6 - i32.const 3 + i32.const 2 call $~lib/builtins/abort unreachable end @@ -92,7 +92,7 @@ i32.const 0 i32.const 144 i32.const 6 - i32.const 3 + i32.const 2 call $~lib/builtins/abort unreachable end @@ -107,7 +107,7 @@ i32.const 0 i32.const 144 i32.const 6 - i32.const 3 + i32.const 2 call $~lib/builtins/abort unreachable end @@ -122,7 +122,7 @@ i32.const 0 i32.const 144 i32.const 6 - i32.const 3 + i32.const 2 call $~lib/builtins/abort unreachable end @@ -137,7 +137,7 @@ i32.const 0 i32.const 144 i32.const 6 - i32.const 3 + i32.const 2 call $~lib/builtins/abort unreachable end @@ -152,7 +152,7 @@ i32.const 0 i32.const 144 i32.const 6 - i32.const 3 + i32.const 2 call $~lib/builtins/abort unreachable end @@ -167,7 +167,7 @@ i32.const 0 i32.const 144 i32.const 6 - i32.const 3 + i32.const 2 call $~lib/builtins/abort unreachable end @@ -182,7 +182,7 @@ i32.const 0 i32.const 144 i32.const 6 - i32.const 3 + i32.const 2 call $~lib/builtins/abort unreachable end @@ -197,7 +197,7 @@ i32.const 0 i32.const 144 i32.const 6 - i32.const 3 + i32.const 2 call $~lib/builtins/abort unreachable end @@ -212,7 +212,7 @@ i32.const 0 i32.const 144 i32.const 6 - i32.const 3 + i32.const 2 call $~lib/builtins/abort unreachable end @@ -227,7 +227,7 @@ i32.const 0 i32.const 144 i32.const 6 - i32.const 3 + i32.const 2 call $~lib/builtins/abort unreachable end @@ -242,7 +242,7 @@ i32.const 0 i32.const 144 i32.const 6 - i32.const 3 + i32.const 2 call $~lib/builtins/abort unreachable end @@ -257,7 +257,7 @@ i32.const 0 i32.const 144 i32.const 6 - i32.const 3 + i32.const 2 call $~lib/builtins/abort unreachable end @@ -272,7 +272,7 @@ i32.const 0 i32.const 144 i32.const 6 - i32.const 3 + i32.const 2 call $~lib/builtins/abort unreachable end @@ -287,7 +287,7 @@ i32.const 0 i32.const 144 i32.const 6 - i32.const 3 + i32.const 2 call $~lib/builtins/abort unreachable end @@ -302,7 +302,7 @@ i32.const 0 i32.const 144 i32.const 6 - i32.const 3 + i32.const 2 call $~lib/builtins/abort unreachable end @@ -317,7 +317,7 @@ i32.const 0 i32.const 144 i32.const 6 - i32.const 3 + i32.const 2 call $~lib/builtins/abort unreachable end @@ -332,7 +332,7 @@ i32.const 0 i32.const 144 i32.const 6 - i32.const 3 + i32.const 2 call $~lib/builtins/abort unreachable end @@ -347,7 +347,7 @@ i32.const 0 i32.const 144 i32.const 6 - i32.const 3 + i32.const 2 call $~lib/builtins/abort unreachable end @@ -362,7 +362,7 @@ i32.const 0 i32.const 144 i32.const 6 - i32.const 3 + i32.const 2 call $~lib/builtins/abort unreachable end @@ -377,7 +377,7 @@ i32.const 0 i32.const 144 i32.const 6 - i32.const 3 + i32.const 2 call $~lib/builtins/abort unreachable end @@ -392,7 +392,7 @@ i32.const 0 i32.const 144 i32.const 6 - i32.const 3 + i32.const 2 call $~lib/builtins/abort unreachable end @@ -407,7 +407,7 @@ i32.const 0 i32.const 144 i32.const 6 - i32.const 3 + i32.const 2 call $~lib/builtins/abort unreachable end @@ -422,7 +422,7 @@ i32.const 0 i32.const 144 i32.const 6 - i32.const 3 + i32.const 2 call $~lib/builtins/abort unreachable end @@ -437,7 +437,7 @@ i32.const 0 i32.const 144 i32.const 6 - i32.const 3 + i32.const 2 call $~lib/builtins/abort unreachable end @@ -452,7 +452,7 @@ i32.const 0 i32.const 144 i32.const 6 - i32.const 3 + i32.const 2 call $~lib/builtins/abort unreachable end @@ -467,7 +467,7 @@ i32.const 0 i32.const 144 i32.const 6 - i32.const 3 + i32.const 2 call $~lib/builtins/abort unreachable end @@ -482,7 +482,7 @@ i32.const 0 i32.const 144 i32.const 6 - i32.const 3 + i32.const 2 call $~lib/builtins/abort unreachable end @@ -497,7 +497,7 @@ i32.const 0 i32.const 144 i32.const 6 - i32.const 3 + i32.const 2 call $~lib/builtins/abort unreachable end @@ -512,7 +512,7 @@ i32.const 0 i32.const 144 i32.const 6 - i32.const 3 + i32.const 2 call $~lib/builtins/abort unreachable end @@ -527,7 +527,7 @@ i32.const 0 i32.const 144 i32.const 6 - i32.const 3 + i32.const 2 call $~lib/builtins/abort unreachable end @@ -542,7 +542,7 @@ i32.const 0 i32.const 144 i32.const 6 - i32.const 3 + i32.const 2 call $~lib/builtins/abort unreachable end @@ -557,7 +557,7 @@ i32.const 0 i32.const 144 i32.const 6 - i32.const 3 + i32.const 2 call $~lib/builtins/abort unreachable end @@ -572,7 +572,7 @@ i32.const 0 i32.const 144 i32.const 6 - i32.const 3 + i32.const 2 call $~lib/builtins/abort unreachable end @@ -587,7 +587,7 @@ i32.const 0 i32.const 144 i32.const 6 - i32.const 3 + i32.const 2 call $~lib/builtins/abort unreachable end @@ -602,28 +602,13 @@ i32.const 0 i32.const 144 i32.const 6 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - ) - (func $"rt/flags/test<~lib/map/Map>" (param $flags i32) - i32.const 42 - call $~lib/rt/__typeinfo - local.get $flags - i32.eq - i32.eqz - if - i32.const 0 - i32.const 144 - i32.const 6 - i32.const 3 + i32.const 2 call $~lib/builtins/abort unreachable end ) (func $"rt/flags/test<~lib/map/Map>" (param $flags i32) - i32.const 43 + i32.const 42 call $~lib/rt/__typeinfo local.get $flags i32.eq @@ -632,27 +617,12 @@ i32.const 0 i32.const 144 i32.const 6 - i32.const 3 + i32.const 2 call $~lib/builtins/abort unreachable end ) (func $"rt/flags/test<~lib/map/Map>" (param $flags i32) - i32.const 44 - call $~lib/rt/__typeinfo - local.get $flags - i32.eq - i32.eqz - if - i32.const 0 - i32.const 144 - i32.const 6 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - ) - (func $"rt/flags/test<~lib/map/Map>" (param $flags i32) i32.const 45 call $~lib/rt/__typeinfo local.get $flags @@ -662,13 +632,13 @@ i32.const 0 i32.const 144 i32.const 6 - i32.const 3 + i32.const 2 call $~lib/builtins/abort unreachable end ) - (func $"rt/flags/test<~lib/map/Map>" (param $flags i32) - i32.const 46 + (func $"rt/flags/test<~lib/map/Map>" (param $flags i32) + i32.const 48 call $~lib/rt/__typeinfo local.get $flags i32.eq @@ -677,13 +647,13 @@ i32.const 0 i32.const 144 i32.const 6 - i32.const 3 + i32.const 2 call $~lib/builtins/abort unreachable end ) (func $"rt/flags/test<~lib/map/Map>" (param $flags i32) - i32.const 47 + i32.const 51 call $~lib/rt/__typeinfo local.get $flags i32.eq @@ -692,13 +662,13 @@ i32.const 0 i32.const 144 i32.const 6 - i32.const 3 + i32.const 2 call $~lib/builtins/abort unreachable end ) (func $"rt/flags/test<~lib/map/Map>" (param $flags i32) - i32.const 48 + i32.const 54 call $~lib/rt/__typeinfo local.get $flags i32.eq @@ -707,13 +677,13 @@ i32.const 0 i32.const 144 i32.const 6 - i32.const 3 + i32.const 2 call $~lib/builtins/abort unreachable end ) (func $"rt/flags/test<~lib/map/Map>" (param $flags i32) - i32.const 49 + i32.const 57 call $~lib/rt/__typeinfo local.get $flags i32.eq @@ -722,13 +692,13 @@ i32.const 0 i32.const 144 i32.const 6 - i32.const 3 + i32.const 2 call $~lib/builtins/abort unreachable end ) (func $"rt/flags/test<~lib/map/Map>" (param $flags i32) - i32.const 50 + i32.const 60 call $~lib/rt/__typeinfo local.get $flags i32.eq @@ -737,13 +707,13 @@ i32.const 0 i32.const 144 i32.const 6 - i32.const 3 + i32.const 2 call $~lib/builtins/abort unreachable end ) (func $"rt/flags/test<~lib/map/Map>" (param $flags i32) - i32.const 51 + i32.const 63 call $~lib/rt/__typeinfo local.get $flags i32.eq @@ -752,13 +722,13 @@ i32.const 0 i32.const 144 i32.const 6 - i32.const 3 + i32.const 2 call $~lib/builtins/abort unreachable end ) (func $"rt/flags/test<~lib/map/Map>" (param $flags i32) - i32.const 52 + i32.const 66 call $~lib/rt/__typeinfo local.get $flags i32.eq @@ -767,7 +737,7 @@ i32.const 0 i32.const 144 i32.const 6 - i32.const 3 + i32.const 2 call $~lib/builtins/abort unreachable end @@ -982,14 +952,6 @@ i32.or call $rt/flags/test<~lib/set/Set> i32.const 16 - i32.const 524288 - i32.or - i32.const 64 - i32.or - i32.const 2048 - i32.or - call $"rt/flags/test<~lib/map/Map>" - i32.const 16 i32.const 262144 i32.or i32.const 1048576 @@ -1020,14 +982,6 @@ i32.or call $"rt/flags/test<~lib/map/Map>" i32.const 16 - i32.const 32768 - i32.or - i32.const 1048576 - i32.or - i32.const 1024 - i32.or - call $"rt/flags/test<~lib/map/Map>" - i32.const 16 global.get $rt/flags/KEY_ALIGN_REF i32.or i32.const 8388608 diff --git a/tests/compiler/rt/flags.release.wat b/tests/compiler/rt/flags.release.wat index c0b2f9cf66..7538a3948d 100644 --- a/tests/compiler/rt/flags.release.wat +++ b/tests/compiler/rt/flags.release.wat @@ -10,7 +10,7 @@ (data $1.1 (i32.const 1112) "\02\00\00\00\14\00\00\00~\00l\00i\00b\00/\00r\00t\00.\00t\00s") (data $2 (i32.const 1148) ",") (data $2.1 (i32.const 1160) "\02\00\00\00\16\00\00\00r\00t\00/\00f\00l\00a\00g\00s\00.\00t\00s") - (data $3 (i32.const 1200) "5\00\00\00 \00\00\00 \00\00\00 \00\00\00\00\00\00\00A\08\00\00A\00\00\00A\00\00\00\81\08\00\00\81\00\00\00\01\t\00\00\01\01\00\00\01\n\00\00\01\02\00\00\01\19\00\00\01\1a\00\00B\08\00\00B\00\00\00\82\08\00\00\82\00\00\00\02\t\00\00\02\01\00\00\02\n\00\00\02\02\00\00\02\19\00\00\02\1a\00\00\02\04\00\00 \00\00\00\02A\00\00\02a\00\00H\08\00\00H\00\00\00\88\08\00\00\88\00\00\00\08\t\00\00\08\01\00\00\08\n\00\00\08\02\00\00\08\19\00\00\08\1a\00\00\08\04\00\00\08A\00\00\08a\00\00P\08\08\00\90\08\14\00\10\t\12\00\10\n\11\00\10\84\10\00P\08\82\00P\08\c2\00\10\c1\10\00\10\e1\10\00\10a\c2\00\10\t2") + (data $3 (i32.const 1200) "E\00\00\00 \00\00\00 \00\00\00 \00\00\00\00\00\00\00A\08\00\00A\00\00\00A\00\00\00\81\08\00\00\81\00\00\00\01\t\00\00\01\01\00\00\01\n\00\00\01\02\00\00\01\19\00\00\01\1a\00\00B\08\00\00B\00\00\00\82\08\00\00\82\00\00\00\02\t\00\00\02\01\00\00\02\n\00\00\02\02\00\00\02\19\00\00\02\1a\00\00\02\04\00\00 \00\00\00\02A\00\00\02a\00\00H\08\00\00H\00\00\00\88\08\00\00\88\00\00\00\08\t\00\00\08\01\00\00\08\n\00\00\08\02\00\00\08\19\00\00\08\1a\00\00\08\04\00\00\08A\00\00\08a\00\00\90\08\14\00 \00\00\00\02A\00\00\10\t\12\00 \00\00\00\02A\00\00\10\n\11\00 \00\00\00\02A\00\00P\08\82\00\00\00\00\00\02A\00\00P\08\c2\00\00\00\00\00\02A\00\00\10\c1\10\00\00\00\00\00\02A\00\00\10\e1\10\00\00\00\00\00\02A\00\00\10a\c2\00\00\00\00\00\02A\00\00\10\t2\00 \00\00\00\02A") (export "memory" (memory $0)) (start $~start) (func $~lib/rt/__typeinfo (param $0 i32) (result i32) @@ -222,55 +222,45 @@ br_if $folding-inner0 i32.const 42 call $~lib/rt/__typeinfo - i32.const 526416 - i32.ne - br_if $folding-inner0 - i32.const 43 - call $~lib/rt/__typeinfo i32.const 1312912 i32.ne br_if $folding-inner0 - i32.const 44 + i32.const 45 call $~lib/rt/__typeinfo i32.const 1181968 i32.ne br_if $folding-inner0 - i32.const 45 + i32.const 48 call $~lib/rt/__typeinfo i32.const 1116688 i32.ne br_if $folding-inner0 - i32.const 46 - call $~lib/rt/__typeinfo - i32.const 1082384 - i32.ne - br_if $folding-inner0 - i32.const 47 + i32.const 51 call $~lib/rt/__typeinfo i32.const 8521808 i32.ne br_if $folding-inner0 - i32.const 48 + i32.const 54 call $~lib/rt/__typeinfo i32.const 12716112 i32.ne br_if $folding-inner0 - i32.const 49 + i32.const 57 call $~lib/rt/__typeinfo i32.const 1098000 i32.ne br_if $folding-inner0 - i32.const 50 + i32.const 60 call $~lib/rt/__typeinfo i32.const 1106192 i32.ne br_if $folding-inner0 - i32.const 51 + i32.const 63 call $~lib/rt/__typeinfo i32.const 12738832 i32.ne br_if $folding-inner0 - i32.const 52 + i32.const 66 call $~lib/rt/__typeinfo i32.const 3279120 i32.ne @@ -280,7 +270,7 @@ i32.const 0 i32.const 1168 i32.const 6 - i32.const 3 + i32.const 2 call $~lib/builtins/abort unreachable ) diff --git a/tests/compiler/rt/flags.ts b/tests/compiler/rt/flags.ts index 526c2ddb69..2072b3d39d 100644 --- a/tests/compiler/rt/flags.ts +++ b/tests/compiler/rt/flags.ts @@ -3,68 +3,213 @@ import { TypeinfoFlags } from "shared/typeinfo"; function test(flags: TypeinfoFlags): void { - assert( - __typeinfo(idof()) - == - flags - ); + assert(__typeinfo(idof()) == flags); } // structure flags -test(TypeinfoFlags.ARRAYBUFFERVIEW | TypeinfoFlags.VALUE_ALIGN_0 | TypeinfoFlags.VALUE_SIGNED); +test( + TypeinfoFlags.ARRAYBUFFERVIEW | + TypeinfoFlags.VALUE_ALIGN_0 | + TypeinfoFlags.VALUE_SIGNED, +); test(TypeinfoFlags.ARRAYBUFFERVIEW | TypeinfoFlags.VALUE_ALIGN_0); -test(TypeinfoFlags.ARRAYBUFFERVIEW | TypeinfoFlags.VALUE_ALIGN_0); -test(TypeinfoFlags.ARRAYBUFFERVIEW | TypeinfoFlags.VALUE_ALIGN_1 | TypeinfoFlags.VALUE_SIGNED); +test( + TypeinfoFlags.ARRAYBUFFERVIEW | TypeinfoFlags.VALUE_ALIGN_0, +); +test( + TypeinfoFlags.ARRAYBUFFERVIEW | + TypeinfoFlags.VALUE_ALIGN_1 | + TypeinfoFlags.VALUE_SIGNED, +); test(TypeinfoFlags.ARRAYBUFFERVIEW | TypeinfoFlags.VALUE_ALIGN_1); -test(TypeinfoFlags.ARRAYBUFFERVIEW | TypeinfoFlags.VALUE_ALIGN_2 | TypeinfoFlags.VALUE_SIGNED); +test( + TypeinfoFlags.ARRAYBUFFERVIEW | + TypeinfoFlags.VALUE_ALIGN_2 | + TypeinfoFlags.VALUE_SIGNED, +); test(TypeinfoFlags.ARRAYBUFFERVIEW | TypeinfoFlags.VALUE_ALIGN_2); -test(TypeinfoFlags.ARRAYBUFFERVIEW | TypeinfoFlags.VALUE_ALIGN_3 | TypeinfoFlags.VALUE_SIGNED); +test( + TypeinfoFlags.ARRAYBUFFERVIEW | + TypeinfoFlags.VALUE_ALIGN_3 | + TypeinfoFlags.VALUE_SIGNED, +); test(TypeinfoFlags.ARRAYBUFFERVIEW | TypeinfoFlags.VALUE_ALIGN_3); -test(TypeinfoFlags.ARRAYBUFFERVIEW | TypeinfoFlags.VALUE_ALIGN_2 | TypeinfoFlags.VALUE_SIGNED | TypeinfoFlags.VALUE_FLOAT); -test(TypeinfoFlags.ARRAYBUFFERVIEW | TypeinfoFlags.VALUE_ALIGN_3 | TypeinfoFlags.VALUE_SIGNED | TypeinfoFlags.VALUE_FLOAT); +test( + TypeinfoFlags.ARRAYBUFFERVIEW | + TypeinfoFlags.VALUE_ALIGN_2 | + TypeinfoFlags.VALUE_SIGNED | + TypeinfoFlags.VALUE_FLOAT, +); +test( + TypeinfoFlags.ARRAYBUFFERVIEW | + TypeinfoFlags.VALUE_ALIGN_3 | + TypeinfoFlags.VALUE_SIGNED | + TypeinfoFlags.VALUE_FLOAT, +); class Ref {} -const VALUE_ALIGN_REF = sizeof() == 4 ? TypeinfoFlags.VALUE_ALIGN_2 : TypeinfoFlags.VALUE_ALIGN_3; -const KEY_ALIGN_REF = sizeof() == 4 ? TypeinfoFlags.KEY_ALIGN_2 : TypeinfoFlags.KEY_ALIGN_3; +const VALUE_ALIGN_REF = + sizeof() == 4 + ? TypeinfoFlags.VALUE_ALIGN_2 + : TypeinfoFlags.VALUE_ALIGN_3; +const KEY_ALIGN_REF = + sizeof() == 4 ? TypeinfoFlags.KEY_ALIGN_2 : TypeinfoFlags.KEY_ALIGN_3; -test>(TypeinfoFlags.ARRAY | TypeinfoFlags.VALUE_ALIGN_0 | TypeinfoFlags.VALUE_SIGNED); +test>( + TypeinfoFlags.ARRAY | + TypeinfoFlags.VALUE_ALIGN_0 | + TypeinfoFlags.VALUE_SIGNED, +); test>(TypeinfoFlags.ARRAY | TypeinfoFlags.VALUE_ALIGN_0); -test>(TypeinfoFlags.ARRAY | TypeinfoFlags.VALUE_ALIGN_1 | TypeinfoFlags.VALUE_SIGNED); +test>( + TypeinfoFlags.ARRAY | + TypeinfoFlags.VALUE_ALIGN_1 | + TypeinfoFlags.VALUE_SIGNED, +); test>(TypeinfoFlags.ARRAY | TypeinfoFlags.VALUE_ALIGN_1); -test>(TypeinfoFlags.ARRAY | TypeinfoFlags.VALUE_ALIGN_2 | TypeinfoFlags.VALUE_SIGNED); +test>( + TypeinfoFlags.ARRAY | + TypeinfoFlags.VALUE_ALIGN_2 | + TypeinfoFlags.VALUE_SIGNED, +); test>(TypeinfoFlags.ARRAY | TypeinfoFlags.VALUE_ALIGN_2); -test>(TypeinfoFlags.ARRAY | TypeinfoFlags.VALUE_ALIGN_3 | TypeinfoFlags.VALUE_SIGNED); +test>( + TypeinfoFlags.ARRAY | + TypeinfoFlags.VALUE_ALIGN_3 | + TypeinfoFlags.VALUE_SIGNED, +); test>(TypeinfoFlags.ARRAY | TypeinfoFlags.VALUE_ALIGN_3); -test>(TypeinfoFlags.ARRAY | TypeinfoFlags.VALUE_ALIGN_2 | TypeinfoFlags.VALUE_SIGNED | TypeinfoFlags.VALUE_FLOAT); -test>(TypeinfoFlags.ARRAY | TypeinfoFlags.VALUE_ALIGN_3 | TypeinfoFlags.VALUE_SIGNED | TypeinfoFlags.VALUE_FLOAT); +test>( + TypeinfoFlags.ARRAY | + TypeinfoFlags.VALUE_ALIGN_2 | + TypeinfoFlags.VALUE_SIGNED | + TypeinfoFlags.VALUE_FLOAT, +); +test>( + TypeinfoFlags.ARRAY | + TypeinfoFlags.VALUE_ALIGN_3 | + TypeinfoFlags.VALUE_SIGNED | + TypeinfoFlags.VALUE_FLOAT, +); test>(TypeinfoFlags.ARRAY | TypeinfoFlags.VALUE_ALIGN_4); -test>(TypeinfoFlags.ARRAY | VALUE_ALIGN_REF | TypeinfoFlags.VALUE_MANAGED); -test>(TypeinfoFlags.ARRAY | VALUE_ALIGN_REF | TypeinfoFlags.VALUE_NULLABLE | TypeinfoFlags.VALUE_MANAGED); +test>( + TypeinfoFlags.ARRAY | VALUE_ALIGN_REF | TypeinfoFlags.VALUE_MANAGED, +); +test>( + TypeinfoFlags.ARRAY | + VALUE_ALIGN_REF | + TypeinfoFlags.VALUE_NULLABLE | + TypeinfoFlags.VALUE_MANAGED, +); -test>(TypeinfoFlags.SET | TypeinfoFlags.VALUE_ALIGN_0 | TypeinfoFlags.VALUE_SIGNED); +test>( + TypeinfoFlags.SET | TypeinfoFlags.VALUE_ALIGN_0 | TypeinfoFlags.VALUE_SIGNED, +); test>(TypeinfoFlags.SET | TypeinfoFlags.VALUE_ALIGN_0); -test>(TypeinfoFlags.SET | TypeinfoFlags.VALUE_ALIGN_1 | TypeinfoFlags.VALUE_SIGNED); +test>( + TypeinfoFlags.SET | TypeinfoFlags.VALUE_ALIGN_1 | TypeinfoFlags.VALUE_SIGNED, +); test>(TypeinfoFlags.SET | TypeinfoFlags.VALUE_ALIGN_1); -test>(TypeinfoFlags.SET | TypeinfoFlags.VALUE_ALIGN_2 | TypeinfoFlags.VALUE_SIGNED); +test>( + TypeinfoFlags.SET | TypeinfoFlags.VALUE_ALIGN_2 | TypeinfoFlags.VALUE_SIGNED, +); test>(TypeinfoFlags.SET | TypeinfoFlags.VALUE_ALIGN_2); -test>(TypeinfoFlags.SET | TypeinfoFlags.VALUE_ALIGN_3 | TypeinfoFlags.VALUE_SIGNED); +test>( + TypeinfoFlags.SET | TypeinfoFlags.VALUE_ALIGN_3 | TypeinfoFlags.VALUE_SIGNED, +); test>(TypeinfoFlags.SET | TypeinfoFlags.VALUE_ALIGN_3); -test>(TypeinfoFlags.SET | TypeinfoFlags.VALUE_ALIGN_2 | TypeinfoFlags.VALUE_SIGNED | TypeinfoFlags.VALUE_FLOAT); -test>(TypeinfoFlags.SET | TypeinfoFlags.VALUE_ALIGN_3 | TypeinfoFlags.VALUE_SIGNED | TypeinfoFlags.VALUE_FLOAT); +test>( + TypeinfoFlags.SET | + TypeinfoFlags.VALUE_ALIGN_2 | + TypeinfoFlags.VALUE_SIGNED | + TypeinfoFlags.VALUE_FLOAT, +); +test>( + TypeinfoFlags.SET | + TypeinfoFlags.VALUE_ALIGN_3 | + TypeinfoFlags.VALUE_SIGNED | + TypeinfoFlags.VALUE_FLOAT, +); test>(TypeinfoFlags.SET | TypeinfoFlags.VALUE_ALIGN_4); -test>(TypeinfoFlags.SET | VALUE_ALIGN_REF | TypeinfoFlags.VALUE_MANAGED); -test>(TypeinfoFlags.SET | VALUE_ALIGN_REF | TypeinfoFlags.VALUE_NULLABLE | TypeinfoFlags.VALUE_MANAGED); +test>( + TypeinfoFlags.SET | VALUE_ALIGN_REF | TypeinfoFlags.VALUE_MANAGED, +); +test>( + TypeinfoFlags.SET | + VALUE_ALIGN_REF | + TypeinfoFlags.VALUE_NULLABLE | + TypeinfoFlags.VALUE_MANAGED, +); -test>(TypeinfoFlags.MAP | TypeinfoFlags.KEY_ALIGN_4 | TypeinfoFlags.VALUE_ALIGN_0 | TypeinfoFlags.VALUE_SIGNED); -test>(TypeinfoFlags.MAP | TypeinfoFlags.KEY_ALIGN_3 | TypeinfoFlags.KEY_SIGNED | TypeinfoFlags.VALUE_ALIGN_1 | TypeinfoFlags.VALUE_SIGNED); -test>(TypeinfoFlags.MAP | TypeinfoFlags.KEY_ALIGN_2 | TypeinfoFlags.KEY_SIGNED | TypeinfoFlags.VALUE_ALIGN_2 | TypeinfoFlags.VALUE_SIGNED); -test>(TypeinfoFlags.MAP | TypeinfoFlags.KEY_ALIGN_1 | TypeinfoFlags.KEY_SIGNED | TypeinfoFlags.VALUE_ALIGN_3 | TypeinfoFlags.VALUE_SIGNED); -test>(TypeinfoFlags.MAP | TypeinfoFlags.KEY_ALIGN_0 | TypeinfoFlags.KEY_SIGNED | TypeinfoFlags.VALUE_ALIGN_4); -test>(TypeinfoFlags.MAP | KEY_ALIGN_REF | TypeinfoFlags.KEY_MANAGED | TypeinfoFlags.VALUE_ALIGN_0 | TypeinfoFlags.VALUE_SIGNED); -test>(TypeinfoFlags.MAP | KEY_ALIGN_REF | TypeinfoFlags.KEY_NULLABLE | TypeinfoFlags.KEY_MANAGED | TypeinfoFlags.VALUE_ALIGN_0 | TypeinfoFlags.VALUE_SIGNED); -test>(TypeinfoFlags.MAP | TypeinfoFlags.KEY_ALIGN_0 | TypeinfoFlags.KEY_SIGNED | TypeinfoFlags.VALUE_MANAGED | VALUE_ALIGN_REF); -test>(TypeinfoFlags.MAP | TypeinfoFlags.KEY_ALIGN_0 | TypeinfoFlags.KEY_SIGNED | TypeinfoFlags.VALUE_NULLABLE | TypeinfoFlags.VALUE_MANAGED | VALUE_ALIGN_REF); -test>(TypeinfoFlags.MAP | TypeinfoFlags.KEY_NULLABLE | TypeinfoFlags.KEY_MANAGED | KEY_ALIGN_REF | TypeinfoFlags.VALUE_NULLABLE | TypeinfoFlags.VALUE_MANAGED | VALUE_ALIGN_REF); -test>(TypeinfoFlags.MAP | TypeinfoFlags.KEY_ALIGN_2 | TypeinfoFlags.KEY_SIGNED | TypeinfoFlags.KEY_FLOAT | TypeinfoFlags.VALUE_ALIGN_2 | TypeinfoFlags.VALUE_SIGNED); +// test>(TypeinfoFlags.MAP | TypeinfoFlags.KEY_ALIGN_4 | TypeinfoFlags.VALUE_ALIGN_0 | TypeinfoFlags.VALUE_SIGNED); +test>( + TypeinfoFlags.MAP | + TypeinfoFlags.KEY_ALIGN_3 | + TypeinfoFlags.KEY_SIGNED | + TypeinfoFlags.VALUE_ALIGN_1 | + TypeinfoFlags.VALUE_SIGNED, +); +test>( + TypeinfoFlags.MAP | + TypeinfoFlags.KEY_ALIGN_2 | + TypeinfoFlags.KEY_SIGNED | + TypeinfoFlags.VALUE_ALIGN_2 | + TypeinfoFlags.VALUE_SIGNED, +); +test>( + TypeinfoFlags.MAP | + TypeinfoFlags.KEY_ALIGN_1 | + TypeinfoFlags.KEY_SIGNED | + TypeinfoFlags.VALUE_ALIGN_3 | + TypeinfoFlags.VALUE_SIGNED, +); +// test>(TypeinfoFlags.MAP | TypeinfoFlags.KEY_ALIGN_0 | TypeinfoFlags.KEY_SIGNED | TypeinfoFlags.VALUE_ALIGN_4); +test>( + TypeinfoFlags.MAP | + KEY_ALIGN_REF | + TypeinfoFlags.KEY_MANAGED | + TypeinfoFlags.VALUE_ALIGN_0 | + TypeinfoFlags.VALUE_SIGNED, +); +test>( + TypeinfoFlags.MAP | + KEY_ALIGN_REF | + TypeinfoFlags.KEY_NULLABLE | + TypeinfoFlags.KEY_MANAGED | + TypeinfoFlags.VALUE_ALIGN_0 | + TypeinfoFlags.VALUE_SIGNED, +); +test>( + TypeinfoFlags.MAP | + TypeinfoFlags.KEY_ALIGN_0 | + TypeinfoFlags.KEY_SIGNED | + TypeinfoFlags.VALUE_MANAGED | + VALUE_ALIGN_REF, +); +test>( + TypeinfoFlags.MAP | + TypeinfoFlags.KEY_ALIGN_0 | + TypeinfoFlags.KEY_SIGNED | + TypeinfoFlags.VALUE_NULLABLE | + TypeinfoFlags.VALUE_MANAGED | + VALUE_ALIGN_REF, +); +test>( + TypeinfoFlags.MAP | + TypeinfoFlags.KEY_NULLABLE | + TypeinfoFlags.KEY_MANAGED | + KEY_ALIGN_REF | + TypeinfoFlags.VALUE_NULLABLE | + TypeinfoFlags.VALUE_MANAGED | + VALUE_ALIGN_REF, +); +test>( + TypeinfoFlags.MAP | + TypeinfoFlags.KEY_ALIGN_2 | + TypeinfoFlags.KEY_SIGNED | + TypeinfoFlags.KEY_FLOAT | + TypeinfoFlags.VALUE_ALIGN_2 | + TypeinfoFlags.VALUE_SIGNED, +); From 4b5981f5c1c80f92b478242078f548fea46f2b8b Mon Sep 17 00:00:00 2001 From: Pebrian Date: Sun, 24 Aug 2025 05:36:37 +0700 Subject: [PATCH 5/7] chore: fix code style errors --- tests/compiler/rt/flags.debug.wat | 92 ++++++------ tests/compiler/rt/flags.release.wat | 2 +- tests/compiler/rt/flags.ts | 223 +++++----------------------- 3 files changed, 86 insertions(+), 231 deletions(-) diff --git a/tests/compiler/rt/flags.debug.wat b/tests/compiler/rt/flags.debug.wat index 83cfb82e3a..596e3319a4 100644 --- a/tests/compiler/rt/flags.debug.wat +++ b/tests/compiler/rt/flags.debug.wat @@ -62,7 +62,7 @@ i32.const 0 i32.const 144 i32.const 6 - i32.const 2 + i32.const 3 call $~lib/builtins/abort unreachable end @@ -77,7 +77,7 @@ i32.const 0 i32.const 144 i32.const 6 - i32.const 2 + i32.const 3 call $~lib/builtins/abort unreachable end @@ -92,7 +92,7 @@ i32.const 0 i32.const 144 i32.const 6 - i32.const 2 + i32.const 3 call $~lib/builtins/abort unreachable end @@ -107,7 +107,7 @@ i32.const 0 i32.const 144 i32.const 6 - i32.const 2 + i32.const 3 call $~lib/builtins/abort unreachable end @@ -122,7 +122,7 @@ i32.const 0 i32.const 144 i32.const 6 - i32.const 2 + i32.const 3 call $~lib/builtins/abort unreachable end @@ -137,7 +137,7 @@ i32.const 0 i32.const 144 i32.const 6 - i32.const 2 + i32.const 3 call $~lib/builtins/abort unreachable end @@ -152,7 +152,7 @@ i32.const 0 i32.const 144 i32.const 6 - i32.const 2 + i32.const 3 call $~lib/builtins/abort unreachable end @@ -167,7 +167,7 @@ i32.const 0 i32.const 144 i32.const 6 - i32.const 2 + i32.const 3 call $~lib/builtins/abort unreachable end @@ -182,7 +182,7 @@ i32.const 0 i32.const 144 i32.const 6 - i32.const 2 + i32.const 3 call $~lib/builtins/abort unreachable end @@ -197,7 +197,7 @@ i32.const 0 i32.const 144 i32.const 6 - i32.const 2 + i32.const 3 call $~lib/builtins/abort unreachable end @@ -212,7 +212,7 @@ i32.const 0 i32.const 144 i32.const 6 - i32.const 2 + i32.const 3 call $~lib/builtins/abort unreachable end @@ -227,7 +227,7 @@ i32.const 0 i32.const 144 i32.const 6 - i32.const 2 + i32.const 3 call $~lib/builtins/abort unreachable end @@ -242,7 +242,7 @@ i32.const 0 i32.const 144 i32.const 6 - i32.const 2 + i32.const 3 call $~lib/builtins/abort unreachable end @@ -257,7 +257,7 @@ i32.const 0 i32.const 144 i32.const 6 - i32.const 2 + i32.const 3 call $~lib/builtins/abort unreachable end @@ -272,7 +272,7 @@ i32.const 0 i32.const 144 i32.const 6 - i32.const 2 + i32.const 3 call $~lib/builtins/abort unreachable end @@ -287,7 +287,7 @@ i32.const 0 i32.const 144 i32.const 6 - i32.const 2 + i32.const 3 call $~lib/builtins/abort unreachable end @@ -302,7 +302,7 @@ i32.const 0 i32.const 144 i32.const 6 - i32.const 2 + i32.const 3 call $~lib/builtins/abort unreachable end @@ -317,7 +317,7 @@ i32.const 0 i32.const 144 i32.const 6 - i32.const 2 + i32.const 3 call $~lib/builtins/abort unreachable end @@ -332,7 +332,7 @@ i32.const 0 i32.const 144 i32.const 6 - i32.const 2 + i32.const 3 call $~lib/builtins/abort unreachable end @@ -347,7 +347,7 @@ i32.const 0 i32.const 144 i32.const 6 - i32.const 2 + i32.const 3 call $~lib/builtins/abort unreachable end @@ -362,7 +362,7 @@ i32.const 0 i32.const 144 i32.const 6 - i32.const 2 + i32.const 3 call $~lib/builtins/abort unreachable end @@ -377,7 +377,7 @@ i32.const 0 i32.const 144 i32.const 6 - i32.const 2 + i32.const 3 call $~lib/builtins/abort unreachable end @@ -392,7 +392,7 @@ i32.const 0 i32.const 144 i32.const 6 - i32.const 2 + i32.const 3 call $~lib/builtins/abort unreachable end @@ -407,7 +407,7 @@ i32.const 0 i32.const 144 i32.const 6 - i32.const 2 + i32.const 3 call $~lib/builtins/abort unreachable end @@ -422,7 +422,7 @@ i32.const 0 i32.const 144 i32.const 6 - i32.const 2 + i32.const 3 call $~lib/builtins/abort unreachable end @@ -437,7 +437,7 @@ i32.const 0 i32.const 144 i32.const 6 - i32.const 2 + i32.const 3 call $~lib/builtins/abort unreachable end @@ -452,7 +452,7 @@ i32.const 0 i32.const 144 i32.const 6 - i32.const 2 + i32.const 3 call $~lib/builtins/abort unreachable end @@ -467,7 +467,7 @@ i32.const 0 i32.const 144 i32.const 6 - i32.const 2 + i32.const 3 call $~lib/builtins/abort unreachable end @@ -482,7 +482,7 @@ i32.const 0 i32.const 144 i32.const 6 - i32.const 2 + i32.const 3 call $~lib/builtins/abort unreachable end @@ -497,7 +497,7 @@ i32.const 0 i32.const 144 i32.const 6 - i32.const 2 + i32.const 3 call $~lib/builtins/abort unreachable end @@ -512,7 +512,7 @@ i32.const 0 i32.const 144 i32.const 6 - i32.const 2 + i32.const 3 call $~lib/builtins/abort unreachable end @@ -527,7 +527,7 @@ i32.const 0 i32.const 144 i32.const 6 - i32.const 2 + i32.const 3 call $~lib/builtins/abort unreachable end @@ -542,7 +542,7 @@ i32.const 0 i32.const 144 i32.const 6 - i32.const 2 + i32.const 3 call $~lib/builtins/abort unreachable end @@ -557,7 +557,7 @@ i32.const 0 i32.const 144 i32.const 6 - i32.const 2 + i32.const 3 call $~lib/builtins/abort unreachable end @@ -572,7 +572,7 @@ i32.const 0 i32.const 144 i32.const 6 - i32.const 2 + i32.const 3 call $~lib/builtins/abort unreachable end @@ -587,7 +587,7 @@ i32.const 0 i32.const 144 i32.const 6 - i32.const 2 + i32.const 3 call $~lib/builtins/abort unreachable end @@ -602,7 +602,7 @@ i32.const 0 i32.const 144 i32.const 6 - i32.const 2 + i32.const 3 call $~lib/builtins/abort unreachable end @@ -617,7 +617,7 @@ i32.const 0 i32.const 144 i32.const 6 - i32.const 2 + i32.const 3 call $~lib/builtins/abort unreachable end @@ -632,7 +632,7 @@ i32.const 0 i32.const 144 i32.const 6 - i32.const 2 + i32.const 3 call $~lib/builtins/abort unreachable end @@ -647,7 +647,7 @@ i32.const 0 i32.const 144 i32.const 6 - i32.const 2 + i32.const 3 call $~lib/builtins/abort unreachable end @@ -662,7 +662,7 @@ i32.const 0 i32.const 144 i32.const 6 - i32.const 2 + i32.const 3 call $~lib/builtins/abort unreachable end @@ -677,7 +677,7 @@ i32.const 0 i32.const 144 i32.const 6 - i32.const 2 + i32.const 3 call $~lib/builtins/abort unreachable end @@ -692,7 +692,7 @@ i32.const 0 i32.const 144 i32.const 6 - i32.const 2 + i32.const 3 call $~lib/builtins/abort unreachable end @@ -707,7 +707,7 @@ i32.const 0 i32.const 144 i32.const 6 - i32.const 2 + i32.const 3 call $~lib/builtins/abort unreachable end @@ -722,7 +722,7 @@ i32.const 0 i32.const 144 i32.const 6 - i32.const 2 + i32.const 3 call $~lib/builtins/abort unreachable end @@ -737,7 +737,7 @@ i32.const 0 i32.const 144 i32.const 6 - i32.const 2 + i32.const 3 call $~lib/builtins/abort unreachable end diff --git a/tests/compiler/rt/flags.release.wat b/tests/compiler/rt/flags.release.wat index 7538a3948d..afea3daf67 100644 --- a/tests/compiler/rt/flags.release.wat +++ b/tests/compiler/rt/flags.release.wat @@ -270,7 +270,7 @@ i32.const 0 i32.const 1168 i32.const 6 - i32.const 2 + i32.const 3 call $~lib/builtins/abort unreachable ) diff --git a/tests/compiler/rt/flags.ts b/tests/compiler/rt/flags.ts index 2072b3d39d..d1bc1fca34 100644 --- a/tests/compiler/rt/flags.ts +++ b/tests/compiler/rt/flags.ts @@ -3,213 +3,68 @@ import { TypeinfoFlags } from "shared/typeinfo"; function test(flags: TypeinfoFlags): void { - assert(__typeinfo(idof()) == flags); + assert( + __typeinfo(idof()) + == + flags + ); } // structure flags -test( - TypeinfoFlags.ARRAYBUFFERVIEW | - TypeinfoFlags.VALUE_ALIGN_0 | - TypeinfoFlags.VALUE_SIGNED, -); +test(TypeinfoFlags.ARRAYBUFFERVIEW | TypeinfoFlags.VALUE_ALIGN_0 | TypeinfoFlags.VALUE_SIGNED); test(TypeinfoFlags.ARRAYBUFFERVIEW | TypeinfoFlags.VALUE_ALIGN_0); -test( - TypeinfoFlags.ARRAYBUFFERVIEW | TypeinfoFlags.VALUE_ALIGN_0, -); -test( - TypeinfoFlags.ARRAYBUFFERVIEW | - TypeinfoFlags.VALUE_ALIGN_1 | - TypeinfoFlags.VALUE_SIGNED, -); +test(TypeinfoFlags.ARRAYBUFFERVIEW | TypeinfoFlags.VALUE_ALIGN_0); +test(TypeinfoFlags.ARRAYBUFFERVIEW | TypeinfoFlags.VALUE_ALIGN_1 | TypeinfoFlags.VALUE_SIGNED); test(TypeinfoFlags.ARRAYBUFFERVIEW | TypeinfoFlags.VALUE_ALIGN_1); -test( - TypeinfoFlags.ARRAYBUFFERVIEW | - TypeinfoFlags.VALUE_ALIGN_2 | - TypeinfoFlags.VALUE_SIGNED, -); +test(TypeinfoFlags.ARRAYBUFFERVIEW | TypeinfoFlags.VALUE_ALIGN_2 | TypeinfoFlags.VALUE_SIGNED); test(TypeinfoFlags.ARRAYBUFFERVIEW | TypeinfoFlags.VALUE_ALIGN_2); -test( - TypeinfoFlags.ARRAYBUFFERVIEW | - TypeinfoFlags.VALUE_ALIGN_3 | - TypeinfoFlags.VALUE_SIGNED, -); +test(TypeinfoFlags.ARRAYBUFFERVIEW | TypeinfoFlags.VALUE_ALIGN_3 | TypeinfoFlags.VALUE_SIGNED); test(TypeinfoFlags.ARRAYBUFFERVIEW | TypeinfoFlags.VALUE_ALIGN_3); -test( - TypeinfoFlags.ARRAYBUFFERVIEW | - TypeinfoFlags.VALUE_ALIGN_2 | - TypeinfoFlags.VALUE_SIGNED | - TypeinfoFlags.VALUE_FLOAT, -); -test( - TypeinfoFlags.ARRAYBUFFERVIEW | - TypeinfoFlags.VALUE_ALIGN_3 | - TypeinfoFlags.VALUE_SIGNED | - TypeinfoFlags.VALUE_FLOAT, -); +test(TypeinfoFlags.ARRAYBUFFERVIEW | TypeinfoFlags.VALUE_ALIGN_2 | TypeinfoFlags.VALUE_SIGNED | TypeinfoFlags.VALUE_FLOAT); +test(TypeinfoFlags.ARRAYBUFFERVIEW | TypeinfoFlags.VALUE_ALIGN_3 | TypeinfoFlags.VALUE_SIGNED | TypeinfoFlags.VALUE_FLOAT); class Ref {} -const VALUE_ALIGN_REF = - sizeof() == 4 - ? TypeinfoFlags.VALUE_ALIGN_2 - : TypeinfoFlags.VALUE_ALIGN_3; -const KEY_ALIGN_REF = - sizeof() == 4 ? TypeinfoFlags.KEY_ALIGN_2 : TypeinfoFlags.KEY_ALIGN_3; +const VALUE_ALIGN_REF = sizeof() == 4 ? TypeinfoFlags.VALUE_ALIGN_2 : TypeinfoFlags.VALUE_ALIGN_3; +const KEY_ALIGN_REF = sizeof() == 4 ? TypeinfoFlags.KEY_ALIGN_2 : TypeinfoFlags.KEY_ALIGN_3; -test>( - TypeinfoFlags.ARRAY | - TypeinfoFlags.VALUE_ALIGN_0 | - TypeinfoFlags.VALUE_SIGNED, -); +test>(TypeinfoFlags.ARRAY | TypeinfoFlags.VALUE_ALIGN_0 | TypeinfoFlags.VALUE_SIGNED); test>(TypeinfoFlags.ARRAY | TypeinfoFlags.VALUE_ALIGN_0); -test>( - TypeinfoFlags.ARRAY | - TypeinfoFlags.VALUE_ALIGN_1 | - TypeinfoFlags.VALUE_SIGNED, -); +test>(TypeinfoFlags.ARRAY | TypeinfoFlags.VALUE_ALIGN_1 | TypeinfoFlags.VALUE_SIGNED); test>(TypeinfoFlags.ARRAY | TypeinfoFlags.VALUE_ALIGN_1); -test>( - TypeinfoFlags.ARRAY | - TypeinfoFlags.VALUE_ALIGN_2 | - TypeinfoFlags.VALUE_SIGNED, -); +test>(TypeinfoFlags.ARRAY | TypeinfoFlags.VALUE_ALIGN_2 | TypeinfoFlags.VALUE_SIGNED); test>(TypeinfoFlags.ARRAY | TypeinfoFlags.VALUE_ALIGN_2); -test>( - TypeinfoFlags.ARRAY | - TypeinfoFlags.VALUE_ALIGN_3 | - TypeinfoFlags.VALUE_SIGNED, -); +test>(TypeinfoFlags.ARRAY | TypeinfoFlags.VALUE_ALIGN_3 | TypeinfoFlags.VALUE_SIGNED); test>(TypeinfoFlags.ARRAY | TypeinfoFlags.VALUE_ALIGN_3); -test>( - TypeinfoFlags.ARRAY | - TypeinfoFlags.VALUE_ALIGN_2 | - TypeinfoFlags.VALUE_SIGNED | - TypeinfoFlags.VALUE_FLOAT, -); -test>( - TypeinfoFlags.ARRAY | - TypeinfoFlags.VALUE_ALIGN_3 | - TypeinfoFlags.VALUE_SIGNED | - TypeinfoFlags.VALUE_FLOAT, -); +test>(TypeinfoFlags.ARRAY | TypeinfoFlags.VALUE_ALIGN_2 | TypeinfoFlags.VALUE_SIGNED | TypeinfoFlags.VALUE_FLOAT); +test>(TypeinfoFlags.ARRAY | TypeinfoFlags.VALUE_ALIGN_3 | TypeinfoFlags.VALUE_SIGNED | TypeinfoFlags.VALUE_FLOAT); test>(TypeinfoFlags.ARRAY | TypeinfoFlags.VALUE_ALIGN_4); -test>( - TypeinfoFlags.ARRAY | VALUE_ALIGN_REF | TypeinfoFlags.VALUE_MANAGED, -); -test>( - TypeinfoFlags.ARRAY | - VALUE_ALIGN_REF | - TypeinfoFlags.VALUE_NULLABLE | - TypeinfoFlags.VALUE_MANAGED, -); +test>(TypeinfoFlags.ARRAY | VALUE_ALIGN_REF | TypeinfoFlags.VALUE_MANAGED); +test>(TypeinfoFlags.ARRAY | VALUE_ALIGN_REF | TypeinfoFlags.VALUE_NULLABLE | TypeinfoFlags.VALUE_MANAGED); -test>( - TypeinfoFlags.SET | TypeinfoFlags.VALUE_ALIGN_0 | TypeinfoFlags.VALUE_SIGNED, -); +test>(TypeinfoFlags.SET | TypeinfoFlags.VALUE_ALIGN_0 | TypeinfoFlags.VALUE_SIGNED); test>(TypeinfoFlags.SET | TypeinfoFlags.VALUE_ALIGN_0); -test>( - TypeinfoFlags.SET | TypeinfoFlags.VALUE_ALIGN_1 | TypeinfoFlags.VALUE_SIGNED, -); +test>(TypeinfoFlags.SET | TypeinfoFlags.VALUE_ALIGN_1 | TypeinfoFlags.VALUE_SIGNED); test>(TypeinfoFlags.SET | TypeinfoFlags.VALUE_ALIGN_1); -test>( - TypeinfoFlags.SET | TypeinfoFlags.VALUE_ALIGN_2 | TypeinfoFlags.VALUE_SIGNED, -); +test>(TypeinfoFlags.SET | TypeinfoFlags.VALUE_ALIGN_2 | TypeinfoFlags.VALUE_SIGNED); test>(TypeinfoFlags.SET | TypeinfoFlags.VALUE_ALIGN_2); -test>( - TypeinfoFlags.SET | TypeinfoFlags.VALUE_ALIGN_3 | TypeinfoFlags.VALUE_SIGNED, -); +test>(TypeinfoFlags.SET | TypeinfoFlags.VALUE_ALIGN_3 | TypeinfoFlags.VALUE_SIGNED); test>(TypeinfoFlags.SET | TypeinfoFlags.VALUE_ALIGN_3); -test>( - TypeinfoFlags.SET | - TypeinfoFlags.VALUE_ALIGN_2 | - TypeinfoFlags.VALUE_SIGNED | - TypeinfoFlags.VALUE_FLOAT, -); -test>( - TypeinfoFlags.SET | - TypeinfoFlags.VALUE_ALIGN_3 | - TypeinfoFlags.VALUE_SIGNED | - TypeinfoFlags.VALUE_FLOAT, -); +test>(TypeinfoFlags.SET | TypeinfoFlags.VALUE_ALIGN_2 | TypeinfoFlags.VALUE_SIGNED | TypeinfoFlags.VALUE_FLOAT); +test>(TypeinfoFlags.SET | TypeinfoFlags.VALUE_ALIGN_3 | TypeinfoFlags.VALUE_SIGNED | TypeinfoFlags.VALUE_FLOAT); test>(TypeinfoFlags.SET | TypeinfoFlags.VALUE_ALIGN_4); -test>( - TypeinfoFlags.SET | VALUE_ALIGN_REF | TypeinfoFlags.VALUE_MANAGED, -); -test>( - TypeinfoFlags.SET | - VALUE_ALIGN_REF | - TypeinfoFlags.VALUE_NULLABLE | - TypeinfoFlags.VALUE_MANAGED, -); +test>(TypeinfoFlags.SET | VALUE_ALIGN_REF | TypeinfoFlags.VALUE_MANAGED); +test>(TypeinfoFlags.SET | VALUE_ALIGN_REF | TypeinfoFlags.VALUE_NULLABLE | TypeinfoFlags.VALUE_MANAGED); // test>(TypeinfoFlags.MAP | TypeinfoFlags.KEY_ALIGN_4 | TypeinfoFlags.VALUE_ALIGN_0 | TypeinfoFlags.VALUE_SIGNED); -test>( - TypeinfoFlags.MAP | - TypeinfoFlags.KEY_ALIGN_3 | - TypeinfoFlags.KEY_SIGNED | - TypeinfoFlags.VALUE_ALIGN_1 | - TypeinfoFlags.VALUE_SIGNED, -); -test>( - TypeinfoFlags.MAP | - TypeinfoFlags.KEY_ALIGN_2 | - TypeinfoFlags.KEY_SIGNED | - TypeinfoFlags.VALUE_ALIGN_2 | - TypeinfoFlags.VALUE_SIGNED, -); -test>( - TypeinfoFlags.MAP | - TypeinfoFlags.KEY_ALIGN_1 | - TypeinfoFlags.KEY_SIGNED | - TypeinfoFlags.VALUE_ALIGN_3 | - TypeinfoFlags.VALUE_SIGNED, -); +test>(TypeinfoFlags.MAP | TypeinfoFlags.KEY_ALIGN_3 | TypeinfoFlags.KEY_SIGNED | TypeinfoFlags.VALUE_ALIGN_1 | TypeinfoFlags.VALUE_SIGNED); +test>(TypeinfoFlags.MAP | TypeinfoFlags.KEY_ALIGN_2 | TypeinfoFlags.KEY_SIGNED | TypeinfoFlags.VALUE_ALIGN_2 | TypeinfoFlags.VALUE_SIGNED); +test>(TypeinfoFlags.MAP | TypeinfoFlags.KEY_ALIGN_1 | TypeinfoFlags.KEY_SIGNED | TypeinfoFlags.VALUE_ALIGN_3 | TypeinfoFlags.VALUE_SIGNED); // test>(TypeinfoFlags.MAP | TypeinfoFlags.KEY_ALIGN_0 | TypeinfoFlags.KEY_SIGNED | TypeinfoFlags.VALUE_ALIGN_4); -test>( - TypeinfoFlags.MAP | - KEY_ALIGN_REF | - TypeinfoFlags.KEY_MANAGED | - TypeinfoFlags.VALUE_ALIGN_0 | - TypeinfoFlags.VALUE_SIGNED, -); -test>( - TypeinfoFlags.MAP | - KEY_ALIGN_REF | - TypeinfoFlags.KEY_NULLABLE | - TypeinfoFlags.KEY_MANAGED | - TypeinfoFlags.VALUE_ALIGN_0 | - TypeinfoFlags.VALUE_SIGNED, -); -test>( - TypeinfoFlags.MAP | - TypeinfoFlags.KEY_ALIGN_0 | - TypeinfoFlags.KEY_SIGNED | - TypeinfoFlags.VALUE_MANAGED | - VALUE_ALIGN_REF, -); -test>( - TypeinfoFlags.MAP | - TypeinfoFlags.KEY_ALIGN_0 | - TypeinfoFlags.KEY_SIGNED | - TypeinfoFlags.VALUE_NULLABLE | - TypeinfoFlags.VALUE_MANAGED | - VALUE_ALIGN_REF, -); -test>( - TypeinfoFlags.MAP | - TypeinfoFlags.KEY_NULLABLE | - TypeinfoFlags.KEY_MANAGED | - KEY_ALIGN_REF | - TypeinfoFlags.VALUE_NULLABLE | - TypeinfoFlags.VALUE_MANAGED | - VALUE_ALIGN_REF, -); -test>( - TypeinfoFlags.MAP | - TypeinfoFlags.KEY_ALIGN_2 | - TypeinfoFlags.KEY_SIGNED | - TypeinfoFlags.KEY_FLOAT | - TypeinfoFlags.VALUE_ALIGN_2 | - TypeinfoFlags.VALUE_SIGNED, -); +test>(TypeinfoFlags.MAP | KEY_ALIGN_REF | TypeinfoFlags.KEY_MANAGED | TypeinfoFlags.VALUE_ALIGN_0 | TypeinfoFlags.VALUE_SIGNED); +test>(TypeinfoFlags.MAP | KEY_ALIGN_REF | TypeinfoFlags.KEY_NULLABLE | TypeinfoFlags.KEY_MANAGED | TypeinfoFlags.VALUE_ALIGN_0 | TypeinfoFlags.VALUE_SIGNED); +test>(TypeinfoFlags.MAP | TypeinfoFlags.KEY_ALIGN_0 | TypeinfoFlags.KEY_SIGNED | TypeinfoFlags.VALUE_MANAGED | VALUE_ALIGN_REF); +test>(TypeinfoFlags.MAP | TypeinfoFlags.KEY_ALIGN_0 | TypeinfoFlags.KEY_SIGNED | TypeinfoFlags.VALUE_NULLABLE | TypeinfoFlags.VALUE_MANAGED | VALUE_ALIGN_REF); +test>(TypeinfoFlags.MAP | TypeinfoFlags.KEY_NULLABLE | TypeinfoFlags.KEY_MANAGED | KEY_ALIGN_REF | TypeinfoFlags.VALUE_NULLABLE | TypeinfoFlags.VALUE_MANAGED | VALUE_ALIGN_REF); +test>(TypeinfoFlags.MAP | TypeinfoFlags.KEY_ALIGN_2 | TypeinfoFlags.KEY_SIGNED | TypeinfoFlags.KEY_FLOAT | TypeinfoFlags.VALUE_ALIGN_2 | TypeinfoFlags.VALUE_SIGNED); From bcd86f278cc76a8516d7957406e8b1df7f9b84ba Mon Sep 17 00:00:00 2001 From: Pebrian Date: Mon, 25 Aug 2025 10:50:50 +0700 Subject: [PATCH 6/7] fix: make Map constructor initialEntires nullable --- std/assembly/index.d.ts | 6 +- std/assembly/map.ts | 10 +- tests/compiler/std/map.debug.wat | 5676 +++---- tests/compiler/std/map.release.wat | 20906 +++++++++++------------- tests/compiler/std/symbol.debug.wat | 809 +- tests/compiler/std/symbol.release.wat | 2803 ++-- 6 files changed, 12993 insertions(+), 17217 deletions(-) diff --git a/std/assembly/index.d.ts b/std/assembly/index.d.ts index 262a47662c..9ae363e786 100644 --- a/std/assembly/index.d.ts +++ b/std/assembly/index.d.ts @@ -2394,7 +2394,7 @@ interface NewableFunction extends Function { interface IArguments {} interface RegExp {} -interface Map { +interface Map { readonly size: i32; has(key: K): bool; set(key: K, value: V): this; @@ -2406,10 +2406,10 @@ interface Map { toString(): string; } -type MapInitialEntries = {key: K, value:V}[] +type MapInitialEntries = {key: K, value: V}[] interface MapConstructor { - new (entries?: MapInitialEntries): Map; + new (entries?: MapInitialEntries | null): Map; } declare const Map: MapConstructor; diff --git a/std/assembly/map.ts b/std/assembly/map.ts index 02ba2eb7b0..f4e512add8 100644 --- a/std/assembly/map.ts +++ b/std/assembly/map.ts @@ -73,14 +73,12 @@ export class Map { private entriesOffset: i32 = 0; private entriesCount: i32 = 0; - constructor(initialEntries: MapInitialEntries = []) { - let entriesLength = initialEntries.length; - - if (entriesLength > 0) { - if (entriesLength >= this.entriesCapacity) this.bucketsMask = entriesLength; + constructor(initialEntries: MapInitialEntries | null = null) { + if (initialEntries) { + if (initialEntries.length >= this.entriesCapacity) this.bucketsMask = initialEntries.length; this.rehash((this.bucketsMask << 1) | 1); - for (let i = 0; i < entriesLength; i++) { + for (let i = 0; i < initialEntries.length; i++) { let key = initialEntries[i].key; let value = initialEntries[i].value; let hashCode = HASH(key); diff --git a/tests/compiler/std/map.debug.wat b/tests/compiler/std/map.debug.wat index 59d22e50c6..e77df1337c 100644 --- a/tests/compiler/std/map.debug.wat +++ b/tests/compiler/std/map.debug.wat @@ -50,11 +50,10 @@ (global $~lib/rt/tlsf/ROOT (mut i32) (i32.const 0)) (global $~lib/native/ASC_LOW_MEMORY_LIMIT i32 (i32.const 0)) (global $~lib/native/ASC_RUNTIME i32 (i32.const 2)) - (global $~argumentsLength (mut i32) (i32.const 0)) - (global $~lib/rt/__rtti_base i32 (i32.const 1792)) - (global $~lib/memory/__data_end i32 (i32.const 2080)) - (global $~lib/memory/__stack_pointer (mut i32) (i32.const 34848)) - (global $~lib/memory/__heap_base i32 (i32.const 34848)) + (global $~lib/rt/__rtti_base i32 (i32.const 1184)) + (global $~lib/memory/__data_end i32 (i32.const 1472)) + (global $~lib/memory/__stack_pointer (mut i32) (i32.const 34240)) + (global $~lib/memory/__heap_base i32 (i32.const 34240)) (memory $0 1) (data $0 (i32.const 12) ",\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\1c\00\00\00I\00n\00v\00a\00l\00i\00d\00 \00l\00e\00n\00g\00t\00h\00") (data $1 (i32.const 60) "<\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00&\00\00\00~\00l\00i\00b\00/\00a\00r\00r\00a\00y\00b\00u\00f\00f\00e\00r\00.\00t\00s\00\00\00\00\00\00\00") @@ -68,10 +67,10 @@ (data $9 (i32.const 460) "<\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\1e\00\00\00~\00l\00i\00b\00/\00r\00t\00/\00t\00l\00s\00f\00.\00t\00s\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00") (data $10 (i32.const 524) ",\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\1a\00\00\00~\00l\00i\00b\00/\00a\00r\00r\00a\00y\00.\00t\00s\00\00\00") (data $11 (i32.const 572) "|\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00^\00\00\00E\00l\00e\00m\00e\00n\00t\00 \00t\00y\00p\00e\00 \00m\00u\00s\00t\00 \00b\00e\00 \00n\00u\00l\00l\00a\00b\00l\00e\00 \00i\00f\00 \00a\00r\00r\00a\00y\00 \00i\00s\00 \00h\00o\00l\00e\00y\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00") - (data $12 (i32.const 700) "\1c\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00") - (data $13 (i32.const 732) ",\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\14\00\00\00s\00t\00d\00/\00m\00a\00p\00.\00t\00s\00\00\00\00\00\00\00\00\00") - (data $14 (i32.const 780) "<\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00$\00\00\00K\00e\00y\00 \00d\00o\00e\00s\00 \00n\00o\00t\00 \00e\00x\00i\00s\00t\00\00\00\00\00\00\00\00\00") - (data $15 (i32.const 844) ",\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\16\00\00\00~\00l\00i\00b\00/\00m\00a\00p\00.\00t\00s\00\00\00\00\00\00\00") + (data $12 (i32.const 700) ",\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\14\00\00\00s\00t\00d\00/\00m\00a\00p\00.\00t\00s\00\00\00\00\00\00\00\00\00") + (data $13 (i32.const 748) "<\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00$\00\00\00K\00e\00y\00 \00d\00o\00e\00s\00 \00n\00o\00t\00 \00e\00x\00i\00s\00t\00\00\00\00\00\00\00\00\00") + (data $14 (i32.const 812) ",\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\16\00\00\00~\00l\00i\00b\00/\00m\00a\00p\00.\00t\00s\00\00\00\00\00\00\00") + (data $15 (i32.const 860) "\1c\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00") (data $16 (i32.const 892) "\1c\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00") (data $17 (i32.const 924) "\1c\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00") (data $18 (i32.const 956) "\1c\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00") @@ -81,26 +80,7 @@ (data $22 (i32.const 1084) "\1c\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00") (data $23 (i32.const 1116) "\1c\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00") (data $24 (i32.const 1148) "\1c\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00") - (data $25 (i32.const 1180) "\1c\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00") - (data $26 (i32.const 1212) "\1c\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00") - (data $27 (i32.const 1244) "\1c\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00") - (data $28 (i32.const 1276) "\1c\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00") - (data $29 (i32.const 1308) "\1c\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00") - (data $30 (i32.const 1340) "\1c\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00") - (data $31 (i32.const 1372) "\1c\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00") - (data $32 (i32.const 1404) "\1c\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00") - (data $33 (i32.const 1436) "\1c\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00") - (data $34 (i32.const 1468) "\1c\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00") - (data $35 (i32.const 1500) "\1c\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00") - (data $36 (i32.const 1532) "\1c\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00") - (data $37 (i32.const 1564) "\1c\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00") - (data $38 (i32.const 1596) "\1c\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00") - (data $39 (i32.const 1628) "\1c\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00") - (data $40 (i32.const 1660) "\1c\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00") - (data $41 (i32.const 1692) "\1c\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00") - (data $42 (i32.const 1724) "\1c\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00") - (data $43 (i32.const 1756) "\1c\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00") - (data $44 (i32.const 1792) "G\00\00\00 \00\00\00 \00\00\00 \00\00\00\00\00\00\00\10\89\10\00 \00\00\00\02A\00\00\02\t\00\00B\08\00\00P\88\10\00 \00\00\00\02A\00\00\10\t\12\00 \00\00\00\02A\00\00\10\89\00\00 \00\00\00\02A\00\00B\00\00\00P\80\00\00 \00\00\00\02A\00\00\10\t\11\00 \00\00\00\02A\00\00\82\08\00\00\90\08\11\00 \00\00\00\02A\00\00\10\t\01\00 \00\00\00\02A\00\00\82\00\00\00\90\00\01\00 \00\00\00\02A\00\00\10\t\02\00 \00\00\00\02A\00\00\02\01\00\00\10\01\02\00 \00\00\00\02A\00\00\10\t\14\00 \00\00\00\02A\00\00\02\n\00\00\10\n\14\00 \00\00\00\02A\00\00\10\t\04\00 \00\00\00\02A\00\00\02\02\00\00\10\02\04\00 \00\00\00\02A\00\00\10\t2\00 \00\00\00\02A\00\00\02\19\00\00\10\192\00 \00\00\00\02A\00\00\10\t4\00 \00\00\00\02A\00\00\02\1a\00\00\10\1a4\00 \00\00\00\02A\00\00") + (data $25 (i32.const 1184) "G\00\00\00 \00\00\00 \00\00\00 \00\00\00\00\00\00\00\10\89\10\00 \00\00\00\02A\00\00B\08\00\00\02\t\00\00P\88\10\00 \00\00\00\02A\00\00\10\t\12\00 \00\00\00\02A\00\00\10\89\00\00 \00\00\00\02A\00\00B\00\00\00P\80\00\00 \00\00\00\02A\00\00\10\t\11\00 \00\00\00\02A\00\00\82\08\00\00\90\08\11\00 \00\00\00\02A\00\00\10\t\01\00 \00\00\00\02A\00\00\82\00\00\00\90\00\01\00 \00\00\00\02A\00\00\10\t\02\00 \00\00\00\02A\00\00\02\01\00\00\10\01\02\00 \00\00\00\02A\00\00\10\t\14\00 \00\00\00\02A\00\00\02\n\00\00\10\n\14\00 \00\00\00\02A\00\00\10\t\04\00 \00\00\00\02A\00\00\02\02\00\00\10\02\04\00 \00\00\00\02A\00\00\10\t2\00 \00\00\00\02A\00\00\02\19\00\00\10\192\00 \00\00\00\02A\00\00\10\t4\00 \00\00\00\02A\00\00\02\1a\00\00\10\1a4\00 \00\00\00\02A\00\00") (table $0 1 1 funcref) (elem $0 (i32.const 1)) (export "memory" (memory $0)) @@ -2547,22 +2527,6 @@ local.get $entriesCount i32.store offset=20 ) - (func $~lib/rt/__newBuffer (param $size i32) (param $id i32) (param $data i32) (result i32) - (local $buffer i32) - local.get $size - local.get $id - call $~lib/rt/itcms/__new - local.set $buffer - local.get $data - if - local.get $buffer - local.get $data - local.get $size - memory.copy - end - local.get $buffer - return - ) (func $~lib/array/Array#set:buffer (param $this i32) (param $buffer i32) local.get $this local.get $buffer @@ -2963,6 +2927,22 @@ local.get $entriesCount i32.store offset=20 ) + (func $~lib/rt/__newBuffer (param $size i32) (param $id i32) (param $data i32) (result i32) + (local $buffer i32) + local.get $size + local.get $id + call $~lib/rt/itcms/__new + local.set $buffer + local.get $data + if + local.get $buffer + local.get $data + local.get $size + memory.copy + end + local.get $buffer + return + ) (func $"~lib/map/KeyValue#set:key" (param $this i32) (param $key i32) local.get $this local.get $key @@ -5738,7 +5718,7 @@ i32.const 592 local.get $0 call $~lib/rt/itcms/__visit - i32.const 800 + i32.const 768 local.get $0 call $~lib/rt/itcms/__visit i32.const 144 @@ -5777,29 +5757,29 @@ local.get $1 call $"~lib/array/Array<~lib/map/KeyValue>#__visit" ) - (func $~lib/array/Array#get:buffer (param $this i32) (result i32) + (func $~lib/array/Array#get:buffer (param $this i32) (result i32) local.get $this i32.load ) - (func $~lib/array/Array~visit (param $0 i32) (param $1 i32) + (func $~lib/array/Array~visit (param $0 i32) (param $1 i32) local.get $0 local.get $1 call $~lib/object/Object~visit local.get $0 local.get $1 - call $~lib/array/Array#__visit + call $~lib/array/Array#__visit ) - (func $~lib/array/Array#get:buffer (param $this i32) (result i32) + (func $~lib/array/Array#get:buffer (param $this i32) (result i32) local.get $this i32.load ) - (func $~lib/array/Array~visit (param $0 i32) (param $1 i32) + (func $~lib/array/Array~visit (param $0 i32) (param $1 i32) local.get $0 local.get $1 call $~lib/object/Object~visit local.get $0 local.get $1 - call $~lib/array/Array#__visit + call $~lib/array/Array#__visit ) (func $"~lib/map/Map~visit" (param $0 i32) (param $1 i32) local.get $0 @@ -6321,8 +6301,8 @@ block $"~lib/array/Array<~lib/map/KeyValue>" block $"~lib/map/KeyValue" block $"~lib/map/Map" - block $~lib/array/Array - block $~lib/array/Array + block $~lib/array/Array + block $~lib/array/Array block $"~lib/array/Array<~lib/map/KeyValue>" block $"~lib/map/KeyValue" block $"~lib/map/Map" @@ -6334,7 +6314,7 @@ i32.const 8 i32.sub i32.load - br_table $~lib/object/Object $~lib/arraybuffer/ArrayBuffer $~lib/string/String $~lib/arraybuffer/ArrayBufferView $"~lib/map/Map" $"~lib/map/KeyValue" $"~lib/array/Array<~lib/map/KeyValue>" $~lib/array/Array $~lib/array/Array $"~lib/map/Map" $"~lib/map/KeyValue" $"~lib/array/Array<~lib/map/KeyValue>" $"~lib/map/Map" $"~lib/map/KeyValue" $"~lib/array/Array<~lib/map/KeyValue>" $"~lib/map/Map" $"~lib/map/KeyValue" $"~lib/array/Array<~lib/map/KeyValue>" $~lib/array/Array $"~lib/map/Map" $"~lib/map/KeyValue" $"~lib/array/Array<~lib/map/KeyValue>" $"~lib/map/Map" $"~lib/map/KeyValue" $"~lib/array/Array<~lib/map/KeyValue>" $~lib/array/Array $"~lib/map/Map" $"~lib/map/KeyValue" $"~lib/array/Array<~lib/map/KeyValue>" $"~lib/map/Map" $"~lib/map/KeyValue" $"~lib/array/Array<~lib/map/KeyValue>" $~lib/array/Array $"~lib/map/Map" $"~lib/map/KeyValue" $"~lib/array/Array<~lib/map/KeyValue>" $"~lib/map/Map" $"~lib/map/KeyValue" $"~lib/array/Array<~lib/map/KeyValue>" $~lib/array/Array $"~lib/map/Map" $"~lib/map/KeyValue" $"~lib/array/Array<~lib/map/KeyValue>" $"~lib/map/Map" $"~lib/map/KeyValue" $"~lib/array/Array<~lib/map/KeyValue>" $~lib/array/Array $"~lib/map/Map" $"~lib/map/KeyValue" $"~lib/array/Array<~lib/map/KeyValue>" $"~lib/map/Map" $"~lib/map/KeyValue" $"~lib/array/Array<~lib/map/KeyValue>" $~lib/array/Array $"~lib/map/Map" $"~lib/map/KeyValue" $"~lib/array/Array<~lib/map/KeyValue>" $"~lib/map/Map" $"~lib/map/KeyValue" $"~lib/array/Array<~lib/map/KeyValue>" $~lib/array/Array $"~lib/map/Map" $"~lib/map/KeyValue" $"~lib/array/Array<~lib/map/KeyValue>" $"~lib/map/Map" $"~lib/map/KeyValue" $"~lib/array/Array<~lib/map/KeyValue>" $~lib/array/Array $"~lib/map/Map" $"~lib/map/KeyValue" $"~lib/array/Array<~lib/map/KeyValue>" $invalid + br_table $~lib/object/Object $~lib/arraybuffer/ArrayBuffer $~lib/string/String $~lib/arraybuffer/ArrayBufferView $"~lib/map/Map" $"~lib/map/KeyValue" $"~lib/array/Array<~lib/map/KeyValue>" $~lib/array/Array $~lib/array/Array $"~lib/map/Map" $"~lib/map/KeyValue" $"~lib/array/Array<~lib/map/KeyValue>" $"~lib/map/Map" $"~lib/map/KeyValue" $"~lib/array/Array<~lib/map/KeyValue>" $"~lib/map/Map" $"~lib/map/KeyValue" $"~lib/array/Array<~lib/map/KeyValue>" $~lib/array/Array $"~lib/map/Map" $"~lib/map/KeyValue" $"~lib/array/Array<~lib/map/KeyValue>" $"~lib/map/Map" $"~lib/map/KeyValue" $"~lib/array/Array<~lib/map/KeyValue>" $~lib/array/Array $"~lib/map/Map" $"~lib/map/KeyValue" $"~lib/array/Array<~lib/map/KeyValue>" $"~lib/map/Map" $"~lib/map/KeyValue" $"~lib/array/Array<~lib/map/KeyValue>" $~lib/array/Array $"~lib/map/Map" $"~lib/map/KeyValue" $"~lib/array/Array<~lib/map/KeyValue>" $"~lib/map/Map" $"~lib/map/KeyValue" $"~lib/array/Array<~lib/map/KeyValue>" $~lib/array/Array $"~lib/map/Map" $"~lib/map/KeyValue" $"~lib/array/Array<~lib/map/KeyValue>" $"~lib/map/Map" $"~lib/map/KeyValue" $"~lib/array/Array<~lib/map/KeyValue>" $~lib/array/Array $"~lib/map/Map" $"~lib/map/KeyValue" $"~lib/array/Array<~lib/map/KeyValue>" $"~lib/map/Map" $"~lib/map/KeyValue" $"~lib/array/Array<~lib/map/KeyValue>" $~lib/array/Array $"~lib/map/Map" $"~lib/map/KeyValue" $"~lib/array/Array<~lib/map/KeyValue>" $"~lib/map/Map" $"~lib/map/KeyValue" $"~lib/array/Array<~lib/map/KeyValue>" $~lib/array/Array $"~lib/map/Map" $"~lib/map/KeyValue" $"~lib/array/Array<~lib/map/KeyValue>" $"~lib/map/Map" $"~lib/map/KeyValue" $"~lib/array/Array<~lib/map/KeyValue>" $~lib/array/Array $"~lib/map/Map" $"~lib/map/KeyValue" $"~lib/array/Array<~lib/map/KeyValue>" $invalid end return end @@ -6361,12 +6341,12 @@ end local.get $0 local.get $1 - call $~lib/array/Array~visit + call $~lib/array/Array~visit return end local.get $0 local.get $1 - call $~lib/array/Array~visit + call $~lib/array/Array~visit return end local.get $0 @@ -6635,8 +6615,8 @@ global.get $~lib/memory/__data_end i32.lt_s if - i32.const 34880 - i32.const 34928 + i32.const 34272 + i32.const 34320 i32.const 1 i32.const 1 call $~lib/builtins/abort @@ -7018,17 +6998,16 @@ return ) (func $"~lib/map/Map#constructor" (param $this i32) (param $initialEntries i32) (result i32) - (local $entriesLength i32) (local $i i32) (local $key i32) (local $value i32) (local $hashCode i32) (local $entry i32) (local $entries i32) - (local $9 i32) - (local $entry|10 i32) + (local $8 i32) + (local $entry|9 i32) (local $bucketPtrBase i32) - (local $12 i32) + (local $11 i32) global.get $~lib/memory/__stack_pointer i32.const 16 i32.sub @@ -7051,38 +7030,38 @@ i32.store end local.get $this - local.set $12 + local.set $11 global.get $~lib/memory/__stack_pointer - local.get $12 + local.get $11 i32.store offset=4 - local.get $12 + local.get $11 i32.const 0 i32.const 4 i32.const 4 i32.mul call $~lib/arraybuffer/ArrayBuffer#constructor - local.set $12 + local.set $11 global.get $~lib/memory/__stack_pointer - local.get $12 + local.get $11 i32.store offset=8 - local.get $12 + local.get $11 call $"~lib/map/Map#set:buckets" local.get $this - local.set $12 + local.set $11 global.get $~lib/memory/__stack_pointer - local.get $12 + local.get $11 i32.store offset=4 - local.get $12 + local.get $11 i32.const 4 i32.const 1 i32.sub call $"~lib/map/Map#set:bucketsMask" local.get $this - local.set $12 + local.set $11 global.get $~lib/memory/__stack_pointer - local.get $12 + local.get $11 i32.store offset=4 - local.get $12 + local.get $11 i32.const 0 i32.const 4 block $"~lib/map/ENTRY_SIZE|inlined.5" (result i32) @@ -7091,79 +7070,81 @@ end i32.mul call $~lib/arraybuffer/ArrayBuffer#constructor - local.set $12 + local.set $11 global.get $~lib/memory/__stack_pointer - local.get $12 + local.get $11 i32.store offset=8 - local.get $12 + local.get $11 call $"~lib/map/Map#set:entries" local.get $this - local.set $12 + local.set $11 global.get $~lib/memory/__stack_pointer - local.get $12 + local.get $11 i32.store offset=4 - local.get $12 + local.get $11 i32.const 4 call $"~lib/map/Map#set:entriesCapacity" local.get $this - local.set $12 + local.set $11 global.get $~lib/memory/__stack_pointer - local.get $12 + local.get $11 i32.store offset=4 - local.get $12 + local.get $11 i32.const 0 call $"~lib/map/Map#set:entriesOffset" local.get $this - local.set $12 + local.set $11 global.get $~lib/memory/__stack_pointer - local.get $12 + local.get $11 i32.store offset=4 - local.get $12 + local.get $11 i32.const 0 call $"~lib/map/Map#set:entriesCount" local.get $initialEntries - local.set $12 - global.get $~lib/memory/__stack_pointer - local.get $12 - i32.store offset=4 - local.get $12 - call $"~lib/array/Array<~lib/map/KeyValue>#get:length" - local.set $entriesLength - local.get $entriesLength - i32.const 0 - i32.gt_s if - local.get $entriesLength + local.get $initialEntries + local.set $11 + global.get $~lib/memory/__stack_pointer + local.get $11 + i32.store offset=4 + local.get $11 + call $"~lib/array/Array<~lib/map/KeyValue>#get:length" local.get $this - local.set $12 + local.set $11 global.get $~lib/memory/__stack_pointer - local.get $12 + local.get $11 i32.store offset=4 - local.get $12 + local.get $11 call $"~lib/map/Map#get:entriesCapacity" i32.ge_s if local.get $this - local.set $12 + local.set $11 global.get $~lib/memory/__stack_pointer - local.get $12 + local.get $11 i32.store offset=4 - local.get $12 - local.get $entriesLength + local.get $11 + local.get $initialEntries + local.set $11 + global.get $~lib/memory/__stack_pointer + local.get $11 + i32.store offset=8 + local.get $11 + call $"~lib/array/Array<~lib/map/KeyValue>#get:length" call $"~lib/map/Map#set:bucketsMask" end local.get $this - local.set $12 + local.set $11 global.get $~lib/memory/__stack_pointer - local.get $12 + local.get $11 i32.store offset=4 - local.get $12 + local.get $11 local.get $this - local.set $12 + local.set $11 global.get $~lib/memory/__stack_pointer - local.get $12 + local.get $11 i32.store offset=8 - local.get $12 + local.get $11 call $"~lib/map/Map#get:bucketsMask" i32.const 1 i32.shl @@ -7174,48 +7155,54 @@ local.set $i loop $for-loop|0 local.get $i - local.get $entriesLength + local.get $initialEntries + local.set $11 + global.get $~lib/memory/__stack_pointer + local.get $11 + i32.store offset=4 + local.get $11 + call $"~lib/array/Array<~lib/map/KeyValue>#get:length" i32.lt_s if local.get $initialEntries - local.set $12 + local.set $11 global.get $~lib/memory/__stack_pointer - local.get $12 + local.get $11 i32.store offset=8 - local.get $12 + local.get $11 local.get $i call $"~lib/array/Array<~lib/map/KeyValue>#__get" - local.set $12 + local.set $11 global.get $~lib/memory/__stack_pointer - local.get $12 + local.get $11 i32.store offset=4 - local.get $12 + local.get $11 call $"~lib/map/KeyValue#get:key" local.set $key local.get $initialEntries - local.set $12 + local.set $11 global.get $~lib/memory/__stack_pointer - local.get $12 + local.get $11 i32.store offset=8 - local.get $12 + local.get $11 local.get $i call $"~lib/array/Array<~lib/map/KeyValue>#__get" - local.set $12 + local.set $11 global.get $~lib/memory/__stack_pointer - local.get $12 + local.get $11 i32.store offset=4 - local.get $12 + local.get $11 call $"~lib/map/KeyValue#get:value" local.set $value local.get $key call $~lib/util/hash/HASH local.set $hashCode local.get $this - local.set $12 + local.set $11 global.get $~lib/memory/__stack_pointer - local.get $12 + local.get $11 i32.store offset=4 - local.get $12 + local.get $11 local.get $key local.get $hashCode call $"~lib/map/Map#find" @@ -7230,92 +7217,92 @@ else global.get $~lib/memory/__stack_pointer local.get $this - local.set $12 + local.set $11 global.get $~lib/memory/__stack_pointer - local.get $12 + local.get $11 i32.store offset=4 - local.get $12 + local.get $11 call $"~lib/map/Map#get:entries" local.tee $entries i32.store offset=12 local.get $entries local.get $this - local.set $12 + local.set $11 global.get $~lib/memory/__stack_pointer - local.get $12 + local.get $11 i32.store offset=4 - local.get $12 + local.get $11 local.get $this - local.set $12 + local.set $11 global.get $~lib/memory/__stack_pointer - local.get $12 + local.get $11 i32.store offset=8 - local.get $12 + local.get $11 call $"~lib/map/Map#get:entriesOffset" - local.tee $9 + local.tee $8 i32.const 1 i32.add call $"~lib/map/Map#set:entriesOffset" - local.get $9 + local.get $8 block $"~lib/map/ENTRY_SIZE|inlined.4" (result i32) i32.const 12 br $"~lib/map/ENTRY_SIZE|inlined.4" end i32.mul i32.add - local.set $entry|10 - local.get $entry|10 + local.set $entry|9 + local.get $entry|9 local.get $key call $"~lib/map/MapEntry#set:key" i32.const 0 drop - local.get $entry|10 + local.get $entry|9 local.get $value call $"~lib/map/MapEntry#set:value" i32.const 0 drop local.get $this - local.set $12 + local.set $11 global.get $~lib/memory/__stack_pointer - local.get $12 + local.get $11 i32.store offset=4 - local.get $12 + local.get $11 local.get $this - local.set $12 + local.set $11 global.get $~lib/memory/__stack_pointer - local.get $12 + local.get $11 i32.store offset=8 - local.get $12 + local.get $11 call $"~lib/map/Map#get:entriesCount" i32.const 1 i32.add call $"~lib/map/Map#set:entriesCount" local.get $this - local.set $12 + local.set $11 global.get $~lib/memory/__stack_pointer - local.get $12 + local.get $11 i32.store offset=4 - local.get $12 + local.get $11 call $"~lib/map/Map#get:buckets" local.get $hashCode local.get $this - local.set $12 + local.set $11 global.get $~lib/memory/__stack_pointer - local.get $12 + local.get $11 i32.store offset=4 - local.get $12 + local.get $11 call $"~lib/map/Map#get:bucketsMask" i32.and i32.const 4 i32.mul i32.add local.set $bucketPtrBase - local.get $entry|10 + local.get $entry|9 local.get $bucketPtrBase i32.load call $"~lib/map/MapEntry#set:taggedNext" local.get $bucketPtrBase - local.get $entry|10 + local.get $entry|9 i32.store end local.get $i @@ -7327,63 +7314,12 @@ end end local.get $this - local.set $12 + local.set $11 global.get $~lib/memory/__stack_pointer i32.const 16 i32.add global.set $~lib/memory/__stack_pointer - local.get $12 - ) - (func $"~lib/map/Map#constructor@varargs" (param $this i32) (param $initialEntries i32) (result i32) - (local $2 i32) - (local $3 i32) - global.get $~lib/memory/__stack_pointer - i32.const 12 - i32.sub - global.set $~lib/memory/__stack_pointer - call $~stack_check - global.get $~lib/memory/__stack_pointer - i64.const 0 - i64.store - global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.store offset=8 - block $1of1 - block $0of1 - block $outOfRange - global.get $~argumentsLength - br_table $0of1 $1of1 $outOfRange - end - unreachable - end - global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.const 2 - i32.const 6 - i32.const 720 - call $~lib/rt/__newArray - local.tee $initialEntries - i32.store - end - local.get $this - local.set $3 - global.get $~lib/memory/__stack_pointer - local.get $3 - i32.store offset=4 - local.get $3 - local.get $initialEntries - local.set $3 - global.get $~lib/memory/__stack_pointer - local.get $3 - i32.store offset=8 - local.get $3 - call $"~lib/map/Map#constructor" - local.set $3 - global.get $~lib/memory/__stack_pointer - i32.const 12 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $3 + local.get $11 ) (func $"~lib/map/Map#has" (param $this i32) (param $key i32) (result i32) (local $2 i32) @@ -7642,9 +7578,9 @@ local.get $entry i32.eqz if - i32.const 800 - i32.const 864 - i32.const 148 + i32.const 768 + i32.const 832 + i32.const 146 i32.const 17 call $~lib/builtins/abort unreachable @@ -7706,7 +7642,7 @@ if global.get $~lib/memory/__stack_pointer i32.const 16 - i32.const 8 + i32.const 7 call $~lib/rt/itcms/__new local.tee $this i32.store @@ -8163,7 +8099,7 @@ if global.get $~lib/memory/__stack_pointer i32.const 16 - i32.const 7 + i32.const 8 call $~lib/rt/itcms/__new local.tee $this i32.store @@ -8854,17 +8790,16 @@ return ) (func $"~lib/map/Map#constructor" (param $this i32) (param $initialEntries i32) (result i32) - (local $entriesLength i32) (local $i i32) (local $key i32) (local $value i32) (local $hashCode i32) (local $entry i32) (local $entries i32) - (local $9 i32) - (local $entry|10 i32) + (local $8 i32) + (local $entry|9 i32) (local $bucketPtrBase i32) - (local $12 i32) + (local $11 i32) global.get $~lib/memory/__stack_pointer i32.const 16 i32.sub @@ -8887,38 +8822,38 @@ i32.store end local.get $this - local.set $12 + local.set $11 global.get $~lib/memory/__stack_pointer - local.get $12 + local.get $11 i32.store offset=4 - local.get $12 + local.get $11 i32.const 0 i32.const 4 i32.const 4 i32.mul call $~lib/arraybuffer/ArrayBuffer#constructor - local.set $12 + local.set $11 global.get $~lib/memory/__stack_pointer - local.get $12 + local.get $11 i32.store offset=8 - local.get $12 + local.get $11 call $"~lib/map/Map#set:buckets" local.get $this - local.set $12 + local.set $11 global.get $~lib/memory/__stack_pointer - local.get $12 + local.get $11 i32.store offset=4 - local.get $12 + local.get $11 i32.const 4 i32.const 1 i32.sub call $"~lib/map/Map#set:bucketsMask" local.get $this - local.set $12 + local.set $11 global.get $~lib/memory/__stack_pointer - local.get $12 + local.get $11 i32.store offset=4 - local.get $12 + local.get $11 i32.const 0 i32.const 4 block $"~lib/map/ENTRY_SIZE|inlined.5" (result i32) @@ -8927,79 +8862,81 @@ end i32.mul call $~lib/arraybuffer/ArrayBuffer#constructor - local.set $12 + local.set $11 global.get $~lib/memory/__stack_pointer - local.get $12 + local.get $11 i32.store offset=8 - local.get $12 + local.get $11 call $"~lib/map/Map#set:entries" local.get $this - local.set $12 + local.set $11 global.get $~lib/memory/__stack_pointer - local.get $12 + local.get $11 i32.store offset=4 - local.get $12 + local.get $11 i32.const 4 call $"~lib/map/Map#set:entriesCapacity" local.get $this - local.set $12 + local.set $11 global.get $~lib/memory/__stack_pointer - local.get $12 + local.get $11 i32.store offset=4 - local.get $12 + local.get $11 i32.const 0 call $"~lib/map/Map#set:entriesOffset" local.get $this - local.set $12 + local.set $11 global.get $~lib/memory/__stack_pointer - local.get $12 + local.get $11 i32.store offset=4 - local.get $12 + local.get $11 i32.const 0 call $"~lib/map/Map#set:entriesCount" local.get $initialEntries - local.set $12 - global.get $~lib/memory/__stack_pointer - local.get $12 - i32.store offset=4 - local.get $12 - call $"~lib/array/Array<~lib/map/KeyValue>#get:length" - local.set $entriesLength - local.get $entriesLength - i32.const 0 - i32.gt_s if - local.get $entriesLength + local.get $initialEntries + local.set $11 + global.get $~lib/memory/__stack_pointer + local.get $11 + i32.store offset=4 + local.get $11 + call $"~lib/array/Array<~lib/map/KeyValue>#get:length" local.get $this - local.set $12 + local.set $11 global.get $~lib/memory/__stack_pointer - local.get $12 + local.get $11 i32.store offset=4 - local.get $12 + local.get $11 call $"~lib/map/Map#get:entriesCapacity" i32.ge_s if local.get $this - local.set $12 + local.set $11 global.get $~lib/memory/__stack_pointer - local.get $12 + local.get $11 i32.store offset=4 - local.get $12 - local.get $entriesLength + local.get $11 + local.get $initialEntries + local.set $11 + global.get $~lib/memory/__stack_pointer + local.get $11 + i32.store offset=8 + local.get $11 + call $"~lib/array/Array<~lib/map/KeyValue>#get:length" call $"~lib/map/Map#set:bucketsMask" end local.get $this - local.set $12 + local.set $11 global.get $~lib/memory/__stack_pointer - local.get $12 + local.get $11 i32.store offset=4 - local.get $12 + local.get $11 local.get $this - local.set $12 + local.set $11 global.get $~lib/memory/__stack_pointer - local.get $12 + local.get $11 i32.store offset=8 - local.get $12 + local.get $11 call $"~lib/map/Map#get:bucketsMask" i32.const 1 i32.shl @@ -9010,48 +8947,54 @@ local.set $i loop $for-loop|0 local.get $i - local.get $entriesLength + local.get $initialEntries + local.set $11 + global.get $~lib/memory/__stack_pointer + local.get $11 + i32.store offset=4 + local.get $11 + call $"~lib/array/Array<~lib/map/KeyValue>#get:length" i32.lt_s if local.get $initialEntries - local.set $12 + local.set $11 global.get $~lib/memory/__stack_pointer - local.get $12 + local.get $11 i32.store offset=8 - local.get $12 + local.get $11 local.get $i call $"~lib/array/Array<~lib/map/KeyValue>#__get" - local.set $12 + local.set $11 global.get $~lib/memory/__stack_pointer - local.get $12 + local.get $11 i32.store offset=4 - local.get $12 + local.get $11 call $"~lib/map/KeyValue#get:key" local.set $key local.get $initialEntries - local.set $12 + local.set $11 global.get $~lib/memory/__stack_pointer - local.get $12 + local.get $11 i32.store offset=8 - local.get $12 + local.get $11 local.get $i call $"~lib/array/Array<~lib/map/KeyValue>#__get" - local.set $12 + local.set $11 global.get $~lib/memory/__stack_pointer - local.get $12 + local.get $11 i32.store offset=4 - local.get $12 + local.get $11 call $"~lib/map/KeyValue#get:value" local.set $value local.get $key call $~lib/util/hash/HASH local.set $hashCode local.get $this - local.set $12 + local.set $11 global.get $~lib/memory/__stack_pointer - local.get $12 + local.get $11 i32.store offset=4 - local.get $12 + local.get $11 local.get $key local.get $hashCode call $"~lib/map/Map#find" @@ -9066,92 +9009,92 @@ else global.get $~lib/memory/__stack_pointer local.get $this - local.set $12 + local.set $11 global.get $~lib/memory/__stack_pointer - local.get $12 + local.get $11 i32.store offset=4 - local.get $12 + local.get $11 call $"~lib/map/Map#get:entries" local.tee $entries i32.store offset=12 local.get $entries local.get $this - local.set $12 + local.set $11 global.get $~lib/memory/__stack_pointer - local.get $12 + local.get $11 i32.store offset=4 - local.get $12 + local.get $11 local.get $this - local.set $12 + local.set $11 global.get $~lib/memory/__stack_pointer - local.get $12 + local.get $11 i32.store offset=8 - local.get $12 + local.get $11 call $"~lib/map/Map#get:entriesOffset" - local.tee $9 + local.tee $8 i32.const 1 i32.add call $"~lib/map/Map#set:entriesOffset" - local.get $9 + local.get $8 block $"~lib/map/ENTRY_SIZE|inlined.4" (result i32) i32.const 8 br $"~lib/map/ENTRY_SIZE|inlined.4" end i32.mul i32.add - local.set $entry|10 - local.get $entry|10 + local.set $entry|9 + local.get $entry|9 local.get $key call $"~lib/map/MapEntry#set:key" i32.const 0 drop - local.get $entry|10 + local.get $entry|9 local.get $value call $"~lib/map/MapEntry#set:value" i32.const 0 drop local.get $this - local.set $12 + local.set $11 global.get $~lib/memory/__stack_pointer - local.get $12 + local.get $11 i32.store offset=4 - local.get $12 + local.get $11 local.get $this - local.set $12 + local.set $11 global.get $~lib/memory/__stack_pointer - local.get $12 + local.get $11 i32.store offset=8 - local.get $12 + local.get $11 call $"~lib/map/Map#get:entriesCount" i32.const 1 i32.add call $"~lib/map/Map#set:entriesCount" local.get $this - local.set $12 + local.set $11 global.get $~lib/memory/__stack_pointer - local.get $12 + local.get $11 i32.store offset=4 - local.get $12 + local.get $11 call $"~lib/map/Map#get:buckets" local.get $hashCode local.get $this - local.set $12 + local.set $11 global.get $~lib/memory/__stack_pointer - local.get $12 + local.get $11 i32.store offset=4 - local.get $12 + local.get $11 call $"~lib/map/Map#get:bucketsMask" i32.and i32.const 4 i32.mul i32.add local.set $bucketPtrBase - local.get $entry|10 + local.get $entry|9 local.get $bucketPtrBase i32.load call $"~lib/map/MapEntry#set:taggedNext" local.get $bucketPtrBase - local.get $entry|10 + local.get $entry|9 i32.store end local.get $i @@ -9163,63 +9106,12 @@ end end local.get $this - local.set $12 + local.set $11 global.get $~lib/memory/__stack_pointer i32.const 16 i32.add global.set $~lib/memory/__stack_pointer - local.get $12 - ) - (func $"~lib/map/Map#constructor@varargs" (param $this i32) (param $initialEntries i32) (result i32) - (local $2 i32) - (local $3 i32) - global.get $~lib/memory/__stack_pointer - i32.const 12 - i32.sub - global.set $~lib/memory/__stack_pointer - call $~stack_check - global.get $~lib/memory/__stack_pointer - i64.const 0 - i64.store - global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.store offset=8 - block $1of1 - block $0of1 - block $outOfRange - global.get $~argumentsLength - br_table $0of1 $1of1 $outOfRange - end - unreachable - end - global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.const 2 - i32.const 11 - i32.const 912 - call $~lib/rt/__newArray - local.tee $initialEntries - i32.store - end - local.get $this - local.set $3 - global.get $~lib/memory/__stack_pointer - local.get $3 - i32.store offset=4 - local.get $3 - local.get $initialEntries - local.set $3 - global.get $~lib/memory/__stack_pointer - local.get $3 - i32.store offset=8 - local.get $3 - call $"~lib/map/Map#constructor" - local.set $3 - global.get $~lib/memory/__stack_pointer - i32.const 12 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $3 + local.get $11 ) (func $"~lib/array/Array<~lib/map/KeyValue>#get:length" (param $this i32) (result i32) (local $1 i32) @@ -9594,17 +9486,16 @@ return ) (func $"~lib/map/Map#constructor" (param $this i32) (param $initialEntries i32) (result i32) - (local $entriesLength i32) (local $i i32) (local $key i32) (local $value i32) (local $hashCode i32) (local $entry i32) (local $entries i32) - (local $9 i32) - (local $entry|10 i32) + (local $8 i32) + (local $entry|9 i32) (local $bucketPtrBase i32) - (local $12 i32) + (local $11 i32) global.get $~lib/memory/__stack_pointer i32.const 16 i32.sub @@ -9627,38 +9518,38 @@ i32.store end local.get $this - local.set $12 + local.set $11 global.get $~lib/memory/__stack_pointer - local.get $12 + local.get $11 i32.store offset=4 - local.get $12 + local.get $11 i32.const 0 i32.const 4 i32.const 4 i32.mul call $~lib/arraybuffer/ArrayBuffer#constructor - local.set $12 + local.set $11 global.get $~lib/memory/__stack_pointer - local.get $12 + local.get $11 i32.store offset=8 - local.get $12 + local.get $11 call $"~lib/map/Map#set:buckets" local.get $this - local.set $12 + local.set $11 global.get $~lib/memory/__stack_pointer - local.get $12 + local.get $11 i32.store offset=4 - local.get $12 + local.get $11 i32.const 4 i32.const 1 i32.sub call $"~lib/map/Map#set:bucketsMask" local.get $this - local.set $12 + local.set $11 global.get $~lib/memory/__stack_pointer - local.get $12 + local.get $11 i32.store offset=4 - local.get $12 + local.get $11 i32.const 0 i32.const 4 block $"~lib/map/ENTRY_SIZE|inlined.5" (result i32) @@ -9667,79 +9558,81 @@ end i32.mul call $~lib/arraybuffer/ArrayBuffer#constructor - local.set $12 + local.set $11 global.get $~lib/memory/__stack_pointer - local.get $12 + local.get $11 i32.store offset=8 - local.get $12 + local.get $11 call $"~lib/map/Map#set:entries" local.get $this - local.set $12 + local.set $11 global.get $~lib/memory/__stack_pointer - local.get $12 + local.get $11 i32.store offset=4 - local.get $12 + local.get $11 i32.const 4 call $"~lib/map/Map#set:entriesCapacity" local.get $this - local.set $12 + local.set $11 global.get $~lib/memory/__stack_pointer - local.get $12 + local.get $11 i32.store offset=4 - local.get $12 + local.get $11 i32.const 0 call $"~lib/map/Map#set:entriesOffset" local.get $this - local.set $12 + local.set $11 global.get $~lib/memory/__stack_pointer - local.get $12 + local.get $11 i32.store offset=4 - local.get $12 + local.get $11 i32.const 0 call $"~lib/map/Map#set:entriesCount" local.get $initialEntries - local.set $12 - global.get $~lib/memory/__stack_pointer - local.get $12 - i32.store offset=4 - local.get $12 - call $"~lib/array/Array<~lib/map/KeyValue>#get:length" - local.set $entriesLength - local.get $entriesLength - i32.const 0 - i32.gt_s if - local.get $entriesLength + local.get $initialEntries + local.set $11 + global.get $~lib/memory/__stack_pointer + local.get $11 + i32.store offset=4 + local.get $11 + call $"~lib/array/Array<~lib/map/KeyValue>#get:length" local.get $this - local.set $12 + local.set $11 global.get $~lib/memory/__stack_pointer - local.get $12 + local.get $11 i32.store offset=4 - local.get $12 + local.get $11 call $"~lib/map/Map#get:entriesCapacity" i32.ge_s if local.get $this - local.set $12 + local.set $11 global.get $~lib/memory/__stack_pointer - local.get $12 + local.get $11 i32.store offset=4 - local.get $12 - local.get $entriesLength + local.get $11 + local.get $initialEntries + local.set $11 + global.get $~lib/memory/__stack_pointer + local.get $11 + i32.store offset=8 + local.get $11 + call $"~lib/array/Array<~lib/map/KeyValue>#get:length" call $"~lib/map/Map#set:bucketsMask" end local.get $this - local.set $12 + local.set $11 global.get $~lib/memory/__stack_pointer - local.get $12 + local.get $11 i32.store offset=4 - local.get $12 + local.get $11 local.get $this - local.set $12 + local.set $11 global.get $~lib/memory/__stack_pointer - local.get $12 + local.get $11 i32.store offset=8 - local.get $12 + local.get $11 call $"~lib/map/Map#get:bucketsMask" i32.const 1 i32.shl @@ -9750,48 +9643,54 @@ local.set $i loop $for-loop|0 local.get $i - local.get $entriesLength + local.get $initialEntries + local.set $11 + global.get $~lib/memory/__stack_pointer + local.get $11 + i32.store offset=4 + local.get $11 + call $"~lib/array/Array<~lib/map/KeyValue>#get:length" i32.lt_s if local.get $initialEntries - local.set $12 + local.set $11 global.get $~lib/memory/__stack_pointer - local.get $12 + local.get $11 i32.store offset=8 - local.get $12 + local.get $11 local.get $i call $"~lib/array/Array<~lib/map/KeyValue>#__get" - local.set $12 + local.set $11 global.get $~lib/memory/__stack_pointer - local.get $12 + local.get $11 i32.store offset=4 - local.get $12 + local.get $11 call $"~lib/map/KeyValue#get:key" local.set $key local.get $initialEntries - local.set $12 + local.set $11 global.get $~lib/memory/__stack_pointer - local.get $12 + local.get $11 i32.store offset=8 - local.get $12 + local.get $11 local.get $i call $"~lib/array/Array<~lib/map/KeyValue>#__get" - local.set $12 + local.set $11 global.get $~lib/memory/__stack_pointer - local.get $12 + local.get $11 i32.store offset=4 - local.get $12 + local.get $11 call $"~lib/map/KeyValue#get:value" local.set $value local.get $key call $~lib/util/hash/HASH local.set $hashCode local.get $this - local.set $12 + local.set $11 global.get $~lib/memory/__stack_pointer - local.get $12 + local.get $11 i32.store offset=4 - local.get $12 + local.get $11 local.get $key local.get $hashCode call $"~lib/map/Map#find" @@ -9806,92 +9705,92 @@ else global.get $~lib/memory/__stack_pointer local.get $this - local.set $12 + local.set $11 global.get $~lib/memory/__stack_pointer - local.get $12 + local.get $11 i32.store offset=4 - local.get $12 + local.get $11 call $"~lib/map/Map#get:entries" local.tee $entries i32.store offset=12 local.get $entries local.get $this - local.set $12 + local.set $11 global.get $~lib/memory/__stack_pointer - local.get $12 + local.get $11 i32.store offset=4 - local.get $12 + local.get $11 local.get $this - local.set $12 + local.set $11 global.get $~lib/memory/__stack_pointer - local.get $12 + local.get $11 i32.store offset=8 - local.get $12 + local.get $11 call $"~lib/map/Map#get:entriesOffset" - local.tee $9 + local.tee $8 i32.const 1 i32.add call $"~lib/map/Map#set:entriesOffset" - local.get $9 + local.get $8 block $"~lib/map/ENTRY_SIZE|inlined.4" (result i32) i32.const 12 br $"~lib/map/ENTRY_SIZE|inlined.4" end i32.mul i32.add - local.set $entry|10 - local.get $entry|10 + local.set $entry|9 + local.get $entry|9 local.get $key call $"~lib/map/MapEntry#set:key" i32.const 0 drop - local.get $entry|10 + local.get $entry|9 local.get $value call $"~lib/map/MapEntry#set:value" i32.const 0 drop local.get $this - local.set $12 + local.set $11 global.get $~lib/memory/__stack_pointer - local.get $12 + local.get $11 i32.store offset=4 - local.get $12 + local.get $11 local.get $this - local.set $12 + local.set $11 global.get $~lib/memory/__stack_pointer - local.get $12 + local.get $11 i32.store offset=8 - local.get $12 + local.get $11 call $"~lib/map/Map#get:entriesCount" i32.const 1 i32.add call $"~lib/map/Map#set:entriesCount" local.get $this - local.set $12 + local.set $11 global.get $~lib/memory/__stack_pointer - local.get $12 + local.get $11 i32.store offset=4 - local.get $12 + local.get $11 call $"~lib/map/Map#get:buckets" local.get $hashCode local.get $this - local.set $12 + local.set $11 global.get $~lib/memory/__stack_pointer - local.get $12 + local.get $11 i32.store offset=4 - local.get $12 + local.get $11 call $"~lib/map/Map#get:bucketsMask" i32.and i32.const 4 i32.mul i32.add local.set $bucketPtrBase - local.get $entry|10 + local.get $entry|9 local.get $bucketPtrBase i32.load call $"~lib/map/MapEntry#set:taggedNext" local.get $bucketPtrBase - local.get $entry|10 + local.get $entry|9 i32.store end local.get $i @@ -9903,63 +9802,12 @@ end end local.get $this - local.set $12 + local.set $11 global.get $~lib/memory/__stack_pointer i32.const 16 i32.add global.set $~lib/memory/__stack_pointer - local.get $12 - ) - (func $"~lib/map/Map#constructor@varargs" (param $this i32) (param $initialEntries i32) (result i32) - (local $2 i32) - (local $3 i32) - global.get $~lib/memory/__stack_pointer - i32.const 12 - i32.sub - global.set $~lib/memory/__stack_pointer - call $~stack_check - global.get $~lib/memory/__stack_pointer - i64.const 0 - i64.store - global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.store offset=8 - block $1of1 - block $0of1 - block $outOfRange - global.get $~argumentsLength - br_table $0of1 $1of1 $outOfRange - end - unreachable - end - global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.const 2 - i32.const 14 - i32.const 944 - call $~lib/rt/__newArray - local.tee $initialEntries - i32.store - end - local.get $this - local.set $3 - global.get $~lib/memory/__stack_pointer - local.get $3 - i32.store offset=4 - local.get $3 - local.get $initialEntries - local.set $3 - global.get $~lib/memory/__stack_pointer - local.get $3 - i32.store offset=8 - local.get $3 - call $"~lib/map/Map#constructor" - local.set $3 - global.get $~lib/memory/__stack_pointer - i32.const 12 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $3 + local.get $11 ) (func $~lib/array/Array#get:length (param $this i32) (result i32) (local $1 i32) @@ -10909,9 +10757,7 @@ global.get $~lib/memory/__stack_pointer i32.const 0 i32.const 0 - global.set $~argumentsLength - i32.const 0 - call $"~lib/map/Map#constructor@varargs" + call $"~lib/map/Map#constructor" local.tee $map i32.store i32.const 0 @@ -10933,7 +10779,7 @@ i32.eqz if i32.const 0 - i32.const 752 + i32.const 720 i32.const 7 i32.const 5 call $~lib/builtins/abort @@ -10962,7 +10808,7 @@ i32.eqz if i32.const 0 - i32.const 752 + i32.const 720 i32.const 9 i32.const 5 call $~lib/builtins/abort @@ -10983,7 +10829,7 @@ i32.eqz if i32.const 0 - i32.const 752 + i32.const 720 i32.const 10 i32.const 5 call $~lib/builtins/abort @@ -11008,7 +10854,7 @@ i32.eqz if i32.const 0 - i32.const 752 + i32.const 720 i32.const 12 i32.const 3 call $~lib/builtins/abort @@ -11032,7 +10878,7 @@ i32.eqz if i32.const 0 - i32.const 752 + i32.const 720 i32.const 16 i32.const 5 call $~lib/builtins/abort @@ -11053,7 +10899,7 @@ i32.eqz if i32.const 0 - i32.const 752 + i32.const 720 i32.const 17 i32.const 5 call $~lib/builtins/abort @@ -11082,7 +10928,7 @@ i32.eqz if i32.const 0 - i32.const 752 + i32.const 720 i32.const 19 i32.const 5 call $~lib/builtins/abort @@ -11103,7 +10949,7 @@ i32.eqz if i32.const 0 - i32.const 752 + i32.const 720 i32.const 20 i32.const 5 call $~lib/builtins/abort @@ -11128,7 +10974,7 @@ i32.eqz if i32.const 0 - i32.const 752 + i32.const 720 i32.const 22 i32.const 3 call $~lib/builtins/abort @@ -11157,17 +11003,13 @@ global.get $~lib/memory/__stack_pointer i32.const 0 i32.const 0 - global.set $~argumentsLength - i32.const 0 - call $"~lib/map/Map#constructor@varargs" + call $"~lib/map/Map#constructor" local.tee $keyMap i32.store offset=16 global.get $~lib/memory/__stack_pointer i32.const 0 i32.const 0 - global.set $~argumentsLength - i32.const 0 - call $"~lib/map/Map#constructor@varargs" + call $"~lib/map/Map#constructor" local.tee $valMap i32.store offset=20 i32.const 0 @@ -11212,7 +11054,7 @@ i32.eqz if i32.const 0 - i32.const 752 + i32.const 720 i32.const 32 i32.const 5 call $~lib/builtins/abort @@ -11231,7 +11073,7 @@ i32.eqz if i32.const 0 - i32.const 752 + i32.const 720 i32.const 33 i32.const 5 call $~lib/builtins/abort @@ -11280,7 +11122,7 @@ i32.eqz if i32.const 0 - i32.const 752 + i32.const 720 i32.const 37 i32.const 3 call $~lib/builtins/abort @@ -11298,7 +11140,7 @@ i32.eqz if i32.const 0 - i32.const 752 + i32.const 720 i32.const 38 i32.const 3 call $~lib/builtins/abort @@ -11322,7 +11164,7 @@ i32.eqz if i32.const 0 - i32.const 752 + i32.const 720 i32.const 42 i32.const 5 call $~lib/builtins/abort @@ -11343,7 +11185,7 @@ i32.eqz if i32.const 0 - i32.const 752 + i32.const 720 i32.const 43 i32.const 5 call $~lib/builtins/abort @@ -11370,7 +11212,7 @@ i32.eqz if i32.const 0 - i32.const 752 + i32.const 720 i32.const 45 i32.const 5 call $~lib/builtins/abort @@ -11395,7 +11237,7 @@ i32.eqz if i32.const 0 - i32.const 752 + i32.const 720 i32.const 47 i32.const 3 call $~lib/builtins/abort @@ -11420,7 +11262,7 @@ i32.eqz if i32.const 0 - i32.const 752 + i32.const 720 i32.const 51 i32.const 5 call $~lib/builtins/abort @@ -11449,7 +11291,7 @@ i32.eqz if i32.const 0 - i32.const 752 + i32.const 720 i32.const 53 i32.const 5 call $~lib/builtins/abort @@ -11476,7 +11318,7 @@ i32.eqz if i32.const 0 - i32.const 752 + i32.const 720 i32.const 55 i32.const 5 call $~lib/builtins/abort @@ -11501,7 +11343,7 @@ i32.eqz if i32.const 0 - i32.const 752 + i32.const 720 i32.const 57 i32.const 3 call $~lib/builtins/abort @@ -11526,7 +11368,7 @@ i32.eqz if i32.const 0 - i32.const 752 + i32.const 720 i32.const 61 i32.const 3 call $~lib/builtins/abort @@ -11536,7 +11378,7 @@ i32.const 0 i32.const 2 i32.const 6 - i32.const 976 + i32.const 880 call $~lib/rt/__newArray local.tee $initialEntries i32.store offset=24 @@ -11614,7 +11456,7 @@ i32.eqz if i32.const 0 - i32.const 752 + i32.const 720 i32.const 74 i32.const 3 call $~lib/builtins/abort @@ -11638,7 +11480,7 @@ i32.eqz if i32.const 0 - i32.const 752 + i32.const 720 i32.const 76 i32.const 5 call $~lib/builtins/abort @@ -11659,7 +11501,7 @@ i32.eqz if i32.const 0 - i32.const 752 + i32.const 720 i32.const 77 i32.const 5 call $~lib/builtins/abort @@ -11686,7 +11528,7 @@ i32.eqz if i32.const 0 - i32.const 752 + i32.const 720 i32.const 79 i32.const 5 call $~lib/builtins/abort @@ -11711,7 +11553,7 @@ i32.eqz if i32.const 0 - i32.const 752 + i32.const 720 i32.const 81 i32.const 3 call $~lib/builtins/abort @@ -12099,17 +11941,16 @@ return ) (func $"~lib/map/Map#constructor" (param $this i32) (param $initialEntries i32) (result i32) - (local $entriesLength i32) (local $i i32) (local $key i32) (local $value i32) (local $hashCode i32) (local $entry i32) (local $entries i32) - (local $9 i32) - (local $entry|10 i32) + (local $8 i32) + (local $entry|9 i32) (local $bucketPtrBase i32) - (local $12 i32) + (local $11 i32) global.get $~lib/memory/__stack_pointer i32.const 16 i32.sub @@ -12132,38 +11973,38 @@ i32.store end local.get $this - local.set $12 + local.set $11 global.get $~lib/memory/__stack_pointer - local.get $12 + local.get $11 i32.store offset=4 - local.get $12 + local.get $11 i32.const 0 i32.const 4 i32.const 4 i32.mul call $~lib/arraybuffer/ArrayBuffer#constructor - local.set $12 + local.set $11 global.get $~lib/memory/__stack_pointer - local.get $12 + local.get $11 i32.store offset=8 - local.get $12 + local.get $11 call $"~lib/map/Map#set:buckets" local.get $this - local.set $12 + local.set $11 global.get $~lib/memory/__stack_pointer - local.get $12 + local.get $11 i32.store offset=4 - local.get $12 + local.get $11 i32.const 4 i32.const 1 i32.sub call $"~lib/map/Map#set:bucketsMask" local.get $this - local.set $12 + local.set $11 global.get $~lib/memory/__stack_pointer - local.get $12 + local.get $11 i32.store offset=4 - local.get $12 + local.get $11 i32.const 0 i32.const 4 block $"~lib/map/ENTRY_SIZE|inlined.5" (result i32) @@ -12172,79 +12013,81 @@ end i32.mul call $~lib/arraybuffer/ArrayBuffer#constructor - local.set $12 + local.set $11 global.get $~lib/memory/__stack_pointer - local.get $12 + local.get $11 i32.store offset=8 - local.get $12 + local.get $11 call $"~lib/map/Map#set:entries" local.get $this - local.set $12 + local.set $11 global.get $~lib/memory/__stack_pointer - local.get $12 + local.get $11 i32.store offset=4 - local.get $12 + local.get $11 i32.const 4 call $"~lib/map/Map#set:entriesCapacity" local.get $this - local.set $12 + local.set $11 global.get $~lib/memory/__stack_pointer - local.get $12 + local.get $11 i32.store offset=4 - local.get $12 + local.get $11 i32.const 0 call $"~lib/map/Map#set:entriesOffset" local.get $this - local.set $12 + local.set $11 global.get $~lib/memory/__stack_pointer - local.get $12 + local.get $11 i32.store offset=4 - local.get $12 + local.get $11 i32.const 0 call $"~lib/map/Map#set:entriesCount" local.get $initialEntries - local.set $12 - global.get $~lib/memory/__stack_pointer - local.get $12 - i32.store offset=4 - local.get $12 - call $"~lib/array/Array<~lib/map/KeyValue>#get:length" - local.set $entriesLength - local.get $entriesLength - i32.const 0 - i32.gt_s if - local.get $entriesLength + local.get $initialEntries + local.set $11 + global.get $~lib/memory/__stack_pointer + local.get $11 + i32.store offset=4 + local.get $11 + call $"~lib/array/Array<~lib/map/KeyValue>#get:length" local.get $this - local.set $12 + local.set $11 global.get $~lib/memory/__stack_pointer - local.get $12 + local.get $11 i32.store offset=4 - local.get $12 + local.get $11 call $"~lib/map/Map#get:entriesCapacity" i32.ge_s if local.get $this - local.set $12 + local.set $11 global.get $~lib/memory/__stack_pointer - local.get $12 + local.get $11 i32.store offset=4 - local.get $12 - local.get $entriesLength + local.get $11 + local.get $initialEntries + local.set $11 + global.get $~lib/memory/__stack_pointer + local.get $11 + i32.store offset=8 + local.get $11 + call $"~lib/array/Array<~lib/map/KeyValue>#get:length" call $"~lib/map/Map#set:bucketsMask" end local.get $this - local.set $12 + local.set $11 global.get $~lib/memory/__stack_pointer - local.get $12 + local.get $11 i32.store offset=4 - local.get $12 + local.get $11 local.get $this - local.set $12 + local.set $11 global.get $~lib/memory/__stack_pointer - local.get $12 + local.get $11 i32.store offset=8 - local.get $12 + local.get $11 call $"~lib/map/Map#get:bucketsMask" i32.const 1 i32.shl @@ -12255,48 +12098,54 @@ local.set $i loop $for-loop|0 local.get $i - local.get $entriesLength + local.get $initialEntries + local.set $11 + global.get $~lib/memory/__stack_pointer + local.get $11 + i32.store offset=4 + local.get $11 + call $"~lib/array/Array<~lib/map/KeyValue>#get:length" i32.lt_s if local.get $initialEntries - local.set $12 + local.set $11 global.get $~lib/memory/__stack_pointer - local.get $12 + local.get $11 i32.store offset=8 - local.get $12 + local.get $11 local.get $i call $"~lib/array/Array<~lib/map/KeyValue>#__get" - local.set $12 + local.set $11 global.get $~lib/memory/__stack_pointer - local.get $12 + local.get $11 i32.store offset=4 - local.get $12 + local.get $11 call $"~lib/map/KeyValue#get:key" local.set $key local.get $initialEntries - local.set $12 + local.set $11 global.get $~lib/memory/__stack_pointer - local.get $12 + local.get $11 i32.store offset=8 - local.get $12 + local.get $11 local.get $i call $"~lib/array/Array<~lib/map/KeyValue>#__get" - local.set $12 + local.set $11 global.get $~lib/memory/__stack_pointer - local.get $12 + local.get $11 i32.store offset=4 - local.get $12 + local.get $11 call $"~lib/map/KeyValue#get:value" local.set $value local.get $key call $~lib/util/hash/HASH local.set $hashCode local.get $this - local.set $12 + local.set $11 global.get $~lib/memory/__stack_pointer - local.get $12 + local.get $11 i32.store offset=4 - local.get $12 + local.get $11 local.get $key local.get $hashCode call $"~lib/map/Map#find" @@ -12311,92 +12160,92 @@ else global.get $~lib/memory/__stack_pointer local.get $this - local.set $12 + local.set $11 global.get $~lib/memory/__stack_pointer - local.get $12 + local.get $11 i32.store offset=4 - local.get $12 + local.get $11 call $"~lib/map/Map#get:entries" local.tee $entries i32.store offset=12 local.get $entries local.get $this - local.set $12 + local.set $11 global.get $~lib/memory/__stack_pointer - local.get $12 + local.get $11 i32.store offset=4 - local.get $12 + local.get $11 local.get $this - local.set $12 + local.set $11 global.get $~lib/memory/__stack_pointer - local.get $12 + local.get $11 i32.store offset=8 - local.get $12 + local.get $11 call $"~lib/map/Map#get:entriesOffset" - local.tee $9 + local.tee $8 i32.const 1 i32.add call $"~lib/map/Map#set:entriesOffset" - local.get $9 + local.get $8 block $"~lib/map/ENTRY_SIZE|inlined.4" (result i32) i32.const 12 br $"~lib/map/ENTRY_SIZE|inlined.4" end i32.mul i32.add - local.set $entry|10 - local.get $entry|10 + local.set $entry|9 + local.get $entry|9 local.get $key call $"~lib/map/MapEntry#set:key" i32.const 0 drop - local.get $entry|10 + local.get $entry|9 local.get $value call $"~lib/map/MapEntry#set:value" i32.const 0 drop local.get $this - local.set $12 + local.set $11 global.get $~lib/memory/__stack_pointer - local.get $12 + local.get $11 i32.store offset=4 - local.get $12 + local.get $11 local.get $this - local.set $12 + local.set $11 global.get $~lib/memory/__stack_pointer - local.get $12 + local.get $11 i32.store offset=8 - local.get $12 + local.get $11 call $"~lib/map/Map#get:entriesCount" i32.const 1 i32.add call $"~lib/map/Map#set:entriesCount" local.get $this - local.set $12 + local.set $11 global.get $~lib/memory/__stack_pointer - local.get $12 + local.get $11 i32.store offset=4 - local.get $12 + local.get $11 call $"~lib/map/Map#get:buckets" local.get $hashCode local.get $this - local.set $12 + local.set $11 global.get $~lib/memory/__stack_pointer - local.get $12 + local.get $11 i32.store offset=4 - local.get $12 + local.get $11 call $"~lib/map/Map#get:bucketsMask" i32.and i32.const 4 i32.mul i32.add local.set $bucketPtrBase - local.get $entry|10 + local.get $entry|9 local.get $bucketPtrBase i32.load call $"~lib/map/MapEntry#set:taggedNext" local.get $bucketPtrBase - local.get $entry|10 + local.get $entry|9 i32.store end local.get $i @@ -12408,63 +12257,12 @@ end end local.get $this - local.set $12 + local.set $11 global.get $~lib/memory/__stack_pointer i32.const 16 i32.add global.set $~lib/memory/__stack_pointer - local.get $12 - ) - (func $"~lib/map/Map#constructor@varargs" (param $this i32) (param $initialEntries i32) (result i32) - (local $2 i32) - (local $3 i32) - global.get $~lib/memory/__stack_pointer - i32.const 12 - i32.sub - global.set $~lib/memory/__stack_pointer - call $~stack_check - global.get $~lib/memory/__stack_pointer - i64.const 0 - i64.store - global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.store offset=8 - block $1of1 - block $0of1 - block $outOfRange - global.get $~argumentsLength - br_table $0of1 $1of1 $outOfRange - end - unreachable - end - global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.const 2 - i32.const 17 - i32.const 1008 - call $~lib/rt/__newArray - local.tee $initialEntries - i32.store - end - local.get $this - local.set $3 - global.get $~lib/memory/__stack_pointer - local.get $3 - i32.store offset=4 - local.get $3 - local.get $initialEntries - local.set $3 - global.get $~lib/memory/__stack_pointer - local.get $3 - i32.store offset=8 - local.get $3 - call $"~lib/map/Map#constructor" - local.set $3 - global.get $~lib/memory/__stack_pointer - i32.const 12 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $3 + local.get $11 ) (func $"~lib/map/Map#has" (param $this i32) (param $key i32) (result i32) (local $2 i32) @@ -12723,9 +12521,9 @@ local.get $entry i32.eqz if - i32.const 800 - i32.const 864 - i32.const 148 + i32.const 768 + i32.const 832 + i32.const 146 i32.const 17 call $~lib/builtins/abort unreachable @@ -13583,17 +13381,16 @@ return ) (func $"~lib/map/Map#constructor" (param $this i32) (param $initialEntries i32) (result i32) - (local $entriesLength i32) (local $i i32) (local $key i32) (local $value i32) (local $hashCode i32) (local $entry i32) (local $entries i32) - (local $9 i32) - (local $entry|10 i32) + (local $8 i32) + (local $entry|9 i32) (local $bucketPtrBase i32) - (local $12 i32) + (local $11 i32) global.get $~lib/memory/__stack_pointer i32.const 16 i32.sub @@ -13616,38 +13413,38 @@ i32.store end local.get $this - local.set $12 + local.set $11 global.get $~lib/memory/__stack_pointer - local.get $12 + local.get $11 i32.store offset=4 - local.get $12 + local.get $11 i32.const 0 i32.const 4 i32.const 4 i32.mul call $~lib/arraybuffer/ArrayBuffer#constructor - local.set $12 + local.set $11 global.get $~lib/memory/__stack_pointer - local.get $12 + local.get $11 i32.store offset=8 - local.get $12 + local.get $11 call $"~lib/map/Map#set:buckets" local.get $this - local.set $12 + local.set $11 global.get $~lib/memory/__stack_pointer - local.get $12 + local.get $11 i32.store offset=4 - local.get $12 + local.get $11 i32.const 4 i32.const 1 i32.sub call $"~lib/map/Map#set:bucketsMask" local.get $this - local.set $12 + local.set $11 global.get $~lib/memory/__stack_pointer - local.get $12 + local.get $11 i32.store offset=4 - local.get $12 + local.get $11 i32.const 0 i32.const 4 block $"~lib/map/ENTRY_SIZE|inlined.5" (result i32) @@ -13656,79 +13453,81 @@ end i32.mul call $~lib/arraybuffer/ArrayBuffer#constructor - local.set $12 + local.set $11 global.get $~lib/memory/__stack_pointer - local.get $12 + local.get $11 i32.store offset=8 - local.get $12 + local.get $11 call $"~lib/map/Map#set:entries" local.get $this - local.set $12 + local.set $11 global.get $~lib/memory/__stack_pointer - local.get $12 + local.get $11 i32.store offset=4 - local.get $12 + local.get $11 i32.const 4 call $"~lib/map/Map#set:entriesCapacity" local.get $this - local.set $12 + local.set $11 global.get $~lib/memory/__stack_pointer - local.get $12 + local.get $11 i32.store offset=4 - local.get $12 + local.get $11 i32.const 0 call $"~lib/map/Map#set:entriesOffset" local.get $this - local.set $12 + local.set $11 global.get $~lib/memory/__stack_pointer - local.get $12 + local.get $11 i32.store offset=4 - local.get $12 + local.get $11 i32.const 0 call $"~lib/map/Map#set:entriesCount" local.get $initialEntries - local.set $12 - global.get $~lib/memory/__stack_pointer - local.get $12 - i32.store offset=4 - local.get $12 - call $"~lib/array/Array<~lib/map/KeyValue>#get:length" - local.set $entriesLength - local.get $entriesLength - i32.const 0 - i32.gt_s if - local.get $entriesLength + local.get $initialEntries + local.set $11 + global.get $~lib/memory/__stack_pointer + local.get $11 + i32.store offset=4 + local.get $11 + call $"~lib/array/Array<~lib/map/KeyValue>#get:length" local.get $this - local.set $12 + local.set $11 global.get $~lib/memory/__stack_pointer - local.get $12 + local.get $11 i32.store offset=4 - local.get $12 + local.get $11 call $"~lib/map/Map#get:entriesCapacity" i32.ge_s if local.get $this - local.set $12 + local.set $11 global.get $~lib/memory/__stack_pointer - local.get $12 + local.get $11 i32.store offset=4 - local.get $12 - local.get $entriesLength + local.get $11 + local.get $initialEntries + local.set $11 + global.get $~lib/memory/__stack_pointer + local.get $11 + i32.store offset=8 + local.get $11 + call $"~lib/array/Array<~lib/map/KeyValue>#get:length" call $"~lib/map/Map#set:bucketsMask" end local.get $this - local.set $12 + local.set $11 global.get $~lib/memory/__stack_pointer - local.get $12 + local.get $11 i32.store offset=4 - local.get $12 + local.get $11 local.get $this - local.set $12 + local.set $11 global.get $~lib/memory/__stack_pointer - local.get $12 + local.get $11 i32.store offset=8 - local.get $12 + local.get $11 call $"~lib/map/Map#get:bucketsMask" i32.const 1 i32.shl @@ -13739,48 +13538,54 @@ local.set $i loop $for-loop|0 local.get $i - local.get $entriesLength + local.get $initialEntries + local.set $11 + global.get $~lib/memory/__stack_pointer + local.get $11 + i32.store offset=4 + local.get $11 + call $"~lib/array/Array<~lib/map/KeyValue>#get:length" i32.lt_s if local.get $initialEntries - local.set $12 + local.set $11 global.get $~lib/memory/__stack_pointer - local.get $12 + local.get $11 i32.store offset=8 - local.get $12 + local.get $11 local.get $i call $"~lib/array/Array<~lib/map/KeyValue>#__get" - local.set $12 + local.set $11 global.get $~lib/memory/__stack_pointer - local.get $12 + local.get $11 i32.store offset=4 - local.get $12 + local.get $11 call $"~lib/map/KeyValue#get:key" local.set $key local.get $initialEntries - local.set $12 + local.set $11 global.get $~lib/memory/__stack_pointer - local.get $12 + local.get $11 i32.store offset=8 - local.get $12 + local.get $11 local.get $i call $"~lib/array/Array<~lib/map/KeyValue>#__get" - local.set $12 + local.set $11 global.get $~lib/memory/__stack_pointer - local.get $12 + local.get $11 i32.store offset=4 - local.get $12 + local.get $11 call $"~lib/map/KeyValue#get:value" local.set $value local.get $key call $~lib/util/hash/HASH local.set $hashCode local.get $this - local.set $12 + local.set $11 global.get $~lib/memory/__stack_pointer - local.get $12 + local.get $11 i32.store offset=4 - local.get $12 + local.get $11 local.get $key local.get $hashCode call $"~lib/map/Map#find" @@ -13795,92 +13600,92 @@ else global.get $~lib/memory/__stack_pointer local.get $this - local.set $12 + local.set $11 global.get $~lib/memory/__stack_pointer - local.get $12 + local.get $11 i32.store offset=4 - local.get $12 + local.get $11 call $"~lib/map/Map#get:entries" local.tee $entries i32.store offset=12 local.get $entries local.get $this - local.set $12 + local.set $11 global.get $~lib/memory/__stack_pointer - local.get $12 + local.get $11 i32.store offset=4 - local.get $12 + local.get $11 local.get $this - local.set $12 + local.set $11 global.get $~lib/memory/__stack_pointer - local.get $12 + local.get $11 i32.store offset=8 - local.get $12 + local.get $11 call $"~lib/map/Map#get:entriesOffset" - local.tee $9 + local.tee $8 i32.const 1 i32.add call $"~lib/map/Map#set:entriesOffset" - local.get $9 + local.get $8 block $"~lib/map/ENTRY_SIZE|inlined.4" (result i32) i32.const 8 br $"~lib/map/ENTRY_SIZE|inlined.4" end i32.mul i32.add - local.set $entry|10 - local.get $entry|10 + local.set $entry|9 + local.get $entry|9 local.get $key call $"~lib/map/MapEntry#set:key" i32.const 0 drop - local.get $entry|10 + local.get $entry|9 local.get $value call $"~lib/map/MapEntry#set:value" i32.const 0 drop local.get $this - local.set $12 + local.set $11 global.get $~lib/memory/__stack_pointer - local.get $12 + local.get $11 i32.store offset=4 - local.get $12 + local.get $11 local.get $this - local.set $12 + local.set $11 global.get $~lib/memory/__stack_pointer - local.get $12 + local.get $11 i32.store offset=8 - local.get $12 + local.get $11 call $"~lib/map/Map#get:entriesCount" i32.const 1 i32.add call $"~lib/map/Map#set:entriesCount" local.get $this - local.set $12 + local.set $11 global.get $~lib/memory/__stack_pointer - local.get $12 + local.get $11 i32.store offset=4 - local.get $12 + local.get $11 call $"~lib/map/Map#get:buckets" local.get $hashCode local.get $this - local.set $12 + local.set $11 global.get $~lib/memory/__stack_pointer - local.get $12 + local.get $11 i32.store offset=4 - local.get $12 + local.get $11 call $"~lib/map/Map#get:bucketsMask" i32.and i32.const 4 i32.mul i32.add local.set $bucketPtrBase - local.get $entry|10 + local.get $entry|9 local.get $bucketPtrBase i32.load call $"~lib/map/MapEntry#set:taggedNext" local.get $bucketPtrBase - local.get $entry|10 + local.get $entry|9 i32.store end local.get $i @@ -13892,63 +13697,12 @@ end end local.get $this - local.set $12 + local.set $11 global.get $~lib/memory/__stack_pointer i32.const 16 i32.add global.set $~lib/memory/__stack_pointer - local.get $12 - ) - (func $"~lib/map/Map#constructor@varargs" (param $this i32) (param $initialEntries i32) (result i32) - (local $2 i32) - (local $3 i32) - global.get $~lib/memory/__stack_pointer - i32.const 12 - i32.sub - global.set $~lib/memory/__stack_pointer - call $~stack_check - global.get $~lib/memory/__stack_pointer - i64.const 0 - i64.store - global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.store offset=8 - block $1of1 - block $0of1 - block $outOfRange - global.get $~argumentsLength - br_table $0of1 $1of1 $outOfRange - end - unreachable - end - global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.const 2 - i32.const 21 - i32.const 1040 - call $~lib/rt/__newArray - local.tee $initialEntries - i32.store - end - local.get $this - local.set $3 - global.get $~lib/memory/__stack_pointer - local.get $3 - i32.store offset=4 - local.get $3 - local.get $initialEntries - local.set $3 - global.get $~lib/memory/__stack_pointer - local.get $3 - i32.store offset=8 - local.get $3 - call $"~lib/map/Map#constructor" - local.set $3 - global.get $~lib/memory/__stack_pointer - i32.const 12 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $3 + local.get $11 ) (func $~lib/array/Array#get:length (param $this i32) (result i32) (local $1 i32) @@ -14619,9 +14373,7 @@ global.get $~lib/memory/__stack_pointer i32.const 0 i32.const 0 - global.set $~argumentsLength - i32.const 0 - call $"~lib/map/Map#constructor@varargs" + call $"~lib/map/Map#constructor" local.tee $map i32.store i32.const 0 @@ -14643,7 +14395,7 @@ i32.eqz if i32.const 0 - i32.const 752 + i32.const 720 i32.const 7 i32.const 5 call $~lib/builtins/abort @@ -14672,7 +14424,7 @@ i32.eqz if i32.const 0 - i32.const 752 + i32.const 720 i32.const 9 i32.const 5 call $~lib/builtins/abort @@ -14693,7 +14445,7 @@ i32.eqz if i32.const 0 - i32.const 752 + i32.const 720 i32.const 10 i32.const 5 call $~lib/builtins/abort @@ -14718,7 +14470,7 @@ i32.eqz if i32.const 0 - i32.const 752 + i32.const 720 i32.const 12 i32.const 3 call $~lib/builtins/abort @@ -14742,7 +14494,7 @@ i32.eqz if i32.const 0 - i32.const 752 + i32.const 720 i32.const 16 i32.const 5 call $~lib/builtins/abort @@ -14763,7 +14515,7 @@ i32.eqz if i32.const 0 - i32.const 752 + i32.const 720 i32.const 17 i32.const 5 call $~lib/builtins/abort @@ -14792,7 +14544,7 @@ i32.eqz if i32.const 0 - i32.const 752 + i32.const 720 i32.const 19 i32.const 5 call $~lib/builtins/abort @@ -14813,7 +14565,7 @@ i32.eqz if i32.const 0 - i32.const 752 + i32.const 720 i32.const 20 i32.const 5 call $~lib/builtins/abort @@ -14838,7 +14590,7 @@ i32.eqz if i32.const 0 - i32.const 752 + i32.const 720 i32.const 22 i32.const 3 call $~lib/builtins/abort @@ -14867,17 +14619,13 @@ global.get $~lib/memory/__stack_pointer i32.const 0 i32.const 0 - global.set $~argumentsLength - i32.const 0 - call $"~lib/map/Map#constructor@varargs" + call $"~lib/map/Map#constructor" local.tee $keyMap i32.store offset=16 global.get $~lib/memory/__stack_pointer i32.const 0 i32.const 0 - global.set $~argumentsLength - i32.const 0 - call $"~lib/map/Map#constructor@varargs" + call $"~lib/map/Map#constructor" local.tee $valMap i32.store offset=20 i32.const 0 @@ -14922,7 +14670,7 @@ i32.eqz if i32.const 0 - i32.const 752 + i32.const 720 i32.const 32 i32.const 5 call $~lib/builtins/abort @@ -14941,7 +14689,7 @@ i32.eqz if i32.const 0 - i32.const 752 + i32.const 720 i32.const 33 i32.const 5 call $~lib/builtins/abort @@ -14990,7 +14738,7 @@ i32.eqz if i32.const 0 - i32.const 752 + i32.const 720 i32.const 37 i32.const 3 call $~lib/builtins/abort @@ -15008,7 +14756,7 @@ i32.eqz if i32.const 0 - i32.const 752 + i32.const 720 i32.const 38 i32.const 3 call $~lib/builtins/abort @@ -15032,7 +14780,7 @@ i32.eqz if i32.const 0 - i32.const 752 + i32.const 720 i32.const 42 i32.const 5 call $~lib/builtins/abort @@ -15053,7 +14801,7 @@ i32.eqz if i32.const 0 - i32.const 752 + i32.const 720 i32.const 43 i32.const 5 call $~lib/builtins/abort @@ -15080,7 +14828,7 @@ i32.eqz if i32.const 0 - i32.const 752 + i32.const 720 i32.const 45 i32.const 5 call $~lib/builtins/abort @@ -15105,7 +14853,7 @@ i32.eqz if i32.const 0 - i32.const 752 + i32.const 720 i32.const 47 i32.const 3 call $~lib/builtins/abort @@ -15130,7 +14878,7 @@ i32.eqz if i32.const 0 - i32.const 752 + i32.const 720 i32.const 51 i32.const 5 call $~lib/builtins/abort @@ -15159,7 +14907,7 @@ i32.eqz if i32.const 0 - i32.const 752 + i32.const 720 i32.const 53 i32.const 5 call $~lib/builtins/abort @@ -15186,7 +14934,7 @@ i32.eqz if i32.const 0 - i32.const 752 + i32.const 720 i32.const 55 i32.const 5 call $~lib/builtins/abort @@ -15211,7 +14959,7 @@ i32.eqz if i32.const 0 - i32.const 752 + i32.const 720 i32.const 57 i32.const 3 call $~lib/builtins/abort @@ -15236,7 +14984,7 @@ i32.eqz if i32.const 0 - i32.const 752 + i32.const 720 i32.const 61 i32.const 3 call $~lib/builtins/abort @@ -15246,7 +14994,7 @@ i32.const 0 i32.const 2 i32.const 17 - i32.const 1072 + i32.const 912 call $~lib/rt/__newArray local.tee $initialEntries i32.store offset=24 @@ -15324,7 +15072,7 @@ i32.eqz if i32.const 0 - i32.const 752 + i32.const 720 i32.const 74 i32.const 3 call $~lib/builtins/abort @@ -15348,7 +15096,7 @@ i32.eqz if i32.const 0 - i32.const 752 + i32.const 720 i32.const 76 i32.const 5 call $~lib/builtins/abort @@ -15369,7 +15117,7 @@ i32.eqz if i32.const 0 - i32.const 752 + i32.const 720 i32.const 77 i32.const 5 call $~lib/builtins/abort @@ -15396,7 +15144,7 @@ i32.eqz if i32.const 0 - i32.const 752 + i32.const 720 i32.const 79 i32.const 5 call $~lib/builtins/abort @@ -15421,7 +15169,7 @@ i32.eqz if i32.const 0 - i32.const 752 + i32.const 720 i32.const 81 i32.const 3 call $~lib/builtins/abort @@ -15807,17 +15555,16 @@ return ) (func $"~lib/map/Map#constructor" (param $this i32) (param $initialEntries i32) (result i32) - (local $entriesLength i32) (local $i i32) (local $key i32) (local $value i32) (local $hashCode i32) (local $entry i32) (local $entries i32) - (local $9 i32) - (local $entry|10 i32) + (local $8 i32) + (local $entry|9 i32) (local $bucketPtrBase i32) - (local $12 i32) + (local $11 i32) global.get $~lib/memory/__stack_pointer i32.const 16 i32.sub @@ -15840,38 +15587,38 @@ i32.store end local.get $this - local.set $12 + local.set $11 global.get $~lib/memory/__stack_pointer - local.get $12 + local.get $11 i32.store offset=4 - local.get $12 + local.get $11 i32.const 0 i32.const 4 i32.const 4 i32.mul call $~lib/arraybuffer/ArrayBuffer#constructor - local.set $12 + local.set $11 global.get $~lib/memory/__stack_pointer - local.get $12 + local.get $11 i32.store offset=8 - local.get $12 + local.get $11 call $"~lib/map/Map#set:buckets" local.get $this - local.set $12 + local.set $11 global.get $~lib/memory/__stack_pointer - local.get $12 + local.get $11 i32.store offset=4 - local.get $12 + local.get $11 i32.const 4 i32.const 1 i32.sub call $"~lib/map/Map#set:bucketsMask" local.get $this - local.set $12 + local.set $11 global.get $~lib/memory/__stack_pointer - local.get $12 + local.get $11 i32.store offset=4 - local.get $12 + local.get $11 i32.const 0 i32.const 4 block $"~lib/map/ENTRY_SIZE|inlined.5" (result i32) @@ -15880,79 +15627,81 @@ end i32.mul call $~lib/arraybuffer/ArrayBuffer#constructor - local.set $12 + local.set $11 global.get $~lib/memory/__stack_pointer - local.get $12 + local.get $11 i32.store offset=8 - local.get $12 + local.get $11 call $"~lib/map/Map#set:entries" local.get $this - local.set $12 + local.set $11 global.get $~lib/memory/__stack_pointer - local.get $12 + local.get $11 i32.store offset=4 - local.get $12 + local.get $11 i32.const 4 call $"~lib/map/Map#set:entriesCapacity" local.get $this - local.set $12 + local.set $11 global.get $~lib/memory/__stack_pointer - local.get $12 + local.get $11 i32.store offset=4 - local.get $12 + local.get $11 i32.const 0 call $"~lib/map/Map#set:entriesOffset" local.get $this - local.set $12 + local.set $11 global.get $~lib/memory/__stack_pointer - local.get $12 + local.get $11 i32.store offset=4 - local.get $12 + local.get $11 i32.const 0 call $"~lib/map/Map#set:entriesCount" local.get $initialEntries - local.set $12 - global.get $~lib/memory/__stack_pointer - local.get $12 - i32.store offset=4 - local.get $12 - call $"~lib/array/Array<~lib/map/KeyValue>#get:length" - local.set $entriesLength - local.get $entriesLength - i32.const 0 - i32.gt_s if - local.get $entriesLength + local.get $initialEntries + local.set $11 + global.get $~lib/memory/__stack_pointer + local.get $11 + i32.store offset=4 + local.get $11 + call $"~lib/array/Array<~lib/map/KeyValue>#get:length" local.get $this - local.set $12 + local.set $11 global.get $~lib/memory/__stack_pointer - local.get $12 + local.get $11 i32.store offset=4 - local.get $12 + local.get $11 call $"~lib/map/Map#get:entriesCapacity" i32.ge_s if local.get $this - local.set $12 + local.set $11 global.get $~lib/memory/__stack_pointer - local.get $12 + local.get $11 i32.store offset=4 - local.get $12 - local.get $entriesLength + local.get $11 + local.get $initialEntries + local.set $11 + global.get $~lib/memory/__stack_pointer + local.get $11 + i32.store offset=8 + local.get $11 + call $"~lib/array/Array<~lib/map/KeyValue>#get:length" call $"~lib/map/Map#set:bucketsMask" end local.get $this - local.set $12 + local.set $11 global.get $~lib/memory/__stack_pointer - local.get $12 + local.get $11 i32.store offset=4 - local.get $12 + local.get $11 local.get $this - local.set $12 + local.set $11 global.get $~lib/memory/__stack_pointer - local.get $12 + local.get $11 i32.store offset=8 - local.get $12 + local.get $11 call $"~lib/map/Map#get:bucketsMask" i32.const 1 i32.shl @@ -15963,48 +15712,54 @@ local.set $i loop $for-loop|0 local.get $i - local.get $entriesLength + local.get $initialEntries + local.set $11 + global.get $~lib/memory/__stack_pointer + local.get $11 + i32.store offset=4 + local.get $11 + call $"~lib/array/Array<~lib/map/KeyValue>#get:length" i32.lt_s if local.get $initialEntries - local.set $12 + local.set $11 global.get $~lib/memory/__stack_pointer - local.get $12 + local.get $11 i32.store offset=8 - local.get $12 + local.get $11 local.get $i call $"~lib/array/Array<~lib/map/KeyValue>#__get" - local.set $12 + local.set $11 global.get $~lib/memory/__stack_pointer - local.get $12 + local.get $11 i32.store offset=4 - local.get $12 + local.get $11 call $"~lib/map/KeyValue#get:key" local.set $key local.get $initialEntries - local.set $12 + local.set $11 global.get $~lib/memory/__stack_pointer - local.get $12 + local.get $11 i32.store offset=8 - local.get $12 + local.get $11 local.get $i call $"~lib/array/Array<~lib/map/KeyValue>#__get" - local.set $12 + local.set $11 global.get $~lib/memory/__stack_pointer - local.get $12 + local.get $11 i32.store offset=4 - local.get $12 + local.get $11 call $"~lib/map/KeyValue#get:value" local.set $value local.get $key call $~lib/util/hash/HASH local.set $hashCode local.get $this - local.set $12 + local.set $11 global.get $~lib/memory/__stack_pointer - local.get $12 + local.get $11 i32.store offset=4 - local.get $12 + local.get $11 local.get $key local.get $hashCode call $"~lib/map/Map#find" @@ -16019,92 +15774,92 @@ else global.get $~lib/memory/__stack_pointer local.get $this - local.set $12 + local.set $11 global.get $~lib/memory/__stack_pointer - local.get $12 + local.get $11 i32.store offset=4 - local.get $12 + local.get $11 call $"~lib/map/Map#get:entries" local.tee $entries i32.store offset=12 local.get $entries local.get $this - local.set $12 + local.set $11 global.get $~lib/memory/__stack_pointer - local.get $12 + local.get $11 i32.store offset=4 - local.get $12 + local.get $11 local.get $this - local.set $12 + local.set $11 global.get $~lib/memory/__stack_pointer - local.get $12 + local.get $11 i32.store offset=8 - local.get $12 + local.get $11 call $"~lib/map/Map#get:entriesOffset" - local.tee $9 + local.tee $8 i32.const 1 i32.add call $"~lib/map/Map#set:entriesOffset" - local.get $9 + local.get $8 block $"~lib/map/ENTRY_SIZE|inlined.4" (result i32) i32.const 12 br $"~lib/map/ENTRY_SIZE|inlined.4" end i32.mul i32.add - local.set $entry|10 - local.get $entry|10 + local.set $entry|9 + local.get $entry|9 local.get $key call $"~lib/map/MapEntry#set:key" i32.const 0 drop - local.get $entry|10 + local.get $entry|9 local.get $value call $"~lib/map/MapEntry#set:value" i32.const 0 drop local.get $this - local.set $12 + local.set $11 global.get $~lib/memory/__stack_pointer - local.get $12 + local.get $11 i32.store offset=4 - local.get $12 + local.get $11 local.get $this - local.set $12 + local.set $11 global.get $~lib/memory/__stack_pointer - local.get $12 + local.get $11 i32.store offset=8 - local.get $12 + local.get $11 call $"~lib/map/Map#get:entriesCount" i32.const 1 i32.add call $"~lib/map/Map#set:entriesCount" local.get $this - local.set $12 + local.set $11 global.get $~lib/memory/__stack_pointer - local.get $12 + local.get $11 i32.store offset=4 - local.get $12 + local.get $11 call $"~lib/map/Map#get:buckets" local.get $hashCode local.get $this - local.set $12 + local.set $11 global.get $~lib/memory/__stack_pointer - local.get $12 + local.get $11 i32.store offset=4 - local.get $12 + local.get $11 call $"~lib/map/Map#get:bucketsMask" i32.and i32.const 4 i32.mul i32.add local.set $bucketPtrBase - local.get $entry|10 + local.get $entry|9 local.get $bucketPtrBase i32.load call $"~lib/map/MapEntry#set:taggedNext" local.get $bucketPtrBase - local.get $entry|10 + local.get $entry|9 i32.store end local.get $i @@ -16116,63 +15871,12 @@ end end local.get $this - local.set $12 + local.set $11 global.get $~lib/memory/__stack_pointer i32.const 16 i32.add global.set $~lib/memory/__stack_pointer - local.get $12 - ) - (func $"~lib/map/Map#constructor@varargs" (param $this i32) (param $initialEntries i32) (result i32) - (local $2 i32) - (local $3 i32) - global.get $~lib/memory/__stack_pointer - i32.const 12 - i32.sub - global.set $~lib/memory/__stack_pointer - call $~stack_check - global.get $~lib/memory/__stack_pointer - i64.const 0 - i64.store - global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.store offset=8 - block $1of1 - block $0of1 - block $outOfRange - global.get $~argumentsLength - br_table $0of1 $1of1 $outOfRange - end - unreachable - end - global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.const 2 - i32.const 24 - i32.const 1104 - call $~lib/rt/__newArray - local.tee $initialEntries - i32.store - end - local.get $this - local.set $3 - global.get $~lib/memory/__stack_pointer - local.get $3 - i32.store offset=4 - local.get $3 - local.get $initialEntries - local.set $3 - global.get $~lib/memory/__stack_pointer - local.get $3 - i32.store offset=8 - local.get $3 - call $"~lib/map/Map#constructor" - local.set $3 - global.get $~lib/memory/__stack_pointer - i32.const 12 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $3 + local.get $11 ) (func $"~lib/map/Map#has" (param $this i32) (param $key i32) (result i32) (local $2 i32) @@ -16431,9 +16135,9 @@ local.get $entry i32.eqz if - i32.const 800 - i32.const 864 - i32.const 148 + i32.const 768 + i32.const 832 + i32.const 146 i32.const 17 call $~lib/builtins/abort unreachable @@ -17289,17 +16993,16 @@ return ) (func $"~lib/map/Map#constructor" (param $this i32) (param $initialEntries i32) (result i32) - (local $entriesLength i32) (local $i i32) (local $key i32) (local $value i32) (local $hashCode i32) (local $entry i32) (local $entries i32) - (local $9 i32) - (local $entry|10 i32) + (local $8 i32) + (local $entry|9 i32) (local $bucketPtrBase i32) - (local $12 i32) + (local $11 i32) global.get $~lib/memory/__stack_pointer i32.const 16 i32.sub @@ -17322,38 +17025,38 @@ i32.store end local.get $this - local.set $12 + local.set $11 global.get $~lib/memory/__stack_pointer - local.get $12 + local.get $11 i32.store offset=4 - local.get $12 + local.get $11 i32.const 0 i32.const 4 i32.const 4 i32.mul call $~lib/arraybuffer/ArrayBuffer#constructor - local.set $12 + local.set $11 global.get $~lib/memory/__stack_pointer - local.get $12 + local.get $11 i32.store offset=8 - local.get $12 + local.get $11 call $"~lib/map/Map#set:buckets" local.get $this - local.set $12 + local.set $11 global.get $~lib/memory/__stack_pointer - local.get $12 + local.get $11 i32.store offset=4 - local.get $12 + local.get $11 i32.const 4 i32.const 1 i32.sub call $"~lib/map/Map#set:bucketsMask" local.get $this - local.set $12 + local.set $11 global.get $~lib/memory/__stack_pointer - local.get $12 + local.get $11 i32.store offset=4 - local.get $12 + local.get $11 i32.const 0 i32.const 4 block $"~lib/map/ENTRY_SIZE|inlined.5" (result i32) @@ -17362,79 +17065,81 @@ end i32.mul call $~lib/arraybuffer/ArrayBuffer#constructor - local.set $12 + local.set $11 global.get $~lib/memory/__stack_pointer - local.get $12 + local.get $11 i32.store offset=8 - local.get $12 + local.get $11 call $"~lib/map/Map#set:entries" local.get $this - local.set $12 + local.set $11 global.get $~lib/memory/__stack_pointer - local.get $12 + local.get $11 i32.store offset=4 - local.get $12 + local.get $11 i32.const 4 call $"~lib/map/Map#set:entriesCapacity" local.get $this - local.set $12 + local.set $11 global.get $~lib/memory/__stack_pointer - local.get $12 + local.get $11 i32.store offset=4 - local.get $12 + local.get $11 i32.const 0 call $"~lib/map/Map#set:entriesOffset" local.get $this - local.set $12 + local.set $11 global.get $~lib/memory/__stack_pointer - local.get $12 + local.get $11 i32.store offset=4 - local.get $12 + local.get $11 i32.const 0 call $"~lib/map/Map#set:entriesCount" local.get $initialEntries - local.set $12 - global.get $~lib/memory/__stack_pointer - local.get $12 - i32.store offset=4 - local.get $12 - call $"~lib/array/Array<~lib/map/KeyValue>#get:length" - local.set $entriesLength - local.get $entriesLength - i32.const 0 - i32.gt_s if - local.get $entriesLength + local.get $initialEntries + local.set $11 + global.get $~lib/memory/__stack_pointer + local.get $11 + i32.store offset=4 + local.get $11 + call $"~lib/array/Array<~lib/map/KeyValue>#get:length" local.get $this - local.set $12 + local.set $11 global.get $~lib/memory/__stack_pointer - local.get $12 + local.get $11 i32.store offset=4 - local.get $12 + local.get $11 call $"~lib/map/Map#get:entriesCapacity" i32.ge_s if local.get $this - local.set $12 + local.set $11 global.get $~lib/memory/__stack_pointer - local.get $12 + local.get $11 i32.store offset=4 - local.get $12 - local.get $entriesLength + local.get $11 + local.get $initialEntries + local.set $11 + global.get $~lib/memory/__stack_pointer + local.get $11 + i32.store offset=8 + local.get $11 + call $"~lib/array/Array<~lib/map/KeyValue>#get:length" call $"~lib/map/Map#set:bucketsMask" end local.get $this - local.set $12 + local.set $11 global.get $~lib/memory/__stack_pointer - local.get $12 + local.get $11 i32.store offset=4 - local.get $12 + local.get $11 local.get $this - local.set $12 + local.set $11 global.get $~lib/memory/__stack_pointer - local.get $12 + local.get $11 i32.store offset=8 - local.get $12 + local.get $11 call $"~lib/map/Map#get:bucketsMask" i32.const 1 i32.shl @@ -17445,48 +17150,54 @@ local.set $i loop $for-loop|0 local.get $i - local.get $entriesLength + local.get $initialEntries + local.set $11 + global.get $~lib/memory/__stack_pointer + local.get $11 + i32.store offset=4 + local.get $11 + call $"~lib/array/Array<~lib/map/KeyValue>#get:length" i32.lt_s if local.get $initialEntries - local.set $12 + local.set $11 global.get $~lib/memory/__stack_pointer - local.get $12 + local.get $11 i32.store offset=8 - local.get $12 + local.get $11 local.get $i call $"~lib/array/Array<~lib/map/KeyValue>#__get" - local.set $12 + local.set $11 global.get $~lib/memory/__stack_pointer - local.get $12 + local.get $11 i32.store offset=4 - local.get $12 + local.get $11 call $"~lib/map/KeyValue#get:key" local.set $key local.get $initialEntries - local.set $12 + local.set $11 global.get $~lib/memory/__stack_pointer - local.get $12 + local.get $11 i32.store offset=8 - local.get $12 + local.get $11 local.get $i call $"~lib/array/Array<~lib/map/KeyValue>#__get" - local.set $12 + local.set $11 global.get $~lib/memory/__stack_pointer - local.get $12 + local.get $11 i32.store offset=4 - local.get $12 + local.get $11 call $"~lib/map/KeyValue#get:value" local.set $value local.get $key call $~lib/util/hash/HASH local.set $hashCode local.get $this - local.set $12 + local.set $11 global.get $~lib/memory/__stack_pointer - local.get $12 + local.get $11 i32.store offset=4 - local.get $12 + local.get $11 local.get $key local.get $hashCode call $"~lib/map/Map#find" @@ -17501,92 +17212,92 @@ else global.get $~lib/memory/__stack_pointer local.get $this - local.set $12 + local.set $11 global.get $~lib/memory/__stack_pointer - local.get $12 + local.get $11 i32.store offset=4 - local.get $12 + local.get $11 call $"~lib/map/Map#get:entries" local.tee $entries i32.store offset=12 local.get $entries local.get $this - local.set $12 + local.set $11 global.get $~lib/memory/__stack_pointer - local.get $12 + local.get $11 i32.store offset=4 - local.get $12 + local.get $11 local.get $this - local.set $12 + local.set $11 global.get $~lib/memory/__stack_pointer - local.get $12 + local.get $11 i32.store offset=8 - local.get $12 + local.get $11 call $"~lib/map/Map#get:entriesOffset" - local.tee $9 + local.tee $8 i32.const 1 i32.add call $"~lib/map/Map#set:entriesOffset" - local.get $9 + local.get $8 block $"~lib/map/ENTRY_SIZE|inlined.4" (result i32) i32.const 8 br $"~lib/map/ENTRY_SIZE|inlined.4" end i32.mul i32.add - local.set $entry|10 - local.get $entry|10 + local.set $entry|9 + local.get $entry|9 local.get $key call $"~lib/map/MapEntry#set:key" i32.const 0 drop - local.get $entry|10 + local.get $entry|9 local.get $value call $"~lib/map/MapEntry#set:value" i32.const 0 drop local.get $this - local.set $12 + local.set $11 global.get $~lib/memory/__stack_pointer - local.get $12 + local.get $11 i32.store offset=4 - local.get $12 + local.get $11 local.get $this - local.set $12 + local.set $11 global.get $~lib/memory/__stack_pointer - local.get $12 + local.get $11 i32.store offset=8 - local.get $12 + local.get $11 call $"~lib/map/Map#get:entriesCount" i32.const 1 i32.add call $"~lib/map/Map#set:entriesCount" local.get $this - local.set $12 + local.set $11 global.get $~lib/memory/__stack_pointer - local.get $12 + local.get $11 i32.store offset=4 - local.get $12 + local.get $11 call $"~lib/map/Map#get:buckets" local.get $hashCode local.get $this - local.set $12 + local.set $11 global.get $~lib/memory/__stack_pointer - local.get $12 + local.get $11 i32.store offset=4 - local.get $12 + local.get $11 call $"~lib/map/Map#get:bucketsMask" i32.and i32.const 4 i32.mul i32.add local.set $bucketPtrBase - local.get $entry|10 + local.get $entry|9 local.get $bucketPtrBase i32.load call $"~lib/map/MapEntry#set:taggedNext" local.get $bucketPtrBase - local.get $entry|10 + local.get $entry|9 i32.store end local.get $i @@ -17598,63 +17309,12 @@ end end local.get $this - local.set $12 + local.set $11 global.get $~lib/memory/__stack_pointer i32.const 16 i32.add global.set $~lib/memory/__stack_pointer - local.get $12 - ) - (func $"~lib/map/Map#constructor@varargs" (param $this i32) (param $initialEntries i32) (result i32) - (local $2 i32) - (local $3 i32) - global.get $~lib/memory/__stack_pointer - i32.const 12 - i32.sub - global.set $~lib/memory/__stack_pointer - call $~stack_check - global.get $~lib/memory/__stack_pointer - i64.const 0 - i64.store - global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.store offset=8 - block $1of1 - block $0of1 - block $outOfRange - global.get $~argumentsLength - br_table $0of1 $1of1 $outOfRange - end - unreachable - end - global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.const 2 - i32.const 28 - i32.const 1136 - call $~lib/rt/__newArray - local.tee $initialEntries - i32.store - end - local.get $this - local.set $3 - global.get $~lib/memory/__stack_pointer - local.get $3 - i32.store offset=4 - local.get $3 - local.get $initialEntries - local.set $3 - global.get $~lib/memory/__stack_pointer - local.get $3 - i32.store offset=8 - local.get $3 - call $"~lib/map/Map#constructor" - local.set $3 - global.get $~lib/memory/__stack_pointer - i32.const 12 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $3 + local.get $11 ) (func $~lib/array/Array#get:length (param $this i32) (result i32) (local $1 i32) @@ -18325,9 +17985,7 @@ global.get $~lib/memory/__stack_pointer i32.const 0 i32.const 0 - global.set $~argumentsLength - i32.const 0 - call $"~lib/map/Map#constructor@varargs" + call $"~lib/map/Map#constructor" local.tee $map i32.store i32.const 0 @@ -18349,7 +18007,7 @@ i32.eqz if i32.const 0 - i32.const 752 + i32.const 720 i32.const 7 i32.const 5 call $~lib/builtins/abort @@ -18378,7 +18036,7 @@ i32.eqz if i32.const 0 - i32.const 752 + i32.const 720 i32.const 9 i32.const 5 call $~lib/builtins/abort @@ -18399,7 +18057,7 @@ i32.eqz if i32.const 0 - i32.const 752 + i32.const 720 i32.const 10 i32.const 5 call $~lib/builtins/abort @@ -18424,7 +18082,7 @@ i32.eqz if i32.const 0 - i32.const 752 + i32.const 720 i32.const 12 i32.const 3 call $~lib/builtins/abort @@ -18448,7 +18106,7 @@ i32.eqz if i32.const 0 - i32.const 752 + i32.const 720 i32.const 16 i32.const 5 call $~lib/builtins/abort @@ -18469,7 +18127,7 @@ i32.eqz if i32.const 0 - i32.const 752 + i32.const 720 i32.const 17 i32.const 5 call $~lib/builtins/abort @@ -18498,7 +18156,7 @@ i32.eqz if i32.const 0 - i32.const 752 + i32.const 720 i32.const 19 i32.const 5 call $~lib/builtins/abort @@ -18519,7 +18177,7 @@ i32.eqz if i32.const 0 - i32.const 752 + i32.const 720 i32.const 20 i32.const 5 call $~lib/builtins/abort @@ -18544,7 +18202,7 @@ i32.eqz if i32.const 0 - i32.const 752 + i32.const 720 i32.const 22 i32.const 3 call $~lib/builtins/abort @@ -18573,17 +18231,13 @@ global.get $~lib/memory/__stack_pointer i32.const 0 i32.const 0 - global.set $~argumentsLength - i32.const 0 - call $"~lib/map/Map#constructor@varargs" + call $"~lib/map/Map#constructor" local.tee $keyMap i32.store offset=16 global.get $~lib/memory/__stack_pointer i32.const 0 i32.const 0 - global.set $~argumentsLength - i32.const 0 - call $"~lib/map/Map#constructor@varargs" + call $"~lib/map/Map#constructor" local.tee $valMap i32.store offset=20 i32.const 0 @@ -18628,7 +18282,7 @@ i32.eqz if i32.const 0 - i32.const 752 + i32.const 720 i32.const 32 i32.const 5 call $~lib/builtins/abort @@ -18647,7 +18301,7 @@ i32.eqz if i32.const 0 - i32.const 752 + i32.const 720 i32.const 33 i32.const 5 call $~lib/builtins/abort @@ -18696,7 +18350,7 @@ i32.eqz if i32.const 0 - i32.const 752 + i32.const 720 i32.const 37 i32.const 3 call $~lib/builtins/abort @@ -18714,7 +18368,7 @@ i32.eqz if i32.const 0 - i32.const 752 + i32.const 720 i32.const 38 i32.const 3 call $~lib/builtins/abort @@ -18738,7 +18392,7 @@ i32.eqz if i32.const 0 - i32.const 752 + i32.const 720 i32.const 42 i32.const 5 call $~lib/builtins/abort @@ -18759,7 +18413,7 @@ i32.eqz if i32.const 0 - i32.const 752 + i32.const 720 i32.const 43 i32.const 5 call $~lib/builtins/abort @@ -18786,7 +18440,7 @@ i32.eqz if i32.const 0 - i32.const 752 + i32.const 720 i32.const 45 i32.const 5 call $~lib/builtins/abort @@ -18811,7 +18465,7 @@ i32.eqz if i32.const 0 - i32.const 752 + i32.const 720 i32.const 47 i32.const 3 call $~lib/builtins/abort @@ -18836,7 +18490,7 @@ i32.eqz if i32.const 0 - i32.const 752 + i32.const 720 i32.const 51 i32.const 5 call $~lib/builtins/abort @@ -18865,7 +18519,7 @@ i32.eqz if i32.const 0 - i32.const 752 + i32.const 720 i32.const 53 i32.const 5 call $~lib/builtins/abort @@ -18892,7 +18546,7 @@ i32.eqz if i32.const 0 - i32.const 752 + i32.const 720 i32.const 55 i32.const 5 call $~lib/builtins/abort @@ -18917,7 +18571,7 @@ i32.eqz if i32.const 0 - i32.const 752 + i32.const 720 i32.const 57 i32.const 3 call $~lib/builtins/abort @@ -18942,7 +18596,7 @@ i32.eqz if i32.const 0 - i32.const 752 + i32.const 720 i32.const 61 i32.const 3 call $~lib/builtins/abort @@ -18952,7 +18606,7 @@ i32.const 0 i32.const 2 i32.const 24 - i32.const 1168 + i32.const 944 call $~lib/rt/__newArray local.tee $initialEntries i32.store offset=24 @@ -19030,7 +18684,7 @@ i32.eqz if i32.const 0 - i32.const 752 + i32.const 720 i32.const 74 i32.const 3 call $~lib/builtins/abort @@ -19054,7 +18708,7 @@ i32.eqz if i32.const 0 - i32.const 752 + i32.const 720 i32.const 76 i32.const 5 call $~lib/builtins/abort @@ -19075,7 +18729,7 @@ i32.eqz if i32.const 0 - i32.const 752 + i32.const 720 i32.const 77 i32.const 5 call $~lib/builtins/abort @@ -19102,7 +18756,7 @@ i32.eqz if i32.const 0 - i32.const 752 + i32.const 720 i32.const 79 i32.const 5 call $~lib/builtins/abort @@ -19127,7 +18781,7 @@ i32.eqz if i32.const 0 - i32.const 752 + i32.const 720 i32.const 81 i32.const 3 call $~lib/builtins/abort @@ -19515,17 +19169,16 @@ return ) (func $"~lib/map/Map#constructor" (param $this i32) (param $initialEntries i32) (result i32) - (local $entriesLength i32) (local $i i32) (local $key i32) (local $value i32) (local $hashCode i32) (local $entry i32) (local $entries i32) - (local $9 i32) - (local $entry|10 i32) + (local $8 i32) + (local $entry|9 i32) (local $bucketPtrBase i32) - (local $12 i32) + (local $11 i32) global.get $~lib/memory/__stack_pointer i32.const 16 i32.sub @@ -19548,38 +19201,38 @@ i32.store end local.get $this - local.set $12 + local.set $11 global.get $~lib/memory/__stack_pointer - local.get $12 + local.get $11 i32.store offset=4 - local.get $12 + local.get $11 i32.const 0 i32.const 4 i32.const 4 i32.mul call $~lib/arraybuffer/ArrayBuffer#constructor - local.set $12 + local.set $11 global.get $~lib/memory/__stack_pointer - local.get $12 + local.get $11 i32.store offset=8 - local.get $12 + local.get $11 call $"~lib/map/Map#set:buckets" local.get $this - local.set $12 + local.set $11 global.get $~lib/memory/__stack_pointer - local.get $12 + local.get $11 i32.store offset=4 - local.get $12 + local.get $11 i32.const 4 i32.const 1 i32.sub call $"~lib/map/Map#set:bucketsMask" local.get $this - local.set $12 + local.set $11 global.get $~lib/memory/__stack_pointer - local.get $12 + local.get $11 i32.store offset=4 - local.get $12 + local.get $11 i32.const 0 i32.const 4 block $"~lib/map/ENTRY_SIZE|inlined.5" (result i32) @@ -19588,79 +19241,81 @@ end i32.mul call $~lib/arraybuffer/ArrayBuffer#constructor - local.set $12 + local.set $11 global.get $~lib/memory/__stack_pointer - local.get $12 + local.get $11 i32.store offset=8 - local.get $12 + local.get $11 call $"~lib/map/Map#set:entries" local.get $this - local.set $12 + local.set $11 global.get $~lib/memory/__stack_pointer - local.get $12 + local.get $11 i32.store offset=4 - local.get $12 + local.get $11 i32.const 4 call $"~lib/map/Map#set:entriesCapacity" local.get $this - local.set $12 + local.set $11 global.get $~lib/memory/__stack_pointer - local.get $12 + local.get $11 i32.store offset=4 - local.get $12 + local.get $11 i32.const 0 call $"~lib/map/Map#set:entriesOffset" local.get $this - local.set $12 + local.set $11 global.get $~lib/memory/__stack_pointer - local.get $12 + local.get $11 i32.store offset=4 - local.get $12 + local.get $11 i32.const 0 call $"~lib/map/Map#set:entriesCount" local.get $initialEntries - local.set $12 - global.get $~lib/memory/__stack_pointer - local.get $12 - i32.store offset=4 - local.get $12 - call $"~lib/array/Array<~lib/map/KeyValue>#get:length" - local.set $entriesLength - local.get $entriesLength - i32.const 0 - i32.gt_s if - local.get $entriesLength + local.get $initialEntries + local.set $11 + global.get $~lib/memory/__stack_pointer + local.get $11 + i32.store offset=4 + local.get $11 + call $"~lib/array/Array<~lib/map/KeyValue>#get:length" local.get $this - local.set $12 + local.set $11 global.get $~lib/memory/__stack_pointer - local.get $12 + local.get $11 i32.store offset=4 - local.get $12 + local.get $11 call $"~lib/map/Map#get:entriesCapacity" i32.ge_s if local.get $this - local.set $12 + local.set $11 global.get $~lib/memory/__stack_pointer - local.get $12 + local.get $11 i32.store offset=4 - local.get $12 - local.get $entriesLength + local.get $11 + local.get $initialEntries + local.set $11 + global.get $~lib/memory/__stack_pointer + local.get $11 + i32.store offset=8 + local.get $11 + call $"~lib/array/Array<~lib/map/KeyValue>#get:length" call $"~lib/map/Map#set:bucketsMask" end local.get $this - local.set $12 + local.set $11 global.get $~lib/memory/__stack_pointer - local.get $12 + local.get $11 i32.store offset=4 - local.get $12 + local.get $11 local.get $this - local.set $12 + local.set $11 global.get $~lib/memory/__stack_pointer - local.get $12 + local.get $11 i32.store offset=8 - local.get $12 + local.get $11 call $"~lib/map/Map#get:bucketsMask" i32.const 1 i32.shl @@ -19671,48 +19326,54 @@ local.set $i loop $for-loop|0 local.get $i - local.get $entriesLength + local.get $initialEntries + local.set $11 + global.get $~lib/memory/__stack_pointer + local.get $11 + i32.store offset=4 + local.get $11 + call $"~lib/array/Array<~lib/map/KeyValue>#get:length" i32.lt_s if local.get $initialEntries - local.set $12 + local.set $11 global.get $~lib/memory/__stack_pointer - local.get $12 + local.get $11 i32.store offset=8 - local.get $12 + local.get $11 local.get $i call $"~lib/array/Array<~lib/map/KeyValue>#__get" - local.set $12 + local.set $11 global.get $~lib/memory/__stack_pointer - local.get $12 + local.get $11 i32.store offset=4 - local.get $12 + local.get $11 call $"~lib/map/KeyValue#get:key" local.set $key local.get $initialEntries - local.set $12 + local.set $11 global.get $~lib/memory/__stack_pointer - local.get $12 + local.get $11 i32.store offset=8 - local.get $12 + local.get $11 local.get $i call $"~lib/array/Array<~lib/map/KeyValue>#__get" - local.set $12 + local.set $11 global.get $~lib/memory/__stack_pointer - local.get $12 + local.get $11 i32.store offset=4 - local.get $12 + local.get $11 call $"~lib/map/KeyValue#get:value" local.set $value local.get $key call $~lib/util/hash/HASH local.set $hashCode local.get $this - local.set $12 + local.set $11 global.get $~lib/memory/__stack_pointer - local.get $12 + local.get $11 i32.store offset=4 - local.get $12 + local.get $11 local.get $key local.get $hashCode call $"~lib/map/Map#find" @@ -19727,92 +19388,92 @@ else global.get $~lib/memory/__stack_pointer local.get $this - local.set $12 + local.set $11 global.get $~lib/memory/__stack_pointer - local.get $12 + local.get $11 i32.store offset=4 - local.get $12 + local.get $11 call $"~lib/map/Map#get:entries" local.tee $entries i32.store offset=12 local.get $entries local.get $this - local.set $12 + local.set $11 global.get $~lib/memory/__stack_pointer - local.get $12 + local.get $11 i32.store offset=4 - local.get $12 + local.get $11 local.get $this - local.set $12 + local.set $11 global.get $~lib/memory/__stack_pointer - local.get $12 + local.get $11 i32.store offset=8 - local.get $12 + local.get $11 call $"~lib/map/Map#get:entriesOffset" - local.tee $9 + local.tee $8 i32.const 1 i32.add call $"~lib/map/Map#set:entriesOffset" - local.get $9 + local.get $8 block $"~lib/map/ENTRY_SIZE|inlined.4" (result i32) i32.const 12 br $"~lib/map/ENTRY_SIZE|inlined.4" end i32.mul i32.add - local.set $entry|10 - local.get $entry|10 + local.set $entry|9 + local.get $entry|9 local.get $key call $"~lib/map/MapEntry#set:key" i32.const 0 drop - local.get $entry|10 + local.get $entry|9 local.get $value call $"~lib/map/MapEntry#set:value" i32.const 0 drop local.get $this - local.set $12 + local.set $11 global.get $~lib/memory/__stack_pointer - local.get $12 + local.get $11 i32.store offset=4 - local.get $12 + local.get $11 local.get $this - local.set $12 + local.set $11 global.get $~lib/memory/__stack_pointer - local.get $12 + local.get $11 i32.store offset=8 - local.get $12 + local.get $11 call $"~lib/map/Map#get:entriesCount" i32.const 1 i32.add call $"~lib/map/Map#set:entriesCount" local.get $this - local.set $12 + local.set $11 global.get $~lib/memory/__stack_pointer - local.get $12 + local.get $11 i32.store offset=4 - local.get $12 + local.get $11 call $"~lib/map/Map#get:buckets" local.get $hashCode local.get $this - local.set $12 + local.set $11 global.get $~lib/memory/__stack_pointer - local.get $12 + local.get $11 i32.store offset=4 - local.get $12 + local.get $11 call $"~lib/map/Map#get:bucketsMask" i32.and i32.const 4 i32.mul i32.add local.set $bucketPtrBase - local.get $entry|10 + local.get $entry|9 local.get $bucketPtrBase i32.load call $"~lib/map/MapEntry#set:taggedNext" local.get $bucketPtrBase - local.get $entry|10 + local.get $entry|9 i32.store end local.get $i @@ -19824,63 +19485,12 @@ end end local.get $this - local.set $12 + local.set $11 global.get $~lib/memory/__stack_pointer i32.const 16 i32.add global.set $~lib/memory/__stack_pointer - local.get $12 - ) - (func $"~lib/map/Map#constructor@varargs" (param $this i32) (param $initialEntries i32) (result i32) - (local $2 i32) - (local $3 i32) - global.get $~lib/memory/__stack_pointer - i32.const 12 - i32.sub - global.set $~lib/memory/__stack_pointer - call $~stack_check - global.get $~lib/memory/__stack_pointer - i64.const 0 - i64.store - global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.store offset=8 - block $1of1 - block $0of1 - block $outOfRange - global.get $~argumentsLength - br_table $0of1 $1of1 $outOfRange - end - unreachable - end - global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.const 2 - i32.const 31 - i32.const 1200 - call $~lib/rt/__newArray - local.tee $initialEntries - i32.store - end - local.get $this - local.set $3 - global.get $~lib/memory/__stack_pointer - local.get $3 - i32.store offset=4 - local.get $3 - local.get $initialEntries - local.set $3 - global.get $~lib/memory/__stack_pointer - local.get $3 - i32.store offset=8 - local.get $3 - call $"~lib/map/Map#constructor" - local.set $3 - global.get $~lib/memory/__stack_pointer - i32.const 12 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $3 + local.get $11 ) (func $"~lib/map/Map#has" (param $this i32) (param $key i32) (result i32) (local $2 i32) @@ -20139,9 +19749,9 @@ local.get $entry i32.eqz if - i32.const 800 - i32.const 864 - i32.const 148 + i32.const 768 + i32.const 832 + i32.const 146 i32.const 17 call $~lib/builtins/abort unreachable @@ -20999,17 +20609,16 @@ return ) (func $"~lib/map/Map#constructor" (param $this i32) (param $initialEntries i32) (result i32) - (local $entriesLength i32) (local $i i32) (local $key i32) (local $value i32) (local $hashCode i32) (local $entry i32) (local $entries i32) - (local $9 i32) - (local $entry|10 i32) + (local $8 i32) + (local $entry|9 i32) (local $bucketPtrBase i32) - (local $12 i32) + (local $11 i32) global.get $~lib/memory/__stack_pointer i32.const 16 i32.sub @@ -21032,38 +20641,38 @@ i32.store end local.get $this - local.set $12 + local.set $11 global.get $~lib/memory/__stack_pointer - local.get $12 + local.get $11 i32.store offset=4 - local.get $12 + local.get $11 i32.const 0 i32.const 4 i32.const 4 i32.mul call $~lib/arraybuffer/ArrayBuffer#constructor - local.set $12 + local.set $11 global.get $~lib/memory/__stack_pointer - local.get $12 + local.get $11 i32.store offset=8 - local.get $12 + local.get $11 call $"~lib/map/Map#set:buckets" local.get $this - local.set $12 + local.set $11 global.get $~lib/memory/__stack_pointer - local.get $12 + local.get $11 i32.store offset=4 - local.get $12 + local.get $11 i32.const 4 i32.const 1 i32.sub call $"~lib/map/Map#set:bucketsMask" local.get $this - local.set $12 + local.set $11 global.get $~lib/memory/__stack_pointer - local.get $12 + local.get $11 i32.store offset=4 - local.get $12 + local.get $11 i32.const 0 i32.const 4 block $"~lib/map/ENTRY_SIZE|inlined.5" (result i32) @@ -21072,79 +20681,81 @@ end i32.mul call $~lib/arraybuffer/ArrayBuffer#constructor - local.set $12 + local.set $11 global.get $~lib/memory/__stack_pointer - local.get $12 + local.get $11 i32.store offset=8 - local.get $12 + local.get $11 call $"~lib/map/Map#set:entries" local.get $this - local.set $12 + local.set $11 global.get $~lib/memory/__stack_pointer - local.get $12 + local.get $11 i32.store offset=4 - local.get $12 + local.get $11 i32.const 4 call $"~lib/map/Map#set:entriesCapacity" local.get $this - local.set $12 + local.set $11 global.get $~lib/memory/__stack_pointer - local.get $12 + local.get $11 i32.store offset=4 - local.get $12 + local.get $11 i32.const 0 call $"~lib/map/Map#set:entriesOffset" local.get $this - local.set $12 + local.set $11 global.get $~lib/memory/__stack_pointer - local.get $12 + local.get $11 i32.store offset=4 - local.get $12 + local.get $11 i32.const 0 call $"~lib/map/Map#set:entriesCount" local.get $initialEntries - local.set $12 - global.get $~lib/memory/__stack_pointer - local.get $12 - i32.store offset=4 - local.get $12 - call $"~lib/array/Array<~lib/map/KeyValue>#get:length" - local.set $entriesLength - local.get $entriesLength - i32.const 0 - i32.gt_s if - local.get $entriesLength + local.get $initialEntries + local.set $11 + global.get $~lib/memory/__stack_pointer + local.get $11 + i32.store offset=4 + local.get $11 + call $"~lib/array/Array<~lib/map/KeyValue>#get:length" local.get $this - local.set $12 + local.set $11 global.get $~lib/memory/__stack_pointer - local.get $12 + local.get $11 i32.store offset=4 - local.get $12 + local.get $11 call $"~lib/map/Map#get:entriesCapacity" i32.ge_s if local.get $this - local.set $12 + local.set $11 global.get $~lib/memory/__stack_pointer - local.get $12 + local.get $11 i32.store offset=4 - local.get $12 - local.get $entriesLength + local.get $11 + local.get $initialEntries + local.set $11 + global.get $~lib/memory/__stack_pointer + local.get $11 + i32.store offset=8 + local.get $11 + call $"~lib/array/Array<~lib/map/KeyValue>#get:length" call $"~lib/map/Map#set:bucketsMask" end local.get $this - local.set $12 + local.set $11 global.get $~lib/memory/__stack_pointer - local.get $12 + local.get $11 i32.store offset=4 - local.get $12 + local.get $11 local.get $this - local.set $12 + local.set $11 global.get $~lib/memory/__stack_pointer - local.get $12 + local.get $11 i32.store offset=8 - local.get $12 + local.get $11 call $"~lib/map/Map#get:bucketsMask" i32.const 1 i32.shl @@ -21155,48 +20766,54 @@ local.set $i loop $for-loop|0 local.get $i - local.get $entriesLength + local.get $initialEntries + local.set $11 + global.get $~lib/memory/__stack_pointer + local.get $11 + i32.store offset=4 + local.get $11 + call $"~lib/array/Array<~lib/map/KeyValue>#get:length" i32.lt_s if local.get $initialEntries - local.set $12 + local.set $11 global.get $~lib/memory/__stack_pointer - local.get $12 + local.get $11 i32.store offset=8 - local.get $12 + local.get $11 local.get $i call $"~lib/array/Array<~lib/map/KeyValue>#__get" - local.set $12 + local.set $11 global.get $~lib/memory/__stack_pointer - local.get $12 + local.get $11 i32.store offset=4 - local.get $12 + local.get $11 call $"~lib/map/KeyValue#get:key" local.set $key local.get $initialEntries - local.set $12 + local.set $11 global.get $~lib/memory/__stack_pointer - local.get $12 + local.get $11 i32.store offset=8 - local.get $12 + local.get $11 local.get $i call $"~lib/array/Array<~lib/map/KeyValue>#__get" - local.set $12 + local.set $11 global.get $~lib/memory/__stack_pointer - local.get $12 + local.get $11 i32.store offset=4 - local.get $12 + local.get $11 call $"~lib/map/KeyValue#get:value" local.set $value local.get $key call $~lib/util/hash/HASH local.set $hashCode local.get $this - local.set $12 + local.set $11 global.get $~lib/memory/__stack_pointer - local.get $12 + local.get $11 i32.store offset=4 - local.get $12 + local.get $11 local.get $key local.get $hashCode call $"~lib/map/Map#find" @@ -21211,92 +20828,92 @@ else global.get $~lib/memory/__stack_pointer local.get $this - local.set $12 + local.set $11 global.get $~lib/memory/__stack_pointer - local.get $12 + local.get $11 i32.store offset=4 - local.get $12 + local.get $11 call $"~lib/map/Map#get:entries" local.tee $entries i32.store offset=12 local.get $entries local.get $this - local.set $12 + local.set $11 global.get $~lib/memory/__stack_pointer - local.get $12 + local.get $11 i32.store offset=4 - local.get $12 + local.get $11 local.get $this - local.set $12 + local.set $11 global.get $~lib/memory/__stack_pointer - local.get $12 + local.get $11 i32.store offset=8 - local.get $12 + local.get $11 call $"~lib/map/Map#get:entriesOffset" - local.tee $9 + local.tee $8 i32.const 1 i32.add call $"~lib/map/Map#set:entriesOffset" - local.get $9 + local.get $8 block $"~lib/map/ENTRY_SIZE|inlined.4" (result i32) i32.const 8 br $"~lib/map/ENTRY_SIZE|inlined.4" end i32.mul i32.add - local.set $entry|10 - local.get $entry|10 + local.set $entry|9 + local.get $entry|9 local.get $key call $"~lib/map/MapEntry#set:key" i32.const 0 drop - local.get $entry|10 + local.get $entry|9 local.get $value call $"~lib/map/MapEntry#set:value" i32.const 0 drop local.get $this - local.set $12 + local.set $11 global.get $~lib/memory/__stack_pointer - local.get $12 + local.get $11 i32.store offset=4 - local.get $12 + local.get $11 local.get $this - local.set $12 + local.set $11 global.get $~lib/memory/__stack_pointer - local.get $12 + local.get $11 i32.store offset=8 - local.get $12 + local.get $11 call $"~lib/map/Map#get:entriesCount" i32.const 1 i32.add call $"~lib/map/Map#set:entriesCount" local.get $this - local.set $12 + local.set $11 global.get $~lib/memory/__stack_pointer - local.get $12 + local.get $11 i32.store offset=4 - local.get $12 + local.get $11 call $"~lib/map/Map#get:buckets" local.get $hashCode local.get $this - local.set $12 + local.set $11 global.get $~lib/memory/__stack_pointer - local.get $12 + local.get $11 i32.store offset=4 - local.get $12 + local.get $11 call $"~lib/map/Map#get:bucketsMask" i32.and i32.const 4 i32.mul i32.add local.set $bucketPtrBase - local.get $entry|10 + local.get $entry|9 local.get $bucketPtrBase i32.load call $"~lib/map/MapEntry#set:taggedNext" local.get $bucketPtrBase - local.get $entry|10 + local.get $entry|9 i32.store end local.get $i @@ -21308,63 +20925,12 @@ end end local.get $this - local.set $12 + local.set $11 global.get $~lib/memory/__stack_pointer i32.const 16 i32.add global.set $~lib/memory/__stack_pointer - local.get $12 - ) - (func $"~lib/map/Map#constructor@varargs" (param $this i32) (param $initialEntries i32) (result i32) - (local $2 i32) - (local $3 i32) - global.get $~lib/memory/__stack_pointer - i32.const 12 - i32.sub - global.set $~lib/memory/__stack_pointer - call $~stack_check - global.get $~lib/memory/__stack_pointer - i64.const 0 - i64.store - global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.store offset=8 - block $1of1 - block $0of1 - block $outOfRange - global.get $~argumentsLength - br_table $0of1 $1of1 $outOfRange - end - unreachable - end - global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.const 2 - i32.const 35 - i32.const 1232 - call $~lib/rt/__newArray - local.tee $initialEntries - i32.store - end - local.get $this - local.set $3 - global.get $~lib/memory/__stack_pointer - local.get $3 - i32.store offset=4 - local.get $3 - local.get $initialEntries - local.set $3 - global.get $~lib/memory/__stack_pointer - local.get $3 - i32.store offset=8 - local.get $3 - call $"~lib/map/Map#constructor" - local.set $3 - global.get $~lib/memory/__stack_pointer - i32.const 12 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $3 + local.get $11 ) (func $~lib/array/Array#get:length (param $this i32) (result i32) (local $1 i32) @@ -22035,9 +21601,7 @@ global.get $~lib/memory/__stack_pointer i32.const 0 i32.const 0 - global.set $~argumentsLength - i32.const 0 - call $"~lib/map/Map#constructor@varargs" + call $"~lib/map/Map#constructor" local.tee $map i32.store i32.const 0 @@ -22059,7 +21623,7 @@ i32.eqz if i32.const 0 - i32.const 752 + i32.const 720 i32.const 7 i32.const 5 call $~lib/builtins/abort @@ -22088,7 +21652,7 @@ i32.eqz if i32.const 0 - i32.const 752 + i32.const 720 i32.const 9 i32.const 5 call $~lib/builtins/abort @@ -22109,7 +21673,7 @@ i32.eqz if i32.const 0 - i32.const 752 + i32.const 720 i32.const 10 i32.const 5 call $~lib/builtins/abort @@ -22134,7 +21698,7 @@ i32.eqz if i32.const 0 - i32.const 752 + i32.const 720 i32.const 12 i32.const 3 call $~lib/builtins/abort @@ -22158,7 +21722,7 @@ i32.eqz if i32.const 0 - i32.const 752 + i32.const 720 i32.const 16 i32.const 5 call $~lib/builtins/abort @@ -22179,7 +21743,7 @@ i32.eqz if i32.const 0 - i32.const 752 + i32.const 720 i32.const 17 i32.const 5 call $~lib/builtins/abort @@ -22208,7 +21772,7 @@ i32.eqz if i32.const 0 - i32.const 752 + i32.const 720 i32.const 19 i32.const 5 call $~lib/builtins/abort @@ -22229,7 +21793,7 @@ i32.eqz if i32.const 0 - i32.const 752 + i32.const 720 i32.const 20 i32.const 5 call $~lib/builtins/abort @@ -22254,7 +21818,7 @@ i32.eqz if i32.const 0 - i32.const 752 + i32.const 720 i32.const 22 i32.const 3 call $~lib/builtins/abort @@ -22283,17 +21847,13 @@ global.get $~lib/memory/__stack_pointer i32.const 0 i32.const 0 - global.set $~argumentsLength - i32.const 0 - call $"~lib/map/Map#constructor@varargs" + call $"~lib/map/Map#constructor" local.tee $keyMap i32.store offset=16 global.get $~lib/memory/__stack_pointer i32.const 0 i32.const 0 - global.set $~argumentsLength - i32.const 0 - call $"~lib/map/Map#constructor@varargs" + call $"~lib/map/Map#constructor" local.tee $valMap i32.store offset=20 i32.const 0 @@ -22338,7 +21898,7 @@ i32.eqz if i32.const 0 - i32.const 752 + i32.const 720 i32.const 32 i32.const 5 call $~lib/builtins/abort @@ -22357,7 +21917,7 @@ i32.eqz if i32.const 0 - i32.const 752 + i32.const 720 i32.const 33 i32.const 5 call $~lib/builtins/abort @@ -22406,7 +21966,7 @@ i32.eqz if i32.const 0 - i32.const 752 + i32.const 720 i32.const 37 i32.const 3 call $~lib/builtins/abort @@ -22424,7 +21984,7 @@ i32.eqz if i32.const 0 - i32.const 752 + i32.const 720 i32.const 38 i32.const 3 call $~lib/builtins/abort @@ -22448,7 +22008,7 @@ i32.eqz if i32.const 0 - i32.const 752 + i32.const 720 i32.const 42 i32.const 5 call $~lib/builtins/abort @@ -22469,7 +22029,7 @@ i32.eqz if i32.const 0 - i32.const 752 + i32.const 720 i32.const 43 i32.const 5 call $~lib/builtins/abort @@ -22496,7 +22056,7 @@ i32.eqz if i32.const 0 - i32.const 752 + i32.const 720 i32.const 45 i32.const 5 call $~lib/builtins/abort @@ -22521,7 +22081,7 @@ i32.eqz if i32.const 0 - i32.const 752 + i32.const 720 i32.const 47 i32.const 3 call $~lib/builtins/abort @@ -22546,7 +22106,7 @@ i32.eqz if i32.const 0 - i32.const 752 + i32.const 720 i32.const 51 i32.const 5 call $~lib/builtins/abort @@ -22575,7 +22135,7 @@ i32.eqz if i32.const 0 - i32.const 752 + i32.const 720 i32.const 53 i32.const 5 call $~lib/builtins/abort @@ -22602,7 +22162,7 @@ i32.eqz if i32.const 0 - i32.const 752 + i32.const 720 i32.const 55 i32.const 5 call $~lib/builtins/abort @@ -22627,7 +22187,7 @@ i32.eqz if i32.const 0 - i32.const 752 + i32.const 720 i32.const 57 i32.const 3 call $~lib/builtins/abort @@ -22652,7 +22212,7 @@ i32.eqz if i32.const 0 - i32.const 752 + i32.const 720 i32.const 61 i32.const 3 call $~lib/builtins/abort @@ -22662,7 +22222,7 @@ i32.const 0 i32.const 2 i32.const 31 - i32.const 1264 + i32.const 976 call $~lib/rt/__newArray local.tee $initialEntries i32.store offset=24 @@ -22740,7 +22300,7 @@ i32.eqz if i32.const 0 - i32.const 752 + i32.const 720 i32.const 74 i32.const 3 call $~lib/builtins/abort @@ -22764,7 +22324,7 @@ i32.eqz if i32.const 0 - i32.const 752 + i32.const 720 i32.const 76 i32.const 5 call $~lib/builtins/abort @@ -22785,7 +22345,7 @@ i32.eqz if i32.const 0 - i32.const 752 + i32.const 720 i32.const 77 i32.const 5 call $~lib/builtins/abort @@ -22812,7 +22372,7 @@ i32.eqz if i32.const 0 - i32.const 752 + i32.const 720 i32.const 79 i32.const 5 call $~lib/builtins/abort @@ -22837,7 +22397,7 @@ i32.eqz if i32.const 0 - i32.const 752 + i32.const 720 i32.const 81 i32.const 3 call $~lib/builtins/abort @@ -22903,9 +22463,9 @@ local.get $entry i32.eqz if - i32.const 800 - i32.const 864 - i32.const 148 + i32.const 768 + i32.const 832 + i32.const 146 i32.const 17 call $~lib/builtins/abort unreachable @@ -23516,9 +23076,7 @@ global.get $~lib/memory/__stack_pointer i32.const 0 i32.const 0 - global.set $~argumentsLength - i32.const 0 - call $"~lib/map/Map#constructor@varargs" + call $"~lib/map/Map#constructor" local.tee $map i32.store i32.const 0 @@ -23540,7 +23098,7 @@ i32.eqz if i32.const 0 - i32.const 752 + i32.const 720 i32.const 7 i32.const 5 call $~lib/builtins/abort @@ -23569,7 +23127,7 @@ i32.eqz if i32.const 0 - i32.const 752 + i32.const 720 i32.const 9 i32.const 5 call $~lib/builtins/abort @@ -23590,7 +23148,7 @@ i32.eqz if i32.const 0 - i32.const 752 + i32.const 720 i32.const 10 i32.const 5 call $~lib/builtins/abort @@ -23615,7 +23173,7 @@ i32.eqz if i32.const 0 - i32.const 752 + i32.const 720 i32.const 12 i32.const 3 call $~lib/builtins/abort @@ -23639,7 +23197,7 @@ i32.eqz if i32.const 0 - i32.const 752 + i32.const 720 i32.const 16 i32.const 5 call $~lib/builtins/abort @@ -23660,7 +23218,7 @@ i32.eqz if i32.const 0 - i32.const 752 + i32.const 720 i32.const 17 i32.const 5 call $~lib/builtins/abort @@ -23689,7 +23247,7 @@ i32.eqz if i32.const 0 - i32.const 752 + i32.const 720 i32.const 19 i32.const 5 call $~lib/builtins/abort @@ -23710,7 +23268,7 @@ i32.eqz if i32.const 0 - i32.const 752 + i32.const 720 i32.const 20 i32.const 5 call $~lib/builtins/abort @@ -23735,7 +23293,7 @@ i32.eqz if i32.const 0 - i32.const 752 + i32.const 720 i32.const 22 i32.const 3 call $~lib/builtins/abort @@ -23764,17 +23322,13 @@ global.get $~lib/memory/__stack_pointer i32.const 0 i32.const 0 - global.set $~argumentsLength - i32.const 0 - call $"~lib/map/Map#constructor@varargs" + call $"~lib/map/Map#constructor" local.tee $keyMap i32.store offset=16 global.get $~lib/memory/__stack_pointer i32.const 0 i32.const 0 - global.set $~argumentsLength - i32.const 0 - call $"~lib/map/Map#constructor@varargs" + call $"~lib/map/Map#constructor" local.tee $valMap i32.store offset=20 i32.const 0 @@ -23819,7 +23373,7 @@ i32.eqz if i32.const 0 - i32.const 752 + i32.const 720 i32.const 32 i32.const 5 call $~lib/builtins/abort @@ -23838,7 +23392,7 @@ i32.eqz if i32.const 0 - i32.const 752 + i32.const 720 i32.const 33 i32.const 5 call $~lib/builtins/abort @@ -23887,7 +23441,7 @@ i32.eqz if i32.const 0 - i32.const 752 + i32.const 720 i32.const 37 i32.const 3 call $~lib/builtins/abort @@ -23905,7 +23459,7 @@ i32.eqz if i32.const 0 - i32.const 752 + i32.const 720 i32.const 38 i32.const 3 call $~lib/builtins/abort @@ -23929,7 +23483,7 @@ i32.eqz if i32.const 0 - i32.const 752 + i32.const 720 i32.const 42 i32.const 5 call $~lib/builtins/abort @@ -23950,7 +23504,7 @@ i32.eqz if i32.const 0 - i32.const 752 + i32.const 720 i32.const 43 i32.const 5 call $~lib/builtins/abort @@ -23977,7 +23531,7 @@ i32.eqz if i32.const 0 - i32.const 752 + i32.const 720 i32.const 45 i32.const 5 call $~lib/builtins/abort @@ -24002,7 +23556,7 @@ i32.eqz if i32.const 0 - i32.const 752 + i32.const 720 i32.const 47 i32.const 3 call $~lib/builtins/abort @@ -24027,7 +23581,7 @@ i32.eqz if i32.const 0 - i32.const 752 + i32.const 720 i32.const 51 i32.const 5 call $~lib/builtins/abort @@ -24056,7 +23610,7 @@ i32.eqz if i32.const 0 - i32.const 752 + i32.const 720 i32.const 53 i32.const 5 call $~lib/builtins/abort @@ -24083,7 +23637,7 @@ i32.eqz if i32.const 0 - i32.const 752 + i32.const 720 i32.const 55 i32.const 5 call $~lib/builtins/abort @@ -24108,7 +23662,7 @@ i32.eqz if i32.const 0 - i32.const 752 + i32.const 720 i32.const 57 i32.const 3 call $~lib/builtins/abort @@ -24133,7 +23687,7 @@ i32.eqz if i32.const 0 - i32.const 752 + i32.const 720 i32.const 61 i32.const 3 call $~lib/builtins/abort @@ -24143,7 +23697,7 @@ i32.const 0 i32.const 2 i32.const 14 - i32.const 1296 + i32.const 1008 call $~lib/rt/__newArray local.tee $initialEntries i32.store offset=24 @@ -24221,7 +23775,7 @@ i32.eqz if i32.const 0 - i32.const 752 + i32.const 720 i32.const 74 i32.const 3 call $~lib/builtins/abort @@ -24245,7 +23799,7 @@ i32.eqz if i32.const 0 - i32.const 752 + i32.const 720 i32.const 76 i32.const 5 call $~lib/builtins/abort @@ -24266,7 +23820,7 @@ i32.eqz if i32.const 0 - i32.const 752 + i32.const 720 i32.const 77 i32.const 5 call $~lib/builtins/abort @@ -24293,7 +23847,7 @@ i32.eqz if i32.const 0 - i32.const 752 + i32.const 720 i32.const 79 i32.const 5 call $~lib/builtins/abort @@ -24318,7 +23872,7 @@ i32.eqz if i32.const 0 - i32.const 752 + i32.const 720 i32.const 81 i32.const 3 call $~lib/builtins/abort @@ -24702,17 +24256,16 @@ return ) (func $"~lib/map/Map#constructor" (param $this i32) (param $initialEntries i32) (result i32) - (local $entriesLength i32) (local $i i32) (local $key i32) (local $value i32) (local $hashCode i32) (local $entry i32) (local $entries i32) - (local $9 i32) - (local $entry|10 i32) + (local $8 i32) + (local $entry|9 i32) (local $bucketPtrBase i32) - (local $12 i32) + (local $11 i32) global.get $~lib/memory/__stack_pointer i32.const 16 i32.sub @@ -24735,38 +24288,38 @@ i32.store end local.get $this - local.set $12 + local.set $11 global.get $~lib/memory/__stack_pointer - local.get $12 + local.get $11 i32.store offset=4 - local.get $12 + local.get $11 i32.const 0 i32.const 4 i32.const 4 i32.mul call $~lib/arraybuffer/ArrayBuffer#constructor - local.set $12 + local.set $11 global.get $~lib/memory/__stack_pointer - local.get $12 + local.get $11 i32.store offset=8 - local.get $12 + local.get $11 call $"~lib/map/Map#set:buckets" local.get $this - local.set $12 + local.set $11 global.get $~lib/memory/__stack_pointer - local.get $12 + local.get $11 i32.store offset=4 - local.get $12 + local.get $11 i32.const 4 i32.const 1 i32.sub call $"~lib/map/Map#set:bucketsMask" local.get $this - local.set $12 + local.set $11 global.get $~lib/memory/__stack_pointer - local.get $12 + local.get $11 i32.store offset=4 - local.get $12 + local.get $11 i32.const 0 i32.const 4 block $"~lib/map/ENTRY_SIZE|inlined.5" (result i32) @@ -24775,79 +24328,81 @@ end i32.mul call $~lib/arraybuffer/ArrayBuffer#constructor - local.set $12 + local.set $11 global.get $~lib/memory/__stack_pointer - local.get $12 + local.get $11 i32.store offset=8 - local.get $12 + local.get $11 call $"~lib/map/Map#set:entries" local.get $this - local.set $12 + local.set $11 global.get $~lib/memory/__stack_pointer - local.get $12 + local.get $11 i32.store offset=4 - local.get $12 + local.get $11 i32.const 4 call $"~lib/map/Map#set:entriesCapacity" local.get $this - local.set $12 + local.set $11 global.get $~lib/memory/__stack_pointer - local.get $12 + local.get $11 i32.store offset=4 - local.get $12 + local.get $11 i32.const 0 call $"~lib/map/Map#set:entriesOffset" local.get $this - local.set $12 + local.set $11 global.get $~lib/memory/__stack_pointer - local.get $12 + local.get $11 i32.store offset=4 - local.get $12 + local.get $11 i32.const 0 call $"~lib/map/Map#set:entriesCount" local.get $initialEntries - local.set $12 - global.get $~lib/memory/__stack_pointer - local.get $12 - i32.store offset=4 - local.get $12 - call $"~lib/array/Array<~lib/map/KeyValue>#get:length" - local.set $entriesLength - local.get $entriesLength - i32.const 0 - i32.gt_s if - local.get $entriesLength + local.get $initialEntries + local.set $11 + global.get $~lib/memory/__stack_pointer + local.get $11 + i32.store offset=4 + local.get $11 + call $"~lib/array/Array<~lib/map/KeyValue>#get:length" local.get $this - local.set $12 + local.set $11 global.get $~lib/memory/__stack_pointer - local.get $12 + local.get $11 i32.store offset=4 - local.get $12 + local.get $11 call $"~lib/map/Map#get:entriesCapacity" i32.ge_s if local.get $this - local.set $12 + local.set $11 global.get $~lib/memory/__stack_pointer - local.get $12 + local.get $11 i32.store offset=4 - local.get $12 - local.get $entriesLength + local.get $11 + local.get $initialEntries + local.set $11 + global.get $~lib/memory/__stack_pointer + local.get $11 + i32.store offset=8 + local.get $11 + call $"~lib/array/Array<~lib/map/KeyValue>#get:length" call $"~lib/map/Map#set:bucketsMask" end local.get $this - local.set $12 + local.set $11 global.get $~lib/memory/__stack_pointer - local.get $12 + local.get $11 i32.store offset=4 - local.get $12 + local.get $11 local.get $this - local.set $12 + local.set $11 global.get $~lib/memory/__stack_pointer - local.get $12 + local.get $11 i32.store offset=8 - local.get $12 + local.get $11 call $"~lib/map/Map#get:bucketsMask" i32.const 1 i32.shl @@ -24858,48 +24413,54 @@ local.set $i loop $for-loop|0 local.get $i - local.get $entriesLength + local.get $initialEntries + local.set $11 + global.get $~lib/memory/__stack_pointer + local.get $11 + i32.store offset=4 + local.get $11 + call $"~lib/array/Array<~lib/map/KeyValue>#get:length" i32.lt_s if local.get $initialEntries - local.set $12 + local.set $11 global.get $~lib/memory/__stack_pointer - local.get $12 + local.get $11 i32.store offset=8 - local.get $12 + local.get $11 local.get $i call $"~lib/array/Array<~lib/map/KeyValue>#__get" - local.set $12 + local.set $11 global.get $~lib/memory/__stack_pointer - local.get $12 + local.get $11 i32.store offset=4 - local.get $12 + local.get $11 call $"~lib/map/KeyValue#get:key" local.set $key local.get $initialEntries - local.set $12 + local.set $11 global.get $~lib/memory/__stack_pointer - local.get $12 + local.get $11 i32.store offset=8 - local.get $12 + local.get $11 local.get $i call $"~lib/array/Array<~lib/map/KeyValue>#__get" - local.set $12 + local.set $11 global.get $~lib/memory/__stack_pointer - local.get $12 + local.get $11 i32.store offset=4 - local.get $12 + local.get $11 call $"~lib/map/KeyValue#get:value" local.set $value local.get $key call $~lib/util/hash/HASH local.set $hashCode local.get $this - local.set $12 + local.set $11 global.get $~lib/memory/__stack_pointer - local.get $12 + local.get $11 i32.store offset=4 - local.get $12 + local.get $11 local.get $key local.get $hashCode call $"~lib/map/Map#find" @@ -24914,92 +24475,92 @@ else global.get $~lib/memory/__stack_pointer local.get $this - local.set $12 + local.set $11 global.get $~lib/memory/__stack_pointer - local.get $12 + local.get $11 i32.store offset=4 - local.get $12 + local.get $11 call $"~lib/map/Map#get:entries" local.tee $entries i32.store offset=12 local.get $entries local.get $this - local.set $12 + local.set $11 global.get $~lib/memory/__stack_pointer - local.get $12 + local.get $11 i32.store offset=4 - local.get $12 + local.get $11 local.get $this - local.set $12 + local.set $11 global.get $~lib/memory/__stack_pointer - local.get $12 + local.get $11 i32.store offset=8 - local.get $12 + local.get $11 call $"~lib/map/Map#get:entriesOffset" - local.tee $9 + local.tee $8 i32.const 1 i32.add call $"~lib/map/Map#set:entriesOffset" - local.get $9 + local.get $8 block $"~lib/map/ENTRY_SIZE|inlined.4" (result i32) i32.const 12 br $"~lib/map/ENTRY_SIZE|inlined.4" end i32.mul i32.add - local.set $entry|10 - local.get $entry|10 + local.set $entry|9 + local.get $entry|9 local.get $key call $"~lib/map/MapEntry#set:key" i32.const 0 drop - local.get $entry|10 + local.get $entry|9 local.get $value call $"~lib/map/MapEntry#set:value" i32.const 0 drop local.get $this - local.set $12 + local.set $11 global.get $~lib/memory/__stack_pointer - local.get $12 + local.get $11 i32.store offset=4 - local.get $12 + local.get $11 local.get $this - local.set $12 + local.set $11 global.get $~lib/memory/__stack_pointer - local.get $12 + local.get $11 i32.store offset=8 - local.get $12 + local.get $11 call $"~lib/map/Map#get:entriesCount" i32.const 1 i32.add call $"~lib/map/Map#set:entriesCount" local.get $this - local.set $12 + local.set $11 global.get $~lib/memory/__stack_pointer - local.get $12 + local.get $11 i32.store offset=4 - local.get $12 + local.get $11 call $"~lib/map/Map#get:buckets" local.get $hashCode local.get $this - local.set $12 + local.set $11 global.get $~lib/memory/__stack_pointer - local.get $12 + local.get $11 i32.store offset=4 - local.get $12 + local.get $11 call $"~lib/map/Map#get:bucketsMask" i32.and i32.const 4 i32.mul i32.add local.set $bucketPtrBase - local.get $entry|10 + local.get $entry|9 local.get $bucketPtrBase i32.load call $"~lib/map/MapEntry#set:taggedNext" local.get $bucketPtrBase - local.get $entry|10 + local.get $entry|9 i32.store end local.get $i @@ -25011,63 +24572,12 @@ end end local.get $this - local.set $12 + local.set $11 global.get $~lib/memory/__stack_pointer i32.const 16 i32.add global.set $~lib/memory/__stack_pointer - local.get $12 - ) - (func $"~lib/map/Map#constructor@varargs" (param $this i32) (param $initialEntries i32) (result i32) - (local $2 i32) - (local $3 i32) - global.get $~lib/memory/__stack_pointer - i32.const 12 - i32.sub - global.set $~lib/memory/__stack_pointer - call $~stack_check - global.get $~lib/memory/__stack_pointer - i64.const 0 - i64.store - global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.store offset=8 - block $1of1 - block $0of1 - block $outOfRange - global.get $~argumentsLength - br_table $0of1 $1of1 $outOfRange - end - unreachable - end - global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.const 2 - i32.const 38 - i32.const 1328 - call $~lib/rt/__newArray - local.tee $initialEntries - i32.store - end - local.get $this - local.set $3 - global.get $~lib/memory/__stack_pointer - local.get $3 - i32.store offset=4 - local.get $3 - local.get $initialEntries - local.set $3 - global.get $~lib/memory/__stack_pointer - local.get $3 - i32.store offset=8 - local.get $3 - call $"~lib/map/Map#constructor" - local.set $3 - global.get $~lib/memory/__stack_pointer - i32.const 12 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $3 + local.get $11 ) (func $"~lib/map/Map#has" (param $this i32) (param $key i32) (result i32) (local $2 i32) @@ -25326,9 +24836,9 @@ local.get $entry i32.eqz if - i32.const 800 - i32.const 864 - i32.const 148 + i32.const 768 + i32.const 832 + i32.const 146 i32.const 17 call $~lib/builtins/abort unreachable @@ -26182,17 +25692,16 @@ return ) (func $"~lib/map/Map#constructor" (param $this i32) (param $initialEntries i32) (result i32) - (local $entriesLength i32) (local $i i32) (local $key i32) (local $value i32) (local $hashCode i32) (local $entry i32) (local $entries i32) - (local $9 i32) - (local $entry|10 i32) + (local $8 i32) + (local $entry|9 i32) (local $bucketPtrBase i32) - (local $12 i32) + (local $11 i32) global.get $~lib/memory/__stack_pointer i32.const 16 i32.sub @@ -26215,38 +25724,38 @@ i32.store end local.get $this - local.set $12 + local.set $11 global.get $~lib/memory/__stack_pointer - local.get $12 + local.get $11 i32.store offset=4 - local.get $12 + local.get $11 i32.const 0 i32.const 4 i32.const 4 i32.mul call $~lib/arraybuffer/ArrayBuffer#constructor - local.set $12 + local.set $11 global.get $~lib/memory/__stack_pointer - local.get $12 + local.get $11 i32.store offset=8 - local.get $12 + local.get $11 call $"~lib/map/Map#set:buckets" local.get $this - local.set $12 + local.set $11 global.get $~lib/memory/__stack_pointer - local.get $12 + local.get $11 i32.store offset=4 - local.get $12 + local.get $11 i32.const 4 i32.const 1 i32.sub call $"~lib/map/Map#set:bucketsMask" local.get $this - local.set $12 + local.set $11 global.get $~lib/memory/__stack_pointer - local.get $12 + local.get $11 i32.store offset=4 - local.get $12 + local.get $11 i32.const 0 i32.const 4 block $"~lib/map/ENTRY_SIZE|inlined.5" (result i32) @@ -26255,79 +25764,81 @@ end i32.mul call $~lib/arraybuffer/ArrayBuffer#constructor - local.set $12 + local.set $11 global.get $~lib/memory/__stack_pointer - local.get $12 + local.get $11 i32.store offset=8 - local.get $12 + local.get $11 call $"~lib/map/Map#set:entries" local.get $this - local.set $12 + local.set $11 global.get $~lib/memory/__stack_pointer - local.get $12 + local.get $11 i32.store offset=4 - local.get $12 + local.get $11 i32.const 4 call $"~lib/map/Map#set:entriesCapacity" local.get $this - local.set $12 + local.set $11 global.get $~lib/memory/__stack_pointer - local.get $12 + local.get $11 i32.store offset=4 - local.get $12 + local.get $11 i32.const 0 call $"~lib/map/Map#set:entriesOffset" local.get $this - local.set $12 + local.set $11 global.get $~lib/memory/__stack_pointer - local.get $12 + local.get $11 i32.store offset=4 - local.get $12 + local.get $11 i32.const 0 call $"~lib/map/Map#set:entriesCount" local.get $initialEntries - local.set $12 - global.get $~lib/memory/__stack_pointer - local.get $12 - i32.store offset=4 - local.get $12 - call $"~lib/array/Array<~lib/map/KeyValue>#get:length" - local.set $entriesLength - local.get $entriesLength - i32.const 0 - i32.gt_s if - local.get $entriesLength + local.get $initialEntries + local.set $11 + global.get $~lib/memory/__stack_pointer + local.get $11 + i32.store offset=4 + local.get $11 + call $"~lib/array/Array<~lib/map/KeyValue>#get:length" local.get $this - local.set $12 + local.set $11 global.get $~lib/memory/__stack_pointer - local.get $12 + local.get $11 i32.store offset=4 - local.get $12 + local.get $11 call $"~lib/map/Map#get:entriesCapacity" i32.ge_s if local.get $this - local.set $12 + local.set $11 global.get $~lib/memory/__stack_pointer - local.get $12 + local.get $11 i32.store offset=4 - local.get $12 - local.get $entriesLength + local.get $11 + local.get $initialEntries + local.set $11 + global.get $~lib/memory/__stack_pointer + local.get $11 + i32.store offset=8 + local.get $11 + call $"~lib/array/Array<~lib/map/KeyValue>#get:length" call $"~lib/map/Map#set:bucketsMask" end local.get $this - local.set $12 + local.set $11 global.get $~lib/memory/__stack_pointer - local.get $12 + local.get $11 i32.store offset=4 - local.get $12 + local.get $11 local.get $this - local.set $12 + local.set $11 global.get $~lib/memory/__stack_pointer - local.get $12 + local.get $11 i32.store offset=8 - local.get $12 + local.get $11 call $"~lib/map/Map#get:bucketsMask" i32.const 1 i32.shl @@ -26338,48 +25849,54 @@ local.set $i loop $for-loop|0 local.get $i - local.get $entriesLength + local.get $initialEntries + local.set $11 + global.get $~lib/memory/__stack_pointer + local.get $11 + i32.store offset=4 + local.get $11 + call $"~lib/array/Array<~lib/map/KeyValue>#get:length" i32.lt_s if local.get $initialEntries - local.set $12 + local.set $11 global.get $~lib/memory/__stack_pointer - local.get $12 + local.get $11 i32.store offset=8 - local.get $12 + local.get $11 local.get $i call $"~lib/array/Array<~lib/map/KeyValue>#__get" - local.set $12 + local.set $11 global.get $~lib/memory/__stack_pointer - local.get $12 + local.get $11 i32.store offset=4 - local.get $12 + local.get $11 call $"~lib/map/KeyValue#get:key" local.set $key local.get $initialEntries - local.set $12 + local.set $11 global.get $~lib/memory/__stack_pointer - local.get $12 + local.get $11 i32.store offset=8 - local.get $12 + local.get $11 local.get $i call $"~lib/array/Array<~lib/map/KeyValue>#__get" - local.set $12 + local.set $11 global.get $~lib/memory/__stack_pointer - local.get $12 + local.get $11 i32.store offset=4 - local.get $12 + local.get $11 call $"~lib/map/KeyValue#get:value" local.set $value local.get $key call $~lib/util/hash/HASH local.set $hashCode local.get $this - local.set $12 + local.set $11 global.get $~lib/memory/__stack_pointer - local.get $12 + local.get $11 i32.store offset=4 - local.get $12 + local.get $11 local.get $key local.get $hashCode call $"~lib/map/Map#find" @@ -26394,92 +25911,92 @@ else global.get $~lib/memory/__stack_pointer local.get $this - local.set $12 + local.set $11 global.get $~lib/memory/__stack_pointer - local.get $12 + local.get $11 i32.store offset=4 - local.get $12 + local.get $11 call $"~lib/map/Map#get:entries" local.tee $entries i32.store offset=12 local.get $entries local.get $this - local.set $12 + local.set $11 global.get $~lib/memory/__stack_pointer - local.get $12 + local.get $11 i32.store offset=4 - local.get $12 + local.get $11 local.get $this - local.set $12 + local.set $11 global.get $~lib/memory/__stack_pointer - local.get $12 + local.get $11 i32.store offset=8 - local.get $12 + local.get $11 call $"~lib/map/Map#get:entriesOffset" - local.tee $9 + local.tee $8 i32.const 1 i32.add call $"~lib/map/Map#set:entriesOffset" - local.get $9 + local.get $8 block $"~lib/map/ENTRY_SIZE|inlined.4" (result i32) i32.const 12 br $"~lib/map/ENTRY_SIZE|inlined.4" end i32.mul i32.add - local.set $entry|10 - local.get $entry|10 + local.set $entry|9 + local.get $entry|9 local.get $key call $"~lib/map/MapEntry#set:key" i32.const 0 drop - local.get $entry|10 + local.get $entry|9 local.get $value call $"~lib/map/MapEntry#set:value" i32.const 0 drop local.get $this - local.set $12 + local.set $11 global.get $~lib/memory/__stack_pointer - local.get $12 + local.get $11 i32.store offset=4 - local.get $12 + local.get $11 local.get $this - local.set $12 + local.set $11 global.get $~lib/memory/__stack_pointer - local.get $12 + local.get $11 i32.store offset=8 - local.get $12 + local.get $11 call $"~lib/map/Map#get:entriesCount" i32.const 1 i32.add call $"~lib/map/Map#set:entriesCount" local.get $this - local.set $12 + local.set $11 global.get $~lib/memory/__stack_pointer - local.get $12 + local.get $11 i32.store offset=4 - local.get $12 + local.get $11 call $"~lib/map/Map#get:buckets" local.get $hashCode local.get $this - local.set $12 + local.set $11 global.get $~lib/memory/__stack_pointer - local.get $12 + local.get $11 i32.store offset=4 - local.get $12 + local.get $11 call $"~lib/map/Map#get:bucketsMask" i32.and i32.const 4 i32.mul i32.add local.set $bucketPtrBase - local.get $entry|10 + local.get $entry|9 local.get $bucketPtrBase i32.load call $"~lib/map/MapEntry#set:taggedNext" local.get $bucketPtrBase - local.get $entry|10 + local.get $entry|9 i32.store end local.get $i @@ -26491,63 +26008,12 @@ end end local.get $this - local.set $12 + local.set $11 global.get $~lib/memory/__stack_pointer i32.const 16 i32.add global.set $~lib/memory/__stack_pointer - local.get $12 - ) - (func $"~lib/map/Map#constructor@varargs" (param $this i32) (param $initialEntries i32) (result i32) - (local $2 i32) - (local $3 i32) - global.get $~lib/memory/__stack_pointer - i32.const 12 - i32.sub - global.set $~lib/memory/__stack_pointer - call $~stack_check - global.get $~lib/memory/__stack_pointer - i64.const 0 - i64.store - global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.store offset=8 - block $1of1 - block $0of1 - block $outOfRange - global.get $~argumentsLength - br_table $0of1 $1of1 $outOfRange - end - unreachable - end - global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.const 2 - i32.const 42 - i32.const 1360 - call $~lib/rt/__newArray - local.tee $initialEntries - i32.store - end - local.get $this - local.set $3 - global.get $~lib/memory/__stack_pointer - local.get $3 - i32.store offset=4 - local.get $3 - local.get $initialEntries - local.set $3 - global.get $~lib/memory/__stack_pointer - local.get $3 - i32.store offset=8 - local.get $3 - call $"~lib/map/Map#constructor" - local.set $3 - global.get $~lib/memory/__stack_pointer - i32.const 12 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $3 + local.get $11 ) (func $~lib/array/Array#get:length (param $this i32) (result i32) (local $1 i32) @@ -27218,9 +26684,7 @@ global.get $~lib/memory/__stack_pointer i32.const 0 i32.const 0 - global.set $~argumentsLength - i32.const 0 - call $"~lib/map/Map#constructor@varargs" + call $"~lib/map/Map#constructor" local.tee $map i32.store i32.const 0 @@ -27242,7 +26706,7 @@ i32.eqz if i32.const 0 - i32.const 752 + i32.const 720 i32.const 7 i32.const 5 call $~lib/builtins/abort @@ -27271,7 +26735,7 @@ i32.eqz if i32.const 0 - i32.const 752 + i32.const 720 i32.const 9 i32.const 5 call $~lib/builtins/abort @@ -27292,7 +26756,7 @@ i32.eqz if i32.const 0 - i32.const 752 + i32.const 720 i32.const 10 i32.const 5 call $~lib/builtins/abort @@ -27317,7 +26781,7 @@ i32.eqz if i32.const 0 - i32.const 752 + i32.const 720 i32.const 12 i32.const 3 call $~lib/builtins/abort @@ -27341,7 +26805,7 @@ i32.eqz if i32.const 0 - i32.const 752 + i32.const 720 i32.const 16 i32.const 5 call $~lib/builtins/abort @@ -27362,7 +26826,7 @@ i32.eqz if i32.const 0 - i32.const 752 + i32.const 720 i32.const 17 i32.const 5 call $~lib/builtins/abort @@ -27391,7 +26855,7 @@ i32.eqz if i32.const 0 - i32.const 752 + i32.const 720 i32.const 19 i32.const 5 call $~lib/builtins/abort @@ -27412,7 +26876,7 @@ i32.eqz if i32.const 0 - i32.const 752 + i32.const 720 i32.const 20 i32.const 5 call $~lib/builtins/abort @@ -27437,7 +26901,7 @@ i32.eqz if i32.const 0 - i32.const 752 + i32.const 720 i32.const 22 i32.const 3 call $~lib/builtins/abort @@ -27466,17 +26930,13 @@ global.get $~lib/memory/__stack_pointer i32.const 0 i32.const 0 - global.set $~argumentsLength - i32.const 0 - call $"~lib/map/Map#constructor@varargs" + call $"~lib/map/Map#constructor" local.tee $keyMap i32.store offset=16 global.get $~lib/memory/__stack_pointer i32.const 0 i32.const 0 - global.set $~argumentsLength - i32.const 0 - call $"~lib/map/Map#constructor@varargs" + call $"~lib/map/Map#constructor" local.tee $valMap i32.store offset=20 i32.const 0 @@ -27521,7 +26981,7 @@ i32.eqz if i32.const 0 - i32.const 752 + i32.const 720 i32.const 32 i32.const 5 call $~lib/builtins/abort @@ -27540,7 +27000,7 @@ i32.eqz if i32.const 0 - i32.const 752 + i32.const 720 i32.const 33 i32.const 5 call $~lib/builtins/abort @@ -27589,7 +27049,7 @@ i32.eqz if i32.const 0 - i32.const 752 + i32.const 720 i32.const 37 i32.const 3 call $~lib/builtins/abort @@ -27607,7 +27067,7 @@ i32.eqz if i32.const 0 - i32.const 752 + i32.const 720 i32.const 38 i32.const 3 call $~lib/builtins/abort @@ -27631,7 +27091,7 @@ i32.eqz if i32.const 0 - i32.const 752 + i32.const 720 i32.const 42 i32.const 5 call $~lib/builtins/abort @@ -27652,7 +27112,7 @@ i32.eqz if i32.const 0 - i32.const 752 + i32.const 720 i32.const 43 i32.const 5 call $~lib/builtins/abort @@ -27679,7 +27139,7 @@ i32.eqz if i32.const 0 - i32.const 752 + i32.const 720 i32.const 45 i32.const 5 call $~lib/builtins/abort @@ -27704,7 +27164,7 @@ i32.eqz if i32.const 0 - i32.const 752 + i32.const 720 i32.const 47 i32.const 3 call $~lib/builtins/abort @@ -27729,7 +27189,7 @@ i32.eqz if i32.const 0 - i32.const 752 + i32.const 720 i32.const 51 i32.const 5 call $~lib/builtins/abort @@ -27758,7 +27218,7 @@ i32.eqz if i32.const 0 - i32.const 752 + i32.const 720 i32.const 53 i32.const 5 call $~lib/builtins/abort @@ -27785,7 +27245,7 @@ i32.eqz if i32.const 0 - i32.const 752 + i32.const 720 i32.const 55 i32.const 5 call $~lib/builtins/abort @@ -27810,7 +27270,7 @@ i32.eqz if i32.const 0 - i32.const 752 + i32.const 720 i32.const 57 i32.const 3 call $~lib/builtins/abort @@ -27835,7 +27295,7 @@ i32.eqz if i32.const 0 - i32.const 752 + i32.const 720 i32.const 61 i32.const 3 call $~lib/builtins/abort @@ -27845,7 +27305,7 @@ i32.const 0 i32.const 2 i32.const 38 - i32.const 1392 + i32.const 1040 call $~lib/rt/__newArray local.tee $initialEntries i32.store offset=24 @@ -27923,7 +27383,7 @@ i32.eqz if i32.const 0 - i32.const 752 + i32.const 720 i32.const 74 i32.const 3 call $~lib/builtins/abort @@ -27947,7 +27407,7 @@ i32.eqz if i32.const 0 - i32.const 752 + i32.const 720 i32.const 76 i32.const 5 call $~lib/builtins/abort @@ -27968,7 +27428,7 @@ i32.eqz if i32.const 0 - i32.const 752 + i32.const 720 i32.const 77 i32.const 5 call $~lib/builtins/abort @@ -27995,7 +27455,7 @@ i32.eqz if i32.const 0 - i32.const 752 + i32.const 720 i32.const 79 i32.const 5 call $~lib/builtins/abort @@ -28020,7 +27480,7 @@ i32.eqz if i32.const 0 - i32.const 752 + i32.const 720 i32.const 81 i32.const 3 call $~lib/builtins/abort @@ -28404,17 +27864,16 @@ return ) (func $"~lib/map/Map#constructor" (param $this i32) (param $initialEntries i32) (result i32) - (local $entriesLength i32) (local $i i32) (local $key i64) (local $value i32) (local $hashCode i32) (local $entry i32) (local $entries i32) - (local $9 i32) - (local $entry|10 i32) + (local $8 i32) + (local $entry|9 i32) (local $bucketPtrBase i32) - (local $12 i32) + (local $11 i32) global.get $~lib/memory/__stack_pointer i32.const 16 i32.sub @@ -28437,38 +27896,38 @@ i32.store end local.get $this - local.set $12 + local.set $11 global.get $~lib/memory/__stack_pointer - local.get $12 + local.get $11 i32.store offset=4 - local.get $12 + local.get $11 i32.const 0 i32.const 4 i32.const 4 i32.mul call $~lib/arraybuffer/ArrayBuffer#constructor - local.set $12 + local.set $11 global.get $~lib/memory/__stack_pointer - local.get $12 + local.get $11 i32.store offset=8 - local.get $12 + local.get $11 call $"~lib/map/Map#set:buckets" local.get $this - local.set $12 + local.set $11 global.get $~lib/memory/__stack_pointer - local.get $12 + local.get $11 i32.store offset=4 - local.get $12 + local.get $11 i32.const 4 i32.const 1 i32.sub call $"~lib/map/Map#set:bucketsMask" local.get $this - local.set $12 + local.set $11 global.get $~lib/memory/__stack_pointer - local.get $12 + local.get $11 i32.store offset=4 - local.get $12 + local.get $11 i32.const 0 i32.const 4 block $"~lib/map/ENTRY_SIZE|inlined.5" (result i32) @@ -28477,79 +27936,81 @@ end i32.mul call $~lib/arraybuffer/ArrayBuffer#constructor - local.set $12 + local.set $11 global.get $~lib/memory/__stack_pointer - local.get $12 + local.get $11 i32.store offset=8 - local.get $12 + local.get $11 call $"~lib/map/Map#set:entries" local.get $this - local.set $12 + local.set $11 global.get $~lib/memory/__stack_pointer - local.get $12 + local.get $11 i32.store offset=4 - local.get $12 + local.get $11 i32.const 4 call $"~lib/map/Map#set:entriesCapacity" local.get $this - local.set $12 + local.set $11 global.get $~lib/memory/__stack_pointer - local.get $12 + local.get $11 i32.store offset=4 - local.get $12 + local.get $11 i32.const 0 call $"~lib/map/Map#set:entriesOffset" local.get $this - local.set $12 + local.set $11 global.get $~lib/memory/__stack_pointer - local.get $12 + local.get $11 i32.store offset=4 - local.get $12 + local.get $11 i32.const 0 call $"~lib/map/Map#set:entriesCount" local.get $initialEntries - local.set $12 - global.get $~lib/memory/__stack_pointer - local.get $12 - i32.store offset=4 - local.get $12 - call $"~lib/array/Array<~lib/map/KeyValue>#get:length" - local.set $entriesLength - local.get $entriesLength - i32.const 0 - i32.gt_s if - local.get $entriesLength + local.get $initialEntries + local.set $11 + global.get $~lib/memory/__stack_pointer + local.get $11 + i32.store offset=4 + local.get $11 + call $"~lib/array/Array<~lib/map/KeyValue>#get:length" local.get $this - local.set $12 + local.set $11 global.get $~lib/memory/__stack_pointer - local.get $12 + local.get $11 i32.store offset=4 - local.get $12 + local.get $11 call $"~lib/map/Map#get:entriesCapacity" i32.ge_s if local.get $this - local.set $12 + local.set $11 global.get $~lib/memory/__stack_pointer - local.get $12 + local.get $11 i32.store offset=4 - local.get $12 - local.get $entriesLength + local.get $11 + local.get $initialEntries + local.set $11 + global.get $~lib/memory/__stack_pointer + local.get $11 + i32.store offset=8 + local.get $11 + call $"~lib/array/Array<~lib/map/KeyValue>#get:length" call $"~lib/map/Map#set:bucketsMask" end local.get $this - local.set $12 + local.set $11 global.get $~lib/memory/__stack_pointer - local.get $12 + local.get $11 i32.store offset=4 - local.get $12 + local.get $11 local.get $this - local.set $12 + local.set $11 global.get $~lib/memory/__stack_pointer - local.get $12 + local.get $11 i32.store offset=8 - local.get $12 + local.get $11 call $"~lib/map/Map#get:bucketsMask" i32.const 1 i32.shl @@ -28560,48 +28021,54 @@ local.set $i loop $for-loop|0 local.get $i - local.get $entriesLength + local.get $initialEntries + local.set $11 + global.get $~lib/memory/__stack_pointer + local.get $11 + i32.store offset=4 + local.get $11 + call $"~lib/array/Array<~lib/map/KeyValue>#get:length" i32.lt_s if local.get $initialEntries - local.set $12 + local.set $11 global.get $~lib/memory/__stack_pointer - local.get $12 + local.get $11 i32.store offset=8 - local.get $12 + local.get $11 local.get $i call $"~lib/array/Array<~lib/map/KeyValue>#__get" - local.set $12 + local.set $11 global.get $~lib/memory/__stack_pointer - local.get $12 + local.get $11 i32.store offset=4 - local.get $12 + local.get $11 call $"~lib/map/KeyValue#get:key" local.set $key local.get $initialEntries - local.set $12 + local.set $11 global.get $~lib/memory/__stack_pointer - local.get $12 + local.get $11 i32.store offset=8 - local.get $12 + local.get $11 local.get $i call $"~lib/array/Array<~lib/map/KeyValue>#__get" - local.set $12 + local.set $11 global.get $~lib/memory/__stack_pointer - local.get $12 + local.get $11 i32.store offset=4 - local.get $12 + local.get $11 call $"~lib/map/KeyValue#get:value" local.set $value local.get $key call $~lib/util/hash/HASH local.set $hashCode local.get $this - local.set $12 + local.set $11 global.get $~lib/memory/__stack_pointer - local.get $12 + local.get $11 i32.store offset=4 - local.get $12 + local.get $11 local.get $key local.get $hashCode call $"~lib/map/Map#find" @@ -28616,92 +28083,92 @@ else global.get $~lib/memory/__stack_pointer local.get $this - local.set $12 + local.set $11 global.get $~lib/memory/__stack_pointer - local.get $12 + local.get $11 i32.store offset=4 - local.get $12 + local.get $11 call $"~lib/map/Map#get:entries" local.tee $entries i32.store offset=12 local.get $entries local.get $this - local.set $12 + local.set $11 global.get $~lib/memory/__stack_pointer - local.get $12 + local.get $11 i32.store offset=4 - local.get $12 + local.get $11 local.get $this - local.set $12 + local.set $11 global.get $~lib/memory/__stack_pointer - local.get $12 + local.get $11 i32.store offset=8 - local.get $12 + local.get $11 call $"~lib/map/Map#get:entriesOffset" - local.tee $9 + local.tee $8 i32.const 1 i32.add call $"~lib/map/Map#set:entriesOffset" - local.get $9 + local.get $8 block $"~lib/map/ENTRY_SIZE|inlined.4" (result i32) i32.const 16 br $"~lib/map/ENTRY_SIZE|inlined.4" end i32.mul i32.add - local.set $entry|10 - local.get $entry|10 + local.set $entry|9 + local.get $entry|9 local.get $key call $"~lib/map/MapEntry#set:key" i32.const 0 drop - local.get $entry|10 + local.get $entry|9 local.get $value call $"~lib/map/MapEntry#set:value" i32.const 0 drop local.get $this - local.set $12 + local.set $11 global.get $~lib/memory/__stack_pointer - local.get $12 + local.get $11 i32.store offset=4 - local.get $12 + local.get $11 local.get $this - local.set $12 + local.set $11 global.get $~lib/memory/__stack_pointer - local.get $12 + local.get $11 i32.store offset=8 - local.get $12 + local.get $11 call $"~lib/map/Map#get:entriesCount" i32.const 1 i32.add call $"~lib/map/Map#set:entriesCount" local.get $this - local.set $12 + local.set $11 global.get $~lib/memory/__stack_pointer - local.get $12 + local.get $11 i32.store offset=4 - local.get $12 + local.get $11 call $"~lib/map/Map#get:buckets" local.get $hashCode local.get $this - local.set $12 + local.set $11 global.get $~lib/memory/__stack_pointer - local.get $12 + local.get $11 i32.store offset=4 - local.get $12 + local.get $11 call $"~lib/map/Map#get:bucketsMask" i32.and i32.const 4 i32.mul i32.add local.set $bucketPtrBase - local.get $entry|10 + local.get $entry|9 local.get $bucketPtrBase i32.load call $"~lib/map/MapEntry#set:taggedNext" local.get $bucketPtrBase - local.get $entry|10 + local.get $entry|9 i32.store end local.get $i @@ -28713,63 +28180,12 @@ end end local.get $this - local.set $12 + local.set $11 global.get $~lib/memory/__stack_pointer i32.const 16 i32.add global.set $~lib/memory/__stack_pointer - local.get $12 - ) - (func $"~lib/map/Map#constructor@varargs" (param $this i32) (param $initialEntries i32) (result i32) - (local $2 i32) - (local $3 i32) - global.get $~lib/memory/__stack_pointer - i32.const 12 - i32.sub - global.set $~lib/memory/__stack_pointer - call $~stack_check - global.get $~lib/memory/__stack_pointer - i64.const 0 - i64.store - global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.store offset=8 - block $1of1 - block $0of1 - block $outOfRange - global.get $~argumentsLength - br_table $0of1 $1of1 $outOfRange - end - unreachable - end - global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.const 2 - i32.const 45 - i32.const 1424 - call $~lib/rt/__newArray - local.tee $initialEntries - i32.store - end - local.get $this - local.set $3 - global.get $~lib/memory/__stack_pointer - local.get $3 - i32.store offset=4 - local.get $3 - local.get $initialEntries - local.set $3 - global.get $~lib/memory/__stack_pointer - local.get $3 - i32.store offset=8 - local.get $3 - call $"~lib/map/Map#constructor" - local.set $3 - global.get $~lib/memory/__stack_pointer - i32.const 12 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $3 + local.get $11 ) (func $"~lib/map/Map#has" (param $this i32) (param $key i64) (result i32) (local $2 i32) @@ -29028,9 +28444,9 @@ local.get $entry i32.eqz if - i32.const 800 - i32.const 864 - i32.const 148 + i32.const 768 + i32.const 832 + i32.const 146 i32.const 17 call $~lib/builtins/abort unreachable @@ -29884,17 +29300,16 @@ return ) (func $"~lib/map/Map#constructor" (param $this i32) (param $initialEntries i32) (result i32) - (local $entriesLength i32) (local $i i32) (local $key i64) (local $value i64) (local $hashCode i32) (local $entry i32) (local $entries i32) - (local $9 i32) - (local $entry|10 i32) + (local $8 i32) + (local $entry|9 i32) (local $bucketPtrBase i32) - (local $12 i32) + (local $11 i32) global.get $~lib/memory/__stack_pointer i32.const 16 i32.sub @@ -29917,38 +29332,38 @@ i32.store end local.get $this - local.set $12 + local.set $11 global.get $~lib/memory/__stack_pointer - local.get $12 + local.get $11 i32.store offset=4 - local.get $12 + local.get $11 i32.const 0 i32.const 4 i32.const 4 i32.mul call $~lib/arraybuffer/ArrayBuffer#constructor - local.set $12 + local.set $11 global.get $~lib/memory/__stack_pointer - local.get $12 + local.get $11 i32.store offset=8 - local.get $12 + local.get $11 call $"~lib/map/Map#set:buckets" local.get $this - local.set $12 + local.set $11 global.get $~lib/memory/__stack_pointer - local.get $12 + local.get $11 i32.store offset=4 - local.get $12 + local.get $11 i32.const 4 i32.const 1 i32.sub call $"~lib/map/Map#set:bucketsMask" local.get $this - local.set $12 + local.set $11 global.get $~lib/memory/__stack_pointer - local.get $12 + local.get $11 i32.store offset=4 - local.get $12 + local.get $11 i32.const 0 i32.const 4 block $"~lib/map/ENTRY_SIZE|inlined.5" (result i32) @@ -29957,79 +29372,81 @@ end i32.mul call $~lib/arraybuffer/ArrayBuffer#constructor - local.set $12 + local.set $11 global.get $~lib/memory/__stack_pointer - local.get $12 + local.get $11 i32.store offset=8 - local.get $12 + local.get $11 call $"~lib/map/Map#set:entries" local.get $this - local.set $12 + local.set $11 global.get $~lib/memory/__stack_pointer - local.get $12 + local.get $11 i32.store offset=4 - local.get $12 + local.get $11 i32.const 4 call $"~lib/map/Map#set:entriesCapacity" local.get $this - local.set $12 + local.set $11 global.get $~lib/memory/__stack_pointer - local.get $12 + local.get $11 i32.store offset=4 - local.get $12 + local.get $11 i32.const 0 call $"~lib/map/Map#set:entriesOffset" local.get $this - local.set $12 + local.set $11 global.get $~lib/memory/__stack_pointer - local.get $12 + local.get $11 i32.store offset=4 - local.get $12 + local.get $11 i32.const 0 call $"~lib/map/Map#set:entriesCount" local.get $initialEntries - local.set $12 - global.get $~lib/memory/__stack_pointer - local.get $12 - i32.store offset=4 - local.get $12 - call $"~lib/array/Array<~lib/map/KeyValue>#get:length" - local.set $entriesLength - local.get $entriesLength - i32.const 0 - i32.gt_s if - local.get $entriesLength + local.get $initialEntries + local.set $11 + global.get $~lib/memory/__stack_pointer + local.get $11 + i32.store offset=4 + local.get $11 + call $"~lib/array/Array<~lib/map/KeyValue>#get:length" local.get $this - local.set $12 + local.set $11 global.get $~lib/memory/__stack_pointer - local.get $12 + local.get $11 i32.store offset=4 - local.get $12 + local.get $11 call $"~lib/map/Map#get:entriesCapacity" i32.ge_s if local.get $this - local.set $12 + local.set $11 global.get $~lib/memory/__stack_pointer - local.get $12 + local.get $11 i32.store offset=4 - local.get $12 - local.get $entriesLength + local.get $11 + local.get $initialEntries + local.set $11 + global.get $~lib/memory/__stack_pointer + local.get $11 + i32.store offset=8 + local.get $11 + call $"~lib/array/Array<~lib/map/KeyValue>#get:length" call $"~lib/map/Map#set:bucketsMask" end local.get $this - local.set $12 + local.set $11 global.get $~lib/memory/__stack_pointer - local.get $12 + local.get $11 i32.store offset=4 - local.get $12 + local.get $11 local.get $this - local.set $12 + local.set $11 global.get $~lib/memory/__stack_pointer - local.get $12 + local.get $11 i32.store offset=8 - local.get $12 + local.get $11 call $"~lib/map/Map#get:bucketsMask" i32.const 1 i32.shl @@ -30040,48 +29457,54 @@ local.set $i loop $for-loop|0 local.get $i - local.get $entriesLength + local.get $initialEntries + local.set $11 + global.get $~lib/memory/__stack_pointer + local.get $11 + i32.store offset=4 + local.get $11 + call $"~lib/array/Array<~lib/map/KeyValue>#get:length" i32.lt_s if local.get $initialEntries - local.set $12 + local.set $11 global.get $~lib/memory/__stack_pointer - local.get $12 + local.get $11 i32.store offset=8 - local.get $12 + local.get $11 local.get $i call $"~lib/array/Array<~lib/map/KeyValue>#__get" - local.set $12 + local.set $11 global.get $~lib/memory/__stack_pointer - local.get $12 + local.get $11 i32.store offset=4 - local.get $12 + local.get $11 call $"~lib/map/KeyValue#get:key" local.set $key local.get $initialEntries - local.set $12 + local.set $11 global.get $~lib/memory/__stack_pointer - local.get $12 + local.get $11 i32.store offset=8 - local.get $12 + local.get $11 local.get $i call $"~lib/array/Array<~lib/map/KeyValue>#__get" - local.set $12 + local.set $11 global.get $~lib/memory/__stack_pointer - local.get $12 + local.get $11 i32.store offset=4 - local.get $12 + local.get $11 call $"~lib/map/KeyValue#get:value" local.set $value local.get $key call $~lib/util/hash/HASH local.set $hashCode local.get $this - local.set $12 + local.set $11 global.get $~lib/memory/__stack_pointer - local.get $12 + local.get $11 i32.store offset=4 - local.get $12 + local.get $11 local.get $key local.get $hashCode call $"~lib/map/Map#find" @@ -30096,92 +29519,92 @@ else global.get $~lib/memory/__stack_pointer local.get $this - local.set $12 + local.set $11 global.get $~lib/memory/__stack_pointer - local.get $12 + local.get $11 i32.store offset=4 - local.get $12 + local.get $11 call $"~lib/map/Map#get:entries" local.tee $entries i32.store offset=12 local.get $entries local.get $this - local.set $12 + local.set $11 global.get $~lib/memory/__stack_pointer - local.get $12 + local.get $11 i32.store offset=4 - local.get $12 + local.get $11 local.get $this - local.set $12 + local.set $11 global.get $~lib/memory/__stack_pointer - local.get $12 + local.get $11 i32.store offset=8 - local.get $12 + local.get $11 call $"~lib/map/Map#get:entriesOffset" - local.tee $9 + local.tee $8 i32.const 1 i32.add call $"~lib/map/Map#set:entriesOffset" - local.get $9 + local.get $8 block $"~lib/map/ENTRY_SIZE|inlined.4" (result i32) i32.const 24 br $"~lib/map/ENTRY_SIZE|inlined.4" end i32.mul i32.add - local.set $entry|10 - local.get $entry|10 + local.set $entry|9 + local.get $entry|9 local.get $key call $"~lib/map/MapEntry#set:key" i32.const 0 drop - local.get $entry|10 + local.get $entry|9 local.get $value call $"~lib/map/MapEntry#set:value" i32.const 0 drop local.get $this - local.set $12 + local.set $11 global.get $~lib/memory/__stack_pointer - local.get $12 + local.get $11 i32.store offset=4 - local.get $12 + local.get $11 local.get $this - local.set $12 + local.set $11 global.get $~lib/memory/__stack_pointer - local.get $12 + local.get $11 i32.store offset=8 - local.get $12 + local.get $11 call $"~lib/map/Map#get:entriesCount" i32.const 1 i32.add call $"~lib/map/Map#set:entriesCount" local.get $this - local.set $12 + local.set $11 global.get $~lib/memory/__stack_pointer - local.get $12 + local.get $11 i32.store offset=4 - local.get $12 + local.get $11 call $"~lib/map/Map#get:buckets" local.get $hashCode local.get $this - local.set $12 + local.set $11 global.get $~lib/memory/__stack_pointer - local.get $12 + local.get $11 i32.store offset=4 - local.get $12 + local.get $11 call $"~lib/map/Map#get:bucketsMask" i32.and i32.const 4 i32.mul i32.add local.set $bucketPtrBase - local.get $entry|10 + local.get $entry|9 local.get $bucketPtrBase i32.load call $"~lib/map/MapEntry#set:taggedNext" local.get $bucketPtrBase - local.get $entry|10 + local.get $entry|9 i32.store end local.get $i @@ -30193,63 +29616,12 @@ end end local.get $this - local.set $12 + local.set $11 global.get $~lib/memory/__stack_pointer i32.const 16 i32.add global.set $~lib/memory/__stack_pointer - local.get $12 - ) - (func $"~lib/map/Map#constructor@varargs" (param $this i32) (param $initialEntries i32) (result i32) - (local $2 i32) - (local $3 i32) - global.get $~lib/memory/__stack_pointer - i32.const 12 - i32.sub - global.set $~lib/memory/__stack_pointer - call $~stack_check - global.get $~lib/memory/__stack_pointer - i64.const 0 - i64.store - global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.store offset=8 - block $1of1 - block $0of1 - block $outOfRange - global.get $~argumentsLength - br_table $0of1 $1of1 $outOfRange - end - unreachable - end - global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.const 2 - i32.const 49 - i32.const 1456 - call $~lib/rt/__newArray - local.tee $initialEntries - i32.store - end - local.get $this - local.set $3 - global.get $~lib/memory/__stack_pointer - local.get $3 - i32.store offset=4 - local.get $3 - local.get $initialEntries - local.set $3 - global.get $~lib/memory/__stack_pointer - local.get $3 - i32.store offset=8 - local.get $3 - call $"~lib/map/Map#constructor" - local.set $3 - global.get $~lib/memory/__stack_pointer - i32.const 12 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $3 + local.get $11 ) (func $~lib/array/Array#get:length (param $this i32) (result i32) (local $1 i32) @@ -30921,9 +30293,7 @@ global.get $~lib/memory/__stack_pointer i32.const 0 i32.const 0 - global.set $~argumentsLength - i32.const 0 - call $"~lib/map/Map#constructor@varargs" + call $"~lib/map/Map#constructor" local.tee $map i32.store i64.const 0 @@ -30945,7 +30315,7 @@ i32.eqz if i32.const 0 - i32.const 752 + i32.const 720 i32.const 7 i32.const 5 call $~lib/builtins/abort @@ -30975,7 +30345,7 @@ i32.eqz if i32.const 0 - i32.const 752 + i32.const 720 i32.const 9 i32.const 5 call $~lib/builtins/abort @@ -30997,7 +30367,7 @@ i32.eqz if i32.const 0 - i32.const 752 + i32.const 720 i32.const 10 i32.const 5 call $~lib/builtins/abort @@ -31022,7 +30392,7 @@ i32.eqz if i32.const 0 - i32.const 752 + i32.const 720 i32.const 12 i32.const 3 call $~lib/builtins/abort @@ -31046,7 +30416,7 @@ i32.eqz if i32.const 0 - i32.const 752 + i32.const 720 i32.const 16 i32.const 5 call $~lib/builtins/abort @@ -31068,7 +30438,7 @@ i32.eqz if i32.const 0 - i32.const 752 + i32.const 720 i32.const 17 i32.const 5 call $~lib/builtins/abort @@ -31098,7 +30468,7 @@ i32.eqz if i32.const 0 - i32.const 752 + i32.const 720 i32.const 19 i32.const 5 call $~lib/builtins/abort @@ -31120,7 +30490,7 @@ i32.eqz if i32.const 0 - i32.const 752 + i32.const 720 i32.const 20 i32.const 5 call $~lib/builtins/abort @@ -31145,7 +30515,7 @@ i32.eqz if i32.const 0 - i32.const 752 + i32.const 720 i32.const 22 i32.const 3 call $~lib/builtins/abort @@ -31174,17 +30544,13 @@ global.get $~lib/memory/__stack_pointer i32.const 0 i32.const 0 - global.set $~argumentsLength - i32.const 0 - call $"~lib/map/Map#constructor@varargs" + call $"~lib/map/Map#constructor" local.tee $keyMap i32.store offset=16 global.get $~lib/memory/__stack_pointer i32.const 0 i32.const 0 - global.set $~argumentsLength - i32.const 0 - call $"~lib/map/Map#constructor@varargs" + call $"~lib/map/Map#constructor" local.tee $valMap i32.store offset=20 i32.const 0 @@ -31229,7 +30595,7 @@ i32.eqz if i32.const 0 - i32.const 752 + i32.const 720 i32.const 32 i32.const 5 call $~lib/builtins/abort @@ -31249,7 +30615,7 @@ i32.eqz if i32.const 0 - i32.const 752 + i32.const 720 i32.const 33 i32.const 5 call $~lib/builtins/abort @@ -31298,7 +30664,7 @@ i32.eqz if i32.const 0 - i32.const 752 + i32.const 720 i32.const 37 i32.const 3 call $~lib/builtins/abort @@ -31316,7 +30682,7 @@ i32.eqz if i32.const 0 - i32.const 752 + i32.const 720 i32.const 38 i32.const 3 call $~lib/builtins/abort @@ -31340,7 +30706,7 @@ i32.eqz if i32.const 0 - i32.const 752 + i32.const 720 i32.const 42 i32.const 5 call $~lib/builtins/abort @@ -31362,7 +30728,7 @@ i32.eqz if i32.const 0 - i32.const 752 + i32.const 720 i32.const 43 i32.const 5 call $~lib/builtins/abort @@ -31389,7 +30755,7 @@ i32.eqz if i32.const 0 - i32.const 752 + i32.const 720 i32.const 45 i32.const 5 call $~lib/builtins/abort @@ -31414,7 +30780,7 @@ i32.eqz if i32.const 0 - i32.const 752 + i32.const 720 i32.const 47 i32.const 3 call $~lib/builtins/abort @@ -31439,7 +30805,7 @@ i32.eqz if i32.const 0 - i32.const 752 + i32.const 720 i32.const 51 i32.const 5 call $~lib/builtins/abort @@ -31469,7 +30835,7 @@ i32.eqz if i32.const 0 - i32.const 752 + i32.const 720 i32.const 53 i32.const 5 call $~lib/builtins/abort @@ -31496,7 +30862,7 @@ i32.eqz if i32.const 0 - i32.const 752 + i32.const 720 i32.const 55 i32.const 5 call $~lib/builtins/abort @@ -31521,7 +30887,7 @@ i32.eqz if i32.const 0 - i32.const 752 + i32.const 720 i32.const 57 i32.const 3 call $~lib/builtins/abort @@ -31546,7 +30912,7 @@ i32.eqz if i32.const 0 - i32.const 752 + i32.const 720 i32.const 61 i32.const 3 call $~lib/builtins/abort @@ -31556,7 +30922,7 @@ i32.const 0 i32.const 2 i32.const 45 - i32.const 1488 + i32.const 1072 call $~lib/rt/__newArray local.tee $initialEntries i32.store offset=24 @@ -31635,7 +31001,7 @@ i32.eqz if i32.const 0 - i32.const 752 + i32.const 720 i32.const 74 i32.const 3 call $~lib/builtins/abort @@ -31659,7 +31025,7 @@ i32.eqz if i32.const 0 - i32.const 752 + i32.const 720 i32.const 76 i32.const 5 call $~lib/builtins/abort @@ -31681,7 +31047,7 @@ i32.eqz if i32.const 0 - i32.const 752 + i32.const 720 i32.const 77 i32.const 5 call $~lib/builtins/abort @@ -31708,7 +31074,7 @@ i32.eqz if i32.const 0 - i32.const 752 + i32.const 720 i32.const 79 i32.const 5 call $~lib/builtins/abort @@ -31733,7 +31099,7 @@ i32.eqz if i32.const 0 - i32.const 752 + i32.const 720 i32.const 81 i32.const 3 call $~lib/builtins/abort @@ -32117,17 +31483,16 @@ return ) (func $"~lib/map/Map#constructor" (param $this i32) (param $initialEntries i32) (result i32) - (local $entriesLength i32) (local $i i32) (local $key i64) (local $value i32) (local $hashCode i32) (local $entry i32) (local $entries i32) - (local $9 i32) - (local $entry|10 i32) + (local $8 i32) + (local $entry|9 i32) (local $bucketPtrBase i32) - (local $12 i32) + (local $11 i32) global.get $~lib/memory/__stack_pointer i32.const 16 i32.sub @@ -32150,38 +31515,38 @@ i32.store end local.get $this - local.set $12 + local.set $11 global.get $~lib/memory/__stack_pointer - local.get $12 + local.get $11 i32.store offset=4 - local.get $12 + local.get $11 i32.const 0 i32.const 4 i32.const 4 i32.mul call $~lib/arraybuffer/ArrayBuffer#constructor - local.set $12 + local.set $11 global.get $~lib/memory/__stack_pointer - local.get $12 + local.get $11 i32.store offset=8 - local.get $12 + local.get $11 call $"~lib/map/Map#set:buckets" local.get $this - local.set $12 + local.set $11 global.get $~lib/memory/__stack_pointer - local.get $12 + local.get $11 i32.store offset=4 - local.get $12 + local.get $11 i32.const 4 i32.const 1 i32.sub call $"~lib/map/Map#set:bucketsMask" local.get $this - local.set $12 + local.set $11 global.get $~lib/memory/__stack_pointer - local.get $12 + local.get $11 i32.store offset=4 - local.get $12 + local.get $11 i32.const 0 i32.const 4 block $"~lib/map/ENTRY_SIZE|inlined.5" (result i32) @@ -32190,79 +31555,81 @@ end i32.mul call $~lib/arraybuffer/ArrayBuffer#constructor - local.set $12 + local.set $11 global.get $~lib/memory/__stack_pointer - local.get $12 + local.get $11 i32.store offset=8 - local.get $12 + local.get $11 call $"~lib/map/Map#set:entries" local.get $this - local.set $12 + local.set $11 global.get $~lib/memory/__stack_pointer - local.get $12 + local.get $11 i32.store offset=4 - local.get $12 + local.get $11 i32.const 4 call $"~lib/map/Map#set:entriesCapacity" local.get $this - local.set $12 + local.set $11 global.get $~lib/memory/__stack_pointer - local.get $12 + local.get $11 i32.store offset=4 - local.get $12 + local.get $11 i32.const 0 call $"~lib/map/Map#set:entriesOffset" local.get $this - local.set $12 + local.set $11 global.get $~lib/memory/__stack_pointer - local.get $12 + local.get $11 i32.store offset=4 - local.get $12 + local.get $11 i32.const 0 call $"~lib/map/Map#set:entriesCount" local.get $initialEntries - local.set $12 - global.get $~lib/memory/__stack_pointer - local.get $12 - i32.store offset=4 - local.get $12 - call $"~lib/array/Array<~lib/map/KeyValue>#get:length" - local.set $entriesLength - local.get $entriesLength - i32.const 0 - i32.gt_s if - local.get $entriesLength + local.get $initialEntries + local.set $11 + global.get $~lib/memory/__stack_pointer + local.get $11 + i32.store offset=4 + local.get $11 + call $"~lib/array/Array<~lib/map/KeyValue>#get:length" local.get $this - local.set $12 + local.set $11 global.get $~lib/memory/__stack_pointer - local.get $12 + local.get $11 i32.store offset=4 - local.get $12 + local.get $11 call $"~lib/map/Map#get:entriesCapacity" i32.ge_s if local.get $this - local.set $12 + local.set $11 global.get $~lib/memory/__stack_pointer - local.get $12 + local.get $11 i32.store offset=4 - local.get $12 - local.get $entriesLength + local.get $11 + local.get $initialEntries + local.set $11 + global.get $~lib/memory/__stack_pointer + local.get $11 + i32.store offset=8 + local.get $11 + call $"~lib/array/Array<~lib/map/KeyValue>#get:length" call $"~lib/map/Map#set:bucketsMask" end local.get $this - local.set $12 + local.set $11 global.get $~lib/memory/__stack_pointer - local.get $12 + local.get $11 i32.store offset=4 - local.get $12 + local.get $11 local.get $this - local.set $12 + local.set $11 global.get $~lib/memory/__stack_pointer - local.get $12 + local.get $11 i32.store offset=8 - local.get $12 + local.get $11 call $"~lib/map/Map#get:bucketsMask" i32.const 1 i32.shl @@ -32273,48 +31640,54 @@ local.set $i loop $for-loop|0 local.get $i - local.get $entriesLength + local.get $initialEntries + local.set $11 + global.get $~lib/memory/__stack_pointer + local.get $11 + i32.store offset=4 + local.get $11 + call $"~lib/array/Array<~lib/map/KeyValue>#get:length" i32.lt_s if local.get $initialEntries - local.set $12 + local.set $11 global.get $~lib/memory/__stack_pointer - local.get $12 + local.get $11 i32.store offset=8 - local.get $12 + local.get $11 local.get $i call $"~lib/array/Array<~lib/map/KeyValue>#__get" - local.set $12 + local.set $11 global.get $~lib/memory/__stack_pointer - local.get $12 + local.get $11 i32.store offset=4 - local.get $12 + local.get $11 call $"~lib/map/KeyValue#get:key" local.set $key local.get $initialEntries - local.set $12 + local.set $11 global.get $~lib/memory/__stack_pointer - local.get $12 + local.get $11 i32.store offset=8 - local.get $12 + local.get $11 local.get $i call $"~lib/array/Array<~lib/map/KeyValue>#__get" - local.set $12 + local.set $11 global.get $~lib/memory/__stack_pointer - local.get $12 + local.get $11 i32.store offset=4 - local.get $12 + local.get $11 call $"~lib/map/KeyValue#get:value" local.set $value local.get $key call $~lib/util/hash/HASH local.set $hashCode local.get $this - local.set $12 + local.set $11 global.get $~lib/memory/__stack_pointer - local.get $12 + local.get $11 i32.store offset=4 - local.get $12 + local.get $11 local.get $key local.get $hashCode call $"~lib/map/Map#find" @@ -32329,92 +31702,92 @@ else global.get $~lib/memory/__stack_pointer local.get $this - local.set $12 + local.set $11 global.get $~lib/memory/__stack_pointer - local.get $12 + local.get $11 i32.store offset=4 - local.get $12 + local.get $11 call $"~lib/map/Map#get:entries" local.tee $entries i32.store offset=12 local.get $entries local.get $this - local.set $12 + local.set $11 global.get $~lib/memory/__stack_pointer - local.get $12 + local.get $11 i32.store offset=4 - local.get $12 + local.get $11 local.get $this - local.set $12 + local.set $11 global.get $~lib/memory/__stack_pointer - local.get $12 + local.get $11 i32.store offset=8 - local.get $12 + local.get $11 call $"~lib/map/Map#get:entriesOffset" - local.tee $9 + local.tee $8 i32.const 1 i32.add call $"~lib/map/Map#set:entriesOffset" - local.get $9 + local.get $8 block $"~lib/map/ENTRY_SIZE|inlined.4" (result i32) i32.const 16 br $"~lib/map/ENTRY_SIZE|inlined.4" end i32.mul i32.add - local.set $entry|10 - local.get $entry|10 + local.set $entry|9 + local.get $entry|9 local.get $key call $"~lib/map/MapEntry#set:key" i32.const 0 drop - local.get $entry|10 + local.get $entry|9 local.get $value call $"~lib/map/MapEntry#set:value" i32.const 0 drop local.get $this - local.set $12 + local.set $11 global.get $~lib/memory/__stack_pointer - local.get $12 + local.get $11 i32.store offset=4 - local.get $12 + local.get $11 local.get $this - local.set $12 + local.set $11 global.get $~lib/memory/__stack_pointer - local.get $12 + local.get $11 i32.store offset=8 - local.get $12 + local.get $11 call $"~lib/map/Map#get:entriesCount" i32.const 1 i32.add call $"~lib/map/Map#set:entriesCount" local.get $this - local.set $12 + local.set $11 global.get $~lib/memory/__stack_pointer - local.get $12 + local.get $11 i32.store offset=4 - local.get $12 + local.get $11 call $"~lib/map/Map#get:buckets" local.get $hashCode local.get $this - local.set $12 + local.set $11 global.get $~lib/memory/__stack_pointer - local.get $12 + local.get $11 i32.store offset=4 - local.get $12 + local.get $11 call $"~lib/map/Map#get:bucketsMask" i32.and i32.const 4 i32.mul i32.add local.set $bucketPtrBase - local.get $entry|10 + local.get $entry|9 local.get $bucketPtrBase i32.load call $"~lib/map/MapEntry#set:taggedNext" local.get $bucketPtrBase - local.get $entry|10 + local.get $entry|9 i32.store end local.get $i @@ -32426,63 +31799,12 @@ end end local.get $this - local.set $12 + local.set $11 global.get $~lib/memory/__stack_pointer i32.const 16 i32.add global.set $~lib/memory/__stack_pointer - local.get $12 - ) - (func $"~lib/map/Map#constructor@varargs" (param $this i32) (param $initialEntries i32) (result i32) - (local $2 i32) - (local $3 i32) - global.get $~lib/memory/__stack_pointer - i32.const 12 - i32.sub - global.set $~lib/memory/__stack_pointer - call $~stack_check - global.get $~lib/memory/__stack_pointer - i64.const 0 - i64.store - global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.store offset=8 - block $1of1 - block $0of1 - block $outOfRange - global.get $~argumentsLength - br_table $0of1 $1of1 $outOfRange - end - unreachable - end - global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.const 2 - i32.const 52 - i32.const 1520 - call $~lib/rt/__newArray - local.tee $initialEntries - i32.store - end - local.get $this - local.set $3 - global.get $~lib/memory/__stack_pointer - local.get $3 - i32.store offset=4 - local.get $3 - local.get $initialEntries - local.set $3 - global.get $~lib/memory/__stack_pointer - local.get $3 - i32.store offset=8 - local.get $3 - call $"~lib/map/Map#constructor" - local.set $3 - global.get $~lib/memory/__stack_pointer - i32.const 12 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $3 + local.get $11 ) (func $"~lib/map/Map#has" (param $this i32) (param $key i64) (result i32) (local $2 i32) @@ -32741,9 +32063,9 @@ local.get $entry i32.eqz if - i32.const 800 - i32.const 864 - i32.const 148 + i32.const 768 + i32.const 832 + i32.const 146 i32.const 17 call $~lib/builtins/abort unreachable @@ -33597,17 +32919,16 @@ return ) (func $"~lib/map/Map#constructor" (param $this i32) (param $initialEntries i32) (result i32) - (local $entriesLength i32) (local $i i32) (local $key i64) (local $value i64) (local $hashCode i32) (local $entry i32) (local $entries i32) - (local $9 i32) - (local $entry|10 i32) + (local $8 i32) + (local $entry|9 i32) (local $bucketPtrBase i32) - (local $12 i32) + (local $11 i32) global.get $~lib/memory/__stack_pointer i32.const 16 i32.sub @@ -33630,38 +32951,38 @@ i32.store end local.get $this - local.set $12 + local.set $11 global.get $~lib/memory/__stack_pointer - local.get $12 + local.get $11 i32.store offset=4 - local.get $12 + local.get $11 i32.const 0 i32.const 4 i32.const 4 i32.mul call $~lib/arraybuffer/ArrayBuffer#constructor - local.set $12 + local.set $11 global.get $~lib/memory/__stack_pointer - local.get $12 + local.get $11 i32.store offset=8 - local.get $12 + local.get $11 call $"~lib/map/Map#set:buckets" local.get $this - local.set $12 + local.set $11 global.get $~lib/memory/__stack_pointer - local.get $12 + local.get $11 i32.store offset=4 - local.get $12 + local.get $11 i32.const 4 i32.const 1 i32.sub call $"~lib/map/Map#set:bucketsMask" local.get $this - local.set $12 + local.set $11 global.get $~lib/memory/__stack_pointer - local.get $12 + local.get $11 i32.store offset=4 - local.get $12 + local.get $11 i32.const 0 i32.const 4 block $"~lib/map/ENTRY_SIZE|inlined.5" (result i32) @@ -33670,79 +32991,81 @@ end i32.mul call $~lib/arraybuffer/ArrayBuffer#constructor - local.set $12 + local.set $11 global.get $~lib/memory/__stack_pointer - local.get $12 + local.get $11 i32.store offset=8 - local.get $12 + local.get $11 call $"~lib/map/Map#set:entries" local.get $this - local.set $12 + local.set $11 global.get $~lib/memory/__stack_pointer - local.get $12 + local.get $11 i32.store offset=4 - local.get $12 + local.get $11 i32.const 4 call $"~lib/map/Map#set:entriesCapacity" local.get $this - local.set $12 + local.set $11 global.get $~lib/memory/__stack_pointer - local.get $12 + local.get $11 i32.store offset=4 - local.get $12 + local.get $11 i32.const 0 call $"~lib/map/Map#set:entriesOffset" local.get $this - local.set $12 + local.set $11 global.get $~lib/memory/__stack_pointer - local.get $12 + local.get $11 i32.store offset=4 - local.get $12 + local.get $11 i32.const 0 call $"~lib/map/Map#set:entriesCount" local.get $initialEntries - local.set $12 - global.get $~lib/memory/__stack_pointer - local.get $12 - i32.store offset=4 - local.get $12 - call $"~lib/array/Array<~lib/map/KeyValue>#get:length" - local.set $entriesLength - local.get $entriesLength - i32.const 0 - i32.gt_s if - local.get $entriesLength + local.get $initialEntries + local.set $11 + global.get $~lib/memory/__stack_pointer + local.get $11 + i32.store offset=4 + local.get $11 + call $"~lib/array/Array<~lib/map/KeyValue>#get:length" local.get $this - local.set $12 + local.set $11 global.get $~lib/memory/__stack_pointer - local.get $12 + local.get $11 i32.store offset=4 - local.get $12 + local.get $11 call $"~lib/map/Map#get:entriesCapacity" i32.ge_s if local.get $this - local.set $12 + local.set $11 global.get $~lib/memory/__stack_pointer - local.get $12 + local.get $11 i32.store offset=4 - local.get $12 - local.get $entriesLength + local.get $11 + local.get $initialEntries + local.set $11 + global.get $~lib/memory/__stack_pointer + local.get $11 + i32.store offset=8 + local.get $11 + call $"~lib/array/Array<~lib/map/KeyValue>#get:length" call $"~lib/map/Map#set:bucketsMask" end local.get $this - local.set $12 + local.set $11 global.get $~lib/memory/__stack_pointer - local.get $12 + local.get $11 i32.store offset=4 - local.get $12 + local.get $11 local.get $this - local.set $12 + local.set $11 global.get $~lib/memory/__stack_pointer - local.get $12 + local.get $11 i32.store offset=8 - local.get $12 + local.get $11 call $"~lib/map/Map#get:bucketsMask" i32.const 1 i32.shl @@ -33753,48 +33076,54 @@ local.set $i loop $for-loop|0 local.get $i - local.get $entriesLength + local.get $initialEntries + local.set $11 + global.get $~lib/memory/__stack_pointer + local.get $11 + i32.store offset=4 + local.get $11 + call $"~lib/array/Array<~lib/map/KeyValue>#get:length" i32.lt_s if local.get $initialEntries - local.set $12 + local.set $11 global.get $~lib/memory/__stack_pointer - local.get $12 + local.get $11 i32.store offset=8 - local.get $12 + local.get $11 local.get $i call $"~lib/array/Array<~lib/map/KeyValue>#__get" - local.set $12 + local.set $11 global.get $~lib/memory/__stack_pointer - local.get $12 + local.get $11 i32.store offset=4 - local.get $12 + local.get $11 call $"~lib/map/KeyValue#get:key" local.set $key local.get $initialEntries - local.set $12 + local.set $11 global.get $~lib/memory/__stack_pointer - local.get $12 + local.get $11 i32.store offset=8 - local.get $12 + local.get $11 local.get $i call $"~lib/array/Array<~lib/map/KeyValue>#__get" - local.set $12 + local.set $11 global.get $~lib/memory/__stack_pointer - local.get $12 + local.get $11 i32.store offset=4 - local.get $12 + local.get $11 call $"~lib/map/KeyValue#get:value" local.set $value local.get $key call $~lib/util/hash/HASH local.set $hashCode local.get $this - local.set $12 + local.set $11 global.get $~lib/memory/__stack_pointer - local.get $12 + local.get $11 i32.store offset=4 - local.get $12 + local.get $11 local.get $key local.get $hashCode call $"~lib/map/Map#find" @@ -33809,92 +33138,92 @@ else global.get $~lib/memory/__stack_pointer local.get $this - local.set $12 + local.set $11 global.get $~lib/memory/__stack_pointer - local.get $12 + local.get $11 i32.store offset=4 - local.get $12 + local.get $11 call $"~lib/map/Map#get:entries" local.tee $entries i32.store offset=12 local.get $entries local.get $this - local.set $12 + local.set $11 global.get $~lib/memory/__stack_pointer - local.get $12 + local.get $11 i32.store offset=4 - local.get $12 + local.get $11 local.get $this - local.set $12 + local.set $11 global.get $~lib/memory/__stack_pointer - local.get $12 + local.get $11 i32.store offset=8 - local.get $12 + local.get $11 call $"~lib/map/Map#get:entriesOffset" - local.tee $9 + local.tee $8 i32.const 1 i32.add call $"~lib/map/Map#set:entriesOffset" - local.get $9 + local.get $8 block $"~lib/map/ENTRY_SIZE|inlined.4" (result i32) i32.const 24 br $"~lib/map/ENTRY_SIZE|inlined.4" end i32.mul i32.add - local.set $entry|10 - local.get $entry|10 + local.set $entry|9 + local.get $entry|9 local.get $key call $"~lib/map/MapEntry#set:key" i32.const 0 drop - local.get $entry|10 + local.get $entry|9 local.get $value call $"~lib/map/MapEntry#set:value" i32.const 0 drop local.get $this - local.set $12 + local.set $11 global.get $~lib/memory/__stack_pointer - local.get $12 + local.get $11 i32.store offset=4 - local.get $12 + local.get $11 local.get $this - local.set $12 + local.set $11 global.get $~lib/memory/__stack_pointer - local.get $12 + local.get $11 i32.store offset=8 - local.get $12 + local.get $11 call $"~lib/map/Map#get:entriesCount" i32.const 1 i32.add call $"~lib/map/Map#set:entriesCount" local.get $this - local.set $12 + local.set $11 global.get $~lib/memory/__stack_pointer - local.get $12 + local.get $11 i32.store offset=4 - local.get $12 + local.get $11 call $"~lib/map/Map#get:buckets" local.get $hashCode local.get $this - local.set $12 + local.set $11 global.get $~lib/memory/__stack_pointer - local.get $12 + local.get $11 i32.store offset=4 - local.get $12 + local.get $11 call $"~lib/map/Map#get:bucketsMask" i32.and i32.const 4 i32.mul i32.add local.set $bucketPtrBase - local.get $entry|10 + local.get $entry|9 local.get $bucketPtrBase i32.load call $"~lib/map/MapEntry#set:taggedNext" local.get $bucketPtrBase - local.get $entry|10 + local.get $entry|9 i32.store end local.get $i @@ -33906,63 +33235,12 @@ end end local.get $this - local.set $12 + local.set $11 global.get $~lib/memory/__stack_pointer i32.const 16 i32.add global.set $~lib/memory/__stack_pointer - local.get $12 - ) - (func $"~lib/map/Map#constructor@varargs" (param $this i32) (param $initialEntries i32) (result i32) - (local $2 i32) - (local $3 i32) - global.get $~lib/memory/__stack_pointer - i32.const 12 - i32.sub - global.set $~lib/memory/__stack_pointer - call $~stack_check - global.get $~lib/memory/__stack_pointer - i64.const 0 - i64.store - global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.store offset=8 - block $1of1 - block $0of1 - block $outOfRange - global.get $~argumentsLength - br_table $0of1 $1of1 $outOfRange - end - unreachable - end - global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.const 2 - i32.const 56 - i32.const 1552 - call $~lib/rt/__newArray - local.tee $initialEntries - i32.store - end - local.get $this - local.set $3 - global.get $~lib/memory/__stack_pointer - local.get $3 - i32.store offset=4 - local.get $3 - local.get $initialEntries - local.set $3 - global.get $~lib/memory/__stack_pointer - local.get $3 - i32.store offset=8 - local.get $3 - call $"~lib/map/Map#constructor" - local.set $3 - global.get $~lib/memory/__stack_pointer - i32.const 12 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $3 + local.get $11 ) (func $~lib/array/Array#get:length (param $this i32) (result i32) (local $1 i32) @@ -34634,9 +33912,7 @@ global.get $~lib/memory/__stack_pointer i32.const 0 i32.const 0 - global.set $~argumentsLength - i32.const 0 - call $"~lib/map/Map#constructor@varargs" + call $"~lib/map/Map#constructor" local.tee $map i32.store i64.const 0 @@ -34658,7 +33934,7 @@ i32.eqz if i32.const 0 - i32.const 752 + i32.const 720 i32.const 7 i32.const 5 call $~lib/builtins/abort @@ -34688,7 +33964,7 @@ i32.eqz if i32.const 0 - i32.const 752 + i32.const 720 i32.const 9 i32.const 5 call $~lib/builtins/abort @@ -34710,7 +33986,7 @@ i32.eqz if i32.const 0 - i32.const 752 + i32.const 720 i32.const 10 i32.const 5 call $~lib/builtins/abort @@ -34735,7 +34011,7 @@ i32.eqz if i32.const 0 - i32.const 752 + i32.const 720 i32.const 12 i32.const 3 call $~lib/builtins/abort @@ -34759,7 +34035,7 @@ i32.eqz if i32.const 0 - i32.const 752 + i32.const 720 i32.const 16 i32.const 5 call $~lib/builtins/abort @@ -34781,7 +34057,7 @@ i32.eqz if i32.const 0 - i32.const 752 + i32.const 720 i32.const 17 i32.const 5 call $~lib/builtins/abort @@ -34811,7 +34087,7 @@ i32.eqz if i32.const 0 - i32.const 752 + i32.const 720 i32.const 19 i32.const 5 call $~lib/builtins/abort @@ -34833,7 +34109,7 @@ i32.eqz if i32.const 0 - i32.const 752 + i32.const 720 i32.const 20 i32.const 5 call $~lib/builtins/abort @@ -34858,7 +34134,7 @@ i32.eqz if i32.const 0 - i32.const 752 + i32.const 720 i32.const 22 i32.const 3 call $~lib/builtins/abort @@ -34887,17 +34163,13 @@ global.get $~lib/memory/__stack_pointer i32.const 0 i32.const 0 - global.set $~argumentsLength - i32.const 0 - call $"~lib/map/Map#constructor@varargs" + call $"~lib/map/Map#constructor" local.tee $keyMap i32.store offset=16 global.get $~lib/memory/__stack_pointer i32.const 0 i32.const 0 - global.set $~argumentsLength - i32.const 0 - call $"~lib/map/Map#constructor@varargs" + call $"~lib/map/Map#constructor" local.tee $valMap i32.store offset=20 i32.const 0 @@ -34942,7 +34214,7 @@ i32.eqz if i32.const 0 - i32.const 752 + i32.const 720 i32.const 32 i32.const 5 call $~lib/builtins/abort @@ -34962,7 +34234,7 @@ i32.eqz if i32.const 0 - i32.const 752 + i32.const 720 i32.const 33 i32.const 5 call $~lib/builtins/abort @@ -35011,7 +34283,7 @@ i32.eqz if i32.const 0 - i32.const 752 + i32.const 720 i32.const 37 i32.const 3 call $~lib/builtins/abort @@ -35029,7 +34301,7 @@ i32.eqz if i32.const 0 - i32.const 752 + i32.const 720 i32.const 38 i32.const 3 call $~lib/builtins/abort @@ -35053,7 +34325,7 @@ i32.eqz if i32.const 0 - i32.const 752 + i32.const 720 i32.const 42 i32.const 5 call $~lib/builtins/abort @@ -35075,7 +34347,7 @@ i32.eqz if i32.const 0 - i32.const 752 + i32.const 720 i32.const 43 i32.const 5 call $~lib/builtins/abort @@ -35102,7 +34374,7 @@ i32.eqz if i32.const 0 - i32.const 752 + i32.const 720 i32.const 45 i32.const 5 call $~lib/builtins/abort @@ -35127,7 +34399,7 @@ i32.eqz if i32.const 0 - i32.const 752 + i32.const 720 i32.const 47 i32.const 3 call $~lib/builtins/abort @@ -35152,7 +34424,7 @@ i32.eqz if i32.const 0 - i32.const 752 + i32.const 720 i32.const 51 i32.const 5 call $~lib/builtins/abort @@ -35182,7 +34454,7 @@ i32.eqz if i32.const 0 - i32.const 752 + i32.const 720 i32.const 53 i32.const 5 call $~lib/builtins/abort @@ -35209,7 +34481,7 @@ i32.eqz if i32.const 0 - i32.const 752 + i32.const 720 i32.const 55 i32.const 5 call $~lib/builtins/abort @@ -35234,7 +34506,7 @@ i32.eqz if i32.const 0 - i32.const 752 + i32.const 720 i32.const 57 i32.const 3 call $~lib/builtins/abort @@ -35259,7 +34531,7 @@ i32.eqz if i32.const 0 - i32.const 752 + i32.const 720 i32.const 61 i32.const 3 call $~lib/builtins/abort @@ -35269,7 +34541,7 @@ i32.const 0 i32.const 2 i32.const 52 - i32.const 1584 + i32.const 1104 call $~lib/rt/__newArray local.tee $initialEntries i32.store offset=24 @@ -35348,7 +34620,7 @@ i32.eqz if i32.const 0 - i32.const 752 + i32.const 720 i32.const 74 i32.const 3 call $~lib/builtins/abort @@ -35372,7 +34644,7 @@ i32.eqz if i32.const 0 - i32.const 752 + i32.const 720 i32.const 76 i32.const 5 call $~lib/builtins/abort @@ -35394,7 +34666,7 @@ i32.eqz if i32.const 0 - i32.const 752 + i32.const 720 i32.const 77 i32.const 5 call $~lib/builtins/abort @@ -35421,7 +34693,7 @@ i32.eqz if i32.const 0 - i32.const 752 + i32.const 720 i32.const 79 i32.const 5 call $~lib/builtins/abort @@ -35446,7 +34718,7 @@ i32.eqz if i32.const 0 - i32.const 752 + i32.const 720 i32.const 81 i32.const 3 call $~lib/builtins/abort @@ -35830,17 +35102,16 @@ return ) (func $"~lib/map/Map#constructor" (param $this i32) (param $initialEntries i32) (result i32) - (local $entriesLength i32) (local $i i32) (local $key f32) (local $value i32) (local $hashCode i32) (local $entry i32) (local $entries i32) - (local $9 i32) - (local $entry|10 i32) + (local $8 i32) + (local $entry|9 i32) (local $bucketPtrBase i32) - (local $12 i32) + (local $11 i32) global.get $~lib/memory/__stack_pointer i32.const 16 i32.sub @@ -35863,38 +35134,38 @@ i32.store end local.get $this - local.set $12 + local.set $11 global.get $~lib/memory/__stack_pointer - local.get $12 + local.get $11 i32.store offset=4 - local.get $12 + local.get $11 i32.const 0 i32.const 4 i32.const 4 i32.mul call $~lib/arraybuffer/ArrayBuffer#constructor - local.set $12 + local.set $11 global.get $~lib/memory/__stack_pointer - local.get $12 + local.get $11 i32.store offset=8 - local.get $12 + local.get $11 call $"~lib/map/Map#set:buckets" local.get $this - local.set $12 + local.set $11 global.get $~lib/memory/__stack_pointer - local.get $12 + local.get $11 i32.store offset=4 - local.get $12 + local.get $11 i32.const 4 i32.const 1 i32.sub call $"~lib/map/Map#set:bucketsMask" local.get $this - local.set $12 + local.set $11 global.get $~lib/memory/__stack_pointer - local.get $12 + local.get $11 i32.store offset=4 - local.get $12 + local.get $11 i32.const 0 i32.const 4 block $"~lib/map/ENTRY_SIZE|inlined.5" (result i32) @@ -35903,79 +35174,81 @@ end i32.mul call $~lib/arraybuffer/ArrayBuffer#constructor - local.set $12 + local.set $11 global.get $~lib/memory/__stack_pointer - local.get $12 + local.get $11 i32.store offset=8 - local.get $12 + local.get $11 call $"~lib/map/Map#set:entries" local.get $this - local.set $12 + local.set $11 global.get $~lib/memory/__stack_pointer - local.get $12 + local.get $11 i32.store offset=4 - local.get $12 + local.get $11 i32.const 4 call $"~lib/map/Map#set:entriesCapacity" local.get $this - local.set $12 + local.set $11 global.get $~lib/memory/__stack_pointer - local.get $12 + local.get $11 i32.store offset=4 - local.get $12 + local.get $11 i32.const 0 call $"~lib/map/Map#set:entriesOffset" local.get $this - local.set $12 + local.set $11 global.get $~lib/memory/__stack_pointer - local.get $12 + local.get $11 i32.store offset=4 - local.get $12 + local.get $11 i32.const 0 call $"~lib/map/Map#set:entriesCount" local.get $initialEntries - local.set $12 - global.get $~lib/memory/__stack_pointer - local.get $12 - i32.store offset=4 - local.get $12 - call $"~lib/array/Array<~lib/map/KeyValue>#get:length" - local.set $entriesLength - local.get $entriesLength - i32.const 0 - i32.gt_s if - local.get $entriesLength + local.get $initialEntries + local.set $11 + global.get $~lib/memory/__stack_pointer + local.get $11 + i32.store offset=4 + local.get $11 + call $"~lib/array/Array<~lib/map/KeyValue>#get:length" local.get $this - local.set $12 + local.set $11 global.get $~lib/memory/__stack_pointer - local.get $12 + local.get $11 i32.store offset=4 - local.get $12 + local.get $11 call $"~lib/map/Map#get:entriesCapacity" i32.ge_s if local.get $this - local.set $12 + local.set $11 global.get $~lib/memory/__stack_pointer - local.get $12 + local.get $11 i32.store offset=4 - local.get $12 - local.get $entriesLength + local.get $11 + local.get $initialEntries + local.set $11 + global.get $~lib/memory/__stack_pointer + local.get $11 + i32.store offset=8 + local.get $11 + call $"~lib/array/Array<~lib/map/KeyValue>#get:length" call $"~lib/map/Map#set:bucketsMask" end local.get $this - local.set $12 + local.set $11 global.get $~lib/memory/__stack_pointer - local.get $12 + local.get $11 i32.store offset=4 - local.get $12 + local.get $11 local.get $this - local.set $12 + local.set $11 global.get $~lib/memory/__stack_pointer - local.get $12 + local.get $11 i32.store offset=8 - local.get $12 + local.get $11 call $"~lib/map/Map#get:bucketsMask" i32.const 1 i32.shl @@ -35986,48 +35259,54 @@ local.set $i loop $for-loop|0 local.get $i - local.get $entriesLength + local.get $initialEntries + local.set $11 + global.get $~lib/memory/__stack_pointer + local.get $11 + i32.store offset=4 + local.get $11 + call $"~lib/array/Array<~lib/map/KeyValue>#get:length" i32.lt_s if local.get $initialEntries - local.set $12 + local.set $11 global.get $~lib/memory/__stack_pointer - local.get $12 + local.get $11 i32.store offset=8 - local.get $12 + local.get $11 local.get $i call $"~lib/array/Array<~lib/map/KeyValue>#__get" - local.set $12 + local.set $11 global.get $~lib/memory/__stack_pointer - local.get $12 + local.get $11 i32.store offset=4 - local.get $12 + local.get $11 call $"~lib/map/KeyValue#get:key" local.set $key local.get $initialEntries - local.set $12 + local.set $11 global.get $~lib/memory/__stack_pointer - local.get $12 + local.get $11 i32.store offset=8 - local.get $12 + local.get $11 local.get $i call $"~lib/array/Array<~lib/map/KeyValue>#__get" - local.set $12 + local.set $11 global.get $~lib/memory/__stack_pointer - local.get $12 + local.get $11 i32.store offset=4 - local.get $12 + local.get $11 call $"~lib/map/KeyValue#get:value" local.set $value local.get $key call $~lib/util/hash/HASH local.set $hashCode local.get $this - local.set $12 + local.set $11 global.get $~lib/memory/__stack_pointer - local.get $12 + local.get $11 i32.store offset=4 - local.get $12 + local.get $11 local.get $key local.get $hashCode call $"~lib/map/Map#find" @@ -36042,92 +35321,92 @@ else global.get $~lib/memory/__stack_pointer local.get $this - local.set $12 + local.set $11 global.get $~lib/memory/__stack_pointer - local.get $12 + local.get $11 i32.store offset=4 - local.get $12 + local.get $11 call $"~lib/map/Map#get:entries" local.tee $entries i32.store offset=12 local.get $entries local.get $this - local.set $12 + local.set $11 global.get $~lib/memory/__stack_pointer - local.get $12 + local.get $11 i32.store offset=4 - local.get $12 + local.get $11 local.get $this - local.set $12 + local.set $11 global.get $~lib/memory/__stack_pointer - local.get $12 + local.get $11 i32.store offset=8 - local.get $12 + local.get $11 call $"~lib/map/Map#get:entriesOffset" - local.tee $9 + local.tee $8 i32.const 1 i32.add call $"~lib/map/Map#set:entriesOffset" - local.get $9 + local.get $8 block $"~lib/map/ENTRY_SIZE|inlined.4" (result i32) i32.const 12 br $"~lib/map/ENTRY_SIZE|inlined.4" end i32.mul i32.add - local.set $entry|10 - local.get $entry|10 + local.set $entry|9 + local.get $entry|9 local.get $key call $"~lib/map/MapEntry#set:key" i32.const 0 drop - local.get $entry|10 + local.get $entry|9 local.get $value call $"~lib/map/MapEntry#set:value" i32.const 0 drop local.get $this - local.set $12 + local.set $11 global.get $~lib/memory/__stack_pointer - local.get $12 + local.get $11 i32.store offset=4 - local.get $12 + local.get $11 local.get $this - local.set $12 + local.set $11 global.get $~lib/memory/__stack_pointer - local.get $12 + local.get $11 i32.store offset=8 - local.get $12 + local.get $11 call $"~lib/map/Map#get:entriesCount" i32.const 1 i32.add call $"~lib/map/Map#set:entriesCount" local.get $this - local.set $12 + local.set $11 global.get $~lib/memory/__stack_pointer - local.get $12 + local.get $11 i32.store offset=4 - local.get $12 + local.get $11 call $"~lib/map/Map#get:buckets" local.get $hashCode local.get $this - local.set $12 + local.set $11 global.get $~lib/memory/__stack_pointer - local.get $12 + local.get $11 i32.store offset=4 - local.get $12 + local.get $11 call $"~lib/map/Map#get:bucketsMask" i32.and i32.const 4 i32.mul i32.add local.set $bucketPtrBase - local.get $entry|10 + local.get $entry|9 local.get $bucketPtrBase i32.load call $"~lib/map/MapEntry#set:taggedNext" local.get $bucketPtrBase - local.get $entry|10 + local.get $entry|9 i32.store end local.get $i @@ -36139,63 +35418,12 @@ end end local.get $this - local.set $12 + local.set $11 global.get $~lib/memory/__stack_pointer i32.const 16 i32.add global.set $~lib/memory/__stack_pointer - local.get $12 - ) - (func $"~lib/map/Map#constructor@varargs" (param $this i32) (param $initialEntries i32) (result i32) - (local $2 i32) - (local $3 i32) - global.get $~lib/memory/__stack_pointer - i32.const 12 - i32.sub - global.set $~lib/memory/__stack_pointer - call $~stack_check - global.get $~lib/memory/__stack_pointer - i64.const 0 - i64.store - global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.store offset=8 - block $1of1 - block $0of1 - block $outOfRange - global.get $~argumentsLength - br_table $0of1 $1of1 $outOfRange - end - unreachable - end - global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.const 2 - i32.const 59 - i32.const 1616 - call $~lib/rt/__newArray - local.tee $initialEntries - i32.store - end - local.get $this - local.set $3 - global.get $~lib/memory/__stack_pointer - local.get $3 - i32.store offset=4 - local.get $3 - local.get $initialEntries - local.set $3 - global.get $~lib/memory/__stack_pointer - local.get $3 - i32.store offset=8 - local.get $3 - call $"~lib/map/Map#constructor" - local.set $3 - global.get $~lib/memory/__stack_pointer - i32.const 12 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $3 + local.get $11 ) (func $"~lib/map/Map#has" (param $this i32) (param $key f32) (result i32) (local $2 i32) @@ -36454,9 +35682,9 @@ local.get $entry i32.eqz if - i32.const 800 - i32.const 864 - i32.const 148 + i32.const 768 + i32.const 832 + i32.const 146 i32.const 17 call $~lib/builtins/abort unreachable @@ -37310,17 +36538,16 @@ return ) (func $"~lib/map/Map#constructor" (param $this i32) (param $initialEntries i32) (result i32) - (local $entriesLength i32) (local $i i32) (local $key f32) (local $value f32) (local $hashCode i32) (local $entry i32) (local $entries i32) - (local $9 i32) - (local $entry|10 i32) + (local $8 i32) + (local $entry|9 i32) (local $bucketPtrBase i32) - (local $12 i32) + (local $11 i32) global.get $~lib/memory/__stack_pointer i32.const 16 i32.sub @@ -37343,38 +36570,38 @@ i32.store end local.get $this - local.set $12 + local.set $11 global.get $~lib/memory/__stack_pointer - local.get $12 + local.get $11 i32.store offset=4 - local.get $12 + local.get $11 i32.const 0 i32.const 4 i32.const 4 i32.mul call $~lib/arraybuffer/ArrayBuffer#constructor - local.set $12 + local.set $11 global.get $~lib/memory/__stack_pointer - local.get $12 + local.get $11 i32.store offset=8 - local.get $12 + local.get $11 call $"~lib/map/Map#set:buckets" local.get $this - local.set $12 + local.set $11 global.get $~lib/memory/__stack_pointer - local.get $12 + local.get $11 i32.store offset=4 - local.get $12 + local.get $11 i32.const 4 i32.const 1 i32.sub call $"~lib/map/Map#set:bucketsMask" local.get $this - local.set $12 + local.set $11 global.get $~lib/memory/__stack_pointer - local.get $12 + local.get $11 i32.store offset=4 - local.get $12 + local.get $11 i32.const 0 i32.const 4 block $"~lib/map/ENTRY_SIZE|inlined.5" (result i32) @@ -37383,79 +36610,81 @@ end i32.mul call $~lib/arraybuffer/ArrayBuffer#constructor - local.set $12 + local.set $11 global.get $~lib/memory/__stack_pointer - local.get $12 + local.get $11 i32.store offset=8 - local.get $12 + local.get $11 call $"~lib/map/Map#set:entries" local.get $this - local.set $12 + local.set $11 global.get $~lib/memory/__stack_pointer - local.get $12 + local.get $11 i32.store offset=4 - local.get $12 + local.get $11 i32.const 4 call $"~lib/map/Map#set:entriesCapacity" local.get $this - local.set $12 + local.set $11 global.get $~lib/memory/__stack_pointer - local.get $12 + local.get $11 i32.store offset=4 - local.get $12 + local.get $11 i32.const 0 call $"~lib/map/Map#set:entriesOffset" local.get $this - local.set $12 + local.set $11 global.get $~lib/memory/__stack_pointer - local.get $12 + local.get $11 i32.store offset=4 - local.get $12 + local.get $11 i32.const 0 call $"~lib/map/Map#set:entriesCount" local.get $initialEntries - local.set $12 - global.get $~lib/memory/__stack_pointer - local.get $12 - i32.store offset=4 - local.get $12 - call $"~lib/array/Array<~lib/map/KeyValue>#get:length" - local.set $entriesLength - local.get $entriesLength - i32.const 0 - i32.gt_s if - local.get $entriesLength + local.get $initialEntries + local.set $11 + global.get $~lib/memory/__stack_pointer + local.get $11 + i32.store offset=4 + local.get $11 + call $"~lib/array/Array<~lib/map/KeyValue>#get:length" local.get $this - local.set $12 + local.set $11 global.get $~lib/memory/__stack_pointer - local.get $12 + local.get $11 i32.store offset=4 - local.get $12 + local.get $11 call $"~lib/map/Map#get:entriesCapacity" i32.ge_s if local.get $this - local.set $12 + local.set $11 global.get $~lib/memory/__stack_pointer - local.get $12 + local.get $11 i32.store offset=4 - local.get $12 - local.get $entriesLength + local.get $11 + local.get $initialEntries + local.set $11 + global.get $~lib/memory/__stack_pointer + local.get $11 + i32.store offset=8 + local.get $11 + call $"~lib/array/Array<~lib/map/KeyValue>#get:length" call $"~lib/map/Map#set:bucketsMask" end local.get $this - local.set $12 + local.set $11 global.get $~lib/memory/__stack_pointer - local.get $12 + local.get $11 i32.store offset=4 - local.get $12 + local.get $11 local.get $this - local.set $12 + local.set $11 global.get $~lib/memory/__stack_pointer - local.get $12 + local.get $11 i32.store offset=8 - local.get $12 + local.get $11 call $"~lib/map/Map#get:bucketsMask" i32.const 1 i32.shl @@ -37466,48 +36695,54 @@ local.set $i loop $for-loop|0 local.get $i - local.get $entriesLength + local.get $initialEntries + local.set $11 + global.get $~lib/memory/__stack_pointer + local.get $11 + i32.store offset=4 + local.get $11 + call $"~lib/array/Array<~lib/map/KeyValue>#get:length" i32.lt_s if local.get $initialEntries - local.set $12 + local.set $11 global.get $~lib/memory/__stack_pointer - local.get $12 + local.get $11 i32.store offset=8 - local.get $12 + local.get $11 local.get $i call $"~lib/array/Array<~lib/map/KeyValue>#__get" - local.set $12 + local.set $11 global.get $~lib/memory/__stack_pointer - local.get $12 + local.get $11 i32.store offset=4 - local.get $12 + local.get $11 call $"~lib/map/KeyValue#get:key" local.set $key local.get $initialEntries - local.set $12 + local.set $11 global.get $~lib/memory/__stack_pointer - local.get $12 + local.get $11 i32.store offset=8 - local.get $12 + local.get $11 local.get $i call $"~lib/array/Array<~lib/map/KeyValue>#__get" - local.set $12 + local.set $11 global.get $~lib/memory/__stack_pointer - local.get $12 + local.get $11 i32.store offset=4 - local.get $12 + local.get $11 call $"~lib/map/KeyValue#get:value" local.set $value local.get $key call $~lib/util/hash/HASH local.set $hashCode local.get $this - local.set $12 + local.set $11 global.get $~lib/memory/__stack_pointer - local.get $12 + local.get $11 i32.store offset=4 - local.get $12 + local.get $11 local.get $key local.get $hashCode call $"~lib/map/Map#find" @@ -37522,92 +36757,92 @@ else global.get $~lib/memory/__stack_pointer local.get $this - local.set $12 + local.set $11 global.get $~lib/memory/__stack_pointer - local.get $12 + local.get $11 i32.store offset=4 - local.get $12 + local.get $11 call $"~lib/map/Map#get:entries" local.tee $entries i32.store offset=12 local.get $entries local.get $this - local.set $12 + local.set $11 global.get $~lib/memory/__stack_pointer - local.get $12 + local.get $11 i32.store offset=4 - local.get $12 + local.get $11 local.get $this - local.set $12 + local.set $11 global.get $~lib/memory/__stack_pointer - local.get $12 + local.get $11 i32.store offset=8 - local.get $12 + local.get $11 call $"~lib/map/Map#get:entriesOffset" - local.tee $9 + local.tee $8 i32.const 1 i32.add call $"~lib/map/Map#set:entriesOffset" - local.get $9 + local.get $8 block $"~lib/map/ENTRY_SIZE|inlined.4" (result i32) i32.const 12 br $"~lib/map/ENTRY_SIZE|inlined.4" end i32.mul i32.add - local.set $entry|10 - local.get $entry|10 + local.set $entry|9 + local.get $entry|9 local.get $key call $"~lib/map/MapEntry#set:key" i32.const 0 drop - local.get $entry|10 + local.get $entry|9 local.get $value call $"~lib/map/MapEntry#set:value" i32.const 0 drop local.get $this - local.set $12 + local.set $11 global.get $~lib/memory/__stack_pointer - local.get $12 + local.get $11 i32.store offset=4 - local.get $12 + local.get $11 local.get $this - local.set $12 + local.set $11 global.get $~lib/memory/__stack_pointer - local.get $12 + local.get $11 i32.store offset=8 - local.get $12 + local.get $11 call $"~lib/map/Map#get:entriesCount" i32.const 1 i32.add call $"~lib/map/Map#set:entriesCount" local.get $this - local.set $12 + local.set $11 global.get $~lib/memory/__stack_pointer - local.get $12 + local.get $11 i32.store offset=4 - local.get $12 + local.get $11 call $"~lib/map/Map#get:buckets" local.get $hashCode local.get $this - local.set $12 + local.set $11 global.get $~lib/memory/__stack_pointer - local.get $12 + local.get $11 i32.store offset=4 - local.get $12 + local.get $11 call $"~lib/map/Map#get:bucketsMask" i32.and i32.const 4 i32.mul i32.add local.set $bucketPtrBase - local.get $entry|10 + local.get $entry|9 local.get $bucketPtrBase i32.load call $"~lib/map/MapEntry#set:taggedNext" local.get $bucketPtrBase - local.get $entry|10 + local.get $entry|9 i32.store end local.get $i @@ -37619,63 +36854,12 @@ end end local.get $this - local.set $12 + local.set $11 global.get $~lib/memory/__stack_pointer i32.const 16 i32.add global.set $~lib/memory/__stack_pointer - local.get $12 - ) - (func $"~lib/map/Map#constructor@varargs" (param $this i32) (param $initialEntries i32) (result i32) - (local $2 i32) - (local $3 i32) - global.get $~lib/memory/__stack_pointer - i32.const 12 - i32.sub - global.set $~lib/memory/__stack_pointer - call $~stack_check - global.get $~lib/memory/__stack_pointer - i64.const 0 - i64.store - global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.store offset=8 - block $1of1 - block $0of1 - block $outOfRange - global.get $~argumentsLength - br_table $0of1 $1of1 $outOfRange - end - unreachable - end - global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.const 2 - i32.const 63 - i32.const 1648 - call $~lib/rt/__newArray - local.tee $initialEntries - i32.store - end - local.get $this - local.set $3 - global.get $~lib/memory/__stack_pointer - local.get $3 - i32.store offset=4 - local.get $3 - local.get $initialEntries - local.set $3 - global.get $~lib/memory/__stack_pointer - local.get $3 - i32.store offset=8 - local.get $3 - call $"~lib/map/Map#constructor" - local.set $3 - global.get $~lib/memory/__stack_pointer - i32.const 12 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $3 + local.get $11 ) (func $~lib/array/Array#get:length (param $this i32) (result i32) (local $1 i32) @@ -38347,9 +37531,7 @@ global.get $~lib/memory/__stack_pointer i32.const 0 i32.const 0 - global.set $~argumentsLength - i32.const 0 - call $"~lib/map/Map#constructor@varargs" + call $"~lib/map/Map#constructor" local.tee $map i32.store f32.const 0 @@ -38371,7 +37553,7 @@ i32.eqz if i32.const 0 - i32.const 752 + i32.const 720 i32.const 7 i32.const 5 call $~lib/builtins/abort @@ -38401,7 +37583,7 @@ i32.eqz if i32.const 0 - i32.const 752 + i32.const 720 i32.const 9 i32.const 5 call $~lib/builtins/abort @@ -38423,7 +37605,7 @@ i32.eqz if i32.const 0 - i32.const 752 + i32.const 720 i32.const 10 i32.const 5 call $~lib/builtins/abort @@ -38448,7 +37630,7 @@ i32.eqz if i32.const 0 - i32.const 752 + i32.const 720 i32.const 12 i32.const 3 call $~lib/builtins/abort @@ -38472,7 +37654,7 @@ i32.eqz if i32.const 0 - i32.const 752 + i32.const 720 i32.const 16 i32.const 5 call $~lib/builtins/abort @@ -38494,7 +37676,7 @@ i32.eqz if i32.const 0 - i32.const 752 + i32.const 720 i32.const 17 i32.const 5 call $~lib/builtins/abort @@ -38524,7 +37706,7 @@ i32.eqz if i32.const 0 - i32.const 752 + i32.const 720 i32.const 19 i32.const 5 call $~lib/builtins/abort @@ -38546,7 +37728,7 @@ i32.eqz if i32.const 0 - i32.const 752 + i32.const 720 i32.const 20 i32.const 5 call $~lib/builtins/abort @@ -38571,7 +37753,7 @@ i32.eqz if i32.const 0 - i32.const 752 + i32.const 720 i32.const 22 i32.const 3 call $~lib/builtins/abort @@ -38600,17 +37782,13 @@ global.get $~lib/memory/__stack_pointer i32.const 0 i32.const 0 - global.set $~argumentsLength - i32.const 0 - call $"~lib/map/Map#constructor@varargs" + call $"~lib/map/Map#constructor" local.tee $keyMap i32.store offset=16 global.get $~lib/memory/__stack_pointer i32.const 0 i32.const 0 - global.set $~argumentsLength - i32.const 0 - call $"~lib/map/Map#constructor@varargs" + call $"~lib/map/Map#constructor" local.tee $valMap i32.store offset=20 i32.const 0 @@ -38655,7 +37833,7 @@ i32.eqz if i32.const 0 - i32.const 752 + i32.const 720 i32.const 32 i32.const 5 call $~lib/builtins/abort @@ -38675,7 +37853,7 @@ i32.eqz if i32.const 0 - i32.const 752 + i32.const 720 i32.const 33 i32.const 5 call $~lib/builtins/abort @@ -38724,7 +37902,7 @@ i32.eqz if i32.const 0 - i32.const 752 + i32.const 720 i32.const 37 i32.const 3 call $~lib/builtins/abort @@ -38742,7 +37920,7 @@ i32.eqz if i32.const 0 - i32.const 752 + i32.const 720 i32.const 38 i32.const 3 call $~lib/builtins/abort @@ -38766,7 +37944,7 @@ i32.eqz if i32.const 0 - i32.const 752 + i32.const 720 i32.const 42 i32.const 5 call $~lib/builtins/abort @@ -38788,7 +37966,7 @@ i32.eqz if i32.const 0 - i32.const 752 + i32.const 720 i32.const 43 i32.const 5 call $~lib/builtins/abort @@ -38815,7 +37993,7 @@ i32.eqz if i32.const 0 - i32.const 752 + i32.const 720 i32.const 45 i32.const 5 call $~lib/builtins/abort @@ -38840,7 +38018,7 @@ i32.eqz if i32.const 0 - i32.const 752 + i32.const 720 i32.const 47 i32.const 3 call $~lib/builtins/abort @@ -38865,7 +38043,7 @@ i32.eqz if i32.const 0 - i32.const 752 + i32.const 720 i32.const 51 i32.const 5 call $~lib/builtins/abort @@ -38895,7 +38073,7 @@ i32.eqz if i32.const 0 - i32.const 752 + i32.const 720 i32.const 53 i32.const 5 call $~lib/builtins/abort @@ -38922,7 +38100,7 @@ i32.eqz if i32.const 0 - i32.const 752 + i32.const 720 i32.const 55 i32.const 5 call $~lib/builtins/abort @@ -38947,7 +38125,7 @@ i32.eqz if i32.const 0 - i32.const 752 + i32.const 720 i32.const 57 i32.const 3 call $~lib/builtins/abort @@ -38972,7 +38150,7 @@ i32.eqz if i32.const 0 - i32.const 752 + i32.const 720 i32.const 61 i32.const 3 call $~lib/builtins/abort @@ -38982,7 +38160,7 @@ i32.const 0 i32.const 2 i32.const 59 - i32.const 1680 + i32.const 1136 call $~lib/rt/__newArray local.tee $initialEntries i32.store offset=24 @@ -39061,7 +38239,7 @@ i32.eqz if i32.const 0 - i32.const 752 + i32.const 720 i32.const 74 i32.const 3 call $~lib/builtins/abort @@ -39085,7 +38263,7 @@ i32.eqz if i32.const 0 - i32.const 752 + i32.const 720 i32.const 76 i32.const 5 call $~lib/builtins/abort @@ -39107,7 +38285,7 @@ i32.eqz if i32.const 0 - i32.const 752 + i32.const 720 i32.const 77 i32.const 5 call $~lib/builtins/abort @@ -39134,7 +38312,7 @@ i32.eqz if i32.const 0 - i32.const 752 + i32.const 720 i32.const 79 i32.const 5 call $~lib/builtins/abort @@ -39159,7 +38337,7 @@ i32.eqz if i32.const 0 - i32.const 752 + i32.const 720 i32.const 81 i32.const 3 call $~lib/builtins/abort @@ -39543,17 +38721,16 @@ return ) (func $"~lib/map/Map#constructor" (param $this i32) (param $initialEntries i32) (result i32) - (local $entriesLength i32) (local $i i32) (local $key f64) (local $value i32) (local $hashCode i32) (local $entry i32) (local $entries i32) - (local $9 i32) - (local $entry|10 i32) + (local $8 i32) + (local $entry|9 i32) (local $bucketPtrBase i32) - (local $12 i32) + (local $11 i32) global.get $~lib/memory/__stack_pointer i32.const 16 i32.sub @@ -39576,38 +38753,38 @@ i32.store end local.get $this - local.set $12 + local.set $11 global.get $~lib/memory/__stack_pointer - local.get $12 + local.get $11 i32.store offset=4 - local.get $12 + local.get $11 i32.const 0 i32.const 4 i32.const 4 i32.mul call $~lib/arraybuffer/ArrayBuffer#constructor - local.set $12 + local.set $11 global.get $~lib/memory/__stack_pointer - local.get $12 + local.get $11 i32.store offset=8 - local.get $12 + local.get $11 call $"~lib/map/Map#set:buckets" local.get $this - local.set $12 + local.set $11 global.get $~lib/memory/__stack_pointer - local.get $12 + local.get $11 i32.store offset=4 - local.get $12 + local.get $11 i32.const 4 i32.const 1 i32.sub call $"~lib/map/Map#set:bucketsMask" local.get $this - local.set $12 + local.set $11 global.get $~lib/memory/__stack_pointer - local.get $12 + local.get $11 i32.store offset=4 - local.get $12 + local.get $11 i32.const 0 i32.const 4 block $"~lib/map/ENTRY_SIZE|inlined.5" (result i32) @@ -39616,79 +38793,81 @@ end i32.mul call $~lib/arraybuffer/ArrayBuffer#constructor - local.set $12 + local.set $11 global.get $~lib/memory/__stack_pointer - local.get $12 + local.get $11 i32.store offset=8 - local.get $12 + local.get $11 call $"~lib/map/Map#set:entries" local.get $this - local.set $12 + local.set $11 global.get $~lib/memory/__stack_pointer - local.get $12 + local.get $11 i32.store offset=4 - local.get $12 + local.get $11 i32.const 4 call $"~lib/map/Map#set:entriesCapacity" local.get $this - local.set $12 + local.set $11 global.get $~lib/memory/__stack_pointer - local.get $12 + local.get $11 i32.store offset=4 - local.get $12 + local.get $11 i32.const 0 call $"~lib/map/Map#set:entriesOffset" local.get $this - local.set $12 + local.set $11 global.get $~lib/memory/__stack_pointer - local.get $12 + local.get $11 i32.store offset=4 - local.get $12 + local.get $11 i32.const 0 call $"~lib/map/Map#set:entriesCount" local.get $initialEntries - local.set $12 - global.get $~lib/memory/__stack_pointer - local.get $12 - i32.store offset=4 - local.get $12 - call $"~lib/array/Array<~lib/map/KeyValue>#get:length" - local.set $entriesLength - local.get $entriesLength - i32.const 0 - i32.gt_s if - local.get $entriesLength + local.get $initialEntries + local.set $11 + global.get $~lib/memory/__stack_pointer + local.get $11 + i32.store offset=4 + local.get $11 + call $"~lib/array/Array<~lib/map/KeyValue>#get:length" local.get $this - local.set $12 + local.set $11 global.get $~lib/memory/__stack_pointer - local.get $12 + local.get $11 i32.store offset=4 - local.get $12 + local.get $11 call $"~lib/map/Map#get:entriesCapacity" i32.ge_s if local.get $this - local.set $12 + local.set $11 global.get $~lib/memory/__stack_pointer - local.get $12 + local.get $11 i32.store offset=4 - local.get $12 - local.get $entriesLength + local.get $11 + local.get $initialEntries + local.set $11 + global.get $~lib/memory/__stack_pointer + local.get $11 + i32.store offset=8 + local.get $11 + call $"~lib/array/Array<~lib/map/KeyValue>#get:length" call $"~lib/map/Map#set:bucketsMask" end local.get $this - local.set $12 + local.set $11 global.get $~lib/memory/__stack_pointer - local.get $12 + local.get $11 i32.store offset=4 - local.get $12 + local.get $11 local.get $this - local.set $12 + local.set $11 global.get $~lib/memory/__stack_pointer - local.get $12 + local.get $11 i32.store offset=8 - local.get $12 + local.get $11 call $"~lib/map/Map#get:bucketsMask" i32.const 1 i32.shl @@ -39699,48 +38878,54 @@ local.set $i loop $for-loop|0 local.get $i - local.get $entriesLength + local.get $initialEntries + local.set $11 + global.get $~lib/memory/__stack_pointer + local.get $11 + i32.store offset=4 + local.get $11 + call $"~lib/array/Array<~lib/map/KeyValue>#get:length" i32.lt_s if local.get $initialEntries - local.set $12 + local.set $11 global.get $~lib/memory/__stack_pointer - local.get $12 + local.get $11 i32.store offset=8 - local.get $12 + local.get $11 local.get $i call $"~lib/array/Array<~lib/map/KeyValue>#__get" - local.set $12 + local.set $11 global.get $~lib/memory/__stack_pointer - local.get $12 + local.get $11 i32.store offset=4 - local.get $12 + local.get $11 call $"~lib/map/KeyValue#get:key" local.set $key local.get $initialEntries - local.set $12 + local.set $11 global.get $~lib/memory/__stack_pointer - local.get $12 + local.get $11 i32.store offset=8 - local.get $12 + local.get $11 local.get $i call $"~lib/array/Array<~lib/map/KeyValue>#__get" - local.set $12 + local.set $11 global.get $~lib/memory/__stack_pointer - local.get $12 + local.get $11 i32.store offset=4 - local.get $12 + local.get $11 call $"~lib/map/KeyValue#get:value" local.set $value local.get $key call $~lib/util/hash/HASH local.set $hashCode local.get $this - local.set $12 + local.set $11 global.get $~lib/memory/__stack_pointer - local.get $12 + local.get $11 i32.store offset=4 - local.get $12 + local.get $11 local.get $key local.get $hashCode call $"~lib/map/Map#find" @@ -39755,92 +38940,92 @@ else global.get $~lib/memory/__stack_pointer local.get $this - local.set $12 + local.set $11 global.get $~lib/memory/__stack_pointer - local.get $12 + local.get $11 i32.store offset=4 - local.get $12 + local.get $11 call $"~lib/map/Map#get:entries" local.tee $entries i32.store offset=12 local.get $entries local.get $this - local.set $12 + local.set $11 global.get $~lib/memory/__stack_pointer - local.get $12 + local.get $11 i32.store offset=4 - local.get $12 + local.get $11 local.get $this - local.set $12 + local.set $11 global.get $~lib/memory/__stack_pointer - local.get $12 + local.get $11 i32.store offset=8 - local.get $12 + local.get $11 call $"~lib/map/Map#get:entriesOffset" - local.tee $9 + local.tee $8 i32.const 1 i32.add call $"~lib/map/Map#set:entriesOffset" - local.get $9 + local.get $8 block $"~lib/map/ENTRY_SIZE|inlined.4" (result i32) i32.const 16 br $"~lib/map/ENTRY_SIZE|inlined.4" end i32.mul i32.add - local.set $entry|10 - local.get $entry|10 + local.set $entry|9 + local.get $entry|9 local.get $key call $"~lib/map/MapEntry#set:key" i32.const 0 drop - local.get $entry|10 + local.get $entry|9 local.get $value call $"~lib/map/MapEntry#set:value" i32.const 0 drop local.get $this - local.set $12 + local.set $11 global.get $~lib/memory/__stack_pointer - local.get $12 + local.get $11 i32.store offset=4 - local.get $12 + local.get $11 local.get $this - local.set $12 + local.set $11 global.get $~lib/memory/__stack_pointer - local.get $12 + local.get $11 i32.store offset=8 - local.get $12 + local.get $11 call $"~lib/map/Map#get:entriesCount" i32.const 1 i32.add call $"~lib/map/Map#set:entriesCount" local.get $this - local.set $12 + local.set $11 global.get $~lib/memory/__stack_pointer - local.get $12 + local.get $11 i32.store offset=4 - local.get $12 + local.get $11 call $"~lib/map/Map#get:buckets" local.get $hashCode local.get $this - local.set $12 + local.set $11 global.get $~lib/memory/__stack_pointer - local.get $12 + local.get $11 i32.store offset=4 - local.get $12 + local.get $11 call $"~lib/map/Map#get:bucketsMask" i32.and i32.const 4 i32.mul i32.add local.set $bucketPtrBase - local.get $entry|10 + local.get $entry|9 local.get $bucketPtrBase i32.load call $"~lib/map/MapEntry#set:taggedNext" local.get $bucketPtrBase - local.get $entry|10 + local.get $entry|9 i32.store end local.get $i @@ -39852,63 +39037,12 @@ end end local.get $this - local.set $12 + local.set $11 global.get $~lib/memory/__stack_pointer i32.const 16 i32.add global.set $~lib/memory/__stack_pointer - local.get $12 - ) - (func $"~lib/map/Map#constructor@varargs" (param $this i32) (param $initialEntries i32) (result i32) - (local $2 i32) - (local $3 i32) - global.get $~lib/memory/__stack_pointer - i32.const 12 - i32.sub - global.set $~lib/memory/__stack_pointer - call $~stack_check - global.get $~lib/memory/__stack_pointer - i64.const 0 - i64.store - global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.store offset=8 - block $1of1 - block $0of1 - block $outOfRange - global.get $~argumentsLength - br_table $0of1 $1of1 $outOfRange - end - unreachable - end - global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.const 2 - i32.const 66 - i32.const 1712 - call $~lib/rt/__newArray - local.tee $initialEntries - i32.store - end - local.get $this - local.set $3 - global.get $~lib/memory/__stack_pointer - local.get $3 - i32.store offset=4 - local.get $3 - local.get $initialEntries - local.set $3 - global.get $~lib/memory/__stack_pointer - local.get $3 - i32.store offset=8 - local.get $3 - call $"~lib/map/Map#constructor" - local.set $3 - global.get $~lib/memory/__stack_pointer - i32.const 12 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $3 + local.get $11 ) (func $"~lib/map/Map#has" (param $this i32) (param $key f64) (result i32) (local $2 i32) @@ -40167,9 +39301,9 @@ local.get $entry i32.eqz if - i32.const 800 - i32.const 864 - i32.const 148 + i32.const 768 + i32.const 832 + i32.const 146 i32.const 17 call $~lib/builtins/abort unreachable @@ -41023,17 +40157,16 @@ return ) (func $"~lib/map/Map#constructor" (param $this i32) (param $initialEntries i32) (result i32) - (local $entriesLength i32) (local $i i32) (local $key f64) (local $value f64) (local $hashCode i32) (local $entry i32) (local $entries i32) - (local $9 i32) - (local $entry|10 i32) + (local $8 i32) + (local $entry|9 i32) (local $bucketPtrBase i32) - (local $12 i32) + (local $11 i32) global.get $~lib/memory/__stack_pointer i32.const 16 i32.sub @@ -41056,38 +40189,38 @@ i32.store end local.get $this - local.set $12 + local.set $11 global.get $~lib/memory/__stack_pointer - local.get $12 + local.get $11 i32.store offset=4 - local.get $12 + local.get $11 i32.const 0 i32.const 4 i32.const 4 i32.mul call $~lib/arraybuffer/ArrayBuffer#constructor - local.set $12 + local.set $11 global.get $~lib/memory/__stack_pointer - local.get $12 + local.get $11 i32.store offset=8 - local.get $12 + local.get $11 call $"~lib/map/Map#set:buckets" local.get $this - local.set $12 + local.set $11 global.get $~lib/memory/__stack_pointer - local.get $12 + local.get $11 i32.store offset=4 - local.get $12 + local.get $11 i32.const 4 i32.const 1 i32.sub call $"~lib/map/Map#set:bucketsMask" local.get $this - local.set $12 + local.set $11 global.get $~lib/memory/__stack_pointer - local.get $12 + local.get $11 i32.store offset=4 - local.get $12 + local.get $11 i32.const 0 i32.const 4 block $"~lib/map/ENTRY_SIZE|inlined.5" (result i32) @@ -41096,79 +40229,81 @@ end i32.mul call $~lib/arraybuffer/ArrayBuffer#constructor - local.set $12 + local.set $11 global.get $~lib/memory/__stack_pointer - local.get $12 + local.get $11 i32.store offset=8 - local.get $12 + local.get $11 call $"~lib/map/Map#set:entries" local.get $this - local.set $12 + local.set $11 global.get $~lib/memory/__stack_pointer - local.get $12 + local.get $11 i32.store offset=4 - local.get $12 + local.get $11 i32.const 4 call $"~lib/map/Map#set:entriesCapacity" local.get $this - local.set $12 + local.set $11 global.get $~lib/memory/__stack_pointer - local.get $12 + local.get $11 i32.store offset=4 - local.get $12 + local.get $11 i32.const 0 call $"~lib/map/Map#set:entriesOffset" local.get $this - local.set $12 + local.set $11 global.get $~lib/memory/__stack_pointer - local.get $12 + local.get $11 i32.store offset=4 - local.get $12 + local.get $11 i32.const 0 call $"~lib/map/Map#set:entriesCount" local.get $initialEntries - local.set $12 - global.get $~lib/memory/__stack_pointer - local.get $12 - i32.store offset=4 - local.get $12 - call $"~lib/array/Array<~lib/map/KeyValue>#get:length" - local.set $entriesLength - local.get $entriesLength - i32.const 0 - i32.gt_s if - local.get $entriesLength + local.get $initialEntries + local.set $11 + global.get $~lib/memory/__stack_pointer + local.get $11 + i32.store offset=4 + local.get $11 + call $"~lib/array/Array<~lib/map/KeyValue>#get:length" local.get $this - local.set $12 + local.set $11 global.get $~lib/memory/__stack_pointer - local.get $12 + local.get $11 i32.store offset=4 - local.get $12 + local.get $11 call $"~lib/map/Map#get:entriesCapacity" i32.ge_s if local.get $this - local.set $12 + local.set $11 global.get $~lib/memory/__stack_pointer - local.get $12 + local.get $11 i32.store offset=4 - local.get $12 - local.get $entriesLength + local.get $11 + local.get $initialEntries + local.set $11 + global.get $~lib/memory/__stack_pointer + local.get $11 + i32.store offset=8 + local.get $11 + call $"~lib/array/Array<~lib/map/KeyValue>#get:length" call $"~lib/map/Map#set:bucketsMask" end local.get $this - local.set $12 + local.set $11 global.get $~lib/memory/__stack_pointer - local.get $12 + local.get $11 i32.store offset=4 - local.get $12 + local.get $11 local.get $this - local.set $12 + local.set $11 global.get $~lib/memory/__stack_pointer - local.get $12 + local.get $11 i32.store offset=8 - local.get $12 + local.get $11 call $"~lib/map/Map#get:bucketsMask" i32.const 1 i32.shl @@ -41179,48 +40314,54 @@ local.set $i loop $for-loop|0 local.get $i - local.get $entriesLength + local.get $initialEntries + local.set $11 + global.get $~lib/memory/__stack_pointer + local.get $11 + i32.store offset=4 + local.get $11 + call $"~lib/array/Array<~lib/map/KeyValue>#get:length" i32.lt_s if local.get $initialEntries - local.set $12 + local.set $11 global.get $~lib/memory/__stack_pointer - local.get $12 + local.get $11 i32.store offset=8 - local.get $12 + local.get $11 local.get $i call $"~lib/array/Array<~lib/map/KeyValue>#__get" - local.set $12 + local.set $11 global.get $~lib/memory/__stack_pointer - local.get $12 + local.get $11 i32.store offset=4 - local.get $12 + local.get $11 call $"~lib/map/KeyValue#get:key" local.set $key local.get $initialEntries - local.set $12 + local.set $11 global.get $~lib/memory/__stack_pointer - local.get $12 + local.get $11 i32.store offset=8 - local.get $12 + local.get $11 local.get $i call $"~lib/array/Array<~lib/map/KeyValue>#__get" - local.set $12 + local.set $11 global.get $~lib/memory/__stack_pointer - local.get $12 + local.get $11 i32.store offset=4 - local.get $12 + local.get $11 call $"~lib/map/KeyValue#get:value" local.set $value local.get $key call $~lib/util/hash/HASH local.set $hashCode local.get $this - local.set $12 + local.set $11 global.get $~lib/memory/__stack_pointer - local.get $12 + local.get $11 i32.store offset=4 - local.get $12 + local.get $11 local.get $key local.get $hashCode call $"~lib/map/Map#find" @@ -41235,92 +40376,92 @@ else global.get $~lib/memory/__stack_pointer local.get $this - local.set $12 + local.set $11 global.get $~lib/memory/__stack_pointer - local.get $12 + local.get $11 i32.store offset=4 - local.get $12 + local.get $11 call $"~lib/map/Map#get:entries" local.tee $entries i32.store offset=12 local.get $entries local.get $this - local.set $12 + local.set $11 global.get $~lib/memory/__stack_pointer - local.get $12 + local.get $11 i32.store offset=4 - local.get $12 + local.get $11 local.get $this - local.set $12 + local.set $11 global.get $~lib/memory/__stack_pointer - local.get $12 + local.get $11 i32.store offset=8 - local.get $12 + local.get $11 call $"~lib/map/Map#get:entriesOffset" - local.tee $9 + local.tee $8 i32.const 1 i32.add call $"~lib/map/Map#set:entriesOffset" - local.get $9 + local.get $8 block $"~lib/map/ENTRY_SIZE|inlined.4" (result i32) i32.const 24 br $"~lib/map/ENTRY_SIZE|inlined.4" end i32.mul i32.add - local.set $entry|10 - local.get $entry|10 + local.set $entry|9 + local.get $entry|9 local.get $key call $"~lib/map/MapEntry#set:key" i32.const 0 drop - local.get $entry|10 + local.get $entry|9 local.get $value call $"~lib/map/MapEntry#set:value" i32.const 0 drop local.get $this - local.set $12 + local.set $11 global.get $~lib/memory/__stack_pointer - local.get $12 + local.get $11 i32.store offset=4 - local.get $12 + local.get $11 local.get $this - local.set $12 + local.set $11 global.get $~lib/memory/__stack_pointer - local.get $12 + local.get $11 i32.store offset=8 - local.get $12 + local.get $11 call $"~lib/map/Map#get:entriesCount" i32.const 1 i32.add call $"~lib/map/Map#set:entriesCount" local.get $this - local.set $12 + local.set $11 global.get $~lib/memory/__stack_pointer - local.get $12 + local.get $11 i32.store offset=4 - local.get $12 + local.get $11 call $"~lib/map/Map#get:buckets" local.get $hashCode local.get $this - local.set $12 + local.set $11 global.get $~lib/memory/__stack_pointer - local.get $12 + local.get $11 i32.store offset=4 - local.get $12 + local.get $11 call $"~lib/map/Map#get:bucketsMask" i32.and i32.const 4 i32.mul i32.add local.set $bucketPtrBase - local.get $entry|10 + local.get $entry|9 local.get $bucketPtrBase i32.load call $"~lib/map/MapEntry#set:taggedNext" local.get $bucketPtrBase - local.get $entry|10 + local.get $entry|9 i32.store end local.get $i @@ -41332,63 +40473,12 @@ end end local.get $this - local.set $12 + local.set $11 global.get $~lib/memory/__stack_pointer i32.const 16 i32.add global.set $~lib/memory/__stack_pointer - local.get $12 - ) - (func $"~lib/map/Map#constructor@varargs" (param $this i32) (param $initialEntries i32) (result i32) - (local $2 i32) - (local $3 i32) - global.get $~lib/memory/__stack_pointer - i32.const 12 - i32.sub - global.set $~lib/memory/__stack_pointer - call $~stack_check - global.get $~lib/memory/__stack_pointer - i64.const 0 - i64.store - global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.store offset=8 - block $1of1 - block $0of1 - block $outOfRange - global.get $~argumentsLength - br_table $0of1 $1of1 $outOfRange - end - unreachable - end - global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.const 2 - i32.const 70 - i32.const 1744 - call $~lib/rt/__newArray - local.tee $initialEntries - i32.store - end - local.get $this - local.set $3 - global.get $~lib/memory/__stack_pointer - local.get $3 - i32.store offset=4 - local.get $3 - local.get $initialEntries - local.set $3 - global.get $~lib/memory/__stack_pointer - local.get $3 - i32.store offset=8 - local.get $3 - call $"~lib/map/Map#constructor" - local.set $3 - global.get $~lib/memory/__stack_pointer - i32.const 12 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $3 + local.get $11 ) (func $~lib/array/Array#get:length (param $this i32) (result i32) (local $1 i32) @@ -42060,9 +41150,7 @@ global.get $~lib/memory/__stack_pointer i32.const 0 i32.const 0 - global.set $~argumentsLength - i32.const 0 - call $"~lib/map/Map#constructor@varargs" + call $"~lib/map/Map#constructor" local.tee $map i32.store f64.const 0 @@ -42084,7 +41172,7 @@ i32.eqz if i32.const 0 - i32.const 752 + i32.const 720 i32.const 7 i32.const 5 call $~lib/builtins/abort @@ -42114,7 +41202,7 @@ i32.eqz if i32.const 0 - i32.const 752 + i32.const 720 i32.const 9 i32.const 5 call $~lib/builtins/abort @@ -42136,7 +41224,7 @@ i32.eqz if i32.const 0 - i32.const 752 + i32.const 720 i32.const 10 i32.const 5 call $~lib/builtins/abort @@ -42161,7 +41249,7 @@ i32.eqz if i32.const 0 - i32.const 752 + i32.const 720 i32.const 12 i32.const 3 call $~lib/builtins/abort @@ -42185,7 +41273,7 @@ i32.eqz if i32.const 0 - i32.const 752 + i32.const 720 i32.const 16 i32.const 5 call $~lib/builtins/abort @@ -42207,7 +41295,7 @@ i32.eqz if i32.const 0 - i32.const 752 + i32.const 720 i32.const 17 i32.const 5 call $~lib/builtins/abort @@ -42237,7 +41325,7 @@ i32.eqz if i32.const 0 - i32.const 752 + i32.const 720 i32.const 19 i32.const 5 call $~lib/builtins/abort @@ -42259,7 +41347,7 @@ i32.eqz if i32.const 0 - i32.const 752 + i32.const 720 i32.const 20 i32.const 5 call $~lib/builtins/abort @@ -42284,7 +41372,7 @@ i32.eqz if i32.const 0 - i32.const 752 + i32.const 720 i32.const 22 i32.const 3 call $~lib/builtins/abort @@ -42313,17 +41401,13 @@ global.get $~lib/memory/__stack_pointer i32.const 0 i32.const 0 - global.set $~argumentsLength - i32.const 0 - call $"~lib/map/Map#constructor@varargs" + call $"~lib/map/Map#constructor" local.tee $keyMap i32.store offset=16 global.get $~lib/memory/__stack_pointer i32.const 0 i32.const 0 - global.set $~argumentsLength - i32.const 0 - call $"~lib/map/Map#constructor@varargs" + call $"~lib/map/Map#constructor" local.tee $valMap i32.store offset=20 i32.const 0 @@ -42368,7 +41452,7 @@ i32.eqz if i32.const 0 - i32.const 752 + i32.const 720 i32.const 32 i32.const 5 call $~lib/builtins/abort @@ -42388,7 +41472,7 @@ i32.eqz if i32.const 0 - i32.const 752 + i32.const 720 i32.const 33 i32.const 5 call $~lib/builtins/abort @@ -42437,7 +41521,7 @@ i32.eqz if i32.const 0 - i32.const 752 + i32.const 720 i32.const 37 i32.const 3 call $~lib/builtins/abort @@ -42455,7 +41539,7 @@ i32.eqz if i32.const 0 - i32.const 752 + i32.const 720 i32.const 38 i32.const 3 call $~lib/builtins/abort @@ -42479,7 +41563,7 @@ i32.eqz if i32.const 0 - i32.const 752 + i32.const 720 i32.const 42 i32.const 5 call $~lib/builtins/abort @@ -42501,7 +41585,7 @@ i32.eqz if i32.const 0 - i32.const 752 + i32.const 720 i32.const 43 i32.const 5 call $~lib/builtins/abort @@ -42528,7 +41612,7 @@ i32.eqz if i32.const 0 - i32.const 752 + i32.const 720 i32.const 45 i32.const 5 call $~lib/builtins/abort @@ -42553,7 +41637,7 @@ i32.eqz if i32.const 0 - i32.const 752 + i32.const 720 i32.const 47 i32.const 3 call $~lib/builtins/abort @@ -42578,7 +41662,7 @@ i32.eqz if i32.const 0 - i32.const 752 + i32.const 720 i32.const 51 i32.const 5 call $~lib/builtins/abort @@ -42608,7 +41692,7 @@ i32.eqz if i32.const 0 - i32.const 752 + i32.const 720 i32.const 53 i32.const 5 call $~lib/builtins/abort @@ -42635,7 +41719,7 @@ i32.eqz if i32.const 0 - i32.const 752 + i32.const 720 i32.const 55 i32.const 5 call $~lib/builtins/abort @@ -42660,7 +41744,7 @@ i32.eqz if i32.const 0 - i32.const 752 + i32.const 720 i32.const 57 i32.const 3 call $~lib/builtins/abort @@ -42685,7 +41769,7 @@ i32.eqz if i32.const 0 - i32.const 752 + i32.const 720 i32.const 61 i32.const 3 call $~lib/builtins/abort @@ -42695,7 +41779,7 @@ i32.const 0 i32.const 2 i32.const 66 - i32.const 1776 + i32.const 1168 call $~lib/rt/__newArray local.tee $initialEntries i32.store offset=24 @@ -42774,7 +41858,7 @@ i32.eqz if i32.const 0 - i32.const 752 + i32.const 720 i32.const 74 i32.const 3 call $~lib/builtins/abort @@ -42798,7 +41882,7 @@ i32.eqz if i32.const 0 - i32.const 752 + i32.const 720 i32.const 76 i32.const 5 call $~lib/builtins/abort @@ -42820,7 +41904,7 @@ i32.eqz if i32.const 0 - i32.const 752 + i32.const 720 i32.const 77 i32.const 5 call $~lib/builtins/abort @@ -42847,7 +41931,7 @@ i32.eqz if i32.const 0 - i32.const 752 + i32.const 720 i32.const 79 i32.const 5 call $~lib/builtins/abort @@ -42872,7 +41956,7 @@ i32.eqz if i32.const 0 - i32.const 752 + i32.const 720 i32.const 81 i32.const 3 call $~lib/builtins/abort @@ -42991,7 +42075,7 @@ i32.add global.set $~lib/memory/__stack_pointer ) - (func $~lib/array/Array#__visit (param $this i32) (param $cookie i32) + (func $~lib/array/Array#__visit (param $this i32) (param $cookie i32) (local $2 i32) global.get $~lib/memory/__stack_pointer i32.const 4 @@ -43009,7 +42093,7 @@ local.get $2 i32.store local.get $2 - call $~lib/array/Array#get:buffer + call $~lib/array/Array#get:buffer local.get $cookie call $~lib/rt/itcms/__visit global.get $~lib/memory/__stack_pointer @@ -43017,7 +42101,7 @@ i32.add global.set $~lib/memory/__stack_pointer ) - (func $~lib/array/Array#__visit (param $this i32) (param $cookie i32) + (func $~lib/array/Array#__visit (param $this i32) (param $cookie i32) (local $2 i32) global.get $~lib/memory/__stack_pointer i32.const 4 @@ -43035,7 +42119,7 @@ local.get $2 i32.store local.get $2 - call $~lib/array/Array#get:buffer + call $~lib/array/Array#get:buffer local.get $cookie call $~lib/rt/itcms/__visit global.get $~lib/memory/__stack_pointer diff --git a/tests/compiler/std/map.release.wat b/tests/compiler/std/map.release.wat index 280826b38e..43d986e57c 100644 --- a/tests/compiler/std/map.release.wat +++ b/tests/compiler/std/map.release.wat @@ -2,27 +2,28 @@ (type $0 (func (param i32 i32))) (type $1 (func (param i32) (result i32))) (type $2 (func (param i32 i32) (result i32))) - (type $3 (func)) - (type $4 (func (param i32 i32 i32))) - (type $5 (func (param i32 i32 i32) (result i32))) - (type $6 (func (param i32))) - (type $7 (func (param i32 i64 i32) (result i32))) - (type $8 (func (param i32 i64) (result i32))) - (type $9 (func (param i32 i32 i32 i32))) - (type $10 (func (param i32 i32 i64))) - (type $11 (func (result i32))) - (type $12 (func (param i32 i64 i32))) - (type $13 (func (param i32 i64 i64))) - (type $14 (func (param i32 i64))) - (type $15 (func (param i32 f32) (result i32))) - (type $16 (func (param i32 f64 i32) (result i32))) - (type $17 (func (param i32 f64) (result i32))) - (type $18 (func (param i32 f32 i32) (result i32))) - (type $19 (func (param i32 f32 i32))) + (type $3 (func (param i32 i32 i32))) + (type $4 (func)) + (type $5 (func (param i32))) + (type $6 (func (param i32 i32 i32) (result i32))) + (type $7 (func (param i32 i64) (result i32))) + (type $8 (func (param i32 i32 i32 i32))) + (type $9 (func (param i32 i32 i64))) + (type $10 (func (param i32 i64 i32) (result i32))) + (type $11 (func (param i32 i64 i32))) + (type $12 (func (param i32 i64 i64))) + (type $13 (func (param i32 i64))) + (type $14 (func (param i32 f32) (result i32))) + (type $15 (func (param i32 f64) (result i32))) + (type $16 (func (result i32))) + (type $17 (func (param i32 f32 i32) (result i32))) + (type $18 (func (param i32 f32 i32))) + (type $19 (func (param i32 f32 f32))) (type $20 (func (param i32 f32))) - (type $21 (func (param i32 f64 i32))) - (type $22 (func (param i32 f64 f64))) - (type $23 (func (param i32 f64))) + (type $21 (func (param i32 f64 i32) (result i32))) + (type $22 (func (param i32 f64 i32))) + (type $23 (func (param i32 f64 f64))) + (type $24 (func (param i32 f64))) (import "env" "abort" (func $~lib/builtins/abort (param i32 i32 i32 i32))) (global $~lib/rt/itcms/total (mut i32) (i32.const 0)) (global $~lib/rt/itcms/threshold (mut i32) (i32.const 0)) @@ -34,7 +35,7 @@ (global $~lib/rt/itcms/white (mut i32) (i32.const 0)) (global $~lib/rt/itcms/fromSpace (mut i32) (i32.const 0)) (global $~lib/rt/tlsf/ROOT (mut i32) (i32.const 0)) - (global $~lib/memory/__stack_pointer (mut i32) (i32.const 35872)) + (global $~lib/memory/__stack_pointer (mut i32) (i32.const 35264)) (memory $0 1) (data $0 (i32.const 1036) ",") (data $0.1 (i32.const 1048) "\02\00\00\00\1c\00\00\00I\00n\00v\00a\00l\00i\00d\00 \00l\00e\00n\00g\00t\00h") @@ -54,14 +55,14 @@ (data $10.1 (i32.const 1560) "\02\00\00\00\1a\00\00\00~\00l\00i\00b\00/\00a\00r\00r\00a\00y\00.\00t\00s") (data $11 (i32.const 1596) "|") (data $11.1 (i32.const 1608) "\02\00\00\00^\00\00\00E\00l\00e\00m\00e\00n\00t\00 \00t\00y\00p\00e\00 \00m\00u\00s\00t\00 \00b\00e\00 \00n\00u\00l\00l\00a\00b\00l\00e\00 \00i\00f\00 \00a\00r\00r\00a\00y\00 \00i\00s\00 \00h\00o\00l\00e\00y") - (data $12 (i32.const 1724) "\1c") - (data $12.1 (i32.const 1736) "\01") - (data $13 (i32.const 1756) ",") - (data $13.1 (i32.const 1768) "\02\00\00\00\14\00\00\00s\00t\00d\00/\00m\00a\00p\00.\00t\00s") - (data $14 (i32.const 1804) "<") - (data $14.1 (i32.const 1816) "\02\00\00\00$\00\00\00K\00e\00y\00 \00d\00o\00e\00s\00 \00n\00o\00t\00 \00e\00x\00i\00s\00t") - (data $15 (i32.const 1868) ",") - (data $15.1 (i32.const 1880) "\02\00\00\00\16\00\00\00~\00l\00i\00b\00/\00m\00a\00p\00.\00t\00s") + (data $12 (i32.const 1724) ",") + (data $12.1 (i32.const 1736) "\02\00\00\00\14\00\00\00s\00t\00d\00/\00m\00a\00p\00.\00t\00s") + (data $13 (i32.const 1772) "<") + (data $13.1 (i32.const 1784) "\02\00\00\00$\00\00\00K\00e\00y\00 \00d\00o\00e\00s\00 \00n\00o\00t\00 \00e\00x\00i\00s\00t") + (data $14 (i32.const 1836) ",") + (data $14.1 (i32.const 1848) "\02\00\00\00\16\00\00\00~\00l\00i\00b\00/\00m\00a\00p\00.\00t\00s") + (data $15 (i32.const 1884) "\1c") + (data $15.1 (i32.const 1896) "\01") (data $16 (i32.const 1916) "\1c") (data $16.1 (i32.const 1928) "\01") (data $17 (i32.const 1948) "\1c") @@ -80,45 +81,7 @@ (data $23.1 (i32.const 2152) "\01") (data $24 (i32.const 2172) "\1c") (data $24.1 (i32.const 2184) "\01") - (data $25 (i32.const 2204) "\1c") - (data $25.1 (i32.const 2216) "\01") - (data $26 (i32.const 2236) "\1c") - (data $26.1 (i32.const 2248) "\01") - (data $27 (i32.const 2268) "\1c") - (data $27.1 (i32.const 2280) "\01") - (data $28 (i32.const 2300) "\1c") - (data $28.1 (i32.const 2312) "\01") - (data $29 (i32.const 2332) "\1c") - (data $29.1 (i32.const 2344) "\01") - (data $30 (i32.const 2364) "\1c") - (data $30.1 (i32.const 2376) "\01") - (data $31 (i32.const 2396) "\1c") - (data $31.1 (i32.const 2408) "\01") - (data $32 (i32.const 2428) "\1c") - (data $32.1 (i32.const 2440) "\01") - (data $33 (i32.const 2460) "\1c") - (data $33.1 (i32.const 2472) "\01") - (data $34 (i32.const 2492) "\1c") - (data $34.1 (i32.const 2504) "\01") - (data $35 (i32.const 2524) "\1c") - (data $35.1 (i32.const 2536) "\01") - (data $36 (i32.const 2556) "\1c") - (data $36.1 (i32.const 2568) "\01") - (data $37 (i32.const 2588) "\1c") - (data $37.1 (i32.const 2600) "\01") - (data $38 (i32.const 2620) "\1c") - (data $38.1 (i32.const 2632) "\01") - (data $39 (i32.const 2652) "\1c") - (data $39.1 (i32.const 2664) "\01") - (data $40 (i32.const 2684) "\1c") - (data $40.1 (i32.const 2696) "\01") - (data $41 (i32.const 2716) "\1c") - (data $41.1 (i32.const 2728) "\01") - (data $42 (i32.const 2748) "\1c") - (data $42.1 (i32.const 2760) "\01") - (data $43 (i32.const 2780) "\1c") - (data $43.1 (i32.const 2792) "\01") - (data $44 (i32.const 2816) "G\00\00\00 \00\00\00 \00\00\00 \00\00\00\00\00\00\00\10\89\10\00 \00\00\00\02A\00\00\02\t\00\00B\08\00\00P\88\10\00 \00\00\00\02A\00\00\10\t\12\00 \00\00\00\02A\00\00\10\89\00\00 \00\00\00\02A\00\00B\00\00\00P\80\00\00 \00\00\00\02A\00\00\10\t\11\00 \00\00\00\02A\00\00\82\08\00\00\90\08\11\00 \00\00\00\02A\00\00\10\t\01\00 \00\00\00\02A\00\00\82\00\00\00\90\00\01\00 \00\00\00\02A\00\00\10\t\02\00 \00\00\00\02A\00\00\02\01\00\00\10\01\02\00 \00\00\00\02A\00\00\10\t\14\00 \00\00\00\02A\00\00\02\n\00\00\10\n\14\00 \00\00\00\02A\00\00\10\t\04\00 \00\00\00\02A\00\00\02\02\00\00\10\02\04\00 \00\00\00\02A\00\00\10\t2\00 \00\00\00\02A\00\00\02\19\00\00\10\192\00 \00\00\00\02A\00\00\10\t4\00 \00\00\00\02A\00\00\02\1a\00\00\10\1a4\00 \00\00\00\02A") + (data $25 (i32.const 2208) "G\00\00\00 \00\00\00 \00\00\00 \00\00\00\00\00\00\00\10\89\10\00 \00\00\00\02A\00\00B\08\00\00\02\t\00\00P\88\10\00 \00\00\00\02A\00\00\10\t\12\00 \00\00\00\02A\00\00\10\89\00\00 \00\00\00\02A\00\00B\00\00\00P\80\00\00 \00\00\00\02A\00\00\10\t\11\00 \00\00\00\02A\00\00\82\08\00\00\90\08\11\00 \00\00\00\02A\00\00\10\t\01\00 \00\00\00\02A\00\00\82\00\00\00\90\00\01\00 \00\00\00\02A\00\00\10\t\02\00 \00\00\00\02A\00\00\02\01\00\00\10\01\02\00 \00\00\00\02A\00\00\10\t\14\00 \00\00\00\02A\00\00\02\n\00\00\10\n\14\00 \00\00\00\02A\00\00\10\t\04\00 \00\00\00\02A\00\00\02\02\00\00\10\02\04\00 \00\00\00\02A\00\00\10\t2\00 \00\00\00\02A\00\00\02\19\00\00\10\192\00 \00\00\00\02A\00\00\10\t4\00 \00\00\00\02A\00\00\02\1a\00\00\10\1a4\00 \00\00\00\02A") (export "memory" (memory $0)) (start $~start) (func $~lib/rt/itcms/visitRoots @@ -130,7 +93,7 @@ call $~lib/rt/itcms/__visit i32.const 1616 call $~lib/rt/itcms/__visit - i32.const 1824 + i32.const 1792 call $~lib/rt/itcms/__visit i32.const 1168 call $~lib/rt/itcms/__visit @@ -195,7 +158,7 @@ local.get $1 global.set $~lib/rt/itcms/iter end - block $__inlined_func$~lib/rt/itcms/Object#unlink$1827 + block $__inlined_func$~lib/rt/itcms/Object#unlink$1790 local.get $0 i32.load offset=4 i32.const -4 @@ -207,7 +170,7 @@ i32.load offset=8 i32.eqz local.get $0 - i32.const 35872 + i32.const 35264 i32.lt_u i32.and i32.eqz @@ -219,7 +182,7 @@ call $~lib/builtins/abort unreachable end - br $__inlined_func$~lib/rt/itcms/Object#unlink$1827 + br $__inlined_func$~lib/rt/itcms/Object#unlink$1790 end local.get $0 i32.load offset=8 @@ -256,7 +219,7 @@ i32.const 1 else local.get $1 - i32.const 2816 + i32.const 2208 i32.load i32.gt_u if @@ -270,7 +233,7 @@ local.get $1 i32.const 2 i32.shl - i32.const 2820 + i32.const 2212 i32.add i32.load i32.const 32 @@ -854,10 +817,10 @@ if unreachable end - i32.const 35872 + i32.const 35264 i32.const 0 i32.store - i32.const 37440 + i32.const 36832 i32.const 0 i32.store loop $for-loop|0 @@ -868,7 +831,7 @@ local.get $0 i32.const 2 i32.shl - i32.const 35872 + i32.const 35264 i32.add i32.const 0 i32.store offset=4 @@ -886,7 +849,7 @@ i32.add i32.const 2 i32.shl - i32.const 35872 + i32.const 35264 i32.add i32.const 0 i32.store offset=96 @@ -904,14 +867,14 @@ br $for-loop|0 end end - i32.const 35872 - i32.const 37444 + i32.const 35264 + i32.const 36836 memory.size i64.extend_i32_s i64.const 16 i64.shl call $~lib/rt/tlsf/addMemory - i32.const 35872 + i32.const 35264 global.set $~lib/rt/tlsf/ROOT ) (func $~lib/rt/itcms/step (result i32) @@ -996,7 +959,7 @@ local.set $0 loop $while-continue|0 local.get $0 - i32.const 35872 + i32.const 35264 i32.lt_u if local.get $0 @@ -1092,7 +1055,7 @@ unreachable end local.get $0 - i32.const 35872 + i32.const 35264 i32.lt_u if local.get $0 @@ -1115,7 +1078,7 @@ i32.const 4 i32.add local.tee $0 - i32.const 35872 + i32.const 35264 i32.ge_u if global.get $~lib/rt/tlsf/ROOT @@ -1772,7 +1735,7 @@ i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 3104 + i32.const 2496 i32.lt_s br_if $folding-inner3 global.get $~lib/memory/__stack_pointer @@ -1801,7 +1764,7 @@ i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 3104 + i32.const 2496 i32.lt_s br_if $folding-inner3 global.get $~lib/memory/__stack_pointer @@ -1859,7 +1822,7 @@ i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 3104 + i32.const 2496 i32.lt_s br_if $folding-inner3 global.get $~lib/memory/__stack_pointer @@ -1877,8 +1840,8 @@ global.set $~lib/memory/__stack_pointer return end - i32.const 35904 - i32.const 35952 + i32.const 35296 + i32.const 35344 i32.const 1 i32.const 1 call $~lib/builtins/abort @@ -1888,7 +1851,7 @@ memory.size i32.const 16 i32.shl - i32.const 35872 + i32.const 35264 i32.sub i32.const 1 i32.shr_u @@ -1967,11 +1930,11 @@ i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 3104 + i32.const 2496 i32.lt_s if - i32.const 35904 - i32.const 35952 + i32.const 35296 + i32.const 35344 i32.const 1 i32.const 1 call $~lib/builtins/abort @@ -2003,11 +1966,11 @@ i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 3104 + i32.const 2496 i32.lt_s if - i32.const 35904 - i32.const 35952 + i32.const 35296 + i32.const 35344 i32.const 1 i32.const 1 call $~lib/builtins/abort @@ -2191,11 +2154,11 @@ i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 3104 + i32.const 2496 i32.lt_s if - i32.const 35904 - i32.const 35952 + i32.const 35296 + i32.const 35344 i32.const 1 i32.const 1 call $~lib/builtins/abort @@ -2255,11 +2218,11 @@ i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 3104 + i32.const 2496 i32.lt_s if - i32.const 35904 - i32.const 35952 + i32.const 35296 + i32.const 35344 i32.const 1 i32.const 1 call $~lib/builtins/abort @@ -2332,17 +2295,16 @@ (local $5 i32) (local $6 i32) (local $7 i32) - (local $8 i32) global.get $~lib/memory/__stack_pointer i32.const 16 i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 3104 + i32.const 2496 i32.lt_s if - i32.const 35904 - i32.const 35952 + i32.const 35296 + i32.const 35344 i32.const 1 i32.const 1 call $~lib/builtins/abort @@ -2416,19 +2378,16 @@ local.get $1 i32.const 0 i32.store offset=20 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 local.get $0 - call $"~lib/array/Array<~lib/map/KeyValue>#get:length" - local.tee $3 - i32.const 0 - i32.gt_s if + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + local.get $0 + call $"~lib/array/Array<~lib/map/KeyValue>#get:length" global.get $~lib/memory/__stack_pointer local.get $1 i32.store offset=4 - local.get $3 local.get $1 i32.load offset=12 i32.ge_s @@ -2436,8 +2395,12 @@ global.get $~lib/memory/__stack_pointer local.get $1 i32.store offset=4 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=8 local.get $1 - local.get $3 + local.get $0 + call $"~lib/array/Array<~lib/map/KeyValue>#get:length" i32.store offset=4 end global.get $~lib/memory/__stack_pointer @@ -2455,9 +2418,13 @@ i32.or call $"~lib/map/Map#rehash" loop $for-loop|0 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + local.get $0 + call $"~lib/array/Array<~lib/map/KeyValue>#get:length" local.get $2 - local.get $3 - i32.lt_s + i32.gt_s if global.get $~lib/memory/__stack_pointer local.get $0 @@ -2465,32 +2432,32 @@ local.get $0 local.get $2 call $"~lib/array/Array<~lib/map/KeyValue>#__get" - local.set $4 + local.set $3 global.get $~lib/memory/__stack_pointer - local.get $4 + local.get $3 i32.store offset=4 - local.get $4 + local.get $3 i32.load8_s - local.set $4 + local.set $3 global.get $~lib/memory/__stack_pointer local.get $0 i32.store offset=8 local.get $0 local.get $2 call $"~lib/array/Array<~lib/map/KeyValue>#__get" - local.set $5 + local.set $4 global.get $~lib/memory/__stack_pointer - local.get $5 + local.get $4 i32.store offset=4 - local.get $5 + local.get $4 i32.load offset=4 - local.set $6 + local.set $5 global.get $~lib/memory/__stack_pointer local.get $1 i32.store offset=4 local.get $1 - local.get $4 - local.get $4 + local.get $3 + local.get $3 i32.const -1028477379 i32.mul i32.const 374761394 @@ -2499,31 +2466,31 @@ i32.rotl i32.const 668265263 i32.mul - local.tee $5 + local.tee $4 i32.const 15 i32.shr_u - local.get $5 + local.get $4 i32.xor i32.const -2048144777 i32.mul - local.tee $5 + local.tee $4 i32.const 13 i32.shr_u - local.get $5 + local.get $4 i32.xor i32.const -1028477379 i32.mul - local.tee $5 + local.tee $4 i32.const 16 i32.shr_u - local.get $5 + local.get $4 i32.xor - local.tee $7 + local.tee $6 call $"~lib/map/Map#find" - local.tee $5 + local.tee $4 if + local.get $4 local.get $5 - local.get $6 i32.store offset=4 else global.get $~lib/memory/__stack_pointer @@ -2532,7 +2499,7 @@ global.get $~lib/memory/__stack_pointer local.get $1 i32.load offset=8 - local.tee $5 + local.tee $4 i32.store offset=12 global.get $~lib/memory/__stack_pointer local.get $1 @@ -2543,20 +2510,20 @@ local.get $1 local.get $1 i32.load offset=16 - local.tee $8 + local.tee $7 i32.const 1 i32.add i32.store offset=16 - local.get $5 - local.get $8 + local.get $4 + local.get $7 i32.const 12 i32.mul i32.add - local.tee $5 - local.get $4 + local.tee $4 + local.get $3 i32.store8 + local.get $4 local.get $5 - local.get $6 i32.store offset=4 global.get $~lib/memory/__stack_pointer local.get $1 @@ -2575,24 +2542,24 @@ i32.store offset=4 local.get $1 i32.load - local.set $4 + local.set $3 global.get $~lib/memory/__stack_pointer local.get $1 i32.store offset=4 - local.get $5 local.get $4 - local.get $7 + local.get $3 + local.get $6 local.get $1 i32.load offset=4 i32.and i32.const 2 i32.shl i32.add - local.tee $4 + local.tee $3 i32.load i32.store offset=8 + local.get $3 local.get $4 - local.get $5 i32.store end local.get $2 @@ -2615,11 +2582,11 @@ i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 3104 + i32.const 2496 i32.lt_s if - i32.const 35904 - i32.const 35952 + i32.const 35296 + i32.const 35344 i32.const 1 i32.const 1 call $~lib/builtins/abort @@ -2679,11 +2646,11 @@ i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 3104 + i32.const 2496 i32.lt_s if - i32.const 35904 - i32.const 35952 + i32.const 35296 + i32.const 35344 i32.const 1 i32.const 1 call $~lib/builtins/abort @@ -2869,11 +2836,11 @@ i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 3104 + i32.const 2496 i32.lt_s if - i32.const 35904 - i32.const 35952 + i32.const 35296 + i32.const 35344 i32.const 1 i32.const 1 call $~lib/builtins/abort @@ -2920,9 +2887,9 @@ local.tee $0 i32.eqz if - i32.const 1824 - i32.const 1888 - i32.const 148 + i32.const 1792 + i32.const 1856 + i32.const 146 i32.const 17 call $~lib/builtins/abort unreachable @@ -2940,11 +2907,11 @@ i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 3104 + i32.const 2496 i32.lt_s if - i32.const 35904 - i32.const 35952 + i32.const 35296 + i32.const 35344 i32.const 1 i32.const 1 call $~lib/builtins/abort @@ -2971,11 +2938,11 @@ i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 3104 + i32.const 2496 i32.lt_s if - i32.const 35904 - i32.const 35952 + i32.const 35296 + i32.const 35344 i32.const 1 i32.const 1 call $~lib/builtins/abort @@ -3042,7 +3009,7 @@ select local.set $1 end - block $__inlined_func$~lib/rt/itcms/__renew$1779 + block $__inlined_func$~lib/rt/itcms/__renew$1760 local.get $4 i32.const 20 i32.sub @@ -3060,7 +3027,7 @@ i32.store offset=16 local.get $4 local.set $2 - br $__inlined_func$~lib/rt/itcms/__renew$1779 + br $__inlined_func$~lib/rt/itcms/__renew$1760 end local.get $1 local.get $3 @@ -3109,11 +3076,11 @@ i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 3104 + i32.const 2496 i32.lt_s if - i32.const 35904 - i32.const 35952 + i32.const 35296 + i32.const 35344 i32.const 1 i32.const 1 call $~lib/builtins/abort @@ -3176,11 +3143,11 @@ i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 3104 + i32.const 2496 i32.lt_s if - i32.const 35904 - i32.const 35952 + i32.const 35296 + i32.const 35344 i32.const 1 i32.const 1 call $~lib/builtins/abort @@ -3214,11 +3181,11 @@ i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 3104 + i32.const 2496 i32.lt_s if - i32.const 35904 - i32.const 35952 + i32.const 35296 + i32.const 35344 i32.const 1 i32.const 1 call $~lib/builtins/abort @@ -3232,7 +3199,7 @@ i64.store offset=8 global.get $~lib/memory/__stack_pointer i32.const 16 - i32.const 7 + i32.const 8 call $~lib/rt/itcms/__new local.tee $1 i32.store @@ -3333,11 +3300,11 @@ i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 3104 + i32.const 2496 i32.lt_s if - i32.const 35904 - i32.const 35952 + i32.const 35296 + i32.const 35344 i32.const 1 i32.const 1 call $~lib/builtins/abort @@ -3402,11 +3369,11 @@ i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 3104 + i32.const 2496 i32.lt_s if - i32.const 35904 - i32.const 35952 + i32.const 35296 + i32.const 35344 i32.const 1 i32.const 1 call $~lib/builtins/abort @@ -3442,11 +3409,11 @@ i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 3104 + i32.const 2496 i32.lt_s if - i32.const 35904 - i32.const 35952 + i32.const 35296 + i32.const 35344 i32.const 1 i32.const 1 call $~lib/builtins/abort @@ -3519,7 +3486,7 @@ global.set $~lib/memory/__stack_pointer local.get $5 ) - (func $"~lib/map/Map#rehash" (param $0 i32) (param $1 i32) + (func $"~lib/map/Map#rehash" (param $0 i32) (param $1 i32) (local $2 i32) (local $3 i32) (local $4 i32) @@ -3532,11 +3499,11 @@ i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 3104 + i32.const 2496 i32.lt_s if - i32.const 35904 - i32.const 35952 + i32.const 35296 + i32.const 35344 i32.const 1 i32.const 1 call $~lib/builtins/abort @@ -3565,8 +3532,8 @@ i32.const 3 i32.div_s local.tee $5 - i32.const 3 - i32.shl + i32.const 12 + i32.mul call $~lib/arraybuffer/ArrayBuffer#constructor local.tee $3 i32.store offset=4 @@ -3582,8 +3549,8 @@ local.get $7 local.get $0 i32.load offset=16 - i32.const 3 - i32.shl + i32.const 12 + i32.mul i32.add local.set $4 local.get $3 @@ -3594,27 +3561,27 @@ i32.ne if local.get $7 - i32.load offset=4 + i32.load offset=8 i32.const 1 i32.and i32.eqz if local.get $2 local.get $7 - i32.load8_s + i32.load local.tee $8 - i32.store8 + i32.store local.get $2 local.get $7 - i32.load8_s offset=1 - i32.store8 offset=1 + i32.load offset=4 + i32.store offset=4 local.get $2 local.get $6 local.get $1 local.get $8 i32.const -1028477379 i32.mul - i32.const 374761394 + i32.const 374761397 i32.add i32.const 17 i32.rotl @@ -3645,17 +3612,17 @@ i32.add local.tee $8 i32.load - i32.store offset=4 + i32.store offset=8 local.get $8 local.get $2 i32.store local.get $2 - i32.const 8 + i32.const 12 i32.add local.set $2 end local.get $7 - i32.const 8 + i32.const 12 i32.add local.set $7 br $while-continue|0 @@ -3714,18 +3681,18 @@ i32.add global.set $~lib/memory/__stack_pointer ) - (func $"~lib/map/Map#find" (param $0 i32) (param $1 i32) (param $2 i32) (result i32) + (func $"~lib/map/Map#find" (param $0 i32) (param $1 i32) (param $2 i32) (result i32) (local $3 i32) global.get $~lib/memory/__stack_pointer i32.const 4 i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 3104 + i32.const 2496 i32.lt_s if - i32.const 35904 - i32.const 35952 + i32.const 35296 + i32.const 35344 i32.const 1 i32.const 1 call $~lib/builtins/abort @@ -3755,18 +3722,16 @@ local.get $0 if local.get $0 - i32.load offset=4 + i32.load offset=8 local.tee $2 i32.const 1 i32.and if (result i32) i32.const 0 else - local.get $0 - i32.load8_u local.get $1 - i32.const 255 - i32.and + local.get $0 + i32.load i32.eq end if @@ -3790,7 +3755,7 @@ global.set $~lib/memory/__stack_pointer i32.const 0 ) - (func $"~lib/map/Map#constructor" (param $0 i32) (result i32) + (func $"~lib/map/Map#constructor" (param $0 i32) (result i32) (local $1 i32) (local $2 i32) (local $3 i32) @@ -3798,17 +3763,16 @@ (local $5 i32) (local $6 i32) (local $7 i32) - (local $8 i32) global.get $~lib/memory/__stack_pointer i32.const 16 i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 3104 + i32.const 2496 i32.lt_s if - i32.const 35904 - i32.const 35952 + i32.const 35296 + i32.const 35344 i32.const 1 i32.const 1 call $~lib/builtins/abort @@ -3822,7 +3786,7 @@ i64.store offset=8 global.get $~lib/memory/__stack_pointer i32.const 24 - i32.const 9 + i32.const 12 call $~lib/rt/itcms/__new local.tee $1 i32.store @@ -3851,7 +3815,7 @@ global.get $~lib/memory/__stack_pointer local.get $1 i32.store offset=4 - i32.const 32 + i32.const 48 call $~lib/arraybuffer/ArrayBuffer#constructor local.set $3 global.get $~lib/memory/__stack_pointer @@ -3882,19 +3846,16 @@ local.get $1 i32.const 0 i32.store offset=20 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 local.get $0 - call $"~lib/array/Array<~lib/map/KeyValue>#get:length" - local.tee $3 - i32.const 0 - i32.gt_s if + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + local.get $0 + call $"~lib/array/Array<~lib/map/KeyValue>#get:length" global.get $~lib/memory/__stack_pointer local.get $1 i32.store offset=4 - local.get $3 local.get $1 i32.load offset=12 i32.ge_s @@ -3902,8 +3863,12 @@ global.get $~lib/memory/__stack_pointer local.get $1 i32.store offset=4 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=8 local.get $1 - local.get $3 + local.get $0 + call $"~lib/array/Array<~lib/map/KeyValue>#get:length" i32.store offset=4 end global.get $~lib/memory/__stack_pointer @@ -3919,11 +3884,15 @@ i32.shl i32.const 1 i32.or - call $"~lib/map/Map#rehash" + call $"~lib/map/Map#rehash" loop $for-loop|0 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + local.get $0 + call $"~lib/array/Array<~lib/map/KeyValue>#get:length" local.get $2 - local.get $3 - i32.lt_s + i32.gt_s if global.get $~lib/memory/__stack_pointer local.get $0 @@ -3931,66 +3900,66 @@ local.get $0 local.get $2 call $"~lib/array/Array<~lib/map/KeyValue>#__get" - local.set $4 + local.set $3 global.get $~lib/memory/__stack_pointer - local.get $4 + local.get $3 i32.store offset=4 - local.get $4 - i32.load8_s - local.set $4 + local.get $3 + i32.load + local.set $3 global.get $~lib/memory/__stack_pointer local.get $0 i32.store offset=8 local.get $0 local.get $2 call $"~lib/array/Array<~lib/map/KeyValue>#__get" - local.set $5 + local.set $4 global.get $~lib/memory/__stack_pointer - local.get $5 + local.get $4 i32.store offset=4 - local.get $5 - i32.load8_s offset=1 - local.set $6 + local.get $4 + i32.load offset=4 + local.set $5 global.get $~lib/memory/__stack_pointer local.get $1 i32.store offset=4 local.get $1 - local.get $4 - local.get $4 + local.get $3 + local.get $3 i32.const -1028477379 i32.mul - i32.const 374761394 + i32.const 374761397 i32.add i32.const 17 i32.rotl i32.const 668265263 i32.mul - local.tee $5 + local.tee $4 i32.const 15 i32.shr_u - local.get $5 + local.get $4 i32.xor i32.const -2048144777 i32.mul - local.tee $5 + local.tee $4 i32.const 13 i32.shr_u - local.get $5 + local.get $4 i32.xor i32.const -1028477379 i32.mul - local.tee $5 + local.tee $4 i32.const 16 i32.shr_u - local.get $5 + local.get $4 i32.xor - local.tee $7 - call $"~lib/map/Map#find" - local.tee $5 + local.tee $6 + call $"~lib/map/Map#find" + local.tee $4 if + local.get $4 local.get $5 - local.get $6 - i32.store8 offset=1 + i32.store offset=4 else global.get $~lib/memory/__stack_pointer local.get $1 @@ -3998,7 +3967,7 @@ global.get $~lib/memory/__stack_pointer local.get $1 i32.load offset=8 - local.tee $5 + local.tee $4 i32.store offset=12 global.get $~lib/memory/__stack_pointer local.get $1 @@ -4009,21 +3978,21 @@ local.get $1 local.get $1 i32.load offset=16 - local.tee $8 + local.tee $7 i32.const 1 i32.add i32.store offset=16 - local.get $5 - local.get $8 - i32.const 3 - i32.shl + local.get $4 + local.get $7 + i32.const 12 + i32.mul i32.add - local.tee $5 + local.tee $4 + local.get $3 + i32.store local.get $4 - i32.store8 local.get $5 - local.get $6 - i32.store8 offset=1 + i32.store offset=4 global.get $~lib/memory/__stack_pointer local.get $1 i32.store offset=4 @@ -4041,24 +4010,24 @@ i32.store offset=4 local.get $1 i32.load - local.set $4 + local.set $3 global.get $~lib/memory/__stack_pointer local.get $1 i32.store offset=4 - local.get $5 local.get $4 - local.get $7 + local.get $3 + local.get $6 local.get $1 i32.load offset=4 i32.and i32.const 2 i32.shl i32.add - local.tee $4 + local.tee $3 i32.load - i32.store offset=4 + i32.store offset=8 + local.get $3 local.get $4 - local.get $5 i32.store end local.get $2 @@ -4075,650 +4044,497 @@ global.set $~lib/memory/__stack_pointer local.get $1 ) - (func $"~lib/map/Map#rehash" (param $0 i32) (param $1 i32) - (local $2 i32) - (local $3 i32) - (local $4 i32) - (local $5 i32) - (local $6 i32) - (local $7 i32) - (local $8 i32) + (func $~lib/array/Array#__get (param $0 i32) (param $1 i32) (result i32) global.get $~lib/memory/__stack_pointer - i32.const 16 + i32.const 4 i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 3104 + i32.const 2496 i32.lt_s if - i32.const 35904 - i32.const 35952 + i32.const 35296 + i32.const 35344 i32.const 1 i32.const 1 call $~lib/builtins/abort unreachable end global.get $~lib/memory/__stack_pointer - i64.const 0 - i64.store - global.get $~lib/memory/__stack_pointer - i64.const 0 - i64.store offset=8 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.const 1 - i32.add - local.tee $2 - i32.const 2 - i32.shl - call $~lib/arraybuffer/ArrayBuffer#constructor - local.tee $6 + i32.const 0 i32.store global.get $~lib/memory/__stack_pointer - local.get $2 - i32.const 3 - i32.shl - i32.const 3 - i32.div_s - local.tee $5 - i32.const 12 - i32.mul - call $~lib/arraybuffer/ArrayBuffer#constructor - local.tee $3 - i32.store offset=4 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=8 - local.get $0 - i32.load offset=8 - local.set $7 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=8 - local.get $7 - local.get $0 - i32.load offset=16 - i32.const 12 - i32.mul - i32.add - local.set $4 - local.get $3 - local.set $2 - loop $while-continue|0 - local.get $4 - local.get $7 - i32.ne - if - local.get $7 - i32.load offset=8 - i32.const 1 - i32.and - i32.eqz - if - local.get $2 - local.get $7 - i32.load - local.tee $8 - i32.store - local.get $2 - local.get $7 - i32.load offset=4 - i32.store offset=4 - local.get $2 - local.get $6 - local.get $1 - local.get $8 - i32.const -1028477379 - i32.mul - i32.const 374761397 - i32.add - i32.const 17 - i32.rotl - i32.const 668265263 - i32.mul - local.tee $8 - local.get $8 - i32.const 15 - i32.shr_u - i32.xor - i32.const -2048144777 - i32.mul - local.tee $8 - local.get $8 - i32.const 13 - i32.shr_u - i32.xor - i32.const -1028477379 - i32.mul - local.tee $8 - local.get $8 - i32.const 16 - i32.shr_u - i32.xor - i32.and - i32.const 2 - i32.shl - i32.add - local.tee $8 - i32.load - i32.store offset=8 - local.get $8 - local.get $2 - i32.store - local.get $2 - i32.const 12 - i32.add - local.set $2 - end - local.get $7 - i32.const 12 - i32.add - local.set $7 - br $while-continue|0 - end - end - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=8 - global.get $~lib/memory/__stack_pointer - local.get $6 - i32.store offset=12 local.get $0 - local.get $6 i32.store - local.get $0 - local.get $6 - i32.const 0 - call $~lib/rt/itcms/__link - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=8 - local.get $0 local.get $1 - i32.store offset=4 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=8 - global.get $~lib/memory/__stack_pointer - local.get $3 - i32.store offset=12 - local.get $0 - local.get $3 - i32.store offset=8 - local.get $0 - local.get $3 - i32.const 0 - call $~lib/rt/itcms/__link - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=8 local.get $0 - local.get $5 - i32.store offset=12 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=8 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=12 - local.get $0 - local.get $0 - i32.load offset=20 - i32.store offset=16 - global.get $~lib/memory/__stack_pointer - i32.const 16 - i32.add - global.set $~lib/memory/__stack_pointer - ) - (func $"~lib/map/Map#find" (param $0 i32) (param $1 i32) (param $2 i32) (result i32) - (local $3 i32) - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.sub - global.set $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - i32.const 3104 - i32.lt_s + i32.load offset=12 + i32.ge_u if - i32.const 35904 - i32.const 35952 - i32.const 1 - i32.const 1 + i32.const 1360 + i32.const 1568 + i32.const 114 + i32.const 42 call $~lib/builtins/abort unreachable end global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.store - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store - local.get $0 - i32.load - global.get $~lib/memory/__stack_pointer local.get $0 i32.store - local.get $2 local.get $0 i32.load offset=4 - i32.and + local.get $1 i32.const 2 i32.shl i32.add i32.load - local.set $0 - loop $while-continue|0 - local.get $0 - if - local.get $0 - i32.load offset=8 - local.tee $2 - i32.const 1 - i32.and - if (result i32) - i32.const 0 - else - local.get $1 - local.get $0 - i32.load - i32.eq - end - if - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $0 - return - end - local.get $2 - i32.const -2 - i32.and - local.set $0 - br $while-continue|0 - end - end global.get $~lib/memory/__stack_pointer i32.const 4 i32.add global.set $~lib/memory/__stack_pointer - i32.const 0 ) - (func $"~lib/map/Map#constructor" (param $0 i32) (result i32) - (local $1 i32) - (local $2 i32) + (func $"~lib/map/Map#set" (param $0 i32) (param $1 i32) (param $2 i32) (local $3 i32) (local $4 i32) (local $5 i32) (local $6 i32) (local $7 i32) (local $8 i32) + (local $9 i32) + (local $10 i32) + (local $11 i32) global.get $~lib/memory/__stack_pointer - i32.const 16 + i32.const 12 i32.sub global.set $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - i32.const 3104 - i32.lt_s - if - i32.const 35904 - i32.const 35952 - i32.const 1 - i32.const 1 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - i64.const 0 - i64.store - global.get $~lib/memory/__stack_pointer - i64.const 0 - i64.store offset=8 - global.get $~lib/memory/__stack_pointer - i32.const 24 - i32.const 12 - call $~lib/rt/itcms/__new - local.tee $1 - i32.store - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - i32.const 16 - call $~lib/arraybuffer/ArrayBuffer#constructor - local.set $3 - global.get $~lib/memory/__stack_pointer - local.get $3 - i32.store offset=8 - local.get $1 - local.get $3 - i32.store - local.get $1 - local.get $3 - i32.const 0 - call $~lib/rt/itcms/__link - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - local.get $1 - i32.const 3 - i32.store offset=4 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - i32.const 48 - call $~lib/arraybuffer/ArrayBuffer#constructor - local.set $3 - global.get $~lib/memory/__stack_pointer - local.get $3 - i32.store offset=8 - local.get $1 - local.get $3 - i32.store offset=8 - local.get $1 - local.get $3 - i32.const 0 - call $~lib/rt/itcms/__link - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - local.get $1 - i32.const 4 - i32.store offset=12 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - local.get $1 - i32.const 0 - i32.store offset=16 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - local.get $1 - i32.const 0 - i32.store offset=20 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 - call $"~lib/array/Array<~lib/map/KeyValue>#get:length" - local.tee $3 - i32.const 0 - i32.gt_s - if + block $folding-inner0 + global.get $~lib/memory/__stack_pointer + i32.const 2496 + i32.lt_s + br_if $folding-inner0 + global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store offset=8 global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store local.get $1 - i32.store offset=4 + i32.extend8_s + i32.const -1028477379 + i32.mul + i32.const 374761394 + i32.add + i32.const 17 + i32.rotl + i32.const 668265263 + i32.mul + local.tee $3 + i32.const 15 + i32.shr_u local.get $3 - local.get $1 - i32.load offset=12 - i32.ge_s - if + i32.xor + i32.const -2048144777 + i32.mul + local.tee $3 + i32.const 13 + i32.shr_u + local.get $3 + i32.xor + i32.const -1028477379 + i32.mul + local.tee $3 + i32.const 16 + i32.shr_u + local.get $3 + i32.xor + local.set $8 + block $"__inlined_func$~lib/map/Map#find$3" (result i32) global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - local.get $1 + i32.const 4 + i32.sub + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 2496 + i32.lt_s + br_if $folding-inner0 + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store + global.get $~lib/memory/__stack_pointer + local.get $0 + local.tee $3 + i32.store local.get $3 - i32.store offset=4 + i32.load + global.get $~lib/memory/__stack_pointer + local.get $3 + i32.store + local.get $8 + local.get $3 + i32.load offset=4 + i32.and + i32.const 2 + i32.shl + i32.add + i32.load + local.set $0 + loop $while-continue|0 + local.get $0 + if + local.get $0 + i32.load offset=4 + local.tee $4 + i32.const 1 + i32.and + if (result i32) + i32.const 0 + else + local.get $0 + i32.load8_u + local.get $1 + i32.const 255 + i32.and + i32.eq + end + if + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $0 + br $"__inlined_func$~lib/map/Map#find$3" + end + local.get $4 + i32.const -2 + i32.and + local.set $0 + br $while-continue|0 + end + end + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + i32.const 0 end - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=8 - local.get $1 - local.get $1 - i32.load offset=4 - i32.const 1 - i32.shl - i32.const 1 - i32.or - call $"~lib/map/Map#rehash" - loop $for-loop|0 + local.tee $0 + if + local.get $0 local.get $2 + i32.store8 offset=1 + else + global.get $~lib/memory/__stack_pointer local.get $3 - i32.lt_s + i32.store + local.get $3 + i32.load offset=16 + global.get $~lib/memory/__stack_pointer + local.get $3 + i32.store + local.get $3 + i32.load offset=12 + i32.eq if global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=8 - local.get $0 - local.get $2 - call $"~lib/array/Array<~lib/map/KeyValue>#__get" - local.set $4 - global.get $~lib/memory/__stack_pointer - local.get $4 - i32.store offset=4 - local.get $4 - i32.load - local.set $4 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=8 - local.get $0 - local.get $2 - call $"~lib/array/Array<~lib/map/KeyValue>#__get" - local.set $5 + local.get $3 + i32.store global.get $~lib/memory/__stack_pointer - local.get $5 + local.get $3 i32.store offset=4 - local.get $5 - i32.load offset=4 - local.set $6 + local.get $3 + i32.load offset=20 global.get $~lib/memory/__stack_pointer - local.get $1 + local.get $3 i32.store offset=4 - local.get $1 - local.get $4 - local.get $4 - i32.const -1028477379 - i32.mul - i32.const 374761397 - i32.add - i32.const 17 - i32.rotl - i32.const 668265263 - i32.mul - local.tee $5 - i32.const 15 - i32.shr_u - local.get $5 - i32.xor - i32.const -2048144777 - i32.mul - local.tee $5 - i32.const 13 - i32.shr_u - local.get $5 - i32.xor - i32.const -1028477379 + local.get $3 + i32.load offset=12 + i32.const 3 i32.mul - local.tee $5 - i32.const 16 - i32.shr_u - local.get $5 - i32.xor - local.tee $7 - call $"~lib/map/Map#find" - local.tee $5 - if - local.get $5 - local.get $6 - i32.store offset=4 - else + i32.const 4 + i32.div_s + i32.lt_s + if (result i32) global.get $~lib/memory/__stack_pointer - local.get $1 + local.get $3 i32.store offset=4 + local.get $3 + i32.load offset=4 + else global.get $~lib/memory/__stack_pointer - local.get $1 - i32.load offset=8 - local.tee $5 - i32.store offset=12 - global.get $~lib/memory/__stack_pointer - local.get $1 + local.get $3 i32.store offset=4 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=8 - local.get $1 - local.get $1 - i32.load offset=16 - local.tee $8 - i32.const 1 - i32.add - i32.store offset=16 - local.get $5 - local.get $8 - i32.const 12 - i32.mul - i32.add - local.tee $5 - local.get $4 - i32.store - local.get $5 - local.get $6 - i32.store offset=4 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=8 - local.get $1 - local.get $1 - i32.load offset=20 - i32.const 1 - i32.add - i32.store offset=20 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - local.get $1 - i32.load - local.set $4 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - local.get $5 - local.get $4 - local.get $7 - local.get $1 + local.get $3 i32.load offset=4 - i32.and - i32.const 2 + i32.const 1 i32.shl - i32.add - local.tee $4 - i32.load - i32.store offset=8 - local.get $4 - local.get $5 - i32.store + i32.const 1 + i32.or end - local.get $2 + local.set $7 + global.get $~lib/memory/__stack_pointer + i32.const 16 + i32.sub + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 2496 + i32.lt_s + br_if $folding-inner0 + global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store + global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store offset=8 + global.get $~lib/memory/__stack_pointer + local.get $7 i32.const 1 i32.add - local.set $2 - br $for-loop|0 + local.tee $0 + i32.const 2 + i32.shl + call $~lib/arraybuffer/ArrayBuffer#constructor + local.tee $6 + i32.store + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.const 3 + i32.shl + i32.const 3 + i32.div_s + local.tee $9 + i32.const 3 + i32.shl + call $~lib/arraybuffer/ArrayBuffer#constructor + local.tee $4 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + local.get $3 + i32.store offset=8 + local.get $3 + i32.load offset=8 + local.set $5 + global.get $~lib/memory/__stack_pointer + local.get $3 + i32.store offset=8 + local.get $5 + local.get $3 + i32.load offset=16 + i32.const 3 + i32.shl + i32.add + local.set $10 + local.get $4 + local.set $0 + loop $while-continue|00 + local.get $5 + local.get $10 + i32.ne + if + local.get $5 + i32.load offset=4 + i32.const 1 + i32.and + i32.eqz + if + local.get $0 + local.get $5 + i32.load8_s + local.tee $11 + i32.store8 + local.get $0 + local.get $5 + i32.load8_s offset=1 + i32.store8 offset=1 + local.get $0 + local.get $6 + local.get $7 + local.get $11 + i32.const -1028477379 + i32.mul + i32.const 374761394 + i32.add + i32.const 17 + i32.rotl + i32.const 668265263 + i32.mul + local.tee $11 + local.get $11 + i32.const 15 + i32.shr_u + i32.xor + i32.const -2048144777 + i32.mul + local.tee $11 + local.get $11 + i32.const 13 + i32.shr_u + i32.xor + i32.const -1028477379 + i32.mul + local.tee $11 + local.get $11 + i32.const 16 + i32.shr_u + i32.xor + i32.and + i32.const 2 + i32.shl + i32.add + local.tee $11 + i32.load + i32.store offset=4 + local.get $11 + local.get $0 + i32.store + local.get $0 + i32.const 8 + i32.add + local.set $0 + end + local.get $5 + i32.const 8 + i32.add + local.set $5 + br $while-continue|00 + end + end + global.get $~lib/memory/__stack_pointer + local.get $3 + i32.store offset=8 + global.get $~lib/memory/__stack_pointer + local.get $6 + i32.store offset=12 + local.get $3 + local.get $6 + i32.store + local.get $3 + local.get $6 + i32.const 0 + call $~lib/rt/itcms/__link + global.get $~lib/memory/__stack_pointer + local.get $3 + i32.store offset=8 + local.get $3 + local.get $7 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + local.get $3 + i32.store offset=8 + global.get $~lib/memory/__stack_pointer + local.get $4 + i32.store offset=12 + local.get $3 + local.get $4 + i32.store offset=8 + local.get $3 + local.get $4 + i32.const 0 + call $~lib/rt/itcms/__link + global.get $~lib/memory/__stack_pointer + local.get $3 + i32.store offset=8 + local.get $3 + local.get $9 + i32.store offset=12 + global.get $~lib/memory/__stack_pointer + local.get $3 + i32.store offset=8 + global.get $~lib/memory/__stack_pointer + local.get $3 + i32.store offset=12 + local.get $3 + local.get $3 + i32.load offset=20 + i32.store offset=16 + global.get $~lib/memory/__stack_pointer + i32.const 16 + i32.add + global.set $~lib/memory/__stack_pointer end + global.get $~lib/memory/__stack_pointer + local.get $3 + i32.store + global.get $~lib/memory/__stack_pointer + local.get $3 + i32.load offset=8 + local.tee $0 + i32.store offset=8 + global.get $~lib/memory/__stack_pointer + local.get $3 + i32.store + global.get $~lib/memory/__stack_pointer + local.get $3 + i32.store offset=4 + local.get $3 + local.get $3 + i32.load offset=16 + local.tee $4 + i32.const 1 + i32.add + i32.store offset=16 + local.get $0 + local.get $4 + i32.const 3 + i32.shl + i32.add + local.tee $0 + local.get $1 + i32.store8 + local.get $0 + local.get $2 + i32.store8 offset=1 + global.get $~lib/memory/__stack_pointer + local.get $3 + i32.store + global.get $~lib/memory/__stack_pointer + local.get $3 + i32.store offset=4 + local.get $3 + local.get $3 + i32.load offset=20 + i32.const 1 + i32.add + i32.store offset=20 + global.get $~lib/memory/__stack_pointer + local.get $3 + i32.store + local.get $3 + i32.load + local.set $1 + global.get $~lib/memory/__stack_pointer + local.get $3 + i32.store + local.get $0 + local.get $1 + local.get $8 + local.get $3 + i32.load offset=4 + i32.and + i32.const 2 + i32.shl + i32.add + local.tee $1 + i32.load + i32.store offset=4 + local.get $1 + local.get $0 + i32.store end + global.get $~lib/memory/__stack_pointer + i32.const 12 + i32.add + global.set $~lib/memory/__stack_pointer + return end - global.get $~lib/memory/__stack_pointer - i32.const 16 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $1 - ) - (func $"~lib/map/Map#constructor@varargs" (result i32) - (local $0 i32) - global.get $~lib/memory/__stack_pointer - i32.const 12 - i32.sub - global.set $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - i32.const 3104 - i32.lt_s - if - i32.const 35904 - i32.const 35952 - i32.const 1 - i32.const 1 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - i64.const 0 - i64.store - global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.store offset=8 - global.get $~lib/memory/__stack_pointer - i32.const 14 - i32.const 1968 - call $~lib/rt/__newArray - local.tee $0 - i32.store - global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.store offset=4 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=8 - local.get $0 - call $"~lib/map/Map#constructor" - global.get $~lib/memory/__stack_pointer - i32.const 12 - i32.add - global.set $~lib/memory/__stack_pointer - ) - (func $~lib/array/Array#__get (param $0 i32) (param $1 i32) (result i32) - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.sub - global.set $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - i32.const 3104 - i32.lt_s - if - i32.const 35904 - i32.const 35952 - i32.const 1 - i32.const 1 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.store - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store - local.get $1 - local.get $0 - i32.load offset=12 - i32.ge_u - if - i32.const 1360 - i32.const 1568 - i32.const 114 - i32.const 42 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store - local.get $0 - i32.load offset=4 - local.get $1 - i32.const 2 - i32.shl - i32.add - i32.load - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.add - global.set $~lib/memory/__stack_pointer + i32.const 35296 + i32.const 35344 + i32.const 1 + i32.const 1 + call $~lib/builtins/abort + unreachable ) (func $"~lib/map/Map#set" (param $0 i32) (param $1 i32) (param $2 i32) (local $3 i32) @@ -4729,11 +4545,11 @@ i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 3104 + i32.const 2496 i32.lt_s if - i32.const 35904 - i32.const 35952 + i32.const 35296 + i32.const 35344 i32.const 1 i32.const 1 call $~lib/builtins/abort @@ -4919,11 +4735,11 @@ i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 3104 + i32.const 2496 i32.lt_s if - i32.const 35904 - i32.const 35952 + i32.const 35296 + i32.const 35344 i32.const 1 i32.const 1 call $~lib/builtins/abort @@ -5056,11 +4872,11 @@ i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 3104 + i32.const 2496 i32.lt_s if - i32.const 35904 - i32.const 35952 + i32.const 35296 + i32.const 35344 i32.const 1 i32.const 1 call $~lib/builtins/abort @@ -5138,11 +4954,11 @@ i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 3104 + i32.const 2496 i32.lt_s if - i32.const 35904 - i32.const 35952 + i32.const 35296 + i32.const 35344 i32.const 1 i32.const 1 call $~lib/builtins/abort @@ -5200,15 +5016,13 @@ (local $6 i32) (local $7 i32) (local $8 i32) - (local $9 i32) - (local $10 i32) global.get $~lib/memory/__stack_pointer i32.const 40 i32.sub global.set $~lib/memory/__stack_pointer block $folding-inner1 global.get $~lib/memory/__stack_pointer - i32.const 3104 + i32.const 2496 i32.lt_s br_if $folding-inner1 global.get $~lib/memory/__stack_pointer @@ -5216,40 +5030,9 @@ i32.const 40 memory.fill global.get $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - i32.const 12 - i32.sub - global.set $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - i32.const 3104 - i32.lt_s - br_if $folding-inner1 - global.get $~lib/memory/__stack_pointer - i64.const 0 - i64.store - global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.store offset=8 - global.get $~lib/memory/__stack_pointer - i32.const 6 - i32.const 1744 - call $~lib/rt/__newArray - local.tee $4 - i32.store - global.get $~lib/memory/__stack_pointer i32.const 0 - i32.store offset=4 - global.get $~lib/memory/__stack_pointer - local.get $4 - i32.store offset=8 - local.get $4 call $"~lib/map/Map#constructor" - local.set $4 - global.get $~lib/memory/__stack_pointer - i32.const 12 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $4 + local.tee $3 i32.store loop $for-loop|0 local.get $0 @@ -5257,47 +5040,47 @@ i32.lt_s if global.get $~lib/memory/__stack_pointer - local.get $4 + local.get $3 i32.store offset=4 - local.get $4 + local.get $3 local.get $0 call $"~lib/map/Map#has" if i32.const 0 - i32.const 1776 + i32.const 1744 i32.const 7 i32.const 5 call $~lib/builtins/abort unreachable end global.get $~lib/memory/__stack_pointer - local.get $4 + local.get $3 i32.store offset=4 - local.get $4 + local.get $3 local.get $0 local.get $0 i32.const 10 i32.add call $"~lib/map/Map#set" global.get $~lib/memory/__stack_pointer - local.get $4 + local.get $3 i32.store offset=4 - local.get $4 + local.get $3 local.get $0 call $"~lib/map/Map#has" i32.eqz if i32.const 0 - i32.const 1776 + i32.const 1744 i32.const 9 i32.const 5 call $~lib/builtins/abort unreachable end global.get $~lib/memory/__stack_pointer - local.get $4 + local.get $3 i32.store offset=4 - local.get $4 + local.get $3 local.get $0 call $"~lib/map/Map#get" local.get $0 @@ -5306,7 +5089,7 @@ i32.ne if i32.const 0 - i32.const 1776 + i32.const 1744 i32.const 10 i32.const 5 call $~lib/builtins/abort @@ -5320,15 +5103,15 @@ end end global.get $~lib/memory/__stack_pointer - local.get $4 + local.get $3 i32.store offset=4 - local.get $4 + local.get $3 call $"~lib/map/Map#get:size" i32.const 100 i32.ne if i32.const 0 - i32.const 1776 + i32.const 1744 i32.const 12 i32.const 3 call $~lib/builtins/abort @@ -5342,24 +5125,24 @@ i32.lt_s if global.get $~lib/memory/__stack_pointer - local.get $4 + local.get $3 i32.store offset=4 - local.get $4 + local.get $3 local.get $0 call $"~lib/map/Map#has" i32.eqz if i32.const 0 - i32.const 1776 + i32.const 1744 i32.const 16 i32.const 5 call $~lib/builtins/abort unreachable end global.get $~lib/memory/__stack_pointer - local.get $4 + local.get $3 i32.store offset=4 - local.get $4 + local.get $3 local.get $0 call $"~lib/map/Map#get" local.get $0 @@ -5368,40 +5151,40 @@ i32.ne if i32.const 0 - i32.const 1776 + i32.const 1744 i32.const 17 i32.const 5 call $~lib/builtins/abort unreachable end global.get $~lib/memory/__stack_pointer - local.get $4 + local.get $3 i32.store offset=4 - local.get $4 + local.get $3 local.get $0 local.get $0 i32.const 20 i32.add call $"~lib/map/Map#set" global.get $~lib/memory/__stack_pointer - local.get $4 + local.get $3 i32.store offset=4 - local.get $4 + local.get $3 local.get $0 call $"~lib/map/Map#has" i32.eqz if i32.const 0 - i32.const 1776 + i32.const 1744 i32.const 19 i32.const 5 call $~lib/builtins/abort unreachable end global.get $~lib/memory/__stack_pointer - local.get $4 + local.get $3 i32.store offset=4 - local.get $4 + local.get $3 local.get $0 call $"~lib/map/Map#get" local.get $0 @@ -5410,7 +5193,7 @@ i32.ne if i32.const 0 - i32.const 1776 + i32.const 1744 i32.const 20 i32.const 5 call $~lib/builtins/abort @@ -5424,15 +5207,15 @@ end end global.get $~lib/memory/__stack_pointer - local.get $4 + local.get $3 i32.store offset=4 - local.get $4 + local.get $3 call $"~lib/map/Map#get:size" i32.const 100 i32.ne if i32.const 0 - i32.const 1776 + i32.const 1744 i32.const 22 i32.const 3 call $~lib/builtins/abort @@ -5440,38 +5223,38 @@ end global.get $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - local.get $4 + local.get $3 i32.store offset=4 global.get $~lib/memory/__stack_pointer i32.const 8 i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 3104 + i32.const 2496 i32.lt_s br_if $folding-inner1 global.get $~lib/memory/__stack_pointer i64.const 0 i64.store global.get $~lib/memory/__stack_pointer - local.get $4 + local.get $3 i32.store - local.get $4 + local.get $3 i32.load offset=8 - local.set $6 + local.set $5 global.get $~lib/memory/__stack_pointer - local.get $4 + local.get $3 i32.store - local.get $4 + local.get $3 i32.load offset=16 - local.set $7 + local.set $6 global.get $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer i32.const 16 i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 3104 + i32.const 2496 i32.lt_s br_if $folding-inner1 global.get $~lib/memory/__stack_pointer @@ -5482,39 +5265,39 @@ i64.store offset=8 global.get $~lib/memory/__stack_pointer i32.const 16 - i32.const 8 + i32.const 7 call $~lib/rt/itcms/__new - local.tee $3 + local.tee $7 i32.store global.get $~lib/memory/__stack_pointer - local.get $3 + local.get $7 i32.store offset=4 - local.get $3 + local.get $7 i32.const 0 i32.store - local.get $3 + local.get $7 i32.const 0 i32.const 0 call $~lib/rt/itcms/__link global.get $~lib/memory/__stack_pointer - local.get $3 + local.get $7 i32.store offset=4 - local.get $3 + local.get $7 i32.const 0 i32.store offset=4 global.get $~lib/memory/__stack_pointer - local.get $3 + local.get $7 i32.store offset=4 - local.get $3 + local.get $7 i32.const 0 i32.store offset=8 global.get $~lib/memory/__stack_pointer - local.get $3 + local.get $7 i32.store offset=4 - local.get $3 + local.get $7 i32.const 0 i32.store offset=12 - local.get $7 + local.get $6 i32.const 1073741820 i32.gt_u if @@ -5527,62 +5310,62 @@ end global.get $~lib/memory/__stack_pointer i32.const 8 - local.get $7 - local.get $7 + local.get $6 + local.get $6 i32.const 8 i32.le_u select - local.tee $8 + local.tee $0 i32.const 1 call $~lib/rt/itcms/__new - local.tee $9 + local.tee $8 i32.store offset=8 global.get $~lib/memory/__stack_pointer - local.get $3 + local.get $7 i32.store offset=4 global.get $~lib/memory/__stack_pointer - local.get $9 + local.get $8 i32.store offset=12 - local.get $3 - local.get $9 + local.get $7 + local.get $8 i32.store - local.get $3 - local.get $9 + local.get $7 + local.get $8 i32.const 0 call $~lib/rt/itcms/__link global.get $~lib/memory/__stack_pointer - local.get $3 + local.get $7 i32.store offset=4 - local.get $3 - local.get $9 + local.get $7 + local.get $8 i32.store offset=4 global.get $~lib/memory/__stack_pointer - local.get $3 + local.get $7 i32.store offset=4 - local.get $3 - local.get $8 + local.get $7 + local.get $0 i32.store offset=8 global.get $~lib/memory/__stack_pointer - local.get $3 + local.get $7 i32.store offset=4 - local.get $3 local.get $7 + local.get $6 i32.store offset=12 global.get $~lib/memory/__stack_pointer i32.const 16 i32.add global.set $~lib/memory/__stack_pointer - local.get $3 + local.get $7 i32.store offset=4 i32.const 0 local.set $0 loop $for-loop|00 - local.get $2 - local.get $7 + local.get $1 + local.get $6 i32.lt_s if - local.get $6 - local.get $2 + local.get $5 + local.get $1 i32.const 12 i32.mul i32.add @@ -5593,9 +5376,9 @@ i32.eqz if global.get $~lib/memory/__stack_pointer - local.get $3 + local.get $7 i32.store - local.get $3 + local.get $7 local.get $0 local.get $8 i32.load8_s @@ -5605,101 +5388,149 @@ i32.add local.set $0 end - local.get $2 + local.get $1 i32.const 1 i32.add - local.set $2 + local.set $1 br $for-loop|00 end end global.get $~lib/memory/__stack_pointer - local.get $3 + local.get $7 i32.store - local.get $3 + local.get $7 local.get $0 call $~lib/array/Array#set:length global.get $~lib/memory/__stack_pointer i32.const 8 i32.add global.set $~lib/memory/__stack_pointer - local.get $3 + local.get $7 i32.store offset=8 global.get $~lib/memory/__stack_pointer - local.get $4 + local.get $3 i32.store offset=4 global.get $~lib/memory/__stack_pointer - local.get $4 + local.get $3 call $"~lib/map/Map#values" - local.tee $2 + local.tee $0 i32.store offset=12 global.get $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 12 + i32.const 16 i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 3104 + i32.const 2496 i32.lt_s br_if $folding-inner1 global.get $~lib/memory/__stack_pointer i64.const 0 i64.store global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.store offset=8 + i64.const 0 + i64.store offset=8 global.get $~lib/memory/__stack_pointer - i32.const 11 - i32.const 1936 - call $~lib/rt/__newArray - local.tee $5 + i32.const 24 + i32.const 9 + call $~lib/rt/itcms/__new + local.tee $1 i32.store global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + i32.const 16 + call $~lib/arraybuffer/ArrayBuffer#constructor + local.set $4 + global.get $~lib/memory/__stack_pointer + local.get $4 + i32.store offset=8 + local.get $1 + local.get $4 + i32.store + local.get $1 + local.get $4 i32.const 0 + call $~lib/rt/itcms/__link + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + local.get $1 + i32.const 3 i32.store offset=4 global.get $~lib/memory/__stack_pointer - local.get $5 + local.get $1 + i32.store offset=4 + i32.const 32 + call $~lib/arraybuffer/ArrayBuffer#constructor + local.set $4 + global.get $~lib/memory/__stack_pointer + local.get $4 i32.store offset=8 - local.get $5 - call $"~lib/map/Map#constructor" - local.set $5 + local.get $1 + local.get $4 + i32.store offset=8 + local.get $1 + local.get $4 + i32.const 0 + call $~lib/rt/itcms/__link global.get $~lib/memory/__stack_pointer - i32.const 12 + local.get $1 + i32.store offset=4 + local.get $1 + i32.const 4 + i32.store offset=12 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + local.get $1 + i32.const 0 + i32.store offset=16 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + local.get $1 + i32.const 0 + i32.store offset=20 + global.get $~lib/memory/__stack_pointer + i32.const 16 i32.add global.set $~lib/memory/__stack_pointer - local.get $5 + local.get $1 i32.store offset=16 global.get $~lib/memory/__stack_pointer - call $"~lib/map/Map#constructor@varargs" - local.tee $6 + i32.const 0 + call $"~lib/map/Map#constructor" + local.tee $4 i32.store offset=20 loop $for-loop|2 global.get $~lib/memory/__stack_pointer - local.get $3 + local.get $7 i32.store offset=4 - local.get $3 + local.get $7 call $"~lib/array/Array<~lib/map/KeyValue>#get:length" - local.get $1 + local.get $2 i32.gt_s if global.get $~lib/memory/__stack_pointer - local.get $3 + local.get $7 i32.store offset=4 global.get $~lib/memory/__stack_pointer i32.const 4 i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 3104 + i32.const 2496 i32.lt_s br_if $folding-inner1 global.get $~lib/memory/__stack_pointer i32.const 0 i32.store global.get $~lib/memory/__stack_pointer - local.get $3 + local.get $7 i32.store - local.get $1 - local.get $3 + local.get $2 + local.get $7 i32.load offset=12 i32.ge_u if @@ -5711,343 +5542,166 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.get $3 + local.get $7 i32.store - local.get $1 - local.get $3 + local.get $2 + local.get $7 i32.load offset=4 i32.add i32.load8_s - local.set $7 + local.set $5 global.get $~lib/memory/__stack_pointer i32.const 4 i32.add global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - local.get $2 + local.get $0 i32.store offset=4 + local.get $0 local.get $2 - local.get $1 call $~lib/array/Array#__get - local.set $8 + local.set $6 global.get $~lib/memory/__stack_pointer - local.get $4 + local.get $3 i32.store offset=4 - local.get $4 - local.get $7 + local.get $3 + local.get $5 call $"~lib/map/Map#has" i32.eqz if i32.const 0 - i32.const 1776 + i32.const 1744 i32.const 32 i32.const 5 call $~lib/builtins/abort unreachable end global.get $~lib/memory/__stack_pointer - local.get $4 + local.get $3 i32.store offset=4 - local.get $4 - local.get $8 + local.get $3 + local.get $6 i32.const 20 i32.sub call $"~lib/map/Map#has" i32.eqz if i32.const 0 - i32.const 1776 + i32.const 1744 i32.const 33 i32.const 5 call $~lib/builtins/abort unreachable end global.get $~lib/memory/__stack_pointer - local.get $5 + local.get $1 i32.store offset=4 + local.get $1 + local.get $5 + local.get $5 + call $"~lib/map/Map#set" global.get $~lib/memory/__stack_pointer - i32.const 12 + local.get $4 + i32.store offset=4 + local.get $4 + local.get $6 + i32.const 20 i32.sub - global.set $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - i32.const 3104 - i32.lt_s - br_if $folding-inner1 - global.get $~lib/memory/__stack_pointer - i64.const 0 - i64.store - global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.store offset=8 - global.get $~lib/memory/__stack_pointer - local.get $5 - i32.store + local.tee $5 local.get $5 - local.get $7 - local.get $7 - i32.extend8_s - i32.const -1028477379 - i32.mul - i32.const 374761394 + call $"~lib/map/Map#set" + local.get $2 + i32.const 1 i32.add - i32.const 17 - i32.rotl - i32.const 668265263 - i32.mul - local.tee $0 + local.set $2 + br $for-loop|2 + end + end + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + local.get $1 + call $"~lib/map/Map#get:size" + i32.const 100 + i32.ne + if + i32.const 0 + i32.const 1744 + i32.const 37 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + local.get $4 + i32.store offset=4 + local.get $4 + call $"~lib/map/Map#get:size" + i32.const 100 + i32.ne + if + i32.const 0 + i32.const 1744 + i32.const 38 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + i32.const 0 + local.set $0 + loop $for-loop|3 + local.get $0 + i32.const 50 + i32.lt_s + if + global.get $~lib/memory/__stack_pointer + local.get $3 + i32.store offset=4 + local.get $3 local.get $0 - i32.const 15 - i32.shr_u - i32.xor - i32.const -2048144777 - i32.mul - local.tee $0 + call $"~lib/map/Map#has" + i32.eqz + if + i32.const 0 + i32.const 1744 + i32.const 42 + i32.const 5 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + local.get $3 + i32.store offset=4 + local.get $3 local.get $0 - i32.const 13 - i32.shr_u - i32.xor - i32.const -1028477379 - i32.mul - local.tee $0 + call $"~lib/map/Map#get" local.get $0 - i32.const 16 - i32.shr_u - i32.xor - local.tee $9 - call $"~lib/map/Map#find" - local.tee $0 - if - local.get $0 - local.get $7 - i32.store8 offset=1 - else - global.get $~lib/memory/__stack_pointer - local.get $5 - i32.store - local.get $5 - i32.load offset=16 - global.get $~lib/memory/__stack_pointer - local.get $5 - i32.store - local.get $5 - i32.load offset=12 - i32.eq - if - global.get $~lib/memory/__stack_pointer - local.get $5 - i32.store - global.get $~lib/memory/__stack_pointer - local.get $5 - i32.store offset=4 - local.get $5 - i32.load offset=20 - local.set $0 - global.get $~lib/memory/__stack_pointer - local.get $5 - i32.store offset=4 - local.get $5 - local.get $0 - local.get $5 - i32.load offset=12 - i32.const 3 - i32.mul - i32.const 4 - i32.div_s - i32.lt_s - if (result i32) - global.get $~lib/memory/__stack_pointer - local.get $5 - i32.store offset=4 - local.get $5 - i32.load offset=4 - else - global.get $~lib/memory/__stack_pointer - local.get $5 - i32.store offset=4 - local.get $5 - i32.load offset=4 - i32.const 1 - i32.shl - i32.const 1 - i32.or - end - call $"~lib/map/Map#rehash" - end - global.get $~lib/memory/__stack_pointer - local.get $5 - i32.store - global.get $~lib/memory/__stack_pointer - local.get $5 - i32.load offset=8 - local.tee $10 - i32.store offset=8 - global.get $~lib/memory/__stack_pointer - local.get $5 - i32.store - global.get $~lib/memory/__stack_pointer - local.get $5 - i32.store offset=4 - local.get $5 - local.get $5 - i32.load offset=16 - local.tee $0 - i32.const 1 - i32.add - i32.store offset=16 - local.get $10 - local.get $0 - i32.const 3 - i32.shl - i32.add - local.tee $0 - local.get $7 - i32.store8 - local.get $0 - local.get $7 - i32.store8 offset=1 - global.get $~lib/memory/__stack_pointer - local.get $5 - i32.store - global.get $~lib/memory/__stack_pointer - local.get $5 - i32.store offset=4 - local.get $5 - local.get $5 - i32.load offset=20 - i32.const 1 - i32.add - i32.store offset=20 - global.get $~lib/memory/__stack_pointer - local.get $5 - i32.store - local.get $5 - i32.load - local.set $7 - global.get $~lib/memory/__stack_pointer - local.get $5 - i32.store - local.get $0 - local.get $7 - local.get $9 - local.get $5 - i32.load offset=4 - i32.and - i32.const 2 - i32.shl - i32.add - local.tee $7 - i32.load - i32.store offset=4 - local.get $7 - local.get $0 - i32.store - end - global.get $~lib/memory/__stack_pointer - i32.const 12 - i32.add - global.set $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - local.get $6 - i32.store offset=4 - local.get $6 - local.get $8 - i32.const 20 - i32.sub - local.tee $0 - local.get $0 - call $"~lib/map/Map#set" - local.get $1 - i32.const 1 - i32.add - local.set $1 - br $for-loop|2 - end - end - global.get $~lib/memory/__stack_pointer - local.get $5 - i32.store offset=4 - local.get $5 - call $"~lib/map/Map#get:size" - i32.const 100 - i32.ne - if - i32.const 0 - i32.const 1776 - i32.const 37 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - local.get $6 - i32.store offset=4 - local.get $6 - call $"~lib/map/Map#get:size" - i32.const 100 - i32.ne - if - i32.const 0 - i32.const 1776 - i32.const 38 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - i32.const 0 - local.set $0 - loop $for-loop|3 - local.get $0 - i32.const 50 - i32.lt_s - if - global.get $~lib/memory/__stack_pointer - local.get $4 - i32.store offset=4 - local.get $4 - local.get $0 - call $"~lib/map/Map#has" - i32.eqz - if - i32.const 0 - i32.const 1776 - i32.const 42 - i32.const 5 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - local.get $4 - i32.store offset=4 - local.get $4 - local.get $0 - call $"~lib/map/Map#get" - local.get $0 - i32.const 20 - i32.add - i32.ne + i32.const 20 + i32.add + i32.ne if i32.const 0 - i32.const 1776 + i32.const 1744 i32.const 43 i32.const 5 call $~lib/builtins/abort unreachable end global.get $~lib/memory/__stack_pointer - local.get $4 + local.get $3 i32.store offset=4 - local.get $4 + local.get $3 local.get $0 call $"~lib/map/Map#delete" global.get $~lib/memory/__stack_pointer - local.get $4 + local.get $3 i32.store offset=4 - local.get $4 + local.get $3 local.get $0 call $"~lib/map/Map#has" if i32.const 0 - i32.const 1776 + i32.const 1744 i32.const 45 i32.const 5 call $~lib/builtins/abort @@ -6061,15 +5715,15 @@ end end global.get $~lib/memory/__stack_pointer - local.get $4 + local.get $3 i32.store offset=4 - local.get $4 + local.get $3 call $"~lib/map/Map#get:size" i32.const 50 i32.ne if i32.const 0 - i32.const 1776 + i32.const 1744 i32.const 47 i32.const 3 call $~lib/builtins/abort @@ -6083,58 +5737,58 @@ i32.lt_s if global.get $~lib/memory/__stack_pointer - local.get $4 + local.get $3 i32.store offset=4 - local.get $4 + local.get $3 local.get $0 call $"~lib/map/Map#has" if i32.const 0 - i32.const 1776 + i32.const 1744 i32.const 51 i32.const 5 call $~lib/builtins/abort unreachable end global.get $~lib/memory/__stack_pointer - local.get $4 + local.get $3 i32.store offset=4 - local.get $4 + local.get $3 local.get $0 local.get $0 i32.const 10 i32.add call $"~lib/map/Map#set" global.get $~lib/memory/__stack_pointer - local.get $4 + local.get $3 i32.store offset=4 - local.get $4 + local.get $3 local.get $0 call $"~lib/map/Map#has" i32.eqz if i32.const 0 - i32.const 1776 + i32.const 1744 i32.const 53 i32.const 5 call $~lib/builtins/abort unreachable end global.get $~lib/memory/__stack_pointer - local.get $4 + local.get $3 i32.store offset=4 - local.get $4 + local.get $3 local.get $0 call $"~lib/map/Map#delete" global.get $~lib/memory/__stack_pointer - local.get $4 + local.get $3 i32.store offset=4 - local.get $4 + local.get $3 local.get $0 call $"~lib/map/Map#has" if i32.const 0 - i32.const 1776 + i32.const 1744 i32.const 55 i32.const 5 call $~lib/builtins/abort @@ -6148,33 +5802,33 @@ end end global.get $~lib/memory/__stack_pointer - local.get $4 + local.get $3 i32.store offset=4 - local.get $4 + local.get $3 call $"~lib/map/Map#get:size" i32.const 50 i32.ne if i32.const 0 - i32.const 1776 + i32.const 1744 i32.const 57 i32.const 3 call $~lib/builtins/abort unreachable end global.get $~lib/memory/__stack_pointer - local.get $4 + local.get $3 i32.store offset=4 - local.get $4 + local.get $3 call $"~lib/map/Map#clear" global.get $~lib/memory/__stack_pointer - local.get $4 + local.get $3 i32.store offset=4 - local.get $4 + local.get $3 call $"~lib/map/Map#get:size" if i32.const 0 - i32.const 1776 + i32.const 1744 i32.const 61 i32.const 3 call $~lib/builtins/abort @@ -6182,7 +5836,7 @@ end global.get $~lib/memory/__stack_pointer i32.const 6 - i32.const 2000 + i32.const 1904 call $~lib/rt/__newArray local.tee $1 i32.store offset=24 @@ -6202,7 +5856,7 @@ i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 3104 + i32.const 2496 i32.lt_s br_if $folding-inner1 global.get $~lib/memory/__stack_pointer @@ -6284,7 +5938,7 @@ i32.ne if i32.const 0 - i32.const 1776 + i32.const 1744 i32.const 74 i32.const 3 call $~lib/builtins/abort @@ -6306,7 +5960,7 @@ i32.eqz if i32.const 0 - i32.const 1776 + i32.const 1744 i32.const 76 i32.const 5 call $~lib/builtins/abort @@ -6324,7 +5978,7 @@ i32.ne if i32.const 0 - i32.const 1776 + i32.const 1744 i32.const 77 i32.const 5 call $~lib/builtins/abort @@ -6344,7 +5998,7 @@ call $"~lib/map/Map#has" if i32.const 0 - i32.const 1776 + i32.const 1744 i32.const 79 i32.const 5 call $~lib/builtins/abort @@ -6364,7 +6018,7 @@ call $"~lib/map/Map#get:size" if i32.const 0 - i32.const 1776 + i32.const 1744 i32.const 81 i32.const 3 call $~lib/builtins/abort @@ -6376,8 +6030,8 @@ global.set $~lib/memory/__stack_pointer return end - i32.const 35904 - i32.const 35952 + i32.const 35296 + i32.const 35344 i32.const 1 i32.const 1 call $~lib/builtins/abort @@ -6396,11 +6050,11 @@ i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 3104 + i32.const 2496 i32.lt_s if - i32.const 35904 - i32.const 35952 + i32.const 35296 + i32.const 35344 i32.const 1 i32.const 1 call $~lib/builtins/abort @@ -6586,17 +6240,16 @@ (local $5 i32) (local $6 i32) (local $7 i32) - (local $8 i32) global.get $~lib/memory/__stack_pointer i32.const 16 i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 3104 + i32.const 2496 i32.lt_s if - i32.const 35904 - i32.const 35952 + i32.const 35296 + i32.const 35344 i32.const 1 i32.const 1 call $~lib/builtins/abort @@ -6670,19 +6323,16 @@ local.get $1 i32.const 0 i32.store offset=20 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 local.get $0 - call $"~lib/array/Array<~lib/map/KeyValue>#get:length" - local.tee $3 - i32.const 0 - i32.gt_s if + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + local.get $0 + call $"~lib/array/Array<~lib/map/KeyValue>#get:length" global.get $~lib/memory/__stack_pointer local.get $1 i32.store offset=4 - local.get $3 local.get $1 i32.load offset=12 i32.ge_s @@ -6690,8 +6340,12 @@ global.get $~lib/memory/__stack_pointer local.get $1 i32.store offset=4 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=8 local.get $1 - local.get $3 + local.get $0 + call $"~lib/array/Array<~lib/map/KeyValue>#get:length" i32.store offset=4 end global.get $~lib/memory/__stack_pointer @@ -6709,9 +6363,13 @@ i32.or call $"~lib/map/Map#rehash" loop $for-loop|0 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + local.get $0 + call $"~lib/array/Array<~lib/map/KeyValue>#get:length" local.get $2 - local.get $3 - i32.lt_s + i32.gt_s if global.get $~lib/memory/__stack_pointer local.get $0 @@ -6719,32 +6377,32 @@ local.get $0 local.get $2 call $"~lib/array/Array<~lib/map/KeyValue>#__get" - local.set $4 + local.set $3 global.get $~lib/memory/__stack_pointer - local.get $4 + local.get $3 i32.store offset=4 - local.get $4 + local.get $3 i32.load8_u - local.set $4 + local.set $3 global.get $~lib/memory/__stack_pointer local.get $0 i32.store offset=8 local.get $0 local.get $2 call $"~lib/array/Array<~lib/map/KeyValue>#__get" - local.set $5 + local.set $4 global.get $~lib/memory/__stack_pointer - local.get $5 + local.get $4 i32.store offset=4 - local.get $5 + local.get $4 i32.load offset=4 - local.set $6 + local.set $5 global.get $~lib/memory/__stack_pointer local.get $1 i32.store offset=4 local.get $1 - local.get $4 - local.get $4 + local.get $3 + local.get $3 i32.const -1028477379 i32.mul i32.const 374761394 @@ -6753,31 +6411,31 @@ i32.rotl i32.const 668265263 i32.mul - local.tee $5 + local.tee $4 i32.const 15 i32.shr_u - local.get $5 + local.get $4 i32.xor i32.const -2048144777 i32.mul - local.tee $5 + local.tee $4 i32.const 13 i32.shr_u - local.get $5 + local.get $4 i32.xor i32.const -1028477379 i32.mul - local.tee $5 + local.tee $4 i32.const 16 i32.shr_u - local.get $5 + local.get $4 i32.xor - local.tee $7 + local.tee $6 call $"~lib/map/Map#find" - local.tee $5 + local.tee $4 if + local.get $4 local.get $5 - local.get $6 i32.store offset=4 else global.get $~lib/memory/__stack_pointer @@ -6786,7 +6444,7 @@ global.get $~lib/memory/__stack_pointer local.get $1 i32.load offset=8 - local.tee $5 + local.tee $4 i32.store offset=12 global.get $~lib/memory/__stack_pointer local.get $1 @@ -6797,20 +6455,20 @@ local.get $1 local.get $1 i32.load offset=16 - local.tee $8 + local.tee $7 i32.const 1 i32.add i32.store offset=16 - local.get $5 - local.get $8 + local.get $4 + local.get $7 i32.const 12 i32.mul i32.add - local.tee $5 - local.get $4 + local.tee $4 + local.get $3 i32.store8 + local.get $4 local.get $5 - local.get $6 i32.store offset=4 global.get $~lib/memory/__stack_pointer local.get $1 @@ -6829,24 +6487,24 @@ i32.store offset=4 local.get $1 i32.load - local.set $4 + local.set $3 global.get $~lib/memory/__stack_pointer local.get $1 i32.store offset=4 - local.get $5 local.get $4 - local.get $7 + local.get $3 + local.get $6 local.get $1 i32.load offset=4 i32.and i32.const 2 i32.shl i32.add - local.tee $4 + local.tee $3 i32.load i32.store offset=8 + local.get $3 local.get $4 - local.get $5 i32.store end local.get $2 @@ -6869,11 +6527,11 @@ i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 3104 + i32.const 2496 i32.lt_s if - i32.const 35904 - i32.const 35952 + i32.const 35296 + i32.const 35344 i32.const 1 i32.const 1 call $~lib/builtins/abort @@ -6934,11 +6592,11 @@ i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 3104 + i32.const 2496 i32.lt_s if - i32.const 35904 - i32.const 35952 + i32.const 35296 + i32.const 35344 i32.const 1 i32.const 1 call $~lib/builtins/abort @@ -7125,11 +6783,11 @@ i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 3104 + i32.const 2496 i32.lt_s if - i32.const 35904 - i32.const 35952 + i32.const 35296 + i32.const 35344 i32.const 1 i32.const 1 call $~lib/builtins/abort @@ -7177,9 +6835,9 @@ local.tee $0 i32.eqz if - i32.const 1824 - i32.const 1888 - i32.const 148 + i32.const 1792 + i32.const 1856 + i32.const 146 i32.const 17 call $~lib/builtins/abort unreachable @@ -7191,485 +6849,449 @@ i32.add global.set $~lib/memory/__stack_pointer ) - (func $"~lib/map/Map#rehash" (param $0 i32) (param $1 i32) - (local $2 i32) + (func $"~lib/map/Map#set" (param $0 i32) (param $1 i32) (param $2 i32) (local $3 i32) (local $4 i32) (local $5 i32) (local $6 i32) (local $7 i32) (local $8 i32) + (local $9 i32) + (local $10 i32) + (local $11 i32) global.get $~lib/memory/__stack_pointer - i32.const 16 + i32.const 12 i32.sub global.set $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - i32.const 3104 - i32.lt_s - if - i32.const 35904 - i32.const 35952 - i32.const 1 - i32.const 1 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - i64.const 0 - i64.store - global.get $~lib/memory/__stack_pointer - i64.const 0 - i64.store offset=8 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.const 1 - i32.add - local.tee $2 - i32.const 2 - i32.shl - call $~lib/arraybuffer/ArrayBuffer#constructor - local.tee $6 - i32.store - global.get $~lib/memory/__stack_pointer - local.get $2 - i32.const 3 - i32.shl - i32.const 3 - i32.div_s - local.tee $5 - i32.const 3 - i32.shl - call $~lib/arraybuffer/ArrayBuffer#constructor - local.tee $3 - i32.store offset=4 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=8 - local.get $0 - i32.load offset=8 - local.set $7 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=8 - local.get $7 - local.get $0 - i32.load offset=16 - i32.const 3 - i32.shl - i32.add - local.set $4 - local.get $3 - local.set $2 - loop $while-continue|0 - local.get $4 - local.get $7 - i32.ne - if - local.get $7 + block $folding-inner0 + global.get $~lib/memory/__stack_pointer + i32.const 2496 + i32.lt_s + br_if $folding-inner0 + global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store offset=8 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + local.get $1 + i32.const 255 + i32.and + i32.const -1028477379 + i32.mul + i32.const 374761394 + i32.add + i32.const 17 + i32.rotl + i32.const 668265263 + i32.mul + local.tee $3 + i32.const 15 + i32.shr_u + local.get $3 + i32.xor + i32.const -2048144777 + i32.mul + local.tee $3 + i32.const 13 + i32.shr_u + local.get $3 + i32.xor + i32.const -1028477379 + i32.mul + local.tee $3 + i32.const 16 + i32.shr_u + local.get $3 + i32.xor + local.set $8 + block $"__inlined_func$~lib/map/Map#find$7" (result i32) + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.sub + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 2496 + i32.lt_s + br_if $folding-inner0 + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store + global.get $~lib/memory/__stack_pointer + local.get $0 + local.tee $3 + i32.store + local.get $3 + i32.load + global.get $~lib/memory/__stack_pointer + local.get $3 + i32.store + local.get $8 + local.get $3 i32.load offset=4 - i32.const 1 i32.and - i32.eqz - if - local.get $2 - local.get $7 - i32.load8_u - local.tee $8 - i32.store8 - local.get $2 - local.get $7 - i32.load8_u offset=1 - i32.store8 offset=1 - local.get $2 - local.get $6 - local.get $1 - local.get $8 - i32.const -1028477379 - i32.mul - i32.const 374761394 - i32.add - i32.const 17 - i32.rotl - i32.const 668265263 - i32.mul - local.tee $8 - local.get $8 - i32.const 15 - i32.shr_u - i32.xor - i32.const -2048144777 - i32.mul - local.tee $8 - local.get $8 - i32.const 13 - i32.shr_u - i32.xor - i32.const -1028477379 - i32.mul - local.tee $8 - local.get $8 - i32.const 16 - i32.shr_u - i32.xor - i32.and - i32.const 2 - i32.shl - i32.add - local.tee $8 - i32.load - i32.store offset=4 - local.get $8 - local.get $2 - i32.store - local.get $2 - i32.const 8 - i32.add - local.set $2 + i32.const 2 + i32.shl + i32.add + i32.load + local.set $0 + loop $while-continue|0 + local.get $0 + if + local.get $0 + i32.load offset=4 + local.tee $4 + i32.const 1 + i32.and + if (result i32) + i32.const 0 + else + local.get $0 + i32.load8_u + local.get $1 + i32.const 255 + i32.and + i32.eq + end + if + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $0 + br $"__inlined_func$~lib/map/Map#find$7" + end + local.get $4 + i32.const -2 + i32.and + local.set $0 + br $while-continue|0 + end end - local.get $7 - i32.const 8 + global.get $~lib/memory/__stack_pointer + i32.const 4 i32.add - local.set $7 - br $while-continue|0 + global.set $~lib/memory/__stack_pointer + i32.const 0 end - end - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=8 - global.get $~lib/memory/__stack_pointer - local.get $6 - i32.store offset=12 - local.get $0 - local.get $6 - i32.store - local.get $0 - local.get $6 - i32.const 0 - call $~lib/rt/itcms/__link - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=8 - local.get $0 - local.get $1 - i32.store offset=4 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=8 - global.get $~lib/memory/__stack_pointer - local.get $3 - i32.store offset=12 - local.get $0 - local.get $3 - i32.store offset=8 - local.get $0 - local.get $3 - i32.const 0 - call $~lib/rt/itcms/__link - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=8 - local.get $0 - local.get $5 - i32.store offset=12 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=8 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=12 - local.get $0 - local.get $0 - i32.load offset=20 - i32.store offset=16 - global.get $~lib/memory/__stack_pointer - i32.const 16 - i32.add - global.set $~lib/memory/__stack_pointer - ) - (func $"~lib/map/Map#constructor" (param $0 i32) (result i32) - (local $1 i32) - (local $2 i32) - (local $3 i32) - (local $4 i32) - (local $5 i32) - (local $6 i32) - (local $7 i32) - (local $8 i32) - global.get $~lib/memory/__stack_pointer - i32.const 16 - i32.sub - global.set $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - i32.const 3104 - i32.lt_s - if - i32.const 35904 - i32.const 35952 - i32.const 1 - i32.const 1 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - i64.const 0 - i64.store - global.get $~lib/memory/__stack_pointer - i64.const 0 - i64.store offset=8 - global.get $~lib/memory/__stack_pointer - i32.const 24 - i32.const 19 - call $~lib/rt/itcms/__new - local.tee $1 - i32.store - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - i32.const 16 - call $~lib/arraybuffer/ArrayBuffer#constructor - local.set $3 - global.get $~lib/memory/__stack_pointer - local.get $3 - i32.store offset=8 - local.get $1 - local.get $3 - i32.store - local.get $1 - local.get $3 - i32.const 0 - call $~lib/rt/itcms/__link - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - local.get $1 - i32.const 3 - i32.store offset=4 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - i32.const 32 - call $~lib/arraybuffer/ArrayBuffer#constructor - local.set $3 - global.get $~lib/memory/__stack_pointer - local.get $3 - i32.store offset=8 - local.get $1 - local.get $3 - i32.store offset=8 - local.get $1 - local.get $3 - i32.const 0 - call $~lib/rt/itcms/__link - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - local.get $1 - i32.const 4 - i32.store offset=12 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - local.get $1 - i32.const 0 - i32.store offset=16 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - local.get $1 - i32.const 0 - i32.store offset=20 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 - call $"~lib/array/Array<~lib/map/KeyValue>#get:length" - local.tee $3 - i32.const 0 - i32.gt_s - if - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - local.get $3 - local.get $1 - i32.load offset=12 - i32.ge_s + local.tee $0 if + local.get $0 + local.get $2 + i32.store8 offset=1 + else global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - local.get $1 local.get $3 - i32.store offset=4 - end - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=8 - local.get $1 - local.get $1 - i32.load offset=4 - i32.const 1 - i32.shl - i32.const 1 - i32.or - call $"~lib/map/Map#rehash" - loop $for-loop|0 - local.get $2 + i32.store local.get $3 - i32.lt_s + i32.load offset=16 + global.get $~lib/memory/__stack_pointer + local.get $3 + i32.store + local.get $3 + i32.load offset=12 + i32.eq if global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=8 - local.get $0 - local.get $2 - call $"~lib/array/Array<~lib/map/KeyValue>#__get" - local.set $4 - global.get $~lib/memory/__stack_pointer - local.get $4 - i32.store offset=4 - local.get $4 - i32.load8_u - local.set $4 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=8 - local.get $0 - local.get $2 - call $"~lib/array/Array<~lib/map/KeyValue>#__get" - local.set $5 + local.get $3 + i32.store global.get $~lib/memory/__stack_pointer - local.get $5 + local.get $3 i32.store offset=4 - local.get $5 - i32.load8_u offset=1 - local.set $6 + local.get $3 + i32.load offset=20 global.get $~lib/memory/__stack_pointer - local.get $1 + local.get $3 i32.store offset=4 - local.get $1 - local.get $4 - local.get $4 - i32.const -1028477379 - i32.mul - i32.const 374761394 - i32.add - i32.const 17 - i32.rotl - i32.const 668265263 - i32.mul - local.tee $5 - i32.const 15 - i32.shr_u - local.get $5 - i32.xor - i32.const -2048144777 - i32.mul - local.tee $5 - i32.const 13 - i32.shr_u - local.get $5 - i32.xor - i32.const -1028477379 + local.get $3 + i32.load offset=12 + i32.const 3 i32.mul - local.tee $5 - i32.const 16 - i32.shr_u - local.get $5 - i32.xor - local.tee $7 - call $"~lib/map/Map#find" - local.tee $5 - if - local.get $5 - local.get $6 - i32.store8 offset=1 - else + i32.const 4 + i32.div_s + i32.lt_s + if (result i32) global.get $~lib/memory/__stack_pointer - local.get $1 + local.get $3 i32.store offset=4 + local.get $3 + i32.load offset=4 + else global.get $~lib/memory/__stack_pointer - local.get $1 - i32.load offset=8 - local.tee $5 - i32.store offset=12 - global.get $~lib/memory/__stack_pointer - local.get $1 + local.get $3 i32.store offset=4 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=8 - local.get $1 - local.get $1 - i32.load offset=16 - local.tee $8 + local.get $3 + i32.load offset=4 i32.const 1 - i32.add - i32.store offset=16 - local.get $5 - local.get $8 - i32.const 3 i32.shl - i32.add - local.tee $5 - local.get $4 - i32.store8 - local.get $5 - local.get $6 - i32.store8 offset=1 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=8 - local.get $1 - local.get $1 - i32.load offset=20 i32.const 1 - i32.add - i32.store offset=20 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - local.get $1 - i32.load - local.set $4 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - local.get $5 - local.get $4 - local.get $7 - local.get $1 - i32.load offset=4 - i32.and - i32.const 2 - i32.shl - i32.add - local.tee $4 - i32.load - i32.store offset=4 - local.get $4 - local.get $5 - i32.store + i32.or end - local.get $2 + local.set $7 + global.get $~lib/memory/__stack_pointer + i32.const 16 + i32.sub + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 2496 + i32.lt_s + br_if $folding-inner0 + global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store + global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store offset=8 + global.get $~lib/memory/__stack_pointer + local.get $7 i32.const 1 i32.add - local.set $2 - br $for-loop|0 + local.tee $0 + i32.const 2 + i32.shl + call $~lib/arraybuffer/ArrayBuffer#constructor + local.tee $6 + i32.store + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.const 3 + i32.shl + i32.const 3 + i32.div_s + local.tee $9 + i32.const 3 + i32.shl + call $~lib/arraybuffer/ArrayBuffer#constructor + local.tee $4 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + local.get $3 + i32.store offset=8 + local.get $3 + i32.load offset=8 + local.set $5 + global.get $~lib/memory/__stack_pointer + local.get $3 + i32.store offset=8 + local.get $5 + local.get $3 + i32.load offset=16 + i32.const 3 + i32.shl + i32.add + local.set $10 + local.get $4 + local.set $0 + loop $while-continue|00 + local.get $5 + local.get $10 + i32.ne + if + local.get $5 + i32.load offset=4 + i32.const 1 + i32.and + i32.eqz + if + local.get $0 + local.get $5 + i32.load8_u + local.tee $11 + i32.store8 + local.get $0 + local.get $5 + i32.load8_u offset=1 + i32.store8 offset=1 + local.get $0 + local.get $6 + local.get $7 + local.get $11 + i32.const -1028477379 + i32.mul + i32.const 374761394 + i32.add + i32.const 17 + i32.rotl + i32.const 668265263 + i32.mul + local.tee $11 + local.get $11 + i32.const 15 + i32.shr_u + i32.xor + i32.const -2048144777 + i32.mul + local.tee $11 + local.get $11 + i32.const 13 + i32.shr_u + i32.xor + i32.const -1028477379 + i32.mul + local.tee $11 + local.get $11 + i32.const 16 + i32.shr_u + i32.xor + i32.and + i32.const 2 + i32.shl + i32.add + local.tee $11 + i32.load + i32.store offset=4 + local.get $11 + local.get $0 + i32.store + local.get $0 + i32.const 8 + i32.add + local.set $0 + end + local.get $5 + i32.const 8 + i32.add + local.set $5 + br $while-continue|00 + end + end + global.get $~lib/memory/__stack_pointer + local.get $3 + i32.store offset=8 + global.get $~lib/memory/__stack_pointer + local.get $6 + i32.store offset=12 + local.get $3 + local.get $6 + i32.store + local.get $3 + local.get $6 + i32.const 0 + call $~lib/rt/itcms/__link + global.get $~lib/memory/__stack_pointer + local.get $3 + i32.store offset=8 + local.get $3 + local.get $7 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + local.get $3 + i32.store offset=8 + global.get $~lib/memory/__stack_pointer + local.get $4 + i32.store offset=12 + local.get $3 + local.get $4 + i32.store offset=8 + local.get $3 + local.get $4 + i32.const 0 + call $~lib/rt/itcms/__link + global.get $~lib/memory/__stack_pointer + local.get $3 + i32.store offset=8 + local.get $3 + local.get $9 + i32.store offset=12 + global.get $~lib/memory/__stack_pointer + local.get $3 + i32.store offset=8 + global.get $~lib/memory/__stack_pointer + local.get $3 + i32.store offset=12 + local.get $3 + local.get $3 + i32.load offset=20 + i32.store offset=16 + global.get $~lib/memory/__stack_pointer + i32.const 16 + i32.add + global.set $~lib/memory/__stack_pointer end + global.get $~lib/memory/__stack_pointer + local.get $3 + i32.store + global.get $~lib/memory/__stack_pointer + local.get $3 + i32.load offset=8 + local.tee $0 + i32.store offset=8 + global.get $~lib/memory/__stack_pointer + local.get $3 + i32.store + global.get $~lib/memory/__stack_pointer + local.get $3 + i32.store offset=4 + local.get $3 + local.get $3 + i32.load offset=16 + local.tee $4 + i32.const 1 + i32.add + i32.store offset=16 + local.get $0 + local.get $4 + i32.const 3 + i32.shl + i32.add + local.tee $0 + local.get $1 + i32.store8 + local.get $0 + local.get $2 + i32.store8 offset=1 + global.get $~lib/memory/__stack_pointer + local.get $3 + i32.store + global.get $~lib/memory/__stack_pointer + local.get $3 + i32.store offset=4 + local.get $3 + local.get $3 + i32.load offset=20 + i32.const 1 + i32.add + i32.store offset=20 + global.get $~lib/memory/__stack_pointer + local.get $3 + i32.store + local.get $3 + i32.load + local.set $1 + global.get $~lib/memory/__stack_pointer + local.get $3 + i32.store + local.get $0 + local.get $1 + local.get $8 + local.get $3 + i32.load offset=4 + i32.and + i32.const 2 + i32.shl + i32.add + local.tee $1 + i32.load + i32.store offset=4 + local.get $1 + local.get $0 + i32.store end + global.get $~lib/memory/__stack_pointer + i32.const 12 + i32.add + global.set $~lib/memory/__stack_pointer + return end - global.get $~lib/memory/__stack_pointer - i32.const 16 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $1 + i32.const 35296 + i32.const 35344 + i32.const 1 + i32.const 1 + call $~lib/builtins/abort + unreachable ) (func $"~lib/map/Map#delete" (param $0 i32) (param $1 i32) (local $2 i32) @@ -7678,11 +7300,11 @@ i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 3104 + i32.const 2496 i32.lt_s if - i32.const 35904 - i32.const 35952 + i32.const 35296 + i32.const 35344 i32.const 1 i32.const 1 call $~lib/builtins/abort @@ -7819,15 +7441,13 @@ (local $6 i32) (local $7 i32) (local $8 i32) - (local $9 i32) - (local $10 i32) global.get $~lib/memory/__stack_pointer i32.const 40 i32.sub global.set $~lib/memory/__stack_pointer block $folding-inner1 global.get $~lib/memory/__stack_pointer - i32.const 3104 + i32.const 2496 i32.lt_s br_if $folding-inner1 global.get $~lib/memory/__stack_pointer @@ -7835,40 +7455,9 @@ i32.const 40 memory.fill global.get $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - i32.const 12 - i32.sub - global.set $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - i32.const 3104 - i32.lt_s - br_if $folding-inner1 - global.get $~lib/memory/__stack_pointer - i64.const 0 - i64.store - global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.store offset=8 - global.get $~lib/memory/__stack_pointer - i32.const 17 - i32.const 2032 - call $~lib/rt/__newArray - local.tee $4 - i32.store - global.get $~lib/memory/__stack_pointer i32.const 0 - i32.store offset=4 - global.get $~lib/memory/__stack_pointer - local.get $4 - i32.store offset=8 - local.get $4 call $"~lib/map/Map#constructor" - local.set $4 - global.get $~lib/memory/__stack_pointer - i32.const 12 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $4 + local.tee $3 i32.store loop $for-loop|0 local.get $0 @@ -7876,47 +7465,47 @@ i32.lt_u if global.get $~lib/memory/__stack_pointer - local.get $4 + local.get $3 i32.store offset=4 - local.get $4 + local.get $3 local.get $0 call $"~lib/map/Map#has" if i32.const 0 - i32.const 1776 + i32.const 1744 i32.const 7 i32.const 5 call $~lib/builtins/abort unreachable end global.get $~lib/memory/__stack_pointer - local.get $4 + local.get $3 i32.store offset=4 - local.get $4 + local.get $3 local.get $0 local.get $0 i32.const 10 i32.add call $"~lib/map/Map#set" global.get $~lib/memory/__stack_pointer - local.get $4 + local.get $3 i32.store offset=4 - local.get $4 + local.get $3 local.get $0 call $"~lib/map/Map#has" i32.eqz if i32.const 0 - i32.const 1776 + i32.const 1744 i32.const 9 i32.const 5 call $~lib/builtins/abort unreachable end global.get $~lib/memory/__stack_pointer - local.get $4 + local.get $3 i32.store offset=4 - local.get $4 + local.get $3 local.get $0 call $"~lib/map/Map#get" local.get $0 @@ -7925,7 +7514,7 @@ i32.ne if i32.const 0 - i32.const 1776 + i32.const 1744 i32.const 10 i32.const 5 call $~lib/builtins/abort @@ -7939,15 +7528,15 @@ end end global.get $~lib/memory/__stack_pointer - local.get $4 + local.get $3 i32.store offset=4 - local.get $4 + local.get $3 call $"~lib/map/Map#get:size" i32.const 100 i32.ne if i32.const 0 - i32.const 1776 + i32.const 1744 i32.const 12 i32.const 3 call $~lib/builtins/abort @@ -7961,24 +7550,24 @@ i32.lt_u if global.get $~lib/memory/__stack_pointer - local.get $4 + local.get $3 i32.store offset=4 - local.get $4 + local.get $3 local.get $0 call $"~lib/map/Map#has" i32.eqz if i32.const 0 - i32.const 1776 + i32.const 1744 i32.const 16 i32.const 5 call $~lib/builtins/abort unreachable end global.get $~lib/memory/__stack_pointer - local.get $4 + local.get $3 i32.store offset=4 - local.get $4 + local.get $3 local.get $0 call $"~lib/map/Map#get" local.get $0 @@ -7987,40 +7576,40 @@ i32.ne if i32.const 0 - i32.const 1776 + i32.const 1744 i32.const 17 i32.const 5 call $~lib/builtins/abort unreachable end global.get $~lib/memory/__stack_pointer - local.get $4 + local.get $3 i32.store offset=4 - local.get $4 + local.get $3 local.get $0 local.get $0 i32.const 20 i32.add call $"~lib/map/Map#set" global.get $~lib/memory/__stack_pointer - local.get $4 + local.get $3 i32.store offset=4 - local.get $4 + local.get $3 local.get $0 call $"~lib/map/Map#has" i32.eqz if i32.const 0 - i32.const 1776 + i32.const 1744 i32.const 19 i32.const 5 call $~lib/builtins/abort unreachable end global.get $~lib/memory/__stack_pointer - local.get $4 + local.get $3 i32.store offset=4 - local.get $4 + local.get $3 local.get $0 call $"~lib/map/Map#get" local.get $0 @@ -8029,7 +7618,7 @@ i32.ne if i32.const 0 - i32.const 1776 + i32.const 1744 i32.const 20 i32.const 5 call $~lib/builtins/abort @@ -8043,15 +7632,15 @@ end end global.get $~lib/memory/__stack_pointer - local.get $4 + local.get $3 i32.store offset=4 - local.get $4 + local.get $3 call $"~lib/map/Map#get:size" i32.const 100 i32.ne if i32.const 0 - i32.const 1776 + i32.const 1744 i32.const 22 i32.const 3 call $~lib/builtins/abort @@ -8059,38 +7648,38 @@ end global.get $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - local.get $4 + local.get $3 i32.store offset=4 global.get $~lib/memory/__stack_pointer i32.const 8 i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 3104 + i32.const 2496 i32.lt_s br_if $folding-inner1 global.get $~lib/memory/__stack_pointer i64.const 0 i64.store global.get $~lib/memory/__stack_pointer - local.get $4 + local.get $3 i32.store - local.get $4 + local.get $3 i32.load offset=8 - local.set $6 + local.set $5 global.get $~lib/memory/__stack_pointer - local.get $4 + local.get $3 i32.store - local.get $4 + local.get $3 i32.load offset=16 - local.set $7 + local.set $6 global.get $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer i32.const 16 i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 3104 + i32.const 2496 i32.lt_s br_if $folding-inner1 global.get $~lib/memory/__stack_pointer @@ -8103,37 +7692,37 @@ i32.const 16 i32.const 18 call $~lib/rt/itcms/__new - local.tee $3 + local.tee $7 i32.store global.get $~lib/memory/__stack_pointer - local.get $3 + local.get $7 i32.store offset=4 - local.get $3 + local.get $7 i32.const 0 i32.store - local.get $3 + local.get $7 i32.const 0 i32.const 0 call $~lib/rt/itcms/__link global.get $~lib/memory/__stack_pointer - local.get $3 + local.get $7 i32.store offset=4 - local.get $3 + local.get $7 i32.const 0 i32.store offset=4 global.get $~lib/memory/__stack_pointer - local.get $3 + local.get $7 i32.store offset=4 - local.get $3 + local.get $7 i32.const 0 i32.store offset=8 global.get $~lib/memory/__stack_pointer - local.get $3 + local.get $7 i32.store offset=4 - local.get $3 + local.get $7 i32.const 0 i32.store offset=12 - local.get $7 + local.get $6 i32.const 1073741820 i32.gt_u if @@ -8146,62 +7735,62 @@ end global.get $~lib/memory/__stack_pointer i32.const 8 - local.get $7 - local.get $7 + local.get $6 + local.get $6 i32.const 8 i32.le_u select - local.tee $8 + local.tee $0 i32.const 1 call $~lib/rt/itcms/__new - local.tee $9 + local.tee $8 i32.store offset=8 global.get $~lib/memory/__stack_pointer - local.get $3 + local.get $7 i32.store offset=4 global.get $~lib/memory/__stack_pointer - local.get $9 + local.get $8 i32.store offset=12 - local.get $3 - local.get $9 + local.get $7 + local.get $8 i32.store - local.get $3 - local.get $9 + local.get $7 + local.get $8 i32.const 0 call $~lib/rt/itcms/__link global.get $~lib/memory/__stack_pointer - local.get $3 + local.get $7 i32.store offset=4 - local.get $3 - local.get $9 + local.get $7 + local.get $8 i32.store offset=4 global.get $~lib/memory/__stack_pointer - local.get $3 + local.get $7 i32.store offset=4 - local.get $3 - local.get $8 + local.get $7 + local.get $0 i32.store offset=8 global.get $~lib/memory/__stack_pointer - local.get $3 + local.get $7 i32.store offset=4 - local.get $3 local.get $7 + local.get $6 i32.store offset=12 global.get $~lib/memory/__stack_pointer i32.const 16 i32.add global.set $~lib/memory/__stack_pointer - local.get $3 + local.get $7 i32.store offset=4 i32.const 0 local.set $0 loop $for-loop|00 - local.get $2 - local.get $7 + local.get $1 + local.get $6 i32.lt_s if - local.get $6 - local.get $2 + local.get $5 + local.get $1 i32.const 12 i32.mul i32.add @@ -8212,9 +7801,9 @@ i32.eqz if global.get $~lib/memory/__stack_pointer - local.get $3 + local.get $7 i32.store - local.get $3 + local.get $7 local.get $0 local.get $8 i32.load8_u @@ -8224,101 +7813,149 @@ i32.add local.set $0 end - local.get $2 + local.get $1 i32.const 1 i32.add - local.set $2 + local.set $1 br $for-loop|00 end end global.get $~lib/memory/__stack_pointer - local.get $3 + local.get $7 i32.store - local.get $3 + local.get $7 local.get $0 call $~lib/array/Array#set:length global.get $~lib/memory/__stack_pointer i32.const 8 i32.add global.set $~lib/memory/__stack_pointer - local.get $3 + local.get $7 i32.store offset=8 global.get $~lib/memory/__stack_pointer - local.get $4 + local.get $3 i32.store offset=4 global.get $~lib/memory/__stack_pointer - local.get $4 + local.get $3 call $"~lib/map/Map#values" - local.tee $2 + local.tee $0 i32.store offset=12 global.get $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 12 + i32.const 16 i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 3104 + i32.const 2496 i32.lt_s br_if $folding-inner1 global.get $~lib/memory/__stack_pointer i64.const 0 i64.store global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.store offset=8 + i64.const 0 + i64.store offset=8 global.get $~lib/memory/__stack_pointer - i32.const 21 - i32.const 2064 - call $~lib/rt/__newArray - local.tee $5 + i32.const 24 + i32.const 19 + call $~lib/rt/itcms/__new + local.tee $1 i32.store global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + i32.const 16 + call $~lib/arraybuffer/ArrayBuffer#constructor + local.set $4 + global.get $~lib/memory/__stack_pointer + local.get $4 + i32.store offset=8 + local.get $1 + local.get $4 + i32.store + local.get $1 + local.get $4 i32.const 0 + call $~lib/rt/itcms/__link + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + local.get $1 + i32.const 3 i32.store offset=4 global.get $~lib/memory/__stack_pointer - local.get $5 + local.get $1 + i32.store offset=4 + i32.const 32 + call $~lib/arraybuffer/ArrayBuffer#constructor + local.set $4 + global.get $~lib/memory/__stack_pointer + local.get $4 i32.store offset=8 - local.get $5 - call $"~lib/map/Map#constructor" - local.set $5 + local.get $1 + local.get $4 + i32.store offset=8 + local.get $1 + local.get $4 + i32.const 0 + call $~lib/rt/itcms/__link global.get $~lib/memory/__stack_pointer - i32.const 12 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $5 + local.get $1 + i32.store offset=4 + local.get $1 + i32.const 4 + i32.store offset=12 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + local.get $1 + i32.const 0 i32.store offset=16 global.get $~lib/memory/__stack_pointer - call $"~lib/map/Map#constructor@varargs" - local.tee $6 + local.get $1 + i32.store offset=4 + local.get $1 + i32.const 0 i32.store offset=20 - loop $for-loop|2 + global.get $~lib/memory/__stack_pointer + i32.const 16 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=16 + global.get $~lib/memory/__stack_pointer + i32.const 0 + call $"~lib/map/Map#constructor" + local.tee $4 + i32.store offset=20 + loop $for-loop|2 global.get $~lib/memory/__stack_pointer - local.get $3 + local.get $7 i32.store offset=4 - local.get $3 + local.get $7 call $"~lib/array/Array<~lib/map/KeyValue>#get:length" - local.get $1 + local.get $2 i32.gt_s if global.get $~lib/memory/__stack_pointer - local.get $3 + local.get $7 i32.store offset=4 global.get $~lib/memory/__stack_pointer i32.const 4 i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 3104 + i32.const 2496 i32.lt_s br_if $folding-inner1 global.get $~lib/memory/__stack_pointer i32.const 0 i32.store global.get $~lib/memory/__stack_pointer - local.get $3 + local.get $7 i32.store - local.get $1 - local.get $3 + local.get $2 + local.get $7 i32.load offset=12 i32.ge_u if @@ -8330,284 +7967,106 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.get $3 + local.get $7 i32.store - local.get $1 - local.get $3 + local.get $2 + local.get $7 i32.load offset=4 i32.add i32.load8_u - local.set $7 + local.set $5 global.get $~lib/memory/__stack_pointer i32.const 4 i32.add global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - local.get $2 + local.get $0 i32.store offset=4 + local.get $0 local.get $2 - local.get $1 call $~lib/array/Array#__get - local.set $8 + local.set $6 global.get $~lib/memory/__stack_pointer - local.get $4 + local.get $3 i32.store offset=4 - local.get $4 - local.get $7 + local.get $3 + local.get $5 call $"~lib/map/Map#has" i32.eqz if i32.const 0 - i32.const 1776 + i32.const 1744 i32.const 32 i32.const 5 call $~lib/builtins/abort unreachable end global.get $~lib/memory/__stack_pointer - local.get $4 + local.get $3 i32.store offset=4 - local.get $4 - local.get $8 + local.get $3 + local.get $6 i32.const 20 i32.sub call $"~lib/map/Map#has" i32.eqz if i32.const 0 - i32.const 1776 + i32.const 1744 i32.const 33 i32.const 5 call $~lib/builtins/abort unreachable end global.get $~lib/memory/__stack_pointer - local.get $5 + local.get $1 i32.store offset=4 - global.get $~lib/memory/__stack_pointer - i32.const 12 - i32.sub - global.set $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - i32.const 3104 - i32.lt_s - br_if $folding-inner1 - global.get $~lib/memory/__stack_pointer - i64.const 0 - i64.store - global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.store offset=8 - global.get $~lib/memory/__stack_pointer + local.get $1 local.get $5 - i32.store local.get $5 - local.get $7 - local.get $7 - i32.const 255 - i32.and - i32.const -1028477379 - i32.mul - i32.const 374761394 - i32.add - i32.const 17 - i32.rotl - i32.const 668265263 - i32.mul - local.tee $0 - local.get $0 - i32.const 15 - i32.shr_u - i32.xor - i32.const -2048144777 - i32.mul - local.tee $0 - local.get $0 - i32.const 13 - i32.shr_u - i32.xor - i32.const -1028477379 - i32.mul - local.tee $0 - local.get $0 - i32.const 16 - i32.shr_u - i32.xor - local.tee $9 - call $"~lib/map/Map#find" - local.tee $0 - if - local.get $0 - local.get $7 - i32.store8 offset=1 - else - global.get $~lib/memory/__stack_pointer - local.get $5 - i32.store - local.get $5 - i32.load offset=16 - global.get $~lib/memory/__stack_pointer - local.get $5 - i32.store - local.get $5 - i32.load offset=12 - i32.eq - if - global.get $~lib/memory/__stack_pointer - local.get $5 - i32.store - global.get $~lib/memory/__stack_pointer - local.get $5 - i32.store offset=4 - local.get $5 - i32.load offset=20 - local.set $0 - global.get $~lib/memory/__stack_pointer - local.get $5 - i32.store offset=4 - local.get $5 - local.get $0 - local.get $5 - i32.load offset=12 - i32.const 3 - i32.mul - i32.const 4 - i32.div_s - i32.lt_s - if (result i32) - global.get $~lib/memory/__stack_pointer - local.get $5 - i32.store offset=4 - local.get $5 - i32.load offset=4 - else - global.get $~lib/memory/__stack_pointer - local.get $5 - i32.store offset=4 - local.get $5 - i32.load offset=4 - i32.const 1 - i32.shl - i32.const 1 - i32.or - end - call $"~lib/map/Map#rehash" - end - global.get $~lib/memory/__stack_pointer - local.get $5 - i32.store - global.get $~lib/memory/__stack_pointer - local.get $5 - i32.load offset=8 - local.tee $10 - i32.store offset=8 - global.get $~lib/memory/__stack_pointer - local.get $5 - i32.store - global.get $~lib/memory/__stack_pointer - local.get $5 - i32.store offset=4 - local.get $5 - local.get $5 - i32.load offset=16 - local.tee $0 - i32.const 1 - i32.add - i32.store offset=16 - local.get $10 - local.get $0 - i32.const 3 - i32.shl - i32.add - local.tee $0 - local.get $7 - i32.store8 - local.get $0 - local.get $7 - i32.store8 offset=1 - global.get $~lib/memory/__stack_pointer - local.get $5 - i32.store - global.get $~lib/memory/__stack_pointer - local.get $5 - i32.store offset=4 - local.get $5 - local.get $5 - i32.load offset=20 - i32.const 1 - i32.add - i32.store offset=20 - global.get $~lib/memory/__stack_pointer - local.get $5 - i32.store - local.get $5 - i32.load - local.set $7 - global.get $~lib/memory/__stack_pointer - local.get $5 - i32.store - local.get $0 - local.get $7 - local.get $9 - local.get $5 - i32.load offset=4 - i32.and - i32.const 2 - i32.shl - i32.add - local.tee $7 - i32.load - i32.store offset=4 - local.get $7 - local.get $0 - i32.store - end - global.get $~lib/memory/__stack_pointer - i32.const 12 - i32.add - global.set $~lib/memory/__stack_pointer + call $"~lib/map/Map#set" global.get $~lib/memory/__stack_pointer - local.get $6 + local.get $4 i32.store offset=4 + local.get $4 local.get $6 - local.get $8 i32.const 20 i32.sub - local.tee $0 - local.get $0 + local.tee $5 + local.get $5 call $"~lib/map/Map#set" - local.get $1 + local.get $2 i32.const 1 i32.add - local.set $1 + local.set $2 br $for-loop|2 end end global.get $~lib/memory/__stack_pointer - local.get $5 + local.get $1 i32.store offset=4 - local.get $5 + local.get $1 call $"~lib/map/Map#get:size" i32.const 100 i32.ne if i32.const 0 - i32.const 1776 + i32.const 1744 i32.const 37 i32.const 3 call $~lib/builtins/abort unreachable end global.get $~lib/memory/__stack_pointer - local.get $6 + local.get $4 i32.store offset=4 - local.get $6 + local.get $4 call $"~lib/map/Map#get:size" i32.const 100 i32.ne if i32.const 0 - i32.const 1776 + i32.const 1744 i32.const 38 i32.const 3 call $~lib/builtins/abort @@ -8621,24 +8080,24 @@ i32.lt_u if global.get $~lib/memory/__stack_pointer - local.get $4 + local.get $3 i32.store offset=4 - local.get $4 + local.get $3 local.get $0 call $"~lib/map/Map#has" i32.eqz if i32.const 0 - i32.const 1776 + i32.const 1744 i32.const 42 i32.const 5 call $~lib/builtins/abort unreachable end global.get $~lib/memory/__stack_pointer - local.get $4 + local.get $3 i32.store offset=4 - local.get $4 + local.get $3 local.get $0 call $"~lib/map/Map#get" local.get $0 @@ -8647,27 +8106,27 @@ i32.ne if i32.const 0 - i32.const 1776 + i32.const 1744 i32.const 43 i32.const 5 call $~lib/builtins/abort unreachable end global.get $~lib/memory/__stack_pointer - local.get $4 + local.get $3 i32.store offset=4 - local.get $4 + local.get $3 local.get $0 call $"~lib/map/Map#delete" global.get $~lib/memory/__stack_pointer - local.get $4 + local.get $3 i32.store offset=4 - local.get $4 + local.get $3 local.get $0 call $"~lib/map/Map#has" if i32.const 0 - i32.const 1776 + i32.const 1744 i32.const 45 i32.const 5 call $~lib/builtins/abort @@ -8681,15 +8140,15 @@ end end global.get $~lib/memory/__stack_pointer - local.get $4 + local.get $3 i32.store offset=4 - local.get $4 + local.get $3 call $"~lib/map/Map#get:size" i32.const 50 i32.ne if i32.const 0 - i32.const 1776 + i32.const 1744 i32.const 47 i32.const 3 call $~lib/builtins/abort @@ -8703,58 +8162,58 @@ i32.lt_u if global.get $~lib/memory/__stack_pointer - local.get $4 + local.get $3 i32.store offset=4 - local.get $4 + local.get $3 local.get $0 call $"~lib/map/Map#has" if i32.const 0 - i32.const 1776 + i32.const 1744 i32.const 51 i32.const 5 call $~lib/builtins/abort unreachable end global.get $~lib/memory/__stack_pointer - local.get $4 + local.get $3 i32.store offset=4 - local.get $4 + local.get $3 local.get $0 local.get $0 i32.const 10 i32.add call $"~lib/map/Map#set" global.get $~lib/memory/__stack_pointer - local.get $4 + local.get $3 i32.store offset=4 - local.get $4 + local.get $3 local.get $0 call $"~lib/map/Map#has" i32.eqz if i32.const 0 - i32.const 1776 + i32.const 1744 i32.const 53 i32.const 5 call $~lib/builtins/abort unreachable end global.get $~lib/memory/__stack_pointer - local.get $4 + local.get $3 i32.store offset=4 - local.get $4 + local.get $3 local.get $0 call $"~lib/map/Map#delete" global.get $~lib/memory/__stack_pointer - local.get $4 + local.get $3 i32.store offset=4 - local.get $4 + local.get $3 local.get $0 call $"~lib/map/Map#has" if i32.const 0 - i32.const 1776 + i32.const 1744 i32.const 55 i32.const 5 call $~lib/builtins/abort @@ -8768,33 +8227,33 @@ end end global.get $~lib/memory/__stack_pointer - local.get $4 + local.get $3 i32.store offset=4 - local.get $4 + local.get $3 call $"~lib/map/Map#get:size" i32.const 50 i32.ne if i32.const 0 - i32.const 1776 + i32.const 1744 i32.const 57 i32.const 3 call $~lib/builtins/abort unreachable end global.get $~lib/memory/__stack_pointer - local.get $4 + local.get $3 i32.store offset=4 - local.get $4 + local.get $3 call $"~lib/map/Map#clear" global.get $~lib/memory/__stack_pointer - local.get $4 + local.get $3 i32.store offset=4 - local.get $4 + local.get $3 call $"~lib/map/Map#get:size" if i32.const 0 - i32.const 1776 + i32.const 1744 i32.const 61 i32.const 3 call $~lib/builtins/abort @@ -8802,7 +8261,7 @@ end global.get $~lib/memory/__stack_pointer i32.const 17 - i32.const 2096 + i32.const 1936 call $~lib/rt/__newArray local.tee $1 i32.store offset=24 @@ -8822,7 +8281,7 @@ i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 3104 + i32.const 2496 i32.lt_s br_if $folding-inner1 global.get $~lib/memory/__stack_pointer @@ -8904,7 +8363,7 @@ i32.ne if i32.const 0 - i32.const 1776 + i32.const 1744 i32.const 74 i32.const 3 call $~lib/builtins/abort @@ -8926,7 +8385,7 @@ i32.eqz if i32.const 0 - i32.const 1776 + i32.const 1744 i32.const 76 i32.const 5 call $~lib/builtins/abort @@ -8944,7 +8403,7 @@ i32.ne if i32.const 0 - i32.const 1776 + i32.const 1744 i32.const 77 i32.const 5 call $~lib/builtins/abort @@ -8964,7 +8423,7 @@ call $"~lib/map/Map#has" if i32.const 0 - i32.const 1776 + i32.const 1744 i32.const 79 i32.const 5 call $~lib/builtins/abort @@ -8984,7 +8443,7 @@ call $"~lib/map/Map#get:size" if i32.const 0 - i32.const 1776 + i32.const 1744 i32.const 81 i32.const 3 call $~lib/builtins/abort @@ -8996,8 +8455,8 @@ global.set $~lib/memory/__stack_pointer return end - i32.const 35904 - i32.const 35952 + i32.const 35296 + i32.const 35344 i32.const 1 i32.const 1 call $~lib/builtins/abort @@ -9016,11 +8475,11 @@ i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 3104 + i32.const 2496 i32.lt_s if - i32.const 35904 - i32.const 35952 + i32.const 35296 + i32.const 35344 i32.const 1 i32.const 1 call $~lib/builtins/abort @@ -9205,11 +8664,11 @@ i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 3104 + i32.const 2496 i32.lt_s if - i32.const 35904 - i32.const 35952 + i32.const 35296 + i32.const 35344 i32.const 1 i32.const 1 call $~lib/builtins/abort @@ -9282,17 +8741,16 @@ (local $5 i32) (local $6 i32) (local $7 i32) - (local $8 i32) global.get $~lib/memory/__stack_pointer i32.const 16 i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 3104 + i32.const 2496 i32.lt_s if - i32.const 35904 - i32.const 35952 + i32.const 35296 + i32.const 35344 i32.const 1 i32.const 1 call $~lib/builtins/abort @@ -9366,19 +8824,16 @@ local.get $1 i32.const 0 i32.store offset=20 - global.get $~lib/memory/__stack_pointer local.get $0 - i32.store offset=4 - local.get $0 - call $"~lib/array/Array<~lib/map/KeyValue>#get:length" - local.tee $3 - i32.const 0 - i32.gt_s if + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + local.get $0 + call $"~lib/array/Array<~lib/map/KeyValue>#get:length" global.get $~lib/memory/__stack_pointer local.get $1 i32.store offset=4 - local.get $3 local.get $1 i32.load offset=12 i32.ge_s @@ -9386,8 +8841,12 @@ global.get $~lib/memory/__stack_pointer local.get $1 i32.store offset=4 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=8 local.get $1 - local.get $3 + local.get $0 + call $"~lib/array/Array<~lib/map/KeyValue>#get:length" i32.store offset=4 end global.get $~lib/memory/__stack_pointer @@ -9405,9 +8864,13 @@ i32.or call $"~lib/map/Map#rehash" loop $for-loop|0 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + local.get $0 + call $"~lib/array/Array<~lib/map/KeyValue>#get:length" local.get $2 - local.get $3 - i32.lt_s + i32.gt_s if global.get $~lib/memory/__stack_pointer local.get $0 @@ -9415,32 +8878,32 @@ local.get $0 local.get $2 call $"~lib/array/Array<~lib/map/KeyValue>#__get" - local.set $4 + local.set $3 global.get $~lib/memory/__stack_pointer - local.get $4 + local.get $3 i32.store offset=4 - local.get $4 + local.get $3 i32.load16_s - local.set $4 + local.set $3 global.get $~lib/memory/__stack_pointer local.get $0 i32.store offset=8 local.get $0 local.get $2 call $"~lib/array/Array<~lib/map/KeyValue>#__get" - local.set $5 + local.set $4 global.get $~lib/memory/__stack_pointer - local.get $5 + local.get $4 i32.store offset=4 - local.get $5 + local.get $4 i32.load offset=4 - local.set $6 + local.set $5 global.get $~lib/memory/__stack_pointer local.get $1 i32.store offset=4 local.get $1 - local.get $4 - local.get $4 + local.get $3 + local.get $3 i32.const -1028477379 i32.mul i32.const 374761395 @@ -9449,31 +8912,31 @@ i32.rotl i32.const 668265263 i32.mul - local.tee $5 + local.tee $4 i32.const 15 i32.shr_u - local.get $5 + local.get $4 i32.xor i32.const -2048144777 i32.mul - local.tee $5 + local.tee $4 i32.const 13 i32.shr_u - local.get $5 + local.get $4 i32.xor i32.const -1028477379 i32.mul - local.tee $5 + local.tee $4 i32.const 16 i32.shr_u - local.get $5 + local.get $4 i32.xor - local.tee $7 + local.tee $6 call $"~lib/map/Map#find" - local.tee $5 + local.tee $4 if + local.get $4 local.get $5 - local.get $6 i32.store offset=4 else global.get $~lib/memory/__stack_pointer @@ -9482,7 +8945,7 @@ global.get $~lib/memory/__stack_pointer local.get $1 i32.load offset=8 - local.tee $5 + local.tee $4 i32.store offset=12 global.get $~lib/memory/__stack_pointer local.get $1 @@ -9493,20 +8956,20 @@ local.get $1 local.get $1 i32.load offset=16 - local.tee $8 + local.tee $7 i32.const 1 i32.add i32.store offset=16 - local.get $5 - local.get $8 + local.get $4 + local.get $7 i32.const 12 i32.mul i32.add - local.tee $5 - local.get $4 + local.tee $4 + local.get $3 i32.store16 + local.get $4 local.get $5 - local.get $6 i32.store offset=4 global.get $~lib/memory/__stack_pointer local.get $1 @@ -9525,24 +8988,24 @@ i32.store offset=4 local.get $1 i32.load - local.set $4 + local.set $3 global.get $~lib/memory/__stack_pointer local.get $1 i32.store offset=4 - local.get $5 local.get $4 - local.get $7 + local.get $3 + local.get $6 local.get $1 i32.load offset=4 i32.and i32.const 2 i32.shl i32.add - local.tee $4 + local.tee $3 i32.load i32.store offset=8 + local.get $3 local.get $4 - local.get $5 i32.store end local.get $2 @@ -9565,11 +9028,11 @@ i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 3104 + i32.const 2496 i32.lt_s if - i32.const 35904 - i32.const 35952 + i32.const 35296 + i32.const 35344 i32.const 1 i32.const 1 call $~lib/builtins/abort @@ -9629,11 +9092,11 @@ i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 3104 + i32.const 2496 i32.lt_s if - i32.const 35904 - i32.const 35952 + i32.const 35296 + i32.const 35344 i32.const 1 i32.const 1 call $~lib/builtins/abort @@ -9819,11 +9282,11 @@ i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 3104 + i32.const 2496 i32.lt_s if - i32.const 35904 - i32.const 35952 + i32.const 35296 + i32.const 35344 i32.const 1 i32.const 1 call $~lib/builtins/abort @@ -9870,9 +9333,9 @@ local.tee $0 i32.eqz if - i32.const 1824 - i32.const 1888 - i32.const 148 + i32.const 1792 + i32.const 1856 + i32.const 146 i32.const 17 call $~lib/builtins/abort unreachable @@ -9891,11 +9354,11 @@ i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 3104 + i32.const 2496 i32.lt_s if - i32.const 35904 - i32.const 35952 + i32.const 35296 + i32.const 35344 i32.const 1 i32.const 1 call $~lib/builtins/abort @@ -9960,11 +9423,11 @@ i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 3104 + i32.const 2496 i32.lt_s if - i32.const 35904 - i32.const 35952 + i32.const 35296 + i32.const 35344 i32.const 1 i32.const 1 call $~lib/builtins/abort @@ -9989,296 +9452,461 @@ i32.add global.set $~lib/memory/__stack_pointer ) - (func $"~lib/map/Map#rehash" (param $0 i32) (param $1 i32) - (local $2 i32) + (func $"~lib/map/Map#set" (param $0 i32) (param $1 i32) (param $2 i32) (local $3 i32) (local $4 i32) (local $5 i32) (local $6 i32) (local $7 i32) (local $8 i32) + (local $9 i32) + (local $10 i32) + (local $11 i32) global.get $~lib/memory/__stack_pointer - i32.const 16 + i32.const 12 i32.sub global.set $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - i32.const 3104 - i32.lt_s - if - i32.const 35904 - i32.const 35952 - i32.const 1 - i32.const 1 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - i64.const 0 - i64.store - global.get $~lib/memory/__stack_pointer - i64.const 0 - i64.store offset=8 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.const 1 - i32.add - local.tee $2 - i32.const 2 - i32.shl - call $~lib/arraybuffer/ArrayBuffer#constructor - local.tee $6 - i32.store - global.get $~lib/memory/__stack_pointer - local.get $2 - i32.const 3 - i32.shl - i32.const 3 - i32.div_s - local.tee $5 - i32.const 3 - i32.shl - call $~lib/arraybuffer/ArrayBuffer#constructor - local.tee $3 - i32.store offset=4 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=8 - local.get $0 - i32.load offset=8 - local.set $7 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=8 - local.get $7 - local.get $0 - i32.load offset=16 - i32.const 3 - i32.shl - i32.add - local.set $4 - local.get $3 - local.set $2 - loop $while-continue|0 - local.get $4 - local.get $7 - i32.ne - if - local.get $7 + block $folding-inner0 + global.get $~lib/memory/__stack_pointer + i32.const 2496 + i32.lt_s + br_if $folding-inner0 + global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store offset=8 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + local.get $1 + i32.extend16_s + i32.const -1028477379 + i32.mul + i32.const 374761395 + i32.add + i32.const 17 + i32.rotl + i32.const 668265263 + i32.mul + local.tee $3 + i32.const 15 + i32.shr_u + local.get $3 + i32.xor + i32.const -2048144777 + i32.mul + local.tee $3 + i32.const 13 + i32.shr_u + local.get $3 + i32.xor + i32.const -1028477379 + i32.mul + local.tee $3 + i32.const 16 + i32.shr_u + local.get $3 + i32.xor + local.set $8 + block $"__inlined_func$~lib/map/Map#find$11" (result i32) + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.sub + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 2496 + i32.lt_s + br_if $folding-inner0 + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store + global.get $~lib/memory/__stack_pointer + local.get $0 + local.tee $3 + i32.store + local.get $3 + i32.load + global.get $~lib/memory/__stack_pointer + local.get $3 + i32.store + local.get $8 + local.get $3 i32.load offset=4 - i32.const 1 i32.and - i32.eqz - if - local.get $2 - local.get $7 - i32.load16_s - local.tee $8 - i32.store16 - local.get $2 - local.get $7 - i32.load16_s offset=2 - i32.store16 offset=2 - local.get $2 - local.get $6 - local.get $1 - local.get $8 - i32.const -1028477379 - i32.mul - i32.const 374761395 - i32.add - i32.const 17 - i32.rotl - i32.const 668265263 - i32.mul - local.tee $8 - local.get $8 - i32.const 15 - i32.shr_u - i32.xor - i32.const -2048144777 - i32.mul - local.tee $8 - local.get $8 - i32.const 13 - i32.shr_u - i32.xor - i32.const -1028477379 - i32.mul - local.tee $8 - local.get $8 - i32.const 16 - i32.shr_u - i32.xor - i32.and - i32.const 2 - i32.shl - i32.add - local.tee $8 - i32.load - i32.store offset=4 - local.get $8 - local.get $2 - i32.store - local.get $2 - i32.const 8 - i32.add - local.set $2 + i32.const 2 + i32.shl + i32.add + i32.load + local.set $0 + loop $while-continue|0 + local.get $0 + if + local.get $0 + i32.load offset=4 + local.tee $4 + i32.const 1 + i32.and + if (result i32) + i32.const 0 + else + local.get $0 + i32.load16_u + local.get $1 + i32.const 65535 + i32.and + i32.eq + end + if + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $0 + br $"__inlined_func$~lib/map/Map#find$11" + end + local.get $4 + i32.const -2 + i32.and + local.set $0 + br $while-continue|0 + end end - local.get $7 - i32.const 8 + global.get $~lib/memory/__stack_pointer + i32.const 4 i32.add - local.set $7 - br $while-continue|0 + global.set $~lib/memory/__stack_pointer + i32.const 0 end - end - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=8 - global.get $~lib/memory/__stack_pointer - local.get $6 - i32.store offset=12 - local.get $0 - local.get $6 - i32.store - local.get $0 - local.get $6 - i32.const 0 - call $~lib/rt/itcms/__link - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=8 - local.get $0 - local.get $1 - i32.store offset=4 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=8 - global.get $~lib/memory/__stack_pointer - local.get $3 - i32.store offset=12 - local.get $0 - local.get $3 - i32.store offset=8 - local.get $0 - local.get $3 - i32.const 0 - call $~lib/rt/itcms/__link - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=8 - local.get $0 - local.get $5 - i32.store offset=12 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=8 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=12 - local.get $0 - local.get $0 - i32.load offset=20 - i32.store offset=16 - global.get $~lib/memory/__stack_pointer - i32.const 16 - i32.add - global.set $~lib/memory/__stack_pointer - ) - (func $"~lib/map/Map#find" (param $0 i32) (param $1 i32) (param $2 i32) (result i32) - (local $3 i32) - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.sub - global.set $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - i32.const 3104 - i32.lt_s - if - i32.const 35904 - i32.const 35952 - i32.const 1 - i32.const 1 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.store - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store - local.get $0 - i32.load - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store - local.get $2 - local.get $0 - i32.load offset=4 - i32.and - i32.const 2 - i32.shl - i32.add - i32.load - local.set $0 - loop $while-continue|0 - local.get $0 + local.tee $0 if local.get $0 - i32.load offset=4 - local.tee $2 - i32.const 1 - i32.and - if (result i32) - i32.const 0 - else - local.get $0 - i32.load16_u - local.get $1 - i32.const 65535 - i32.and - i32.eq - end + local.get $2 + i32.store16 offset=2 + else + global.get $~lib/memory/__stack_pointer + local.get $3 + i32.store + local.get $3 + i32.load offset=16 + global.get $~lib/memory/__stack_pointer + local.get $3 + i32.store + local.get $3 + i32.load offset=12 + i32.eq if global.get $~lib/memory/__stack_pointer + local.get $3 + i32.store + global.get $~lib/memory/__stack_pointer + local.get $3 + i32.store offset=4 + local.get $3 + i32.load offset=20 + global.get $~lib/memory/__stack_pointer + local.get $3 + i32.store offset=4 + local.get $3 + i32.load offset=12 + i32.const 3 + i32.mul i32.const 4 - i32.add + i32.div_s + i32.lt_s + if (result i32) + global.get $~lib/memory/__stack_pointer + local.get $3 + i32.store offset=4 + local.get $3 + i32.load offset=4 + else + global.get $~lib/memory/__stack_pointer + local.get $3 + i32.store offset=4 + local.get $3 + i32.load offset=4 + i32.const 1 + i32.shl + i32.const 1 + i32.or + end + local.set $7 + global.get $~lib/memory/__stack_pointer + i32.const 16 + i32.sub global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 2496 + i32.lt_s + br_if $folding-inner0 + global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store + global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store offset=8 + global.get $~lib/memory/__stack_pointer + local.get $7 + i32.const 1 + i32.add + local.tee $0 + i32.const 2 + i32.shl + call $~lib/arraybuffer/ArrayBuffer#constructor + local.tee $6 + i32.store + global.get $~lib/memory/__stack_pointer local.get $0 - return - end - local.get $2 - i32.const -2 - i32.and - local.set $0 - br $while-continue|0 - end - end - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.add - global.set $~lib/memory/__stack_pointer - i32.const 0 + i32.const 3 + i32.shl + i32.const 3 + i32.div_s + local.tee $9 + i32.const 3 + i32.shl + call $~lib/arraybuffer/ArrayBuffer#constructor + local.tee $4 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + local.get $3 + i32.store offset=8 + local.get $3 + i32.load offset=8 + local.set $5 + global.get $~lib/memory/__stack_pointer + local.get $3 + i32.store offset=8 + local.get $5 + local.get $3 + i32.load offset=16 + i32.const 3 + i32.shl + i32.add + local.set $10 + local.get $4 + local.set $0 + loop $while-continue|00 + local.get $5 + local.get $10 + i32.ne + if + local.get $5 + i32.load offset=4 + i32.const 1 + i32.and + i32.eqz + if + local.get $0 + local.get $5 + i32.load16_s + local.tee $11 + i32.store16 + local.get $0 + local.get $5 + i32.load16_s offset=2 + i32.store16 offset=2 + local.get $0 + local.get $6 + local.get $7 + local.get $11 + i32.const -1028477379 + i32.mul + i32.const 374761395 + i32.add + i32.const 17 + i32.rotl + i32.const 668265263 + i32.mul + local.tee $11 + local.get $11 + i32.const 15 + i32.shr_u + i32.xor + i32.const -2048144777 + i32.mul + local.tee $11 + local.get $11 + i32.const 13 + i32.shr_u + i32.xor + i32.const -1028477379 + i32.mul + local.tee $11 + local.get $11 + i32.const 16 + i32.shr_u + i32.xor + i32.and + i32.const 2 + i32.shl + i32.add + local.tee $11 + i32.load + i32.store offset=4 + local.get $11 + local.get $0 + i32.store + local.get $0 + i32.const 8 + i32.add + local.set $0 + end + local.get $5 + i32.const 8 + i32.add + local.set $5 + br $while-continue|00 + end + end + global.get $~lib/memory/__stack_pointer + local.get $3 + i32.store offset=8 + global.get $~lib/memory/__stack_pointer + local.get $6 + i32.store offset=12 + local.get $3 + local.get $6 + i32.store + local.get $3 + local.get $6 + i32.const 0 + call $~lib/rt/itcms/__link + global.get $~lib/memory/__stack_pointer + local.get $3 + i32.store offset=8 + local.get $3 + local.get $7 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + local.get $3 + i32.store offset=8 + global.get $~lib/memory/__stack_pointer + local.get $4 + i32.store offset=12 + local.get $3 + local.get $4 + i32.store offset=8 + local.get $3 + local.get $4 + i32.const 0 + call $~lib/rt/itcms/__link + global.get $~lib/memory/__stack_pointer + local.get $3 + i32.store offset=8 + local.get $3 + local.get $9 + i32.store offset=12 + global.get $~lib/memory/__stack_pointer + local.get $3 + i32.store offset=8 + global.get $~lib/memory/__stack_pointer + local.get $3 + i32.store offset=12 + local.get $3 + local.get $3 + i32.load offset=20 + i32.store offset=16 + global.get $~lib/memory/__stack_pointer + i32.const 16 + i32.add + global.set $~lib/memory/__stack_pointer + end + global.get $~lib/memory/__stack_pointer + local.get $3 + i32.store + global.get $~lib/memory/__stack_pointer + local.get $3 + i32.load offset=8 + local.tee $0 + i32.store offset=8 + global.get $~lib/memory/__stack_pointer + local.get $3 + i32.store + global.get $~lib/memory/__stack_pointer + local.get $3 + i32.store offset=4 + local.get $3 + local.get $3 + i32.load offset=16 + local.tee $4 + i32.const 1 + i32.add + i32.store offset=16 + local.get $0 + local.get $4 + i32.const 3 + i32.shl + i32.add + local.tee $0 + local.get $1 + i32.store16 + local.get $0 + local.get $2 + i32.store16 offset=2 + global.get $~lib/memory/__stack_pointer + local.get $3 + i32.store + global.get $~lib/memory/__stack_pointer + local.get $3 + i32.store offset=4 + local.get $3 + local.get $3 + i32.load offset=20 + i32.const 1 + i32.add + i32.store offset=20 + global.get $~lib/memory/__stack_pointer + local.get $3 + i32.store + local.get $3 + i32.load + local.set $1 + global.get $~lib/memory/__stack_pointer + local.get $3 + i32.store + local.get $0 + local.get $1 + local.get $8 + local.get $3 + i32.load offset=4 + i32.and + i32.const 2 + i32.shl + i32.add + local.tee $1 + i32.load + i32.store offset=4 + local.get $1 + local.get $0 + i32.store + end + global.get $~lib/memory/__stack_pointer + i32.const 12 + i32.add + global.set $~lib/memory/__stack_pointer + return + end + i32.const 35296 + i32.const 35344 + i32.const 1 + i32.const 1 + call $~lib/builtins/abort + unreachable ) - (func $"~lib/map/Map#constructor" (param $0 i32) (result i32) - (local $1 i32) + (func $"~lib/map/Map#delete" (param $0 i32) (param $1 i32) (local $2 i32) - (local $3 i32) - (local $4 i32) - (local $5 i32) - (local $6 i32) - (local $7 i32) - (local $8 i32) global.get $~lib/memory/__stack_pointer - i32.const 16 + i32.const 8 i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 3104 + i32.const 2496 i32.lt_s if - i32.const 35904 - i32.const 35952 + i32.const 35296 + i32.const 35344 i32.const 1 i32.const 1 call $~lib/builtins/abort @@ -10288,1263 +9916,1120 @@ i64.const 0 i64.store global.get $~lib/memory/__stack_pointer - i64.const 0 - i64.store offset=8 - global.get $~lib/memory/__stack_pointer - i32.const 24 - i32.const 26 - call $~lib/rt/itcms/__new - local.tee $1 + local.get $0 i32.store - global.get $~lib/memory/__stack_pointer + local.get $0 local.get $1 - i32.store offset=4 - i32.const 16 - call $~lib/arraybuffer/ArrayBuffer#constructor - local.set $3 - global.get $~lib/memory/__stack_pointer - local.get $3 - i32.store offset=8 local.get $1 - local.get $3 - i32.store + i32.extend16_s + i32.const -1028477379 + i32.mul + i32.const 374761395 + i32.add + i32.const 17 + i32.rotl + i32.const 668265263 + i32.mul + local.tee $1 + i32.const 15 + i32.shr_u local.get $1 - local.get $3 - i32.const 0 - call $~lib/rt/itcms/__link - global.get $~lib/memory/__stack_pointer + i32.xor + i32.const -2048144777 + i32.mul + local.tee $1 + i32.const 13 + i32.shr_u local.get $1 - i32.store offset=4 + i32.xor + i32.const -1028477379 + i32.mul + local.tee $1 + i32.const 16 + i32.shr_u local.get $1 - i32.const 3 - i32.store offset=4 - global.get $~lib/memory/__stack_pointer + i32.xor + call $"~lib/map/Map#find" + local.tee $1 + i32.eqz + if + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.add + global.set $~lib/memory/__stack_pointer + return + end local.get $1 - i32.store offset=4 - i32.const 32 - call $~lib/arraybuffer/ArrayBuffer#constructor - local.set $3 - global.get $~lib/memory/__stack_pointer - local.get $3 - i32.store offset=8 local.get $1 - local.get $3 + i32.load offset=8 + i32.const 1 + i32.or i32.store offset=8 - local.get $1 - local.get $3 - i32.const 0 - call $~lib/rt/itcms/__link - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - local.get $1 - i32.const 4 - i32.store offset=12 global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - local.get $1 - i32.const 0 - i32.store offset=16 + local.get $0 + i32.store global.get $~lib/memory/__stack_pointer - local.get $1 + local.get $0 i32.store offset=4 - local.get $1 - i32.const 0 + local.get $0 + local.get $0 + i32.load offset=20 + i32.const 1 + i32.sub i32.store offset=20 global.get $~lib/memory/__stack_pointer local.get $0 - i32.store offset=4 + i32.store local.get $0 - call $"~lib/array/Array<~lib/map/KeyValue>#get:length" - local.tee $3 - i32.const 0 - i32.gt_s - if + i32.load offset=4 + i32.const 1 + i32.shr_u + local.set $1 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + local.get $1 + i32.const 1 + i32.add + i32.const 4 + local.get $0 + i32.load offset=20 + local.tee $2 + local.get $2 + i32.const 4 + i32.lt_u + select + i32.ge_u + if (result i32) global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - local.get $3 - local.get $1 + local.get $0 + i32.store + local.get $0 + i32.load offset=20 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + local.get $0 i32.load offset=12 - i32.ge_s - if - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - local.get $1 - local.get $3 - i32.store offset=4 - end + i32.const 3 + i32.mul + i32.const 4 + i32.div_s + i32.lt_s + else + i32.const 0 + end + if global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + local.get $0 local.get $1 - i32.store offset=4 + call $"~lib/map/Map#rehash" + end + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.add + global.set $~lib/memory/__stack_pointer + ) + (func $"std/map/testNumeric" + (local $0 i32) + (local $1 i32) + (local $2 i32) + (local $3 i32) + (local $4 i32) + (local $5 i32) + (local $6 i32) + (local $7 i32) + (local $8 i32) + global.get $~lib/memory/__stack_pointer + i32.const 40 + i32.sub + global.set $~lib/memory/__stack_pointer + block $folding-inner1 global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=8 - local.get $1 - local.get $1 - i32.load offset=4 - i32.const 1 - i32.shl - i32.const 1 - i32.or - call $"~lib/map/Map#rehash" + i32.const 2496 + i32.lt_s + br_if $folding-inner1 + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.const 40 + memory.fill + global.get $~lib/memory/__stack_pointer + i32.const 0 + call $"~lib/map/Map#constructor" + local.tee $3 + i32.store loop $for-loop|0 - local.get $2 - local.get $3 + local.get $0 + i32.const 100 i32.lt_s if global.get $~lib/memory/__stack_pointer + local.get $3 + i32.store offset=4 + local.get $3 local.get $0 - i32.store offset=8 + call $"~lib/map/Map#has" + if + i32.const 0 + i32.const 1744 + i32.const 7 + i32.const 5 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + local.get $3 + i32.store offset=4 + local.get $3 local.get $0 - local.get $2 - call $"~lib/array/Array<~lib/map/KeyValue>#__get" - local.set $4 + local.get $0 + i32.const 10 + i32.add + call $"~lib/map/Map#set" global.get $~lib/memory/__stack_pointer - local.get $4 + local.get $3 i32.store offset=4 - local.get $4 - i32.load16_s - local.set $4 + local.get $3 + local.get $0 + call $"~lib/map/Map#has" + i32.eqz + if + i32.const 0 + i32.const 1744 + i32.const 9 + i32.const 5 + call $~lib/builtins/abort + unreachable + end global.get $~lib/memory/__stack_pointer + local.get $3 + i32.store offset=4 + local.get $3 local.get $0 - i32.store offset=8 + call $"~lib/map/Map#get" local.get $0 - local.get $2 - call $"~lib/array/Array<~lib/map/KeyValue>#__get" - local.set $5 + i32.const 10 + i32.add + i32.ne + if + i32.const 0 + i32.const 1744 + i32.const 10 + i32.const 5 + call $~lib/builtins/abort + unreachable + end + local.get $0 + i32.const 1 + i32.add + local.set $0 + br $for-loop|0 + end + end + global.get $~lib/memory/__stack_pointer + local.get $3 + i32.store offset=4 + local.get $3 + call $"~lib/map/Map#get:size" + i32.const 100 + i32.ne + if + i32.const 0 + i32.const 1744 + i32.const 12 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + i32.const 0 + local.set $0 + loop $for-loop|1 + local.get $0 + i32.const 100 + i32.lt_s + if global.get $~lib/memory/__stack_pointer - local.get $5 + local.get $3 i32.store offset=4 - local.get $5 - i32.load16_s offset=2 - local.set $6 + local.get $3 + local.get $0 + call $"~lib/map/Map#has" + i32.eqz + if + i32.const 0 + i32.const 1744 + i32.const 16 + i32.const 5 + call $~lib/builtins/abort + unreachable + end global.get $~lib/memory/__stack_pointer - local.get $1 + local.get $3 i32.store offset=4 - local.get $1 - local.get $4 - local.get $4 - i32.const -1028477379 - i32.mul - i32.const 374761395 + local.get $3 + local.get $0 + call $"~lib/map/Map#get" + local.get $0 + i32.const 10 i32.add - i32.const 17 - i32.rotl - i32.const 668265263 - i32.mul - local.tee $5 - i32.const 15 - i32.shr_u - local.get $5 - i32.xor - i32.const -2048144777 - i32.mul - local.tee $5 - i32.const 13 - i32.shr_u - local.get $5 - i32.xor - i32.const -1028477379 - i32.mul - local.tee $5 - i32.const 16 - i32.shr_u - local.get $5 - i32.xor - local.tee $7 - call $"~lib/map/Map#find" - local.tee $5 + i32.ne if - local.get $5 - local.get $6 - i32.store16 offset=2 - else - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.load offset=8 - local.tee $5 - i32.store offset=12 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=8 - local.get $1 - local.get $1 - i32.load offset=16 - local.tee $8 - i32.const 1 - i32.add - i32.store offset=16 - local.get $5 - local.get $8 - i32.const 3 - i32.shl - i32.add - local.tee $5 - local.get $4 - i32.store16 - local.get $5 - local.get $6 - i32.store16 offset=2 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=8 - local.get $1 - local.get $1 - i32.load offset=20 - i32.const 1 - i32.add - i32.store offset=20 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - local.get $1 - i32.load - local.set $4 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - local.get $5 - local.get $4 - local.get $7 - local.get $1 - i32.load offset=4 - i32.and - i32.const 2 - i32.shl - i32.add - local.tee $4 - i32.load - i32.store offset=4 - local.get $4 - local.get $5 - i32.store + i32.const 0 + i32.const 1744 + i32.const 17 + i32.const 5 + call $~lib/builtins/abort + unreachable end - local.get $2 + global.get $~lib/memory/__stack_pointer + local.get $3 + i32.store offset=4 + local.get $3 + local.get $0 + local.get $0 + i32.const 20 + i32.add + call $"~lib/map/Map#set" + global.get $~lib/memory/__stack_pointer + local.get $3 + i32.store offset=4 + local.get $3 + local.get $0 + call $"~lib/map/Map#has" + i32.eqz + if + i32.const 0 + i32.const 1744 + i32.const 19 + i32.const 5 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + local.get $3 + i32.store offset=4 + local.get $3 + local.get $0 + call $"~lib/map/Map#get" + local.get $0 + i32.const 20 + i32.add + i32.ne + if + i32.const 0 + i32.const 1744 + i32.const 20 + i32.const 5 + call $~lib/builtins/abort + unreachable + end + local.get $0 i32.const 1 i32.add - local.set $2 - br $for-loop|0 + local.set $0 + br $for-loop|1 end end - end - global.get $~lib/memory/__stack_pointer - i32.const 16 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $1 - ) - (func $"~lib/map/Map#delete" (param $0 i32) (param $1 i32) - (local $2 i32) - global.get $~lib/memory/__stack_pointer - i32.const 8 - i32.sub - global.set $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - i32.const 3104 - i32.lt_s - if - i32.const 35904 - i32.const 35952 - i32.const 1 - i32.const 1 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - i64.const 0 - i64.store - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store - local.get $0 - local.get $1 - local.get $1 - i32.extend16_s - i32.const -1028477379 - i32.mul - i32.const 374761395 - i32.add - i32.const 17 - i32.rotl - i32.const 668265263 - i32.mul - local.tee $1 - i32.const 15 - i32.shr_u - local.get $1 - i32.xor - i32.const -2048144777 - i32.mul - local.tee $1 - i32.const 13 - i32.shr_u - local.get $1 - i32.xor - i32.const -1028477379 - i32.mul - local.tee $1 - i32.const 16 - i32.shr_u - local.get $1 - i32.xor - call $"~lib/map/Map#find" - local.tee $1 - i32.eqz - if + global.get $~lib/memory/__stack_pointer + local.get $3 + i32.store offset=4 + local.get $3 + call $"~lib/map/Map#get:size" + i32.const 100 + i32.ne + if + i32.const 0 + i32.const 1744 + i32.const 22 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + local.get $3 + i32.store offset=4 global.get $~lib/memory/__stack_pointer i32.const 8 - i32.add + i32.sub global.set $~lib/memory/__stack_pointer - return - end - local.get $1 - local.get $1 - i32.load offset=8 - i32.const 1 - i32.or - i32.store offset=8 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 - local.get $0 - i32.load offset=20 - i32.const 1 - i32.sub - i32.store offset=20 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store - local.get $0 - i32.load offset=4 - i32.const 1 - i32.shr_u - local.set $1 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store - local.get $1 - i32.const 1 - i32.add - i32.const 4 - local.get $0 - i32.load offset=20 - local.tee $2 - local.get $2 - i32.const 4 - i32.lt_u - select - i32.ge_u - if (result i32) - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store - local.get $0 - i32.load offset=20 global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store - local.get $0 - i32.load offset=12 - i32.const 3 - i32.mul - i32.const 4 - i32.div_s + i32.const 2496 i32.lt_s - else - i32.const 0 - end - if + br_if $folding-inner1 global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store - local.get $0 - local.get $1 - call $"~lib/map/Map#rehash" - end - global.get $~lib/memory/__stack_pointer - i32.const 8 - i32.add - global.set $~lib/memory/__stack_pointer - ) - (func $"std/map/testNumeric" - (local $0 i32) - (local $1 i32) - (local $2 i32) - (local $3 i32) - (local $4 i32) - (local $5 i32) - (local $6 i32) - (local $7 i32) - (local $8 i32) - (local $9 i32) - (local $10 i32) - global.get $~lib/memory/__stack_pointer - i32.const 40 - i32.sub - global.set $~lib/memory/__stack_pointer - block $folding-inner1 + i64.const 0 + i64.store global.get $~lib/memory/__stack_pointer - i32.const 3104 - i32.lt_s - br_if $folding-inner1 + local.get $3 + i32.store + local.get $3 + i32.load offset=8 + local.set $5 global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.const 40 - memory.fill + local.get $3 + i32.store + local.get $3 + i32.load offset=16 + local.set $6 global.get $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 12 + i32.const 16 i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 3104 + i32.const 2496 i32.lt_s br_if $folding-inner1 global.get $~lib/memory/__stack_pointer i64.const 0 i64.store global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store offset=8 + global.get $~lib/memory/__stack_pointer + i32.const 16 + i32.const 25 + call $~lib/rt/itcms/__new + local.tee $7 + i32.store + global.get $~lib/memory/__stack_pointer + local.get $7 + i32.store offset=4 + local.get $7 + i32.const 0 + i32.store + local.get $7 + i32.const 0 + i32.const 0 + call $~lib/rt/itcms/__link + global.get $~lib/memory/__stack_pointer + local.get $7 + i32.store offset=4 + local.get $7 + i32.const 0 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + local.get $7 + i32.store offset=4 + local.get $7 i32.const 0 i32.store offset=8 global.get $~lib/memory/__stack_pointer - i32.const 24 - i32.const 2128 - call $~lib/rt/__newArray - local.tee $4 - i32.store + local.get $7 + i32.store offset=4 + local.get $7 + i32.const 0 + i32.store offset=12 + local.get $6 + i32.const 536870910 + i32.gt_u + if + i32.const 1056 + i32.const 1568 + i32.const 70 + i32.const 60 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + i32.const 8 + local.get $6 + local.get $6 + i32.const 8 + i32.le_u + select + i32.const 1 + i32.shl + local.tee $0 + i32.const 1 + call $~lib/rt/itcms/__new + local.tee $8 + i32.store offset=8 + global.get $~lib/memory/__stack_pointer + local.get $7 + i32.store offset=4 global.get $~lib/memory/__stack_pointer + local.get $8 + i32.store offset=12 + local.get $7 + local.get $8 + i32.store + local.get $7 + local.get $8 i32.const 0 + call $~lib/rt/itcms/__link + global.get $~lib/memory/__stack_pointer + local.get $7 + i32.store offset=4 + local.get $7 + local.get $8 i32.store offset=4 global.get $~lib/memory/__stack_pointer - local.get $4 + local.get $7 + i32.store offset=4 + local.get $7 + local.get $0 i32.store offset=8 - local.get $4 - call $"~lib/map/Map#constructor" - local.set $4 global.get $~lib/memory/__stack_pointer - i32.const 12 + local.get $7 + i32.store offset=4 + local.get $7 + local.get $6 + i32.store offset=12 + global.get $~lib/memory/__stack_pointer + i32.const 16 i32.add global.set $~lib/memory/__stack_pointer - local.get $4 - i32.store - loop $for-loop|0 - local.get $0 - i32.const 100 + local.get $7 + i32.store offset=4 + i32.const 0 + local.set $0 + loop $for-loop|00 + local.get $1 + local.get $6 i32.lt_s if - global.get $~lib/memory/__stack_pointer - local.get $4 - i32.store offset=4 - local.get $4 - local.get $0 - call $"~lib/map/Map#has" - if - i32.const 0 - i32.const 1776 - i32.const 7 - i32.const 5 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - local.get $4 - i32.store offset=4 - local.get $4 - local.get $0 - local.get $0 - i32.const 10 + local.get $5 + local.get $1 + i32.const 12 + i32.mul i32.add - call $"~lib/map/Map#set" - global.get $~lib/memory/__stack_pointer - local.get $4 - i32.store offset=4 - local.get $4 - local.get $0 - call $"~lib/map/Map#has" + local.tee $8 + i32.load offset=8 + i32.const 1 + i32.and i32.eqz if - i32.const 0 - i32.const 1776 - i32.const 9 - i32.const 5 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - local.get $4 - i32.store offset=4 - local.get $4 - local.get $0 - call $"~lib/map/Map#get" - local.get $0 - i32.const 10 - i32.add - i32.ne - if - i32.const 0 - i32.const 1776 - i32.const 10 - i32.const 5 - call $~lib/builtins/abort - unreachable + global.get $~lib/memory/__stack_pointer + local.get $7 + i32.store + local.get $7 + local.get $0 + local.get $8 + i32.load16_s + call $~lib/array/Array#__set + local.get $0 + i32.const 1 + i32.add + local.set $0 end - local.get $0 + local.get $1 i32.const 1 i32.add - local.set $0 - br $for-loop|0 + local.set $1 + br $for-loop|00 end end global.get $~lib/memory/__stack_pointer + local.get $7 + i32.store + local.get $7 + local.get $0 + call $~lib/array/Array#set:length + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $7 + i32.store offset=8 + global.get $~lib/memory/__stack_pointer + local.get $3 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + local.get $3 + call $"~lib/map/Map#values" + local.tee $0 + i32.store offset=12 + global.get $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 16 + i32.sub + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 2496 + i32.lt_s + br_if $folding-inner1 + global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store + global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store offset=8 + global.get $~lib/memory/__stack_pointer + i32.const 24 + i32.const 26 + call $~lib/rt/itcms/__new + local.tee $1 + i32.store + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + i32.const 16 + call $~lib/arraybuffer/ArrayBuffer#constructor + local.set $4 + global.get $~lib/memory/__stack_pointer + local.get $4 + i32.store offset=8 + local.get $1 + local.get $4 + i32.store + local.get $1 local.get $4 + i32.const 0 + call $~lib/rt/itcms/__link + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + local.get $1 + i32.const 3 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + local.get $1 i32.store offset=4 + i32.const 32 + call $~lib/arraybuffer/ArrayBuffer#constructor + local.set $4 + global.get $~lib/memory/__stack_pointer + local.get $4 + i32.store offset=8 + local.get $1 + local.get $4 + i32.store offset=8 + local.get $1 local.get $4 - call $"~lib/map/Map#get:size" - i32.const 100 - i32.ne - if - i32.const 0 - i32.const 1776 - i32.const 12 - i32.const 3 - call $~lib/builtins/abort - unreachable - end i32.const 0 - local.set $0 - loop $for-loop|1 - local.get $0 - i32.const 100 - i32.lt_s + call $~lib/rt/itcms/__link + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + local.get $1 + i32.const 4 + i32.store offset=12 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + local.get $1 + i32.const 0 + i32.store offset=16 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + local.get $1 + i32.const 0 + i32.store offset=20 + global.get $~lib/memory/__stack_pointer + i32.const 16 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=16 + global.get $~lib/memory/__stack_pointer + i32.const 0 + call $"~lib/map/Map#constructor" + local.tee $4 + i32.store offset=20 + loop $for-loop|2 + global.get $~lib/memory/__stack_pointer + local.get $7 + i32.store offset=4 + local.get $7 + call $"~lib/array/Array<~lib/map/KeyValue>#get:length" + local.get $2 + i32.gt_s if global.get $~lib/memory/__stack_pointer - local.get $4 + local.get $7 i32.store offset=4 - local.get $4 - local.get $0 - call $"~lib/map/Map#has" - i32.eqz + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.sub + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 2496 + i32.lt_s + br_if $folding-inner1 + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store + global.get $~lib/memory/__stack_pointer + local.get $7 + i32.store + local.get $2 + local.get $7 + i32.load offset=12 + i32.ge_u if - i32.const 0 - i32.const 1776 - i32.const 16 - i32.const 5 + i32.const 1360 + i32.const 1568 + i32.const 114 + i32.const 42 call $~lib/builtins/abort unreachable end global.get $~lib/memory/__stack_pointer - local.get $4 - i32.store offset=4 - local.get $4 + local.get $7 + i32.store + local.get $7 + i32.load offset=4 + local.get $2 + i32.const 1 + i32.shl + i32.add + i32.load16_s + local.set $5 + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer local.get $0 - call $"~lib/map/Map#get" + i32.store offset=4 local.get $0 - i32.const 10 - i32.add - i32.ne + local.get $2 + call $~lib/array/Array#__get + local.set $6 + global.get $~lib/memory/__stack_pointer + local.get $3 + i32.store offset=4 + local.get $3 + local.get $5 + call $"~lib/map/Map#has" + i32.eqz if i32.const 0 - i32.const 1776 - i32.const 17 + i32.const 1744 + i32.const 32 i32.const 5 call $~lib/builtins/abort unreachable end global.get $~lib/memory/__stack_pointer - local.get $4 + local.get $3 i32.store offset=4 - local.get $4 - local.get $0 - local.get $0 + local.get $3 + local.get $6 i32.const 20 - i32.add - call $"~lib/map/Map#set" - global.get $~lib/memory/__stack_pointer - local.get $4 - i32.store offset=4 - local.get $4 - local.get $0 + i32.sub call $"~lib/map/Map#has" i32.eqz if i32.const 0 - i32.const 1776 - i32.const 19 + i32.const 1744 + i32.const 33 i32.const 5 call $~lib/builtins/abort unreachable end global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + local.get $1 + local.get $5 + local.get $5 + call $"~lib/map/Map#set" + global.get $~lib/memory/__stack_pointer local.get $4 i32.store offset=4 local.get $4 - local.get $0 - call $"~lib/map/Map#get" - local.get $0 + local.get $6 i32.const 20 - i32.add - i32.ne - if - i32.const 0 - i32.const 1776 - i32.const 20 - i32.const 5 - call $~lib/builtins/abort - unreachable - end - local.get $0 + i32.sub + local.tee $5 + local.get $5 + call $"~lib/map/Map#set" + local.get $2 i32.const 1 i32.add - local.set $0 - br $for-loop|1 + local.set $2 + br $for-loop|2 end end global.get $~lib/memory/__stack_pointer - local.get $4 + local.get $1 i32.store offset=4 - local.get $4 + local.get $1 call $"~lib/map/Map#get:size" i32.const 100 i32.ne if i32.const 0 - i32.const 1776 - i32.const 22 + i32.const 1744 + i32.const 37 i32.const 3 call $~lib/builtins/abort unreachable end global.get $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer local.get $4 i32.store offset=4 - global.get $~lib/memory/__stack_pointer - i32.const 8 - i32.sub - global.set $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - i32.const 3104 - i32.lt_s - br_if $folding-inner1 - global.get $~lib/memory/__stack_pointer - i64.const 0 - i64.store - global.get $~lib/memory/__stack_pointer - local.get $4 - i32.store local.get $4 - i32.load offset=8 - local.set $6 - global.get $~lib/memory/__stack_pointer - local.get $4 - i32.store - local.get $4 - i32.load offset=16 - local.set $7 - global.get $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - i32.const 16 - i32.sub - global.set $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - i32.const 3104 - i32.lt_s - br_if $folding-inner1 - global.get $~lib/memory/__stack_pointer - i64.const 0 - i64.store - global.get $~lib/memory/__stack_pointer - i64.const 0 - i64.store offset=8 - global.get $~lib/memory/__stack_pointer - i32.const 16 - i32.const 25 - call $~lib/rt/itcms/__new - local.tee $3 - i32.store - global.get $~lib/memory/__stack_pointer - local.get $3 - i32.store offset=4 - local.get $3 - i32.const 0 - i32.store - local.get $3 - i32.const 0 - i32.const 0 - call $~lib/rt/itcms/__link - global.get $~lib/memory/__stack_pointer - local.get $3 - i32.store offset=4 - local.get $3 - i32.const 0 - i32.store offset=4 - global.get $~lib/memory/__stack_pointer - local.get $3 - i32.store offset=4 - local.get $3 + call $"~lib/map/Map#get:size" + i32.const 100 + i32.ne + if + i32.const 0 + i32.const 1744 + i32.const 38 + i32.const 3 + call $~lib/builtins/abort + unreachable + end i32.const 0 - i32.store offset=8 + local.set $0 + loop $for-loop|3 + local.get $0 + i32.const 50 + i32.lt_s + if + global.get $~lib/memory/__stack_pointer + local.get $3 + i32.store offset=4 + local.get $3 + local.get $0 + call $"~lib/map/Map#has" + i32.eqz + if + i32.const 0 + i32.const 1744 + i32.const 42 + i32.const 5 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + local.get $3 + i32.store offset=4 + local.get $3 + local.get $0 + call $"~lib/map/Map#get" + local.get $0 + i32.const 20 + i32.add + i32.ne + if + i32.const 0 + i32.const 1744 + i32.const 43 + i32.const 5 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + local.get $3 + i32.store offset=4 + local.get $3 + local.get $0 + call $"~lib/map/Map#delete" + global.get $~lib/memory/__stack_pointer + local.get $3 + i32.store offset=4 + local.get $3 + local.get $0 + call $"~lib/map/Map#has" + if + i32.const 0 + i32.const 1744 + i32.const 45 + i32.const 5 + call $~lib/builtins/abort + unreachable + end + local.get $0 + i32.const 1 + i32.add + local.set $0 + br $for-loop|3 + end + end global.get $~lib/memory/__stack_pointer local.get $3 i32.store offset=4 local.get $3 - i32.const 0 - i32.store offset=12 - local.get $7 - i32.const 536870910 - i32.gt_u + call $"~lib/map/Map#get:size" + i32.const 50 + i32.ne if - i32.const 1056 - i32.const 1568 - i32.const 70 - i32.const 60 + i32.const 0 + i32.const 1744 + i32.const 47 + i32.const 3 call $~lib/builtins/abort unreachable end - global.get $~lib/memory/__stack_pointer - i32.const 8 - local.get $7 - local.get $7 - i32.const 8 - i32.le_u - select - i32.const 1 - i32.shl - local.tee $8 - i32.const 1 - call $~lib/rt/itcms/__new - local.tee $9 - i32.store offset=8 - global.get $~lib/memory/__stack_pointer - local.get $3 - i32.store offset=4 - global.get $~lib/memory/__stack_pointer - local.get $9 - i32.store offset=12 - local.get $3 - local.get $9 - i32.store - local.get $3 - local.get $9 i32.const 0 - call $~lib/rt/itcms/__link + local.set $0 + loop $for-loop|4 + local.get $0 + i32.const 50 + i32.lt_s + if + global.get $~lib/memory/__stack_pointer + local.get $3 + i32.store offset=4 + local.get $3 + local.get $0 + call $"~lib/map/Map#has" + if + i32.const 0 + i32.const 1744 + i32.const 51 + i32.const 5 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + local.get $3 + i32.store offset=4 + local.get $3 + local.get $0 + local.get $0 + i32.const 10 + i32.add + call $"~lib/map/Map#set" + global.get $~lib/memory/__stack_pointer + local.get $3 + i32.store offset=4 + local.get $3 + local.get $0 + call $"~lib/map/Map#has" + i32.eqz + if + i32.const 0 + i32.const 1744 + i32.const 53 + i32.const 5 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + local.get $3 + i32.store offset=4 + local.get $3 + local.get $0 + call $"~lib/map/Map#delete" + global.get $~lib/memory/__stack_pointer + local.get $3 + i32.store offset=4 + local.get $3 + local.get $0 + call $"~lib/map/Map#has" + if + i32.const 0 + i32.const 1744 + i32.const 55 + i32.const 5 + call $~lib/builtins/abort + unreachable + end + local.get $0 + i32.const 1 + i32.add + local.set $0 + br $for-loop|4 + end + end global.get $~lib/memory/__stack_pointer local.get $3 i32.store offset=4 local.get $3 - local.get $9 - i32.store offset=4 + call $"~lib/map/Map#get:size" + i32.const 50 + i32.ne + if + i32.const 0 + i32.const 1744 + i32.const 57 + i32.const 3 + call $~lib/builtins/abort + unreachable + end global.get $~lib/memory/__stack_pointer local.get $3 i32.store offset=4 local.get $3 - local.get $8 - i32.store offset=8 + call $"~lib/map/Map#clear" global.get $~lib/memory/__stack_pointer local.get $3 i32.store offset=4 local.get $3 - local.get $7 - i32.store offset=12 + call $"~lib/map/Map#get:size" + if + i32.const 0 + i32.const 1744 + i32.const 61 + i32.const 3 + call $~lib/builtins/abort + unreachable + end global.get $~lib/memory/__stack_pointer - i32.const 16 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $3 - i32.store offset=4 + i32.const 24 + i32.const 1968 + call $~lib/rt/__newArray + local.tee $1 + i32.store offset=24 i32.const 0 local.set $0 - loop $for-loop|00 - local.get $2 - local.get $7 + loop $for-loop|5 + local.get $0 + i32.const 100 i32.lt_s - if - local.get $6 - local.get $2 - i32.const 12 - i32.mul - i32.add - local.tee $8 - i32.load offset=8 - i32.const 1 - i32.and - i32.eqz - if - global.get $~lib/memory/__stack_pointer - local.get $3 - i32.store - local.get $3 - local.get $0 - local.get $8 - i32.load16_s - call $~lib/array/Array#__set - local.get $0 - i32.const 1 - i32.add - local.set $0 - end - local.get $2 - i32.const 1 - i32.add - local.set $2 - br $for-loop|00 - end - end - global.get $~lib/memory/__stack_pointer - local.get $3 - i32.store - local.get $3 - local.get $0 - call $~lib/array/Array#set:length - global.get $~lib/memory/__stack_pointer - i32.const 8 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $3 - i32.store offset=8 - global.get $~lib/memory/__stack_pointer - local.get $4 - i32.store offset=4 - global.get $~lib/memory/__stack_pointer - local.get $4 - call $"~lib/map/Map#values" - local.tee $2 - i32.store offset=12 - global.get $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - i32.const 12 - i32.sub - global.set $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - i32.const 3104 - i32.lt_s - br_if $folding-inner1 - global.get $~lib/memory/__stack_pointer - i64.const 0 - i64.store - global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.store offset=8 - global.get $~lib/memory/__stack_pointer - i32.const 28 - i32.const 2160 - call $~lib/rt/__newArray - local.tee $5 - i32.store - global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.store offset=4 - global.get $~lib/memory/__stack_pointer - local.get $5 - i32.store offset=8 - local.get $5 - call $"~lib/map/Map#constructor" - local.set $5 - global.get $~lib/memory/__stack_pointer - i32.const 12 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $5 - i32.store offset=16 - global.get $~lib/memory/__stack_pointer - call $"~lib/map/Map#constructor@varargs" - local.tee $6 - i32.store offset=20 - loop $for-loop|2 - global.get $~lib/memory/__stack_pointer - local.get $3 - i32.store offset=4 - local.get $3 - call $"~lib/array/Array<~lib/map/KeyValue>#get:length" - local.get $1 - i32.gt_s if global.get $~lib/memory/__stack_pointer - local.get $3 + local.get $1 i32.store offset=4 global.get $~lib/memory/__stack_pointer - i32.const 4 + global.get $~lib/memory/__stack_pointer + i32.const 8 i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 3104 + i32.const 2496 i32.lt_s br_if $folding-inner1 global.get $~lib/memory/__stack_pointer - i32.const 0 + i64.const 0 + i64.store + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.const 23 + call $~lib/rt/itcms/__new + local.tee $3 i32.store global.get $~lib/memory/__stack_pointer local.get $3 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + local.get $3 + call $~lib/object/Object#constructor + local.tee $3 i32.store - local.get $1 + global.get $~lib/memory/__stack_pointer local.get $3 - i32.load offset=12 - i32.ge_u - if - i32.const 1360 - i32.const 1568 - i32.const 114 - i32.const 42 - call $~lib/builtins/abort - unreachable - end + i32.store offset=4 + local.get $3 + i32.const 0 + i32.store16 global.get $~lib/memory/__stack_pointer local.get $3 - i32.store + i32.store offset=4 local.get $3 - i32.load offset=4 - local.get $1 - i32.const 1 - i32.shl - i32.add - i32.load16_s - local.set $7 + i32.const 0 + i32.store offset=4 global.get $~lib/memory/__stack_pointer - i32.const 4 + i32.const 8 i32.add global.set $~lib/memory/__stack_pointer + local.get $3 + i32.store offset=32 global.get $~lib/memory/__stack_pointer - local.get $2 + local.get $3 + i32.store offset=36 + local.get $3 + local.get $0 + i32.store16 + global.get $~lib/memory/__stack_pointer + local.get $3 + i32.store offset=36 + local.get $3 + local.get $0 + i32.const 10 + i32.add i32.store offset=4 - local.get $2 + global.get $~lib/memory/__stack_pointer + local.get $3 + i32.store offset=28 local.get $1 - call $~lib/array/Array#__get - local.set $8 + local.get $3 + call $"~lib/array/Array<~lib/map/KeyValue>#push" + local.get $0 + i32.const 1 + i32.add + local.set $0 + br $for-loop|5 + end + end + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + local.get $1 + call $"~lib/map/Map#constructor" + local.tee $1 + i32.store + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + local.get $1 + call $"~lib/map/Map#get:size" + i32.const 100 + i32.ne + if + i32.const 0 + i32.const 1744 + i32.const 74 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + i32.const 0 + local.set $0 + loop $for-loop|6 + local.get $0 + i32.const 100 + i32.lt_s + if global.get $~lib/memory/__stack_pointer - local.get $4 + local.get $1 i32.store offset=4 - local.get $4 - local.get $7 + local.get $1 + local.get $0 call $"~lib/map/Map#has" i32.eqz if i32.const 0 - i32.const 1776 - i32.const 32 + i32.const 1744 + i32.const 76 i32.const 5 call $~lib/builtins/abort unreachable end global.get $~lib/memory/__stack_pointer - local.get $4 + local.get $1 i32.store offset=4 - local.get $4 - local.get $8 - i32.const 20 - i32.sub - call $"~lib/map/Map#has" - i32.eqz + local.get $1 + local.get $0 + call $"~lib/map/Map#get" + local.get $0 + i32.const 10 + i32.add + i32.ne if i32.const 0 - i32.const 1776 - i32.const 33 + i32.const 1744 + i32.const 77 i32.const 5 call $~lib/builtins/abort unreachable end global.get $~lib/memory/__stack_pointer - local.get $5 + local.get $1 i32.store offset=4 + local.get $1 + local.get $0 + call $"~lib/map/Map#delete" global.get $~lib/memory/__stack_pointer - i32.const 12 - i32.sub - global.set $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - i32.const 3104 - i32.lt_s - br_if $folding-inner1 - global.get $~lib/memory/__stack_pointer - i64.const 0 - i64.store - global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.store offset=8 - global.get $~lib/memory/__stack_pointer - local.get $5 - i32.store - local.get $5 - local.get $7 - local.get $7 - i32.extend16_s - i32.const -1028477379 - i32.mul - i32.const 374761395 - i32.add - i32.const 17 - i32.rotl - i32.const 668265263 - i32.mul - local.tee $0 - local.get $0 - i32.const 15 - i32.shr_u - i32.xor - i32.const -2048144777 - i32.mul - local.tee $0 - local.get $0 - i32.const 13 - i32.shr_u - i32.xor - i32.const -1028477379 - i32.mul - local.tee $0 - local.get $0 - i32.const 16 - i32.shr_u - i32.xor - local.tee $9 - call $"~lib/map/Map#find" - local.tee $0 - if - local.get $0 - local.get $7 - i32.store16 offset=2 - else - global.get $~lib/memory/__stack_pointer - local.get $5 - i32.store - local.get $5 - i32.load offset=16 - global.get $~lib/memory/__stack_pointer - local.get $5 - i32.store - local.get $5 - i32.load offset=12 - i32.eq - if - global.get $~lib/memory/__stack_pointer - local.get $5 - i32.store - global.get $~lib/memory/__stack_pointer - local.get $5 - i32.store offset=4 - local.get $5 - i32.load offset=20 - local.set $0 - global.get $~lib/memory/__stack_pointer - local.get $5 - i32.store offset=4 - local.get $5 - local.get $0 - local.get $5 - i32.load offset=12 - i32.const 3 - i32.mul - i32.const 4 - i32.div_s - i32.lt_s - if (result i32) - global.get $~lib/memory/__stack_pointer - local.get $5 - i32.store offset=4 - local.get $5 - i32.load offset=4 - else - global.get $~lib/memory/__stack_pointer - local.get $5 - i32.store offset=4 - local.get $5 - i32.load offset=4 - i32.const 1 - i32.shl - i32.const 1 - i32.or - end - call $"~lib/map/Map#rehash" - end - global.get $~lib/memory/__stack_pointer - local.get $5 - i32.store - global.get $~lib/memory/__stack_pointer - local.get $5 - i32.load offset=8 - local.tee $10 - i32.store offset=8 - global.get $~lib/memory/__stack_pointer - local.get $5 - i32.store - global.get $~lib/memory/__stack_pointer - local.get $5 - i32.store offset=4 - local.get $5 - local.get $5 - i32.load offset=16 - local.tee $0 - i32.const 1 - i32.add - i32.store offset=16 - local.get $10 - local.get $0 - i32.const 3 - i32.shl - i32.add - local.tee $0 - local.get $7 - i32.store16 - local.get $0 - local.get $7 - i32.store16 offset=2 - global.get $~lib/memory/__stack_pointer - local.get $5 - i32.store - global.get $~lib/memory/__stack_pointer - local.get $5 - i32.store offset=4 - local.get $5 - local.get $5 - i32.load offset=20 - i32.const 1 - i32.add - i32.store offset=20 - global.get $~lib/memory/__stack_pointer - local.get $5 - i32.store - local.get $5 - i32.load - local.set $7 - global.get $~lib/memory/__stack_pointer - local.get $5 - i32.store - local.get $0 - local.get $7 - local.get $9 - local.get $5 - i32.load offset=4 - i32.and - i32.const 2 - i32.shl - i32.add - local.tee $7 - i32.load - i32.store offset=4 - local.get $7 - local.get $0 - i32.store - end - global.get $~lib/memory/__stack_pointer - i32.const 12 - i32.add - global.set $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - local.get $6 - i32.store offset=4 - local.get $6 - local.get $8 - i32.const 20 - i32.sub - local.tee $0 - local.get $0 - call $"~lib/map/Map#set" local.get $1 - i32.const 1 - i32.add - local.set $1 - br $for-loop|2 - end - end - global.get $~lib/memory/__stack_pointer - local.get $5 - i32.store offset=4 - local.get $5 - call $"~lib/map/Map#get:size" - i32.const 100 - i32.ne - if - i32.const 0 - i32.const 1776 - i32.const 37 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - local.get $6 - i32.store offset=4 - local.get $6 - call $"~lib/map/Map#get:size" - i32.const 100 - i32.ne - if - i32.const 0 - i32.const 1776 - i32.const 38 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - i32.const 0 - local.set $0 - loop $for-loop|3 - local.get $0 - i32.const 50 - i32.lt_s - if - global.get $~lib/memory/__stack_pointer - local.get $4 - i32.store offset=4 - local.get $4 - local.get $0 - call $"~lib/map/Map#has" - i32.eqz - if - i32.const 0 - i32.const 1776 - i32.const 42 - i32.const 5 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - local.get $4 - i32.store offset=4 - local.get $4 - local.get $0 - call $"~lib/map/Map#get" - local.get $0 - i32.const 20 - i32.add - i32.ne - if - i32.const 0 - i32.const 1776 - i32.const 43 - i32.const 5 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - local.get $4 i32.store offset=4 - local.get $4 - local.get $0 - call $"~lib/map/Map#delete" - global.get $~lib/memory/__stack_pointer - local.get $4 - i32.store offset=4 - local.get $4 + local.get $1 local.get $0 call $"~lib/map/Map#has" if i32.const 0 - i32.const 1776 - i32.const 45 + i32.const 1744 + i32.const 79 i32.const 5 call $~lib/builtins/abort unreachable @@ -11553,428 +11038,131 @@ i32.const 1 i32.add local.set $0 - br $for-loop|3 + br $for-loop|6 end end global.get $~lib/memory/__stack_pointer - local.get $4 + local.get $1 i32.store offset=4 - local.get $4 + local.get $1 call $"~lib/map/Map#get:size" - i32.const 50 - i32.ne if i32.const 0 - i32.const 1776 - i32.const 47 + i32.const 1744 + i32.const 81 i32.const 3 call $~lib/builtins/abort unreachable end - i32.const 0 - local.set $0 - loop $for-loop|4 - local.get $0 - i32.const 50 - i32.lt_s - if - global.get $~lib/memory/__stack_pointer - local.get $4 - i32.store offset=4 - local.get $4 - local.get $0 - call $"~lib/map/Map#has" - if - i32.const 0 - i32.const 1776 - i32.const 51 - i32.const 5 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - local.get $4 - i32.store offset=4 - local.get $4 - local.get $0 - local.get $0 - i32.const 10 - i32.add - call $"~lib/map/Map#set" - global.get $~lib/memory/__stack_pointer - local.get $4 - i32.store offset=4 - local.get $4 - local.get $0 - call $"~lib/map/Map#has" - i32.eqz - if - i32.const 0 - i32.const 1776 - i32.const 53 - i32.const 5 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - local.get $4 - i32.store offset=4 - local.get $4 - local.get $0 - call $"~lib/map/Map#delete" - global.get $~lib/memory/__stack_pointer - local.get $4 - i32.store offset=4 - local.get $4 - local.get $0 - call $"~lib/map/Map#has" - if - i32.const 0 - i32.const 1776 - i32.const 55 - i32.const 5 - call $~lib/builtins/abort - unreachable - end - local.get $0 - i32.const 1 - i32.add - local.set $0 - br $for-loop|4 - end - end global.get $~lib/memory/__stack_pointer + i32.const 40 + i32.add + global.set $~lib/memory/__stack_pointer + return + end + i32.const 35296 + i32.const 35344 + i32.const 1 + i32.const 1 + call $~lib/builtins/abort + unreachable + ) + (func $"~lib/map/Map#rehash" (param $0 i32) (param $1 i32) + (local $2 i32) + (local $3 i32) + (local $4 i32) + (local $5 i32) + (local $6 i32) + (local $7 i32) + (local $8 i32) + global.get $~lib/memory/__stack_pointer + i32.const 16 + i32.sub + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 2496 + i32.lt_s + if + i32.const 35296 + i32.const 35344 + i32.const 1 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store + global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store offset=8 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.const 1 + i32.add + local.tee $2 + i32.const 2 + i32.shl + call $~lib/arraybuffer/ArrayBuffer#constructor + local.tee $6 + i32.store + global.get $~lib/memory/__stack_pointer + local.get $2 + i32.const 3 + i32.shl + i32.const 3 + i32.div_s + local.tee $5 + i32.const 12 + i32.mul + call $~lib/arraybuffer/ArrayBuffer#constructor + local.tee $3 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=8 + local.get $0 + i32.load offset=8 + local.set $7 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=8 + local.get $7 + local.get $0 + i32.load offset=16 + i32.const 12 + i32.mul + i32.add + local.set $4 + local.get $3 + local.set $2 + loop $while-continue|0 local.get $4 - i32.store offset=4 - local.get $4 - call $"~lib/map/Map#get:size" - i32.const 50 + local.get $7 i32.ne if - i32.const 0 - i32.const 1776 - i32.const 57 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - local.get $4 - i32.store offset=4 - local.get $4 - call $"~lib/map/Map#clear" - global.get $~lib/memory/__stack_pointer - local.get $4 - i32.store offset=4 - local.get $4 - call $"~lib/map/Map#get:size" - if - i32.const 0 - i32.const 1776 - i32.const 61 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - i32.const 24 - i32.const 2192 - call $~lib/rt/__newArray - local.tee $1 - i32.store offset=24 - i32.const 0 - local.set $0 - loop $for-loop|5 - local.get $0 - i32.const 100 - i32.lt_s + local.get $7 + i32.load offset=8 + i32.const 1 + i32.and + i32.eqz if - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - global.get $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - i32.const 8 - i32.sub - global.set $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - i32.const 3104 - i32.lt_s - br_if $folding-inner1 - global.get $~lib/memory/__stack_pointer - i64.const 0 - i64.store - global.get $~lib/memory/__stack_pointer - i32.const 8 - i32.const 23 - call $~lib/rt/itcms/__new - local.tee $3 - i32.store - global.get $~lib/memory/__stack_pointer - local.get $3 - i32.store offset=4 - global.get $~lib/memory/__stack_pointer - local.get $3 - call $~lib/object/Object#constructor - local.tee $3 - i32.store - global.get $~lib/memory/__stack_pointer - local.get $3 - i32.store offset=4 - local.get $3 - i32.const 0 + local.get $2 + local.get $7 + i32.load16_u + local.tee $8 i32.store16 - global.get $~lib/memory/__stack_pointer - local.get $3 - i32.store offset=4 - local.get $3 - i32.const 0 + local.get $2 + local.get $7 + i32.load offset=4 i32.store offset=4 - global.get $~lib/memory/__stack_pointer - i32.const 8 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $3 - i32.store offset=32 - global.get $~lib/memory/__stack_pointer - local.get $3 - i32.store offset=36 - local.get $3 - local.get $0 - i32.store16 - global.get $~lib/memory/__stack_pointer - local.get $3 - i32.store offset=36 - local.get $3 - local.get $0 - i32.const 10 - i32.add - i32.store offset=4 - global.get $~lib/memory/__stack_pointer - local.get $3 - i32.store offset=28 - local.get $1 - local.get $3 - call $"~lib/array/Array<~lib/map/KeyValue>#push" - local.get $0 - i32.const 1 - i32.add - local.set $0 - br $for-loop|5 - end - end - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - global.get $~lib/memory/__stack_pointer - local.get $1 - call $"~lib/map/Map#constructor" - local.tee $1 - i32.store - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - local.get $1 - call $"~lib/map/Map#get:size" - i32.const 100 - i32.ne - if - i32.const 0 - i32.const 1776 - i32.const 74 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - i32.const 0 - local.set $0 - loop $for-loop|6 - local.get $0 - i32.const 100 - i32.lt_s - if - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - local.get $1 - local.get $0 - call $"~lib/map/Map#has" - i32.eqz - if - i32.const 0 - i32.const 1776 - i32.const 76 - i32.const 5 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - local.get $1 - local.get $0 - call $"~lib/map/Map#get" - local.get $0 - i32.const 10 - i32.add - i32.ne - if - i32.const 0 - i32.const 1776 - i32.const 77 - i32.const 5 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - local.get $1 - local.get $0 - call $"~lib/map/Map#delete" - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - local.get $1 - local.get $0 - call $"~lib/map/Map#has" - if - i32.const 0 - i32.const 1776 - i32.const 79 - i32.const 5 - call $~lib/builtins/abort - unreachable - end - local.get $0 - i32.const 1 - i32.add - local.set $0 - br $for-loop|6 - end - end - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - local.get $1 - call $"~lib/map/Map#get:size" - if - i32.const 0 - i32.const 1776 - i32.const 81 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - i32.const 40 - i32.add - global.set $~lib/memory/__stack_pointer - return - end - i32.const 35904 - i32.const 35952 - i32.const 1 - i32.const 1 - call $~lib/builtins/abort - unreachable - ) - (func $"~lib/map/Map#rehash" (param $0 i32) (param $1 i32) - (local $2 i32) - (local $3 i32) - (local $4 i32) - (local $5 i32) - (local $6 i32) - (local $7 i32) - (local $8 i32) - global.get $~lib/memory/__stack_pointer - i32.const 16 - i32.sub - global.set $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - i32.const 3104 - i32.lt_s - if - i32.const 35904 - i32.const 35952 - i32.const 1 - i32.const 1 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - i64.const 0 - i64.store - global.get $~lib/memory/__stack_pointer - i64.const 0 - i64.store offset=8 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.const 1 - i32.add - local.tee $2 - i32.const 2 - i32.shl - call $~lib/arraybuffer/ArrayBuffer#constructor - local.tee $6 - i32.store - global.get $~lib/memory/__stack_pointer - local.get $2 - i32.const 3 - i32.shl - i32.const 3 - i32.div_s - local.tee $5 - i32.const 12 - i32.mul - call $~lib/arraybuffer/ArrayBuffer#constructor - local.tee $3 - i32.store offset=4 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=8 - local.get $0 - i32.load offset=8 - local.set $7 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=8 - local.get $7 - local.get $0 - i32.load offset=16 - i32.const 12 - i32.mul - i32.add - local.set $4 - local.get $3 - local.set $2 - loop $while-continue|0 - local.get $4 - local.get $7 - i32.ne - if - local.get $7 - i32.load offset=8 - i32.const 1 - i32.and - i32.eqz - if - local.get $2 - local.get $7 - i32.load16_u - local.tee $8 - i32.store16 - local.get $2 - local.get $7 - i32.load offset=4 - i32.store offset=4 - local.get $2 - local.get $6 - local.get $1 - local.get $8 - i32.const -1028477379 - i32.mul - i32.const 374761395 + local.get $2 + local.get $6 + local.get $1 + local.get $8 + i32.const -1028477379 + i32.mul + i32.const 374761395 i32.add i32.const 17 i32.rotl @@ -12082,17 +11270,16 @@ (local $5 i32) (local $6 i32) (local $7 i32) - (local $8 i32) global.get $~lib/memory/__stack_pointer i32.const 16 i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 3104 + i32.const 2496 i32.lt_s if - i32.const 35904 - i32.const 35952 + i32.const 35296 + i32.const 35344 i32.const 1 i32.const 1 call $~lib/builtins/abort @@ -12166,19 +11353,16 @@ local.get $1 i32.const 0 i32.store offset=20 - global.get $~lib/memory/__stack_pointer local.get $0 - i32.store offset=4 - local.get $0 - call $"~lib/array/Array<~lib/map/KeyValue>#get:length" - local.tee $3 - i32.const 0 - i32.gt_s if + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + local.get $0 + call $"~lib/array/Array<~lib/map/KeyValue>#get:length" global.get $~lib/memory/__stack_pointer local.get $1 i32.store offset=4 - local.get $3 local.get $1 i32.load offset=12 i32.ge_s @@ -12186,8 +11370,12 @@ global.get $~lib/memory/__stack_pointer local.get $1 i32.store offset=4 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=8 local.get $1 - local.get $3 + local.get $0 + call $"~lib/array/Array<~lib/map/KeyValue>#get:length" i32.store offset=4 end global.get $~lib/memory/__stack_pointer @@ -12205,9 +11393,13 @@ i32.or call $"~lib/map/Map#rehash" loop $for-loop|0 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + local.get $0 + call $"~lib/array/Array<~lib/map/KeyValue>#get:length" local.get $2 - local.get $3 - i32.lt_s + i32.gt_s if global.get $~lib/memory/__stack_pointer local.get $0 @@ -12215,32 +11407,32 @@ local.get $0 local.get $2 call $"~lib/array/Array<~lib/map/KeyValue>#__get" - local.set $4 + local.set $3 global.get $~lib/memory/__stack_pointer - local.get $4 + local.get $3 i32.store offset=4 - local.get $4 + local.get $3 i32.load16_u - local.set $4 + local.set $3 global.get $~lib/memory/__stack_pointer local.get $0 i32.store offset=8 local.get $0 local.get $2 call $"~lib/array/Array<~lib/map/KeyValue>#__get" - local.set $5 + local.set $4 global.get $~lib/memory/__stack_pointer - local.get $5 + local.get $4 i32.store offset=4 - local.get $5 + local.get $4 i32.load offset=4 - local.set $6 + local.set $5 global.get $~lib/memory/__stack_pointer local.get $1 i32.store offset=4 local.get $1 - local.get $4 - local.get $4 + local.get $3 + local.get $3 i32.const -1028477379 i32.mul i32.const 374761395 @@ -12249,31 +11441,31 @@ i32.rotl i32.const 668265263 i32.mul - local.tee $5 + local.tee $4 i32.const 15 i32.shr_u - local.get $5 + local.get $4 i32.xor i32.const -2048144777 i32.mul - local.tee $5 + local.tee $4 i32.const 13 i32.shr_u - local.get $5 + local.get $4 i32.xor i32.const -1028477379 i32.mul - local.tee $5 + local.tee $4 i32.const 16 i32.shr_u - local.get $5 + local.get $4 i32.xor - local.tee $7 + local.tee $6 call $"~lib/map/Map#find" - local.tee $5 + local.tee $4 if + local.get $4 local.get $5 - local.get $6 i32.store offset=4 else global.get $~lib/memory/__stack_pointer @@ -12282,7 +11474,7 @@ global.get $~lib/memory/__stack_pointer local.get $1 i32.load offset=8 - local.tee $5 + local.tee $4 i32.store offset=12 global.get $~lib/memory/__stack_pointer local.get $1 @@ -12293,20 +11485,20 @@ local.get $1 local.get $1 i32.load offset=16 - local.tee $8 + local.tee $7 i32.const 1 i32.add i32.store offset=16 - local.get $5 - local.get $8 + local.get $4 + local.get $7 i32.const 12 i32.mul i32.add - local.tee $5 - local.get $4 + local.tee $4 + local.get $3 i32.store16 + local.get $4 local.get $5 - local.get $6 i32.store offset=4 global.get $~lib/memory/__stack_pointer local.get $1 @@ -12325,24 +11517,24 @@ i32.store offset=4 local.get $1 i32.load - local.set $4 + local.set $3 global.get $~lib/memory/__stack_pointer local.get $1 i32.store offset=4 - local.get $5 local.get $4 - local.get $7 + local.get $3 + local.get $6 local.get $1 i32.load offset=4 i32.and i32.const 2 i32.shl i32.add - local.tee $4 + local.tee $3 i32.load i32.store offset=8 + local.get $3 local.get $4 - local.get $5 i32.store end local.get $2 @@ -12365,11 +11557,11 @@ i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 3104 + i32.const 2496 i32.lt_s if - i32.const 35904 - i32.const 35952 + i32.const 35296 + i32.const 35344 i32.const 1 i32.const 1 call $~lib/builtins/abort @@ -12430,11 +11622,11 @@ i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 3104 + i32.const 2496 i32.lt_s if - i32.const 35904 - i32.const 35952 + i32.const 35296 + i32.const 35344 i32.const 1 i32.const 1 call $~lib/builtins/abort @@ -12621,11 +11813,11 @@ i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 3104 + i32.const 2496 i32.lt_s if - i32.const 35904 - i32.const 35952 + i32.const 35296 + i32.const 35344 i32.const 1 i32.const 1 call $~lib/builtins/abort @@ -12673,9 +11865,9 @@ local.tee $0 i32.eqz if - i32.const 1824 - i32.const 1888 - i32.const 148 + i32.const 1792 + i32.const 1856 + i32.const 146 i32.const 17 call $~lib/builtins/abort unreachable @@ -12687,220 +11879,462 @@ i32.add global.set $~lib/memory/__stack_pointer ) - (func $"~lib/map/Map#rehash" (param $0 i32) (param $1 i32) - (local $2 i32) + (func $"~lib/map/Map#set" (param $0 i32) (param $1 i32) (param $2 i32) (local $3 i32) (local $4 i32) (local $5 i32) (local $6 i32) (local $7 i32) (local $8 i32) + (local $9 i32) + (local $10 i32) + (local $11 i32) global.get $~lib/memory/__stack_pointer - i32.const 16 + i32.const 12 i32.sub global.set $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - i32.const 3104 - i32.lt_s - if - i32.const 35904 - i32.const 35952 - i32.const 1 - i32.const 1 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - i64.const 0 - i64.store - global.get $~lib/memory/__stack_pointer - i64.const 0 - i64.store offset=8 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.const 1 - i32.add - local.tee $2 - i32.const 2 - i32.shl - call $~lib/arraybuffer/ArrayBuffer#constructor - local.tee $6 - i32.store - global.get $~lib/memory/__stack_pointer - local.get $2 - i32.const 3 - i32.shl - i32.const 3 - i32.div_s - local.tee $5 - i32.const 3 - i32.shl - call $~lib/arraybuffer/ArrayBuffer#constructor - local.tee $3 - i32.store offset=4 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=8 - local.get $0 - i32.load offset=8 - local.set $7 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=8 - local.get $7 - local.get $0 - i32.load offset=16 - i32.const 3 - i32.shl - i32.add - local.set $4 - local.get $3 - local.set $2 - loop $while-continue|0 - local.get $4 - local.get $7 - i32.ne - if - local.get $7 + block $folding-inner0 + global.get $~lib/memory/__stack_pointer + i32.const 2496 + i32.lt_s + br_if $folding-inner0 + global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store offset=8 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + local.get $1 + i32.const 65535 + i32.and + i32.const -1028477379 + i32.mul + i32.const 374761395 + i32.add + i32.const 17 + i32.rotl + i32.const 668265263 + i32.mul + local.tee $3 + i32.const 15 + i32.shr_u + local.get $3 + i32.xor + i32.const -2048144777 + i32.mul + local.tee $3 + i32.const 13 + i32.shr_u + local.get $3 + i32.xor + i32.const -1028477379 + i32.mul + local.tee $3 + i32.const 16 + i32.shr_u + local.get $3 + i32.xor + local.set $8 + block $"__inlined_func$~lib/map/Map#find$15" (result i32) + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.sub + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 2496 + i32.lt_s + br_if $folding-inner0 + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store + global.get $~lib/memory/__stack_pointer + local.get $0 + local.tee $3 + i32.store + local.get $3 + i32.load + global.get $~lib/memory/__stack_pointer + local.get $3 + i32.store + local.get $8 + local.get $3 i32.load offset=4 - i32.const 1 i32.and - i32.eqz + i32.const 2 + i32.shl + i32.add + i32.load + local.set $0 + loop $while-continue|0 + local.get $0 + if + local.get $0 + i32.load offset=4 + local.tee $4 + i32.const 1 + i32.and + if (result i32) + i32.const 0 + else + local.get $0 + i32.load16_u + local.get $1 + i32.const 65535 + i32.and + i32.eq + end + if + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $0 + br $"__inlined_func$~lib/map/Map#find$15" + end + local.get $4 + i32.const -2 + i32.and + local.set $0 + br $while-continue|0 + end + end + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + i32.const 0 + end + local.tee $0 + if + local.get $0 + local.get $2 + i32.store16 offset=2 + else + global.get $~lib/memory/__stack_pointer + local.get $3 + i32.store + local.get $3 + i32.load offset=16 + global.get $~lib/memory/__stack_pointer + local.get $3 + i32.store + local.get $3 + i32.load offset=12 + i32.eq if - local.get $2 - local.get $7 - i32.load16_u - local.tee $8 - i32.store16 - local.get $2 - local.get $7 - i32.load16_u offset=2 - i32.store16 offset=2 - local.get $2 - local.get $6 - local.get $1 - local.get $8 - i32.const -1028477379 - i32.mul - i32.const 374761395 - i32.add - i32.const 17 - i32.rotl - i32.const 668265263 + global.get $~lib/memory/__stack_pointer + local.get $3 + i32.store + global.get $~lib/memory/__stack_pointer + local.get $3 + i32.store offset=4 + local.get $3 + i32.load offset=20 + global.get $~lib/memory/__stack_pointer + local.get $3 + i32.store offset=4 + local.get $3 + i32.load offset=12 + i32.const 3 i32.mul - local.tee $8 - local.get $8 - i32.const 15 - i32.shr_u - i32.xor - i32.const -2048144777 - i32.mul - local.tee $8 - local.get $8 - i32.const 13 - i32.shr_u - i32.xor - i32.const -1028477379 - i32.mul - local.tee $8 - local.get $8 + i32.const 4 + i32.div_s + i32.lt_s + if (result i32) + global.get $~lib/memory/__stack_pointer + local.get $3 + i32.store offset=4 + local.get $3 + i32.load offset=4 + else + global.get $~lib/memory/__stack_pointer + local.get $3 + i32.store offset=4 + local.get $3 + i32.load offset=4 + i32.const 1 + i32.shl + i32.const 1 + i32.or + end + local.set $7 + global.get $~lib/memory/__stack_pointer i32.const 16 - i32.shr_u - i32.xor - i32.and + i32.sub + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 2496 + i32.lt_s + br_if $folding-inner0 + global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store + global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store offset=8 + global.get $~lib/memory/__stack_pointer + local.get $7 + i32.const 1 + i32.add + local.tee $0 i32.const 2 i32.shl - i32.add - local.tee $8 - i32.load + call $~lib/arraybuffer/ArrayBuffer#constructor + local.tee $6 + i32.store + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.const 3 + i32.shl + i32.const 3 + i32.div_s + local.tee $9 + i32.const 3 + i32.shl + call $~lib/arraybuffer/ArrayBuffer#constructor + local.tee $4 i32.store offset=4 - local.get $8 - local.get $2 + global.get $~lib/memory/__stack_pointer + local.get $3 + i32.store offset=8 + local.get $3 + i32.load offset=8 + local.set $5 + global.get $~lib/memory/__stack_pointer + local.get $3 + i32.store offset=8 + local.get $5 + local.get $3 + i32.load offset=16 + i32.const 3 + i32.shl + i32.add + local.set $10 + local.get $4 + local.set $0 + loop $while-continue|00 + local.get $5 + local.get $10 + i32.ne + if + local.get $5 + i32.load offset=4 + i32.const 1 + i32.and + i32.eqz + if + local.get $0 + local.get $5 + i32.load16_u + local.tee $11 + i32.store16 + local.get $0 + local.get $5 + i32.load16_u offset=2 + i32.store16 offset=2 + local.get $0 + local.get $6 + local.get $7 + local.get $11 + i32.const -1028477379 + i32.mul + i32.const 374761395 + i32.add + i32.const 17 + i32.rotl + i32.const 668265263 + i32.mul + local.tee $11 + local.get $11 + i32.const 15 + i32.shr_u + i32.xor + i32.const -2048144777 + i32.mul + local.tee $11 + local.get $11 + i32.const 13 + i32.shr_u + i32.xor + i32.const -1028477379 + i32.mul + local.tee $11 + local.get $11 + i32.const 16 + i32.shr_u + i32.xor + i32.and + i32.const 2 + i32.shl + i32.add + local.tee $11 + i32.load + i32.store offset=4 + local.get $11 + local.get $0 + i32.store + local.get $0 + i32.const 8 + i32.add + local.set $0 + end + local.get $5 + i32.const 8 + i32.add + local.set $5 + br $while-continue|00 + end + end + global.get $~lib/memory/__stack_pointer + local.get $3 + i32.store offset=8 + global.get $~lib/memory/__stack_pointer + local.get $6 + i32.store offset=12 + local.get $3 + local.get $6 i32.store - local.get $2 - i32.const 8 + local.get $3 + local.get $6 + i32.const 0 + call $~lib/rt/itcms/__link + global.get $~lib/memory/__stack_pointer + local.get $3 + i32.store offset=8 + local.get $3 + local.get $7 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + local.get $3 + i32.store offset=8 + global.get $~lib/memory/__stack_pointer + local.get $4 + i32.store offset=12 + local.get $3 + local.get $4 + i32.store offset=8 + local.get $3 + local.get $4 + i32.const 0 + call $~lib/rt/itcms/__link + global.get $~lib/memory/__stack_pointer + local.get $3 + i32.store offset=8 + local.get $3 + local.get $9 + i32.store offset=12 + global.get $~lib/memory/__stack_pointer + local.get $3 + i32.store offset=8 + global.get $~lib/memory/__stack_pointer + local.get $3 + i32.store offset=12 + local.get $3 + local.get $3 + i32.load offset=20 + i32.store offset=16 + global.get $~lib/memory/__stack_pointer + i32.const 16 i32.add - local.set $2 + global.set $~lib/memory/__stack_pointer end - local.get $7 - i32.const 8 + global.get $~lib/memory/__stack_pointer + local.get $3 + i32.store + global.get $~lib/memory/__stack_pointer + local.get $3 + i32.load offset=8 + local.tee $0 + i32.store offset=8 + global.get $~lib/memory/__stack_pointer + local.get $3 + i32.store + global.get $~lib/memory/__stack_pointer + local.get $3 + i32.store offset=4 + local.get $3 + local.get $3 + i32.load offset=16 + local.tee $4 + i32.const 1 i32.add - local.set $7 - br $while-continue|0 + i32.store offset=16 + local.get $0 + local.get $4 + i32.const 3 + i32.shl + i32.add + local.tee $0 + local.get $1 + i32.store16 + local.get $0 + local.get $2 + i32.store16 offset=2 + global.get $~lib/memory/__stack_pointer + local.get $3 + i32.store + global.get $~lib/memory/__stack_pointer + local.get $3 + i32.store offset=4 + local.get $3 + local.get $3 + i32.load offset=20 + i32.const 1 + i32.add + i32.store offset=20 + global.get $~lib/memory/__stack_pointer + local.get $3 + i32.store + local.get $3 + i32.load + local.set $1 + global.get $~lib/memory/__stack_pointer + local.get $3 + i32.store + local.get $0 + local.get $1 + local.get $8 + local.get $3 + i32.load offset=4 + i32.and + i32.const 2 + i32.shl + i32.add + local.tee $1 + i32.load + i32.store offset=4 + local.get $1 + local.get $0 + i32.store end + global.get $~lib/memory/__stack_pointer + i32.const 12 + i32.add + global.set $~lib/memory/__stack_pointer + return end + i32.const 35296 + i32.const 35344 + i32.const 1 + i32.const 1 + call $~lib/builtins/abort + unreachable + ) + (func $"~lib/map/Map#delete" (param $0 i32) (param $1 i32) + (local $2 i32) global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=8 - global.get $~lib/memory/__stack_pointer - local.get $6 - i32.store offset=12 - local.get $0 - local.get $6 - i32.store - local.get $0 - local.get $6 - i32.const 0 - call $~lib/rt/itcms/__link + i32.const 8 + i32.sub + global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=8 - local.get $0 - local.get $1 - i32.store offset=4 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=8 - global.get $~lib/memory/__stack_pointer - local.get $3 - i32.store offset=12 - local.get $0 - local.get $3 - i32.store offset=8 - local.get $0 - local.get $3 - i32.const 0 - call $~lib/rt/itcms/__link - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=8 - local.get $0 - local.get $5 - i32.store offset=12 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=8 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=12 - local.get $0 - local.get $0 - i32.load offset=20 - i32.store offset=16 - global.get $~lib/memory/__stack_pointer - i32.const 16 - i32.add - global.set $~lib/memory/__stack_pointer - ) - (func $"~lib/map/Map#constructor" (param $0 i32) (result i32) - (local $1 i32) - (local $2 i32) - (local $3 i32) - (local $4 i32) - (local $5 i32) - (local $6 i32) - (local $7 i32) - (local $8 i32) - global.get $~lib/memory/__stack_pointer - i32.const 16 - i32.sub - global.set $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - i32.const 3104 + i32.const 2496 i32.lt_s if - i32.const 35904 - i32.const 35952 + i32.const 35296 + i32.const 35344 i32.const 1 i32.const 1 call $~lib/builtins/abort @@ -12910,540 +12344,229 @@ i64.const 0 i64.store global.get $~lib/memory/__stack_pointer - i64.const 0 - i64.store offset=8 - global.get $~lib/memory/__stack_pointer - i32.const 24 - i32.const 33 - call $~lib/rt/itcms/__new - local.tee $1 + local.get $0 i32.store - global.get $~lib/memory/__stack_pointer + local.get $0 local.get $1 - i32.store offset=4 - i32.const 16 - call $~lib/arraybuffer/ArrayBuffer#constructor - local.set $3 - global.get $~lib/memory/__stack_pointer - local.get $3 - i32.store offset=8 local.get $1 - local.get $3 - i32.store + i32.const 65535 + i32.and + i32.const -1028477379 + i32.mul + i32.const 374761395 + i32.add + i32.const 17 + i32.rotl + i32.const 668265263 + i32.mul + local.tee $1 + i32.const 15 + i32.shr_u local.get $1 - local.get $3 - i32.const 0 - call $~lib/rt/itcms/__link - global.get $~lib/memory/__stack_pointer + i32.xor + i32.const -2048144777 + i32.mul + local.tee $1 + i32.const 13 + i32.shr_u local.get $1 - i32.store offset=4 + i32.xor + i32.const -1028477379 + i32.mul + local.tee $1 + i32.const 16 + i32.shr_u local.get $1 - i32.const 3 - i32.store offset=4 - global.get $~lib/memory/__stack_pointer + i32.xor + call $"~lib/map/Map#find" + local.tee $1 + i32.eqz + if + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.add + global.set $~lib/memory/__stack_pointer + return + end local.get $1 - i32.store offset=4 - i32.const 32 - call $~lib/arraybuffer/ArrayBuffer#constructor - local.set $3 - global.get $~lib/memory/__stack_pointer - local.get $3 - i32.store offset=8 local.get $1 - local.get $3 + i32.load offset=8 + i32.const 1 + i32.or i32.store offset=8 - local.get $1 - local.get $3 - i32.const 0 - call $~lib/rt/itcms/__link - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - local.get $1 - i32.const 4 - i32.store offset=12 global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - local.get $1 - i32.const 0 - i32.store offset=16 + local.get $0 + i32.store global.get $~lib/memory/__stack_pointer - local.get $1 + local.get $0 i32.store offset=4 - local.get $1 - i32.const 0 + local.get $0 + local.get $0 + i32.load offset=20 + i32.const 1 + i32.sub i32.store offset=20 global.get $~lib/memory/__stack_pointer local.get $0 - i32.store offset=4 + i32.store local.get $0 - call $"~lib/array/Array<~lib/map/KeyValue>#get:length" - local.tee $3 - i32.const 0 - i32.gt_s - if + i32.load offset=4 + i32.const 1 + i32.shr_u + local.set $1 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + local.get $1 + i32.const 1 + i32.add + i32.const 4 + local.get $0 + i32.load offset=20 + local.tee $2 + local.get $2 + i32.const 4 + i32.lt_u + select + i32.ge_u + if (result i32) global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - local.get $3 - local.get $1 + local.get $0 + i32.store + local.get $0 + i32.load offset=20 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + local.get $0 i32.load offset=12 - i32.ge_s - if - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - local.get $1 - local.get $3 - i32.store offset=4 - end + i32.const 3 + i32.mul + i32.const 4 + i32.div_s + i32.lt_s + else + i32.const 0 + end + if global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + local.get $0 local.get $1 - i32.store offset=4 + call $"~lib/map/Map#rehash" + end + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.add + global.set $~lib/memory/__stack_pointer + ) + (func $"std/map/testNumeric" + (local $0 i32) + (local $1 i32) + (local $2 i32) + (local $3 i32) + (local $4 i32) + (local $5 i32) + (local $6 i32) + (local $7 i32) + (local $8 i32) + global.get $~lib/memory/__stack_pointer + i32.const 40 + i32.sub + global.set $~lib/memory/__stack_pointer + block $folding-inner1 global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=8 - local.get $1 - local.get $1 - i32.load offset=4 - i32.const 1 - i32.shl - i32.const 1 - i32.or - call $"~lib/map/Map#rehash" + i32.const 2496 + i32.lt_s + br_if $folding-inner1 + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.const 40 + memory.fill + global.get $~lib/memory/__stack_pointer + i32.const 0 + call $"~lib/map/Map#constructor" + local.tee $3 + i32.store loop $for-loop|0 - local.get $2 - local.get $3 - i32.lt_s + local.get $0 + i32.const 100 + i32.lt_u if global.get $~lib/memory/__stack_pointer + local.get $3 + i32.store offset=4 + local.get $3 local.get $0 - i32.store offset=8 - local.get $0 - local.get $2 - call $"~lib/array/Array<~lib/map/KeyValue>#__get" - local.set $4 + call $"~lib/map/Map#has" + if + i32.const 0 + i32.const 1744 + i32.const 7 + i32.const 5 + call $~lib/builtins/abort + unreachable + end global.get $~lib/memory/__stack_pointer - local.get $4 + local.get $3 i32.store offset=4 - local.get $4 - i32.load16_u - local.set $4 - global.get $~lib/memory/__stack_pointer + local.get $3 local.get $0 - i32.store offset=8 local.get $0 - local.get $2 - call $"~lib/array/Array<~lib/map/KeyValue>#__get" - local.set $5 + i32.const 10 + i32.add + call $"~lib/map/Map#set" global.get $~lib/memory/__stack_pointer - local.get $5 + local.get $3 i32.store offset=4 - local.get $5 - i32.load16_u offset=2 - local.set $6 + local.get $3 + local.get $0 + call $"~lib/map/Map#has" + i32.eqz + if + i32.const 0 + i32.const 1744 + i32.const 9 + i32.const 5 + call $~lib/builtins/abort + unreachable + end global.get $~lib/memory/__stack_pointer - local.get $1 + local.get $3 i32.store offset=4 - local.get $1 - local.get $4 - local.get $4 - i32.const -1028477379 - i32.mul - i32.const 374761395 + local.get $3 + local.get $0 + call $"~lib/map/Map#get" + local.get $0 + i32.const 10 i32.add - i32.const 17 - i32.rotl - i32.const 668265263 - i32.mul - local.tee $5 - i32.const 15 - i32.shr_u - local.get $5 - i32.xor - i32.const -2048144777 - i32.mul - local.tee $5 - i32.const 13 - i32.shr_u - local.get $5 - i32.xor - i32.const -1028477379 - i32.mul - local.tee $5 - i32.const 16 - i32.shr_u - local.get $5 - i32.xor - local.tee $7 - call $"~lib/map/Map#find" - local.tee $5 + i32.ne if - local.get $5 - local.get $6 - i32.store16 offset=2 - else - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.load offset=8 - local.tee $5 - i32.store offset=12 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=8 - local.get $1 - local.get $1 - i32.load offset=16 - local.tee $8 - i32.const 1 - i32.add - i32.store offset=16 - local.get $5 - local.get $8 - i32.const 3 - i32.shl - i32.add - local.tee $5 - local.get $4 - i32.store16 - local.get $5 - local.get $6 - i32.store16 offset=2 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=8 - local.get $1 - local.get $1 - i32.load offset=20 - i32.const 1 - i32.add - i32.store offset=20 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - local.get $1 - i32.load - local.set $4 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - local.get $5 - local.get $4 - local.get $7 - local.get $1 - i32.load offset=4 - i32.and - i32.const 2 - i32.shl - i32.add - local.tee $4 - i32.load - i32.store offset=4 - local.get $4 - local.get $5 - i32.store + i32.const 0 + i32.const 1744 + i32.const 10 + i32.const 5 + call $~lib/builtins/abort + unreachable end - local.get $2 + local.get $0 i32.const 1 i32.add - local.set $2 + local.set $0 br $for-loop|0 end end - end - global.get $~lib/memory/__stack_pointer - i32.const 16 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $1 - ) - (func $"~lib/map/Map#delete" (param $0 i32) (param $1 i32) - (local $2 i32) - global.get $~lib/memory/__stack_pointer - i32.const 8 - i32.sub - global.set $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - i32.const 3104 - i32.lt_s - if - i32.const 35904 - i32.const 35952 - i32.const 1 - i32.const 1 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - i64.const 0 - i64.store - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store - local.get $0 - local.get $1 - local.get $1 - i32.const 65535 - i32.and - i32.const -1028477379 - i32.mul - i32.const 374761395 - i32.add - i32.const 17 - i32.rotl - i32.const 668265263 - i32.mul - local.tee $1 - i32.const 15 - i32.shr_u - local.get $1 - i32.xor - i32.const -2048144777 - i32.mul - local.tee $1 - i32.const 13 - i32.shr_u - local.get $1 - i32.xor - i32.const -1028477379 - i32.mul - local.tee $1 - i32.const 16 - i32.shr_u - local.get $1 - i32.xor - call $"~lib/map/Map#find" - local.tee $1 - i32.eqz - if global.get $~lib/memory/__stack_pointer - i32.const 8 - i32.add - global.set $~lib/memory/__stack_pointer - return - end - local.get $1 - local.get $1 - i32.load offset=8 - i32.const 1 - i32.or - i32.store offset=8 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 - local.get $0 - i32.load offset=20 - i32.const 1 - i32.sub - i32.store offset=20 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store - local.get $0 - i32.load offset=4 - i32.const 1 - i32.shr_u - local.set $1 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store - local.get $1 - i32.const 1 - i32.add - i32.const 4 - local.get $0 - i32.load offset=20 - local.tee $2 - local.get $2 - i32.const 4 - i32.lt_u - select - i32.ge_u - if (result i32) - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store - local.get $0 - i32.load offset=20 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store - local.get $0 - i32.load offset=12 - i32.const 3 - i32.mul - i32.const 4 - i32.div_s - i32.lt_s - else - i32.const 0 - end - if - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store - local.get $0 - local.get $1 - call $"~lib/map/Map#rehash" - end - global.get $~lib/memory/__stack_pointer - i32.const 8 - i32.add - global.set $~lib/memory/__stack_pointer - ) - (func $"std/map/testNumeric" - (local $0 i32) - (local $1 i32) - (local $2 i32) - (local $3 i32) - (local $4 i32) - (local $5 i32) - (local $6 i32) - (local $7 i32) - (local $8 i32) - (local $9 i32) - (local $10 i32) - global.get $~lib/memory/__stack_pointer - i32.const 40 - i32.sub - global.set $~lib/memory/__stack_pointer - block $folding-inner1 - global.get $~lib/memory/__stack_pointer - i32.const 3104 - i32.lt_s - br_if $folding-inner1 - global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.const 40 - memory.fill - global.get $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - i32.const 12 - i32.sub - global.set $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - i32.const 3104 - i32.lt_s - br_if $folding-inner1 - global.get $~lib/memory/__stack_pointer - i64.const 0 - i64.store - global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.store offset=8 - global.get $~lib/memory/__stack_pointer - i32.const 31 - i32.const 2224 - call $~lib/rt/__newArray - local.tee $4 - i32.store - global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.store offset=4 - global.get $~lib/memory/__stack_pointer - local.get $4 - i32.store offset=8 - local.get $4 - call $"~lib/map/Map#constructor" - local.set $4 - global.get $~lib/memory/__stack_pointer - i32.const 12 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $4 - i32.store - loop $for-loop|0 - local.get $0 - i32.const 100 - i32.lt_u - if - global.get $~lib/memory/__stack_pointer - local.get $4 - i32.store offset=4 - local.get $4 - local.get $0 - call $"~lib/map/Map#has" - if - i32.const 0 - i32.const 1776 - i32.const 7 - i32.const 5 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - local.get $4 - i32.store offset=4 - local.get $4 - local.get $0 - local.get $0 - i32.const 10 - i32.add - call $"~lib/map/Map#set" - global.get $~lib/memory/__stack_pointer - local.get $4 - i32.store offset=4 - local.get $4 - local.get $0 - call $"~lib/map/Map#has" - i32.eqz - if - i32.const 0 - i32.const 1776 - i32.const 9 - i32.const 5 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - local.get $4 - i32.store offset=4 - local.get $4 - local.get $0 - call $"~lib/map/Map#get" - local.get $0 - i32.const 10 - i32.add - i32.ne - if - i32.const 0 - i32.const 1776 - i32.const 10 - i32.const 5 - call $~lib/builtins/abort - unreachable - end - local.get $0 - i32.const 1 - i32.add - local.set $0 - br $for-loop|0 - end - end - global.get $~lib/memory/__stack_pointer - local.get $4 + local.get $3 i32.store offset=4 - local.get $4 + local.get $3 call $"~lib/map/Map#get:size" i32.const 100 i32.ne if i32.const 0 - i32.const 1776 + i32.const 1744 i32.const 12 i32.const 3 call $~lib/builtins/abort @@ -13457,24 +12580,24 @@ i32.lt_u if global.get $~lib/memory/__stack_pointer - local.get $4 + local.get $3 i32.store offset=4 - local.get $4 + local.get $3 local.get $0 call $"~lib/map/Map#has" i32.eqz if i32.const 0 - i32.const 1776 + i32.const 1744 i32.const 16 i32.const 5 call $~lib/builtins/abort unreachable end global.get $~lib/memory/__stack_pointer - local.get $4 + local.get $3 i32.store offset=4 - local.get $4 + local.get $3 local.get $0 call $"~lib/map/Map#get" local.get $0 @@ -13483,40 +12606,40 @@ i32.ne if i32.const 0 - i32.const 1776 + i32.const 1744 i32.const 17 i32.const 5 call $~lib/builtins/abort unreachable end global.get $~lib/memory/__stack_pointer - local.get $4 + local.get $3 i32.store offset=4 - local.get $4 + local.get $3 local.get $0 local.get $0 i32.const 20 i32.add call $"~lib/map/Map#set" global.get $~lib/memory/__stack_pointer - local.get $4 + local.get $3 i32.store offset=4 - local.get $4 + local.get $3 local.get $0 call $"~lib/map/Map#has" i32.eqz if i32.const 0 - i32.const 1776 + i32.const 1744 i32.const 19 i32.const 5 call $~lib/builtins/abort unreachable end global.get $~lib/memory/__stack_pointer - local.get $4 + local.get $3 i32.store offset=4 - local.get $4 + local.get $3 local.get $0 call $"~lib/map/Map#get" local.get $0 @@ -13525,7 +12648,7 @@ i32.ne if i32.const 0 - i32.const 1776 + i32.const 1744 i32.const 20 i32.const 5 call $~lib/builtins/abort @@ -13539,15 +12662,15 @@ end end global.get $~lib/memory/__stack_pointer - local.get $4 + local.get $3 i32.store offset=4 - local.get $4 + local.get $3 call $"~lib/map/Map#get:size" i32.const 100 i32.ne if i32.const 0 - i32.const 1776 + i32.const 1744 i32.const 22 i32.const 3 call $~lib/builtins/abort @@ -13555,38 +12678,38 @@ end global.get $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - local.get $4 + local.get $3 i32.store offset=4 global.get $~lib/memory/__stack_pointer i32.const 8 i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 3104 + i32.const 2496 i32.lt_s br_if $folding-inner1 global.get $~lib/memory/__stack_pointer i64.const 0 i64.store global.get $~lib/memory/__stack_pointer - local.get $4 + local.get $3 i32.store - local.get $4 + local.get $3 i32.load offset=8 - local.set $6 + local.set $5 global.get $~lib/memory/__stack_pointer - local.get $4 + local.get $3 i32.store - local.get $4 + local.get $3 i32.load offset=16 - local.set $7 + local.set $6 global.get $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer i32.const 16 i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 3104 + i32.const 2496 i32.lt_s br_if $folding-inner1 global.get $~lib/memory/__stack_pointer @@ -13599,37 +12722,37 @@ i32.const 16 i32.const 32 call $~lib/rt/itcms/__new - local.tee $3 + local.tee $7 i32.store global.get $~lib/memory/__stack_pointer - local.get $3 + local.get $7 i32.store offset=4 - local.get $3 + local.get $7 i32.const 0 i32.store - local.get $3 + local.get $7 i32.const 0 i32.const 0 call $~lib/rt/itcms/__link global.get $~lib/memory/__stack_pointer - local.get $3 + local.get $7 i32.store offset=4 - local.get $3 + local.get $7 i32.const 0 i32.store offset=4 global.get $~lib/memory/__stack_pointer - local.get $3 + local.get $7 i32.store offset=4 - local.get $3 + local.get $7 i32.const 0 i32.store offset=8 global.get $~lib/memory/__stack_pointer - local.get $3 + local.get $7 i32.store offset=4 - local.get $3 + local.get $7 i32.const 0 i32.store offset=12 - local.get $7 + local.get $6 i32.const 536870910 i32.gt_u if @@ -13642,64 +12765,64 @@ end global.get $~lib/memory/__stack_pointer i32.const 8 - local.get $7 - local.get $7 + local.get $6 + local.get $6 i32.const 8 i32.le_u select i32.const 1 i32.shl - local.tee $8 + local.tee $0 i32.const 1 call $~lib/rt/itcms/__new - local.tee $9 + local.tee $8 i32.store offset=8 global.get $~lib/memory/__stack_pointer - local.get $3 + local.get $7 i32.store offset=4 global.get $~lib/memory/__stack_pointer - local.get $9 + local.get $8 i32.store offset=12 - local.get $3 - local.get $9 + local.get $7 + local.get $8 i32.store - local.get $3 - local.get $9 + local.get $7 + local.get $8 i32.const 0 call $~lib/rt/itcms/__link global.get $~lib/memory/__stack_pointer - local.get $3 + local.get $7 i32.store offset=4 - local.get $3 - local.get $9 + local.get $7 + local.get $8 i32.store offset=4 global.get $~lib/memory/__stack_pointer - local.get $3 + local.get $7 i32.store offset=4 - local.get $3 - local.get $8 + local.get $7 + local.get $0 i32.store offset=8 global.get $~lib/memory/__stack_pointer - local.get $3 + local.get $7 i32.store offset=4 - local.get $3 local.get $7 + local.get $6 i32.store offset=12 global.get $~lib/memory/__stack_pointer i32.const 16 i32.add global.set $~lib/memory/__stack_pointer - local.get $3 + local.get $7 i32.store offset=4 i32.const 0 local.set $0 loop $for-loop|00 - local.get $2 - local.get $7 + local.get $1 + local.get $6 i32.lt_s if - local.get $6 - local.get $2 + local.get $5 + local.get $1 i32.const 12 i32.mul i32.add @@ -13710,9 +12833,9 @@ i32.eqz if global.get $~lib/memory/__stack_pointer - local.get $3 + local.get $7 i32.store - local.get $3 + local.get $7 local.get $0 local.get $8 i32.load16_u @@ -13722,101 +12845,149 @@ i32.add local.set $0 end - local.get $2 + local.get $1 i32.const 1 i32.add - local.set $2 + local.set $1 br $for-loop|00 end end global.get $~lib/memory/__stack_pointer - local.get $3 + local.get $7 i32.store - local.get $3 + local.get $7 local.get $0 call $~lib/array/Array#set:length global.get $~lib/memory/__stack_pointer i32.const 8 i32.add global.set $~lib/memory/__stack_pointer - local.get $3 + local.get $7 i32.store offset=8 global.get $~lib/memory/__stack_pointer - local.get $4 + local.get $3 i32.store offset=4 global.get $~lib/memory/__stack_pointer - local.get $4 + local.get $3 call $"~lib/map/Map#values" - local.tee $2 + local.tee $0 i32.store offset=12 global.get $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 12 + i32.const 16 i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 3104 + i32.const 2496 i32.lt_s br_if $folding-inner1 global.get $~lib/memory/__stack_pointer i64.const 0 i64.store global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.store offset=8 + i64.const 0 + i64.store offset=8 global.get $~lib/memory/__stack_pointer - i32.const 35 - i32.const 2256 - call $~lib/rt/__newArray - local.tee $5 + i32.const 24 + i32.const 33 + call $~lib/rt/itcms/__new + local.tee $1 i32.store global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + i32.const 16 + call $~lib/arraybuffer/ArrayBuffer#constructor + local.set $4 + global.get $~lib/memory/__stack_pointer + local.get $4 + i32.store offset=8 + local.get $1 + local.get $4 + i32.store + local.get $1 + local.get $4 i32.const 0 + call $~lib/rt/itcms/__link + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + local.get $1 + i32.const 3 i32.store offset=4 global.get $~lib/memory/__stack_pointer - local.get $5 + local.get $1 + i32.store offset=4 + i32.const 32 + call $~lib/arraybuffer/ArrayBuffer#constructor + local.set $4 + global.get $~lib/memory/__stack_pointer + local.get $4 i32.store offset=8 - local.get $5 - call $"~lib/map/Map#constructor" - local.set $5 + local.get $1 + local.get $4 + i32.store offset=8 + local.get $1 + local.get $4 + i32.const 0 + call $~lib/rt/itcms/__link global.get $~lib/memory/__stack_pointer - i32.const 12 + local.get $1 + i32.store offset=4 + local.get $1 + i32.const 4 + i32.store offset=12 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + local.get $1 + i32.const 0 + i32.store offset=16 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + local.get $1 + i32.const 0 + i32.store offset=20 + global.get $~lib/memory/__stack_pointer + i32.const 16 i32.add global.set $~lib/memory/__stack_pointer - local.get $5 + local.get $1 i32.store offset=16 global.get $~lib/memory/__stack_pointer - call $"~lib/map/Map#constructor@varargs" - local.tee $6 + i32.const 0 + call $"~lib/map/Map#constructor" + local.tee $4 i32.store offset=20 loop $for-loop|2 global.get $~lib/memory/__stack_pointer - local.get $3 + local.get $7 i32.store offset=4 - local.get $3 + local.get $7 call $"~lib/array/Array<~lib/map/KeyValue>#get:length" - local.get $1 + local.get $2 i32.gt_s if global.get $~lib/memory/__stack_pointer - local.get $3 + local.get $7 i32.store offset=4 global.get $~lib/memory/__stack_pointer i32.const 4 i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 3104 + i32.const 2496 i32.lt_s br_if $folding-inner1 global.get $~lib/memory/__stack_pointer i32.const 0 i32.store global.get $~lib/memory/__stack_pointer - local.get $3 + local.get $7 i32.store - local.get $1 - local.get $3 + local.get $2 + local.get $7 i32.load offset=12 i32.ge_u if @@ -13828,347 +12999,256 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.get $3 + local.get $7 i32.store - local.get $3 + local.get $7 i32.load offset=4 - local.get $1 + local.get $2 i32.const 1 i32.shl i32.add i32.load16_u - local.set $7 + local.set $5 global.get $~lib/memory/__stack_pointer i32.const 4 i32.add global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - local.get $2 + local.get $0 i32.store offset=4 + local.get $0 local.get $2 - local.get $1 call $~lib/array/Array#__get - local.set $8 + local.set $6 global.get $~lib/memory/__stack_pointer - local.get $4 + local.get $3 i32.store offset=4 - local.get $4 - local.get $7 + local.get $3 + local.get $5 call $"~lib/map/Map#has" i32.eqz if i32.const 0 - i32.const 1776 + i32.const 1744 i32.const 32 i32.const 5 call $~lib/builtins/abort unreachable end global.get $~lib/memory/__stack_pointer - local.get $4 + local.get $3 i32.store offset=4 - local.get $4 - local.get $8 + local.get $3 + local.get $6 i32.const 20 i32.sub call $"~lib/map/Map#has" i32.eqz if i32.const 0 - i32.const 1776 + i32.const 1744 i32.const 33 i32.const 5 call $~lib/builtins/abort unreachable end global.get $~lib/memory/__stack_pointer - local.get $5 + local.get $1 i32.store offset=4 + local.get $1 + local.get $5 + local.get $5 + call $"~lib/map/Map#set" global.get $~lib/memory/__stack_pointer - i32.const 12 + local.get $4 + i32.store offset=4 + local.get $4 + local.get $6 + i32.const 20 i32.sub - global.set $~lib/memory/__stack_pointer + local.tee $5 + local.get $5 + call $"~lib/map/Map#set" + local.get $2 + i32.const 1 + i32.add + local.set $2 + br $for-loop|2 + end + end + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + local.get $1 + call $"~lib/map/Map#get:size" + i32.const 100 + i32.ne + if + i32.const 0 + i32.const 1744 + i32.const 37 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + local.get $4 + i32.store offset=4 + local.get $4 + call $"~lib/map/Map#get:size" + i32.const 100 + i32.ne + if + i32.const 0 + i32.const 1744 + i32.const 38 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + i32.const 0 + local.set $0 + loop $for-loop|3 + local.get $0 + i32.const 50 + i32.lt_u + if global.get $~lib/memory/__stack_pointer - i32.const 3104 - i32.lt_s - br_if $folding-inner1 + local.get $3 + i32.store offset=4 + local.get $3 + local.get $0 + call $"~lib/map/Map#has" + i32.eqz + if + i32.const 0 + i32.const 1744 + i32.const 42 + i32.const 5 + call $~lib/builtins/abort + unreachable + end global.get $~lib/memory/__stack_pointer - i64.const 0 - i64.store + local.get $3 + i32.store offset=4 + local.get $3 + local.get $0 + call $"~lib/map/Map#get" + local.get $0 + i32.const 20 + i32.add + i32.ne + if + i32.const 0 + i32.const 1744 + i32.const 43 + i32.const 5 + call $~lib/builtins/abort + unreachable + end global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.store offset=8 + local.get $3 + i32.store offset=4 + local.get $3 + local.get $0 + call $"~lib/map/Map#delete" global.get $~lib/memory/__stack_pointer - local.get $5 - i32.store - local.get $5 - local.get $7 - local.get $7 - i32.const 65535 - i32.and - i32.const -1028477379 - i32.mul - i32.const 374761395 - i32.add - i32.const 17 - i32.rotl - i32.const 668265263 - i32.mul - local.tee $0 - local.get $0 - i32.const 15 - i32.shr_u - i32.xor - i32.const -2048144777 - i32.mul - local.tee $0 - local.get $0 - i32.const 13 - i32.shr_u - i32.xor - i32.const -1028477379 - i32.mul - local.tee $0 + local.get $3 + i32.store offset=4 + local.get $3 local.get $0 - i32.const 16 - i32.shr_u - i32.xor - local.tee $9 - call $"~lib/map/Map#find" - local.tee $0 + call $"~lib/map/Map#has" if - local.get $0 - local.get $7 - i32.store16 offset=2 - else - global.get $~lib/memory/__stack_pointer - local.get $5 - i32.store - local.get $5 - i32.load offset=16 - global.get $~lib/memory/__stack_pointer - local.get $5 - i32.store - local.get $5 - i32.load offset=12 - i32.eq - if - global.get $~lib/memory/__stack_pointer - local.get $5 - i32.store - global.get $~lib/memory/__stack_pointer - local.get $5 - i32.store offset=4 - local.get $5 - i32.load offset=20 - local.set $0 - global.get $~lib/memory/__stack_pointer - local.get $5 - i32.store offset=4 - local.get $5 - local.get $0 - local.get $5 - i32.load offset=12 - i32.const 3 - i32.mul - i32.const 4 - i32.div_s - i32.lt_s - if (result i32) - global.get $~lib/memory/__stack_pointer - local.get $5 - i32.store offset=4 - local.get $5 - i32.load offset=4 - else - global.get $~lib/memory/__stack_pointer - local.get $5 - i32.store offset=4 - local.get $5 - i32.load offset=4 - i32.const 1 - i32.shl - i32.const 1 - i32.or - end - call $"~lib/map/Map#rehash" - end - global.get $~lib/memory/__stack_pointer - local.get $5 - i32.store - global.get $~lib/memory/__stack_pointer - local.get $5 - i32.load offset=8 - local.tee $10 - i32.store offset=8 - global.get $~lib/memory/__stack_pointer - local.get $5 - i32.store - global.get $~lib/memory/__stack_pointer - local.get $5 - i32.store offset=4 - local.get $5 - local.get $5 - i32.load offset=16 - local.tee $0 - i32.const 1 - i32.add - i32.store offset=16 - local.get $10 - local.get $0 - i32.const 3 - i32.shl - i32.add - local.tee $0 - local.get $7 - i32.store16 - local.get $0 - local.get $7 - i32.store16 offset=2 - global.get $~lib/memory/__stack_pointer - local.get $5 - i32.store - global.get $~lib/memory/__stack_pointer - local.get $5 - i32.store offset=4 - local.get $5 - local.get $5 - i32.load offset=20 - i32.const 1 - i32.add - i32.store offset=20 - global.get $~lib/memory/__stack_pointer - local.get $5 - i32.store - local.get $5 - i32.load - local.set $7 - global.get $~lib/memory/__stack_pointer - local.get $5 - i32.store - local.get $0 - local.get $7 - local.get $9 - local.get $5 - i32.load offset=4 - i32.and - i32.const 2 - i32.shl - i32.add - local.tee $7 - i32.load - i32.store offset=4 - local.get $7 - local.get $0 - i32.store + i32.const 0 + i32.const 1744 + i32.const 45 + i32.const 5 + call $~lib/builtins/abort + unreachable end - global.get $~lib/memory/__stack_pointer - i32.const 12 - i32.add - global.set $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - local.get $6 - i32.store offset=4 - local.get $6 - local.get $8 - i32.const 20 - i32.sub - local.tee $0 local.get $0 - call $"~lib/map/Map#set" - local.get $1 i32.const 1 i32.add - local.set $1 - br $for-loop|2 + local.set $0 + br $for-loop|3 end end global.get $~lib/memory/__stack_pointer - local.get $5 - i32.store offset=4 - local.get $5 - call $"~lib/map/Map#get:size" - i32.const 100 - i32.ne - if - i32.const 0 - i32.const 1776 - i32.const 37 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - local.get $6 + local.get $3 i32.store offset=4 - local.get $6 + local.get $3 call $"~lib/map/Map#get:size" - i32.const 100 + i32.const 50 i32.ne if i32.const 0 - i32.const 1776 - i32.const 38 + i32.const 1744 + i32.const 47 i32.const 3 call $~lib/builtins/abort unreachable end i32.const 0 local.set $0 - loop $for-loop|3 + loop $for-loop|4 local.get $0 i32.const 50 i32.lt_u if global.get $~lib/memory/__stack_pointer - local.get $4 + local.get $3 i32.store offset=4 - local.get $4 + local.get $3 local.get $0 call $"~lib/map/Map#has" - i32.eqz if i32.const 0 - i32.const 1776 - i32.const 42 + i32.const 1744 + i32.const 51 i32.const 5 call $~lib/builtins/abort unreachable end global.get $~lib/memory/__stack_pointer - local.get $4 + local.get $3 i32.store offset=4 - local.get $4 + local.get $3 local.get $0 - call $"~lib/map/Map#get" local.get $0 - i32.const 20 + i32.const 10 i32.add - i32.ne + call $"~lib/map/Map#set" + global.get $~lib/memory/__stack_pointer + local.get $3 + i32.store offset=4 + local.get $3 + local.get $0 + call $"~lib/map/Map#has" + i32.eqz if i32.const 0 - i32.const 1776 - i32.const 43 + i32.const 1744 + i32.const 53 i32.const 5 call $~lib/builtins/abort unreachable end global.get $~lib/memory/__stack_pointer - local.get $4 + local.get $3 i32.store offset=4 - local.get $4 + local.get $3 local.get $0 call $"~lib/map/Map#delete" global.get $~lib/memory/__stack_pointer - local.get $4 + local.get $3 i32.store offset=4 - local.get $4 + local.get $3 local.get $0 call $"~lib/map/Map#has" if i32.const 0 - i32.const 1776 - i32.const 45 + i32.const 1744 + i32.const 55 i32.const 5 call $~lib/builtins/abort unreachable @@ -14177,124 +13257,37 @@ i32.const 1 i32.add local.set $0 - br $for-loop|3 + br $for-loop|4 end end global.get $~lib/memory/__stack_pointer - local.get $4 + local.get $3 i32.store offset=4 - local.get $4 + local.get $3 call $"~lib/map/Map#get:size" i32.const 50 i32.ne if i32.const 0 - i32.const 1776 - i32.const 47 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - i32.const 0 - local.set $0 - loop $for-loop|4 - local.get $0 - i32.const 50 - i32.lt_u - if - global.get $~lib/memory/__stack_pointer - local.get $4 - i32.store offset=4 - local.get $4 - local.get $0 - call $"~lib/map/Map#has" - if - i32.const 0 - i32.const 1776 - i32.const 51 - i32.const 5 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - local.get $4 - i32.store offset=4 - local.get $4 - local.get $0 - local.get $0 - i32.const 10 - i32.add - call $"~lib/map/Map#set" - global.get $~lib/memory/__stack_pointer - local.get $4 - i32.store offset=4 - local.get $4 - local.get $0 - call $"~lib/map/Map#has" - i32.eqz - if - i32.const 0 - i32.const 1776 - i32.const 53 - i32.const 5 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - local.get $4 - i32.store offset=4 - local.get $4 - local.get $0 - call $"~lib/map/Map#delete" - global.get $~lib/memory/__stack_pointer - local.get $4 - i32.store offset=4 - local.get $4 - local.get $0 - call $"~lib/map/Map#has" - if - i32.const 0 - i32.const 1776 - i32.const 55 - i32.const 5 - call $~lib/builtins/abort - unreachable - end - local.get $0 - i32.const 1 - i32.add - local.set $0 - br $for-loop|4 - end - end - global.get $~lib/memory/__stack_pointer - local.get $4 - i32.store offset=4 - local.get $4 - call $"~lib/map/Map#get:size" - i32.const 50 - i32.ne - if - i32.const 0 - i32.const 1776 - i32.const 57 + i32.const 1744 + i32.const 57 i32.const 3 call $~lib/builtins/abort unreachable end global.get $~lib/memory/__stack_pointer - local.get $4 + local.get $3 i32.store offset=4 - local.get $4 + local.get $3 call $"~lib/map/Map#clear" global.get $~lib/memory/__stack_pointer - local.get $4 + local.get $3 i32.store offset=4 - local.get $4 + local.get $3 call $"~lib/map/Map#get:size" if i32.const 0 - i32.const 1776 + i32.const 1744 i32.const 61 i32.const 3 call $~lib/builtins/abort @@ -14302,7 +13295,7 @@ end global.get $~lib/memory/__stack_pointer i32.const 31 - i32.const 2288 + i32.const 2000 call $~lib/rt/__newArray local.tee $1 i32.store offset=24 @@ -14322,7 +13315,7 @@ i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 3104 + i32.const 2496 i32.lt_s br_if $folding-inner1 global.get $~lib/memory/__stack_pointer @@ -14404,7 +13397,7 @@ i32.ne if i32.const 0 - i32.const 1776 + i32.const 1744 i32.const 74 i32.const 3 call $~lib/builtins/abort @@ -14426,7 +13419,7 @@ i32.eqz if i32.const 0 - i32.const 1776 + i32.const 1744 i32.const 76 i32.const 5 call $~lib/builtins/abort @@ -14444,7 +13437,7 @@ i32.ne if i32.const 0 - i32.const 1776 + i32.const 1744 i32.const 77 i32.const 5 call $~lib/builtins/abort @@ -14464,7 +13457,7 @@ call $"~lib/map/Map#has" if i32.const 0 - i32.const 1776 + i32.const 1744 i32.const 79 i32.const 5 call $~lib/builtins/abort @@ -14484,7 +13477,7 @@ call $"~lib/map/Map#get:size" if i32.const 0 - i32.const 1776 + i32.const 1744 i32.const 81 i32.const 3 call $~lib/builtins/abort @@ -14496,8 +13489,8 @@ global.set $~lib/memory/__stack_pointer return end - i32.const 35904 - i32.const 35952 + i32.const 35296 + i32.const 35344 i32.const 1 i32.const 1 call $~lib/builtins/abort @@ -14509,11 +13502,11 @@ i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 3104 + i32.const 2496 i32.lt_s if - i32.const 35904 - i32.const 35952 + i32.const 35296 + i32.const 35344 i32.const 1 i32.const 1 call $~lib/builtins/abort @@ -14569,11 +13562,11 @@ i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 3104 + i32.const 2496 i32.lt_s if - i32.const 35904 - i32.const 35952 + i32.const 35296 + i32.const 35344 i32.const 1 i32.const 1 call $~lib/builtins/abort @@ -14619,9 +13612,9 @@ local.tee $0 i32.eqz if - i32.const 1824 - i32.const 1888 - i32.const 148 + i32.const 1792 + i32.const 1856 + i32.const 146 i32.const 17 call $~lib/builtins/abort unreachable @@ -14640,11 +13633,11 @@ i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 3104 + i32.const 2496 i32.lt_s if - i32.const 35904 - i32.const 35952 + i32.const 35296 + i32.const 35344 i32.const 1 i32.const 1 call $~lib/builtins/abort @@ -14784,7 +13777,7 @@ global.set $~lib/memory/__stack_pointer block $folding-inner0 global.get $~lib/memory/__stack_pointer - i32.const 3104 + i32.const 2496 i32.lt_s br_if $folding-inner0 global.get $~lib/memory/__stack_pointer @@ -14792,7 +13785,8 @@ i32.const 40 memory.fill global.get $~lib/memory/__stack_pointer - call $"~lib/map/Map#constructor@varargs" + i32.const 0 + call $"~lib/map/Map#constructor" local.tee $3 i32.store loop $for-loop|0 @@ -14808,7 +13802,7 @@ call $"~lib/map/Map#has" if i32.const 0 - i32.const 1776 + i32.const 1744 i32.const 7 i32.const 5 call $~lib/builtins/abort @@ -14832,7 +13826,7 @@ i32.eqz if i32.const 0 - i32.const 1776 + i32.const 1744 i32.const 9 i32.const 5 call $~lib/builtins/abort @@ -14850,7 +13844,7 @@ i32.ne if i32.const 0 - i32.const 1776 + i32.const 1744 i32.const 10 i32.const 5 call $~lib/builtins/abort @@ -14872,7 +13866,7 @@ i32.ne if i32.const 0 - i32.const 1776 + i32.const 1744 i32.const 12 i32.const 3 call $~lib/builtins/abort @@ -14894,7 +13888,7 @@ i32.eqz if i32.const 0 - i32.const 1776 + i32.const 1744 i32.const 16 i32.const 5 call $~lib/builtins/abort @@ -14912,7 +13906,7 @@ i32.ne if i32.const 0 - i32.const 1776 + i32.const 1744 i32.const 17 i32.const 5 call $~lib/builtins/abort @@ -14936,7 +13930,7 @@ i32.eqz if i32.const 0 - i32.const 1776 + i32.const 1744 i32.const 19 i32.const 5 call $~lib/builtins/abort @@ -14954,7 +13948,7 @@ i32.ne if i32.const 0 - i32.const 1776 + i32.const 1744 i32.const 20 i32.const 5 call $~lib/builtins/abort @@ -14976,7 +13970,7 @@ i32.ne if i32.const 0 - i32.const 1776 + i32.const 1744 i32.const 22 i32.const 3 call $~lib/builtins/abort @@ -14991,7 +13985,7 @@ i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 3104 + i32.const 2496 i32.lt_s br_if $folding-inner0 global.get $~lib/memory/__stack_pointer @@ -15072,11 +14066,13 @@ local.tee $0 i32.store offset=12 global.get $~lib/memory/__stack_pointer - call $"~lib/map/Map#constructor@varargs" + i32.const 0 + call $"~lib/map/Map#constructor" local.tee $4 i32.store offset=16 global.get $~lib/memory/__stack_pointer - call $"~lib/map/Map#constructor@varargs" + i32.const 0 + call $"~lib/map/Map#constructor" local.tee $5 i32.store offset=20 i32.const 0 @@ -15113,7 +14109,7 @@ i32.eqz if i32.const 0 - i32.const 1776 + i32.const 1744 i32.const 32 i32.const 5 call $~lib/builtins/abort @@ -15130,7 +14126,7 @@ i32.eqz if i32.const 0 - i32.const 1776 + i32.const 1744 i32.const 33 i32.const 5 call $~lib/builtins/abort @@ -15169,7 +14165,7 @@ i32.ne if i32.const 0 - i32.const 1776 + i32.const 1744 i32.const 37 i32.const 3 call $~lib/builtins/abort @@ -15184,7 +14180,7 @@ i32.ne if i32.const 0 - i32.const 1776 + i32.const 1744 i32.const 38 i32.const 3 call $~lib/builtins/abort @@ -15206,7 +14202,7 @@ i32.eqz if i32.const 0 - i32.const 1776 + i32.const 1744 i32.const 42 i32.const 5 call $~lib/builtins/abort @@ -15224,7 +14220,7 @@ i32.ne if i32.const 0 - i32.const 1776 + i32.const 1744 i32.const 43 i32.const 5 call $~lib/builtins/abort @@ -15244,7 +14240,7 @@ call $"~lib/map/Map#has" if i32.const 0 - i32.const 1776 + i32.const 1744 i32.const 45 i32.const 5 call $~lib/builtins/abort @@ -15266,7 +14262,7 @@ i32.ne if i32.const 0 - i32.const 1776 + i32.const 1744 i32.const 47 i32.const 3 call $~lib/builtins/abort @@ -15287,7 +14283,7 @@ call $"~lib/map/Map#has" if i32.const 0 - i32.const 1776 + i32.const 1744 i32.const 51 i32.const 5 call $~lib/builtins/abort @@ -15311,7 +14307,7 @@ i32.eqz if i32.const 0 - i32.const 1776 + i32.const 1744 i32.const 53 i32.const 5 call $~lib/builtins/abort @@ -15331,7 +14327,7 @@ call $"~lib/map/Map#has" if i32.const 0 - i32.const 1776 + i32.const 1744 i32.const 55 i32.const 5 call $~lib/builtins/abort @@ -15353,7 +14349,7 @@ i32.ne if i32.const 0 - i32.const 1776 + i32.const 1744 i32.const 57 i32.const 3 call $~lib/builtins/abort @@ -15371,7 +14367,7 @@ call $"~lib/map/Map#get:size" if i32.const 0 - i32.const 1776 + i32.const 1744 i32.const 61 i32.const 3 call $~lib/builtins/abort @@ -15379,7 +14375,7 @@ end global.get $~lib/memory/__stack_pointer i32.const 14 - i32.const 2320 + i32.const 2032 call $~lib/rt/__newArray local.tee $1 i32.store offset=24 @@ -15399,7 +14395,7 @@ i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 3104 + i32.const 2496 i32.lt_s br_if $folding-inner0 global.get $~lib/memory/__stack_pointer @@ -15481,7 +14477,7 @@ i32.ne if i32.const 0 - i32.const 1776 + i32.const 1744 i32.const 74 i32.const 3 call $~lib/builtins/abort @@ -15503,7 +14499,7 @@ i32.eqz if i32.const 0 - i32.const 1776 + i32.const 1744 i32.const 76 i32.const 5 call $~lib/builtins/abort @@ -15521,7 +14517,7 @@ i32.ne if i32.const 0 - i32.const 1776 + i32.const 1744 i32.const 77 i32.const 5 call $~lib/builtins/abort @@ -15541,7 +14537,7 @@ call $"~lib/map/Map#has" if i32.const 0 - i32.const 1776 + i32.const 1744 i32.const 79 i32.const 5 call $~lib/builtins/abort @@ -15561,7 +14557,7 @@ call $"~lib/map/Map#get:size" if i32.const 0 - i32.const 1776 + i32.const 1744 i32.const 81 i32.const 3 call $~lib/builtins/abort @@ -15573,8 +14569,8 @@ global.set $~lib/memory/__stack_pointer return end - i32.const 35904 - i32.const 35952 + i32.const 35296 + i32.const 35344 i32.const 1 i32.const 1 call $~lib/builtins/abort @@ -15593,11 +14589,11 @@ i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 3104 + i32.const 2496 i32.lt_s if - i32.const 35904 - i32.const 35952 + i32.const 35296 + i32.const 35344 i32.const 1 i32.const 1 call $~lib/builtins/abort @@ -15782,11 +14778,11 @@ i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 3104 + i32.const 2496 i32.lt_s if - i32.const 35904 - i32.const 35952 + i32.const 35296 + i32.const 35344 i32.const 1 i32.const 1 call $~lib/builtins/abort @@ -15857,17 +14853,16 @@ (local $5 i32) (local $6 i32) (local $7 i32) - (local $8 i32) global.get $~lib/memory/__stack_pointer i32.const 16 i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 3104 + i32.const 2496 i32.lt_s if - i32.const 35904 - i32.const 35952 + i32.const 35296 + i32.const 35344 i32.const 1 i32.const 1 call $~lib/builtins/abort @@ -15941,19 +14936,16 @@ local.get $1 i32.const 0 i32.store offset=20 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 local.get $0 - call $"~lib/array/Array<~lib/map/KeyValue>#get:length" - local.tee $3 - i32.const 0 - i32.gt_s if + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + local.get $0 + call $"~lib/array/Array<~lib/map/KeyValue>#get:length" global.get $~lib/memory/__stack_pointer local.get $1 i32.store offset=4 - local.get $3 local.get $1 i32.load offset=12 i32.ge_s @@ -15961,8 +14953,12 @@ global.get $~lib/memory/__stack_pointer local.get $1 i32.store offset=4 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=8 local.get $1 - local.get $3 + local.get $0 + call $"~lib/array/Array<~lib/map/KeyValue>#get:length" i32.store offset=4 end global.get $~lib/memory/__stack_pointer @@ -15980,9 +14976,13 @@ i32.or call $"~lib/map/Map#rehash" loop $for-loop|0 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + local.get $0 + call $"~lib/array/Array<~lib/map/KeyValue>#get:length" local.get $2 - local.get $3 - i32.lt_s + i32.gt_s if global.get $~lib/memory/__stack_pointer local.get $0 @@ -15990,32 +14990,32 @@ local.get $0 local.get $2 call $"~lib/array/Array<~lib/map/KeyValue>#__get" - local.set $4 + local.set $3 global.get $~lib/memory/__stack_pointer - local.get $4 + local.get $3 i32.store offset=4 - local.get $4 + local.get $3 i32.load - local.set $4 + local.set $3 global.get $~lib/memory/__stack_pointer local.get $0 i32.store offset=8 local.get $0 local.get $2 call $"~lib/array/Array<~lib/map/KeyValue>#__get" - local.set $5 + local.set $4 global.get $~lib/memory/__stack_pointer - local.get $5 + local.get $4 i32.store offset=4 - local.get $5 + local.get $4 i32.load offset=4 - local.set $6 + local.set $5 global.get $~lib/memory/__stack_pointer local.get $1 i32.store offset=4 local.get $1 - local.get $4 - local.get $4 + local.get $3 + local.get $3 i32.const -1028477379 i32.mul i32.const 374761397 @@ -16024,31 +15024,31 @@ i32.rotl i32.const 668265263 i32.mul - local.tee $5 + local.tee $4 i32.const 15 i32.shr_u - local.get $5 + local.get $4 i32.xor i32.const -2048144777 i32.mul - local.tee $5 + local.tee $4 i32.const 13 i32.shr_u - local.get $5 + local.get $4 i32.xor i32.const -1028477379 i32.mul - local.tee $5 + local.tee $4 i32.const 16 i32.shr_u - local.get $5 + local.get $4 i32.xor - local.tee $7 + local.tee $6 call $"~lib/map/Map#find" - local.tee $5 + local.tee $4 if + local.get $4 local.get $5 - local.get $6 i32.store offset=4 else global.get $~lib/memory/__stack_pointer @@ -16057,7 +15057,7 @@ global.get $~lib/memory/__stack_pointer local.get $1 i32.load offset=8 - local.tee $5 + local.tee $4 i32.store offset=12 global.get $~lib/memory/__stack_pointer local.get $1 @@ -16068,20 +15068,20 @@ local.get $1 local.get $1 i32.load offset=16 - local.tee $8 + local.tee $7 i32.const 1 i32.add i32.store offset=16 - local.get $5 - local.get $8 + local.get $4 + local.get $7 i32.const 12 i32.mul i32.add - local.tee $5 - local.get $4 + local.tee $4 + local.get $3 i32.store + local.get $4 local.get $5 - local.get $6 i32.store offset=4 global.get $~lib/memory/__stack_pointer local.get $1 @@ -16100,24 +15100,24 @@ i32.store offset=4 local.get $1 i32.load - local.set $4 + local.set $3 global.get $~lib/memory/__stack_pointer local.get $1 i32.store offset=4 - local.get $5 local.get $4 - local.get $7 + local.get $3 + local.get $6 local.get $1 i32.load offset=4 i32.and i32.const 2 i32.shl i32.add - local.tee $4 + local.tee $3 i32.load i32.store offset=8 + local.get $3 local.get $4 - local.get $5 i32.store end local.get $2 @@ -16140,11 +15140,11 @@ i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 3104 + i32.const 2496 i32.lt_s if - i32.const 35904 - i32.const 35952 + i32.const 35296 + i32.const 35344 i32.const 1 i32.const 1 call $~lib/builtins/abort @@ -16203,11 +15203,11 @@ i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 3104 + i32.const 2496 i32.lt_s if - i32.const 35904 - i32.const 35952 + i32.const 35296 + i32.const 35344 i32.const 1 i32.const 1 call $~lib/builtins/abort @@ -16392,11 +15392,11 @@ i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 3104 + i32.const 2496 i32.lt_s if - i32.const 35904 - i32.const 35952 + i32.const 35296 + i32.const 35344 i32.const 1 i32.const 1 call $~lib/builtins/abort @@ -16442,9 +15442,9 @@ local.tee $0 i32.eqz if - i32.const 1824 - i32.const 1888 - i32.const 148 + i32.const 1792 + i32.const 1856 + i32.const 146 i32.const 17 call $~lib/builtins/abort unreachable @@ -16456,220 +15456,394 @@ i32.add global.set $~lib/memory/__stack_pointer ) - (func $"~lib/map/Map#rehash" (param $0 i32) (param $1 i32) - (local $2 i32) + (func $"~lib/map/Map#set" (param $0 i32) (param $1 i32) (param $2 i32) (local $3 i32) (local $4 i32) (local $5 i32) (local $6 i32) (local $7 i32) (local $8 i32) + (local $9 i32) + (local $10 i32) + (local $11 i32) global.get $~lib/memory/__stack_pointer - i32.const 16 + i32.const 12 i32.sub global.set $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - i32.const 3104 - i32.lt_s - if - i32.const 35904 - i32.const 35952 - i32.const 1 - i32.const 1 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - i64.const 0 - i64.store - global.get $~lib/memory/__stack_pointer - i64.const 0 - i64.store offset=8 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.const 1 - i32.add - local.tee $2 - i32.const 2 - i32.shl - call $~lib/arraybuffer/ArrayBuffer#constructor - local.tee $6 - i32.store - global.get $~lib/memory/__stack_pointer - local.get $2 - i32.const 3 - i32.shl - i32.const 3 - i32.div_s - local.tee $5 - i32.const 12 - i32.mul - call $~lib/arraybuffer/ArrayBuffer#constructor - local.tee $3 - i32.store offset=4 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=8 - local.get $0 - i32.load offset=8 - local.set $7 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=8 - local.get $7 - local.get $0 - i32.load offset=16 - i32.const 12 - i32.mul - i32.add - local.set $4 - local.get $3 - local.set $2 - loop $while-continue|0 - local.get $4 - local.get $7 - i32.ne - if - local.get $7 - i32.load offset=8 - i32.const 1 - i32.and - i32.eqz - if - local.get $2 - local.get $7 - i32.load - local.tee $8 - i32.store - local.get $2 - local.get $7 - i32.load offset=4 - i32.store offset=4 - local.get $2 - local.get $6 - local.get $1 - local.get $8 - i32.const -1028477379 - i32.mul - i32.const 374761397 - i32.add - i32.const 17 - i32.rotl - i32.const 668265263 - i32.mul - local.tee $8 - local.get $8 - i32.const 15 - i32.shr_u - i32.xor - i32.const -2048144777 - i32.mul - local.tee $8 - local.get $8 - i32.const 13 - i32.shr_u - i32.xor - i32.const -1028477379 + block $folding-inner0 + global.get $~lib/memory/__stack_pointer + i32.const 2496 + i32.lt_s + br_if $folding-inner0 + global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store offset=8 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + local.get $0 + local.get $1 + local.get $1 + i32.const -1028477379 + i32.mul + i32.const 374761397 + i32.add + i32.const 17 + i32.rotl + i32.const 668265263 + i32.mul + local.tee $3 + i32.const 15 + i32.shr_u + local.get $3 + i32.xor + i32.const -2048144777 + i32.mul + local.tee $3 + i32.const 13 + i32.shr_u + local.get $3 + i32.xor + i32.const -1028477379 + i32.mul + local.tee $3 + i32.const 16 + i32.shr_u + local.get $3 + i32.xor + local.tee $7 + call $"~lib/map/Map#find" + local.tee $3 + if + local.get $3 + local.get $2 + i32.store offset=4 + else + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + local.get $0 + i32.load offset=16 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + local.get $0 + i32.load offset=12 + i32.eq + if + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + local.get $0 + i32.load offset=20 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + local.get $0 + i32.load offset=12 + i32.const 3 i32.mul - local.tee $8 - local.get $8 + i32.const 4 + i32.div_s + i32.lt_s + if (result i32) + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + local.get $0 + i32.load offset=4 + else + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + local.get $0 + i32.load offset=4 + i32.const 1 + i32.shl + i32.const 1 + i32.or + end + local.set $8 + global.get $~lib/memory/__stack_pointer i32.const 16 - i32.shr_u - i32.xor - i32.and + i32.sub + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 2496 + i32.lt_s + br_if $folding-inner0 + global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store + global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store offset=8 + global.get $~lib/memory/__stack_pointer + local.get $8 + i32.const 1 + i32.add + local.tee $3 i32.const 2 i32.shl + call $~lib/arraybuffer/ArrayBuffer#constructor + local.tee $9 + i32.store + global.get $~lib/memory/__stack_pointer + local.get $3 + i32.const 3 + i32.shl + i32.const 3 + i32.div_s + local.tee $6 + i32.const 12 + i32.mul + call $~lib/arraybuffer/ArrayBuffer#constructor + local.tee $4 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=8 + local.get $0 + i32.load offset=8 + local.set $10 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=8 + local.get $10 + local.get $0 + i32.load offset=16 + i32.const 12 + i32.mul i32.add - local.tee $8 - i32.load + local.set $5 + local.get $4 + local.set $3 + loop $while-continue|0 + local.get $5 + local.get $10 + i32.ne + if + local.get $10 + i32.load offset=8 + i32.const 1 + i32.and + i32.eqz + if + local.get $3 + local.get $10 + i32.load + local.tee $11 + i32.store + local.get $3 + local.get $10 + i32.load offset=4 + i32.store offset=4 + local.get $3 + local.get $9 + local.get $8 + local.get $11 + i32.const -1028477379 + i32.mul + i32.const 374761397 + i32.add + i32.const 17 + i32.rotl + i32.const 668265263 + i32.mul + local.tee $11 + local.get $11 + i32.const 15 + i32.shr_u + i32.xor + i32.const -2048144777 + i32.mul + local.tee $11 + local.get $11 + i32.const 13 + i32.shr_u + i32.xor + i32.const -1028477379 + i32.mul + local.tee $11 + local.get $11 + i32.const 16 + i32.shr_u + i32.xor + i32.and + i32.const 2 + i32.shl + i32.add + local.tee $11 + i32.load + i32.store offset=8 + local.get $11 + local.get $3 + i32.store + local.get $3 + i32.const 12 + i32.add + local.set $3 + end + local.get $10 + i32.const 12 + i32.add + local.set $10 + br $while-continue|0 + end + end + global.get $~lib/memory/__stack_pointer + local.get $0 i32.store offset=8 - local.get $8 - local.get $2 + global.get $~lib/memory/__stack_pointer + local.get $9 + i32.store offset=12 + local.get $0 + local.get $9 i32.store - local.get $2 - i32.const 12 + local.get $0 + local.get $9 + i32.const 0 + call $~lib/rt/itcms/__link + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=8 + local.get $0 + local.get $8 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=8 + global.get $~lib/memory/__stack_pointer + local.get $4 + i32.store offset=12 + local.get $0 + local.get $4 + i32.store offset=8 + local.get $0 + local.get $4 + i32.const 0 + call $~lib/rt/itcms/__link + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=8 + local.get $0 + local.get $6 + i32.store offset=12 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=8 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=12 + local.get $0 + local.get $0 + i32.load offset=20 + i32.store offset=16 + global.get $~lib/memory/__stack_pointer + i32.const 16 i32.add - local.set $2 + global.set $~lib/memory/__stack_pointer end - local.get $7 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.load offset=8 + local.tee $3 + i32.store offset=8 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + local.get $0 + local.get $0 + i32.load offset=16 + local.tee $4 + i32.const 1 + i32.add + i32.store offset=16 + local.get $3 + local.get $4 i32.const 12 + i32.mul i32.add - local.set $7 - br $while-continue|0 - end - end - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=8 - global.get $~lib/memory/__stack_pointer - local.get $6 - i32.store offset=12 - local.get $0 - local.get $6 - i32.store - local.get $0 - local.get $6 - i32.const 0 - call $~lib/rt/itcms/__link - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=8 - local.get $0 - local.get $1 - i32.store offset=4 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=8 - global.get $~lib/memory/__stack_pointer - local.get $3 - i32.store offset=12 - local.get $0 - local.get $3 - i32.store offset=8 - local.get $0 - local.get $3 - i32.const 0 - call $~lib/rt/itcms/__link - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=8 - local.get $0 - local.get $5 - i32.store offset=12 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=8 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=12 - local.get $0 - local.get $0 - i32.load offset=20 - i32.store offset=16 - global.get $~lib/memory/__stack_pointer - i32.const 16 - i32.add - global.set $~lib/memory/__stack_pointer + local.tee $3 + local.get $1 + i32.store + local.get $3 + local.get $2 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + local.get $0 + local.get $0 + i32.load offset=20 + i32.const 1 + i32.add + i32.store offset=20 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + local.get $0 + i32.load + local.set $1 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + local.get $3 + local.get $1 + local.get $7 + local.get $0 + i32.load offset=4 + i32.and + i32.const 2 + i32.shl + i32.add + local.tee $0 + i32.load + i32.store offset=8 + local.get $0 + local.get $3 + i32.store + end + global.get $~lib/memory/__stack_pointer + i32.const 12 + i32.add + global.set $~lib/memory/__stack_pointer + return + end + i32.const 35296 + i32.const 35344 + i32.const 1 + i32.const 1 + call $~lib/builtins/abort + unreachable ) - (func $"~lib/map/Map#constructor" (param $0 i32) (result i32) - (local $1 i32) + (func $"~lib/map/Map#delete" (param $0 i32) (param $1 i32) (local $2 i32) - (local $3 i32) - (local $4 i32) - (local $5 i32) - (local $6 i32) - (local $7 i32) - (local $8 i32) global.get $~lib/memory/__stack_pointer - i32.const 16 + i32.const 8 i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 3104 + i32.const 2496 i32.lt_s if - i32.const 35904 - i32.const 35952 + i32.const 35296 + i32.const 35344 i32.const 1 i32.const 1 call $~lib/builtins/abort @@ -16679,538 +15853,227 @@ i64.const 0 i64.store global.get $~lib/memory/__stack_pointer - i64.const 0 - i64.store offset=8 - global.get $~lib/memory/__stack_pointer - i32.const 24 - i32.const 40 - call $~lib/rt/itcms/__new - local.tee $1 + local.get $0 i32.store - global.get $~lib/memory/__stack_pointer + local.get $0 local.get $1 - i32.store offset=4 - i32.const 16 - call $~lib/arraybuffer/ArrayBuffer#constructor - local.set $3 - global.get $~lib/memory/__stack_pointer - local.get $3 - i32.store offset=8 local.get $1 - local.get $3 - i32.store + i32.const -1028477379 + i32.mul + i32.const 374761397 + i32.add + i32.const 17 + i32.rotl + i32.const 668265263 + i32.mul + local.tee $1 + i32.const 15 + i32.shr_u local.get $1 - local.get $3 - i32.const 0 - call $~lib/rt/itcms/__link - global.get $~lib/memory/__stack_pointer + i32.xor + i32.const -2048144777 + i32.mul + local.tee $1 + i32.const 13 + i32.shr_u local.get $1 - i32.store offset=4 + i32.xor + i32.const -1028477379 + i32.mul + local.tee $1 + i32.const 16 + i32.shr_u local.get $1 - i32.const 3 - i32.store offset=4 - global.get $~lib/memory/__stack_pointer + i32.xor + call $"~lib/map/Map#find" + local.tee $1 + i32.eqz + if + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.add + global.set $~lib/memory/__stack_pointer + return + end local.get $1 - i32.store offset=4 - i32.const 48 - call $~lib/arraybuffer/ArrayBuffer#constructor - local.set $3 - global.get $~lib/memory/__stack_pointer - local.get $3 - i32.store offset=8 local.get $1 - local.get $3 + i32.load offset=8 + i32.const 1 + i32.or i32.store offset=8 - local.get $1 - local.get $3 - i32.const 0 - call $~lib/rt/itcms/__link - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - local.get $1 - i32.const 4 - i32.store offset=12 global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - local.get $1 - i32.const 0 - i32.store offset=16 + local.get $0 + i32.store global.get $~lib/memory/__stack_pointer - local.get $1 + local.get $0 i32.store offset=4 - local.get $1 - i32.const 0 + local.get $0 + local.get $0 + i32.load offset=20 + i32.const 1 + i32.sub i32.store offset=20 global.get $~lib/memory/__stack_pointer local.get $0 - i32.store offset=4 + i32.store local.get $0 - call $"~lib/array/Array<~lib/map/KeyValue>#get:length" - local.tee $3 - i32.const 0 - i32.gt_s - if + i32.load offset=4 + i32.const 1 + i32.shr_u + local.set $1 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + local.get $1 + i32.const 1 + i32.add + i32.const 4 + local.get $0 + i32.load offset=20 + local.tee $2 + local.get $2 + i32.const 4 + i32.lt_u + select + i32.ge_u + if (result i32) global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - local.get $3 - local.get $1 + local.get $0 + i32.store + local.get $0 + i32.load offset=20 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + local.get $0 i32.load offset=12 - i32.ge_s - if - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - local.get $1 - local.get $3 - i32.store offset=4 - end + i32.const 3 + i32.mul + i32.const 4 + i32.div_s + i32.lt_s + else + i32.const 0 + end + if global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + local.get $0 local.get $1 - i32.store offset=4 + call $"~lib/map/Map#rehash" + end + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.add + global.set $~lib/memory/__stack_pointer + ) + (func $"std/map/testNumeric" + (local $0 i32) + (local $1 i32) + (local $2 i32) + (local $3 i32) + (local $4 i32) + (local $5 i32) + (local $6 i32) + (local $7 i32) + (local $8 i32) + global.get $~lib/memory/__stack_pointer + i32.const 40 + i32.sub + global.set $~lib/memory/__stack_pointer + block $folding-inner1 global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=8 - local.get $1 - local.get $1 - i32.load offset=4 - i32.const 1 - i32.shl - i32.const 1 - i32.or - call $"~lib/map/Map#rehash" + i32.const 2496 + i32.lt_s + br_if $folding-inner1 + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.const 40 + memory.fill + global.get $~lib/memory/__stack_pointer + i32.const 0 + call $"~lib/map/Map#constructor" + local.tee $3 + i32.store loop $for-loop|0 - local.get $2 - local.get $3 - i32.lt_s + local.get $0 + i32.const 100 + i32.lt_u if global.get $~lib/memory/__stack_pointer + local.get $3 + i32.store offset=4 + local.get $3 local.get $0 - i32.store offset=8 - local.get $0 - local.get $2 - call $"~lib/array/Array<~lib/map/KeyValue>#__get" - local.set $4 + call $"~lib/map/Map#has" + if + i32.const 0 + i32.const 1744 + i32.const 7 + i32.const 5 + call $~lib/builtins/abort + unreachable + end global.get $~lib/memory/__stack_pointer - local.get $4 + local.get $3 i32.store offset=4 - local.get $4 - i32.load - local.set $4 - global.get $~lib/memory/__stack_pointer + local.get $3 local.get $0 - i32.store offset=8 local.get $0 - local.get $2 - call $"~lib/array/Array<~lib/map/KeyValue>#__get" - local.set $5 + i32.const 10 + i32.add + call $"~lib/map/Map#set" global.get $~lib/memory/__stack_pointer - local.get $5 + local.get $3 i32.store offset=4 - local.get $5 - i32.load offset=4 - local.set $6 + local.get $3 + local.get $0 + call $"~lib/map/Map#has" + i32.eqz + if + i32.const 0 + i32.const 1744 + i32.const 9 + i32.const 5 + call $~lib/builtins/abort + unreachable + end global.get $~lib/memory/__stack_pointer - local.get $1 + local.get $3 i32.store offset=4 - local.get $1 - local.get $4 - local.get $4 - i32.const -1028477379 - i32.mul - i32.const 374761397 + local.get $3 + local.get $0 + call $"~lib/map/Map#get" + local.get $0 + i32.const 10 i32.add - i32.const 17 - i32.rotl - i32.const 668265263 - i32.mul - local.tee $5 - i32.const 15 - i32.shr_u - local.get $5 - i32.xor - i32.const -2048144777 - i32.mul - local.tee $5 - i32.const 13 - i32.shr_u - local.get $5 - i32.xor - i32.const -1028477379 - i32.mul - local.tee $5 - i32.const 16 - i32.shr_u - local.get $5 - i32.xor - local.tee $7 - call $"~lib/map/Map#find" - local.tee $5 + i32.ne if - local.get $5 - local.get $6 - i32.store offset=4 - else - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.load offset=8 - local.tee $5 - i32.store offset=12 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=8 - local.get $1 - local.get $1 - i32.load offset=16 - local.tee $8 - i32.const 1 - i32.add - i32.store offset=16 - local.get $5 - local.get $8 - i32.const 12 - i32.mul - i32.add - local.tee $5 - local.get $4 - i32.store - local.get $5 - local.get $6 - i32.store offset=4 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=8 - local.get $1 - local.get $1 - i32.load offset=20 - i32.const 1 - i32.add - i32.store offset=20 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - local.get $1 - i32.load - local.set $4 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - local.get $5 - local.get $4 - local.get $7 - local.get $1 - i32.load offset=4 - i32.and - i32.const 2 - i32.shl - i32.add - local.tee $4 - i32.load - i32.store offset=8 - local.get $4 - local.get $5 - i32.store + i32.const 0 + i32.const 1744 + i32.const 10 + i32.const 5 + call $~lib/builtins/abort + unreachable end - local.get $2 + local.get $0 i32.const 1 i32.add - local.set $2 + local.set $0 br $for-loop|0 end end - end - global.get $~lib/memory/__stack_pointer - i32.const 16 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $1 - ) - (func $"~lib/map/Map#delete" (param $0 i32) (param $1 i32) - (local $2 i32) - global.get $~lib/memory/__stack_pointer - i32.const 8 - i32.sub - global.set $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - i32.const 3104 - i32.lt_s - if - i32.const 35904 - i32.const 35952 - i32.const 1 - i32.const 1 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - i64.const 0 - i64.store - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store - local.get $0 - local.get $1 - local.get $1 - i32.const -1028477379 - i32.mul - i32.const 374761397 - i32.add - i32.const 17 - i32.rotl - i32.const 668265263 - i32.mul - local.tee $1 - i32.const 15 - i32.shr_u - local.get $1 - i32.xor - i32.const -2048144777 - i32.mul - local.tee $1 - i32.const 13 - i32.shr_u - local.get $1 - i32.xor - i32.const -1028477379 - i32.mul - local.tee $1 - i32.const 16 - i32.shr_u - local.get $1 - i32.xor - call $"~lib/map/Map#find" - local.tee $1 - i32.eqz - if - global.get $~lib/memory/__stack_pointer - i32.const 8 - i32.add - global.set $~lib/memory/__stack_pointer - return - end - local.get $1 - local.get $1 - i32.load offset=8 - i32.const 1 - i32.or - i32.store offset=8 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 - local.get $0 - i32.load offset=20 - i32.const 1 - i32.sub - i32.store offset=20 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store - local.get $0 - i32.load offset=4 - i32.const 1 - i32.shr_u - local.set $1 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store - local.get $1 - i32.const 1 - i32.add - i32.const 4 - local.get $0 - i32.load offset=20 - local.tee $2 - local.get $2 - i32.const 4 - i32.lt_u - select - i32.ge_u - if (result i32) - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store - local.get $0 - i32.load offset=20 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store - local.get $0 - i32.load offset=12 - i32.const 3 - i32.mul - i32.const 4 - i32.div_s - i32.lt_s - else - i32.const 0 - end - if - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store - local.get $0 - local.get $1 - call $"~lib/map/Map#rehash" - end - global.get $~lib/memory/__stack_pointer - i32.const 8 - i32.add - global.set $~lib/memory/__stack_pointer - ) - (func $"std/map/testNumeric" - (local $0 i32) - (local $1 i32) - (local $2 i32) - (local $3 i32) - (local $4 i32) - (local $5 i32) - (local $6 i32) - (local $7 i32) - (local $8 i32) - (local $9 i32) - (local $10 i32) - global.get $~lib/memory/__stack_pointer - i32.const 40 - i32.sub - global.set $~lib/memory/__stack_pointer - block $folding-inner1 - global.get $~lib/memory/__stack_pointer - i32.const 3104 - i32.lt_s - br_if $folding-inner1 - global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.const 40 - memory.fill - global.get $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 12 - i32.sub - global.set $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - i32.const 3104 - i32.lt_s - br_if $folding-inner1 - global.get $~lib/memory/__stack_pointer - i64.const 0 - i64.store - global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.store offset=8 - global.get $~lib/memory/__stack_pointer - i32.const 38 - i32.const 2352 - call $~lib/rt/__newArray - local.tee $4 - i32.store - global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.store offset=4 - global.get $~lib/memory/__stack_pointer - local.get $4 - i32.store offset=8 - local.get $4 - call $"~lib/map/Map#constructor" - local.set $4 - global.get $~lib/memory/__stack_pointer - i32.const 12 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $4 - i32.store - loop $for-loop|0 - local.get $0 - i32.const 100 - i32.lt_u - if - global.get $~lib/memory/__stack_pointer - local.get $4 - i32.store offset=4 - local.get $4 - local.get $0 - call $"~lib/map/Map#has" - if - i32.const 0 - i32.const 1776 - i32.const 7 - i32.const 5 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - local.get $4 - i32.store offset=4 - local.get $4 - local.get $0 - local.get $0 - i32.const 10 - i32.add - call $"~lib/map/Map#set" - global.get $~lib/memory/__stack_pointer - local.get $4 - i32.store offset=4 - local.get $4 - local.get $0 - call $"~lib/map/Map#has" - i32.eqz - if - i32.const 0 - i32.const 1776 - i32.const 9 - i32.const 5 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - local.get $4 - i32.store offset=4 - local.get $4 - local.get $0 - call $"~lib/map/Map#get" - local.get $0 - i32.const 10 - i32.add - i32.ne - if - i32.const 0 - i32.const 1776 - i32.const 10 - i32.const 5 - call $~lib/builtins/abort - unreachable - end - local.get $0 - i32.const 1 - i32.add - local.set $0 - br $for-loop|0 - end - end - global.get $~lib/memory/__stack_pointer - local.get $4 + local.get $3 i32.store offset=4 - local.get $4 + local.get $3 call $"~lib/map/Map#get:size" i32.const 100 i32.ne if i32.const 0 - i32.const 1776 + i32.const 1744 i32.const 12 i32.const 3 call $~lib/builtins/abort @@ -17224,24 +16087,24 @@ i32.lt_u if global.get $~lib/memory/__stack_pointer - local.get $4 + local.get $3 i32.store offset=4 - local.get $4 + local.get $3 local.get $0 call $"~lib/map/Map#has" i32.eqz if i32.const 0 - i32.const 1776 + i32.const 1744 i32.const 16 i32.const 5 call $~lib/builtins/abort unreachable end global.get $~lib/memory/__stack_pointer - local.get $4 + local.get $3 i32.store offset=4 - local.get $4 + local.get $3 local.get $0 call $"~lib/map/Map#get" local.get $0 @@ -17250,40 +16113,40 @@ i32.ne if i32.const 0 - i32.const 1776 + i32.const 1744 i32.const 17 i32.const 5 call $~lib/builtins/abort unreachable end global.get $~lib/memory/__stack_pointer - local.get $4 + local.get $3 i32.store offset=4 - local.get $4 + local.get $3 local.get $0 local.get $0 i32.const 20 i32.add call $"~lib/map/Map#set" global.get $~lib/memory/__stack_pointer - local.get $4 + local.get $3 i32.store offset=4 - local.get $4 + local.get $3 local.get $0 call $"~lib/map/Map#has" i32.eqz if i32.const 0 - i32.const 1776 + i32.const 1744 i32.const 19 i32.const 5 call $~lib/builtins/abort unreachable end global.get $~lib/memory/__stack_pointer - local.get $4 + local.get $3 i32.store offset=4 - local.get $4 + local.get $3 local.get $0 call $"~lib/map/Map#get" local.get $0 @@ -17292,7 +16155,7 @@ i32.ne if i32.const 0 - i32.const 1776 + i32.const 1744 i32.const 20 i32.const 5 call $~lib/builtins/abort @@ -17306,15 +16169,15 @@ end end global.get $~lib/memory/__stack_pointer - local.get $4 + local.get $3 i32.store offset=4 - local.get $4 + local.get $3 call $"~lib/map/Map#get:size" i32.const 100 i32.ne if i32.const 0 - i32.const 1776 + i32.const 1744 i32.const 22 i32.const 3 call $~lib/builtins/abort @@ -17322,38 +16185,38 @@ end global.get $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - local.get $4 + local.get $3 i32.store offset=4 global.get $~lib/memory/__stack_pointer i32.const 8 i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 3104 + i32.const 2496 i32.lt_s br_if $folding-inner1 global.get $~lib/memory/__stack_pointer i64.const 0 i64.store global.get $~lib/memory/__stack_pointer - local.get $4 + local.get $3 i32.store - local.get $4 + local.get $3 i32.load offset=8 - local.set $6 + local.set $5 global.get $~lib/memory/__stack_pointer - local.get $4 + local.get $3 i32.store - local.get $4 + local.get $3 i32.load offset=16 - local.set $7 + local.set $6 global.get $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer i32.const 16 i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 3104 + i32.const 2496 i32.lt_s br_if $folding-inner1 global.get $~lib/memory/__stack_pointer @@ -17366,37 +16229,37 @@ i32.const 16 i32.const 39 call $~lib/rt/itcms/__new - local.tee $3 + local.tee $7 i32.store global.get $~lib/memory/__stack_pointer - local.get $3 + local.get $7 i32.store offset=4 - local.get $3 + local.get $7 i32.const 0 i32.store - local.get $3 + local.get $7 i32.const 0 i32.const 0 call $~lib/rt/itcms/__link global.get $~lib/memory/__stack_pointer - local.get $3 + local.get $7 i32.store offset=4 - local.get $3 + local.get $7 i32.const 0 i32.store offset=4 global.get $~lib/memory/__stack_pointer - local.get $3 + local.get $7 i32.store offset=4 - local.get $3 + local.get $7 i32.const 0 i32.store offset=8 global.get $~lib/memory/__stack_pointer - local.get $3 + local.get $7 i32.store offset=4 - local.get $3 + local.get $7 i32.const 0 i32.store offset=12 - local.get $7 + local.get $6 i32.const 268435455 i32.gt_u if @@ -17409,64 +16272,64 @@ end global.get $~lib/memory/__stack_pointer i32.const 8 - local.get $7 - local.get $7 + local.get $6 + local.get $6 i32.const 8 i32.le_u select i32.const 2 i32.shl - local.tee $8 + local.tee $0 i32.const 1 call $~lib/rt/itcms/__new - local.tee $9 + local.tee $8 i32.store offset=8 global.get $~lib/memory/__stack_pointer - local.get $3 + local.get $7 i32.store offset=4 global.get $~lib/memory/__stack_pointer - local.get $9 + local.get $8 i32.store offset=12 - local.get $3 - local.get $9 + local.get $7 + local.get $8 i32.store - local.get $3 - local.get $9 + local.get $7 + local.get $8 i32.const 0 call $~lib/rt/itcms/__link global.get $~lib/memory/__stack_pointer - local.get $3 + local.get $7 i32.store offset=4 - local.get $3 - local.get $9 + local.get $7 + local.get $8 i32.store offset=4 global.get $~lib/memory/__stack_pointer - local.get $3 + local.get $7 i32.store offset=4 - local.get $3 - local.get $8 + local.get $7 + local.get $0 i32.store offset=8 global.get $~lib/memory/__stack_pointer - local.get $3 + local.get $7 i32.store offset=4 - local.get $3 local.get $7 + local.get $6 i32.store offset=12 global.get $~lib/memory/__stack_pointer i32.const 16 i32.add global.set $~lib/memory/__stack_pointer - local.get $3 + local.get $7 i32.store offset=4 i32.const 0 local.set $0 loop $for-loop|00 - local.get $2 - local.get $7 + local.get $1 + local.get $6 i32.lt_s if - local.get $6 - local.get $2 + local.get $5 + local.get $1 i32.const 12 i32.mul i32.add @@ -17477,9 +16340,9 @@ i32.eqz if global.get $~lib/memory/__stack_pointer - local.get $3 + local.get $7 i32.store - local.get $3 + local.get $7 local.get $0 local.get $8 i32.load @@ -17489,101 +16352,149 @@ i32.add local.set $0 end - local.get $2 + local.get $1 i32.const 1 i32.add - local.set $2 + local.set $1 br $for-loop|00 end end global.get $~lib/memory/__stack_pointer - local.get $3 + local.get $7 i32.store - local.get $3 + local.get $7 local.get $0 call $~lib/array/Array#set:length global.get $~lib/memory/__stack_pointer i32.const 8 i32.add global.set $~lib/memory/__stack_pointer - local.get $3 + local.get $7 i32.store offset=8 global.get $~lib/memory/__stack_pointer - local.get $4 + local.get $3 i32.store offset=4 global.get $~lib/memory/__stack_pointer - local.get $4 + local.get $3 call $"~lib/map/Map#values" - local.tee $2 + local.tee $0 i32.store offset=12 global.get $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 12 + i32.const 16 i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 3104 + i32.const 2496 i32.lt_s br_if $folding-inner1 global.get $~lib/memory/__stack_pointer i64.const 0 i64.store global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.store offset=8 + i64.const 0 + i64.store offset=8 global.get $~lib/memory/__stack_pointer - i32.const 42 - i32.const 2384 - call $~lib/rt/__newArray - local.tee $5 + i32.const 24 + i32.const 40 + call $~lib/rt/itcms/__new + local.tee $1 i32.store global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + i32.const 16 + call $~lib/arraybuffer/ArrayBuffer#constructor + local.set $4 + global.get $~lib/memory/__stack_pointer + local.get $4 + i32.store offset=8 + local.get $1 + local.get $4 + i32.store + local.get $1 + local.get $4 i32.const 0 + call $~lib/rt/itcms/__link + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + local.get $1 + i32.const 3 i32.store offset=4 global.get $~lib/memory/__stack_pointer - local.get $5 + local.get $1 + i32.store offset=4 + i32.const 48 + call $~lib/arraybuffer/ArrayBuffer#constructor + local.set $4 + global.get $~lib/memory/__stack_pointer + local.get $4 i32.store offset=8 - local.get $5 - call $"~lib/map/Map#constructor" - local.set $5 + local.get $1 + local.get $4 + i32.store offset=8 + local.get $1 + local.get $4 + i32.const 0 + call $~lib/rt/itcms/__link global.get $~lib/memory/__stack_pointer - i32.const 12 + local.get $1 + i32.store offset=4 + local.get $1 + i32.const 4 + i32.store offset=12 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + local.get $1 + i32.const 0 + i32.store offset=16 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + local.get $1 + i32.const 0 + i32.store offset=20 + global.get $~lib/memory/__stack_pointer + i32.const 16 i32.add global.set $~lib/memory/__stack_pointer - local.get $5 + local.get $1 i32.store offset=16 global.get $~lib/memory/__stack_pointer - call $"~lib/map/Map#constructor@varargs" - local.tee $6 + i32.const 0 + call $"~lib/map/Map#constructor" + local.tee $4 i32.store offset=20 loop $for-loop|2 global.get $~lib/memory/__stack_pointer - local.get $3 + local.get $7 i32.store offset=4 - local.get $3 + local.get $7 call $"~lib/array/Array<~lib/map/KeyValue>#get:length" - local.get $1 + local.get $2 i32.gt_s if global.get $~lib/memory/__stack_pointer - local.get $3 + local.get $7 i32.store offset=4 global.get $~lib/memory/__stack_pointer i32.const 4 i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 3104 + i32.const 2496 i32.lt_s br_if $folding-inner1 global.get $~lib/memory/__stack_pointer i32.const 0 i32.store global.get $~lib/memory/__stack_pointer - local.get $3 + local.get $7 i32.store - local.get $1 - local.get $3 + local.get $2 + local.get $7 i32.load offset=12 i32.ge_u if @@ -17595,284 +16506,108 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.get $3 + local.get $7 i32.store - local.get $3 + local.get $7 i32.load offset=4 - local.get $1 + local.get $2 i32.const 2 i32.shl i32.add i32.load - local.set $7 + local.set $5 global.get $~lib/memory/__stack_pointer i32.const 4 i32.add global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - local.get $2 + local.get $0 i32.store offset=4 + local.get $0 local.get $2 - local.get $1 call $~lib/array/Array#__get - local.set $8 + local.set $6 global.get $~lib/memory/__stack_pointer - local.get $4 + local.get $3 i32.store offset=4 - local.get $4 - local.get $7 + local.get $3 + local.get $5 call $"~lib/map/Map#has" i32.eqz if i32.const 0 - i32.const 1776 + i32.const 1744 i32.const 32 i32.const 5 call $~lib/builtins/abort unreachable end global.get $~lib/memory/__stack_pointer - local.get $4 + local.get $3 i32.store offset=4 - local.get $4 - local.get $8 + local.get $3 + local.get $6 i32.const 20 i32.sub call $"~lib/map/Map#has" i32.eqz if i32.const 0 - i32.const 1776 + i32.const 1744 i32.const 33 i32.const 5 call $~lib/builtins/abort unreachable end global.get $~lib/memory/__stack_pointer - local.get $5 + local.get $1 i32.store offset=4 + local.get $1 + local.get $5 + local.get $5 + call $"~lib/map/Map#set" global.get $~lib/memory/__stack_pointer - i32.const 12 + local.get $4 + i32.store offset=4 + local.get $4 + local.get $6 + i32.const 20 i32.sub - global.set $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - i32.const 3104 - i32.lt_s - br_if $folding-inner1 - global.get $~lib/memory/__stack_pointer - i64.const 0 - i64.store - global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.store offset=8 - global.get $~lib/memory/__stack_pointer - local.get $5 - i32.store + local.tee $5 local.get $5 - local.get $7 - local.get $7 - i32.const -1028477379 - i32.mul - i32.const 374761397 + call $"~lib/map/Map#set" + local.get $2 + i32.const 1 i32.add - i32.const 17 - i32.rotl - i32.const 668265263 - i32.mul - local.tee $0 - local.get $0 - i32.const 15 - i32.shr_u - i32.xor - i32.const -2048144777 - i32.mul - local.tee $0 - local.get $0 - i32.const 13 - i32.shr_u - i32.xor - i32.const -1028477379 - i32.mul - local.tee $0 - local.get $0 - i32.const 16 - i32.shr_u - i32.xor - local.tee $9 - call $"~lib/map/Map#find" - local.tee $0 - if - local.get $0 - local.get $7 - i32.store offset=4 - else - global.get $~lib/memory/__stack_pointer - local.get $5 - i32.store - local.get $5 - i32.load offset=16 - global.get $~lib/memory/__stack_pointer - local.get $5 - i32.store - local.get $5 - i32.load offset=12 - i32.eq - if - global.get $~lib/memory/__stack_pointer - local.get $5 - i32.store - global.get $~lib/memory/__stack_pointer - local.get $5 - i32.store offset=4 - local.get $5 - i32.load offset=20 - local.set $0 - global.get $~lib/memory/__stack_pointer - local.get $5 - i32.store offset=4 - local.get $5 - local.get $0 - local.get $5 - i32.load offset=12 - i32.const 3 - i32.mul - i32.const 4 - i32.div_s - i32.lt_s - if (result i32) - global.get $~lib/memory/__stack_pointer - local.get $5 - i32.store offset=4 - local.get $5 - i32.load offset=4 - else - global.get $~lib/memory/__stack_pointer - local.get $5 - i32.store offset=4 - local.get $5 - i32.load offset=4 - i32.const 1 - i32.shl - i32.const 1 - i32.or - end - call $"~lib/map/Map#rehash" - end - global.get $~lib/memory/__stack_pointer - local.get $5 - i32.store - global.get $~lib/memory/__stack_pointer - local.get $5 - i32.load offset=8 - local.tee $10 - i32.store offset=8 - global.get $~lib/memory/__stack_pointer - local.get $5 - i32.store - global.get $~lib/memory/__stack_pointer - local.get $5 - i32.store offset=4 - local.get $5 - local.get $5 - i32.load offset=16 - local.tee $0 - i32.const 1 - i32.add - i32.store offset=16 - local.get $10 - local.get $0 - i32.const 12 - i32.mul - i32.add - local.tee $0 - local.get $7 - i32.store - local.get $0 - local.get $7 - i32.store offset=4 - global.get $~lib/memory/__stack_pointer - local.get $5 - i32.store - global.get $~lib/memory/__stack_pointer - local.get $5 - i32.store offset=4 - local.get $5 - local.get $5 - i32.load offset=20 - i32.const 1 - i32.add - i32.store offset=20 - global.get $~lib/memory/__stack_pointer - local.get $5 - i32.store - local.get $5 - i32.load - local.set $7 - global.get $~lib/memory/__stack_pointer - local.get $5 - i32.store - local.get $0 - local.get $7 - local.get $9 - local.get $5 - i32.load offset=4 - i32.and - i32.const 2 - i32.shl - i32.add - local.tee $7 - i32.load - i32.store offset=8 - local.get $7 - local.get $0 - i32.store - end - global.get $~lib/memory/__stack_pointer - i32.const 12 - i32.add - global.set $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - local.get $6 - i32.store offset=4 - local.get $6 - local.get $8 - i32.const 20 - i32.sub - local.tee $0 - local.get $0 - call $"~lib/map/Map#set" - local.get $1 - i32.const 1 - i32.add - local.set $1 + local.set $2 br $for-loop|2 end end global.get $~lib/memory/__stack_pointer - local.get $5 + local.get $1 i32.store offset=4 - local.get $5 + local.get $1 call $"~lib/map/Map#get:size" i32.const 100 i32.ne if i32.const 0 - i32.const 1776 + i32.const 1744 i32.const 37 i32.const 3 call $~lib/builtins/abort unreachable end global.get $~lib/memory/__stack_pointer - local.get $6 + local.get $4 i32.store offset=4 - local.get $6 + local.get $4 call $"~lib/map/Map#get:size" i32.const 100 i32.ne if i32.const 0 - i32.const 1776 + i32.const 1744 i32.const 38 i32.const 3 call $~lib/builtins/abort @@ -17886,24 +16621,24 @@ i32.lt_u if global.get $~lib/memory/__stack_pointer - local.get $4 + local.get $3 i32.store offset=4 - local.get $4 + local.get $3 local.get $0 call $"~lib/map/Map#has" i32.eqz if i32.const 0 - i32.const 1776 + i32.const 1744 i32.const 42 i32.const 5 call $~lib/builtins/abort unreachable end global.get $~lib/memory/__stack_pointer - local.get $4 + local.get $3 i32.store offset=4 - local.get $4 + local.get $3 local.get $0 call $"~lib/map/Map#get" local.get $0 @@ -17912,27 +16647,27 @@ i32.ne if i32.const 0 - i32.const 1776 + i32.const 1744 i32.const 43 i32.const 5 call $~lib/builtins/abort unreachable end global.get $~lib/memory/__stack_pointer - local.get $4 + local.get $3 i32.store offset=4 - local.get $4 + local.get $3 local.get $0 call $"~lib/map/Map#delete" global.get $~lib/memory/__stack_pointer - local.get $4 + local.get $3 i32.store offset=4 - local.get $4 + local.get $3 local.get $0 call $"~lib/map/Map#has" if i32.const 0 - i32.const 1776 + i32.const 1744 i32.const 45 i32.const 5 call $~lib/builtins/abort @@ -17946,15 +16681,15 @@ end end global.get $~lib/memory/__stack_pointer - local.get $4 + local.get $3 i32.store offset=4 - local.get $4 + local.get $3 call $"~lib/map/Map#get:size" i32.const 50 i32.ne if i32.const 0 - i32.const 1776 + i32.const 1744 i32.const 47 i32.const 3 call $~lib/builtins/abort @@ -17968,58 +16703,58 @@ i32.lt_u if global.get $~lib/memory/__stack_pointer - local.get $4 + local.get $3 i32.store offset=4 - local.get $4 + local.get $3 local.get $0 call $"~lib/map/Map#has" if i32.const 0 - i32.const 1776 + i32.const 1744 i32.const 51 i32.const 5 call $~lib/builtins/abort unreachable end global.get $~lib/memory/__stack_pointer - local.get $4 + local.get $3 i32.store offset=4 - local.get $4 + local.get $3 local.get $0 local.get $0 i32.const 10 i32.add call $"~lib/map/Map#set" global.get $~lib/memory/__stack_pointer - local.get $4 + local.get $3 i32.store offset=4 - local.get $4 + local.get $3 local.get $0 call $"~lib/map/Map#has" i32.eqz if i32.const 0 - i32.const 1776 + i32.const 1744 i32.const 53 i32.const 5 call $~lib/builtins/abort unreachable end global.get $~lib/memory/__stack_pointer - local.get $4 + local.get $3 i32.store offset=4 - local.get $4 + local.get $3 local.get $0 call $"~lib/map/Map#delete" global.get $~lib/memory/__stack_pointer - local.get $4 + local.get $3 i32.store offset=4 - local.get $4 + local.get $3 local.get $0 call $"~lib/map/Map#has" if i32.const 0 - i32.const 1776 + i32.const 1744 i32.const 55 i32.const 5 call $~lib/builtins/abort @@ -18033,33 +16768,33 @@ end end global.get $~lib/memory/__stack_pointer - local.get $4 + local.get $3 i32.store offset=4 - local.get $4 + local.get $3 call $"~lib/map/Map#get:size" i32.const 50 i32.ne if i32.const 0 - i32.const 1776 + i32.const 1744 i32.const 57 i32.const 3 call $~lib/builtins/abort unreachable end global.get $~lib/memory/__stack_pointer - local.get $4 + local.get $3 i32.store offset=4 - local.get $4 + local.get $3 call $"~lib/map/Map#clear" global.get $~lib/memory/__stack_pointer - local.get $4 + local.get $3 i32.store offset=4 - local.get $4 + local.get $3 call $"~lib/map/Map#get:size" if i32.const 0 - i32.const 1776 + i32.const 1744 i32.const 61 i32.const 3 call $~lib/builtins/abort @@ -18067,7 +16802,7 @@ end global.get $~lib/memory/__stack_pointer i32.const 38 - i32.const 2416 + i32.const 2064 call $~lib/rt/__newArray local.tee $1 i32.store offset=24 @@ -18087,7 +16822,7 @@ i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 3104 + i32.const 2496 i32.lt_s br_if $folding-inner1 global.get $~lib/memory/__stack_pointer @@ -18169,7 +16904,7 @@ i32.ne if i32.const 0 - i32.const 1776 + i32.const 1744 i32.const 74 i32.const 3 call $~lib/builtins/abort @@ -18191,7 +16926,7 @@ i32.eqz if i32.const 0 - i32.const 1776 + i32.const 1744 i32.const 76 i32.const 5 call $~lib/builtins/abort @@ -18209,7 +16944,7 @@ i32.ne if i32.const 0 - i32.const 1776 + i32.const 1744 i32.const 77 i32.const 5 call $~lib/builtins/abort @@ -18229,7 +16964,7 @@ call $"~lib/map/Map#has" if i32.const 0 - i32.const 1776 + i32.const 1744 i32.const 79 i32.const 5 call $~lib/builtins/abort @@ -18249,7 +16984,7 @@ call $"~lib/map/Map#get:size" if i32.const 0 - i32.const 1776 + i32.const 1744 i32.const 81 i32.const 3 call $~lib/builtins/abort @@ -18261,8 +16996,8 @@ global.set $~lib/memory/__stack_pointer return end - i32.const 35904 - i32.const 35952 + i32.const 35296 + i32.const 35344 i32.const 1 i32.const 1 call $~lib/builtins/abort @@ -18282,11 +17017,11 @@ i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 3104 + i32.const 2496 i32.lt_s if - i32.const 35904 - i32.const 35952 + i32.const 35296 + i32.const 35344 i32.const 1 i32.const 1 call $~lib/builtins/abort @@ -18483,11 +17218,11 @@ i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 3104 + i32.const 2496 i32.lt_s if - i32.const 35904 - i32.const 35952 + i32.const 35296 + i32.const 35344 i32.const 1 i32.const 1 call $~lib/builtins/abort @@ -18558,17 +17293,16 @@ (local $5 i32) (local $6 i32) (local $7 i32) - (local $8 i32) global.get $~lib/memory/__stack_pointer i32.const 16 i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 3104 + i32.const 2496 i32.lt_s if - i32.const 35904 - i32.const 35952 + i32.const 35296 + i32.const 35344 i32.const 1 i32.const 1 call $~lib/builtins/abort @@ -18642,19 +17376,16 @@ local.get $1 i32.const 0 i32.store offset=20 - global.get $~lib/memory/__stack_pointer local.get $0 - i32.store offset=4 - local.get $0 - call $"~lib/array/Array<~lib/map/KeyValue>#get:length" - local.tee $4 - i32.const 0 - i32.gt_s if + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + local.get $0 + call $"~lib/array/Array<~lib/map/KeyValue>#get:length" global.get $~lib/memory/__stack_pointer local.get $1 i32.store offset=4 - local.get $4 local.get $1 i32.load offset=12 i32.ge_s @@ -18662,8 +17393,12 @@ global.get $~lib/memory/__stack_pointer local.get $1 i32.store offset=4 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=8 local.get $1 - local.get $4 + local.get $0 + call $"~lib/array/Array<~lib/map/KeyValue>#get:length" i32.store offset=4 end global.get $~lib/memory/__stack_pointer @@ -18681,9 +17416,13 @@ i32.or call $"~lib/map/Map#rehash" loop $for-loop|0 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + local.get $0 + call $"~lib/array/Array<~lib/map/KeyValue>#get:length" local.get $2 - local.get $4 - i32.lt_s + i32.gt_s if global.get $~lib/memory/__stack_pointer local.get $0 @@ -18691,11 +17430,11 @@ local.get $0 local.get $2 call $"~lib/array/Array<~lib/map/KeyValue>#__get" - local.set $5 + local.set $4 global.get $~lib/memory/__stack_pointer - local.get $5 + local.get $4 i32.store offset=4 - local.get $5 + local.get $4 i64.load local.set $3 global.get $~lib/memory/__stack_pointer @@ -18704,13 +17443,13 @@ local.get $0 local.get $2 call $"~lib/array/Array<~lib/map/KeyValue>#__get" - local.set $5 + local.set $4 global.get $~lib/memory/__stack_pointer - local.get $5 + local.get $4 i32.store offset=4 - local.get $5 + local.get $4 i32.load offset=8 - local.set $6 + local.set $5 global.get $~lib/memory/__stack_pointer local.get $1 i32.store offset=4 @@ -18737,31 +17476,31 @@ i32.rotl i32.const 668265263 i32.mul - local.tee $5 + local.tee $4 i32.const 15 i32.shr_u - local.get $5 + local.get $4 i32.xor i32.const -2048144777 i32.mul - local.tee $5 + local.tee $4 i32.const 13 i32.shr_u - local.get $5 + local.get $4 i32.xor i32.const -1028477379 i32.mul - local.tee $5 + local.tee $4 i32.const 16 i32.shr_u - local.get $5 + local.get $4 i32.xor - local.tee $7 + local.tee $6 call $"~lib/map/Map#find" - local.tee $5 + local.tee $4 if + local.get $4 local.get $5 - local.get $6 i32.store offset=8 else global.get $~lib/memory/__stack_pointer @@ -18770,7 +17509,7 @@ global.get $~lib/memory/__stack_pointer local.get $1 i32.load offset=8 - local.tee $5 + local.tee $4 i32.store offset=12 global.get $~lib/memory/__stack_pointer local.get $1 @@ -18781,20 +17520,20 @@ local.get $1 local.get $1 i32.load offset=16 - local.tee $8 + local.tee $7 i32.const 1 i32.add i32.store offset=16 - local.get $5 - local.get $8 + local.get $4 + local.get $7 i32.const 4 i32.shl i32.add - local.tee $5 + local.tee $4 local.get $3 i64.store + local.get $4 local.get $5 - local.get $6 i32.store offset=8 global.get $~lib/memory/__stack_pointer local.get $1 @@ -18813,24 +17552,24 @@ i32.store offset=4 local.get $1 i32.load - local.set $6 + local.set $5 global.get $~lib/memory/__stack_pointer local.get $1 i32.store offset=4 + local.get $4 local.get $5 local.get $6 - local.get $7 local.get $1 i32.load offset=4 i32.and i32.const 2 i32.shl i32.add - local.tee $6 + local.tee $5 i32.load i32.store offset=12 - local.get $6 local.get $5 + local.get $4 i32.store end local.get $2 @@ -18853,11 +17592,11 @@ i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 3104 + i32.const 2496 i32.lt_s if - i32.const 35904 - i32.const 35952 + i32.const 35296 + i32.const 35344 i32.const 1 i32.const 1 call $~lib/builtins/abort @@ -18928,11 +17667,11 @@ i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 3104 + i32.const 2496 i32.lt_s if - i32.const 35904 - i32.const 35952 + i32.const 35296 + i32.const 35344 i32.const 1 i32.const 1 call $~lib/builtins/abort @@ -19129,11 +17868,11 @@ i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 3104 + i32.const 2496 i32.lt_s if - i32.const 35904 - i32.const 35952 + i32.const 35296 + i32.const 35344 i32.const 1 i32.const 1 call $~lib/builtins/abort @@ -19191,9 +17930,9 @@ local.tee $0 i32.eqz if - i32.const 1824 - i32.const 1888 - i32.const 148 + i32.const 1792 + i32.const 1856 + i32.const 146 i32.const 17 call $~lib/builtins/abort unreachable @@ -19212,11 +17951,11 @@ i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 3104 + i32.const 2496 i32.lt_s if - i32.const 35904 - i32.const 35952 + i32.const 35296 + i32.const 35344 i32.const 1 i32.const 1 call $~lib/builtins/abort @@ -19281,11 +18020,11 @@ i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 3104 + i32.const 2496 i32.lt_s if - i32.const 35904 - i32.const 35952 + i32.const 35296 + i32.const 35344 i32.const 1 i32.const 1 call $~lib/builtins/abort @@ -19321,11 +18060,11 @@ i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 3104 + i32.const 2496 i32.lt_s if - i32.const 35904 - i32.const 35952 + i32.const 35296 + i32.const 35344 i32.const 1 i32.const 1 call $~lib/builtins/abort @@ -19398,307 +18137,631 @@ global.set $~lib/memory/__stack_pointer local.get $5 ) - (func $"~lib/map/Map#rehash" (param $0 i32) (param $1 i32) - (local $2 i32) + (func $"~lib/map/Map#set" (param $0 i32) (param $1 i64) (param $2 i64) (local $3 i32) (local $4 i32) (local $5 i32) - (local $6 i64) + (local $6 i32) (local $7 i32) - (local $8 i32) + (local $8 i64) (local $9 i32) + (local $10 i32) + (local $11 i32) + (local $12 i32) global.get $~lib/memory/__stack_pointer - i32.const 16 + i32.const 12 i32.sub global.set $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - i32.const 3104 - i32.lt_s - if - i32.const 35904 - i32.const 35952 - i32.const 1 - i32.const 1 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - i64.const 0 - i64.store - global.get $~lib/memory/__stack_pointer - i64.const 0 - i64.store offset=8 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.const 1 - i32.add - local.tee $2 - i32.const 2 - i32.shl - call $~lib/arraybuffer/ArrayBuffer#constructor - local.tee $7 - i32.store - global.get $~lib/memory/__stack_pointer - local.get $2 - i32.const 3 - i32.shl - i32.const 3 - i32.div_s - local.tee $5 - i32.const 24 - i32.mul - call $~lib/arraybuffer/ArrayBuffer#constructor - local.tee $3 - i32.store offset=4 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=8 - local.get $0 - i32.load offset=8 - local.set $8 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=8 - local.get $8 - local.get $0 - i32.load offset=16 - i32.const 24 - i32.mul - i32.add - local.set $4 - local.get $3 - local.set $2 - loop $while-continue|0 - local.get $4 - local.get $8 - i32.ne + block $folding-inner0 + global.get $~lib/memory/__stack_pointer + i32.const 2496 + i32.lt_s + br_if $folding-inner0 + global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store offset=8 + local.get $1 + i32.wrap_i64 + i32.const -1028477379 + i32.mul + i32.const 374761401 + i32.add + i32.const 17 + i32.rotl + i32.const 668265263 + i32.mul + local.get $1 + i64.const 32 + i64.shr_u + i32.wrap_i64 + i32.const -1028477379 + i32.mul + i32.add + i32.const 17 + i32.rotl + i32.const 668265263 + i32.mul + local.tee $3 + local.get $3 + i32.const 15 + i32.shr_u + i32.xor + i32.const -2048144777 + i32.mul + local.tee $3 + local.get $3 + i32.const 13 + i32.shr_u + i32.xor + i32.const -1028477379 + i32.mul + local.tee $3 + local.get $3 + i32.const 16 + i32.shr_u + i32.xor + local.set $9 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.sub + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 2496 + i32.lt_s + br_if $folding-inner0 + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + local.get $0 + i32.load + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + local.get $9 + local.get $0 + i32.load offset=4 + i32.and + i32.const 2 + i32.shl + i32.add + i32.load + local.set $3 + block $"__inlined_func$~lib/map/Map#find$29" + loop $while-continue|0 + local.get $3 + if + local.get $3 + i32.load offset=16 + local.tee $4 + i32.const 1 + i32.and + if (result i32) + i32.const 0 + else + local.get $1 + local.get $3 + i64.load + i64.eq + end + if + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + br $"__inlined_func$~lib/map/Map#find$29" + end + local.get $4 + i32.const -2 + i32.and + local.set $3 + br $while-continue|0 + end + end + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + i32.const 0 + local.set $3 + end + local.get $3 if - local.get $8 + local.get $3 + local.get $2 + i64.store offset=8 + else + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + local.get $0 i32.load offset=16 - i32.const 1 - i32.and - i32.eqz + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + local.get $0 + i32.load offset=12 + i32.eq if - local.get $2 - local.get $8 - i64.load - local.tee $6 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + local.get $0 + i32.load offset=20 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + local.get $0 + i32.load offset=12 + i32.const 3 + i32.mul + i32.const 4 + i32.div_s + i32.lt_s + if (result i32) + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + local.get $0 + i32.load offset=4 + else + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + local.get $0 + i32.load offset=4 + i32.const 1 + i32.shl + i32.const 1 + i32.or + end + local.set $5 + global.get $~lib/memory/__stack_pointer + i32.const 16 + i32.sub + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 2496 + i32.lt_s + br_if $folding-inner0 + global.get $~lib/memory/__stack_pointer + i64.const 0 i64.store - local.get $2 - local.get $8 - i64.load offset=8 + global.get $~lib/memory/__stack_pointer + i64.const 0 i64.store offset=8 - local.get $2 - local.get $7 - local.get $1 - local.get $6 - i32.wrap_i64 - i32.const -1028477379 - i32.mul - i32.const 374761401 - i32.add - i32.const 17 - i32.rotl - i32.const 668265263 - i32.mul - local.get $6 - i64.const 32 - i64.shr_u - i32.wrap_i64 - i32.const -1028477379 - i32.mul + global.get $~lib/memory/__stack_pointer + local.get $5 + i32.const 1 i32.add - i32.const 17 - i32.rotl - i32.const 668265263 - i32.mul - local.tee $9 - i32.const 15 - i32.shr_u - local.get $9 - i32.xor - i32.const -2048144777 - i32.mul - local.tee $9 - i32.const 13 - i32.shr_u - local.get $9 - i32.xor - i32.const -1028477379 - i32.mul - local.tee $9 - i32.const 16 - i32.shr_u - local.get $9 - i32.xor - i32.and + local.tee $3 i32.const 2 i32.shl - i32.add - local.tee $9 - i32.load - i32.store offset=16 - local.get $9 - local.get $2 + call $~lib/arraybuffer/ArrayBuffer#constructor + local.tee $10 i32.store - local.get $2 + global.get $~lib/memory/__stack_pointer + local.get $3 + i32.const 3 + i32.shl + i32.const 3 + i32.div_s + local.tee $7 + i32.const 24 + i32.mul + call $~lib/arraybuffer/ArrayBuffer#constructor + local.tee $4 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=8 + local.get $0 + i32.load offset=8 + local.set $11 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=8 + local.get $11 + local.get $0 + i32.load offset=16 i32.const 24 + i32.mul i32.add - local.set $2 + local.set $6 + local.get $4 + local.set $3 + loop $while-continue|00 + local.get $6 + local.get $11 + i32.ne + if + local.get $11 + i32.load offset=16 + i32.const 1 + i32.and + i32.eqz + if + local.get $3 + local.get $11 + i64.load + local.tee $8 + i64.store + local.get $3 + local.get $11 + i64.load offset=8 + i64.store offset=8 + local.get $3 + local.get $10 + local.get $5 + local.get $8 + i32.wrap_i64 + i32.const -1028477379 + i32.mul + i32.const 374761401 + i32.add + i32.const 17 + i32.rotl + i32.const 668265263 + i32.mul + local.get $8 + i64.const 32 + i64.shr_u + i32.wrap_i64 + i32.const -1028477379 + i32.mul + i32.add + i32.const 17 + i32.rotl + i32.const 668265263 + i32.mul + local.tee $12 + local.get $12 + i32.const 15 + i32.shr_u + i32.xor + i32.const -2048144777 + i32.mul + local.tee $12 + local.get $12 + i32.const 13 + i32.shr_u + i32.xor + i32.const -1028477379 + i32.mul + local.tee $12 + local.get $12 + i32.const 16 + i32.shr_u + i32.xor + i32.and + i32.const 2 + i32.shl + i32.add + local.tee $12 + i32.load + i32.store offset=16 + local.get $12 + local.get $3 + i32.store + local.get $3 + i32.const 24 + i32.add + local.set $3 + end + local.get $11 + i32.const 24 + i32.add + local.set $11 + br $while-continue|00 + end + end + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=8 + global.get $~lib/memory/__stack_pointer + local.get $10 + i32.store offset=12 + local.get $0 + local.get $10 + i32.store + local.get $0 + local.get $10 + i32.const 0 + call $~lib/rt/itcms/__link + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=8 + local.get $0 + local.get $5 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=8 + global.get $~lib/memory/__stack_pointer + local.get $4 + i32.store offset=12 + local.get $0 + local.get $4 + i32.store offset=8 + local.get $0 + local.get $4 + i32.const 0 + call $~lib/rt/itcms/__link + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=8 + local.get $0 + local.get $7 + i32.store offset=12 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=8 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=12 + local.get $0 + local.get $0 + i32.load offset=20 + i32.store offset=16 + global.get $~lib/memory/__stack_pointer + i32.const 16 + i32.add + global.set $~lib/memory/__stack_pointer end - local.get $8 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.load offset=8 + local.tee $3 + i32.store offset=8 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + local.get $0 + local.get $0 + i32.load offset=16 + local.tee $4 + i32.const 1 + i32.add + i32.store offset=16 + local.get $3 + local.get $4 i32.const 24 + i32.mul i32.add - local.set $8 - br $while-continue|0 + local.tee $3 + local.get $1 + i64.store + local.get $3 + local.get $2 + i64.store offset=8 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + local.get $0 + local.get $0 + i32.load offset=20 + i32.const 1 + i32.add + i32.store offset=20 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + local.get $0 + i32.load + local.set $4 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + local.get $3 + local.get $4 + local.get $9 + local.get $0 + i32.load offset=4 + i32.and + i32.const 2 + i32.shl + i32.add + local.tee $0 + i32.load + i32.store offset=16 + local.get $0 + local.get $3 + i32.store end + global.get $~lib/memory/__stack_pointer + i32.const 12 + i32.add + global.set $~lib/memory/__stack_pointer + return end + i32.const 35296 + i32.const 35344 + i32.const 1 + i32.const 1 + call $~lib/builtins/abort + unreachable + ) + (func $"~lib/map/Map#delete" (param $0 i32) (param $1 i64) + (local $2 i32) + (local $3 i32) global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=8 - global.get $~lib/memory/__stack_pointer - local.get $7 - i32.store offset=12 - local.get $0 - local.get $7 - i32.store - local.get $0 - local.get $7 - i32.const 0 - call $~lib/rt/itcms/__link + i32.const 8 + i32.sub + global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=8 - local.get $0 - local.get $1 - i32.store offset=4 + i32.const 2496 + i32.lt_s + if + i32.const 35296 + i32.const 35344 + i32.const 1 + i32.const 1 + call $~lib/builtins/abort + unreachable + end global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=8 + i64.const 0 + i64.store global.get $~lib/memory/__stack_pointer - local.get $3 - i32.store offset=12 local.get $0 - local.get $3 - i32.store offset=8 + i32.store local.get $0 - local.get $3 - i32.const 0 - call $~lib/rt/itcms/__link - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=8 - local.get $0 - local.get $5 + local.get $1 + local.get $1 + i32.wrap_i64 + i32.const -1028477379 + i32.mul + i32.const 374761401 + i32.add + i32.const 17 + i32.rotl + i32.const 668265263 + i32.mul + local.get $1 + i64.const 32 + i64.shr_u + i32.wrap_i64 + i32.const -1028477379 + i32.mul + i32.add + i32.const 17 + i32.rotl + i32.const 668265263 + i32.mul + local.tee $2 + i32.const 15 + i32.shr_u + local.get $2 + i32.xor + i32.const -2048144777 + i32.mul + local.tee $2 + i32.const 13 + i32.shr_u + local.get $2 + i32.xor + i32.const -1028477379 + i32.mul + local.tee $2 + i32.const 16 + i32.shr_u + local.get $2 + i32.xor + call $"~lib/map/Map#find" + local.tee $2 + i32.eqz + if + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.add + global.set $~lib/memory/__stack_pointer + return + end + local.get $2 + local.get $2 + i32.load offset=12 + i32.const 1 + i32.or i32.store offset=12 global.get $~lib/memory/__stack_pointer local.get $0 - i32.store offset=8 + i32.store global.get $~lib/memory/__stack_pointer local.get $0 - i32.store offset=12 + i32.store offset=4 local.get $0 local.get $0 i32.load offset=20 - i32.store offset=16 - global.get $~lib/memory/__stack_pointer - i32.const 16 - i32.add - global.set $~lib/memory/__stack_pointer - ) - (func $"~lib/map/Map#find" (param $0 i32) (param $1 i64) (param $2 i32) (result i32) - (local $3 i32) - global.get $~lib/memory/__stack_pointer - i32.const 4 + i32.const 1 i32.sub - global.set $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - i32.const 3104 - i32.lt_s - if - i32.const 35904 - i32.const 35952 - i32.const 1 - i32.const 1 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.store + i32.store offset=20 global.get $~lib/memory/__stack_pointer local.get $0 i32.store local.get $0 - i32.load + i32.load offset=4 + i32.const 1 + i32.shr_u + local.set $2 global.get $~lib/memory/__stack_pointer local.get $0 i32.store local.get $2 - local.get $0 - i32.load offset=4 - i32.and - i32.const 2 - i32.shl + i32.const 1 i32.add - i32.load - local.set $0 - loop $while-continue|0 + i32.const 4 + local.get $0 + i32.load offset=20 + local.tee $3 + local.get $3 + i32.const 4 + i32.lt_u + select + i32.ge_u + if (result i32) + global.get $~lib/memory/__stack_pointer local.get $0 - if - local.get $0 - i32.load offset=16 - local.tee $2 - i32.const 1 - i32.and - if (result i32) - i32.const 0 - else - local.get $1 - local.get $0 - i64.load - i64.eq - end - if - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $0 - return - end - local.get $2 - i32.const -2 - i32.and - local.set $0 - br $while-continue|0 - end + i32.store + local.get $0 + i32.load offset=20 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + local.get $0 + i32.load offset=12 + i32.const 3 + i32.mul + i32.const 4 + i32.div_s + i32.lt_s + else + i32.const 0 + end + if + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + local.get $0 + local.get $2 + call $"~lib/map/Map#rehash" end global.get $~lib/memory/__stack_pointer - i32.const 4 + i32.const 8 i32.add global.set $~lib/memory/__stack_pointer - i32.const 0 ) - (func $"~lib/map/Map#constructor" (param $0 i32) (result i32) + (func $"~lib/map/Map#clear" (param $0 i32) (local $1 i32) - (local $2 i32) - (local $3 i64) - (local $4 i64) - (local $5 i32) - (local $6 i32) - (local $7 i32) - (local $8 i32) global.get $~lib/memory/__stack_pointer - i32.const 16 + i32.const 8 i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 3104 + i32.const 2496 i32.lt_s if - i32.const 35904 - i32.const 35952 + i32.const 35296 + i32.const 35344 i32.const 1 i32.const 1 call $~lib/builtins/abort @@ -19708,837 +18771,686 @@ i64.const 0 i64.store global.get $~lib/memory/__stack_pointer - i64.const 0 - i64.store offset=8 - global.get $~lib/memory/__stack_pointer - i32.const 24 - i32.const 47 - call $~lib/rt/itcms/__new - local.tee $1 + local.get $0 i32.store - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 i32.const 16 call $~lib/arraybuffer/ArrayBuffer#constructor - local.set $5 + local.set $1 global.get $~lib/memory/__stack_pointer - local.get $5 - i32.store offset=8 local.get $1 - local.get $5 + i32.store offset=4 + local.get $0 + local.get $1 i32.store + local.get $0 local.get $1 - local.get $5 i32.const 0 call $~lib/rt/itcms/__link global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - local.get $1 + local.get $0 + i32.store + local.get $0 i32.const 3 i32.store offset=4 global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - i32.const 96 + local.get $0 + i32.store + i32.const 64 call $~lib/arraybuffer/ArrayBuffer#constructor - local.set $5 + local.set $1 global.get $~lib/memory/__stack_pointer - local.get $5 - i32.store offset=8 local.get $1 - local.get $5 + i32.store offset=4 + local.get $0 + local.get $1 i32.store offset=8 + local.get $0 local.get $1 - local.get $5 i32.const 0 call $~lib/rt/itcms/__link global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - local.get $1 + local.get $0 + i32.store + local.get $0 i32.const 4 i32.store offset=12 global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - local.get $1 + local.get $0 + i32.store + local.get $0 i32.const 0 i32.store offset=16 global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - local.get $1 - i32.const 0 - i32.store offset=20 - global.get $~lib/memory/__stack_pointer local.get $0 - i32.store offset=4 + i32.store local.get $0 - call $"~lib/array/Array<~lib/map/KeyValue>#get:length" - local.tee $5 i32.const 0 - i32.gt_s - if - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - local.get $5 - local.get $1 - i32.load offset=12 - i32.ge_s - if - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - local.get $1 - local.get $5 - i32.store offset=4 - end + i32.store offset=20 + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.add + global.set $~lib/memory/__stack_pointer + ) + (func $"std/map/testNumeric" + (local $0 i32) + (local $1 i64) + (local $2 i32) + (local $3 i32) + (local $4 i32) + (local $5 i32) + (local $6 i32) + (local $7 i32) + (local $8 i32) + (local $9 i32) + global.get $~lib/memory/__stack_pointer + i32.const 40 + i32.sub + global.set $~lib/memory/__stack_pointer + block $folding-inner1 global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 + i32.const 2496 + i32.lt_s + br_if $folding-inner1 global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=8 - local.get $1 - local.get $1 - i32.load offset=4 - i32.const 1 - i32.shl - i32.const 1 - i32.or - call $"~lib/map/Map#rehash" + i32.const 0 + i32.const 40 + memory.fill + global.get $~lib/memory/__stack_pointer + i32.const 0 + call $"~lib/map/Map#constructor" + local.tee $5 + i32.store loop $for-loop|0 - local.get $2 - local.get $5 - i32.lt_s + local.get $1 + i64.const 100 + i64.lt_s if global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=8 - local.get $0 - local.get $2 - call $"~lib/array/Array<~lib/map/KeyValue>#__get" - local.set $6 - global.get $~lib/memory/__stack_pointer - local.get $6 + local.get $5 i32.store offset=4 - local.get $6 - i64.load - local.set $3 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=8 - local.get $0 - local.get $2 - call $"~lib/array/Array<~lib/map/KeyValue>#__get" - local.set $6 + local.get $5 + local.get $1 + call $"~lib/map/Map#has" + if + i32.const 0 + i32.const 1744 + i32.const 7 + i32.const 5 + call $~lib/builtins/abort + unreachable + end global.get $~lib/memory/__stack_pointer - local.get $6 + local.get $5 i32.store offset=4 - local.get $6 - i64.load offset=8 - local.set $4 - global.get $~lib/memory/__stack_pointer + local.get $5 local.get $1 - i32.store offset=4 local.get $1 - local.get $3 - local.get $3 i32.wrap_i64 - i32.const -1028477379 - i32.mul - i32.const 374761401 + i32.const 10 i32.add - i32.const 17 - i32.rotl - i32.const 668265263 - i32.mul - local.get $3 - i64.const 32 - i64.shr_u + call $"~lib/map/Map#set" + global.get $~lib/memory/__stack_pointer + local.get $5 + i32.store offset=4 + local.get $5 + local.get $1 + call $"~lib/map/Map#has" + i32.eqz + if + i32.const 0 + i32.const 1744 + i32.const 9 + i32.const 5 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + local.get $5 + i32.store offset=4 + local.get $5 + local.get $1 + call $"~lib/map/Map#get" + local.get $1 i32.wrap_i64 - i32.const -1028477379 - i32.mul + i32.const 10 i32.add - i32.const 17 - i32.rotl - i32.const 668265263 - i32.mul - local.tee $6 - i32.const 15 - i32.shr_u - local.get $6 - i32.xor - i32.const -2048144777 - i32.mul - local.tee $6 - i32.const 13 - i32.shr_u - local.get $6 - i32.xor - i32.const -1028477379 - i32.mul - local.tee $6 - i32.const 16 - i32.shr_u - local.get $6 - i32.xor - local.tee $6 - call $"~lib/map/Map#find" - local.tee $7 + i32.ne if - local.get $7 - local.get $4 - i64.store offset=8 - else - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.load offset=8 - local.tee $7 - i32.store offset=12 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=8 - local.get $1 - local.get $1 - i32.load offset=16 - local.tee $8 - i32.const 1 - i32.add - i32.store offset=16 - local.get $7 - local.get $8 - i32.const 24 - i32.mul - i32.add - local.tee $7 - local.get $3 - i64.store - local.get $7 - local.get $4 - i64.store offset=8 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=8 - local.get $1 - local.get $1 - i32.load offset=20 - i32.const 1 - i32.add - i32.store offset=20 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - local.get $1 - i32.load - local.set $8 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - local.get $7 - local.get $8 - local.get $6 - local.get $1 - i32.load offset=4 - i32.and - i32.const 2 - i32.shl - i32.add - local.tee $6 - i32.load - i32.store offset=16 - local.get $6 - local.get $7 - i32.store + i32.const 0 + i32.const 1744 + i32.const 10 + i32.const 5 + call $~lib/builtins/abort + unreachable end - local.get $2 - i32.const 1 - i32.add - local.set $2 + local.get $1 + i64.const 1 + i64.add + local.set $1 br $for-loop|0 end end - end - global.get $~lib/memory/__stack_pointer - i32.const 16 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $1 - ) - (func $"~lib/map/Map#set" (param $0 i32) (param $1 i64) (param $2 i64) - (local $3 i32) - (local $4 i32) - (local $5 i32) - global.get $~lib/memory/__stack_pointer - i32.const 12 - i32.sub - global.set $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - i32.const 3104 - i32.lt_s - if - i32.const 35904 - i32.const 35952 - i32.const 1 - i32.const 1 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - i64.const 0 - i64.store - global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.store offset=8 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store - local.get $0 - local.get $1 - local.get $1 - i32.wrap_i64 - i32.const -1028477379 - i32.mul - i32.const 374761401 - i32.add - i32.const 17 - i32.rotl - i32.const 668265263 - i32.mul - local.get $1 - i64.const 32 - i64.shr_u - i32.wrap_i64 - i32.const -1028477379 - i32.mul - i32.add - i32.const 17 - i32.rotl - i32.const 668265263 - i32.mul - local.tee $3 - i32.const 15 - i32.shr_u - local.get $3 - i32.xor - i32.const -2048144777 - i32.mul - local.tee $3 - i32.const 13 - i32.shr_u - local.get $3 - i32.xor - i32.const -1028477379 - i32.mul - local.tee $3 - i32.const 16 - i32.shr_u - local.get $3 - i32.xor - local.tee $3 - call $"~lib/map/Map#find" - local.tee $4 - if - local.get $4 - local.get $2 - i64.store offset=8 - else - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store - local.get $0 - i32.load offset=16 global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store - local.get $0 - i32.load offset=12 - i32.eq + local.get $5 + i32.store offset=4 + local.get $5 + call $"~lib/map/Map#get:size" + i32.const 100 + i32.ne if - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 - i32.load offset=20 - local.set $4 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 - local.get $4 - local.get $0 - i32.load offset=12 + i32.const 0 + i32.const 1744 + i32.const 12 i32.const 3 - i32.mul - i32.const 4 - i32.div_s - i32.lt_s - if (result i32) + call $~lib/builtins/abort + unreachable + end + i64.const 0 + local.set $1 + loop $for-loop|1 + local.get $1 + i64.const 100 + i64.lt_s + if global.get $~lib/memory/__stack_pointer - local.get $0 + local.get $5 i32.store offset=4 - local.get $0 - i32.load offset=4 - else + local.get $5 + local.get $1 + call $"~lib/map/Map#has" + i32.eqz + if + i32.const 0 + i32.const 1744 + i32.const 16 + i32.const 5 + call $~lib/builtins/abort + unreachable + end global.get $~lib/memory/__stack_pointer - local.get $0 + local.get $5 i32.store offset=4 - local.get $0 - i32.load offset=4 - i32.const 1 - i32.shl - i32.const 1 - i32.or + local.get $5 + local.get $1 + call $"~lib/map/Map#get" + local.get $1 + i32.wrap_i64 + i32.const 10 + i32.add + i32.ne + if + i32.const 0 + i32.const 1744 + i32.const 17 + i32.const 5 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + local.get $5 + i32.store offset=4 + local.get $5 + local.get $1 + local.get $1 + i32.wrap_i64 + i32.const 20 + i32.add + call $"~lib/map/Map#set" + global.get $~lib/memory/__stack_pointer + local.get $5 + i32.store offset=4 + local.get $5 + local.get $1 + call $"~lib/map/Map#has" + i32.eqz + if + i32.const 0 + i32.const 1744 + i32.const 19 + i32.const 5 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + local.get $5 + i32.store offset=4 + local.get $5 + local.get $1 + call $"~lib/map/Map#get" + local.get $1 + i32.wrap_i64 + i32.const 20 + i32.add + i32.ne + if + i32.const 0 + i32.const 1744 + i32.const 20 + i32.const 5 + call $~lib/builtins/abort + unreachable + end + local.get $1 + i64.const 1 + i64.add + local.set $1 + br $for-loop|1 end - call $"~lib/map/Map#rehash" end global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.load offset=8 - local.tee $4 - i32.store offset=8 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store - global.get $~lib/memory/__stack_pointer - local.get $0 + local.get $5 i32.store offset=4 - local.get $0 - local.get $0 - i32.load offset=16 - local.tee $5 - i32.const 1 - i32.add - i32.store offset=16 - local.get $4 local.get $5 - i32.const 24 - i32.mul - i32.add - local.tee $4 - local.get $1 - i64.store - local.get $4 - local.get $2 - i64.store offset=8 + call $"~lib/map/Map#get:size" + i32.const 100 + i32.ne + if + i32.const 0 + i32.const 1744 + i32.const 22 + i32.const 3 + call $~lib/builtins/abort + unreachable + end global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store global.get $~lib/memory/__stack_pointer - local.get $0 + local.get $5 i32.store offset=4 - local.get $0 - local.get $0 - i32.load offset=20 - i32.const 1 - i32.add - i32.store offset=20 global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store - local.get $0 - i32.load - local.set $5 + i32.const 8 + i32.sub + global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store - local.get $4 - local.get $5 - local.get $3 - local.get $0 - i32.load offset=4 - i32.and - i32.const 2 - i32.shl - i32.add - local.tee $0 - i32.load - i32.store offset=16 - local.get $0 - local.get $4 + i32.const 2496 + i32.lt_s + br_if $folding-inner1 + global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store + global.get $~lib/memory/__stack_pointer + local.get $5 i32.store - end - global.get $~lib/memory/__stack_pointer - i32.const 12 - i32.add - global.set $~lib/memory/__stack_pointer - ) - (func $"~lib/map/Map#delete" (param $0 i32) (param $1 i64) - (local $2 i32) - (local $3 i32) - global.get $~lib/memory/__stack_pointer - i32.const 8 - i32.sub - global.set $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - i32.const 3104 - i32.lt_s - if - i32.const 35904 - i32.const 35952 - i32.const 1 - i32.const 1 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - i64.const 0 - i64.store - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store - local.get $0 - local.get $1 - local.get $1 - i32.wrap_i64 - i32.const -1028477379 - i32.mul - i32.const 374761401 - i32.add - i32.const 17 - i32.rotl - i32.const 668265263 - i32.mul - local.get $1 - i64.const 32 - i64.shr_u - i32.wrap_i64 - i32.const -1028477379 - i32.mul - i32.add - i32.const 17 - i32.rotl - i32.const 668265263 - i32.mul - local.tee $2 - i32.const 15 - i32.shr_u - local.get $2 - i32.xor - i32.const -2048144777 - i32.mul - local.tee $2 - i32.const 13 - i32.shr_u - local.get $2 - i32.xor - i32.const -1028477379 - i32.mul - local.tee $2 - i32.const 16 - i32.shr_u - local.get $2 - i32.xor - call $"~lib/map/Map#find" - local.tee $2 - i32.eqz - if + local.get $5 + i32.load offset=8 + local.set $7 global.get $~lib/memory/__stack_pointer - i32.const 8 - i32.add + local.get $5 + i32.store + local.get $5 + i32.load offset=16 + local.set $8 + global.get $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 16 + i32.sub global.set $~lib/memory/__stack_pointer - return - end - local.get $2 - local.get $2 - i32.load offset=12 - i32.const 1 - i32.or - i32.store offset=12 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 - local.get $0 - i32.load offset=20 - i32.const 1 - i32.sub - i32.store offset=20 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store - local.get $0 - i32.load offset=4 - i32.const 1 - i32.shr_u - local.set $2 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store - local.get $2 - i32.const 1 - i32.add - i32.const 4 - local.get $0 - i32.load offset=20 - local.tee $3 - local.get $3 - i32.const 4 - i32.lt_u - select - i32.ge_u - if (result i32) global.get $~lib/memory/__stack_pointer - local.get $0 + i32.const 2496 + i32.lt_s + br_if $folding-inner1 + global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store + global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store offset=8 + global.get $~lib/memory/__stack_pointer + i32.const 16 + i32.const 46 + call $~lib/rt/itcms/__new + local.tee $3 i32.store - local.get $0 - i32.load offset=20 global.get $~lib/memory/__stack_pointer - local.get $0 + local.get $3 + i32.store offset=4 + local.get $3 + i32.const 0 i32.store - local.get $0 - i32.load offset=12 - i32.const 3 - i32.mul - i32.const 4 - i32.div_s - i32.lt_s - else + local.get $3 i32.const 0 - end - if + i32.const 0 + call $~lib/rt/itcms/__link global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store - local.get $0 - local.get $2 - call $"~lib/map/Map#rehash" - end - global.get $~lib/memory/__stack_pointer - i32.const 8 - i32.add - global.set $~lib/memory/__stack_pointer - ) - (func $"~lib/map/Map#clear" (param $0 i32) - (local $1 i32) - global.get $~lib/memory/__stack_pointer - i32.const 8 - i32.sub - global.set $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - i32.const 3104 - i32.lt_s - if - i32.const 35904 - i32.const 35952 - i32.const 1 + local.get $3 + i32.store offset=4 + local.get $3 + i32.const 0 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + local.get $3 + i32.store offset=4 + local.get $3 + i32.const 0 + i32.store offset=8 + global.get $~lib/memory/__stack_pointer + local.get $3 + i32.store offset=4 + local.get $3 + i32.const 0 + i32.store offset=12 + local.get $8 + i32.const 134217727 + i32.gt_u + if + i32.const 1056 + i32.const 1568 + i32.const 70 + i32.const 60 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + i32.const 8 + local.get $8 + local.get $8 + i32.const 8 + i32.le_u + select + i32.const 3 + i32.shl + local.tee $9 i32.const 1 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - i64.const 0 - i64.store - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store - i32.const 16 - call $~lib/arraybuffer/ArrayBuffer#constructor - local.set $1 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - local.get $0 - local.get $1 - i32.store - local.get $0 - local.get $1 - i32.const 0 - call $~lib/rt/itcms/__link - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store - local.get $0 - i32.const 3 - i32.store offset=4 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store - i32.const 64 - call $~lib/arraybuffer/ArrayBuffer#constructor - local.set $1 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - local.get $0 - local.get $1 - i32.store offset=8 - local.get $0 - local.get $1 - i32.const 0 - call $~lib/rt/itcms/__link - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store - local.get $0 - i32.const 4 - i32.store offset=12 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store - local.get $0 - i32.const 0 - i32.store offset=16 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store - local.get $0 - i32.const 0 - i32.store offset=20 - global.get $~lib/memory/__stack_pointer - i32.const 8 - i32.add - global.set $~lib/memory/__stack_pointer - ) - (func $"std/map/testNumeric" - (local $0 i32) - (local $1 i64) - (local $2 i32) - (local $3 i32) - (local $4 i32) - (local $5 i32) - (local $6 i32) - (local $7 i32) - (local $8 i32) - (local $9 i32) - global.get $~lib/memory/__stack_pointer - i32.const 40 - i32.sub - global.set $~lib/memory/__stack_pointer - block $folding-inner1 + call $~lib/rt/itcms/__new + local.tee $4 + i32.store offset=8 global.get $~lib/memory/__stack_pointer - i32.const 3104 - i32.lt_s - br_if $folding-inner1 + local.get $3 + i32.store offset=4 global.get $~lib/memory/__stack_pointer + local.get $4 + i32.store offset=12 + local.get $3 + local.get $4 + i32.store + local.get $3 + local.get $4 i32.const 0 - i32.const 40 - memory.fill + call $~lib/rt/itcms/__link global.get $~lib/memory/__stack_pointer + local.get $3 + i32.store offset=4 + local.get $3 + local.get $4 + i32.store offset=4 global.get $~lib/memory/__stack_pointer - i32.const 12 + local.get $3 + i32.store offset=4 + local.get $3 + local.get $9 + i32.store offset=8 + global.get $~lib/memory/__stack_pointer + local.get $3 + i32.store offset=4 + local.get $3 + local.get $8 + i32.store offset=12 + global.get $~lib/memory/__stack_pointer + i32.const 16 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $3 + i32.store offset=4 + loop $for-loop|00 + local.get $2 + local.get $8 + i32.lt_s + if + local.get $7 + local.get $2 + i32.const 4 + i32.shl + i32.add + local.tee $4 + i32.load offset=12 + i32.const 1 + i32.and + i32.eqz + if + global.get $~lib/memory/__stack_pointer + local.get $3 + i32.store + local.get $3 + local.get $0 + local.get $4 + i64.load + call $~lib/array/Array#__set + local.get $0 + i32.const 1 + i32.add + local.set $0 + end + local.get $2 + i32.const 1 + i32.add + local.set $2 + br $for-loop|00 + end + end + global.get $~lib/memory/__stack_pointer + local.get $3 + i32.store + local.get $3 + local.get $0 + call $~lib/array/Array#set:length + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $3 + i32.store offset=8 + global.get $~lib/memory/__stack_pointer + local.get $5 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + local.get $5 + call $"~lib/map/Map#values" + local.tee $0 + i32.store offset=12 + global.get $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 16 i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 3104 + i32.const 2496 i32.lt_s br_if $folding-inner1 global.get $~lib/memory/__stack_pointer i64.const 0 i64.store global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.store offset=8 + i64.const 0 + i64.store offset=8 global.get $~lib/memory/__stack_pointer - i32.const 45 - i32.const 2448 - call $~lib/rt/__newArray + i32.const 24 + i32.const 47 + call $~lib/rt/itcms/__new local.tee $4 i32.store global.get $~lib/memory/__stack_pointer + local.get $4 + i32.store offset=4 + i32.const 16 + call $~lib/arraybuffer/ArrayBuffer#constructor + local.set $2 + global.get $~lib/memory/__stack_pointer + local.get $2 + i32.store offset=8 + local.get $4 + local.get $2 + i32.store + local.get $4 + local.get $2 i32.const 0 + call $~lib/rt/itcms/__link + global.get $~lib/memory/__stack_pointer + local.get $4 + i32.store offset=4 + local.get $4 + i32.const 3 i32.store offset=4 global.get $~lib/memory/__stack_pointer local.get $4 + i32.store offset=4 + i32.const 96 + call $~lib/arraybuffer/ArrayBuffer#constructor + local.set $2 + global.get $~lib/memory/__stack_pointer + local.get $2 i32.store offset=8 local.get $4 - call $"~lib/map/Map#constructor" - local.set $4 + local.get $2 + i32.store offset=8 + local.get $4 + local.get $2 + i32.const 0 + call $~lib/rt/itcms/__link global.get $~lib/memory/__stack_pointer - i32.const 12 + local.get $4 + i32.store offset=4 + local.get $4 + i32.const 4 + i32.store offset=12 + global.get $~lib/memory/__stack_pointer + local.get $4 + i32.store offset=4 + local.get $4 + i32.const 0 + i32.store offset=16 + global.get $~lib/memory/__stack_pointer + local.get $4 + i32.store offset=4 + local.get $4 + i32.const 0 + i32.store offset=20 + global.get $~lib/memory/__stack_pointer + i32.const 16 i32.add global.set $~lib/memory/__stack_pointer local.get $4 - i32.store - loop $for-loop|0 - local.get $1 - i64.const 100 - i64.lt_s + i32.store offset=16 + global.get $~lib/memory/__stack_pointer + i32.const 0 + call $"~lib/map/Map#constructor" + local.tee $6 + i32.store offset=20 + i32.const 0 + local.set $2 + loop $for-loop|2 + global.get $~lib/memory/__stack_pointer + local.get $3 + i32.store offset=4 + local.get $3 + call $"~lib/array/Array<~lib/map/KeyValue>#get:length" + local.get $2 + i32.gt_s if global.get $~lib/memory/__stack_pointer - local.get $4 + local.get $3 i32.store offset=4 - local.get $4 - local.get $1 - call $"~lib/map/Map#has" - if - i32.const 0 - i32.const 1776 - i32.const 7 - i32.const 5 - call $~lib/builtins/abort + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.sub + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 2496 + i32.lt_s + br_if $folding-inner1 + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store + global.get $~lib/memory/__stack_pointer + local.get $3 + i32.store + local.get $2 + local.get $3 + i32.load offset=12 + i32.ge_u + if + i32.const 1360 + i32.const 1568 + i32.const 114 + i32.const 42 + call $~lib/builtins/abort unreachable end global.get $~lib/memory/__stack_pointer - local.get $4 - i32.store offset=4 - local.get $4 - local.get $1 - local.get $1 - i32.wrap_i64 - i32.const 10 + local.get $3 + i32.store + local.get $3 + i32.load offset=4 + local.get $2 + i32.const 3 + i32.shl i32.add - call $"~lib/map/Map#set" + i64.load + local.set $1 global.get $~lib/memory/__stack_pointer - local.get $4 + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + local.get $0 i32.store offset=4 - local.get $4 + local.get $0 + local.get $2 + call $~lib/array/Array#__get + local.set $7 + global.get $~lib/memory/__stack_pointer + local.get $5 + i32.store offset=4 + local.get $5 local.get $1 call $"~lib/map/Map#has" i32.eqz if i32.const 0 - i32.const 1776 - i32.const 9 + i32.const 1744 + i32.const 32 i32.const 5 call $~lib/builtins/abort unreachable end global.get $~lib/memory/__stack_pointer - local.get $4 + local.get $5 i32.store offset=4 - local.get $4 - local.get $1 - call $"~lib/map/Map#get" - local.get $1 - i32.wrap_i64 - i32.const 10 - i32.add - i32.ne + local.get $5 + local.get $7 + i32.const 20 + i32.sub + i64.extend_i32_s + call $"~lib/map/Map#has" + i32.eqz if i32.const 0 - i32.const 1776 - i32.const 10 + i32.const 1744 + i32.const 33 i32.const 5 call $~lib/builtins/abort unreachable end + global.get $~lib/memory/__stack_pointer + local.get $4 + i32.store offset=4 + local.get $4 local.get $1 - i64.const 1 - i64.add - local.set $1 - br $for-loop|0 + local.get $1 + call $"~lib/map/Map#set" + global.get $~lib/memory/__stack_pointer + local.get $6 + i32.store offset=4 + local.get $6 + local.get $7 + i32.const 20 + i32.sub + local.tee $7 + local.get $7 + call $"~lib/map/Map#set" + local.get $2 + i32.const 1 + i32.add + local.set $2 + br $for-loop|2 end end global.get $~lib/memory/__stack_pointer @@ -20550,93 +19462,172 @@ i32.ne if i32.const 0 - i32.const 1776 - i32.const 12 + i32.const 1744 + i32.const 37 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + local.get $6 + i32.store offset=4 + local.get $6 + call $"~lib/map/Map#get:size" + i32.const 100 + i32.ne + if + i32.const 0 + i32.const 1744 + i32.const 38 i32.const 3 call $~lib/builtins/abort unreachable end i64.const 0 local.set $1 - loop $for-loop|1 + loop $for-loop|3 local.get $1 - i64.const 100 + i64.const 50 i64.lt_s if global.get $~lib/memory/__stack_pointer - local.get $4 + local.get $5 i32.store offset=4 - local.get $4 + local.get $5 local.get $1 call $"~lib/map/Map#has" i32.eqz if i32.const 0 - i32.const 1776 - i32.const 16 + i32.const 1744 + i32.const 42 i32.const 5 call $~lib/builtins/abort unreachable end global.get $~lib/memory/__stack_pointer - local.get $4 + local.get $5 i32.store offset=4 - local.get $4 + local.get $5 local.get $1 call $"~lib/map/Map#get" local.get $1 i32.wrap_i64 - i32.const 10 + i32.const 20 i32.add i32.ne if i32.const 0 - i32.const 1776 - i32.const 17 + i32.const 1744 + i32.const 43 i32.const 5 call $~lib/builtins/abort unreachable end global.get $~lib/memory/__stack_pointer - local.get $4 + local.get $5 i32.store offset=4 - local.get $4 + local.get $5 + local.get $1 + call $"~lib/map/Map#delete" + global.get $~lib/memory/__stack_pointer + local.get $5 + i32.store offset=4 + local.get $5 + local.get $1 + call $"~lib/map/Map#has" + if + i32.const 0 + i32.const 1744 + i32.const 45 + i32.const 5 + call $~lib/builtins/abort + unreachable + end + local.get $1 + i64.const 1 + i64.add + local.set $1 + br $for-loop|3 + end + end + global.get $~lib/memory/__stack_pointer + local.get $5 + i32.store offset=4 + local.get $5 + call $"~lib/map/Map#get:size" + i32.const 50 + i32.ne + if + i32.const 0 + i32.const 1744 + i32.const 47 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + i64.const 0 + local.set $1 + loop $for-loop|4 + local.get $1 + i64.const 50 + i64.lt_s + if + global.get $~lib/memory/__stack_pointer + local.get $5 + i32.store offset=4 + local.get $5 + local.get $1 + call $"~lib/map/Map#has" + if + i32.const 0 + i32.const 1744 + i32.const 51 + i32.const 5 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + local.get $5 + i32.store offset=4 + local.get $5 local.get $1 local.get $1 i32.wrap_i64 - i32.const 20 + i32.const 10 i32.add call $"~lib/map/Map#set" global.get $~lib/memory/__stack_pointer - local.get $4 + local.get $5 i32.store offset=4 - local.get $4 + local.get $5 local.get $1 call $"~lib/map/Map#has" i32.eqz if i32.const 0 - i32.const 1776 - i32.const 19 + i32.const 1744 + i32.const 53 i32.const 5 call $~lib/builtins/abort unreachable end global.get $~lib/memory/__stack_pointer - local.get $4 + local.get $5 i32.store offset=4 - local.get $4 + local.get $5 local.get $1 - call $"~lib/map/Map#get" + call $"~lib/map/Map#delete" + global.get $~lib/memory/__stack_pointer + local.get $5 + i32.store offset=4 + local.get $5 local.get $1 - i32.wrap_i64 - i32.const 20 - i32.add - i32.ne + call $"~lib/map/Map#has" if i32.const 0 - i32.const 1776 - i32.const 20 + i32.const 1744 + i32.const 55 i32.const 5 call $~lib/builtins/abort unreachable @@ -20645,1739 +19636,248 @@ i64.const 1 i64.add local.set $1 - br $for-loop|1 + br $for-loop|4 end end global.get $~lib/memory/__stack_pointer - local.get $4 + local.get $5 i32.store offset=4 - local.get $4 + local.get $5 call $"~lib/map/Map#get:size" - i32.const 100 - i32.ne - if - i32.const 0 - i32.const 1776 - i32.const 22 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - local.get $4 - i32.store offset=4 - global.get $~lib/memory/__stack_pointer - i32.const 8 - i32.sub - global.set $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - i32.const 3104 - i32.lt_s - br_if $folding-inner1 - global.get $~lib/memory/__stack_pointer - i64.const 0 - i64.store - global.get $~lib/memory/__stack_pointer - local.get $4 - i32.store - local.get $4 - i32.load offset=8 - local.set $6 - global.get $~lib/memory/__stack_pointer - local.get $4 - i32.store - local.get $4 - i32.load offset=16 - local.set $7 - global.get $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - i32.const 16 - i32.sub - global.set $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - i32.const 3104 - i32.lt_s - br_if $folding-inner1 - global.get $~lib/memory/__stack_pointer - i64.const 0 - i64.store - global.get $~lib/memory/__stack_pointer - i64.const 0 - i64.store offset=8 - global.get $~lib/memory/__stack_pointer - i32.const 16 - i32.const 46 - call $~lib/rt/itcms/__new - local.tee $8 - i32.store - global.get $~lib/memory/__stack_pointer - local.get $8 - i32.store offset=4 - local.get $8 - i32.const 0 - i32.store - local.get $8 - i32.const 0 - i32.const 0 - call $~lib/rt/itcms/__link - global.get $~lib/memory/__stack_pointer - local.get $8 - i32.store offset=4 - local.get $8 - i32.const 0 - i32.store offset=4 - global.get $~lib/memory/__stack_pointer - local.get $8 - i32.store offset=4 - local.get $8 - i32.const 0 - i32.store offset=8 - global.get $~lib/memory/__stack_pointer - local.get $8 - i32.store offset=4 - local.get $8 - i32.const 0 - i32.store offset=12 - local.get $7 - i32.const 134217727 - i32.gt_u - if - i32.const 1056 - i32.const 1568 - i32.const 70 - i32.const 60 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - i32.const 8 - local.get $7 - local.get $7 - i32.const 8 - i32.le_u - select - i32.const 3 - i32.shl - local.tee $9 - i32.const 1 - call $~lib/rt/itcms/__new - local.tee $3 - i32.store offset=8 - global.get $~lib/memory/__stack_pointer - local.get $8 - i32.store offset=4 - global.get $~lib/memory/__stack_pointer - local.get $3 - i32.store offset=12 - local.get $8 - local.get $3 - i32.store - local.get $8 - local.get $3 - i32.const 0 - call $~lib/rt/itcms/__link - global.get $~lib/memory/__stack_pointer - local.get $8 - i32.store offset=4 - local.get $8 - local.get $3 - i32.store offset=4 - global.get $~lib/memory/__stack_pointer - local.get $8 - i32.store offset=4 - local.get $8 - local.get $9 - i32.store offset=8 - global.get $~lib/memory/__stack_pointer - local.get $8 - i32.store offset=4 - local.get $8 - local.get $7 - i32.store offset=12 - global.get $~lib/memory/__stack_pointer - i32.const 16 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $8 - i32.store offset=4 - loop $for-loop|00 - local.get $2 - local.get $7 - i32.lt_s - if - local.get $6 - local.get $2 - i32.const 4 - i32.shl - i32.add - local.tee $3 - i32.load offset=12 - i32.const 1 - i32.and - i32.eqz - if - global.get $~lib/memory/__stack_pointer - local.get $8 - i32.store - local.get $8 - local.get $0 - local.get $3 - i64.load - call $~lib/array/Array#__set - local.get $0 - i32.const 1 - i32.add - local.set $0 - end - local.get $2 - i32.const 1 - i32.add - local.set $2 - br $for-loop|00 - end - end - global.get $~lib/memory/__stack_pointer - local.get $8 - i32.store - local.get $8 - local.get $0 - call $~lib/array/Array#set:length - global.get $~lib/memory/__stack_pointer - i32.const 8 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $8 - i32.store offset=8 - global.get $~lib/memory/__stack_pointer - local.get $4 - i32.store offset=4 - global.get $~lib/memory/__stack_pointer - local.get $4 - call $"~lib/map/Map#values" - local.tee $0 - i32.store offset=12 - global.get $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - i32.const 12 - i32.sub - global.set $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - i32.const 3104 - i32.lt_s - br_if $folding-inner1 - global.get $~lib/memory/__stack_pointer - i64.const 0 - i64.store - global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.store offset=8 - global.get $~lib/memory/__stack_pointer - i32.const 49 - i32.const 2480 - call $~lib/rt/__newArray - local.tee $3 - i32.store - global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.store offset=4 - global.get $~lib/memory/__stack_pointer - local.get $3 - i32.store offset=8 - local.get $3 - call $"~lib/map/Map#constructor" - local.set $3 - global.get $~lib/memory/__stack_pointer - i32.const 12 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $3 - i32.store offset=16 - global.get $~lib/memory/__stack_pointer - call $"~lib/map/Map#constructor@varargs" - local.tee $5 - i32.store offset=20 - i32.const 0 - local.set $2 - loop $for-loop|2 - global.get $~lib/memory/__stack_pointer - local.get $8 - i32.store offset=4 - local.get $8 - call $"~lib/array/Array<~lib/map/KeyValue>#get:length" - local.get $2 - i32.gt_s - if - global.get $~lib/memory/__stack_pointer - local.get $8 - i32.store offset=4 - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.sub - global.set $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - i32.const 3104 - i32.lt_s - br_if $folding-inner1 - global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.store - global.get $~lib/memory/__stack_pointer - local.get $8 - i32.store - local.get $2 - local.get $8 - i32.load offset=12 - i32.ge_u - if - i32.const 1360 - i32.const 1568 - i32.const 114 - i32.const 42 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - local.get $8 - i32.store - local.get $8 - i32.load offset=4 - local.get $2 - i32.const 3 - i32.shl - i32.add - i64.load - local.set $1 - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.add - global.set $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 - local.get $2 - call $~lib/array/Array#__get - local.set $6 - global.get $~lib/memory/__stack_pointer - local.get $4 - i32.store offset=4 - local.get $4 - local.get $1 - call $"~lib/map/Map#has" - i32.eqz - if - i32.const 0 - i32.const 1776 - i32.const 32 - i32.const 5 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - local.get $4 - i32.store offset=4 - local.get $4 - local.get $6 - i32.const 20 - i32.sub - i64.extend_i32_s - call $"~lib/map/Map#has" - i32.eqz - if - i32.const 0 - i32.const 1776 - i32.const 33 - i32.const 5 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - local.get $3 - i32.store offset=4 - local.get $3 - local.get $1 - local.get $1 - call $"~lib/map/Map#set" - global.get $~lib/memory/__stack_pointer - local.get $5 - i32.store offset=4 - local.get $5 - local.get $6 - i32.const 20 - i32.sub - local.tee $6 - local.get $6 - call $"~lib/map/Map#set" - local.get $2 - i32.const 1 - i32.add - local.set $2 - br $for-loop|2 - end - end - global.get $~lib/memory/__stack_pointer - local.get $3 - i32.store offset=4 - local.get $3 - call $"~lib/map/Map#get:size" - i32.const 100 - i32.ne - if - i32.const 0 - i32.const 1776 - i32.const 37 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - local.get $5 - i32.store offset=4 - local.get $5 - call $"~lib/map/Map#get:size" - i32.const 100 - i32.ne - if - i32.const 0 - i32.const 1776 - i32.const 38 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - i64.const 0 - local.set $1 - loop $for-loop|3 - local.get $1 - i64.const 50 - i64.lt_s - if - global.get $~lib/memory/__stack_pointer - local.get $4 - i32.store offset=4 - local.get $4 - local.get $1 - call $"~lib/map/Map#has" - i32.eqz - if - i32.const 0 - i32.const 1776 - i32.const 42 - i32.const 5 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - local.get $4 - i32.store offset=4 - local.get $4 - local.get $1 - call $"~lib/map/Map#get" - local.get $1 - i32.wrap_i64 - i32.const 20 - i32.add - i32.ne - if - i32.const 0 - i32.const 1776 - i32.const 43 - i32.const 5 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - local.get $4 - i32.store offset=4 - local.get $4 - local.get $1 - call $"~lib/map/Map#delete" - global.get $~lib/memory/__stack_pointer - local.get $4 - i32.store offset=4 - local.get $4 - local.get $1 - call $"~lib/map/Map#has" - if - i32.const 0 - i32.const 1776 - i32.const 45 - i32.const 5 - call $~lib/builtins/abort - unreachable - end - local.get $1 - i64.const 1 - i64.add - local.set $1 - br $for-loop|3 - end - end - global.get $~lib/memory/__stack_pointer - local.get $4 - i32.store offset=4 - local.get $4 - call $"~lib/map/Map#get:size" - i32.const 50 - i32.ne - if - i32.const 0 - i32.const 1776 - i32.const 47 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - i64.const 0 - local.set $1 - loop $for-loop|4 - local.get $1 - i64.const 50 - i64.lt_s - if - global.get $~lib/memory/__stack_pointer - local.get $4 - i32.store offset=4 - local.get $4 - local.get $1 - call $"~lib/map/Map#has" - if - i32.const 0 - i32.const 1776 - i32.const 51 - i32.const 5 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - local.get $4 - i32.store offset=4 - local.get $4 - local.get $1 - local.get $1 - i32.wrap_i64 - i32.const 10 - i32.add - call $"~lib/map/Map#set" - global.get $~lib/memory/__stack_pointer - local.get $4 - i32.store offset=4 - local.get $4 - local.get $1 - call $"~lib/map/Map#has" - i32.eqz - if - i32.const 0 - i32.const 1776 - i32.const 53 - i32.const 5 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - local.get $4 - i32.store offset=4 - local.get $4 - local.get $1 - call $"~lib/map/Map#delete" - global.get $~lib/memory/__stack_pointer - local.get $4 - i32.store offset=4 - local.get $4 - local.get $1 - call $"~lib/map/Map#has" - if - i32.const 0 - i32.const 1776 - i32.const 55 - i32.const 5 - call $~lib/builtins/abort - unreachable - end - local.get $1 - i64.const 1 - i64.add - local.set $1 - br $for-loop|4 - end - end - global.get $~lib/memory/__stack_pointer - local.get $4 - i32.store offset=4 - local.get $4 - call $"~lib/map/Map#get:size" - i32.const 50 - i32.ne - if - i32.const 0 - i32.const 1776 - i32.const 57 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - local.get $4 - i32.store offset=4 - local.get $4 - call $"~lib/map/Map#clear" - global.get $~lib/memory/__stack_pointer - local.get $4 - i32.store offset=4 - local.get $4 - call $"~lib/map/Map#get:size" - if - i32.const 0 - i32.const 1776 - i32.const 61 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - i32.const 45 - i32.const 2512 - call $~lib/rt/__newArray - local.tee $0 - i32.store offset=24 - i64.const 0 - local.set $1 - loop $for-loop|5 - local.get $1 - i64.const 100 - i64.lt_s - if - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - global.get $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - i32.const 8 - i32.sub - global.set $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - i32.const 3104 - i32.lt_s - br_if $folding-inner1 - global.get $~lib/memory/__stack_pointer - i64.const 0 - i64.store - global.get $~lib/memory/__stack_pointer - i32.const 12 - i32.const 44 - call $~lib/rt/itcms/__new - local.tee $3 - i32.store - global.get $~lib/memory/__stack_pointer - local.get $3 - i32.store offset=4 - global.get $~lib/memory/__stack_pointer - local.get $3 - call $~lib/object/Object#constructor - local.tee $3 - i32.store - global.get $~lib/memory/__stack_pointer - local.get $3 - i32.store offset=4 - local.get $3 - i64.const 0 - i64.store - global.get $~lib/memory/__stack_pointer - local.get $3 - i32.store offset=4 - local.get $3 - i32.const 0 - i32.store offset=8 - global.get $~lib/memory/__stack_pointer - i32.const 8 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $3 - i32.store offset=32 - global.get $~lib/memory/__stack_pointer - local.get $3 - i32.store offset=36 - local.get $3 - local.get $1 - i64.store - global.get $~lib/memory/__stack_pointer - local.get $3 - i32.store offset=36 - local.get $3 - local.get $1 - i32.wrap_i64 - i32.const 10 - i32.add - i32.store offset=8 - global.get $~lib/memory/__stack_pointer - local.get $3 - i32.store offset=28 - local.get $0 - local.get $3 - call $"~lib/array/Array<~lib/map/KeyValue>#push" - local.get $1 - i64.const 1 - i64.add - local.set $1 - br $for-loop|5 - end - end - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - global.get $~lib/memory/__stack_pointer - local.get $0 - call $"~lib/map/Map#constructor" - local.tee $0 - i32.store - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 - call $"~lib/map/Map#get:size" - i32.const 100 - i32.ne - if - i32.const 0 - i32.const 1776 - i32.const 74 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - i64.const 0 - local.set $1 - loop $for-loop|6 - local.get $1 - i64.const 100 - i64.lt_s - if - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 - local.get $1 - call $"~lib/map/Map#has" - i32.eqz - if - i32.const 0 - i32.const 1776 - i32.const 76 - i32.const 5 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 - local.get $1 - call $"~lib/map/Map#get" - local.get $1 - i32.wrap_i64 - i32.const 10 - i32.add - i32.ne - if - i32.const 0 - i32.const 1776 - i32.const 77 - i32.const 5 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 - local.get $1 - call $"~lib/map/Map#delete" - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 - local.get $1 - call $"~lib/map/Map#has" - if - i32.const 0 - i32.const 1776 - i32.const 79 - i32.const 5 - call $~lib/builtins/abort - unreachable - end - local.get $1 - i64.const 1 - i64.add - local.set $1 - br $for-loop|6 - end - end - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 - call $"~lib/map/Map#get:size" - if - i32.const 0 - i32.const 1776 - i32.const 81 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - i32.const 40 - i32.add - global.set $~lib/memory/__stack_pointer - return - end - i32.const 35904 - i32.const 35952 - i32.const 1 - i32.const 1 - call $~lib/builtins/abort - unreachable - ) - (func $"~lib/map/Map#rehash" (param $0 i32) (param $1 i32) - (local $2 i32) - (local $3 i32) - (local $4 i32) - (local $5 i32) - (local $6 i64) - (local $7 i32) - (local $8 i32) - (local $9 i32) - global.get $~lib/memory/__stack_pointer - i32.const 16 - i32.sub - global.set $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - i32.const 3104 - i32.lt_s - if - i32.const 35904 - i32.const 35952 - i32.const 1 - i32.const 1 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - i64.const 0 - i64.store - global.get $~lib/memory/__stack_pointer - i64.const 0 - i64.store offset=8 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.const 1 - i32.add - local.tee $2 - i32.const 2 - i32.shl - call $~lib/arraybuffer/ArrayBuffer#constructor - local.tee $7 - i32.store - global.get $~lib/memory/__stack_pointer - local.get $2 - i32.const 3 - i32.shl - i32.const 3 - i32.div_s - local.tee $5 - i32.const 4 - i32.shl - call $~lib/arraybuffer/ArrayBuffer#constructor - local.tee $3 - i32.store offset=4 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=8 - local.get $0 - i32.load offset=8 - local.set $8 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=8 - local.get $8 - local.get $0 - i32.load offset=16 - i32.const 4 - i32.shl - i32.add - local.set $4 - local.get $3 - local.set $2 - loop $while-continue|0 - local.get $4 - local.get $8 - i32.ne - if - local.get $8 - i32.load offset=12 - i32.const 1 - i32.and - i32.eqz - if - local.get $2 - local.get $8 - i64.load - local.tee $6 - i64.store - local.get $2 - local.get $8 - i32.load offset=8 - i32.store offset=8 - local.get $2 - local.get $7 - local.get $1 - local.get $6 - i32.wrap_i64 - i32.const -1028477379 - i32.mul - i32.const 374761401 - i32.add - i32.const 17 - i32.rotl - i32.const 668265263 - i32.mul - local.get $6 - i64.const 32 - i64.shr_u - i32.wrap_i64 - i32.const -1028477379 - i32.mul - i32.add - i32.const 17 - i32.rotl - i32.const 668265263 - i32.mul - local.tee $9 - i32.const 15 - i32.shr_u - local.get $9 - i32.xor - i32.const -2048144777 - i32.mul - local.tee $9 - i32.const 13 - i32.shr_u - local.get $9 - i32.xor - i32.const -1028477379 - i32.mul - local.tee $9 - i32.const 16 - i32.shr_u - local.get $9 - i32.xor - i32.and - i32.const 2 - i32.shl - i32.add - local.tee $9 - i32.load - i32.store offset=12 - local.get $9 - local.get $2 - i32.store - local.get $2 - i32.const 16 - i32.add - local.set $2 - end - local.get $8 - i32.const 16 - i32.add - local.set $8 - br $while-continue|0 - end - end - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=8 - global.get $~lib/memory/__stack_pointer - local.get $7 - i32.store offset=12 - local.get $0 - local.get $7 - i32.store - local.get $0 - local.get $7 - i32.const 0 - call $~lib/rt/itcms/__link - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=8 - local.get $0 - local.get $1 - i32.store offset=4 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=8 - global.get $~lib/memory/__stack_pointer - local.get $3 - i32.store offset=12 - local.get $0 - local.get $3 - i32.store offset=8 - local.get $0 - local.get $3 - i32.const 0 - call $~lib/rt/itcms/__link - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=8 - local.get $0 - local.get $5 - i32.store offset=12 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=8 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=12 - local.get $0 - local.get $0 - i32.load offset=20 - i32.store offset=16 - global.get $~lib/memory/__stack_pointer - i32.const 16 - i32.add - global.set $~lib/memory/__stack_pointer - ) - (func $"~lib/map/Map#find" (param $0 i32) (param $1 i64) (param $2 i32) (result i32) - (local $3 i32) - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.sub - global.set $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - i32.const 3104 - i32.lt_s - if - i32.const 35904 - i32.const 35952 - i32.const 1 - i32.const 1 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.store - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store - local.get $0 - i32.load - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store - local.get $2 - local.get $0 - i32.load offset=4 - i32.and - i32.const 2 - i32.shl - i32.add - i32.load - local.set $0 - loop $while-continue|0 - local.get $0 - if - local.get $0 - i32.load offset=12 - local.tee $2 - i32.const 1 - i32.and - if (result i32) - i32.const 0 - else - local.get $1 - local.get $0 - i64.load - i64.eq - end - if - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $0 - return - end - local.get $2 - i32.const -2 - i32.and - local.set $0 - br $while-continue|0 - end - end - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.add - global.set $~lib/memory/__stack_pointer - i32.const 0 - ) - (func $"~lib/map/Map#constructor" (param $0 i32) (result i32) - (local $1 i32) - (local $2 i32) - (local $3 i64) - (local $4 i32) - (local $5 i32) - (local $6 i32) - (local $7 i32) - (local $8 i32) - global.get $~lib/memory/__stack_pointer - i32.const 16 - i32.sub - global.set $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - i32.const 3104 - i32.lt_s - if - i32.const 35904 - i32.const 35952 - i32.const 1 - i32.const 1 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - i64.const 0 - i64.store - global.get $~lib/memory/__stack_pointer - i64.const 0 - i64.store offset=8 - global.get $~lib/memory/__stack_pointer - i32.const 24 - i32.const 50 - call $~lib/rt/itcms/__new - local.tee $1 - i32.store - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - i32.const 16 - call $~lib/arraybuffer/ArrayBuffer#constructor - local.set $4 - global.get $~lib/memory/__stack_pointer - local.get $4 - i32.store offset=8 - local.get $1 - local.get $4 - i32.store - local.get $1 - local.get $4 - i32.const 0 - call $~lib/rt/itcms/__link - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - local.get $1 - i32.const 3 - i32.store offset=4 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - i32.const 64 - call $~lib/arraybuffer/ArrayBuffer#constructor - local.set $4 - global.get $~lib/memory/__stack_pointer - local.get $4 - i32.store offset=8 - local.get $1 - local.get $4 - i32.store offset=8 - local.get $1 - local.get $4 - i32.const 0 - call $~lib/rt/itcms/__link - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - local.get $1 - i32.const 4 - i32.store offset=12 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - local.get $1 - i32.const 0 - i32.store offset=16 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - local.get $1 - i32.const 0 - i32.store offset=20 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 - call $"~lib/array/Array<~lib/map/KeyValue>#get:length" - local.tee $4 - i32.const 0 - i32.gt_s - if - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - local.get $4 - local.get $1 - i32.load offset=12 - i32.ge_s - if - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - local.get $1 - local.get $4 - i32.store offset=4 - end - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=8 - local.get $1 - local.get $1 - i32.load offset=4 - i32.const 1 - i32.shl - i32.const 1 - i32.or - call $"~lib/map/Map#rehash" - loop $for-loop|0 - local.get $2 - local.get $4 - i32.lt_s - if - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=8 - local.get $0 - local.get $2 - call $"~lib/array/Array<~lib/map/KeyValue>#__get" - local.set $5 - global.get $~lib/memory/__stack_pointer - local.get $5 - i32.store offset=4 - local.get $5 - i64.load - local.set $3 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=8 - local.get $0 - local.get $2 - call $"~lib/array/Array<~lib/map/KeyValue>#__get" - local.set $5 - global.get $~lib/memory/__stack_pointer - local.get $5 - i32.store offset=4 - local.get $5 - i32.load offset=8 - local.set $6 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - local.get $1 - local.get $3 - local.get $3 - i32.wrap_i64 - i32.const -1028477379 - i32.mul - i32.const 374761401 - i32.add - i32.const 17 - i32.rotl - i32.const 668265263 - i32.mul - local.get $3 - i64.const 32 - i64.shr_u - i32.wrap_i64 - i32.const -1028477379 - i32.mul - i32.add - i32.const 17 - i32.rotl - i32.const 668265263 - i32.mul - local.tee $5 - i32.const 15 - i32.shr_u - local.get $5 - i32.xor - i32.const -2048144777 - i32.mul - local.tee $5 - i32.const 13 - i32.shr_u - local.get $5 - i32.xor - i32.const -1028477379 - i32.mul - local.tee $5 - i32.const 16 - i32.shr_u - local.get $5 - i32.xor - local.tee $7 - call $"~lib/map/Map#find" - local.tee $5 - if - local.get $5 - local.get $6 - i32.store offset=8 - else - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.load offset=8 - local.tee $5 - i32.store offset=12 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=8 - local.get $1 - local.get $1 - i32.load offset=16 - local.tee $8 - i32.const 1 - i32.add - i32.store offset=16 - local.get $5 - local.get $8 - i32.const 4 - i32.shl - i32.add - local.tee $5 - local.get $3 - i64.store - local.get $5 - local.get $6 - i32.store offset=8 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=8 - local.get $1 - local.get $1 - i32.load offset=20 - i32.const 1 - i32.add - i32.store offset=20 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - local.get $1 - i32.load - local.set $6 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - local.get $5 - local.get $6 - local.get $7 - local.get $1 - i32.load offset=4 - i32.and - i32.const 2 - i32.shl - i32.add - local.tee $6 - i32.load - i32.store offset=12 - local.get $6 - local.get $5 - i32.store - end - local.get $2 - i32.const 1 - i32.add - local.set $2 - br $for-loop|0 - end - end - end - global.get $~lib/memory/__stack_pointer - i32.const 16 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $1 - ) - (func $"~lib/map/Map#has" (param $0 i32) (param $1 i64) (result i32) - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.sub - global.set $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - i32.const 3104 - i32.lt_s - if - i32.const 35904 - i32.const 35952 - i32.const 1 - i32.const 1 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.store - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store - local.get $0 - local.get $1 - local.get $1 - i32.wrap_i64 - i32.const -1028477379 - i32.mul - i32.const 374761401 - i32.add - i32.const 17 - i32.rotl - i32.const 668265263 - i32.mul - local.get $1 - i64.const 32 - i64.shr_u - i32.wrap_i64 - i32.const -1028477379 - i32.mul - i32.add - i32.const 17 - i32.rotl - i32.const 668265263 - i32.mul - local.tee $0 - i32.const 15 - i32.shr_u - local.get $0 - i32.xor - i32.const -2048144777 - i32.mul - local.tee $0 - i32.const 13 - i32.shr_u - local.get $0 - i32.xor - i32.const -1028477379 - i32.mul - local.tee $0 - i32.const 16 - i32.shr_u - local.get $0 - i32.xor - call $"~lib/map/Map#find" - i32.const 0 - i32.ne - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.add - global.set $~lib/memory/__stack_pointer - ) - (func $"~lib/map/Map#set" (param $0 i32) (param $1 i64) (param $2 i32) - (local $3 i32) - (local $4 i32) - (local $5 i32) - global.get $~lib/memory/__stack_pointer - i32.const 12 - i32.sub - global.set $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - i32.const 3104 - i32.lt_s - if - i32.const 35904 - i32.const 35952 - i32.const 1 - i32.const 1 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - i64.const 0 - i64.store - global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.store offset=8 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store - local.get $0 - local.get $1 - local.get $1 - i32.wrap_i64 - i32.const -1028477379 - i32.mul - i32.const 374761401 - i32.add - i32.const 17 - i32.rotl - i32.const 668265263 - i32.mul - local.get $1 - i64.const 32 - i64.shr_u - i32.wrap_i64 - i32.const -1028477379 - i32.mul - i32.add - i32.const 17 - i32.rotl - i32.const 668265263 - i32.mul - local.tee $3 - i32.const 15 - i32.shr_u - local.get $3 - i32.xor - i32.const -2048144777 - i32.mul - local.tee $3 - i32.const 13 - i32.shr_u - local.get $3 - i32.xor - i32.const -1028477379 - i32.mul - local.tee $3 - i32.const 16 - i32.shr_u - local.get $3 - i32.xor - local.tee $4 - call $"~lib/map/Map#find" - local.tee $3 - if - local.get $3 - local.get $2 - i32.store offset=8 - else + i32.const 50 + i32.ne + if + i32.const 0 + i32.const 1744 + i32.const 57 + i32.const 3 + call $~lib/builtins/abort + unreachable + end global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store - local.get $0 - i32.load offset=16 + local.get $5 + i32.store offset=4 + local.get $5 + call $"~lib/map/Map#clear" global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store - local.get $0 - i32.load offset=12 - i32.eq + local.get $5 + i32.store offset=4 + local.get $5 + call $"~lib/map/Map#get:size" if - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 - i32.load offset=20 - local.set $3 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 - local.get $3 - local.get $0 - i32.load offset=12 + i32.const 0 + i32.const 1744 + i32.const 61 i32.const 3 - i32.mul - i32.const 4 - i32.div_s - i32.lt_s - if (result i32) + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + i32.const 45 + i32.const 2096 + call $~lib/rt/__newArray + local.tee $0 + i32.store offset=24 + i64.const 0 + local.set $1 + loop $for-loop|5 + local.get $1 + i64.const 100 + i64.lt_s + if global.get $~lib/memory/__stack_pointer local.get $0 i32.store offset=4 - local.get $0 - i32.load offset=4 - else global.get $~lib/memory/__stack_pointer - local.get $0 + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.sub + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 2496 + i32.lt_s + br_if $folding-inner1 + global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store + global.get $~lib/memory/__stack_pointer + i32.const 12 + i32.const 44 + call $~lib/rt/itcms/__new + local.tee $3 + i32.store + global.get $~lib/memory/__stack_pointer + local.get $3 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + local.get $3 + call $~lib/object/Object#constructor + local.tee $3 + i32.store + global.get $~lib/memory/__stack_pointer + local.get $3 + i32.store offset=4 + local.get $3 + i64.const 0 + i64.store + global.get $~lib/memory/__stack_pointer + local.get $3 i32.store offset=4 + local.get $3 + i32.const 0 + i32.store offset=8 + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $3 + i32.store offset=32 + global.get $~lib/memory/__stack_pointer + local.get $3 + i32.store offset=36 + local.get $3 + local.get $1 + i64.store + global.get $~lib/memory/__stack_pointer + local.get $3 + i32.store offset=36 + local.get $3 + local.get $1 + i32.wrap_i64 + i32.const 10 + i32.add + i32.store offset=8 + global.get $~lib/memory/__stack_pointer + local.get $3 + i32.store offset=28 local.get $0 - i32.load offset=4 - i32.const 1 - i32.shl - i32.const 1 - i32.or + local.get $3 + call $"~lib/array/Array<~lib/map/KeyValue>#push" + local.get $1 + i64.const 1 + i64.add + local.set $1 + br $for-loop|5 end - call $"~lib/map/Map#rehash" end global.get $~lib/memory/__stack_pointer local.get $0 - i32.store - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.load offset=8 - local.tee $3 - i32.store offset=8 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store - global.get $~lib/memory/__stack_pointer - local.get $0 i32.store offset=4 - local.get $0 - local.get $0 - i32.load offset=16 - local.tee $5 - i32.const 1 - i32.add - i32.store offset=16 - local.get $3 - local.get $5 - i32.const 4 - i32.shl - i32.add - local.tee $3 - local.get $1 - i64.store - local.get $3 - local.get $2 - i32.store offset=8 global.get $~lib/memory/__stack_pointer local.get $0 + call $"~lib/map/Map#constructor" + local.tee $0 i32.store global.get $~lib/memory/__stack_pointer local.get $0 i32.store offset=4 local.get $0 - local.get $0 - i32.load offset=20 - i32.const 1 - i32.add - i32.store offset=20 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store - local.get $0 - i32.load - local.set $2 + call $"~lib/map/Map#get:size" + i32.const 100 + i32.ne + if + i32.const 0 + i32.const 1744 + i32.const 74 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + i64.const 0 + local.set $1 + loop $for-loop|6 + local.get $1 + i64.const 100 + i64.lt_s + if + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + local.get $0 + local.get $1 + call $"~lib/map/Map#has" + i32.eqz + if + i32.const 0 + i32.const 1744 + i32.const 76 + i32.const 5 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + local.get $0 + local.get $1 + call $"~lib/map/Map#get" + local.get $1 + i32.wrap_i64 + i32.const 10 + i32.add + i32.ne + if + i32.const 0 + i32.const 1744 + i32.const 77 + i32.const 5 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + local.get $0 + local.get $1 + call $"~lib/map/Map#delete" + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + local.get $0 + local.get $1 + call $"~lib/map/Map#has" + if + i32.const 0 + i32.const 1744 + i32.const 79 + i32.const 5 + call $~lib/builtins/abort + unreachable + end + local.get $1 + i64.const 1 + i64.add + local.set $1 + br $for-loop|6 + end + end global.get $~lib/memory/__stack_pointer local.get $0 - i32.store - local.get $3 - local.get $2 - local.get $4 + i32.store offset=4 local.get $0 - i32.load offset=4 - i32.and - i32.const 2 - i32.shl + call $"~lib/map/Map#get:size" + if + i32.const 0 + i32.const 1744 + i32.const 81 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + i32.const 40 i32.add - local.tee $0 - i32.load - i32.store offset=12 - local.get $0 - local.get $3 - i32.store - end - global.get $~lib/memory/__stack_pointer - i32.const 12 - i32.add - global.set $~lib/memory/__stack_pointer - ) - (func $"~lib/map/Map#get" (param $0 i32) (param $1 i64) (result i32) - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.sub - global.set $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - i32.const 3104 - i32.lt_s - if - i32.const 35904 - i32.const 35952 - i32.const 1 - i32.const 1 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.store - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store - local.get $0 - local.get $1 - local.get $1 - i32.wrap_i64 - i32.const -1028477379 - i32.mul - i32.const 374761401 - i32.add - i32.const 17 - i32.rotl - i32.const 668265263 - i32.mul - local.get $1 - i64.const 32 - i64.shr_u - i32.wrap_i64 - i32.const -1028477379 - i32.mul - i32.add - i32.const 17 - i32.rotl - i32.const 668265263 - i32.mul - local.tee $0 - i32.const 15 - i32.shr_u - local.get $0 - i32.xor - i32.const -2048144777 - i32.mul - local.tee $0 - i32.const 13 - i32.shr_u - local.get $0 - i32.xor - i32.const -1028477379 - i32.mul - local.tee $0 - i32.const 16 - i32.shr_u - local.get $0 - i32.xor - call $"~lib/map/Map#find" - local.tee $0 - i32.eqz - if - i32.const 1824 - i32.const 1888 - i32.const 148 - i32.const 17 - call $~lib/builtins/abort - unreachable + global.set $~lib/memory/__stack_pointer + return end - local.get $0 - i32.load offset=8 - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.add - global.set $~lib/memory/__stack_pointer + i32.const 35296 + i32.const 35344 + i32.const 1 + i32.const 1 + call $~lib/builtins/abort + unreachable ) - (func $"~lib/map/Map#rehash" (param $0 i32) (param $1 i32) + (func $"~lib/map/Map#rehash" (param $0 i32) (param $1 i32) (local $2 i32) (local $3 i32) (local $4 i32) @@ -22391,11 +19891,11 @@ i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 3104 + i32.const 2496 i32.lt_s if - i32.const 35904 - i32.const 35952 + i32.const 35296 + i32.const 35344 i32.const 1 i32.const 1 call $~lib/builtins/abort @@ -22424,8 +19924,8 @@ i32.const 3 i32.div_s local.tee $5 - i32.const 24 - i32.mul + i32.const 4 + i32.shl call $~lib/arraybuffer/ArrayBuffer#constructor local.tee $3 i32.store offset=4 @@ -22441,8 +19941,8 @@ local.get $8 local.get $0 i32.load offset=16 - i32.const 24 - i32.mul + i32.const 4 + i32.shl i32.add local.set $4 local.get $3 @@ -22453,7 +19953,7 @@ i32.ne if local.get $8 - i32.load offset=16 + i32.load offset=12 i32.const 1 i32.and i32.eqz @@ -22465,8 +19965,8 @@ i64.store local.get $2 local.get $8 - i64.load offset=8 - i64.store offset=8 + i32.load offset=8 + i32.store offset=8 local.get $2 local.get $7 local.get $1 @@ -22516,17 +20016,17 @@ i32.add local.tee $9 i32.load - i32.store offset=16 + i32.store offset=12 local.get $9 local.get $2 i32.store local.get $2 - i32.const 24 + i32.const 16 i32.add local.set $2 end local.get $8 - i32.const 24 + i32.const 16 i32.add local.set $8 br $while-continue|0 @@ -22585,18 +20085,18 @@ i32.add global.set $~lib/memory/__stack_pointer ) - (func $"~lib/map/Map#find" (param $0 i32) (param $1 i64) (param $2 i32) (result i32) + (func $"~lib/map/Map#find" (param $0 i32) (param $1 i64) (param $2 i32) (result i32) (local $3 i32) global.get $~lib/memory/__stack_pointer i32.const 4 i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 3104 + i32.const 2496 i32.lt_s if - i32.const 35904 - i32.const 35952 + i32.const 35296 + i32.const 35344 i32.const 1 i32.const 1 call $~lib/builtins/abort @@ -22626,7 +20126,7 @@ local.get $0 if local.get $0 - i32.load offset=16 + i32.load offset=12 local.tee $2 i32.const 1 i32.and @@ -22659,25 +20159,24 @@ global.set $~lib/memory/__stack_pointer i32.const 0 ) - (func $"~lib/map/Map#constructor" (param $0 i32) (result i32) + (func $"~lib/map/Map#constructor" (param $0 i32) (result i32) (local $1 i32) (local $2 i32) (local $3 i64) - (local $4 i64) + (local $4 i32) (local $5 i32) (local $6 i32) (local $7 i32) - (local $8 i32) global.get $~lib/memory/__stack_pointer i32.const 16 i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 3104 + i32.const 2496 i32.lt_s if - i32.const 35904 - i32.const 35952 + i32.const 35296 + i32.const 35344 i32.const 1 i32.const 1 call $~lib/builtins/abort @@ -22691,7 +20190,7 @@ i64.store offset=8 global.get $~lib/memory/__stack_pointer i32.const 24 - i32.const 54 + i32.const 50 call $~lib/rt/itcms/__new local.tee $1 i32.store @@ -22700,15 +20199,15 @@ i32.store offset=4 i32.const 16 call $~lib/arraybuffer/ArrayBuffer#constructor - local.set $5 + local.set $4 global.get $~lib/memory/__stack_pointer - local.get $5 + local.get $4 i32.store offset=8 local.get $1 - local.get $5 + local.get $4 i32.store local.get $1 - local.get $5 + local.get $4 i32.const 0 call $~lib/rt/itcms/__link global.get $~lib/memory/__stack_pointer @@ -22720,17 +20219,17 @@ global.get $~lib/memory/__stack_pointer local.get $1 i32.store offset=4 - i32.const 96 + i32.const 64 call $~lib/arraybuffer/ArrayBuffer#constructor - local.set $5 + local.set $4 global.get $~lib/memory/__stack_pointer - local.get $5 + local.get $4 i32.store offset=8 local.get $1 - local.get $5 + local.get $4 i32.store offset=8 local.get $1 - local.get $5 + local.get $4 i32.const 0 call $~lib/rt/itcms/__link global.get $~lib/memory/__stack_pointer @@ -22751,19 +20250,16 @@ local.get $1 i32.const 0 i32.store offset=20 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 local.get $0 - call $"~lib/array/Array<~lib/map/KeyValue>#get:length" - local.tee $5 - i32.const 0 - i32.gt_s if + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + local.get $0 + call $"~lib/array/Array<~lib/map/KeyValue>#get:length" global.get $~lib/memory/__stack_pointer local.get $1 i32.store offset=4 - local.get $5 local.get $1 i32.load offset=12 i32.ge_s @@ -22771,8 +20267,12 @@ global.get $~lib/memory/__stack_pointer local.get $1 i32.store offset=4 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=8 local.get $1 - local.get $5 + local.get $0 + call $"~lib/array/Array<~lib/map/KeyValue>#get:length" i32.store offset=4 end global.get $~lib/memory/__stack_pointer @@ -22788,11 +20288,15 @@ i32.shl i32.const 1 i32.or - call $"~lib/map/Map#rehash" + call $"~lib/map/Map#rehash" loop $for-loop|0 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + local.get $0 + call $"~lib/array/Array<~lib/map/KeyValue>#get:length" local.get $2 - local.get $5 - i32.lt_s + i32.gt_s if global.get $~lib/memory/__stack_pointer local.get $0 @@ -22800,11 +20304,11 @@ local.get $0 local.get $2 call $"~lib/array/Array<~lib/map/KeyValue>#__get" - local.set $6 + local.set $4 global.get $~lib/memory/__stack_pointer - local.get $6 + local.get $4 i32.store offset=4 - local.get $6 + local.get $4 i64.load local.set $3 global.get $~lib/memory/__stack_pointer @@ -22813,13 +20317,13 @@ local.get $0 local.get $2 call $"~lib/array/Array<~lib/map/KeyValue>#__get" - local.set $6 + local.set $4 global.get $~lib/memory/__stack_pointer - local.get $6 + local.get $4 i32.store offset=4 - local.get $6 - i64.load offset=8 - local.set $4 + local.get $4 + i32.load offset=8 + local.set $5 global.get $~lib/memory/__stack_pointer local.get $1 i32.store offset=4 @@ -22846,32 +20350,32 @@ i32.rotl i32.const 668265263 i32.mul - local.tee $6 + local.tee $4 i32.const 15 i32.shr_u - local.get $6 + local.get $4 i32.xor i32.const -2048144777 i32.mul - local.tee $6 + local.tee $4 i32.const 13 i32.shr_u - local.get $6 + local.get $4 i32.xor i32.const -1028477379 i32.mul - local.tee $6 + local.tee $4 i32.const 16 i32.shr_u - local.get $6 + local.get $4 i32.xor local.tee $6 - call $"~lib/map/Map#find" - local.tee $7 + call $"~lib/map/Map#find" + local.tee $4 if - local.get $7 local.get $4 - i64.store offset=8 + local.get $5 + i32.store offset=8 else global.get $~lib/memory/__stack_pointer local.get $1 @@ -22879,7 +20383,7 @@ global.get $~lib/memory/__stack_pointer local.get $1 i32.load offset=8 - local.tee $7 + local.tee $4 i32.store offset=12 global.get $~lib/memory/__stack_pointer local.get $1 @@ -22890,21 +20394,21 @@ local.get $1 local.get $1 i32.load offset=16 - local.tee $8 + local.tee $7 i32.const 1 i32.add i32.store offset=16 + local.get $4 local.get $7 - local.get $8 - i32.const 24 - i32.mul + i32.const 4 + i32.shl i32.add - local.tee $7 + local.tee $4 local.get $3 i64.store - local.get $7 local.get $4 - i64.store offset=8 + local.get $5 + i32.store offset=8 global.get $~lib/memory/__stack_pointer local.get $1 i32.store offset=4 @@ -22922,12 +20426,12 @@ i32.store offset=4 local.get $1 i32.load - local.set $8 + local.set $5 global.get $~lib/memory/__stack_pointer local.get $1 i32.store offset=4 - local.get $7 - local.get $8 + local.get $4 + local.get $5 local.get $6 local.get $1 i32.load offset=4 @@ -22935,11 +20439,11 @@ i32.const 2 i32.shl i32.add - local.tee $6 + local.tee $5 i32.load - i32.store offset=16 - local.get $6 - local.get $7 + i32.store offset=12 + local.get $5 + local.get $4 i32.store end local.get $2 @@ -22954,9 +20458,81 @@ i32.const 16 i32.add global.set $~lib/memory/__stack_pointer - local.get $1 + local.get $1 + ) + (func $"~lib/map/Map#has" (param $0 i32) (param $1 i64) (result i32) + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.sub + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 2496 + i32.lt_s + if + i32.const 35296 + i32.const 35344 + i32.const 1 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + local.get $0 + local.get $1 + local.get $1 + i32.wrap_i64 + i32.const -1028477379 + i32.mul + i32.const 374761401 + i32.add + i32.const 17 + i32.rotl + i32.const 668265263 + i32.mul + local.get $1 + i64.const 32 + i64.shr_u + i32.wrap_i64 + i32.const -1028477379 + i32.mul + i32.add + i32.const 17 + i32.rotl + i32.const 668265263 + i32.mul + local.tee $0 + i32.const 15 + i32.shr_u + local.get $0 + i32.xor + i32.const -2048144777 + i32.mul + local.tee $0 + i32.const 13 + i32.shr_u + local.get $0 + i32.xor + i32.const -1028477379 + i32.mul + local.tee $0 + i32.const 16 + i32.shr_u + local.get $0 + i32.xor + call $"~lib/map/Map#find" + i32.const 0 + i32.ne + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer ) - (func $"~lib/map/Map#set" (param $0 i32) (param $1 i64) (param $2 i64) + (func $"~lib/map/Map#set" (param $0 i32) (param $1 i64) (param $2 i32) (local $3 i32) (local $4 i32) (local $5 i32) @@ -22965,11 +20541,11 @@ i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 3104 + i32.const 2496 i32.lt_s if - i32.const 35904 - i32.const 35952 + i32.const 35296 + i32.const 35344 i32.const 1 i32.const 1 call $~lib/builtins/abort @@ -23026,26 +20602,612 @@ i32.shr_u local.get $3 i32.xor - local.tee $3 - call $"~lib/map/Map#find" local.tee $4 + call $"~lib/map/Map#find" + local.tee $3 + if + local.get $3 + local.get $2 + i32.store offset=8 + else + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + local.get $0 + i32.load offset=16 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + local.get $0 + i32.load offset=12 + i32.eq + if + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + local.get $0 + i32.load offset=20 + local.set $3 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + local.get $0 + local.get $3 + local.get $0 + i32.load offset=12 + i32.const 3 + i32.mul + i32.const 4 + i32.div_s + i32.lt_s + if (result i32) + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + local.get $0 + i32.load offset=4 + else + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + local.get $0 + i32.load offset=4 + i32.const 1 + i32.shl + i32.const 1 + i32.or + end + call $"~lib/map/Map#rehash" + end + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.load offset=8 + local.tee $3 + i32.store offset=8 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + local.get $0 + local.get $0 + i32.load offset=16 + local.tee $5 + i32.const 1 + i32.add + i32.store offset=16 + local.get $3 + local.get $5 + i32.const 4 + i32.shl + i32.add + local.tee $3 + local.get $1 + i64.store + local.get $3 + local.get $2 + i32.store offset=8 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + local.get $0 + local.get $0 + i32.load offset=20 + i32.const 1 + i32.add + i32.store offset=20 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + local.get $0 + i32.load + local.set $2 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + local.get $3 + local.get $2 + local.get $4 + local.get $0 + i32.load offset=4 + i32.and + i32.const 2 + i32.shl + i32.add + local.tee $0 + i32.load + i32.store offset=12 + local.get $0 + local.get $3 + i32.store + end + global.get $~lib/memory/__stack_pointer + i32.const 12 + i32.add + global.set $~lib/memory/__stack_pointer + ) + (func $"~lib/map/Map#get" (param $0 i32) (param $1 i64) (result i32) + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.sub + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 2496 + i32.lt_s + if + i32.const 35296 + i32.const 35344 + i32.const 1 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + local.get $0 + local.get $1 + local.get $1 + i32.wrap_i64 + i32.const -1028477379 + i32.mul + i32.const 374761401 + i32.add + i32.const 17 + i32.rotl + i32.const 668265263 + i32.mul + local.get $1 + i64.const 32 + i64.shr_u + i32.wrap_i64 + i32.const -1028477379 + i32.mul + i32.add + i32.const 17 + i32.rotl + i32.const 668265263 + i32.mul + local.tee $0 + i32.const 15 + i32.shr_u + local.get $0 + i32.xor + i32.const -2048144777 + i32.mul + local.tee $0 + i32.const 13 + i32.shr_u + local.get $0 + i32.xor + i32.const -1028477379 + i32.mul + local.tee $0 + i32.const 16 + i32.shr_u + local.get $0 + i32.xor + call $"~lib/map/Map#find" + local.tee $0 + i32.eqz if - local.get $4 - local.get $2 - i64.store offset=8 - else + i32.const 1792 + i32.const 1856 + i32.const 146 + i32.const 17 + call $~lib/builtins/abort + unreachable + end + local.get $0 + i32.load offset=8 + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + ) + (func $"~lib/map/Map#set" (param $0 i32) (param $1 i64) (param $2 i64) + (local $3 i32) + (local $4 i32) + (local $5 i32) + (local $6 i32) + (local $7 i32) + (local $8 i64) + (local $9 i32) + (local $10 i32) + (local $11 i32) + (local $12 i32) + global.get $~lib/memory/__stack_pointer + i32.const 12 + i32.sub + global.set $~lib/memory/__stack_pointer + block $folding-inner0 + global.get $~lib/memory/__stack_pointer + i32.const 2496 + i32.lt_s + br_if $folding-inner0 + global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store offset=8 + local.get $1 + i32.wrap_i64 + i32.const -1028477379 + i32.mul + i32.const 374761401 + i32.add + i32.const 17 + i32.rotl + i32.const 668265263 + i32.mul + local.get $1 + i64.const 32 + i64.shr_u + i32.wrap_i64 + i32.const -1028477379 + i32.mul + i32.add + i32.const 17 + i32.rotl + i32.const 668265263 + i32.mul + local.tee $3 + local.get $3 + i32.const 15 + i32.shr_u + i32.xor + i32.const -2048144777 + i32.mul + local.tee $3 + local.get $3 + i32.const 13 + i32.shr_u + i32.xor + i32.const -1028477379 + i32.mul + local.tee $3 + local.get $3 + i32.const 16 + i32.shr_u + i32.xor + local.set $9 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.sub + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 2496 + i32.lt_s + br_if $folding-inner0 + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store global.get $~lib/memory/__stack_pointer local.get $0 i32.store local.get $0 - i32.load offset=16 + i32.load global.get $~lib/memory/__stack_pointer local.get $0 i32.store + local.get $9 local.get $0 - i32.load offset=12 - i32.eq + i32.load offset=4 + i32.and + i32.const 2 + i32.shl + i32.add + i32.load + local.set $3 + block $"__inlined_func$~lib/map/Map#find$40" + loop $while-continue|0 + local.get $3 + if + local.get $3 + i32.load offset=16 + local.tee $4 + i32.const 1 + i32.and + if (result i32) + i32.const 0 + else + local.get $1 + local.get $3 + i64.load + i64.eq + end + if + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + br $"__inlined_func$~lib/map/Map#find$40" + end + local.get $4 + i32.const -2 + i32.and + local.set $3 + br $while-continue|0 + end + end + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + i32.const 0 + local.set $3 + end + local.get $3 if + local.get $3 + local.get $2 + i64.store offset=8 + else + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + local.get $0 + i32.load offset=16 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + local.get $0 + i32.load offset=12 + i32.eq + if + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + local.get $0 + i32.load offset=20 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + local.get $0 + i32.load offset=12 + i32.const 3 + i32.mul + i32.const 4 + i32.div_s + i32.lt_s + if (result i32) + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + local.get $0 + i32.load offset=4 + else + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + local.get $0 + i32.load offset=4 + i32.const 1 + i32.shl + i32.const 1 + i32.or + end + local.set $5 + global.get $~lib/memory/__stack_pointer + i32.const 16 + i32.sub + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 2496 + i32.lt_s + br_if $folding-inner0 + global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store + global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store offset=8 + global.get $~lib/memory/__stack_pointer + local.get $5 + i32.const 1 + i32.add + local.tee $3 + i32.const 2 + i32.shl + call $~lib/arraybuffer/ArrayBuffer#constructor + local.tee $10 + i32.store + global.get $~lib/memory/__stack_pointer + local.get $3 + i32.const 3 + i32.shl + i32.const 3 + i32.div_s + local.tee $7 + i32.const 24 + i32.mul + call $~lib/arraybuffer/ArrayBuffer#constructor + local.tee $4 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=8 + local.get $0 + i32.load offset=8 + local.set $11 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=8 + local.get $11 + local.get $0 + i32.load offset=16 + i32.const 24 + i32.mul + i32.add + local.set $6 + local.get $4 + local.set $3 + loop $while-continue|00 + local.get $6 + local.get $11 + i32.ne + if + local.get $11 + i32.load offset=16 + i32.const 1 + i32.and + i32.eqz + if + local.get $3 + local.get $11 + i64.load + local.tee $8 + i64.store + local.get $3 + local.get $11 + i64.load offset=8 + i64.store offset=8 + local.get $3 + local.get $10 + local.get $5 + local.get $8 + i32.wrap_i64 + i32.const -1028477379 + i32.mul + i32.const 374761401 + i32.add + i32.const 17 + i32.rotl + i32.const 668265263 + i32.mul + local.get $8 + i64.const 32 + i64.shr_u + i32.wrap_i64 + i32.const -1028477379 + i32.mul + i32.add + i32.const 17 + i32.rotl + i32.const 668265263 + i32.mul + local.tee $12 + local.get $12 + i32.const 15 + i32.shr_u + i32.xor + i32.const -2048144777 + i32.mul + local.tee $12 + local.get $12 + i32.const 13 + i32.shr_u + i32.xor + i32.const -1028477379 + i32.mul + local.tee $12 + local.get $12 + i32.const 16 + i32.shr_u + i32.xor + i32.and + i32.const 2 + i32.shl + i32.add + local.tee $12 + i32.load + i32.store offset=16 + local.get $12 + local.get $3 + i32.store + local.get $3 + i32.const 24 + i32.add + local.set $3 + end + local.get $11 + i32.const 24 + i32.add + local.set $11 + br $while-continue|00 + end + end + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=8 + global.get $~lib/memory/__stack_pointer + local.get $10 + i32.store offset=12 + local.get $0 + local.get $10 + i32.store + local.get $0 + local.get $10 + i32.const 0 + call $~lib/rt/itcms/__link + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=8 + local.get $0 + local.get $5 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=8 + global.get $~lib/memory/__stack_pointer + local.get $4 + i32.store offset=12 + local.get $0 + local.get $4 + i32.store offset=8 + local.get $0 + local.get $4 + i32.const 0 + call $~lib/rt/itcms/__link + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=8 + local.get $0 + local.get $7 + i32.store offset=12 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=8 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=12 + local.get $0 + local.get $0 + i32.load offset=20 + i32.store offset=16 + global.get $~lib/memory/__stack_pointer + i32.const 16 + i32.add + global.set $~lib/memory/__stack_pointer + end + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.load offset=8 + local.tee $3 + i32.store offset=8 global.get $~lib/memory/__stack_pointer local.get $0 i32.store @@ -23053,112 +21215,72 @@ local.get $0 i32.store offset=4 local.get $0 - i32.load offset=20 - local.set $4 + local.get $0 + i32.load offset=16 + local.tee $4 + i32.const 1 + i32.add + i32.store offset=16 + local.get $3 + local.get $4 + i32.const 24 + i32.mul + i32.add + local.tee $3 + local.get $1 + i64.store + local.get $3 + local.get $2 + i64.store offset=8 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store global.get $~lib/memory/__stack_pointer local.get $0 i32.store offset=4 local.get $0 + local.get $0 + i32.load offset=20 + i32.const 1 + i32.add + i32.store offset=20 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + local.get $0 + i32.load + local.set $4 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + local.get $3 local.get $4 + local.get $9 local.get $0 - i32.load offset=12 - i32.const 3 - i32.mul - i32.const 4 - i32.div_s - i32.lt_s - if (result i32) - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 - i32.load offset=4 - else - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 - i32.load offset=4 - i32.const 1 - i32.shl - i32.const 1 - i32.or - end - call $"~lib/map/Map#rehash" + i32.load offset=4 + i32.and + i32.const 2 + i32.shl + i32.add + local.tee $0 + i32.load + i32.store offset=16 + local.get $0 + local.get $3 + i32.store end global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.load offset=8 - local.tee $4 - i32.store offset=8 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 - local.get $0 - i32.load offset=16 - local.tee $5 - i32.const 1 - i32.add - i32.store offset=16 - local.get $4 - local.get $5 - i32.const 24 - i32.mul - i32.add - local.tee $4 - local.get $1 - i64.store - local.get $4 - local.get $2 - i64.store offset=8 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 - local.get $0 - i32.load offset=20 - i32.const 1 - i32.add - i32.store offset=20 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store - local.get $0 - i32.load - local.set $5 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store - local.get $4 - local.get $5 - local.get $3 - local.get $0 - i32.load offset=4 - i32.and - i32.const 2 - i32.shl + i32.const 12 i32.add - local.tee $0 - i32.load - i32.store offset=16 - local.get $0 - local.get $4 - i32.store + global.set $~lib/memory/__stack_pointer + return end - global.get $~lib/memory/__stack_pointer - i32.const 12 - i32.add - global.set $~lib/memory/__stack_pointer + i32.const 35296 + i32.const 35344 + i32.const 1 + i32.const 1 + call $~lib/builtins/abort + unreachable ) (func $"~lib/map/Map#delete" (param $0 i32) (param $1 i64) (local $2 i32) @@ -23168,11 +21290,11 @@ i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 3104 + i32.const 2496 i32.lt_s if - i32.const 35904 - i32.const 35952 + i32.const 35296 + i32.const 35344 i32.const 1 i32.const 1 call $~lib/builtins/abort @@ -23326,7 +21448,7 @@ global.set $~lib/memory/__stack_pointer block $folding-inner1 global.get $~lib/memory/__stack_pointer - i32.const 3104 + i32.const 2496 i32.lt_s br_if $folding-inner1 global.get $~lib/memory/__stack_pointer @@ -23334,40 +21456,9 @@ i32.const 40 memory.fill global.get $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - i32.const 12 - i32.sub - global.set $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - i32.const 3104 - i32.lt_s - br_if $folding-inner1 - global.get $~lib/memory/__stack_pointer - i64.const 0 - i64.store - global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.store offset=8 - global.get $~lib/memory/__stack_pointer - i32.const 52 - i32.const 2544 - call $~lib/rt/__newArray - local.tee $4 - i32.store - global.get $~lib/memory/__stack_pointer i32.const 0 - i32.store offset=4 - global.get $~lib/memory/__stack_pointer - local.get $4 - i32.store offset=8 - local.get $4 call $"~lib/map/Map#constructor" - local.set $4 - global.get $~lib/memory/__stack_pointer - i32.const 12 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $4 + local.tee $5 i32.store loop $for-loop|0 local.get $1 @@ -23375,23 +21466,23 @@ i64.lt_u if global.get $~lib/memory/__stack_pointer - local.get $4 + local.get $5 i32.store offset=4 - local.get $4 + local.get $5 local.get $1 call $"~lib/map/Map#has" if i32.const 0 - i32.const 1776 + i32.const 1744 i32.const 7 i32.const 5 call $~lib/builtins/abort unreachable end global.get $~lib/memory/__stack_pointer - local.get $4 + local.get $5 i32.store offset=4 - local.get $4 + local.get $5 local.get $1 local.get $1 i32.wrap_i64 @@ -23399,24 +21490,24 @@ i32.add call $"~lib/map/Map#set" global.get $~lib/memory/__stack_pointer - local.get $4 + local.get $5 i32.store offset=4 - local.get $4 + local.get $5 local.get $1 call $"~lib/map/Map#has" i32.eqz if i32.const 0 - i32.const 1776 + i32.const 1744 i32.const 9 i32.const 5 call $~lib/builtins/abort unreachable end global.get $~lib/memory/__stack_pointer - local.get $4 + local.get $5 i32.store offset=4 - local.get $4 + local.get $5 local.get $1 call $"~lib/map/Map#get" local.get $1 @@ -23426,7 +21517,7 @@ i32.ne if i32.const 0 - i32.const 1776 + i32.const 1744 i32.const 10 i32.const 5 call $~lib/builtins/abort @@ -23440,15 +21531,15 @@ end end global.get $~lib/memory/__stack_pointer - local.get $4 + local.get $5 i32.store offset=4 - local.get $4 + local.get $5 call $"~lib/map/Map#get:size" i32.const 100 i32.ne if i32.const 0 - i32.const 1776 + i32.const 1744 i32.const 12 i32.const 3 call $~lib/builtins/abort @@ -23462,24 +21553,24 @@ i64.lt_u if global.get $~lib/memory/__stack_pointer - local.get $4 + local.get $5 i32.store offset=4 - local.get $4 + local.get $5 local.get $1 call $"~lib/map/Map#has" i32.eqz if i32.const 0 - i32.const 1776 + i32.const 1744 i32.const 16 i32.const 5 call $~lib/builtins/abort unreachable end global.get $~lib/memory/__stack_pointer - local.get $4 + local.get $5 i32.store offset=4 - local.get $4 + local.get $5 local.get $1 call $"~lib/map/Map#get" local.get $1 @@ -23489,16 +21580,16 @@ i32.ne if i32.const 0 - i32.const 1776 + i32.const 1744 i32.const 17 i32.const 5 call $~lib/builtins/abort unreachable end global.get $~lib/memory/__stack_pointer - local.get $4 + local.get $5 i32.store offset=4 - local.get $4 + local.get $5 local.get $1 local.get $1 i32.wrap_i64 @@ -23506,24 +21597,24 @@ i32.add call $"~lib/map/Map#set" global.get $~lib/memory/__stack_pointer - local.get $4 + local.get $5 i32.store offset=4 - local.get $4 + local.get $5 local.get $1 call $"~lib/map/Map#has" i32.eqz if i32.const 0 - i32.const 1776 + i32.const 1744 i32.const 19 i32.const 5 call $~lib/builtins/abort unreachable end global.get $~lib/memory/__stack_pointer - local.get $4 + local.get $5 i32.store offset=4 - local.get $4 + local.get $5 local.get $1 call $"~lib/map/Map#get" local.get $1 @@ -23533,7 +21624,7 @@ i32.ne if i32.const 0 - i32.const 1776 + i32.const 1744 i32.const 20 i32.const 5 call $~lib/builtins/abort @@ -23547,15 +21638,15 @@ end end global.get $~lib/memory/__stack_pointer - local.get $4 + local.get $5 i32.store offset=4 - local.get $4 + local.get $5 call $"~lib/map/Map#get:size" i32.const 100 i32.ne if i32.const 0 - i32.const 1776 + i32.const 1744 i32.const 22 i32.const 3 call $~lib/builtins/abort @@ -23563,38 +21654,38 @@ end global.get $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - local.get $4 + local.get $5 i32.store offset=4 global.get $~lib/memory/__stack_pointer i32.const 8 i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 3104 + i32.const 2496 i32.lt_s br_if $folding-inner1 global.get $~lib/memory/__stack_pointer i64.const 0 i64.store global.get $~lib/memory/__stack_pointer - local.get $4 + local.get $5 i32.store - local.get $4 + local.get $5 i32.load offset=8 - local.set $6 + local.set $7 global.get $~lib/memory/__stack_pointer - local.get $4 + local.get $5 i32.store - local.get $4 + local.get $5 i32.load offset=16 - local.set $7 + local.set $8 global.get $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer i32.const 16 i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 3104 + i32.const 2496 i32.lt_s br_if $folding-inner1 global.get $~lib/memory/__stack_pointer @@ -23607,37 +21698,37 @@ i32.const 16 i32.const 53 call $~lib/rt/itcms/__new - local.tee $8 + local.tee $3 i32.store global.get $~lib/memory/__stack_pointer - local.get $8 + local.get $3 i32.store offset=4 - local.get $8 + local.get $3 i32.const 0 i32.store - local.get $8 + local.get $3 i32.const 0 i32.const 0 call $~lib/rt/itcms/__link global.get $~lib/memory/__stack_pointer - local.get $8 + local.get $3 i32.store offset=4 - local.get $8 + local.get $3 i32.const 0 i32.store offset=4 global.get $~lib/memory/__stack_pointer - local.get $8 + local.get $3 i32.store offset=4 - local.get $8 + local.get $3 i32.const 0 i32.store offset=8 global.get $~lib/memory/__stack_pointer - local.get $8 + local.get $3 i32.store offset=4 - local.get $8 + local.get $3 i32.const 0 i32.store offset=12 - local.get $7 + local.get $8 i32.const 134217727 i32.gt_u if @@ -23650,8 +21741,8 @@ end global.get $~lib/memory/__stack_pointer i32.const 8 - local.get $7 - local.get $7 + local.get $8 + local.get $8 i32.const 8 i32.le_u select @@ -23660,67 +21751,67 @@ local.tee $9 i32.const 1 call $~lib/rt/itcms/__new - local.tee $3 + local.tee $4 i32.store offset=8 global.get $~lib/memory/__stack_pointer - local.get $8 + local.get $3 i32.store offset=4 global.get $~lib/memory/__stack_pointer - local.get $3 + local.get $4 i32.store offset=12 - local.get $8 local.get $3 + local.get $4 i32.store - local.get $8 local.get $3 + local.get $4 i32.const 0 call $~lib/rt/itcms/__link global.get $~lib/memory/__stack_pointer - local.get $8 + local.get $3 i32.store offset=4 - local.get $8 local.get $3 + local.get $4 i32.store offset=4 global.get $~lib/memory/__stack_pointer - local.get $8 + local.get $3 i32.store offset=4 - local.get $8 + local.get $3 local.get $9 i32.store offset=8 global.get $~lib/memory/__stack_pointer - local.get $8 + local.get $3 i32.store offset=4 + local.get $3 local.get $8 - local.get $7 i32.store offset=12 global.get $~lib/memory/__stack_pointer i32.const 16 i32.add global.set $~lib/memory/__stack_pointer - local.get $8 + local.get $3 i32.store offset=4 loop $for-loop|00 local.get $2 - local.get $7 + local.get $8 i32.lt_s if - local.get $6 + local.get $7 local.get $2 i32.const 4 i32.shl i32.add - local.tee $3 + local.tee $4 i32.load offset=12 i32.const 1 i32.and i32.eqz if global.get $~lib/memory/__stack_pointer - local.get $8 + local.get $3 i32.store - local.get $8 - local.get $0 local.get $3 + local.get $0 + local.get $4 i64.load call $~lib/array/Array#__set local.get $0 @@ -23736,95 +21827,143 @@ end end global.get $~lib/memory/__stack_pointer - local.get $8 + local.get $3 i32.store - local.get $8 + local.get $3 local.get $0 call $~lib/array/Array#set:length global.get $~lib/memory/__stack_pointer i32.const 8 i32.add global.set $~lib/memory/__stack_pointer - local.get $8 + local.get $3 i32.store offset=8 global.get $~lib/memory/__stack_pointer - local.get $4 + local.get $5 i32.store offset=4 global.get $~lib/memory/__stack_pointer - local.get $4 + local.get $5 call $"~lib/map/Map#values" local.tee $0 i32.store offset=12 global.get $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 12 + i32.const 16 i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 3104 + i32.const 2496 i32.lt_s br_if $folding-inner1 global.get $~lib/memory/__stack_pointer i64.const 0 i64.store global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.store offset=8 + i64.const 0 + i64.store offset=8 global.get $~lib/memory/__stack_pointer - i32.const 56 - i32.const 2576 - call $~lib/rt/__newArray - local.tee $3 + i32.const 24 + i32.const 54 + call $~lib/rt/itcms/__new + local.tee $4 i32.store global.get $~lib/memory/__stack_pointer + local.get $4 + i32.store offset=4 + i32.const 16 + call $~lib/arraybuffer/ArrayBuffer#constructor + local.set $2 + global.get $~lib/memory/__stack_pointer + local.get $2 + i32.store offset=8 + local.get $4 + local.get $2 + i32.store + local.get $4 + local.get $2 i32.const 0 + call $~lib/rt/itcms/__link + global.get $~lib/memory/__stack_pointer + local.get $4 + i32.store offset=4 + local.get $4 + i32.const 3 i32.store offset=4 global.get $~lib/memory/__stack_pointer - local.get $3 + local.get $4 + i32.store offset=4 + i32.const 96 + call $~lib/arraybuffer/ArrayBuffer#constructor + local.set $2 + global.get $~lib/memory/__stack_pointer + local.get $2 i32.store offset=8 - local.get $3 - call $"~lib/map/Map#constructor" - local.set $3 + local.get $4 + local.get $2 + i32.store offset=8 + local.get $4 + local.get $2 + i32.const 0 + call $~lib/rt/itcms/__link global.get $~lib/memory/__stack_pointer - i32.const 12 + local.get $4 + i32.store offset=4 + local.get $4 + i32.const 4 + i32.store offset=12 + global.get $~lib/memory/__stack_pointer + local.get $4 + i32.store offset=4 + local.get $4 + i32.const 0 + i32.store offset=16 + global.get $~lib/memory/__stack_pointer + local.get $4 + i32.store offset=4 + local.get $4 + i32.const 0 + i32.store offset=20 + global.get $~lib/memory/__stack_pointer + i32.const 16 i32.add global.set $~lib/memory/__stack_pointer - local.get $3 + local.get $4 i32.store offset=16 global.get $~lib/memory/__stack_pointer - call $"~lib/map/Map#constructor@varargs" - local.tee $5 + i32.const 0 + call $"~lib/map/Map#constructor" + local.tee $6 i32.store offset=20 i32.const 0 local.set $2 loop $for-loop|2 global.get $~lib/memory/__stack_pointer - local.get $8 + local.get $3 i32.store offset=4 - local.get $8 + local.get $3 call $"~lib/array/Array<~lib/map/KeyValue>#get:length" local.get $2 i32.gt_s if global.get $~lib/memory/__stack_pointer - local.get $8 + local.get $3 i32.store offset=4 global.get $~lib/memory/__stack_pointer i32.const 4 i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 3104 + i32.const 2496 i32.lt_s br_if $folding-inner1 global.get $~lib/memory/__stack_pointer i32.const 0 i32.store global.get $~lib/memory/__stack_pointer - local.get $8 + local.get $3 i32.store local.get $2 - local.get $8 + local.get $3 i32.load offset=12 i32.ge_u if @@ -23836,9 +21975,9 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.get $8 + local.get $3 i32.store - local.get $8 + local.get $3 i32.load offset=4 local.get $2 i32.const 3 @@ -23856,27 +21995,27 @@ local.get $0 local.get $2 call $~lib/array/Array#__get - local.set $6 + local.set $7 global.get $~lib/memory/__stack_pointer - local.get $4 + local.get $5 i32.store offset=4 - local.get $4 + local.get $5 local.get $1 call $"~lib/map/Map#has" i32.eqz if i32.const 0 - i32.const 1776 + i32.const 1744 i32.const 32 i32.const 5 call $~lib/builtins/abort unreachable end global.get $~lib/memory/__stack_pointer - local.get $4 + local.get $5 i32.store offset=4 - local.get $4 - local.get $6 + local.get $5 + local.get $7 i32.const 20 i32.sub i64.extend_i32_s @@ -23884,28 +22023,28 @@ i32.eqz if i32.const 0 - i32.const 1776 + i32.const 1744 i32.const 33 i32.const 5 call $~lib/builtins/abort unreachable end global.get $~lib/memory/__stack_pointer - local.get $3 + local.get $4 i32.store offset=4 - local.get $3 + local.get $4 local.get $1 local.get $1 call $"~lib/map/Map#set" global.get $~lib/memory/__stack_pointer - local.get $5 + local.get $6 i32.store offset=4 - local.get $5 local.get $6 + local.get $7 i32.const 20 i32.sub - local.tee $6 - local.get $6 + local.tee $7 + local.get $7 call $"~lib/map/Map#set" local.get $2 i32.const 1 @@ -23915,30 +22054,30 @@ end end global.get $~lib/memory/__stack_pointer - local.get $3 + local.get $4 i32.store offset=4 - local.get $3 + local.get $4 call $"~lib/map/Map#get:size" i32.const 100 i32.ne if i32.const 0 - i32.const 1776 + i32.const 1744 i32.const 37 i32.const 3 call $~lib/builtins/abort unreachable end global.get $~lib/memory/__stack_pointer - local.get $5 + local.get $6 i32.store offset=4 - local.get $5 + local.get $6 call $"~lib/map/Map#get:size" i32.const 100 i32.ne if i32.const 0 - i32.const 1776 + i32.const 1744 i32.const 38 i32.const 3 call $~lib/builtins/abort @@ -23952,24 +22091,24 @@ i64.lt_u if global.get $~lib/memory/__stack_pointer - local.get $4 + local.get $5 i32.store offset=4 - local.get $4 + local.get $5 local.get $1 call $"~lib/map/Map#has" i32.eqz if i32.const 0 - i32.const 1776 + i32.const 1744 i32.const 42 i32.const 5 call $~lib/builtins/abort unreachable end global.get $~lib/memory/__stack_pointer - local.get $4 + local.get $5 i32.store offset=4 - local.get $4 + local.get $5 local.get $1 call $"~lib/map/Map#get" local.get $1 @@ -23979,27 +22118,27 @@ i32.ne if i32.const 0 - i32.const 1776 + i32.const 1744 i32.const 43 i32.const 5 call $~lib/builtins/abort unreachable end global.get $~lib/memory/__stack_pointer - local.get $4 + local.get $5 i32.store offset=4 - local.get $4 + local.get $5 local.get $1 call $"~lib/map/Map#delete" global.get $~lib/memory/__stack_pointer - local.get $4 + local.get $5 i32.store offset=4 - local.get $4 + local.get $5 local.get $1 call $"~lib/map/Map#has" if i32.const 0 - i32.const 1776 + i32.const 1744 i32.const 45 i32.const 5 call $~lib/builtins/abort @@ -24013,15 +22152,15 @@ end end global.get $~lib/memory/__stack_pointer - local.get $4 + local.get $5 i32.store offset=4 - local.get $4 + local.get $5 call $"~lib/map/Map#get:size" i32.const 50 i32.ne if i32.const 0 - i32.const 1776 + i32.const 1744 i32.const 47 i32.const 3 call $~lib/builtins/abort @@ -24035,23 +22174,23 @@ i64.lt_u if global.get $~lib/memory/__stack_pointer - local.get $4 + local.get $5 i32.store offset=4 - local.get $4 + local.get $5 local.get $1 call $"~lib/map/Map#has" if i32.const 0 - i32.const 1776 + i32.const 1744 i32.const 51 i32.const 5 call $~lib/builtins/abort unreachable end global.get $~lib/memory/__stack_pointer - local.get $4 + local.get $5 i32.store offset=4 - local.get $4 + local.get $5 local.get $1 local.get $1 i32.wrap_i64 @@ -24059,35 +22198,35 @@ i32.add call $"~lib/map/Map#set" global.get $~lib/memory/__stack_pointer - local.get $4 + local.get $5 i32.store offset=4 - local.get $4 + local.get $5 local.get $1 call $"~lib/map/Map#has" i32.eqz if i32.const 0 - i32.const 1776 + i32.const 1744 i32.const 53 i32.const 5 call $~lib/builtins/abort unreachable end global.get $~lib/memory/__stack_pointer - local.get $4 + local.get $5 i32.store offset=4 - local.get $4 + local.get $5 local.get $1 call $"~lib/map/Map#delete" global.get $~lib/memory/__stack_pointer - local.get $4 + local.get $5 i32.store offset=4 - local.get $4 + local.get $5 local.get $1 call $"~lib/map/Map#has" if i32.const 0 - i32.const 1776 + i32.const 1744 i32.const 55 i32.const 5 call $~lib/builtins/abort @@ -24101,33 +22240,33 @@ end end global.get $~lib/memory/__stack_pointer - local.get $4 + local.get $5 i32.store offset=4 - local.get $4 + local.get $5 call $"~lib/map/Map#get:size" i32.const 50 i32.ne if i32.const 0 - i32.const 1776 + i32.const 1744 i32.const 57 i32.const 3 call $~lib/builtins/abort unreachable end global.get $~lib/memory/__stack_pointer - local.get $4 + local.get $5 i32.store offset=4 - local.get $4 + local.get $5 call $"~lib/map/Map#clear" global.get $~lib/memory/__stack_pointer - local.get $4 + local.get $5 i32.store offset=4 - local.get $4 + local.get $5 call $"~lib/map/Map#get:size" if i32.const 0 - i32.const 1776 + i32.const 1744 i32.const 61 i32.const 3 call $~lib/builtins/abort @@ -24135,7 +22274,7 @@ end global.get $~lib/memory/__stack_pointer i32.const 52 - i32.const 2608 + i32.const 2128 call $~lib/rt/__newArray local.tee $0 i32.store offset=24 @@ -24155,7 +22294,7 @@ i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 3104 + i32.const 2496 i32.lt_s br_if $folding-inner1 global.get $~lib/memory/__stack_pointer @@ -24238,7 +22377,7 @@ i32.ne if i32.const 0 - i32.const 1776 + i32.const 1744 i32.const 74 i32.const 3 call $~lib/builtins/abort @@ -24260,7 +22399,7 @@ i32.eqz if i32.const 0 - i32.const 1776 + i32.const 1744 i32.const 76 i32.const 5 call $~lib/builtins/abort @@ -24279,7 +22418,7 @@ i32.ne if i32.const 0 - i32.const 1776 + i32.const 1744 i32.const 77 i32.const 5 call $~lib/builtins/abort @@ -24299,7 +22438,7 @@ call $"~lib/map/Map#has" if i32.const 0 - i32.const 1776 + i32.const 1744 i32.const 79 i32.const 5 call $~lib/builtins/abort @@ -24319,7 +22458,7 @@ call $"~lib/map/Map#get:size" if i32.const 0 - i32.const 1776 + i32.const 1744 i32.const 81 i32.const 3 call $~lib/builtins/abort @@ -24331,8 +22470,8 @@ global.set $~lib/memory/__stack_pointer return end - i32.const 35904 - i32.const 35952 + i32.const 35296 + i32.const 35344 i32.const 1 i32.const 1 call $~lib/builtins/abort @@ -24352,11 +22491,11 @@ i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 3104 + i32.const 2496 i32.lt_s if - i32.const 35904 - i32.const 35952 + i32.const 35296 + i32.const 35344 i32.const 1 i32.const 1 call $~lib/builtins/abort @@ -24542,11 +22681,11 @@ i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 3104 + i32.const 2496 i32.lt_s if - i32.const 35904 - i32.const 35952 + i32.const 35296 + i32.const 35344 i32.const 1 i32.const 1 call $~lib/builtins/abort @@ -24617,17 +22756,16 @@ (local $5 i32) (local $6 i32) (local $7 i32) - (local $8 i32) global.get $~lib/memory/__stack_pointer i32.const 16 i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 3104 + i32.const 2496 i32.lt_s if - i32.const 35904 - i32.const 35952 + i32.const 35296 + i32.const 35344 i32.const 1 i32.const 1 call $~lib/builtins/abort @@ -24701,19 +22839,16 @@ local.get $1 i32.const 0 i32.store offset=20 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 - call $"~lib/array/Array<~lib/map/KeyValue>#get:length" - local.tee $4 - i32.const 0 - i32.gt_s + local.get $0 if + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + local.get $0 + call $"~lib/array/Array<~lib/map/KeyValue>#get:length" global.get $~lib/memory/__stack_pointer local.get $1 i32.store offset=4 - local.get $4 local.get $1 i32.load offset=12 i32.ge_s @@ -24721,8 +22856,12 @@ global.get $~lib/memory/__stack_pointer local.get $1 i32.store offset=4 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=8 local.get $1 - local.get $4 + local.get $0 + call $"~lib/array/Array<~lib/map/KeyValue>#get:length" i32.store offset=4 end global.get $~lib/memory/__stack_pointer @@ -24740,9 +22879,13 @@ i32.or call $"~lib/map/Map#rehash" loop $for-loop|0 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + local.get $0 + call $"~lib/array/Array<~lib/map/KeyValue>#get:length" local.get $2 - local.get $4 - i32.lt_s + i32.gt_s if global.get $~lib/memory/__stack_pointer local.get $0 @@ -24750,11 +22893,11 @@ local.get $0 local.get $2 call $"~lib/array/Array<~lib/map/KeyValue>#__get" - local.set $5 + local.set $4 global.get $~lib/memory/__stack_pointer - local.get $5 + local.get $4 i32.store offset=4 - local.get $5 + local.get $4 f32.load local.set $3 global.get $~lib/memory/__stack_pointer @@ -24763,13 +22906,13 @@ local.get $0 local.get $2 call $"~lib/array/Array<~lib/map/KeyValue>#__get" - local.set $5 + local.set $4 global.get $~lib/memory/__stack_pointer - local.get $5 + local.get $4 i32.store offset=4 - local.get $5 + local.get $4 i32.load offset=4 - local.set $6 + local.set $5 global.get $~lib/memory/__stack_pointer local.get $1 i32.store offset=4 @@ -24785,31 +22928,31 @@ i32.rotl i32.const 668265263 i32.mul - local.tee $5 + local.tee $4 i32.const 15 i32.shr_u - local.get $5 + local.get $4 i32.xor i32.const -2048144777 i32.mul - local.tee $5 + local.tee $4 i32.const 13 i32.shr_u - local.get $5 + local.get $4 i32.xor i32.const -1028477379 i32.mul - local.tee $5 + local.tee $4 i32.const 16 i32.shr_u - local.get $5 + local.get $4 i32.xor - local.tee $7 + local.tee $6 call $"~lib/map/Map#find" - local.tee $5 + local.tee $4 if + local.get $4 local.get $5 - local.get $6 i32.store offset=4 else global.get $~lib/memory/__stack_pointer @@ -24818,7 +22961,7 @@ global.get $~lib/memory/__stack_pointer local.get $1 i32.load offset=8 - local.tee $5 + local.tee $4 i32.store offset=12 global.get $~lib/memory/__stack_pointer local.get $1 @@ -24829,20 +22972,20 @@ local.get $1 local.get $1 i32.load offset=16 - local.tee $8 + local.tee $7 i32.const 1 i32.add i32.store offset=16 - local.get $5 - local.get $8 + local.get $4 + local.get $7 i32.const 12 i32.mul i32.add - local.tee $5 + local.tee $4 local.get $3 f32.store + local.get $4 local.get $5 - local.get $6 i32.store offset=4 global.get $~lib/memory/__stack_pointer local.get $1 @@ -24861,24 +23004,24 @@ i32.store offset=4 local.get $1 i32.load - local.set $6 + local.set $5 global.get $~lib/memory/__stack_pointer local.get $1 i32.store offset=4 + local.get $4 local.get $5 local.get $6 - local.get $7 local.get $1 i32.load offset=4 i32.and i32.const 2 i32.shl i32.add - local.tee $6 + local.tee $5 i32.load i32.store offset=8 - local.get $6 local.get $5 + local.get $4 i32.store end local.get $2 @@ -24901,11 +23044,11 @@ i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 3104 + i32.const 2496 i32.lt_s if - i32.const 35904 - i32.const 35952 + i32.const 35296 + i32.const 35344 i32.const 1 i32.const 1 call $~lib/builtins/abort @@ -24965,11 +23108,11 @@ i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 3104 + i32.const 2496 i32.lt_s if - i32.const 35904 - i32.const 35952 + i32.const 35296 + i32.const 35344 i32.const 1 i32.const 1 call $~lib/builtins/abort @@ -25155,11 +23298,11 @@ i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 3104 + i32.const 2496 i32.lt_s if - i32.const 35904 - i32.const 35952 + i32.const 35296 + i32.const 35344 i32.const 1 i32.const 1 call $~lib/builtins/abort @@ -25206,9 +23349,9 @@ local.tee $0 i32.eqz if - i32.const 1824 - i32.const 1888 - i32.const 148 + i32.const 1792 + i32.const 1856 + i32.const 146 i32.const 17 call $~lib/builtins/abort unreachable @@ -25234,7 +23377,7 @@ global.set $~lib/memory/__stack_pointer block $folding-inner1 global.get $~lib/memory/__stack_pointer - i32.const 3104 + i32.const 2496 i32.lt_s br_if $folding-inner1 global.get $~lib/memory/__stack_pointer @@ -25258,7 +23401,7 @@ i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 3104 + i32.const 2496 i32.lt_s br_if $folding-inner1 global.get $~lib/memory/__stack_pointer @@ -25395,7 +23538,7 @@ i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 3104 + i32.const 2496 i32.lt_s br_if $folding-inner1 global.get $~lib/memory/__stack_pointer @@ -25416,550 +23559,446 @@ i32.const 1360 i32.const 1568 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 $7 - i32.const 2 - i32.const 1 - call $~lib/array/ensureCapacity - global.get $~lib/memory/__stack_pointer - local.get $6 - i32.store - local.get $6 - local.get $7 - i32.store offset=12 - end - global.get $~lib/memory/__stack_pointer - local.get $6 - i32.store - local.get $6 - i32.load offset=4 - local.get $0 - i32.const 2 - i32.shl - i32.add - local.get $4 - f32.store - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.add - global.set $~lib/memory/__stack_pointer - end - local.get $2 - i32.const 1 - i32.add - local.set $2 - br $for-loop|0 - end - end - global.get $~lib/memory/__stack_pointer - local.get $6 - i32.store - local.get $6 - local.get $1 - call $~lib/array/Array#set:length - global.get $~lib/memory/__stack_pointer - i32.const 8 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $6 - return - end - i32.const 35904 - i32.const 35952 - i32.const 1 - i32.const 1 - call $~lib/builtins/abort - unreachable - ) - (func $"~lib/map/Map#rehash" (param $0 i32) (param $1 i32) - (local $2 i32) - (local $3 i32) - (local $4 f32) - (local $5 i32) - (local $6 i32) - (local $7 i32) - (local $8 i32) - (local $9 i32) - global.get $~lib/memory/__stack_pointer - i32.const 16 - i32.sub - global.set $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - i32.const 3104 - i32.lt_s - if - i32.const 35904 - i32.const 35952 - i32.const 1 - i32.const 1 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - i64.const 0 - i64.store - global.get $~lib/memory/__stack_pointer - i64.const 0 - i64.store offset=8 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.const 1 - i32.add - local.tee $2 - i32.const 2 - i32.shl - call $~lib/arraybuffer/ArrayBuffer#constructor - local.tee $7 - i32.store - global.get $~lib/memory/__stack_pointer - local.get $2 - i32.const 3 - i32.shl - i32.const 3 - i32.div_s - local.tee $6 - i32.const 12 - i32.mul - call $~lib/arraybuffer/ArrayBuffer#constructor - local.tee $3 - i32.store offset=4 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=8 - local.get $0 - i32.load offset=8 - local.set $8 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=8 - local.get $8 - local.get $0 - i32.load offset=16 - i32.const 12 - i32.mul - i32.add - local.set $5 - local.get $3 - local.set $2 - loop $while-continue|0 - local.get $5 - local.get $8 - i32.ne - if - local.get $8 - i32.load offset=8 - i32.const 1 - i32.and - i32.eqz - if - local.get $2 - local.get $8 - f32.load - local.tee $4 - f32.store - local.get $2 - local.get $8 - f32.load offset=4 - f32.store offset=4 - local.get $2 - local.get $7 - local.get $1 - local.get $4 - i32.reinterpret_f32 - i32.const -1028477379 - i32.mul - i32.const 374761397 - i32.add - i32.const 17 - i32.rotl - i32.const 668265263 - i32.mul - local.tee $9 - local.get $9 - i32.const 15 - i32.shr_u - i32.xor - i32.const -2048144777 - i32.mul - local.tee $9 - local.get $9 - i32.const 13 - i32.shr_u - i32.xor - i32.const -1028477379 - i32.mul - local.tee $9 - local.get $9 - i32.const 16 - i32.shr_u - i32.xor - i32.and - i32.const 2 - i32.shl - i32.add - local.tee $9 - i32.load - i32.store offset=8 - local.get $9 - local.get $2 - i32.store + i32.const 22 + call $~lib/builtins/abort + unreachable + end + local.get $6 + local.get $0 + i32.const 1 + i32.add + local.tee $7 + i32.const 2 + i32.const 1 + call $~lib/array/ensureCapacity + global.get $~lib/memory/__stack_pointer + local.get $6 + i32.store + local.get $6 + local.get $7 + i32.store offset=12 + end + global.get $~lib/memory/__stack_pointer + local.get $6 + i32.store + local.get $6 + i32.load offset=4 + local.get $0 + i32.const 2 + i32.shl + i32.add + local.get $4 + f32.store + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + end local.get $2 - i32.const 12 + i32.const 1 i32.add local.set $2 + br $for-loop|0 end - local.get $8 - i32.const 12 - i32.add - local.set $8 - br $while-continue|0 end + global.get $~lib/memory/__stack_pointer + local.get $6 + i32.store + local.get $6 + local.get $1 + call $~lib/array/Array#set:length + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $6 + return end - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=8 - global.get $~lib/memory/__stack_pointer - local.get $7 - i32.store offset=12 - local.get $0 - local.get $7 - i32.store - local.get $0 - local.get $7 - i32.const 0 - call $~lib/rt/itcms/__link - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=8 - local.get $0 - local.get $1 - i32.store offset=4 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=8 - global.get $~lib/memory/__stack_pointer - local.get $3 - i32.store offset=12 - local.get $0 - local.get $3 - i32.store offset=8 - local.get $0 - local.get $3 - i32.const 0 - call $~lib/rt/itcms/__link - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=8 - local.get $0 - local.get $6 - i32.store offset=12 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=8 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=12 - local.get $0 - local.get $0 - i32.load offset=20 - i32.store offset=16 - global.get $~lib/memory/__stack_pointer - i32.const 16 - i32.add - global.set $~lib/memory/__stack_pointer + i32.const 35296 + i32.const 35344 + i32.const 1 + i32.const 1 + call $~lib/builtins/abort + unreachable ) - (func $"~lib/map/Map#constructor" (param $0 i32) (result i32) - (local $1 i32) - (local $2 i32) - (local $3 f32) - (local $4 f32) - (local $5 i32) + (func $"~lib/map/Map#set" (param $0 i32) (param $1 f32) (param $2 f32) + (local $3 i32) + (local $4 i32) + (local $5 f32) (local $6 i32) (local $7 i32) (local $8 i32) + (local $9 i32) + (local $10 i32) + (local $11 i32) + (local $12 i32) global.get $~lib/memory/__stack_pointer - i32.const 16 + i32.const 12 i32.sub global.set $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - i32.const 3104 - i32.lt_s - if - i32.const 35904 - i32.const 35952 - i32.const 1 - i32.const 1 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - i64.const 0 - i64.store - global.get $~lib/memory/__stack_pointer - i64.const 0 - i64.store offset=8 - global.get $~lib/memory/__stack_pointer - i32.const 24 - i32.const 61 - call $~lib/rt/itcms/__new - local.tee $1 - i32.store - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - i32.const 16 - call $~lib/arraybuffer/ArrayBuffer#constructor - local.set $5 - global.get $~lib/memory/__stack_pointer - local.get $5 - i32.store offset=8 - local.get $1 - local.get $5 - i32.store - local.get $1 - local.get $5 - i32.const 0 - call $~lib/rt/itcms/__link - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - local.get $1 - i32.const 3 - i32.store offset=4 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - i32.const 48 - call $~lib/arraybuffer/ArrayBuffer#constructor - local.set $5 - global.get $~lib/memory/__stack_pointer - local.get $5 - i32.store offset=8 - local.get $1 - local.get $5 - i32.store offset=8 - local.get $1 - local.get $5 - i32.const 0 - call $~lib/rt/itcms/__link - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - local.get $1 - i32.const 4 - i32.store offset=12 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - local.get $1 - i32.const 0 - i32.store offset=16 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - local.get $1 - i32.const 0 - i32.store offset=20 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 - call $"~lib/array/Array<~lib/map/KeyValue>#get:length" - local.tee $5 - i32.const 0 - i32.gt_s - if + block $folding-inner0 global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - local.get $5 - local.get $1 - i32.load offset=12 - i32.ge_s - if - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - local.get $1 - local.get $5 - i32.store offset=4 - end + i32.const 2496 + i32.lt_s + br_if $folding-inner0 global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 + i64.const 0 + i64.store global.get $~lib/memory/__stack_pointer - local.get $1 + i32.const 0 i32.store offset=8 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + local.get $0 local.get $1 local.get $1 - i32.load offset=4 - i32.const 1 - i32.shl - i32.const 1 - i32.or - call $"~lib/map/Map#rehash" - loop $for-loop|0 + i32.reinterpret_f32 + i32.const -1028477379 + i32.mul + i32.const 374761397 + i32.add + i32.const 17 + i32.rotl + i32.const 668265263 + i32.mul + local.tee $3 + i32.const 15 + i32.shr_u + local.get $3 + i32.xor + i32.const -2048144777 + i32.mul + local.tee $3 + i32.const 13 + i32.shr_u + local.get $3 + i32.xor + i32.const -1028477379 + i32.mul + local.tee $3 + i32.const 16 + i32.shr_u + local.get $3 + i32.xor + local.tee $8 + call $"~lib/map/Map#find" + local.tee $3 + if + local.get $3 local.get $2 - local.get $5 - i32.lt_s + f32.store offset=4 + else + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + local.get $0 + i32.load offset=16 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + local.get $0 + i32.load offset=12 + i32.eq if global.get $~lib/memory/__stack_pointer local.get $0 - i32.store offset=8 - local.get $0 - local.get $2 - call $"~lib/array/Array<~lib/map/KeyValue>#__get" - local.set $6 - global.get $~lib/memory/__stack_pointer - local.get $6 - i32.store offset=4 - local.get $6 - f32.load - local.set $3 + i32.store global.get $~lib/memory/__stack_pointer local.get $0 - i32.store offset=8 - local.get $0 - local.get $2 - call $"~lib/array/Array<~lib/map/KeyValue>#__get" - local.set $6 - global.get $~lib/memory/__stack_pointer - local.get $6 i32.store offset=4 - local.get $6 - f32.load offset=4 - local.set $4 + local.get $0 + i32.load offset=20 global.get $~lib/memory/__stack_pointer - local.get $1 + local.get $0 i32.store offset=4 - local.get $1 - local.get $3 - local.get $3 - i32.reinterpret_f32 - i32.const -1028477379 - i32.mul - i32.const 374761397 - i32.add - i32.const 17 - i32.rotl - i32.const 668265263 - i32.mul - local.tee $6 - i32.const 15 - i32.shr_u - local.get $6 - i32.xor - i32.const -2048144777 - i32.mul - local.tee $6 - i32.const 13 - i32.shr_u - local.get $6 - i32.xor - i32.const -1028477379 + local.get $0 + i32.load offset=12 + i32.const 3 i32.mul - local.tee $6 - i32.const 16 - i32.shr_u - local.get $6 - i32.xor - local.tee $6 - call $"~lib/map/Map#find" - local.tee $7 - if - local.get $7 - local.get $4 - f32.store offset=4 - else - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.load offset=8 - local.tee $7 - i32.store offset=12 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=8 - local.get $1 - local.get $1 - i32.load offset=16 - local.tee $8 - i32.const 1 - i32.add - i32.store offset=16 - local.get $7 - local.get $8 - i32.const 12 - i32.mul - i32.add - local.tee $7 - local.get $3 - f32.store - local.get $7 - local.get $4 - f32.store offset=4 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=8 - local.get $1 - local.get $1 - i32.load offset=20 - i32.const 1 - i32.add - i32.store offset=20 + i32.const 4 + i32.div_s + i32.lt_s + if (result i32) global.get $~lib/memory/__stack_pointer - local.get $1 + local.get $0 i32.store offset=4 - local.get $1 - i32.load - local.set $8 + local.get $0 + i32.load offset=4 + else global.get $~lib/memory/__stack_pointer - local.get $1 + local.get $0 i32.store offset=4 - local.get $7 - local.get $8 - local.get $6 - local.get $1 + local.get $0 i32.load offset=4 - i32.and - i32.const 2 + i32.const 1 i32.shl - i32.add - local.tee $6 - i32.load - i32.store offset=8 - local.get $6 - local.get $7 - i32.store + i32.const 1 + i32.or end - local.get $2 + local.set $9 + global.get $~lib/memory/__stack_pointer + i32.const 16 + i32.sub + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 2496 + i32.lt_s + br_if $folding-inner0 + global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store + global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store offset=8 + global.get $~lib/memory/__stack_pointer + local.get $9 i32.const 1 i32.add - local.set $2 - br $for-loop|0 + local.tee $3 + i32.const 2 + i32.shl + call $~lib/arraybuffer/ArrayBuffer#constructor + local.tee $10 + i32.store + global.get $~lib/memory/__stack_pointer + local.get $3 + i32.const 3 + i32.shl + i32.const 3 + i32.div_s + local.tee $7 + i32.const 12 + i32.mul + call $~lib/arraybuffer/ArrayBuffer#constructor + local.tee $4 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=8 + local.get $0 + i32.load offset=8 + local.set $11 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=8 + local.get $11 + local.get $0 + i32.load offset=16 + i32.const 12 + i32.mul + i32.add + local.set $6 + local.get $4 + local.set $3 + loop $while-continue|0 + local.get $6 + local.get $11 + i32.ne + if + local.get $11 + i32.load offset=8 + i32.const 1 + i32.and + i32.eqz + if + local.get $3 + local.get $11 + f32.load + local.tee $5 + f32.store + local.get $3 + local.get $11 + f32.load offset=4 + f32.store offset=4 + local.get $3 + local.get $10 + local.get $9 + local.get $5 + i32.reinterpret_f32 + i32.const -1028477379 + i32.mul + i32.const 374761397 + i32.add + i32.const 17 + i32.rotl + i32.const 668265263 + i32.mul + local.tee $12 + local.get $12 + i32.const 15 + i32.shr_u + i32.xor + i32.const -2048144777 + i32.mul + local.tee $12 + local.get $12 + i32.const 13 + i32.shr_u + i32.xor + i32.const -1028477379 + i32.mul + local.tee $12 + local.get $12 + i32.const 16 + i32.shr_u + i32.xor + i32.and + i32.const 2 + i32.shl + i32.add + local.tee $12 + i32.load + i32.store offset=8 + local.get $12 + local.get $3 + i32.store + local.get $3 + i32.const 12 + i32.add + local.set $3 + end + local.get $11 + i32.const 12 + i32.add + local.set $11 + br $while-continue|0 + end + end + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=8 + global.get $~lib/memory/__stack_pointer + local.get $10 + i32.store offset=12 + local.get $0 + local.get $10 + i32.store + local.get $0 + local.get $10 + i32.const 0 + call $~lib/rt/itcms/__link + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=8 + local.get $0 + local.get $9 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=8 + global.get $~lib/memory/__stack_pointer + local.get $4 + i32.store offset=12 + local.get $0 + local.get $4 + i32.store offset=8 + local.get $0 + local.get $4 + i32.const 0 + call $~lib/rt/itcms/__link + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=8 + local.get $0 + local.get $7 + i32.store offset=12 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=8 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=12 + local.get $0 + local.get $0 + i32.load offset=20 + i32.store offset=16 + global.get $~lib/memory/__stack_pointer + i32.const 16 + i32.add + global.set $~lib/memory/__stack_pointer end + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.load offset=8 + local.tee $3 + i32.store offset=8 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + local.get $0 + local.get $0 + i32.load offset=16 + local.tee $4 + i32.const 1 + i32.add + i32.store offset=16 + local.get $3 + local.get $4 + i32.const 12 + i32.mul + i32.add + local.tee $3 + local.get $1 + f32.store + local.get $3 + local.get $2 + f32.store offset=4 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + local.get $0 + local.get $0 + i32.load offset=20 + i32.const 1 + i32.add + i32.store offset=20 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + local.get $0 + i32.load + local.set $4 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + local.get $3 + local.get $4 + local.get $8 + local.get $0 + i32.load offset=4 + i32.and + i32.const 2 + i32.shl + i32.add + local.tee $0 + i32.load + i32.store offset=8 + local.get $0 + local.get $3 + i32.store end + global.get $~lib/memory/__stack_pointer + i32.const 12 + i32.add + global.set $~lib/memory/__stack_pointer + return end - global.get $~lib/memory/__stack_pointer - i32.const 16 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $1 + i32.const 35296 + i32.const 35344 + i32.const 1 + i32.const 1 + call $~lib/builtins/abort + unreachable ) (func $"~lib/map/Map#delete" (param $0 i32) (param $1 f32) (local $2 i32) @@ -25969,11 +24008,11 @@ i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 3104 + i32.const 2496 i32.lt_s if - i32.const 35904 - i32.const 35952 + i32.const 35296 + i32.const 35344 i32.const 1 i32.const 1 call $~lib/builtins/abort @@ -26108,16 +24147,13 @@ (local $5 i32) (local $6 i32) (local $7 i32) - (local $8 i32) - (local $9 i32) - (local $10 i32) global.get $~lib/memory/__stack_pointer i32.const 40 i32.sub global.set $~lib/memory/__stack_pointer block $folding-inner1 global.get $~lib/memory/__stack_pointer - i32.const 3104 + i32.const 2496 i32.lt_s br_if $folding-inner1 global.get $~lib/memory/__stack_pointer @@ -26125,40 +24161,9 @@ i32.const 40 memory.fill global.get $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - i32.const 12 - i32.sub - global.set $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - i32.const 3104 - i32.lt_s - br_if $folding-inner1 - global.get $~lib/memory/__stack_pointer - i64.const 0 - i64.store - global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.store offset=8 - global.get $~lib/memory/__stack_pointer - i32.const 59 - i32.const 2640 - call $~lib/rt/__newArray - local.tee $2 - i32.store - global.get $~lib/memory/__stack_pointer i32.const 0 - i32.store offset=4 - global.get $~lib/memory/__stack_pointer - local.get $2 - i32.store offset=8 - local.get $2 call $"~lib/map/Map#constructor" - local.set $2 - global.get $~lib/memory/__stack_pointer - i32.const 12 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $2 + local.tee $4 i32.store loop $for-loop|0 local.get $1 @@ -26166,23 +24171,23 @@ f32.lt if global.get $~lib/memory/__stack_pointer - local.get $2 + local.get $4 i32.store offset=4 - local.get $2 + local.get $4 local.get $1 call $"~lib/map/Map#has" if i32.const 0 - i32.const 1776 + i32.const 1744 i32.const 7 i32.const 5 call $~lib/builtins/abort unreachable end global.get $~lib/memory/__stack_pointer - local.get $2 + local.get $4 i32.store offset=4 - local.get $2 + local.get $4 local.get $1 local.get $1 i32.trunc_sat_f32_s @@ -26190,24 +24195,24 @@ i32.add call $"~lib/map/Map#set" global.get $~lib/memory/__stack_pointer - local.get $2 + local.get $4 i32.store offset=4 - local.get $2 + local.get $4 local.get $1 call $"~lib/map/Map#has" i32.eqz if i32.const 0 - i32.const 1776 + i32.const 1744 i32.const 9 i32.const 5 call $~lib/builtins/abort unreachable end global.get $~lib/memory/__stack_pointer - local.get $2 + local.get $4 i32.store offset=4 - local.get $2 + local.get $4 local.get $1 call $"~lib/map/Map#get" local.get $1 @@ -26217,7 +24222,7 @@ i32.ne if i32.const 0 - i32.const 1776 + i32.const 1744 i32.const 10 i32.const 5 call $~lib/builtins/abort @@ -26231,15 +24236,15 @@ end end global.get $~lib/memory/__stack_pointer - local.get $2 + local.get $4 i32.store offset=4 - local.get $2 + local.get $4 call $"~lib/map/Map#get:size" i32.const 100 i32.ne if i32.const 0 - i32.const 1776 + i32.const 1744 i32.const 12 i32.const 3 call $~lib/builtins/abort @@ -26253,24 +24258,24 @@ f32.lt if global.get $~lib/memory/__stack_pointer - local.get $2 + local.get $4 i32.store offset=4 - local.get $2 + local.get $4 local.get $1 call $"~lib/map/Map#has" i32.eqz if i32.const 0 - i32.const 1776 + i32.const 1744 i32.const 16 i32.const 5 call $~lib/builtins/abort unreachable end global.get $~lib/memory/__stack_pointer - local.get $2 + local.get $4 i32.store offset=4 - local.get $2 + local.get $4 local.get $1 call $"~lib/map/Map#get" local.get $1 @@ -26280,16 +24285,16 @@ i32.ne if i32.const 0 - i32.const 1776 + i32.const 1744 i32.const 17 i32.const 5 call $~lib/builtins/abort unreachable end global.get $~lib/memory/__stack_pointer - local.get $2 + local.get $4 i32.store offset=4 - local.get $2 + local.get $4 local.get $1 local.get $1 i32.trunc_sat_f32_s @@ -26297,24 +24302,24 @@ i32.add call $"~lib/map/Map#set" global.get $~lib/memory/__stack_pointer - local.get $2 + local.get $4 i32.store offset=4 - local.get $2 + local.get $4 local.get $1 call $"~lib/map/Map#has" i32.eqz if i32.const 0 - i32.const 1776 + i32.const 1744 i32.const 19 i32.const 5 call $~lib/builtins/abort unreachable end global.get $~lib/memory/__stack_pointer - local.get $2 + local.get $4 i32.store offset=4 - local.get $2 + local.get $4 local.get $1 call $"~lib/map/Map#get" local.get $1 @@ -26324,7 +24329,7 @@ i32.ne if i32.const 0 - i32.const 1776 + i32.const 1744 i32.const 20 i32.const 5 call $~lib/builtins/abort @@ -26338,104 +24343,152 @@ end end global.get $~lib/memory/__stack_pointer - local.get $2 + local.get $4 i32.store offset=4 - local.get $2 + local.get $4 call $"~lib/map/Map#get:size" i32.const 100 i32.ne if i32.const 0 - i32.const 1776 + i32.const 1744 i32.const 22 i32.const 3 call $~lib/builtins/abort unreachable end global.get $~lib/memory/__stack_pointer - local.get $2 + local.get $4 i32.store offset=4 global.get $~lib/memory/__stack_pointer - local.get $2 + local.get $4 call $"~lib/map/Map#keys" - local.tee $3 + local.tee $2 i32.store offset=8 global.get $~lib/memory/__stack_pointer - local.get $2 + local.get $4 i32.store offset=4 global.get $~lib/memory/__stack_pointer - local.get $2 + local.get $4 call $"~lib/map/Map#values" local.tee $5 i32.store offset=12 global.get $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 12 + i32.const 16 i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 3104 + i32.const 2496 i32.lt_s br_if $folding-inner1 global.get $~lib/memory/__stack_pointer i64.const 0 i64.store global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.store offset=8 + i64.const 0 + i64.store offset=8 global.get $~lib/memory/__stack_pointer - i32.const 63 - i32.const 2672 - call $~lib/rt/__newArray - local.tee $6 + i32.const 24 + i32.const 61 + call $~lib/rt/itcms/__new + local.tee $3 i32.store global.get $~lib/memory/__stack_pointer - i32.const 0 + local.get $3 i32.store offset=4 + i32.const 16 + call $~lib/arraybuffer/ArrayBuffer#constructor + local.set $6 global.get $~lib/memory/__stack_pointer local.get $6 i32.store offset=8 + local.get $3 local.get $6 - call $"~lib/map/Map#constructor" + i32.store + local.get $3 + local.get $6 + i32.const 0 + call $~lib/rt/itcms/__link + global.get $~lib/memory/__stack_pointer + local.get $3 + i32.store offset=4 + local.get $3 + i32.const 3 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + local.get $3 + i32.store offset=4 + i32.const 48 + call $~lib/arraybuffer/ArrayBuffer#constructor local.set $6 global.get $~lib/memory/__stack_pointer - i32.const 12 + local.get $6 + i32.store offset=8 + local.get $3 + local.get $6 + i32.store offset=8 + local.get $3 + local.get $6 + i32.const 0 + call $~lib/rt/itcms/__link + global.get $~lib/memory/__stack_pointer + local.get $3 + i32.store offset=4 + local.get $3 + i32.const 4 + i32.store offset=12 + global.get $~lib/memory/__stack_pointer + local.get $3 + i32.store offset=4 + local.get $3 + i32.const 0 + i32.store offset=16 + global.get $~lib/memory/__stack_pointer + local.get $3 + i32.store offset=4 + local.get $3 + i32.const 0 + i32.store offset=20 + global.get $~lib/memory/__stack_pointer + i32.const 16 i32.add global.set $~lib/memory/__stack_pointer - local.get $6 + local.get $3 i32.store offset=16 global.get $~lib/memory/__stack_pointer - call $"~lib/map/Map#constructor@varargs" - local.tee $4 + i32.const 0 + call $"~lib/map/Map#constructor" + local.tee $6 i32.store offset=20 loop $for-loop|2 global.get $~lib/memory/__stack_pointer - local.get $3 + local.get $2 i32.store offset=4 - local.get $3 + local.get $2 call $"~lib/array/Array<~lib/map/KeyValue>#get:length" local.get $0 i32.gt_s if global.get $~lib/memory/__stack_pointer - local.get $3 + local.get $2 i32.store offset=4 global.get $~lib/memory/__stack_pointer i32.const 4 i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 3104 + i32.const 2496 i32.lt_s br_if $folding-inner1 global.get $~lib/memory/__stack_pointer i32.const 0 i32.store global.get $~lib/memory/__stack_pointer - local.get $3 + local.get $2 i32.store local.get $0 - local.get $3 + local.get $2 i32.load offset=12 i32.ge_u if @@ -26447,9 +24500,9 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.get $3 + local.get $2 i32.store - local.get $3 + local.get $2 i32.load offset=4 local.get $0 i32.const 2 @@ -26469,24 +24522,24 @@ call $~lib/array/Array#__get local.set $7 global.get $~lib/memory/__stack_pointer - local.get $2 + local.get $4 i32.store offset=4 - local.get $2 + local.get $4 local.get $1 call $"~lib/map/Map#has" i32.eqz if i32.const 0 - i32.const 1776 + i32.const 1744 i32.const 32 i32.const 5 call $~lib/builtins/abort unreachable end global.get $~lib/memory/__stack_pointer - local.get $2 + local.get $4 i32.store offset=4 - local.get $2 + local.get $4 local.get $7 i32.const 20 i32.sub @@ -26495,200 +24548,23 @@ i32.eqz if i32.const 0 - i32.const 1776 + i32.const 1744 i32.const 33 i32.const 5 call $~lib/builtins/abort unreachable end global.get $~lib/memory/__stack_pointer - local.get $6 + local.get $3 i32.store offset=4 - global.get $~lib/memory/__stack_pointer - i32.const 12 - i32.sub - global.set $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - i32.const 3104 - i32.lt_s - br_if $folding-inner1 - global.get $~lib/memory/__stack_pointer - i64.const 0 - i64.store - global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.store offset=8 - global.get $~lib/memory/__stack_pointer - local.get $6 - i32.store - local.get $6 + local.get $3 local.get $1 local.get $1 - i32.reinterpret_f32 - i32.const -1028477379 - i32.mul - i32.const 374761397 - i32.add - i32.const 17 - i32.rotl - i32.const 668265263 - i32.mul - local.tee $8 - local.get $8 - i32.const 15 - i32.shr_u - i32.xor - i32.const -2048144777 - i32.mul - local.tee $8 - local.get $8 - i32.const 13 - i32.shr_u - i32.xor - i32.const -1028477379 - i32.mul - local.tee $8 - local.get $8 - i32.const 16 - i32.shr_u - i32.xor - local.tee $8 - call $"~lib/map/Map#find" - local.tee $9 - if - local.get $9 - local.get $1 - f32.store offset=4 - else - global.get $~lib/memory/__stack_pointer - local.get $6 - i32.store - local.get $6 - i32.load offset=16 - global.get $~lib/memory/__stack_pointer - local.get $6 - i32.store - local.get $6 - i32.load offset=12 - i32.eq - if - global.get $~lib/memory/__stack_pointer - local.get $6 - i32.store - global.get $~lib/memory/__stack_pointer - local.get $6 - i32.store offset=4 - local.get $6 - i32.load offset=20 - local.set $9 - global.get $~lib/memory/__stack_pointer - local.get $6 - i32.store offset=4 - local.get $6 - local.get $9 - local.get $6 - i32.load offset=12 - i32.const 3 - i32.mul - i32.const 4 - i32.div_s - i32.lt_s - if (result i32) - global.get $~lib/memory/__stack_pointer - local.get $6 - i32.store offset=4 - local.get $6 - i32.load offset=4 - else - global.get $~lib/memory/__stack_pointer - local.get $6 - i32.store offset=4 - local.get $6 - i32.load offset=4 - i32.const 1 - i32.shl - i32.const 1 - i32.or - end - call $"~lib/map/Map#rehash" - end - global.get $~lib/memory/__stack_pointer - local.get $6 - i32.store - global.get $~lib/memory/__stack_pointer - local.get $6 - i32.load offset=8 - local.tee $9 - i32.store offset=8 - global.get $~lib/memory/__stack_pointer - local.get $6 - i32.store - global.get $~lib/memory/__stack_pointer - local.get $6 - i32.store offset=4 - local.get $6 - local.get $6 - i32.load offset=16 - local.tee $10 - i32.const 1 - i32.add - i32.store offset=16 - local.get $9 - local.get $10 - i32.const 12 - i32.mul - i32.add - local.tee $9 - local.get $1 - f32.store - local.get $9 - local.get $1 - f32.store offset=4 - global.get $~lib/memory/__stack_pointer - local.get $6 - i32.store - global.get $~lib/memory/__stack_pointer - local.get $6 - i32.store offset=4 - local.get $6 - local.get $6 - i32.load offset=20 - i32.const 1 - i32.add - i32.store offset=20 - global.get $~lib/memory/__stack_pointer - local.get $6 - i32.store - local.get $6 - i32.load - local.set $10 - global.get $~lib/memory/__stack_pointer - local.get $6 - i32.store - local.get $9 - local.get $10 - local.get $8 - local.get $6 - i32.load offset=4 - i32.and - i32.const 2 - i32.shl - i32.add - local.tee $8 - i32.load - i32.store offset=8 - local.get $8 - local.get $9 - i32.store - end + call $"~lib/map/Map#set" global.get $~lib/memory/__stack_pointer - i32.const 12 - i32.add - global.set $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - local.get $4 + local.get $6 i32.store offset=4 - local.get $4 + local.get $6 local.get $7 i32.const 20 i32.sub @@ -26703,30 +24579,30 @@ end end global.get $~lib/memory/__stack_pointer - local.get $6 + local.get $3 i32.store offset=4 - local.get $6 + local.get $3 call $"~lib/map/Map#get:size" i32.const 100 i32.ne if i32.const 0 - i32.const 1776 + i32.const 1744 i32.const 37 i32.const 3 call $~lib/builtins/abort unreachable end global.get $~lib/memory/__stack_pointer - local.get $4 + local.get $6 i32.store offset=4 - local.get $4 + local.get $6 call $"~lib/map/Map#get:size" i32.const 100 i32.ne if i32.const 0 - i32.const 1776 + i32.const 1744 i32.const 38 i32.const 3 call $~lib/builtins/abort @@ -26740,24 +24616,24 @@ f32.lt if global.get $~lib/memory/__stack_pointer - local.get $2 + local.get $4 i32.store offset=4 - local.get $2 + local.get $4 local.get $1 call $"~lib/map/Map#has" i32.eqz if i32.const 0 - i32.const 1776 + i32.const 1744 i32.const 42 i32.const 5 call $~lib/builtins/abort unreachable end global.get $~lib/memory/__stack_pointer - local.get $2 + local.get $4 i32.store offset=4 - local.get $2 + local.get $4 local.get $1 call $"~lib/map/Map#get" local.get $1 @@ -26767,27 +24643,27 @@ i32.ne if i32.const 0 - i32.const 1776 + i32.const 1744 i32.const 43 i32.const 5 call $~lib/builtins/abort unreachable end global.get $~lib/memory/__stack_pointer - local.get $2 + local.get $4 i32.store offset=4 - local.get $2 + local.get $4 local.get $1 call $"~lib/map/Map#delete" global.get $~lib/memory/__stack_pointer - local.get $2 + local.get $4 i32.store offset=4 - local.get $2 + local.get $4 local.get $1 call $"~lib/map/Map#has" if i32.const 0 - i32.const 1776 + i32.const 1744 i32.const 45 i32.const 5 call $~lib/builtins/abort @@ -26801,15 +24677,15 @@ end end global.get $~lib/memory/__stack_pointer - local.get $2 + local.get $4 i32.store offset=4 - local.get $2 + local.get $4 call $"~lib/map/Map#get:size" i32.const 50 i32.ne if i32.const 0 - i32.const 1776 + i32.const 1744 i32.const 47 i32.const 3 call $~lib/builtins/abort @@ -26823,23 +24699,23 @@ f32.lt if global.get $~lib/memory/__stack_pointer - local.get $2 + local.get $4 i32.store offset=4 - local.get $2 + local.get $4 local.get $1 call $"~lib/map/Map#has" if i32.const 0 - i32.const 1776 + i32.const 1744 i32.const 51 i32.const 5 call $~lib/builtins/abort unreachable end global.get $~lib/memory/__stack_pointer - local.get $2 + local.get $4 i32.store offset=4 - local.get $2 + local.get $4 local.get $1 local.get $1 i32.trunc_sat_f32_s @@ -26847,35 +24723,35 @@ i32.add call $"~lib/map/Map#set" global.get $~lib/memory/__stack_pointer - local.get $2 + local.get $4 i32.store offset=4 - local.get $2 + local.get $4 local.get $1 call $"~lib/map/Map#has" i32.eqz if i32.const 0 - i32.const 1776 + i32.const 1744 i32.const 53 i32.const 5 call $~lib/builtins/abort unreachable end global.get $~lib/memory/__stack_pointer - local.get $2 + local.get $4 i32.store offset=4 - local.get $2 + local.get $4 local.get $1 call $"~lib/map/Map#delete" global.get $~lib/memory/__stack_pointer - local.get $2 + local.get $4 i32.store offset=4 - local.get $2 + local.get $4 local.get $1 call $"~lib/map/Map#has" if i32.const 0 - i32.const 1776 + i32.const 1744 i32.const 55 i32.const 5 call $~lib/builtins/abort @@ -26889,33 +24765,33 @@ end end global.get $~lib/memory/__stack_pointer - local.get $2 + local.get $4 i32.store offset=4 - local.get $2 + local.get $4 call $"~lib/map/Map#get:size" i32.const 50 i32.ne if i32.const 0 - i32.const 1776 + i32.const 1744 i32.const 57 i32.const 3 call $~lib/builtins/abort unreachable end global.get $~lib/memory/__stack_pointer - local.get $2 + local.get $4 i32.store offset=4 - local.get $2 + local.get $4 call $"~lib/map/Map#clear" global.get $~lib/memory/__stack_pointer - local.get $2 + local.get $4 i32.store offset=4 - local.get $2 + local.get $4 call $"~lib/map/Map#get:size" if i32.const 0 - i32.const 1776 + i32.const 1744 i32.const 61 i32.const 3 call $~lib/builtins/abort @@ -26923,7 +24799,7 @@ end global.get $~lib/memory/__stack_pointer i32.const 59 - i32.const 2704 + i32.const 2160 call $~lib/rt/__newArray local.tee $0 i32.store offset=24 @@ -26943,7 +24819,7 @@ i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 3104 + i32.const 2496 i32.lt_s br_if $folding-inner1 global.get $~lib/memory/__stack_pointer @@ -27026,7 +24902,7 @@ i32.ne if i32.const 0 - i32.const 1776 + i32.const 1744 i32.const 74 i32.const 3 call $~lib/builtins/abort @@ -27048,7 +24924,7 @@ i32.eqz if i32.const 0 - i32.const 1776 + i32.const 1744 i32.const 76 i32.const 5 call $~lib/builtins/abort @@ -27067,7 +24943,7 @@ i32.ne if i32.const 0 - i32.const 1776 + i32.const 1744 i32.const 77 i32.const 5 call $~lib/builtins/abort @@ -27087,7 +24963,7 @@ call $"~lib/map/Map#has" if i32.const 0 - i32.const 1776 + i32.const 1744 i32.const 79 i32.const 5 call $~lib/builtins/abort @@ -27107,7 +24983,7 @@ call $"~lib/map/Map#get:size" if i32.const 0 - i32.const 1776 + i32.const 1744 i32.const 81 i32.const 3 call $~lib/builtins/abort @@ -27119,8 +24995,8 @@ global.set $~lib/memory/__stack_pointer return end - i32.const 35904 - i32.const 35952 + i32.const 35296 + i32.const 35344 i32.const 1 i32.const 1 call $~lib/builtins/abort @@ -27141,11 +25017,11 @@ i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 3104 + i32.const 2496 i32.lt_s if - i32.const 35904 - i32.const 35952 + i32.const 35296 + i32.const 35344 i32.const 1 i32.const 1 call $~lib/builtins/abort @@ -27344,11 +25220,11 @@ i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 3104 + i32.const 2496 i32.lt_s if - i32.const 35904 - i32.const 35952 + i32.const 35296 + i32.const 35344 i32.const 1 i32.const 1 call $~lib/builtins/abort @@ -27420,17 +25296,16 @@ (local $6 i32) (local $7 i32) (local $8 i32) - (local $9 i32) global.get $~lib/memory/__stack_pointer i32.const 16 i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 3104 + i32.const 2496 i32.lt_s if - i32.const 35904 - i32.const 35952 + i32.const 35296 + i32.const 35344 i32.const 1 i32.const 1 call $~lib/builtins/abort @@ -27504,19 +25379,16 @@ local.get $1 i32.const 0 i32.store offset=20 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 local.get $0 - call $"~lib/array/Array<~lib/map/KeyValue>#get:length" - local.tee $5 - i32.const 0 - i32.gt_s if + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + local.get $0 + call $"~lib/array/Array<~lib/map/KeyValue>#get:length" global.get $~lib/memory/__stack_pointer local.get $1 i32.store offset=4 - local.get $5 local.get $1 i32.load offset=12 i32.ge_s @@ -27524,8 +25396,12 @@ global.get $~lib/memory/__stack_pointer local.get $1 i32.store offset=4 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=8 local.get $1 - local.get $5 + local.get $0 + call $"~lib/array/Array<~lib/map/KeyValue>#get:length" i32.store offset=4 end global.get $~lib/memory/__stack_pointer @@ -27543,9 +25419,13 @@ i32.or call $"~lib/map/Map#rehash" loop $for-loop|0 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + local.get $0 + call $"~lib/array/Array<~lib/map/KeyValue>#get:length" local.get $2 - local.get $5 - i32.lt_s + i32.gt_s if global.get $~lib/memory/__stack_pointer local.get $0 @@ -27553,11 +25433,11 @@ local.get $0 local.get $2 call $"~lib/array/Array<~lib/map/KeyValue>#__get" - local.set $6 + local.set $5 global.get $~lib/memory/__stack_pointer - local.get $6 + local.get $5 i32.store offset=4 - local.get $6 + local.get $5 f64.load local.set $3 global.get $~lib/memory/__stack_pointer @@ -27566,13 +25446,13 @@ local.get $0 local.get $2 call $"~lib/array/Array<~lib/map/KeyValue>#__get" - local.set $6 + local.set $5 global.get $~lib/memory/__stack_pointer - local.get $6 + local.get $5 i32.store offset=4 - local.get $6 + local.get $5 i32.load offset=8 - local.set $7 + local.set $6 global.get $~lib/memory/__stack_pointer local.get $1 i32.store offset=4 @@ -27601,31 +25481,31 @@ i32.rotl i32.const 668265263 i32.mul - local.tee $6 + local.tee $5 i32.const 15 i32.shr_u - local.get $6 + local.get $5 i32.xor i32.const -2048144777 i32.mul - local.tee $6 + local.tee $5 i32.const 13 i32.shr_u - local.get $6 + local.get $5 i32.xor i32.const -1028477379 i32.mul - local.tee $6 + local.tee $5 i32.const 16 i32.shr_u - local.get $6 + local.get $5 i32.xor - local.tee $8 + local.tee $7 call $"~lib/map/Map#find" - local.tee $6 + local.tee $5 if + local.get $5 local.get $6 - local.get $7 i32.store offset=8 else global.get $~lib/memory/__stack_pointer @@ -27634,7 +25514,7 @@ global.get $~lib/memory/__stack_pointer local.get $1 i32.load offset=8 - local.tee $6 + local.tee $5 i32.store offset=12 global.get $~lib/memory/__stack_pointer local.get $1 @@ -27645,20 +25525,20 @@ local.get $1 local.get $1 i32.load offset=16 - local.tee $9 + local.tee $8 i32.const 1 i32.add i32.store offset=16 - local.get $6 - local.get $9 + local.get $5 + local.get $8 i32.const 4 i32.shl i32.add - local.tee $6 + local.tee $5 local.get $3 f64.store + local.get $5 local.get $6 - local.get $7 i32.store offset=8 global.get $~lib/memory/__stack_pointer local.get $1 @@ -27677,24 +25557,24 @@ i32.store offset=4 local.get $1 i32.load - local.set $7 + local.set $6 global.get $~lib/memory/__stack_pointer local.get $1 i32.store offset=4 + local.get $5 local.get $6 local.get $7 - local.get $8 local.get $1 i32.load offset=4 i32.and i32.const 2 i32.shl i32.add - local.tee $7 + local.tee $6 i32.load i32.store offset=12 - local.get $7 local.get $6 + local.get $5 i32.store end local.get $2 @@ -27718,11 +25598,11 @@ i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 3104 + i32.const 2496 i32.lt_s if - i32.const 35904 - i32.const 35952 + i32.const 35296 + i32.const 35344 i32.const 1 i32.const 1 call $~lib/builtins/abort @@ -27796,11 +25676,11 @@ i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 3104 + i32.const 2496 i32.lt_s if - i32.const 35904 - i32.const 35952 + i32.const 35296 + i32.const 35344 i32.const 1 i32.const 1 call $~lib/builtins/abort @@ -27882,1251 +25762,928 @@ global.get $~lib/memory/__stack_pointer local.get $0 i32.store - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 - i32.load offset=20 - local.set $4 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 - local.get $4 - local.get $0 - i32.load offset=12 - i32.const 3 - i32.mul - i32.const 4 - i32.div_s - i32.lt_s - if (result i32) - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 - i32.load offset=4 - else - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 - i32.load offset=4 - i32.const 1 - i32.shl - i32.const 1 - i32.or - end - call $"~lib/map/Map#rehash" - end - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.load offset=8 - local.tee $4 - i32.store offset=8 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 - local.get $0 - i32.load offset=16 - local.tee $6 - i32.const 1 - i32.add - i32.store offset=16 - local.get $4 - local.get $6 - i32.const 4 - i32.shl - i32.add - local.tee $4 - local.get $1 - f64.store - local.get $4 - local.get $2 - i32.store offset=8 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 - local.get $0 - i32.load offset=20 - i32.const 1 - i32.add - i32.store offset=20 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store - local.get $0 - i32.load - local.set $2 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store - local.get $4 - local.get $2 - local.get $5 - local.get $0 - i32.load offset=4 - i32.and - i32.const 2 - i32.shl - i32.add - local.tee $0 - i32.load - i32.store offset=12 - local.get $0 - local.get $4 - i32.store - end - global.get $~lib/memory/__stack_pointer - i32.const 12 - i32.add - global.set $~lib/memory/__stack_pointer - ) - (func $"~lib/map/Map#get" (param $0 i32) (param $1 f64) (result i32) - (local $2 i64) - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.sub - global.set $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - i32.const 3104 - i32.lt_s - if - i32.const 35904 - i32.const 35952 - i32.const 1 - i32.const 1 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.store - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store - local.get $0 - local.get $1 - local.get $1 - i64.reinterpret_f64 - local.tee $2 - i32.wrap_i64 - i32.const -1028477379 - i32.mul - i32.const 374761401 - i32.add - i32.const 17 - i32.rotl - i32.const 668265263 - i32.mul - local.get $2 - i64.const 32 - i64.shr_u - i32.wrap_i64 - i32.const -1028477379 - i32.mul - i32.add - i32.const 17 - i32.rotl - i32.const 668265263 - i32.mul - local.tee $0 - i32.const 15 - i32.shr_u - local.get $0 - i32.xor - i32.const -2048144777 - i32.mul - local.tee $0 - i32.const 13 - i32.shr_u - local.get $0 - i32.xor - i32.const -1028477379 - i32.mul - local.tee $0 - i32.const 16 - i32.shr_u - local.get $0 - i32.xor - call $"~lib/map/Map#find" - local.tee $0 - i32.eqz - if - i32.const 1824 - i32.const 1888 - i32.const 148 - i32.const 17 - call $~lib/builtins/abort - unreachable - end - local.get $0 - i32.load offset=8 - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.add - global.set $~lib/memory/__stack_pointer - ) - (func $"~lib/map/Map#keys" (param $0 i32) (result i32) - (local $1 i32) - (local $2 i32) - (local $3 i32) - (local $4 f64) - (local $5 i32) - (local $6 i32) - (local $7 i32) - global.get $~lib/memory/__stack_pointer - i32.const 8 - i32.sub - global.set $~lib/memory/__stack_pointer - block $folding-inner1 - global.get $~lib/memory/__stack_pointer - i32.const 3104 - i32.lt_s - br_if $folding-inner1 - global.get $~lib/memory/__stack_pointer - i64.const 0 - i64.store + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + local.get $0 + i32.load offset=20 + local.set $4 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + local.get $0 + local.get $4 + local.get $0 + i32.load offset=12 + i32.const 3 + i32.mul + i32.const 4 + i32.div_s + i32.lt_s + if (result i32) + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + local.get $0 + i32.load offset=4 + else + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + local.get $0 + i32.load offset=4 + i32.const 1 + i32.shl + i32.const 1 + i32.or + end + call $"~lib/map/Map#rehash" + end global.get $~lib/memory/__stack_pointer local.get $0 i32.store + global.get $~lib/memory/__stack_pointer local.get $0 i32.load offset=8 - local.set $3 + local.tee $4 + i32.store offset=8 global.get $~lib/memory/__stack_pointer local.get $0 i32.store + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + local.get $0 local.get $0 i32.load offset=16 - local.set $5 - global.get $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - i32.const 16 - i32.sub - global.set $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - i32.const 3104 - i32.lt_s - br_if $folding-inner1 - global.get $~lib/memory/__stack_pointer - i64.const 0 - i64.store - global.get $~lib/memory/__stack_pointer - i64.const 0 - i64.store offset=8 - global.get $~lib/memory/__stack_pointer - i32.const 16 - i32.const 67 - call $~lib/rt/itcms/__new local.tee $6 - i32.store - global.get $~lib/memory/__stack_pointer - local.get $6 - i32.store offset=4 - local.get $6 - i32.const 0 - i32.store - local.get $6 - i32.const 0 - i32.const 0 - call $~lib/rt/itcms/__link - global.get $~lib/memory/__stack_pointer - local.get $6 - i32.store offset=4 - local.get $6 - i32.const 0 - i32.store offset=4 - global.get $~lib/memory/__stack_pointer - local.get $6 - i32.store offset=4 - local.get $6 - i32.const 0 - i32.store offset=8 - global.get $~lib/memory/__stack_pointer - local.get $6 - i32.store offset=4 + i32.const 1 + i32.add + i32.store offset=16 + local.get $4 local.get $6 - i32.const 0 - i32.store offset=12 - local.get $5 - i32.const 134217727 - i32.gt_u - if - i32.const 1056 - i32.const 1568 - i32.const 70 - i32.const 60 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - i32.const 8 - local.get $5 - local.get $5 - i32.const 8 - i32.le_u - select - i32.const 3 + i32.const 4 i32.shl - local.tee $0 - i32.const 1 - call $~lib/rt/itcms/__new - local.tee $7 + i32.add + local.tee $4 + local.get $1 + f64.store + local.get $4 + local.get $2 i32.store offset=8 global.get $~lib/memory/__stack_pointer - local.get $6 - i32.store offset=4 - global.get $~lib/memory/__stack_pointer - local.get $7 - i32.store offset=12 - local.get $6 - local.get $7 + local.get $0 i32.store - local.get $6 - local.get $7 - i32.const 0 - call $~lib/rt/itcms/__link - global.get $~lib/memory/__stack_pointer - local.get $6 - i32.store offset=4 - local.get $6 - local.get $7 - i32.store offset=4 global.get $~lib/memory/__stack_pointer - local.get $6 - i32.store offset=4 - local.get $6 local.get $0 - i32.store offset=8 - global.get $~lib/memory/__stack_pointer - local.get $6 - i32.store offset=4 - local.get $6 - local.get $5 - i32.store offset=12 - global.get $~lib/memory/__stack_pointer - i32.const 16 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $6 i32.store offset=4 - loop $for-loop|0 - local.get $2 - local.get $5 - i32.lt_s - if - local.get $3 - local.get $2 - i32.const 4 - i32.shl - i32.add - local.tee $7 - i32.load offset=12 - i32.const 1 - i32.and - i32.eqz - if - global.get $~lib/memory/__stack_pointer - local.get $6 - i32.store - local.get $1 - local.tee $0 - i32.const 1 - i32.add - local.set $1 - local.get $7 - f64.load - local.set $4 - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.sub - global.set $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - i32.const 3104 - i32.lt_s - br_if $folding-inner1 - global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.store - global.get $~lib/memory/__stack_pointer - local.get $6 - i32.store - 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 1360 - i32.const 1568 - 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 $7 - i32.const 3 - i32.const 1 - call $~lib/array/ensureCapacity - global.get $~lib/memory/__stack_pointer - local.get $6 - i32.store - local.get $6 - local.get $7 - i32.store offset=12 - end - global.get $~lib/memory/__stack_pointer - local.get $6 - i32.store - local.get $6 - i32.load offset=4 - local.get $0 - i32.const 3 - i32.shl - i32.add - local.get $4 - f64.store - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.add - global.set $~lib/memory/__stack_pointer - end - local.get $2 - i32.const 1 - i32.add - local.set $2 - br $for-loop|0 - end - end + local.get $0 + local.get $0 + i32.load offset=20 + i32.const 1 + i32.add + i32.store offset=20 global.get $~lib/memory/__stack_pointer - local.get $6 + local.get $0 i32.store - local.get $6 - local.get $1 - call $~lib/array/Array#set:length + local.get $0 + i32.load + local.set $2 global.get $~lib/memory/__stack_pointer - i32.const 8 + local.get $0 + i32.store + local.get $4 + local.get $2 + local.get $5 + local.get $0 + i32.load offset=4 + i32.and + i32.const 2 + i32.shl i32.add - global.set $~lib/memory/__stack_pointer - local.get $6 - return + local.tee $0 + i32.load + i32.store offset=12 + local.get $0 + local.get $4 + i32.store end - i32.const 35904 - i32.const 35952 - i32.const 1 - i32.const 1 - call $~lib/builtins/abort - unreachable + global.get $~lib/memory/__stack_pointer + i32.const 12 + i32.add + global.set $~lib/memory/__stack_pointer ) - (func $"~lib/map/Map#rehash" (param $0 i32) (param $1 i32) - (local $2 i32) - (local $3 i32) - (local $4 i64) - (local $5 f64) - (local $6 i32) - (local $7 i32) - (local $8 i32) - (local $9 i32) - (local $10 i32) + (func $"~lib/map/Map#get" (param $0 i32) (param $1 f64) (result i32) + (local $2 i64) global.get $~lib/memory/__stack_pointer - i32.const 16 + i32.const 4 i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 3104 + i32.const 2496 i32.lt_s if - i32.const 35904 - i32.const 35952 + i32.const 35296 + i32.const 35344 i32.const 1 i32.const 1 call $~lib/builtins/abort unreachable end global.get $~lib/memory/__stack_pointer - i64.const 0 - i64.store - global.get $~lib/memory/__stack_pointer - i64.const 0 - i64.store offset=8 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.const 1 - i32.add - local.tee $2 - i32.const 2 - i32.shl - call $~lib/arraybuffer/ArrayBuffer#constructor - local.tee $8 + i32.const 0 i32.store global.get $~lib/memory/__stack_pointer - local.get $2 - i32.const 3 - i32.shl - i32.const 3 - i32.div_s - local.tee $7 - i32.const 24 - i32.mul - call $~lib/arraybuffer/ArrayBuffer#constructor - local.tee $3 - i32.store offset=4 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=8 - local.get $0 - i32.load offset=8 - local.set $9 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=8 - local.get $9 - local.get $0 - i32.load offset=16 - i32.const 24 - i32.mul - i32.add - local.set $6 - local.get $3 - local.set $2 - loop $while-continue|0 - local.get $6 - local.get $9 - i32.ne - if - local.get $9 - i32.load offset=16 - i32.const 1 - i32.and - i32.eqz - if - local.get $2 - local.get $9 - f64.load - local.tee $5 - f64.store - local.get $2 - local.get $9 - f64.load offset=8 - f64.store offset=8 - local.get $2 - local.get $8 - local.get $1 - local.get $5 - i64.reinterpret_f64 - local.tee $4 - i32.wrap_i64 - i32.const -1028477379 - i32.mul - i32.const 374761401 - i32.add - i32.const 17 - i32.rotl - i32.const 668265263 - i32.mul - local.get $4 - i64.const 32 - i64.shr_u - i32.wrap_i64 - i32.const -1028477379 - i32.mul - i32.add - i32.const 17 - i32.rotl - i32.const 668265263 - i32.mul - local.tee $10 - i32.const 15 - i32.shr_u - local.get $10 - i32.xor - i32.const -2048144777 - i32.mul - local.tee $10 - i32.const 13 - i32.shr_u - local.get $10 - i32.xor - i32.const -1028477379 - i32.mul - local.tee $10 - i32.const 16 - i32.shr_u - local.get $10 - i32.xor - i32.and - i32.const 2 - i32.shl - i32.add - local.tee $10 - i32.load - i32.store offset=16 - local.get $10 - local.get $2 - i32.store - local.get $2 - i32.const 24 - i32.add - local.set $2 - end - local.get $9 - i32.const 24 - i32.add - local.set $9 - br $while-continue|0 - end - end - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=8 - global.get $~lib/memory/__stack_pointer - local.get $8 - i32.store offset=12 local.get $0 - local.get $8 i32.store local.get $0 - local.get $8 - i32.const 0 - call $~lib/rt/itcms/__link - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=8 - local.get $0 local.get $1 - i32.store offset=4 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=8 - global.get $~lib/memory/__stack_pointer - local.get $3 - i32.store offset=12 - local.get $0 - local.get $3 - i32.store offset=8 - local.get $0 - local.get $3 - i32.const 0 - call $~lib/rt/itcms/__link - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=8 - local.get $0 - local.get $7 - i32.store offset=12 - global.get $~lib/memory/__stack_pointer + local.get $1 + i64.reinterpret_f64 + local.tee $2 + i32.wrap_i64 + i32.const -1028477379 + i32.mul + i32.const 374761401 + i32.add + i32.const 17 + i32.rotl + i32.const 668265263 + i32.mul + local.get $2 + i64.const 32 + i64.shr_u + i32.wrap_i64 + i32.const -1028477379 + i32.mul + i32.add + i32.const 17 + i32.rotl + i32.const 668265263 + i32.mul + local.tee $0 + i32.const 15 + i32.shr_u local.get $0 - i32.store offset=8 - global.get $~lib/memory/__stack_pointer + i32.xor + i32.const -2048144777 + i32.mul + local.tee $0 + i32.const 13 + i32.shr_u local.get $0 - i32.store offset=12 + i32.xor + i32.const -1028477379 + i32.mul + local.tee $0 + i32.const 16 + i32.shr_u local.get $0 + i32.xor + call $"~lib/map/Map#find" + local.tee $0 + i32.eqz + if + i32.const 1792 + i32.const 1856 + i32.const 146 + i32.const 17 + call $~lib/builtins/abort + unreachable + end local.get $0 - i32.load offset=20 - i32.store offset=16 + i32.load offset=8 global.get $~lib/memory/__stack_pointer - i32.const 16 + i32.const 4 i32.add global.set $~lib/memory/__stack_pointer ) - (func $"~lib/map/Map#find" (param $0 i32) (param $1 f64) (param $2 i32) (result i32) + (func $"~lib/map/Map#keys" (param $0 i32) (result i32) + (local $1 i32) + (local $2 i32) (local $3 i32) + (local $4 f64) + (local $5 i32) + (local $6 i32) + (local $7 i32) global.get $~lib/memory/__stack_pointer - i32.const 4 + i32.const 8 i32.sub global.set $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - i32.const 3104 - i32.lt_s - if - i32.const 35904 - i32.const 35952 - i32.const 1 - i32.const 1 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.store - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store - local.get $0 - i32.load - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store - local.get $2 - local.get $0 - i32.load offset=4 - i32.and - i32.const 2 - i32.shl - i32.add - i32.load - local.set $0 - loop $while-continue|0 + block $folding-inner1 + global.get $~lib/memory/__stack_pointer + i32.const 2496 + i32.lt_s + br_if $folding-inner1 + global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + local.get $0 + i32.load offset=8 + local.set $3 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store local.get $0 + i32.load offset=16 + local.set $5 + global.get $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 16 + i32.sub + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 2496 + i32.lt_s + br_if $folding-inner1 + global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store + global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store offset=8 + global.get $~lib/memory/__stack_pointer + i32.const 16 + i32.const 67 + call $~lib/rt/itcms/__new + local.tee $6 + i32.store + global.get $~lib/memory/__stack_pointer + local.get $6 + i32.store offset=4 + local.get $6 + i32.const 0 + i32.store + local.get $6 + i32.const 0 + i32.const 0 + call $~lib/rt/itcms/__link + global.get $~lib/memory/__stack_pointer + local.get $6 + i32.store offset=4 + local.get $6 + i32.const 0 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + local.get $6 + i32.store offset=4 + local.get $6 + i32.const 0 + i32.store offset=8 + global.get $~lib/memory/__stack_pointer + local.get $6 + i32.store offset=4 + local.get $6 + i32.const 0 + i32.store offset=12 + local.get $5 + i32.const 134217727 + i32.gt_u if - local.get $0 - i32.load offset=16 - local.tee $2 - i32.const 1 - i32.and - if (result i32) - i32.const 0 - else - local.get $1 - local.get $0 - f64.load - f64.eq - end + i32.const 1056 + i32.const 1568 + i32.const 70 + i32.const 60 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + i32.const 8 + local.get $5 + local.get $5 + i32.const 8 + i32.le_u + select + i32.const 3 + i32.shl + local.tee $0 + i32.const 1 + call $~lib/rt/itcms/__new + local.tee $7 + i32.store offset=8 + global.get $~lib/memory/__stack_pointer + local.get $6 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + local.get $7 + i32.store offset=12 + local.get $6 + local.get $7 + i32.store + local.get $6 + local.get $7 + i32.const 0 + call $~lib/rt/itcms/__link + global.get $~lib/memory/__stack_pointer + local.get $6 + i32.store offset=4 + local.get $6 + local.get $7 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + local.get $6 + i32.store offset=4 + local.get $6 + local.get $0 + i32.store offset=8 + global.get $~lib/memory/__stack_pointer + local.get $6 + i32.store offset=4 + local.get $6 + local.get $5 + i32.store offset=12 + global.get $~lib/memory/__stack_pointer + i32.const 16 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $6 + i32.store offset=4 + loop $for-loop|0 + local.get $2 + local.get $5 + i32.lt_s if - global.get $~lib/memory/__stack_pointer + local.get $3 + local.get $2 i32.const 4 + i32.shl + i32.add + local.tee $7 + i32.load offset=12 + i32.const 1 + i32.and + i32.eqz + if + global.get $~lib/memory/__stack_pointer + local.get $6 + i32.store + local.get $1 + local.tee $0 + i32.const 1 + i32.add + local.set $1 + local.get $7 + f64.load + local.set $4 + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.sub + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 2496 + i32.lt_s + br_if $folding-inner1 + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store + global.get $~lib/memory/__stack_pointer + local.get $6 + i32.store + 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 1360 + i32.const 1568 + 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 $7 + i32.const 3 + i32.const 1 + call $~lib/array/ensureCapacity + global.get $~lib/memory/__stack_pointer + local.get $6 + i32.store + local.get $6 + local.get $7 + i32.store offset=12 + end + global.get $~lib/memory/__stack_pointer + local.get $6 + i32.store + local.get $6 + i32.load offset=4 + local.get $0 + i32.const 3 + i32.shl + i32.add + local.get $4 + f64.store + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + end + local.get $2 + i32.const 1 i32.add - global.set $~lib/memory/__stack_pointer - local.get $0 - return + local.set $2 + br $for-loop|0 end - local.get $2 - i32.const -2 - i32.and - local.set $0 - br $while-continue|0 end + global.get $~lib/memory/__stack_pointer + local.get $6 + i32.store + local.get $6 + local.get $1 + call $~lib/array/Array#set:length + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $6 + return end - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.add - global.set $~lib/memory/__stack_pointer - i32.const 0 + i32.const 35296 + i32.const 35344 + i32.const 1 + i32.const 1 + call $~lib/builtins/abort + unreachable ) - (func $"~lib/map/Map#constructor" (param $0 i32) (result i32) - (local $1 i32) - (local $2 i32) - (local $3 f64) - (local $4 f64) + (func $"~lib/map/Map#set" (param $0 i32) (param $1 f64) (param $2 f64) + (local $3 i32) + (local $4 i32) (local $5 i64) (local $6 i32) - (local $7 i32) + (local $7 f64) (local $8 i32) (local $9 i32) + (local $10 i32) + (local $11 i32) + (local $12 i32) + (local $13 i32) global.get $~lib/memory/__stack_pointer - i32.const 16 + i32.const 12 i32.sub global.set $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - i32.const 3104 - i32.lt_s - if - i32.const 35904 - i32.const 35952 - i32.const 1 - i32.const 1 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - i64.const 0 - i64.store - global.get $~lib/memory/__stack_pointer - i64.const 0 - i64.store offset=8 - global.get $~lib/memory/__stack_pointer - i32.const 24 - i32.const 68 - call $~lib/rt/itcms/__new - local.tee $1 - i32.store - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - i32.const 16 - call $~lib/arraybuffer/ArrayBuffer#constructor - local.set $6 - global.get $~lib/memory/__stack_pointer - local.get $6 - i32.store offset=8 - local.get $1 - local.get $6 - i32.store - local.get $1 - local.get $6 - i32.const 0 - call $~lib/rt/itcms/__link - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - local.get $1 - i32.const 3 - i32.store offset=4 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - i32.const 96 - call $~lib/arraybuffer/ArrayBuffer#constructor - local.set $6 - global.get $~lib/memory/__stack_pointer - local.get $6 - i32.store offset=8 - local.get $1 - local.get $6 - i32.store offset=8 - local.get $1 - local.get $6 - i32.const 0 - call $~lib/rt/itcms/__link - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - local.get $1 - i32.const 4 - i32.store offset=12 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - local.get $1 - i32.const 0 - i32.store offset=16 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - local.get $1 - i32.const 0 - i32.store offset=20 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 - call $"~lib/array/Array<~lib/map/KeyValue>#get:length" - local.tee $6 - i32.const 0 - i32.gt_s - if + block $folding-inner0 global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - local.get $6 - local.get $1 - i32.load offset=12 - i32.ge_s - if - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - local.get $1 - local.get $6 - i32.store offset=4 - end + i32.const 2496 + i32.lt_s + br_if $folding-inner0 global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 + i64.const 0 + i64.store global.get $~lib/memory/__stack_pointer - local.get $1 + i32.const 0 i32.store offset=8 local.get $1 - local.get $1 + i64.reinterpret_f64 + local.tee $5 + i32.wrap_i64 + i32.const -1028477379 + i32.mul + i32.const 374761401 + i32.add + i32.const 17 + i32.rotl + i32.const 668265263 + i32.mul + local.get $5 + i64.const 32 + i64.shr_u + i32.wrap_i64 + i32.const -1028477379 + i32.mul + i32.add + i32.const 17 + i32.rotl + i32.const 668265263 + i32.mul + local.tee $3 + local.get $3 + i32.const 15 + i32.shr_u + i32.xor + i32.const -2048144777 + i32.mul + local.tee $3 + local.get $3 + i32.const 13 + i32.shr_u + i32.xor + i32.const -1028477379 + i32.mul + local.tee $3 + local.get $3 + i32.const 16 + i32.shr_u + i32.xor + local.set $10 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.sub + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 2496 + i32.lt_s + br_if $folding-inner0 + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + local.get $0 + i32.load + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + local.get $10 + local.get $0 i32.load offset=4 - i32.const 1 + i32.and + i32.const 2 i32.shl - i32.const 1 - i32.or - call $"~lib/map/Map#rehash" - loop $for-loop|0 + i32.add + i32.load + local.set $3 + block $"__inlined_func$~lib/map/Map#find$55" + loop $while-continue|0 + local.get $3 + if + local.get $3 + i32.load offset=16 + local.tee $4 + i32.const 1 + i32.and + if (result i32) + i32.const 0 + else + local.get $1 + local.get $3 + f64.load + f64.eq + end + if + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + br $"__inlined_func$~lib/map/Map#find$55" + end + local.get $4 + i32.const -2 + i32.and + local.set $3 + br $while-continue|0 + end + end + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + i32.const 0 + local.set $3 + end + local.get $3 + if + local.get $3 local.get $2 - local.get $6 - i32.lt_s + f64.store offset=8 + else + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + local.get $0 + i32.load offset=16 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + local.get $0 + i32.load offset=12 + i32.eq if global.get $~lib/memory/__stack_pointer local.get $0 - i32.store offset=8 - local.get $0 - local.get $2 - call $"~lib/array/Array<~lib/map/KeyValue>#__get" - local.set $7 - global.get $~lib/memory/__stack_pointer - local.get $7 - i32.store offset=4 - local.get $7 - f64.load - local.set $3 + i32.store global.get $~lib/memory/__stack_pointer local.get $0 - i32.store offset=8 - local.get $0 - local.get $2 - call $"~lib/array/Array<~lib/map/KeyValue>#__get" - local.set $7 - global.get $~lib/memory/__stack_pointer - local.get $7 i32.store offset=4 - local.get $7 - f64.load offset=8 - local.set $4 + local.get $0 + i32.load offset=20 global.get $~lib/memory/__stack_pointer - local.get $1 + local.get $0 i32.store offset=4 - local.get $1 - local.get $3 - local.get $3 - i64.reinterpret_f64 - local.tee $5 - i32.wrap_i64 - i32.const -1028477379 - i32.mul - i32.const 374761401 - i32.add - i32.const 17 - i32.rotl - i32.const 668265263 - i32.mul - local.get $5 - i64.const 32 - i64.shr_u - i32.wrap_i64 - i32.const -1028477379 - i32.mul - i32.add - i32.const 17 - i32.rotl - i32.const 668265263 - i32.mul - local.tee $7 - i32.const 15 - i32.shr_u - local.get $7 - i32.xor - i32.const -2048144777 - i32.mul - local.tee $7 - i32.const 13 - i32.shr_u - local.get $7 - i32.xor - i32.const -1028477379 + local.get $0 + i32.load offset=12 + i32.const 3 i32.mul - local.tee $7 - i32.const 16 - i32.shr_u - local.get $7 - i32.xor - local.tee $7 - call $"~lib/map/Map#find" - local.tee $8 - if - local.get $8 - local.get $4 - f64.store offset=8 - else - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.load offset=8 - local.tee $8 - i32.store offset=12 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=8 - local.get $1 - local.get $1 - i32.load offset=16 - local.tee $9 - i32.const 1 - i32.add - i32.store offset=16 - local.get $8 - local.get $9 - i32.const 24 - i32.mul - i32.add - local.tee $8 - local.get $3 - f64.store - local.get $8 - local.get $4 - f64.store offset=8 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=8 - local.get $1 - local.get $1 - i32.load offset=20 - i32.const 1 - i32.add - i32.store offset=20 + i32.const 4 + i32.div_s + i32.lt_s + if (result i32) global.get $~lib/memory/__stack_pointer - local.get $1 + local.get $0 i32.store offset=4 - local.get $1 - i32.load - local.set $9 + local.get $0 + i32.load offset=4 + else global.get $~lib/memory/__stack_pointer - local.get $1 + local.get $0 i32.store offset=4 - local.get $8 - local.get $9 - local.get $7 - local.get $1 + local.get $0 i32.load offset=4 - i32.and - i32.const 2 + i32.const 1 i32.shl - i32.add - local.tee $7 - i32.load - i32.store offset=16 - local.get $7 - local.get $8 - i32.store + i32.const 1 + i32.or end - local.get $2 + local.set $6 + global.get $~lib/memory/__stack_pointer + i32.const 16 + i32.sub + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 2496 + i32.lt_s + br_if $folding-inner0 + global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store + global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store offset=8 + global.get $~lib/memory/__stack_pointer + local.get $6 i32.const 1 i32.add - local.set $2 - br $for-loop|0 + local.tee $3 + i32.const 2 + i32.shl + call $~lib/arraybuffer/ArrayBuffer#constructor + local.tee $11 + i32.store + global.get $~lib/memory/__stack_pointer + local.get $3 + i32.const 3 + i32.shl + i32.const 3 + i32.div_s + local.tee $9 + i32.const 24 + i32.mul + call $~lib/arraybuffer/ArrayBuffer#constructor + local.tee $4 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=8 + local.get $0 + i32.load offset=8 + local.set $12 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=8 + local.get $12 + local.get $0 + i32.load offset=16 + i32.const 24 + i32.mul + i32.add + local.set $8 + local.get $4 + local.set $3 + loop $while-continue|00 + local.get $8 + local.get $12 + i32.ne + if + local.get $12 + i32.load offset=16 + i32.const 1 + i32.and + i32.eqz + if + local.get $3 + local.get $12 + f64.load + local.tee $7 + f64.store + local.get $3 + local.get $12 + f64.load offset=8 + f64.store offset=8 + local.get $3 + local.get $11 + local.get $6 + local.get $7 + i64.reinterpret_f64 + local.tee $5 + i32.wrap_i64 + i32.const -1028477379 + i32.mul + i32.const 374761401 + i32.add + i32.const 17 + i32.rotl + i32.const 668265263 + i32.mul + local.get $5 + i64.const 32 + i64.shr_u + i32.wrap_i64 + i32.const -1028477379 + i32.mul + i32.add + i32.const 17 + i32.rotl + i32.const 668265263 + i32.mul + local.tee $13 + local.get $13 + i32.const 15 + i32.shr_u + i32.xor + i32.const -2048144777 + i32.mul + local.tee $13 + local.get $13 + i32.const 13 + i32.shr_u + i32.xor + i32.const -1028477379 + i32.mul + local.tee $13 + local.get $13 + i32.const 16 + i32.shr_u + i32.xor + i32.and + i32.const 2 + i32.shl + i32.add + local.tee $13 + i32.load + i32.store offset=16 + local.get $13 + local.get $3 + i32.store + local.get $3 + i32.const 24 + i32.add + local.set $3 + end + local.get $12 + i32.const 24 + i32.add + local.set $12 + br $while-continue|00 + end + end + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=8 + global.get $~lib/memory/__stack_pointer + local.get $11 + i32.store offset=12 + local.get $0 + local.get $11 + i32.store + local.get $0 + local.get $11 + i32.const 0 + call $~lib/rt/itcms/__link + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=8 + local.get $0 + local.get $6 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=8 + global.get $~lib/memory/__stack_pointer + local.get $4 + i32.store offset=12 + local.get $0 + local.get $4 + i32.store offset=8 + local.get $0 + local.get $4 + i32.const 0 + call $~lib/rt/itcms/__link + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=8 + local.get $0 + local.get $9 + i32.store offset=12 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=8 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=12 + local.get $0 + local.get $0 + i32.load offset=20 + i32.store offset=16 + global.get $~lib/memory/__stack_pointer + i32.const 16 + i32.add + global.set $~lib/memory/__stack_pointer end - end - end - global.get $~lib/memory/__stack_pointer - i32.const 16 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $1 - ) - (func $"~lib/map/Map#set" (param $0 i32) (param $1 f64) (param $2 f64) - (local $3 i64) - (local $4 i32) - (local $5 i32) - (local $6 i32) - global.get $~lib/memory/__stack_pointer - i32.const 12 - i32.sub - global.set $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - i32.const 3104 - i32.lt_s - if - i32.const 35904 - i32.const 35952 - i32.const 1 - i32.const 1 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - i64.const 0 - i64.store - global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.store offset=8 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store - local.get $0 - local.get $1 - local.get $1 - i64.reinterpret_f64 - local.tee $3 - i32.wrap_i64 - i32.const -1028477379 - i32.mul - i32.const 374761401 - i32.add - i32.const 17 - i32.rotl - i32.const 668265263 - i32.mul - local.get $3 - i64.const 32 - i64.shr_u - i32.wrap_i64 - i32.const -1028477379 - i32.mul - i32.add - i32.const 17 - i32.rotl - i32.const 668265263 - i32.mul - local.tee $4 - i32.const 15 - i32.shr_u - local.get $4 - i32.xor - i32.const -2048144777 - i32.mul - local.tee $4 - i32.const 13 - i32.shr_u - local.get $4 - i32.xor - i32.const -1028477379 - i32.mul - local.tee $4 - i32.const 16 - i32.shr_u - local.get $4 - i32.xor - local.tee $4 - call $"~lib/map/Map#find" - local.tee $5 - if - local.get $5 - local.get $2 - f64.store offset=8 - else - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store - local.get $0 - i32.load offset=16 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store - local.get $0 - i32.load offset=12 - i32.eq - if global.get $~lib/memory/__stack_pointer local.get $0 i32.store global.get $~lib/memory/__stack_pointer local.get $0 - i32.store offset=4 + i32.load offset=8 + local.tee $3 + i32.store offset=8 + global.get $~lib/memory/__stack_pointer local.get $0 - i32.load offset=20 - local.set $5 + i32.store global.get $~lib/memory/__stack_pointer local.get $0 i32.store offset=4 local.get $0 - local.get $5 local.get $0 - i32.load offset=12 - i32.const 3 + i32.load offset=16 + local.tee $4 + i32.const 1 + i32.add + i32.store offset=16 + local.get $3 + local.get $4 + i32.const 24 i32.mul - i32.const 4 - i32.div_s - i32.lt_s - if (result i32) - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 - i32.load offset=4 - else - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 - i32.load offset=4 - i32.const 1 - i32.shl - i32.const 1 - i32.or - end - call $"~lib/map/Map#rehash" + i32.add + local.tee $3 + local.get $1 + f64.store + local.get $3 + local.get $2 + f64.store offset=8 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + local.get $0 + local.get $0 + i32.load offset=20 + i32.const 1 + i32.add + i32.store offset=20 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + local.get $0 + i32.load + local.set $4 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + local.get $3 + local.get $4 + local.get $10 + local.get $0 + i32.load offset=4 + i32.and + i32.const 2 + i32.shl + i32.add + local.tee $0 + i32.load + i32.store offset=16 + local.get $0 + local.get $3 + i32.store end - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.load offset=8 - local.tee $5 - i32.store offset=8 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 - local.get $0 - i32.load offset=16 - local.tee $6 - i32.const 1 - i32.add - i32.store offset=16 - local.get $5 - local.get $6 - i32.const 24 - i32.mul - i32.add - local.tee $5 - local.get $1 - f64.store - local.get $5 - local.get $2 - f64.store offset=8 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 - local.get $0 - i32.load offset=20 - i32.const 1 - i32.add - i32.store offset=20 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store - local.get $0 - i32.load - local.set $6 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store - local.get $5 - local.get $6 - local.get $4 - local.get $0 - i32.load offset=4 - i32.and - i32.const 2 - i32.shl - i32.add - local.tee $0 - i32.load - i32.store offset=16 - local.get $0 - local.get $5 - i32.store + global.get $~lib/memory/__stack_pointer + i32.const 12 + i32.add + global.set $~lib/memory/__stack_pointer + return end - global.get $~lib/memory/__stack_pointer - i32.const 12 - i32.add - global.set $~lib/memory/__stack_pointer + i32.const 35296 + i32.const 35344 + i32.const 1 + i32.const 1 + call $~lib/builtins/abort + unreachable ) (func $"~lib/map/Map#delete" (param $0 i32) (param $1 f64) (local $2 i64) @@ -29137,11 +26694,11 @@ i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 3104 + i32.const 2496 i32.lt_s if - i32.const 35904 - i32.const 35952 + i32.const 35296 + i32.const 35344 i32.const 1 i32.const 1 call $~lib/builtins/abort @@ -29293,50 +26850,19 @@ i32.const 40 i32.sub global.set $~lib/memory/__stack_pointer - block $folding-inner0 + block $folding-inner1 global.get $~lib/memory/__stack_pointer - i32.const 3104 + i32.const 2496 i32.lt_s - br_if $folding-inner0 + br_if $folding-inner1 global.get $~lib/memory/__stack_pointer i32.const 0 i32.const 40 memory.fill global.get $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - i32.const 12 - i32.sub - global.set $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - i32.const 3104 - i32.lt_s - br_if $folding-inner0 - global.get $~lib/memory/__stack_pointer - i64.const 0 - i64.store - global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.store offset=8 - global.get $~lib/memory/__stack_pointer - i32.const 66 - i32.const 2736 - call $~lib/rt/__newArray - local.tee $3 - i32.store - global.get $~lib/memory/__stack_pointer i32.const 0 - i32.store offset=4 - global.get $~lib/memory/__stack_pointer - local.get $3 - i32.store offset=8 - local.get $3 call $"~lib/map/Map#constructor" - local.set $3 - global.get $~lib/memory/__stack_pointer - i32.const 12 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $3 + local.tee $4 i32.store loop $for-loop|0 local.get $1 @@ -29344,23 +26870,23 @@ f64.lt if global.get $~lib/memory/__stack_pointer - local.get $3 + local.get $4 i32.store offset=4 - local.get $3 + local.get $4 local.get $1 call $"~lib/map/Map#has" if i32.const 0 - i32.const 1776 + i32.const 1744 i32.const 7 i32.const 5 call $~lib/builtins/abort unreachable end global.get $~lib/memory/__stack_pointer - local.get $3 + local.get $4 i32.store offset=4 - local.get $3 + local.get $4 local.get $1 local.get $1 i32.trunc_sat_f64_s @@ -29368,24 +26894,24 @@ i32.add call $"~lib/map/Map#set" global.get $~lib/memory/__stack_pointer - local.get $3 + local.get $4 i32.store offset=4 - local.get $3 + local.get $4 local.get $1 call $"~lib/map/Map#has" i32.eqz if i32.const 0 - i32.const 1776 + i32.const 1744 i32.const 9 i32.const 5 call $~lib/builtins/abort unreachable end global.get $~lib/memory/__stack_pointer - local.get $3 + local.get $4 i32.store offset=4 - local.get $3 + local.get $4 local.get $1 call $"~lib/map/Map#get" local.get $1 @@ -29395,7 +26921,7 @@ i32.ne if i32.const 0 - i32.const 1776 + i32.const 1744 i32.const 10 i32.const 5 call $~lib/builtins/abort @@ -29409,15 +26935,15 @@ end end global.get $~lib/memory/__stack_pointer - local.get $3 + local.get $4 i32.store offset=4 - local.get $3 + local.get $4 call $"~lib/map/Map#get:size" i32.const 100 i32.ne if i32.const 0 - i32.const 1776 + i32.const 1744 i32.const 12 i32.const 3 call $~lib/builtins/abort @@ -29431,24 +26957,24 @@ f64.lt if global.get $~lib/memory/__stack_pointer - local.get $3 + local.get $4 i32.store offset=4 - local.get $3 + local.get $4 local.get $1 call $"~lib/map/Map#has" i32.eqz if i32.const 0 - i32.const 1776 + i32.const 1744 i32.const 16 i32.const 5 call $~lib/builtins/abort unreachable end global.get $~lib/memory/__stack_pointer - local.get $3 + local.get $4 i32.store offset=4 - local.get $3 + local.get $4 local.get $1 call $"~lib/map/Map#get" local.get $1 @@ -29458,16 +26984,16 @@ i32.ne if i32.const 0 - i32.const 1776 + i32.const 1744 i32.const 17 i32.const 5 call $~lib/builtins/abort unreachable end global.get $~lib/memory/__stack_pointer - local.get $3 + local.get $4 i32.store offset=4 - local.get $3 + local.get $4 local.get $1 local.get $1 i32.trunc_sat_f64_s @@ -29475,24 +27001,24 @@ i32.add call $"~lib/map/Map#set" global.get $~lib/memory/__stack_pointer - local.get $3 + local.get $4 i32.store offset=4 - local.get $3 + local.get $4 local.get $1 call $"~lib/map/Map#has" i32.eqz if i32.const 0 - i32.const 1776 + i32.const 1744 i32.const 19 i32.const 5 call $~lib/builtins/abort unreachable end global.get $~lib/memory/__stack_pointer - local.get $3 + local.get $4 i32.store offset=4 - local.get $3 + local.get $4 local.get $1 call $"~lib/map/Map#get" local.get $1 @@ -29502,7 +27028,7 @@ i32.ne if i32.const 0 - i32.const 1776 + i32.const 1744 i32.const 20 i32.const 5 call $~lib/builtins/abort @@ -29516,75 +27042,123 @@ end end global.get $~lib/memory/__stack_pointer - local.get $3 + local.get $4 i32.store offset=4 - local.get $3 + local.get $4 call $"~lib/map/Map#get:size" i32.const 100 i32.ne if i32.const 0 - i32.const 1776 + i32.const 1744 i32.const 22 i32.const 3 call $~lib/builtins/abort unreachable end global.get $~lib/memory/__stack_pointer - local.get $3 + local.get $4 i32.store offset=4 global.get $~lib/memory/__stack_pointer - local.get $3 + local.get $4 call $"~lib/map/Map#keys" local.tee $2 i32.store offset=8 global.get $~lib/memory/__stack_pointer - local.get $3 + local.get $4 i32.store offset=4 global.get $~lib/memory/__stack_pointer - local.get $3 + local.get $4 call $"~lib/map/Map#values" - local.tee $4 + local.tee $5 i32.store offset=12 global.get $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 12 + i32.const 16 i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 3104 + i32.const 2496 i32.lt_s - br_if $folding-inner0 + br_if $folding-inner1 global.get $~lib/memory/__stack_pointer i64.const 0 i64.store global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.store offset=8 + i64.const 0 + i64.store offset=8 global.get $~lib/memory/__stack_pointer - i32.const 70 - i32.const 2768 - call $~lib/rt/__newArray - local.tee $6 + i32.const 24 + i32.const 68 + call $~lib/rt/itcms/__new + local.tee $3 i32.store global.get $~lib/memory/__stack_pointer - i32.const 0 + local.get $3 i32.store offset=4 + i32.const 16 + call $~lib/arraybuffer/ArrayBuffer#constructor + local.set $6 global.get $~lib/memory/__stack_pointer local.get $6 i32.store offset=8 + local.get $3 + local.get $6 + i32.store + local.get $3 local.get $6 - call $"~lib/map/Map#constructor" + i32.const 0 + call $~lib/rt/itcms/__link + global.get $~lib/memory/__stack_pointer + local.get $3 + i32.store offset=4 + local.get $3 + i32.const 3 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + local.get $3 + i32.store offset=4 + i32.const 96 + call $~lib/arraybuffer/ArrayBuffer#constructor local.set $6 global.get $~lib/memory/__stack_pointer - i32.const 12 + local.get $6 + i32.store offset=8 + local.get $3 + local.get $6 + i32.store offset=8 + local.get $3 + local.get $6 + i32.const 0 + call $~lib/rt/itcms/__link + global.get $~lib/memory/__stack_pointer + local.get $3 + i32.store offset=4 + local.get $3 + i32.const 4 + i32.store offset=12 + global.get $~lib/memory/__stack_pointer + local.get $3 + i32.store offset=4 + local.get $3 + i32.const 0 + i32.store offset=16 + global.get $~lib/memory/__stack_pointer + local.get $3 + i32.store offset=4 + local.get $3 + i32.const 0 + i32.store offset=20 + global.get $~lib/memory/__stack_pointer + i32.const 16 i32.add global.set $~lib/memory/__stack_pointer - local.get $6 + local.get $3 i32.store offset=16 global.get $~lib/memory/__stack_pointer - call $"~lib/map/Map#constructor@varargs" - local.tee $5 + i32.const 0 + call $"~lib/map/Map#constructor" + local.tee $6 i32.store offset=20 loop $for-loop|2 global.get $~lib/memory/__stack_pointer @@ -29603,9 +27177,9 @@ i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 3104 + i32.const 2496 i32.lt_s - br_if $folding-inner0 + br_if $folding-inner1 global.get $~lib/memory/__stack_pointer i32.const 0 i32.store @@ -29640,31 +27214,31 @@ i32.add global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - local.get $4 + local.get $5 i32.store offset=4 - local.get $4 + local.get $5 local.get $0 call $~lib/array/Array#__get local.set $7 global.get $~lib/memory/__stack_pointer - local.get $3 + local.get $4 i32.store offset=4 - local.get $3 + local.get $4 local.get $1 call $"~lib/map/Map#has" i32.eqz if i32.const 0 - i32.const 1776 + i32.const 1744 i32.const 32 i32.const 5 call $~lib/builtins/abort unreachable end global.get $~lib/memory/__stack_pointer - local.get $3 + local.get $4 i32.store offset=4 - local.get $3 + local.get $4 local.get $7 i32.const 20 i32.sub @@ -29673,23 +27247,23 @@ i32.eqz if i32.const 0 - i32.const 1776 + i32.const 1744 i32.const 33 i32.const 5 call $~lib/builtins/abort unreachable end global.get $~lib/memory/__stack_pointer - local.get $6 + local.get $3 i32.store offset=4 - local.get $6 + local.get $3 local.get $1 local.get $1 call $"~lib/map/Map#set" global.get $~lib/memory/__stack_pointer - local.get $5 + local.get $6 i32.store offset=4 - local.get $5 + local.get $6 local.get $7 i32.const 20 i32.sub @@ -29704,30 +27278,30 @@ end end global.get $~lib/memory/__stack_pointer - local.get $6 + local.get $3 i32.store offset=4 - local.get $6 + local.get $3 call $"~lib/map/Map#get:size" i32.const 100 i32.ne if i32.const 0 - i32.const 1776 + i32.const 1744 i32.const 37 i32.const 3 call $~lib/builtins/abort unreachable end global.get $~lib/memory/__stack_pointer - local.get $5 + local.get $6 i32.store offset=4 - local.get $5 + local.get $6 call $"~lib/map/Map#get:size" i32.const 100 i32.ne if i32.const 0 - i32.const 1776 + i32.const 1744 i32.const 38 i32.const 3 call $~lib/builtins/abort @@ -29741,24 +27315,24 @@ f64.lt if global.get $~lib/memory/__stack_pointer - local.get $3 + local.get $4 i32.store offset=4 - local.get $3 + local.get $4 local.get $1 call $"~lib/map/Map#has" i32.eqz if i32.const 0 - i32.const 1776 + i32.const 1744 i32.const 42 i32.const 5 call $~lib/builtins/abort unreachable end global.get $~lib/memory/__stack_pointer - local.get $3 + local.get $4 i32.store offset=4 - local.get $3 + local.get $4 local.get $1 call $"~lib/map/Map#get" local.get $1 @@ -29768,27 +27342,27 @@ i32.ne if i32.const 0 - i32.const 1776 + i32.const 1744 i32.const 43 i32.const 5 call $~lib/builtins/abort unreachable end global.get $~lib/memory/__stack_pointer - local.get $3 + local.get $4 i32.store offset=4 - local.get $3 + local.get $4 local.get $1 call $"~lib/map/Map#delete" global.get $~lib/memory/__stack_pointer - local.get $3 + local.get $4 i32.store offset=4 - local.get $3 + local.get $4 local.get $1 call $"~lib/map/Map#has" if i32.const 0 - i32.const 1776 + i32.const 1744 i32.const 45 i32.const 5 call $~lib/builtins/abort @@ -29802,15 +27376,15 @@ end end global.get $~lib/memory/__stack_pointer - local.get $3 + local.get $4 i32.store offset=4 - local.get $3 + local.get $4 call $"~lib/map/Map#get:size" i32.const 50 i32.ne if i32.const 0 - i32.const 1776 + i32.const 1744 i32.const 47 i32.const 3 call $~lib/builtins/abort @@ -29824,23 +27398,23 @@ f64.lt if global.get $~lib/memory/__stack_pointer - local.get $3 + local.get $4 i32.store offset=4 - local.get $3 + local.get $4 local.get $1 call $"~lib/map/Map#has" if i32.const 0 - i32.const 1776 + i32.const 1744 i32.const 51 i32.const 5 call $~lib/builtins/abort unreachable end global.get $~lib/memory/__stack_pointer - local.get $3 + local.get $4 i32.store offset=4 - local.get $3 + local.get $4 local.get $1 local.get $1 i32.trunc_sat_f64_s @@ -29848,35 +27422,35 @@ i32.add call $"~lib/map/Map#set" global.get $~lib/memory/__stack_pointer - local.get $3 + local.get $4 i32.store offset=4 - local.get $3 + local.get $4 local.get $1 call $"~lib/map/Map#has" i32.eqz if i32.const 0 - i32.const 1776 + i32.const 1744 i32.const 53 i32.const 5 call $~lib/builtins/abort unreachable end global.get $~lib/memory/__stack_pointer - local.get $3 + local.get $4 i32.store offset=4 - local.get $3 + local.get $4 local.get $1 call $"~lib/map/Map#delete" global.get $~lib/memory/__stack_pointer - local.get $3 + local.get $4 i32.store offset=4 - local.get $3 + local.get $4 local.get $1 call $"~lib/map/Map#has" if i32.const 0 - i32.const 1776 + i32.const 1744 i32.const 55 i32.const 5 call $~lib/builtins/abort @@ -29890,33 +27464,33 @@ end end global.get $~lib/memory/__stack_pointer - local.get $3 + local.get $4 i32.store offset=4 - local.get $3 + local.get $4 call $"~lib/map/Map#get:size" i32.const 50 i32.ne if i32.const 0 - i32.const 1776 + i32.const 1744 i32.const 57 i32.const 3 call $~lib/builtins/abort unreachable end global.get $~lib/memory/__stack_pointer - local.get $3 + local.get $4 i32.store offset=4 - local.get $3 + local.get $4 call $"~lib/map/Map#clear" global.get $~lib/memory/__stack_pointer - local.get $3 + local.get $4 i32.store offset=4 - local.get $3 + local.get $4 call $"~lib/map/Map#get:size" if i32.const 0 - i32.const 1776 + i32.const 1744 i32.const 61 i32.const 3 call $~lib/builtins/abort @@ -29924,7 +27498,7 @@ end global.get $~lib/memory/__stack_pointer i32.const 66 - i32.const 2800 + i32.const 2192 call $~lib/rt/__newArray local.tee $0 i32.store offset=24 @@ -29944,9 +27518,9 @@ i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 3104 + i32.const 2496 i32.lt_s - br_if $folding-inner0 + br_if $folding-inner1 global.get $~lib/memory/__stack_pointer i64.const 0 i64.store @@ -30027,7 +27601,7 @@ i32.ne if i32.const 0 - i32.const 1776 + i32.const 1744 i32.const 74 i32.const 3 call $~lib/builtins/abort @@ -30049,7 +27623,7 @@ i32.eqz if i32.const 0 - i32.const 1776 + i32.const 1744 i32.const 76 i32.const 5 call $~lib/builtins/abort @@ -30068,7 +27642,7 @@ i32.ne if i32.const 0 - i32.const 1776 + i32.const 1744 i32.const 77 i32.const 5 call $~lib/builtins/abort @@ -30088,7 +27662,7 @@ call $"~lib/map/Map#has" if i32.const 0 - i32.const 1776 + i32.const 1744 i32.const 79 i32.const 5 call $~lib/builtins/abort @@ -30108,7 +27682,7 @@ call $"~lib/map/Map#get:size" if i32.const 0 - i32.const 1776 + i32.const 1744 i32.const 81 i32.const 3 call $~lib/builtins/abort @@ -30120,8 +27694,8 @@ global.set $~lib/memory/__stack_pointer return end - i32.const 35904 - i32.const 35952 + i32.const 35296 + i32.const 35344 i32.const 1 i32.const 1 call $~lib/builtins/abort @@ -30133,11 +27707,11 @@ i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 3104 + i32.const 2496 i32.lt_s if - i32.const 35904 - i32.const 35952 + i32.const 35296 + i32.const 35344 i32.const 1 i32.const 1 call $~lib/builtins/abort @@ -30177,11 +27751,11 @@ i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 3104 + i32.const 2496 i32.lt_s if - i32.const 35904 - i32.const 35952 + i32.const 35296 + i32.const 35344 i32.const 1 i32.const 1 call $~lib/builtins/abort @@ -30235,11 +27809,11 @@ i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 3104 + i32.const 2496 i32.lt_s if - i32.const 35904 - i32.const 35952 + i32.const 35296 + i32.const 35344 i32.const 1 i32.const 1 call $~lib/builtins/abort diff --git a/tests/compiler/std/symbol.debug.wat b/tests/compiler/std/symbol.debug.wat index 095ffd0c18..782dd0d467 100644 --- a/tests/compiler/std/symbol.debug.wat +++ b/tests/compiler/std/symbol.debug.wat @@ -10,7 +10,6 @@ (type $8 (func (param i32 i32 i64) (result i32))) (type $9 (func (result i32))) (type $10 (func (param i32 i32 i32 i32 i32) (result i32))) - (type $11 (func (param i32 i32 i32 i32) (result i32))) (import "env" "abort" (func $~lib/builtins/abort (param i32 i32 i32 i32))) (global $~lib/symbol/nextId (mut i32) (i32.const 12)) (global $std/symbol/sym1 (mut i32) (i32.const 0)) @@ -31,7 +30,6 @@ (global $~lib/native/ASC_LOW_MEMORY_LIMIT i32 (i32.const 0)) (global $~lib/native/ASC_RUNTIME i32 (i32.const 2)) (global $~lib/native/ASC_SHRINK_LEVEL i32 (i32.const 0)) - (global $~argumentsLength (mut i32) (i32.const 0)) (global $~lib/symbol/stringToId (mut i32) (i32.const 0)) (global $~lib/symbol/idToString (mut i32) (i32.const 0)) (global $std/symbol/sym3 (mut i32) (i32.const 0)) @@ -44,10 +42,10 @@ (global $std/symbol/hasInstance (mut i32) (i32.const 0)) (global $~lib/symbol/_Symbol.isConcatSpreadable i32 (i32.const 2)) (global $std/symbol/isConcatSpreadable (mut i32) (i32.const 0)) - (global $~lib/rt/__rtti_base i32 (i32.const 1936)) - (global $~lib/memory/__data_end i32 (i32.const 1984)) - (global $~lib/memory/__stack_pointer (mut i32) (i32.const 34752)) - (global $~lib/memory/__heap_base i32 (i32.const 34752)) + (global $~lib/rt/__rtti_base i32 (i32.const 1872)) + (global $~lib/memory/__data_end i32 (i32.const 1916)) + (global $~lib/memory/__stack_pointer (mut i32) (i32.const 34684)) + (global $~lib/memory/__heap_base i32 (i32.const 34684)) (global $~started (mut i32) (i32.const 0)) (memory $0 1) (data $0 (i32.const 12) "\1c\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\06\00\00\001\002\003\00\00\00\00\00\00\00") @@ -64,30 +62,28 @@ (data $11 (i32.const 540) "<\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\1e\00\00\00~\00l\00i\00b\00/\00r\00t\00/\00t\00l\00s\00f\00.\00t\00s\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00") (data $12 (i32.const 604) ",\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\1a\00\00\00~\00l\00i\00b\00/\00a\00r\00r\00a\00y\00.\00t\00s\00\00\00") (data $13 (i32.const 652) "|\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00^\00\00\00E\00l\00e\00m\00e\00n\00t\00 \00t\00y\00p\00e\00 \00m\00u\00s\00t\00 \00b\00e\00 \00n\00u\00l\00l\00a\00b\00l\00e\00 \00i\00f\00 \00a\00r\00r\00a\00y\00 \00i\00s\00 \00h\00o\00l\00e\00y\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00") - (data $14 (i32.const 780) "\1c\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00") - (data $15 (i32.const 812) "<\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00$\00\00\00K\00e\00y\00 \00d\00o\00e\00s\00 \00n\00o\00t\00 \00e\00x\00i\00s\00t\00\00\00\00\00\00\00\00\00") - (data $16 (i32.const 876) ",\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\16\00\00\00~\00l\00i\00b\00/\00m\00a\00p\00.\00t\00s\00\00\00\00\00\00\00") - (data $17 (i32.const 924) "\1c\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00") - (data $18 (i32.const 956) "|\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00^\00\00\00U\00n\00e\00x\00p\00e\00c\00t\00e\00d\00 \00\'\00n\00u\00l\00l\00\'\00 \00(\00n\00o\00t\00 \00a\00s\00s\00i\00g\00n\00e\00d\00 \00o\00r\00 \00f\00a\00i\00l\00e\00d\00 \00c\00a\00s\00t\00)\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00") - (data $19 (i32.const 1084) "\1c\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00") - (data $20 (i32.const 1116) ",\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\16\00\00\00h\00a\00s\00I\00n\00s\00t\00a\00n\00c\00e\00\00\00\00\00\00\00") - (data $21 (i32.const 1164) "<\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00$\00\00\00i\00s\00C\00o\00n\00c\00a\00t\00S\00p\00r\00e\00a\00d\00a\00b\00l\00e\00\00\00\00\00\00\00\00\00") - (data $22 (i32.const 1228) ",\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\10\00\00\00i\00s\00R\00e\00g\00E\00x\00p\00\00\00\00\00\00\00\00\00\00\00\00\00") - (data $23 (i32.const 1276) "\1c\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\n\00\00\00m\00a\00t\00c\00h\00\00\00") - (data $24 (i32.const 1308) ",\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\0e\00\00\00r\00e\00p\00l\00a\00c\00e\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00") - (data $25 (i32.const 1356) "\1c\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\0c\00\00\00s\00e\00a\00r\00c\00h\00") - (data $26 (i32.const 1388) ",\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\0e\00\00\00s\00p\00e\00c\00i\00e\00s\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00") - (data $27 (i32.const 1436) "\1c\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\n\00\00\00s\00p\00l\00i\00t\00\00\00") - (data $28 (i32.const 1468) ",\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\16\00\00\00t\00o\00P\00r\00i\00m\00i\00t\00i\00v\00e\00\00\00\00\00\00\00") - (data $29 (i32.const 1516) ",\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\16\00\00\00t\00o\00S\00t\00r\00i\00n\00g\00T\00a\00g\00\00\00\00\00\00\00") - (data $30 (i32.const 1564) ",\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\16\00\00\00u\00n\00s\00c\00o\00p\00a\00b\00l\00e\00s\00\00\00\00\00\00\00") - (data $31 (i32.const 1612) ",\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\0e\00\00\00S\00y\00m\00b\00o\00l\00(\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00") - (data $32 (i32.const 1660) "\1c\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\02\00\00\00)\00\00\00\00\00\00\00\00\00\00\00") - (data $33 (i32.const 1692) ",\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\10\00\00\00S\00y\00m\00b\00o\00l\00(\00)\00\00\00\00\00\00\00\00\00\00\00\00\00") - (data $34 (i32.const 1740) ",\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\16\00\00\00S\00y\00m\00b\00o\00l\00(\001\002\003\00)\00\00\00\00\00\00\00") - (data $35 (i32.const 1788) "<\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00&\00\00\00S\00y\00m\00b\00o\00l\00(\00h\00a\00s\00I\00n\00s\00t\00a\00n\00c\00e\00)\00\00\00\00\00\00\00") - (data $36 (i32.const 1852) "L\00\00\00\00\00\00\00\00\00\00\00\02\00\00\004\00\00\00S\00y\00m\00b\00o\00l\00(\00i\00s\00C\00o\00n\00c\00a\00t\00S\00p\00r\00e\00a\00d\00a\00b\00l\00e\00)\00\00\00\00\00\00\00\00\00") - (data $37 (i32.const 1936) "\0b\00\00\00 \00\00\00 \00\00\00 \00\00\00\00\00\00\00\10\01\82\00\00\00\00\00\02A\00\00\02\t\00\00\10A\02\00\00\00\00\00\02A\00\00") + (data $14 (i32.const 780) "<\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00$\00\00\00K\00e\00y\00 \00d\00o\00e\00s\00 \00n\00o\00t\00 \00e\00x\00i\00s\00t\00\00\00\00\00\00\00\00\00") + (data $15 (i32.const 844) ",\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\16\00\00\00~\00l\00i\00b\00/\00m\00a\00p\00.\00t\00s\00\00\00\00\00\00\00") + (data $16 (i32.const 892) "|\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00^\00\00\00U\00n\00e\00x\00p\00e\00c\00t\00e\00d\00 \00\'\00n\00u\00l\00l\00\'\00 \00(\00n\00o\00t\00 \00a\00s\00s\00i\00g\00n\00e\00d\00 \00o\00r\00 \00f\00a\00i\00l\00e\00d\00 \00c\00a\00s\00t\00)\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00") + (data $17 (i32.const 1020) "\1c\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00") + (data $18 (i32.const 1052) ",\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\16\00\00\00h\00a\00s\00I\00n\00s\00t\00a\00n\00c\00e\00\00\00\00\00\00\00") + (data $19 (i32.const 1100) "<\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00$\00\00\00i\00s\00C\00o\00n\00c\00a\00t\00S\00p\00r\00e\00a\00d\00a\00b\00l\00e\00\00\00\00\00\00\00\00\00") + (data $20 (i32.const 1164) ",\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\10\00\00\00i\00s\00R\00e\00g\00E\00x\00p\00\00\00\00\00\00\00\00\00\00\00\00\00") + (data $21 (i32.const 1212) "\1c\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\n\00\00\00m\00a\00t\00c\00h\00\00\00") + (data $22 (i32.const 1244) ",\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\0e\00\00\00r\00e\00p\00l\00a\00c\00e\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00") + (data $23 (i32.const 1292) "\1c\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\0c\00\00\00s\00e\00a\00r\00c\00h\00") + (data $24 (i32.const 1324) ",\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\0e\00\00\00s\00p\00e\00c\00i\00e\00s\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00") + (data $25 (i32.const 1372) "\1c\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\n\00\00\00s\00p\00l\00i\00t\00\00\00") + (data $26 (i32.const 1404) ",\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\16\00\00\00t\00o\00P\00r\00i\00m\00i\00t\00i\00v\00e\00\00\00\00\00\00\00") + (data $27 (i32.const 1452) ",\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\16\00\00\00t\00o\00S\00t\00r\00i\00n\00g\00T\00a\00g\00\00\00\00\00\00\00") + (data $28 (i32.const 1500) ",\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\16\00\00\00u\00n\00s\00c\00o\00p\00a\00b\00l\00e\00s\00\00\00\00\00\00\00") + (data $29 (i32.const 1548) ",\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\0e\00\00\00S\00y\00m\00b\00o\00l\00(\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00") + (data $30 (i32.const 1596) "\1c\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\02\00\00\00)\00\00\00\00\00\00\00\00\00\00\00") + (data $31 (i32.const 1628) ",\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\10\00\00\00S\00y\00m\00b\00o\00l\00(\00)\00\00\00\00\00\00\00\00\00\00\00\00\00") + (data $32 (i32.const 1676) ",\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\16\00\00\00S\00y\00m\00b\00o\00l\00(\001\002\003\00)\00\00\00\00\00\00\00") + (data $33 (i32.const 1724) "<\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00&\00\00\00S\00y\00m\00b\00o\00l\00(\00h\00a\00s\00I\00n\00s\00t\00a\00n\00c\00e\00)\00\00\00\00\00\00\00") + (data $34 (i32.const 1788) "L\00\00\00\00\00\00\00\00\00\00\00\02\00\00\004\00\00\00S\00y\00m\00b\00o\00l\00(\00i\00s\00C\00o\00n\00c\00a\00t\00S\00p\00r\00e\00a\00d\00a\00b\00l\00e\00)\00\00\00\00\00\00\00\00\00") + (data $35 (i32.const 1872) "\n\00\00\00 \00\00\00 \00\00\00 \00\00\00\00\00\00\00\10\01\82\00\00\00\00\00\02A\00\00\10A\02\00\00\00\00\00\02A\00\00") (table $0 1 1 funcref) (elem $0 (i32.const 1)) (export "memory" (memory $0)) @@ -2600,22 +2596,6 @@ local.get $entriesCount i32.store offset=20 ) - (func $~lib/rt/__newBuffer (param $size i32) (param $id i32) (param $data i32) (result i32) - (local $buffer i32) - local.get $size - local.get $id - call $~lib/rt/itcms/__new - local.set $buffer - local.get $data - if - local.get $buffer - local.get $data - local.get $size - memory.copy - end - local.get $buffer - return - ) (func $"~lib/array/Array<~lib/map/KeyValue>#get:length_" (param $this i32) (result i32) local.get $this i32.load offset=12 @@ -2842,7 +2822,7 @@ i32.const 672 local.get $0 call $~lib/rt/itcms/__visit - i32.const 832 + i32.const 800 local.get $0 call $~lib/rt/itcms/__visit i32.const 224 @@ -2891,18 +2871,6 @@ local.get $1 call $"~lib/array/Array<~lib/map/KeyValue<~lib/string/String,usize>>#__visit" ) - (func $~lib/array/Array#get:buffer (param $this i32) (result i32) - local.get $this - i32.load - ) - (func $~lib/array/Array~visit (param $0 i32) (param $1 i32) - local.get $0 - local.get $1 - call $~lib/object/Object~visit - local.get $0 - local.get $1 - call $~lib/array/Array#__visit - ) (func $"~lib/map/Map~visit" (param $0 i32) (param $1 i32) local.get $0 local.get $1 @@ -2938,49 +2906,43 @@ block $"~lib/array/Array<~lib/map/KeyValue>" block $"~lib/map/KeyValue" block $"~lib/map/Map" - block $~lib/array/Array - block $"~lib/array/Array<~lib/map/KeyValue<~lib/string/String,usize>>" - block $"~lib/map/KeyValue<~lib/string/String,usize>" - block $"~lib/map/Map<~lib/string/String,usize>" - block $~lib/arraybuffer/ArrayBufferView - block $~lib/string/String - block $~lib/arraybuffer/ArrayBuffer - block $~lib/object/Object - local.get $0 - i32.const 8 - i32.sub - i32.load - br_table $~lib/object/Object $~lib/arraybuffer/ArrayBuffer $~lib/string/String $~lib/arraybuffer/ArrayBufferView $"~lib/map/Map<~lib/string/String,usize>" $"~lib/map/KeyValue<~lib/string/String,usize>" $"~lib/array/Array<~lib/map/KeyValue<~lib/string/String,usize>>" $~lib/array/Array $"~lib/map/Map" $"~lib/map/KeyValue" $"~lib/array/Array<~lib/map/KeyValue>" $invalid - end - return + block $"~lib/array/Array<~lib/map/KeyValue<~lib/string/String,usize>>" + block $"~lib/map/KeyValue<~lib/string/String,usize>" + block $"~lib/map/Map<~lib/string/String,usize>" + block $~lib/arraybuffer/ArrayBufferView + block $~lib/string/String + block $~lib/arraybuffer/ArrayBuffer + block $~lib/object/Object + local.get $0 + i32.const 8 + i32.sub + i32.load + br_table $~lib/object/Object $~lib/arraybuffer/ArrayBuffer $~lib/string/String $~lib/arraybuffer/ArrayBufferView $"~lib/map/Map<~lib/string/String,usize>" $"~lib/map/KeyValue<~lib/string/String,usize>" $"~lib/array/Array<~lib/map/KeyValue<~lib/string/String,usize>>" $"~lib/map/Map" $"~lib/map/KeyValue" $"~lib/array/Array<~lib/map/KeyValue>" $invalid end return end return end - local.get $0 - local.get $1 - call $~lib/arraybuffer/ArrayBufferView~visit return end local.get $0 local.get $1 - call $"~lib/map/Map<~lib/string/String,usize>~visit" + call $~lib/arraybuffer/ArrayBufferView~visit return end local.get $0 local.get $1 - call $"~lib/map/KeyValue<~lib/string/String,usize>~visit" + call $"~lib/map/Map<~lib/string/String,usize>~visit" return end local.get $0 local.get $1 - call $"~lib/array/Array<~lib/map/KeyValue<~lib/string/String,usize>>~visit" + call $"~lib/map/KeyValue<~lib/string/String,usize>~visit" return end local.get $0 local.get $1 - call $~lib/array/Array~visit + call $"~lib/array/Array<~lib/map/KeyValue<~lib/string/String,usize>>~visit" return end local.get $0 @@ -3014,8 +2976,8 @@ global.get $~lib/memory/__data_end i32.lt_s if - i32.const 34784 - i32.const 34832 + i32.const 34704 + i32.const 34752 i32.const 1 i32.const 1 call $~lib/builtins/abort @@ -3800,17 +3762,16 @@ return ) (func $"~lib/map/Map<~lib/string/String,usize>#constructor" (param $this i32) (param $initialEntries i32) (result i32) - (local $entriesLength i32) (local $i i32) (local $key i32) (local $value i32) (local $hashCode i32) (local $entry i32) (local $entries i32) - (local $9 i32) - (local $entry|10 i32) + (local $8 i32) + (local $entry|9 i32) (local $bucketPtrBase i32) - (local $12 i32) + (local $11 i32) global.get $~lib/memory/__stack_pointer i32.const 20 i32.sub @@ -3831,38 +3792,38 @@ i32.store end local.get $this - local.set $12 + local.set $11 global.get $~lib/memory/__stack_pointer - local.get $12 + local.get $11 i32.store offset=4 - local.get $12 + local.get $11 i32.const 0 i32.const 4 i32.const 4 i32.mul call $~lib/arraybuffer/ArrayBuffer#constructor - local.set $12 + local.set $11 global.get $~lib/memory/__stack_pointer - local.get $12 + local.get $11 i32.store offset=8 - local.get $12 + local.get $11 call $"~lib/map/Map<~lib/string/String,usize>#set:buckets" local.get $this - local.set $12 + local.set $11 global.get $~lib/memory/__stack_pointer - local.get $12 + local.get $11 i32.store offset=4 - local.get $12 + local.get $11 i32.const 4 i32.const 1 i32.sub call $"~lib/map/Map<~lib/string/String,usize>#set:bucketsMask" local.get $this - local.set $12 + local.set $11 global.get $~lib/memory/__stack_pointer - local.get $12 + local.get $11 i32.store offset=4 - local.get $12 + local.get $11 i32.const 0 i32.const 4 block $"~lib/map/ENTRY_SIZE<~lib/string/String,usize>|inlined.5" (result i32) @@ -3871,79 +3832,81 @@ end i32.mul call $~lib/arraybuffer/ArrayBuffer#constructor - local.set $12 + local.set $11 global.get $~lib/memory/__stack_pointer - local.get $12 + local.get $11 i32.store offset=8 - local.get $12 + local.get $11 call $"~lib/map/Map<~lib/string/String,usize>#set:entries" local.get $this - local.set $12 + local.set $11 global.get $~lib/memory/__stack_pointer - local.get $12 + local.get $11 i32.store offset=4 - local.get $12 + local.get $11 i32.const 4 call $"~lib/map/Map<~lib/string/String,usize>#set:entriesCapacity" local.get $this - local.set $12 + local.set $11 global.get $~lib/memory/__stack_pointer - local.get $12 + local.get $11 i32.store offset=4 - local.get $12 + local.get $11 i32.const 0 call $"~lib/map/Map<~lib/string/String,usize>#set:entriesOffset" local.get $this - local.set $12 + local.set $11 global.get $~lib/memory/__stack_pointer - local.get $12 + local.get $11 i32.store offset=4 - local.get $12 + local.get $11 i32.const 0 call $"~lib/map/Map<~lib/string/String,usize>#set:entriesCount" local.get $initialEntries - local.set $12 - global.get $~lib/memory/__stack_pointer - local.get $12 - i32.store offset=4 - local.get $12 - call $"~lib/array/Array<~lib/map/KeyValue<~lib/string/String,usize>>#get:length" - local.set $entriesLength - local.get $entriesLength - i32.const 0 - i32.gt_s if - local.get $entriesLength + local.get $initialEntries + local.set $11 + global.get $~lib/memory/__stack_pointer + local.get $11 + i32.store offset=4 + local.get $11 + call $"~lib/array/Array<~lib/map/KeyValue<~lib/string/String,usize>>#get:length" local.get $this - local.set $12 + local.set $11 global.get $~lib/memory/__stack_pointer - local.get $12 + local.get $11 i32.store offset=4 - local.get $12 + local.get $11 call $"~lib/map/Map<~lib/string/String,usize>#get:entriesCapacity" i32.ge_s if local.get $this - local.set $12 + local.set $11 global.get $~lib/memory/__stack_pointer - local.get $12 + local.get $11 i32.store offset=4 - local.get $12 - local.get $entriesLength + local.get $11 + local.get $initialEntries + local.set $11 + global.get $~lib/memory/__stack_pointer + local.get $11 + i32.store offset=8 + local.get $11 + call $"~lib/array/Array<~lib/map/KeyValue<~lib/string/String,usize>>#get:length" call $"~lib/map/Map<~lib/string/String,usize>#set:bucketsMask" end local.get $this - local.set $12 + local.set $11 global.get $~lib/memory/__stack_pointer - local.get $12 + local.get $11 i32.store offset=4 - local.get $12 + local.get $11 local.get $this - local.set $12 + local.set $11 global.get $~lib/memory/__stack_pointer - local.get $12 + local.get $11 i32.store offset=8 - local.get $12 + local.get $11 call $"~lib/map/Map<~lib/string/String,usize>#get:bucketsMask" i32.const 1 i32.shl @@ -3954,61 +3917,67 @@ local.set $i loop $for-loop|0 local.get $i - local.get $entriesLength + local.get $initialEntries + local.set $11 + global.get $~lib/memory/__stack_pointer + local.get $11 + i32.store offset=4 + local.get $11 + call $"~lib/array/Array<~lib/map/KeyValue<~lib/string/String,usize>>#get:length" i32.lt_s if global.get $~lib/memory/__stack_pointer local.get $initialEntries - local.set $12 + local.set $11 global.get $~lib/memory/__stack_pointer - local.get $12 + local.get $11 i32.store offset=8 - local.get $12 + local.get $11 local.get $i call $"~lib/array/Array<~lib/map/KeyValue<~lib/string/String,usize>>#__get" - local.set $12 + local.set $11 global.get $~lib/memory/__stack_pointer - local.get $12 + local.get $11 i32.store offset=4 - local.get $12 + local.get $11 call $"~lib/map/KeyValue<~lib/string/String,usize>#get:key" local.tee $key i32.store offset=12 local.get $initialEntries - local.set $12 + local.set $11 global.get $~lib/memory/__stack_pointer - local.get $12 + local.get $11 i32.store offset=8 - local.get $12 + local.get $11 local.get $i call $"~lib/array/Array<~lib/map/KeyValue<~lib/string/String,usize>>#__get" - local.set $12 + local.set $11 global.get $~lib/memory/__stack_pointer - local.get $12 + local.get $11 i32.store offset=4 - local.get $12 + local.get $11 call $"~lib/map/KeyValue<~lib/string/String,usize>#get:value" local.set $value local.get $key - local.set $12 + local.set $11 global.get $~lib/memory/__stack_pointer - local.get $12 + local.get $11 i32.store offset=4 - local.get $12 + local.get $11 call $~lib/util/hash/HASH<~lib/string/String> local.set $hashCode local.get $this - local.set $12 + local.set $11 global.get $~lib/memory/__stack_pointer - local.get $12 + local.get $11 i32.store offset=4 - local.get $12 + local.get $11 local.get $key - local.set $12 + local.set $11 global.get $~lib/memory/__stack_pointer - local.get $12 + local.get $11 i32.store offset=8 - local.get $12 + local.get $11 local.get $hashCode call $"~lib/map/Map<~lib/string/String,usize>#find" local.set $entry @@ -4022,47 +3991,47 @@ else global.get $~lib/memory/__stack_pointer local.get $this - local.set $12 + local.set $11 global.get $~lib/memory/__stack_pointer - local.get $12 + local.get $11 i32.store offset=4 - local.get $12 + local.get $11 call $"~lib/map/Map<~lib/string/String,usize>#get:entries" local.tee $entries i32.store offset=16 local.get $entries local.get $this - local.set $12 + local.set $11 global.get $~lib/memory/__stack_pointer - local.get $12 + local.get $11 i32.store offset=4 - local.get $12 + local.get $11 local.get $this - local.set $12 + local.set $11 global.get $~lib/memory/__stack_pointer - local.get $12 + local.get $11 i32.store offset=8 - local.get $12 + local.get $11 call $"~lib/map/Map<~lib/string/String,usize>#get:entriesOffset" - local.tee $9 + local.tee $8 i32.const 1 i32.add call $"~lib/map/Map<~lib/string/String,usize>#set:entriesOffset" - local.get $9 + local.get $8 block $"~lib/map/ENTRY_SIZE<~lib/string/String,usize>|inlined.4" (result i32) i32.const 12 br $"~lib/map/ENTRY_SIZE<~lib/string/String,usize>|inlined.4" end i32.mul i32.add - local.set $entry|10 - local.get $entry|10 + local.set $entry|9 + local.get $entry|9 local.get $key - local.set $12 + local.set $11 global.get $~lib/memory/__stack_pointer - local.get $12 + local.get $11 i32.store offset=4 - local.get $12 + local.get $11 call $"~lib/map/MapEntry<~lib/string/String,usize>#set:key" i32.const 1 drop @@ -4070,53 +4039,53 @@ local.get $key i32.const 1 call $~lib/rt/itcms/__link - local.get $entry|10 + local.get $entry|9 local.get $value call $"~lib/map/MapEntry<~lib/string/String,usize>#set:value" i32.const 0 drop local.get $this - local.set $12 + local.set $11 global.get $~lib/memory/__stack_pointer - local.get $12 + local.get $11 i32.store offset=4 - local.get $12 + local.get $11 local.get $this - local.set $12 + local.set $11 global.get $~lib/memory/__stack_pointer - local.get $12 + local.get $11 i32.store offset=8 - local.get $12 + local.get $11 call $"~lib/map/Map<~lib/string/String,usize>#get:entriesCount" i32.const 1 i32.add call $"~lib/map/Map<~lib/string/String,usize>#set:entriesCount" local.get $this - local.set $12 + local.set $11 global.get $~lib/memory/__stack_pointer - local.get $12 + local.get $11 i32.store offset=4 - local.get $12 + local.get $11 call $"~lib/map/Map<~lib/string/String,usize>#get:buckets" local.get $hashCode local.get $this - local.set $12 + local.set $11 global.get $~lib/memory/__stack_pointer - local.get $12 + local.get $11 i32.store offset=4 - local.get $12 + local.get $11 call $"~lib/map/Map<~lib/string/String,usize>#get:bucketsMask" i32.and i32.const 4 i32.mul i32.add local.set $bucketPtrBase - local.get $entry|10 + local.get $entry|9 local.get $bucketPtrBase i32.load call $"~lib/map/MapEntry<~lib/string/String,usize>#set:taggedNext" local.get $bucketPtrBase - local.get $entry|10 + local.get $entry|9 i32.store end local.get $i @@ -4128,63 +4097,12 @@ end end local.get $this - local.set $12 + local.set $11 global.get $~lib/memory/__stack_pointer i32.const 20 i32.add global.set $~lib/memory/__stack_pointer - local.get $12 - ) - (func $"~lib/map/Map<~lib/string/String,usize>#constructor@varargs" (param $this i32) (param $initialEntries i32) (result i32) - (local $2 i32) - (local $3 i32) - global.get $~lib/memory/__stack_pointer - i32.const 12 - i32.sub - global.set $~lib/memory/__stack_pointer - call $~stack_check - global.get $~lib/memory/__stack_pointer - i64.const 0 - i64.store - global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.store offset=8 - block $1of1 - block $0of1 - block $outOfRange - global.get $~argumentsLength - br_table $0of1 $1of1 $outOfRange - end - unreachable - end - global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.const 2 - i32.const 6 - i32.const 800 - call $~lib/rt/__newArray - local.tee $initialEntries - i32.store - end - local.get $this - local.set $3 - global.get $~lib/memory/__stack_pointer - local.get $3 - i32.store offset=4 - local.get $3 - local.get $initialEntries - local.set $3 - global.get $~lib/memory/__stack_pointer - local.get $3 - i32.store offset=8 - local.get $3 - call $"~lib/map/Map<~lib/string/String,usize>#constructor" - local.set $3 - global.get $~lib/memory/__stack_pointer - i32.const 12 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $3 + local.get $11 ) (func $"~lib/map/Map<~lib/string/String,usize>#has" (param $this i32) (param $key i32) (result i32) (local $2 i32) @@ -4267,9 +4185,9 @@ local.get $entry i32.eqz if - i32.const 832 - i32.const 896 - i32.const 148 + i32.const 800 + i32.const 864 + i32.const 146 i32.const 17 call $~lib/builtins/abort unreachable @@ -4883,17 +4801,16 @@ return ) (func $"~lib/map/Map#constructor" (param $this i32) (param $initialEntries i32) (result i32) - (local $entriesLength i32) (local $i i32) (local $key i32) (local $value i32) (local $hashCode i32) (local $entry i32) (local $entries i32) - (local $9 i32) - (local $entry|10 i32) + (local $8 i32) + (local $entry|9 i32) (local $bucketPtrBase i32) - (local $12 i32) + (local $11 i32) global.get $~lib/memory/__stack_pointer i32.const 20 i32.sub @@ -4908,44 +4825,44 @@ if global.get $~lib/memory/__stack_pointer i32.const 24 - i32.const 8 + i32.const 7 call $~lib/rt/itcms/__new local.tee $this i32.store end local.get $this - local.set $12 + local.set $11 global.get $~lib/memory/__stack_pointer - local.get $12 + local.get $11 i32.store offset=4 - local.get $12 + local.get $11 i32.const 0 i32.const 4 i32.const 4 i32.mul call $~lib/arraybuffer/ArrayBuffer#constructor - local.set $12 + local.set $11 global.get $~lib/memory/__stack_pointer - local.get $12 + local.get $11 i32.store offset=8 - local.get $12 + local.get $11 call $"~lib/map/Map#set:buckets" local.get $this - local.set $12 + local.set $11 global.get $~lib/memory/__stack_pointer - local.get $12 + local.get $11 i32.store offset=4 - local.get $12 + local.get $11 i32.const 4 i32.const 1 i32.sub call $"~lib/map/Map#set:bucketsMask" local.get $this - local.set $12 + local.set $11 global.get $~lib/memory/__stack_pointer - local.get $12 + local.get $11 i32.store offset=4 - local.get $12 + local.get $11 i32.const 0 i32.const 4 block $"~lib/map/ENTRY_SIZE|inlined.5" (result i32) @@ -4954,79 +4871,81 @@ end i32.mul call $~lib/arraybuffer/ArrayBuffer#constructor - local.set $12 + local.set $11 global.get $~lib/memory/__stack_pointer - local.get $12 + local.get $11 i32.store offset=8 - local.get $12 + local.get $11 call $"~lib/map/Map#set:entries" local.get $this - local.set $12 + local.set $11 global.get $~lib/memory/__stack_pointer - local.get $12 + local.get $11 i32.store offset=4 - local.get $12 + local.get $11 i32.const 4 call $"~lib/map/Map#set:entriesCapacity" local.get $this - local.set $12 + local.set $11 global.get $~lib/memory/__stack_pointer - local.get $12 + local.get $11 i32.store offset=4 - local.get $12 + local.get $11 i32.const 0 call $"~lib/map/Map#set:entriesOffset" local.get $this - local.set $12 + local.set $11 global.get $~lib/memory/__stack_pointer - local.get $12 + local.get $11 i32.store offset=4 - local.get $12 + local.get $11 i32.const 0 call $"~lib/map/Map#set:entriesCount" local.get $initialEntries - local.set $12 - global.get $~lib/memory/__stack_pointer - local.get $12 - i32.store offset=4 - local.get $12 - call $"~lib/array/Array<~lib/map/KeyValue>#get:length" - local.set $entriesLength - local.get $entriesLength - i32.const 0 - i32.gt_s if - local.get $entriesLength + local.get $initialEntries + local.set $11 + global.get $~lib/memory/__stack_pointer + local.get $11 + i32.store offset=4 + local.get $11 + call $"~lib/array/Array<~lib/map/KeyValue>#get:length" local.get $this - local.set $12 + local.set $11 global.get $~lib/memory/__stack_pointer - local.get $12 + local.get $11 i32.store offset=4 - local.get $12 + local.get $11 call $"~lib/map/Map#get:entriesCapacity" i32.ge_s if local.get $this - local.set $12 + local.set $11 global.get $~lib/memory/__stack_pointer - local.get $12 + local.get $11 i32.store offset=4 - local.get $12 - local.get $entriesLength + local.get $11 + local.get $initialEntries + local.set $11 + global.get $~lib/memory/__stack_pointer + local.get $11 + i32.store offset=8 + local.get $11 + call $"~lib/array/Array<~lib/map/KeyValue>#get:length" call $"~lib/map/Map#set:bucketsMask" end local.get $this - local.set $12 + local.set $11 global.get $~lib/memory/__stack_pointer - local.get $12 + local.get $11 i32.store offset=4 - local.get $12 + local.get $11 local.get $this - local.set $12 + local.set $11 global.get $~lib/memory/__stack_pointer - local.get $12 + local.get $11 i32.store offset=8 - local.get $12 + local.get $11 call $"~lib/map/Map#get:bucketsMask" i32.const 1 i32.shl @@ -5037,38 +4956,44 @@ local.set $i loop $for-loop|0 local.get $i - local.get $entriesLength + local.get $initialEntries + local.set $11 + global.get $~lib/memory/__stack_pointer + local.get $11 + i32.store offset=4 + local.get $11 + call $"~lib/array/Array<~lib/map/KeyValue>#get:length" i32.lt_s if local.get $initialEntries - local.set $12 + local.set $11 global.get $~lib/memory/__stack_pointer - local.get $12 + local.get $11 i32.store offset=8 - local.get $12 + local.get $11 local.get $i call $"~lib/array/Array<~lib/map/KeyValue>#__get" - local.set $12 + local.set $11 global.get $~lib/memory/__stack_pointer - local.get $12 + local.get $11 i32.store offset=4 - local.get $12 + local.get $11 call $"~lib/map/KeyValue#get:key" local.set $key global.get $~lib/memory/__stack_pointer local.get $initialEntries - local.set $12 + local.set $11 global.get $~lib/memory/__stack_pointer - local.get $12 + local.get $11 i32.store offset=8 - local.get $12 + local.get $11 local.get $i call $"~lib/array/Array<~lib/map/KeyValue>#__get" - local.set $12 + local.set $11 global.get $~lib/memory/__stack_pointer - local.get $12 + local.get $11 i32.store offset=4 - local.get $12 + local.get $11 call $"~lib/map/KeyValue#get:value" local.tee $value i32.store offset=12 @@ -5076,11 +5001,11 @@ call $~lib/util/hash/HASH local.set $hashCode local.get $this - local.set $12 + local.set $11 global.get $~lib/memory/__stack_pointer - local.get $12 + local.get $11 i32.store offset=4 - local.get $12 + local.get $11 local.get $key local.get $hashCode call $"~lib/map/Map#find" @@ -5089,11 +5014,11 @@ if local.get $entry local.get $value - local.set $12 + local.set $11 global.get $~lib/memory/__stack_pointer - local.get $12 + local.get $11 i32.store offset=4 - local.get $12 + local.get $11 call $"~lib/map/MapEntry#set:value" i32.const 1 drop @@ -5104,52 +5029,52 @@ else global.get $~lib/memory/__stack_pointer local.get $this - local.set $12 + local.set $11 global.get $~lib/memory/__stack_pointer - local.get $12 + local.get $11 i32.store offset=4 - local.get $12 + local.get $11 call $"~lib/map/Map#get:entries" local.tee $entries i32.store offset=16 local.get $entries local.get $this - local.set $12 + local.set $11 global.get $~lib/memory/__stack_pointer - local.get $12 + local.get $11 i32.store offset=4 - local.get $12 + local.get $11 local.get $this - local.set $12 + local.set $11 global.get $~lib/memory/__stack_pointer - local.get $12 + local.get $11 i32.store offset=8 - local.get $12 + local.get $11 call $"~lib/map/Map#get:entriesOffset" - local.tee $9 + local.tee $8 i32.const 1 i32.add call $"~lib/map/Map#set:entriesOffset" - local.get $9 + local.get $8 block $"~lib/map/ENTRY_SIZE|inlined.4" (result i32) i32.const 12 br $"~lib/map/ENTRY_SIZE|inlined.4" end i32.mul i32.add - local.set $entry|10 - local.get $entry|10 + local.set $entry|9 + local.get $entry|9 local.get $key call $"~lib/map/MapEntry#set:key" i32.const 0 drop - local.get $entry|10 + local.get $entry|9 local.get $value - local.set $12 + local.set $11 global.get $~lib/memory/__stack_pointer - local.get $12 + local.get $11 i32.store offset=4 - local.get $12 + local.get $11 call $"~lib/map/MapEntry#set:value" i32.const 1 drop @@ -5158,47 +5083,47 @@ i32.const 1 call $~lib/rt/itcms/__link local.get $this - local.set $12 + local.set $11 global.get $~lib/memory/__stack_pointer - local.get $12 + local.get $11 i32.store offset=4 - local.get $12 + local.get $11 local.get $this - local.set $12 + local.set $11 global.get $~lib/memory/__stack_pointer - local.get $12 + local.get $11 i32.store offset=8 - local.get $12 + local.get $11 call $"~lib/map/Map#get:entriesCount" i32.const 1 i32.add call $"~lib/map/Map#set:entriesCount" local.get $this - local.set $12 + local.set $11 global.get $~lib/memory/__stack_pointer - local.get $12 + local.get $11 i32.store offset=4 - local.get $12 + local.get $11 call $"~lib/map/Map#get:buckets" local.get $hashCode local.get $this - local.set $12 + local.set $11 global.get $~lib/memory/__stack_pointer - local.get $12 + local.get $11 i32.store offset=4 - local.get $12 + local.get $11 call $"~lib/map/Map#get:bucketsMask" i32.and i32.const 4 i32.mul i32.add local.set $bucketPtrBase - local.get $entry|10 + local.get $entry|9 local.get $bucketPtrBase i32.load call $"~lib/map/MapEntry#set:taggedNext" local.get $bucketPtrBase - local.get $entry|10 + local.get $entry|9 i32.store end local.get $i @@ -5210,63 +5135,12 @@ end end local.get $this - local.set $12 + local.set $11 global.get $~lib/memory/__stack_pointer i32.const 20 i32.add global.set $~lib/memory/__stack_pointer - local.get $12 - ) - (func $"~lib/map/Map#constructor@varargs" (param $this i32) (param $initialEntries i32) (result i32) - (local $2 i32) - (local $3 i32) - global.get $~lib/memory/__stack_pointer - i32.const 12 - i32.sub - global.set $~lib/memory/__stack_pointer - call $~stack_check - global.get $~lib/memory/__stack_pointer - i64.const 0 - i64.store - global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.store offset=8 - block $1of1 - block $0of1 - block $outOfRange - global.get $~argumentsLength - br_table $0of1 $1of1 $outOfRange - end - unreachable - end - global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.const 2 - i32.const 10 - i32.const 944 - call $~lib/rt/__newArray - local.tee $initialEntries - i32.store - end - local.get $this - local.set $3 - global.get $~lib/memory/__stack_pointer - local.get $3 - i32.store offset=4 - local.get $3 - local.get $initialEntries - local.set $3 - global.get $~lib/memory/__stack_pointer - local.get $3 - i32.store offset=8 - local.get $3 - call $"~lib/map/Map#constructor" - local.set $3 - global.get $~lib/memory/__stack_pointer - i32.const 12 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $3 + local.get $11 ) (func $"~lib/map/Map#set" (param $this i32) (param $key i32) (param $value i32) (result i32) (local $hashCode i32) @@ -5641,9 +5515,9 @@ local.get $entry i32.eqz if - i32.const 832 - i32.const 896 - i32.const 148 + i32.const 800 + i32.const 864 + i32.const 146 i32.const 17 call $~lib/builtins/abort unreachable @@ -5738,7 +5612,7 @@ i32.const 0 i32.eq if - i32.const 1104 + i32.const 1040 local.set $6 global.get $~lib/memory/__stack_pointer i32.const 8 @@ -5820,7 +5694,7 @@ local.get $this local.set $id global.get $~lib/memory/__stack_pointer - i32.const 1104 + i32.const 1040 local.tee $str i32.store block $break|0 @@ -5885,67 +5759,67 @@ br $case11|0 end global.get $~lib/memory/__stack_pointer - i32.const 1136 + i32.const 1072 local.tee $str i32.store br $break|0 end global.get $~lib/memory/__stack_pointer - i32.const 1184 + i32.const 1120 local.tee $str i32.store br $break|0 end global.get $~lib/memory/__stack_pointer - i32.const 1248 + i32.const 1184 local.tee $str i32.store br $break|0 end global.get $~lib/memory/__stack_pointer - i32.const 1296 + i32.const 1232 local.tee $str i32.store br $break|0 end global.get $~lib/memory/__stack_pointer - i32.const 1328 + i32.const 1264 local.tee $str i32.store br $break|0 end global.get $~lib/memory/__stack_pointer - i32.const 1376 + i32.const 1312 local.tee $str i32.store br $break|0 end global.get $~lib/memory/__stack_pointer - i32.const 1408 + i32.const 1344 local.tee $str i32.store br $break|0 end global.get $~lib/memory/__stack_pointer - i32.const 1456 + i32.const 1392 local.tee $str i32.store br $break|0 end global.get $~lib/memory/__stack_pointer - i32.const 1488 + i32.const 1424 local.tee $str i32.store br $break|0 end global.get $~lib/memory/__stack_pointer - i32.const 1536 + i32.const 1472 local.tee $str i32.store br $break|0 end global.get $~lib/memory/__stack_pointer - i32.const 1584 + i32.const 1520 local.tee $str i32.store br $break|0 @@ -5980,7 +5854,7 @@ end br $break|0 end - i32.const 1632 + i32.const 1568 local.set $4 global.get $~lib/memory/__stack_pointer local.get $4 @@ -5998,7 +5872,7 @@ local.get $4 i32.store offset=4 local.get $4 - i32.const 1680 + i32.const 1616 local.set $4 global.get $~lib/memory/__stack_pointer local.get $4 @@ -6075,15 +5949,11 @@ global.set $~lib/rt/itcms/fromSpace i32.const 0 i32.const 0 - global.set $~argumentsLength - i32.const 0 - call $"~lib/map/Map<~lib/string/String,usize>#constructor@varargs" + call $"~lib/map/Map<~lib/string/String,usize>#constructor" global.set $~lib/symbol/stringToId i32.const 0 i32.const 0 - global.set $~argumentsLength - i32.const 0 - call $"~lib/map/Map#constructor@varargs" + call $"~lib/map/Map#constructor" global.set $~lib/symbol/idToString i32.const 32 local.set $2 @@ -6162,7 +6032,7 @@ if (result i32) local.get $0 else - i32.const 976 + i32.const 912 i32.const 64 i32.const 17 i32.const 12 @@ -6179,7 +6049,7 @@ if (result i32) local.get $1 else - i32.const 976 + i32.const 912 i32.const 64 i32.const 18 i32.const 12 @@ -6239,7 +6109,7 @@ local.get $2 i32.store local.get $2 - i32.const 1712 + i32.const 1648 local.set $2 global.get $~lib/memory/__stack_pointer local.get $2 @@ -6262,7 +6132,7 @@ local.get $2 i32.store local.get $2 - i32.const 1760 + i32.const 1696 local.set $2 global.get $~lib/memory/__stack_pointer local.get $2 @@ -6289,7 +6159,7 @@ local.get $2 i32.store local.get $2 - i32.const 1808 + i32.const 1744 local.set $2 global.get $~lib/memory/__stack_pointer local.get $2 @@ -6312,7 +6182,7 @@ local.get $2 i32.store local.get $2 - i32.const 1872 + i32.const 1808 local.set $2 global.get $~lib/memory/__stack_pointer local.get $2 @@ -6502,32 +6372,6 @@ i32.add global.set $~lib/memory/__stack_pointer ) - (func $~lib/array/Array#__visit (param $this i32) (param $cookie i32) - (local $2 i32) - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.sub - global.set $~lib/memory/__stack_pointer - call $~stack_check - global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.store - i32.const 0 - drop - local.get $this - local.set $2 - global.get $~lib/memory/__stack_pointer - local.get $2 - i32.store - local.get $2 - call $~lib/array/Array#get:buffer - local.get $cookie - call $~lib/rt/itcms/__visit - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.add - global.set $~lib/memory/__stack_pointer - ) (func $"~lib/map/Map#__visit" (param $this i32) (param $cookie i32) (local $entries i32) (local $cur i32) @@ -6734,57 +6578,4 @@ local.get $3 return ) - (func $~lib/rt/__newArray (param $length i32) (param $alignLog2 i32) (param $id i32) (param $data i32) (result i32) - (local $bufferSize i32) - (local $buffer i32) - (local $array i32) - (local $7 i32) - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.sub - global.set $~lib/memory/__stack_pointer - call $~stack_check - global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.store - local.get $length - local.get $alignLog2 - i32.shl - local.set $bufferSize - global.get $~lib/memory/__stack_pointer - local.get $bufferSize - i32.const 1 - local.get $data - call $~lib/rt/__newBuffer - local.tee $buffer - i32.store - i32.const 16 - local.get $id - call $~lib/rt/itcms/__new - local.set $array - local.get $array - local.get $buffer - i32.store - local.get $array - local.get $buffer - i32.const 0 - call $~lib/rt/itcms/__link - local.get $array - local.get $buffer - i32.store offset=4 - local.get $array - local.get $bufferSize - i32.store offset=8 - local.get $array - local.get $length - i32.store offset=12 - local.get $array - local.set $7 - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $7 - return - ) ) diff --git a/tests/compiler/std/symbol.release.wat b/tests/compiler/std/symbol.release.wat index d20a016aec..bab1fa97a4 100644 --- a/tests/compiler/std/symbol.release.wat +++ b/tests/compiler/std/symbol.release.wat @@ -1,14 +1,14 @@ (module (type $0 (func (param i32 i32) (result i32))) - (type $1 (func (param i32) (result i32))) - (type $2 (func (param i32 i32))) - (type $3 (func)) - (type $4 (func (param i32))) + (type $1 (func)) + (type $2 (func (param i32))) + (type $3 (func (param i32 i32))) + (type $4 (func (param i32) (result i32))) (type $5 (func (result i32))) - (type $6 (func (param i32 i32 i32) (result i32))) - (type $7 (func (param i32 i32 i32 i32))) - (type $8 (func (param i32 i32 i64))) - (type $9 (func (param i32 i32 i32))) + (type $6 (func (param i32 i32 i32 i32))) + (type $7 (func (param i32 i32 i64))) + (type $8 (func (param i32 i32 i32))) + (type $9 (func (param i32 i32 i32) (result i32))) (import "env" "abort" (func $~lib/builtins/abort (param i32 i32 i32 i32))) (global $~lib/symbol/nextId (mut i32) (i32.const 12)) (global $std/symbol/sym1 (mut i32) (i32.const 0)) @@ -32,7 +32,7 @@ (global $std/symbol/key3 (mut i32) (i32.const 0)) (global $std/symbol/key4 (mut i32) (i32.const 0)) (global $std/symbol/isConcatSpreadable (mut i32) (i32.const 0)) - (global $~lib/memory/__stack_pointer (mut i32) (i32.const 35776)) + (global $~lib/memory/__stack_pointer (mut i32) (i32.const 35708)) (global $~started (mut i32) (i32.const 0)) (memory $0 1) (data $0 (i32.const 1036) "\1c") @@ -57,53 +57,49 @@ (data $12.1 (i32.const 1640) "\02\00\00\00\1a\00\00\00~\00l\00i\00b\00/\00a\00r\00r\00a\00y\00.\00t\00s") (data $13 (i32.const 1676) "|") (data $13.1 (i32.const 1688) "\02\00\00\00^\00\00\00E\00l\00e\00m\00e\00n\00t\00 \00t\00y\00p\00e\00 \00m\00u\00s\00t\00 \00b\00e\00 \00n\00u\00l\00l\00a\00b\00l\00e\00 \00i\00f\00 \00a\00r\00r\00a\00y\00 \00i\00s\00 \00h\00o\00l\00e\00y") - (data $14 (i32.const 1804) "\1c") - (data $14.1 (i32.const 1816) "\01") - (data $15 (i32.const 1836) "<") - (data $15.1 (i32.const 1848) "\02\00\00\00$\00\00\00K\00e\00y\00 \00d\00o\00e\00s\00 \00n\00o\00t\00 \00e\00x\00i\00s\00t") - (data $16 (i32.const 1900) ",") - (data $16.1 (i32.const 1912) "\02\00\00\00\16\00\00\00~\00l\00i\00b\00/\00m\00a\00p\00.\00t\00s") - (data $17 (i32.const 1948) "\1c") - (data $17.1 (i32.const 1960) "\01") - (data $18 (i32.const 1980) "|") - (data $18.1 (i32.const 1992) "\02\00\00\00^\00\00\00U\00n\00e\00x\00p\00e\00c\00t\00e\00d\00 \00\'\00n\00u\00l\00l\00\'\00 \00(\00n\00o\00t\00 \00a\00s\00s\00i\00g\00n\00e\00d\00 \00o\00r\00 \00f\00a\00i\00l\00e\00d\00 \00c\00a\00s\00t\00)") - (data $19 (i32.const 2108) "\1c") - (data $19.1 (i32.const 2120) "\02") - (data $20 (i32.const 2140) ",") - (data $20.1 (i32.const 2152) "\02\00\00\00\16\00\00\00h\00a\00s\00I\00n\00s\00t\00a\00n\00c\00e") - (data $21 (i32.const 2188) "<") - (data $21.1 (i32.const 2200) "\02\00\00\00$\00\00\00i\00s\00C\00o\00n\00c\00a\00t\00S\00p\00r\00e\00a\00d\00a\00b\00l\00e") - (data $22 (i32.const 2252) ",") - (data $22.1 (i32.const 2264) "\02\00\00\00\10\00\00\00i\00s\00R\00e\00g\00E\00x\00p") - (data $23 (i32.const 2300) "\1c") - (data $23.1 (i32.const 2312) "\02\00\00\00\n\00\00\00m\00a\00t\00c\00h") - (data $24 (i32.const 2332) ",") - (data $24.1 (i32.const 2344) "\02\00\00\00\0e\00\00\00r\00e\00p\00l\00a\00c\00e") - (data $25 (i32.const 2380) "\1c") - (data $25.1 (i32.const 2392) "\02\00\00\00\0c\00\00\00s\00e\00a\00r\00c\00h") - (data $26 (i32.const 2412) ",") - (data $26.1 (i32.const 2424) "\02\00\00\00\0e\00\00\00s\00p\00e\00c\00i\00e\00s") - (data $27 (i32.const 2460) "\1c") - (data $27.1 (i32.const 2472) "\02\00\00\00\n\00\00\00s\00p\00l\00i\00t") - (data $28 (i32.const 2492) ",") - (data $28.1 (i32.const 2504) "\02\00\00\00\16\00\00\00t\00o\00P\00r\00i\00m\00i\00t\00i\00v\00e") - (data $29 (i32.const 2540) ",") - (data $29.1 (i32.const 2552) "\02\00\00\00\16\00\00\00t\00o\00S\00t\00r\00i\00n\00g\00T\00a\00g") - (data $30 (i32.const 2588) ",") - (data $30.1 (i32.const 2600) "\02\00\00\00\16\00\00\00u\00n\00s\00c\00o\00p\00a\00b\00l\00e\00s") - (data $31 (i32.const 2636) ",") - (data $31.1 (i32.const 2648) "\02\00\00\00\0e\00\00\00S\00y\00m\00b\00o\00l\00(") - (data $32 (i32.const 2684) "\1c") - (data $32.1 (i32.const 2696) "\02\00\00\00\02\00\00\00)") - (data $33 (i32.const 2716) ",") - (data $33.1 (i32.const 2728) "\02\00\00\00\10\00\00\00S\00y\00m\00b\00o\00l\00(\00)") - (data $34 (i32.const 2764) ",") - (data $34.1 (i32.const 2776) "\02\00\00\00\16\00\00\00S\00y\00m\00b\00o\00l\00(\001\002\003\00)") - (data $35 (i32.const 2812) "<") - (data $35.1 (i32.const 2824) "\02\00\00\00&\00\00\00S\00y\00m\00b\00o\00l\00(\00h\00a\00s\00I\00n\00s\00t\00a\00n\00c\00e\00)") - (data $36 (i32.const 2876) "L") - (data $36.1 (i32.const 2888) "\02\00\00\004\00\00\00S\00y\00m\00b\00o\00l\00(\00i\00s\00C\00o\00n\00c\00a\00t\00S\00p\00r\00e\00a\00d\00a\00b\00l\00e\00)") - (data $37 (i32.const 2960) "\0b\00\00\00 \00\00\00 \00\00\00 \00\00\00\00\00\00\00\10\01\82\00\00\00\00\00\02A\00\00\02\t\00\00\10A\02\00\00\00\00\00\02A") + (data $14 (i32.const 1804) "<") + (data $14.1 (i32.const 1816) "\02\00\00\00$\00\00\00K\00e\00y\00 \00d\00o\00e\00s\00 \00n\00o\00t\00 \00e\00x\00i\00s\00t") + (data $15 (i32.const 1868) ",") + (data $15.1 (i32.const 1880) "\02\00\00\00\16\00\00\00~\00l\00i\00b\00/\00m\00a\00p\00.\00t\00s") + (data $16 (i32.const 1916) "|") + (data $16.1 (i32.const 1928) "\02\00\00\00^\00\00\00U\00n\00e\00x\00p\00e\00c\00t\00e\00d\00 \00\'\00n\00u\00l\00l\00\'\00 \00(\00n\00o\00t\00 \00a\00s\00s\00i\00g\00n\00e\00d\00 \00o\00r\00 \00f\00a\00i\00l\00e\00d\00 \00c\00a\00s\00t\00)") + (data $17 (i32.const 2044) "\1c") + (data $17.1 (i32.const 2056) "\02") + (data $18 (i32.const 2076) ",") + (data $18.1 (i32.const 2088) "\02\00\00\00\16\00\00\00h\00a\00s\00I\00n\00s\00t\00a\00n\00c\00e") + (data $19 (i32.const 2124) "<") + (data $19.1 (i32.const 2136) "\02\00\00\00$\00\00\00i\00s\00C\00o\00n\00c\00a\00t\00S\00p\00r\00e\00a\00d\00a\00b\00l\00e") + (data $20 (i32.const 2188) ",") + (data $20.1 (i32.const 2200) "\02\00\00\00\10\00\00\00i\00s\00R\00e\00g\00E\00x\00p") + (data $21 (i32.const 2236) "\1c") + (data $21.1 (i32.const 2248) "\02\00\00\00\n\00\00\00m\00a\00t\00c\00h") + (data $22 (i32.const 2268) ",") + (data $22.1 (i32.const 2280) "\02\00\00\00\0e\00\00\00r\00e\00p\00l\00a\00c\00e") + (data $23 (i32.const 2316) "\1c") + (data $23.1 (i32.const 2328) "\02\00\00\00\0c\00\00\00s\00e\00a\00r\00c\00h") + (data $24 (i32.const 2348) ",") + (data $24.1 (i32.const 2360) "\02\00\00\00\0e\00\00\00s\00p\00e\00c\00i\00e\00s") + (data $25 (i32.const 2396) "\1c") + (data $25.1 (i32.const 2408) "\02\00\00\00\n\00\00\00s\00p\00l\00i\00t") + (data $26 (i32.const 2428) ",") + (data $26.1 (i32.const 2440) "\02\00\00\00\16\00\00\00t\00o\00P\00r\00i\00m\00i\00t\00i\00v\00e") + (data $27 (i32.const 2476) ",") + (data $27.1 (i32.const 2488) "\02\00\00\00\16\00\00\00t\00o\00S\00t\00r\00i\00n\00g\00T\00a\00g") + (data $28 (i32.const 2524) ",") + (data $28.1 (i32.const 2536) "\02\00\00\00\16\00\00\00u\00n\00s\00c\00o\00p\00a\00b\00l\00e\00s") + (data $29 (i32.const 2572) ",") + (data $29.1 (i32.const 2584) "\02\00\00\00\0e\00\00\00S\00y\00m\00b\00o\00l\00(") + (data $30 (i32.const 2620) "\1c") + (data $30.1 (i32.const 2632) "\02\00\00\00\02\00\00\00)") + (data $31 (i32.const 2652) ",") + (data $31.1 (i32.const 2664) "\02\00\00\00\10\00\00\00S\00y\00m\00b\00o\00l\00(\00)") + (data $32 (i32.const 2700) ",") + (data $32.1 (i32.const 2712) "\02\00\00\00\16\00\00\00S\00y\00m\00b\00o\00l\00(\001\002\003\00)") + (data $33 (i32.const 2748) "<") + (data $33.1 (i32.const 2760) "\02\00\00\00&\00\00\00S\00y\00m\00b\00o\00l\00(\00h\00a\00s\00I\00n\00s\00t\00a\00n\00c\00e\00)") + (data $34 (i32.const 2812) "L") + (data $34.1 (i32.const 2824) "\02\00\00\004\00\00\00S\00y\00m\00b\00o\00l\00(\00i\00s\00C\00o\00n\00c\00a\00t\00S\00p\00r\00e\00a\00d\00a\00b\00l\00e\00)") + (data $35 (i32.const 2896) "\n\00\00\00 \00\00\00 \00\00\00 \00\00\00\00\00\00\00\10\01\82\00\00\00\00\00\02A\00\00\10A\02\00\00\00\00\00\02A") (export "memory" (memory $0)) (export "_start" (func $~start)) (func $~lib/rt/itcms/visitRoots @@ -151,7 +147,7 @@ call $~lib/rt/itcms/__visit i32.const 1696 call $~lib/rt/itcms/__visit - i32.const 1856 + i32.const 1824 call $~lib/rt/itcms/__visit i32.const 1248 call $~lib/rt/itcms/__visit @@ -216,7 +212,7 @@ local.get $1 global.set $~lib/rt/itcms/iter end - block $__inlined_func$~lib/rt/itcms/Object#unlink$301 + block $__inlined_func$~lib/rt/itcms/Object#unlink$291 local.get $0 i32.load offset=4 i32.const -4 @@ -228,7 +224,7 @@ i32.load offset=8 i32.eqz local.get $0 - i32.const 35776 + i32.const 35708 i32.lt_u i32.and i32.eqz @@ -240,7 +236,7 @@ call $~lib/builtins/abort unreachable end - br $__inlined_func$~lib/rt/itcms/Object#unlink$301 + br $__inlined_func$~lib/rt/itcms/Object#unlink$291 end local.get $0 i32.load offset=8 @@ -277,7 +273,7 @@ i32.const 1 else local.get $1 - i32.const 2960 + i32.const 2896 i32.load i32.gt_u if @@ -291,7 +287,7 @@ local.get $1 i32.const 2 i32.shl - i32.const 2964 + i32.const 2900 i32.add i32.load i32.const 32 @@ -875,10 +871,10 @@ if unreachable end - i32.const 35776 + i32.const 35712 i32.const 0 i32.store - i32.const 37344 + i32.const 37280 i32.const 0 i32.store loop $for-loop|0 @@ -889,7 +885,7 @@ local.get $0 i32.const 2 i32.shl - i32.const 35776 + i32.const 35712 i32.add i32.const 0 i32.store offset=4 @@ -907,7 +903,7 @@ i32.add i32.const 2 i32.shl - i32.const 35776 + i32.const 35712 i32.add i32.const 0 i32.store offset=96 @@ -925,14 +921,14 @@ br $for-loop|0 end end - i32.const 35776 - i32.const 37348 + i32.const 35712 + i32.const 37284 memory.size i64.extend_i32_s i64.const 16 i64.shl call $~lib/rt/tlsf/addMemory - i32.const 35776 + i32.const 35712 global.set $~lib/rt/tlsf/ROOT ) (func $~lib/rt/itcms/step (result i32) @@ -1017,7 +1013,7 @@ local.set $0 loop $while-continue|0 local.get $0 - i32.const 35776 + i32.const 35708 i32.lt_u if local.get $0 @@ -1113,7 +1109,7 @@ unreachable end local.get $0 - i32.const 35776 + i32.const 35708 i32.lt_u if local.get $0 @@ -1136,7 +1132,7 @@ i32.const 4 i32.add local.tee $0 - i32.const 35776 + i32.const 35708 i32.ge_u if global.get $~lib/rt/tlsf/ROOT @@ -1708,11 +1704,11 @@ i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 3008 + i32.const 2940 i32.lt_s if - i32.const 35808 - i32.const 35856 + i32.const 35728 + i32.const 35776 i32.const 1 i32.const 1 call $~lib/builtins/abort @@ -1776,119 +1772,95 @@ block $"~lib/array/Array<~lib/map/KeyValue>" block $"~lib/map/KeyValue" block $"~lib/map/Map" - block $~lib/array/Array - block $"~lib/array/Array<~lib/map/KeyValue<~lib/string/String,usize>>" - block $"~lib/map/KeyValue<~lib/string/String,usize>" - block $"~lib/map/Map<~lib/string/String,usize>" - block $~lib/arraybuffer/ArrayBufferView - block $~lib/string/String - block $~lib/arraybuffer/ArrayBuffer - block $~lib/object/Object - local.get $0 - i32.const 8 - i32.sub - i32.load - br_table $~lib/object/Object $~lib/arraybuffer/ArrayBuffer $~lib/string/String $~lib/arraybuffer/ArrayBufferView $"~lib/map/Map<~lib/string/String,usize>" $"~lib/map/KeyValue<~lib/string/String,usize>" $"~lib/array/Array<~lib/map/KeyValue<~lib/string/String,usize>>" $~lib/array/Array $"~lib/map/Map" $"~lib/map/KeyValue" $"~lib/array/Array<~lib/map/KeyValue>" $invalid - end - return + block $"~lib/array/Array<~lib/map/KeyValue<~lib/string/String,usize>>" + block $"~lib/map/KeyValue<~lib/string/String,usize>" + block $"~lib/map/Map<~lib/string/String,usize>" + block $~lib/arraybuffer/ArrayBufferView + block $~lib/string/String + block $~lib/arraybuffer/ArrayBuffer + block $~lib/object/Object + local.get $0 + i32.const 8 + i32.sub + i32.load + br_table $~lib/object/Object $~lib/arraybuffer/ArrayBuffer $~lib/string/String $~lib/arraybuffer/ArrayBufferView $"~lib/map/Map<~lib/string/String,usize>" $"~lib/map/KeyValue<~lib/string/String,usize>" $"~lib/array/Array<~lib/map/KeyValue<~lib/string/String,usize>>" $"~lib/map/Map" $"~lib/map/KeyValue" $"~lib/array/Array<~lib/map/KeyValue>" $invalid end return end return end - local.get $0 - i32.load - call $~lib/rt/itcms/__visit return end - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.sub - global.set $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - i32.const 3008 - i32.lt_s - br_if $folding-inner0 - global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.store - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store local.get $0 i32.load call $~lib/rt/itcms/__visit - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store - local.get $0 - i32.load offset=8 - local.tee $2 - local.set $1 - global.get $~lib/memory/__stack_pointer + return + end + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.sub + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 2940 + i32.lt_s + br_if $folding-inner0 + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + local.get $0 + i32.load + call $~lib/rt/itcms/__visit + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + local.get $0 + i32.load offset=8 + local.tee $2 + local.set $1 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + local.get $1 + local.get $0 + i32.load offset=16 + i32.const 12 + i32.mul + i32.add + local.set $0 + loop $while-continue|0 local.get $0 - i32.store local.get $1 - local.get $0 - i32.load offset=16 - i32.const 12 - i32.mul - i32.add - local.set $0 - loop $while-continue|0 - local.get $0 + i32.gt_u + if local.get $1 - i32.gt_u + i32.load offset=8 + i32.const 1 + i32.and + i32.eqz if local.get $1 - i32.load offset=8 - i32.const 1 - i32.and - i32.eqz - if - local.get $1 - i32.load - call $~lib/rt/itcms/__visit - end - local.get $1 - i32.const 12 - i32.add - local.set $1 - br $while-continue|0 + i32.load + call $~lib/rt/itcms/__visit end + local.get $1 + i32.const 12 + i32.add + local.set $1 + br $while-continue|0 end - br $folding-inner1 end - local.get $0 - i32.load - call $~lib/rt/itcms/__visit - return + br $folding-inner1 end local.get $0 - call $"~lib/array/Array<~lib/map/KeyValue<~lib/string/String,usize>>~visit" + i32.load + call $~lib/rt/itcms/__visit return end - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.sub - global.set $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - i32.const 3008 - i32.lt_s - br_if $folding-inner0 - global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.store - global.get $~lib/memory/__stack_pointer local.get $0 - i32.store - local.get $0 - i32.load - call $~lib/rt/itcms/__visit - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.add - global.set $~lib/memory/__stack_pointer + call $"~lib/array/Array<~lib/map/KeyValue<~lib/string/String,usize>>~visit" return end global.get $~lib/memory/__stack_pointer @@ -1896,7 +1868,7 @@ i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 3008 + i32.const 2940 i32.lt_s br_if $folding-inner0 global.get $~lib/memory/__stack_pointer @@ -1960,8 +1932,8 @@ end unreachable end - i32.const 35808 - i32.const 35856 + i32.const 35728 + i32.const 35776 i32.const 1 i32.const 1 call $~lib/builtins/abort @@ -1983,35 +1955,6 @@ global.set $~started call $start:std/symbol ) - (func $"~lib/array/Array<~lib/map/KeyValue<~lib/string/String,usize>>#get:length" (param $0 i32) (result i32) - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.sub - global.set $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - i32.const 3008 - i32.lt_s - if - i32.const 35808 - i32.const 35856 - i32.const 1 - i32.const 1 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.store - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store - local.get $0 - i32.load offset=12 - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.add - global.set $~lib/memory/__stack_pointer - ) (func $~lib/util/hash/HASH<~lib/string/String> (param $0 i32) (result i32) (local $1 i32) (local $2 i32) @@ -2025,11 +1968,11 @@ i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 3008 + i32.const 2940 i32.lt_s if - i32.const 35808 - i32.const 35856 + i32.const 35728 + i32.const 35776 i32.const 1 i32.const 1 call $~lib/builtins/abort @@ -2233,193 +2176,21 @@ i32.add global.set $~lib/memory/__stack_pointer ) - (func $"~lib/map/Map<~lib/string/String,usize>#rehash" (param $0 i32) (param $1 i32) + (func $~lib/string/String.__eq (param $0 i32) (param $1 i32) (result i32) (local $2 i32) (local $3 i32) (local $4 i32) (local $5 i32) - (local $6 i32) - (local $7 i32) - (local $8 i32) - global.get $~lib/memory/__stack_pointer - i32.const 20 - i32.sub - global.set $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - i32.const 3008 - i32.lt_s - if - i32.const 35808 - i32.const 35856 - i32.const 1 - i32.const 1 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.const 20 - memory.fill - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.const 1 - i32.add - local.tee $2 - i32.const 2 - i32.shl - call $~lib/arraybuffer/ArrayBuffer#constructor - local.tee $6 - i32.store - global.get $~lib/memory/__stack_pointer - local.get $2 - i32.const 3 - i32.shl - i32.const 3 - i32.div_s - local.tee $5 - i32.const 12 - i32.mul - call $~lib/arraybuffer/ArrayBuffer#constructor - local.tee $3 - i32.store offset=4 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=8 - local.get $0 - i32.load offset=8 - local.set $7 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=8 - local.get $7 - local.get $0 - i32.load offset=16 - i32.const 12 - i32.mul - i32.add - local.set $4 - local.get $3 - local.set $2 - loop $while-continue|0 - local.get $4 - local.get $7 - i32.ne - if - local.get $7 - i32.load offset=8 - i32.const 1 - i32.and - i32.eqz - if - global.get $~lib/memory/__stack_pointer - local.get $7 - i32.load - local.tee $8 - i32.store offset=12 - global.get $~lib/memory/__stack_pointer - local.get $8 - i32.store offset=8 - local.get $2 - local.get $8 - i32.store - local.get $2 - local.get $7 - i32.load offset=4 - i32.store offset=4 - global.get $~lib/memory/__stack_pointer - local.get $8 - i32.store offset=8 - local.get $2 - local.get $6 - local.get $8 - call $~lib/util/hash/HASH<~lib/string/String> - local.get $1 - i32.and - i32.const 2 - i32.shl - i32.add - local.tee $8 - i32.load - i32.store offset=8 - local.get $8 - local.get $2 - i32.store - local.get $2 - i32.const 12 - i32.add - local.set $2 - end - local.get $7 - i32.const 12 - i32.add - local.set $7 - br $while-continue|0 - end - end - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=8 - global.get $~lib/memory/__stack_pointer - local.get $6 - i32.store offset=16 - local.get $0 - local.get $6 - i32.store - local.get $0 - local.get $6 - i32.const 0 - call $~lib/rt/itcms/__link - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=8 - local.get $0 - local.get $1 - i32.store offset=4 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=8 - global.get $~lib/memory/__stack_pointer - local.get $3 - i32.store offset=16 - local.get $0 - local.get $3 - i32.store offset=8 - local.get $0 - local.get $3 - i32.const 0 - call $~lib/rt/itcms/__link - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=8 - local.get $0 - local.get $5 - i32.store offset=12 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=8 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=16 - local.get $0 - local.get $0 - i32.load offset=20 - i32.store offset=16 - global.get $~lib/memory/__stack_pointer - i32.const 20 - i32.add - global.set $~lib/memory/__stack_pointer - ) - (func $"~lib/array/Array<~lib/map/KeyValue<~lib/string/String,usize>>#__get" (param $0 i32) (param $1 i32) (result i32) global.get $~lib/memory/__stack_pointer i32.const 8 i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 3008 + i32.const 2940 i32.lt_s if - i32.const 35808 - i32.const 35856 + i32.const 35728 + i32.const 35776 i32.const 1 i32.const 1 call $~lib/builtins/abort @@ -2428,76 +2199,9 @@ global.get $~lib/memory/__stack_pointer i64.const 0 i64.store - global.get $~lib/memory/__stack_pointer local.get $0 - i32.store local.get $1 - local.get $0 - i32.load offset=12 - i32.ge_u - if - i32.const 1440 - i32.const 1648 - i32.const 114 - i32.const 42 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.load offset=4 - local.get $1 - i32.const 2 - i32.shl - i32.add - i32.load - local.tee $0 - i32.store offset=4 - local.get $0 - i32.eqz - if - i32.const 1696 - i32.const 1648 - i32.const 118 - i32.const 40 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - i32.const 8 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $0 - ) - (func $~lib/string/String.__eq (param $0 i32) (param $1 i32) (result i32) - (local $2 i32) - (local $3 i32) - (local $4 i32) - (local $5 i32) - global.get $~lib/memory/__stack_pointer - i32.const 8 - i32.sub - global.set $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - i32.const 3008 - i32.lt_s - if - i32.const 35808 - i32.const 35856 - i32.const 1 - i32.const 1 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - i64.const 0 - i64.store - local.get $0 - local.get $1 - i32.eq + i32.eq if global.get $~lib/memory/__stack_pointer i32.const 8 @@ -2585,7 +2289,7 @@ end end end - block $__inlined_func$~lib/util/string/compareImpl$106 + block $__inlined_func$~lib/util/string/compareImpl$104 loop $while-continue|1 local.get $0 local.tee $3 @@ -2605,7 +2309,7 @@ local.get $4 local.get $5 i32.ne - br_if $__inlined_func$~lib/util/string/compareImpl$106 + br_if $__inlined_func$~lib/util/string/compareImpl$104 local.get $2 i32.const 2 i32.add @@ -2634,18 +2338,18 @@ global.set $~lib/memory/__stack_pointer i32.const 0 ) - (func $"~lib/map/Map<~lib/string/String,usize>#find" (param $0 i32) (param $1 i32) (param $2 i32) (result i32) - (local $3 i32) + (func $"~lib/map/Map<~lib/string/String,usize>#find" (param $0 i32) (param $1 i32) (result i32) + (local $2 i32) global.get $~lib/memory/__stack_pointer i32.const 8 i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 3008 + i32.const 2940 i32.lt_s if - i32.const 35808 - i32.const 35856 + i32.const 35728 + i32.const 35776 i32.const 1 i32.const 1 call $~lib/builtins/abort @@ -2662,7 +2366,7 @@ global.get $~lib/memory/__stack_pointer local.get $0 i32.store - local.get $2 + local.get $1 local.get $0 i32.load offset=4 i32.and @@ -2670,11 +2374,11 @@ i32.shl i32.add i32.load - local.set $2 + local.set $1 loop $while-continue|0 - local.get $2 + local.get $1 if - local.get $2 + local.get $1 i32.load offset=8 local.tee $0 i32.const 1 @@ -2683,15 +2387,15 @@ i32.const 0 else global.get $~lib/memory/__stack_pointer - local.get $2 + local.get $1 i32.load - local.tee $3 + local.tee $2 i32.store global.get $~lib/memory/__stack_pointer - local.get $1 + i32.const 1056 i32.store offset=4 - local.get $3 - local.get $1 + local.get $2 + i32.const 1056 call $~lib/string/String.__eq end if @@ -2699,13 +2403,13 @@ i32.const 8 i32.add global.set $~lib/memory/__stack_pointer - local.get $2 + local.get $1 return end local.get $0 i32.const -2 i32.and - local.set $2 + local.set $1 br $while-continue|0 end end @@ -2715,8 +2419,7 @@ global.set $~lib/memory/__stack_pointer i32.const 0 ) - (func $"~lib/map/Map<~lib/string/String,usize>#constructor" (param $0 i32) (result i32) - (local $1 i32) + (func $"~lib/map/Map<~lib/string/String,usize>#set" (param $0 i32) (param $1 i32) (local $2 i32) (local $3 i32) (local $4 i32) @@ -2724,469 +2427,341 @@ (local $6 i32) (local $7 i32) (local $8 i32) + (local $9 i32) + (local $10 i32) global.get $~lib/memory/__stack_pointer - i32.const 20 + i32.const 12 i32.sub global.set $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - i32.const 3008 - i32.lt_s - if - i32.const 35808 - i32.const 35856 - i32.const 1 - i32.const 1 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.const 20 - memory.fill - global.get $~lib/memory/__stack_pointer - i32.const 24 - i32.const 4 - call $~lib/rt/itcms/__new - local.tee $1 - i32.store - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - i32.const 16 - call $~lib/arraybuffer/ArrayBuffer#constructor - local.set $3 - global.get $~lib/memory/__stack_pointer - local.get $3 - i32.store offset=8 - local.get $1 - local.get $3 - i32.store - local.get $1 - local.get $3 - i32.const 0 - call $~lib/rt/itcms/__link - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - local.get $1 - i32.const 3 - i32.store offset=4 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - i32.const 48 - call $~lib/arraybuffer/ArrayBuffer#constructor - local.set $3 - global.get $~lib/memory/__stack_pointer - local.get $3 - i32.store offset=8 - local.get $1 - local.get $3 - i32.store offset=8 - local.get $1 - local.get $3 - i32.const 0 - call $~lib/rt/itcms/__link - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - local.get $1 - i32.const 4 - i32.store offset=12 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - local.get $1 - i32.const 0 - i32.store offset=16 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - local.get $1 - i32.const 0 - i32.store offset=20 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 - call $"~lib/array/Array<~lib/map/KeyValue<~lib/string/String,usize>>#get:length" - local.tee $5 - i32.const 0 - i32.gt_s - if + block $folding-inner0 global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - local.get $5 - local.get $1 - i32.load offset=12 - i32.ge_s - if - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - local.get $1 - local.get $5 - i32.store offset=4 - end + i32.const 2940 + i32.lt_s + br_if $folding-inner0 global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 + i64.const 0 + i64.store global.get $~lib/memory/__stack_pointer - local.get $1 + i32.const 0 i32.store offset=8 - local.get $1 - local.get $1 - i32.load offset=4 - i32.const 1 - i32.shl - i32.const 1 - i32.or - call $"~lib/map/Map<~lib/string/String,usize>#rehash" - loop $for-loop|0 + global.get $~lib/memory/__stack_pointer + i32.const 1056 + i32.store + i32.const 1056 + call $~lib/util/hash/HASH<~lib/string/String> + local.set $6 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + global.get $~lib/memory/__stack_pointer + i32.const 1056 + i32.store offset=4 + local.get $0 + local.get $6 + call $"~lib/map/Map<~lib/string/String,usize>#find" + local.tee $2 + if local.get $2 - local.get $5 - i32.lt_s + local.get $1 + i32.store offset=4 + else + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + local.get $0 + i32.load offset=16 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + local.get $0 + i32.load offset=12 + i32.eq if global.get $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=8 local.get $0 - local.get $2 - call $"~lib/array/Array<~lib/map/KeyValue<~lib/string/String,usize>>#__get" - local.set $4 - global.get $~lib/memory/__stack_pointer - local.get $4 - i32.store offset=4 - local.get $4 - i32.load - local.tee $3 - i32.store offset=12 + i32.store global.get $~lib/memory/__stack_pointer local.get $0 - i32.store offset=8 - local.get $0 - local.get $2 - call $"~lib/array/Array<~lib/map/KeyValue<~lib/string/String,usize>>#__get" - local.set $4 - global.get $~lib/memory/__stack_pointer - local.get $4 - i32.store offset=4 - local.get $4 - i32.load offset=4 - local.set $6 - global.get $~lib/memory/__stack_pointer - local.get $3 i32.store offset=4 - local.get $3 - call $~lib/util/hash/HASH<~lib/string/String> - local.set $7 + local.get $0 + i32.load offset=20 global.get $~lib/memory/__stack_pointer - local.get $1 + local.get $0 i32.store offset=4 - global.get $~lib/memory/__stack_pointer - local.get $3 - i32.store offset=8 - local.get $1 - local.get $3 - local.get $7 - call $"~lib/map/Map<~lib/string/String,usize>#find" - local.tee $4 - if - local.get $4 - local.get $6 + local.get $0 + i32.load offset=12 + i32.const 3 + i32.mul + i32.const 4 + i32.div_s + i32.lt_s + if (result i32) + global.get $~lib/memory/__stack_pointer + local.get $0 i32.store offset=4 + local.get $0 + i32.load offset=4 else global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.load offset=8 - local.tee $4 - i32.store offset=16 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=8 - local.get $1 - local.get $1 - i32.load offset=16 - local.tee $8 - i32.const 1 - i32.add - i32.store offset=16 - global.get $~lib/memory/__stack_pointer - local.get $3 - i32.store offset=4 - local.get $4 - local.get $8 - i32.const 12 - i32.mul - i32.add - local.tee $4 - local.get $3 - i32.store - local.get $1 - local.get $3 - i32.const 1 - call $~lib/rt/itcms/__link - local.get $4 - local.get $6 - i32.store offset=4 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=8 - local.get $1 - local.get $1 - i32.load offset=20 - i32.const 1 - i32.add - i32.store offset=20 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - local.get $1 - i32.load - local.set $3 - global.get $~lib/memory/__stack_pointer - local.get $1 + local.get $0 i32.store offset=4 - local.get $4 - local.get $3 - local.get $7 - local.get $1 + local.get $0 i32.load offset=4 - i32.and - i32.const 2 + i32.const 1 i32.shl - i32.add - local.tee $3 - i32.load - i32.store offset=8 - local.get $3 - local.get $4 - i32.store + i32.const 1 + i32.or end - local.get $2 + local.set $7 + global.get $~lib/memory/__stack_pointer + i32.const 20 + i32.sub + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 2940 + i32.lt_s + br_if $folding-inner0 + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.const 20 + memory.fill + global.get $~lib/memory/__stack_pointer + local.get $7 i32.const 1 i32.add - local.set $2 - br $for-loop|0 - end - end - end - global.get $~lib/memory/__stack_pointer - i32.const 20 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $1 - ) - (func $"~lib/map/Map#rehash" (param $0 i32) (param $1 i32) - (local $2 i32) - (local $3 i32) - (local $4 i32) - (local $5 i32) - (local $6 i32) - (local $7 i32) - (local $8 i32) - (local $9 i32) - global.get $~lib/memory/__stack_pointer - i32.const 16 - i32.sub - global.set $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - i32.const 3008 - i32.lt_s - if - i32.const 35808 - i32.const 35856 - i32.const 1 - i32.const 1 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - i64.const 0 - i64.store - global.get $~lib/memory/__stack_pointer - i64.const 0 - i64.store offset=8 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.const 1 - i32.add - local.tee $2 - i32.const 2 - i32.shl - call $~lib/arraybuffer/ArrayBuffer#constructor - local.tee $7 - i32.store - global.get $~lib/memory/__stack_pointer - local.get $2 - i32.const 3 - i32.shl - i32.const 3 - i32.div_s - local.tee $6 - i32.const 12 - i32.mul - call $~lib/arraybuffer/ArrayBuffer#constructor - local.tee $3 - i32.store offset=4 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=8 - local.get $0 - i32.load offset=8 - local.set $8 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=8 - local.get $8 - local.get $0 - i32.load offset=16 - i32.const 12 - i32.mul - i32.add - local.set $5 - local.get $3 - local.set $2 - loop $while-continue|0 - local.get $5 - local.get $8 - i32.ne - if - local.get $8 - i32.load offset=8 - i32.const 1 - i32.and - i32.eqz - if - local.get $2 - local.get $8 - i32.load - local.tee $9 + local.tee $2 + i32.const 2 + i32.shl + call $~lib/arraybuffer/ArrayBuffer#constructor + local.tee $8 i32.store global.get $~lib/memory/__stack_pointer - local.get $8 - i32.load offset=4 - local.tee $4 - i32.store offset=8 local.get $2 - local.get $4 + i32.const 3 + i32.shl + i32.const 3 + i32.div_s + local.tee $5 + i32.const 12 + i32.mul + call $~lib/arraybuffer/ArrayBuffer#constructor + local.tee $3 i32.store offset=4 - local.get $2 - local.get $7 - local.get $1 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=8 + local.get $0 + i32.load offset=8 + local.set $9 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=8 local.get $9 - i32.const -1028477379 - i32.mul - i32.const 374761397 - i32.add - i32.const 17 - i32.rotl - i32.const 668265263 - i32.mul - local.tee $4 - local.get $4 - i32.const 15 - i32.shr_u - i32.xor - i32.const -2048144777 - i32.mul - local.tee $4 - local.get $4 - i32.const 13 - i32.shr_u - i32.xor - i32.const -1028477379 + local.get $0 + i32.load offset=16 + i32.const 12 i32.mul - local.tee $4 - local.get $4 - i32.const 16 - i32.shr_u - i32.xor - i32.and - i32.const 2 - i32.shl i32.add - local.tee $4 - i32.load + local.set $4 + local.get $3 + local.set $2 + loop $while-continue|0 + local.get $4 + local.get $9 + i32.ne + if + local.get $9 + i32.load offset=8 + i32.const 1 + i32.and + i32.eqz + if + global.get $~lib/memory/__stack_pointer + local.get $9 + i32.load + local.tee $10 + i32.store offset=12 + global.get $~lib/memory/__stack_pointer + local.get $10 + i32.store offset=8 + local.get $2 + local.get $10 + i32.store + local.get $2 + local.get $9 + i32.load offset=4 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + local.get $10 + i32.store offset=8 + local.get $2 + local.get $8 + local.get $10 + call $~lib/util/hash/HASH<~lib/string/String> + local.get $7 + i32.and + i32.const 2 + i32.shl + i32.add + local.tee $10 + i32.load + i32.store offset=8 + local.get $10 + local.get $2 + i32.store + local.get $2 + i32.const 12 + i32.add + local.set $2 + end + local.get $9 + i32.const 12 + i32.add + local.set $9 + br $while-continue|0 + end + end + global.get $~lib/memory/__stack_pointer + local.get $0 i32.store offset=8 - local.get $4 - local.get $2 + global.get $~lib/memory/__stack_pointer + local.get $8 + i32.store offset=16 + local.get $0 + local.get $8 i32.store - local.get $2 - i32.const 12 - i32.add - local.set $2 - end - local.get $8 - i32.const 12 - i32.add - local.set $8 - br $while-continue|0 - end - end - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=8 - global.get $~lib/memory/__stack_pointer - local.get $7 - i32.store offset=12 - local.get $0 - local.get $7 - i32.store - local.get $0 - local.get $7 - i32.const 0 - call $~lib/rt/itcms/__link - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=8 - local.get $0 - local.get $1 - i32.store offset=4 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=8 - global.get $~lib/memory/__stack_pointer - local.get $3 - i32.store offset=12 - local.get $0 - local.get $3 - i32.store offset=8 - local.get $0 - local.get $3 - i32.const 0 - call $~lib/rt/itcms/__link - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=8 - local.get $0 - local.get $6 - i32.store offset=12 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=8 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=12 - local.get $0 - local.get $0 - i32.load offset=20 - i32.store offset=16 - global.get $~lib/memory/__stack_pointer - i32.const 16 - i32.add - global.set $~lib/memory/__stack_pointer + local.get $0 + local.get $8 + i32.const 0 + call $~lib/rt/itcms/__link + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=8 + local.get $0 + local.get $7 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=8 + global.get $~lib/memory/__stack_pointer + local.get $3 + i32.store offset=16 + local.get $0 + local.get $3 + i32.store offset=8 + local.get $0 + local.get $3 + i32.const 0 + call $~lib/rt/itcms/__link + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=8 + local.get $0 + local.get $5 + i32.store offset=12 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=8 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=16 + local.get $0 + local.get $0 + i32.load offset=20 + i32.store offset=16 + global.get $~lib/memory/__stack_pointer + i32.const 20 + i32.add + global.set $~lib/memory/__stack_pointer + end + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.load offset=8 + local.tee $2 + i32.store offset=8 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + local.get $0 + local.get $0 + i32.load offset=16 + local.tee $3 + i32.const 1 + i32.add + i32.store offset=16 + global.get $~lib/memory/__stack_pointer + i32.const 1056 + i32.store + local.get $2 + local.get $3 + i32.const 12 + i32.mul + i32.add + local.tee $2 + i32.const 1056 + i32.store + local.get $0 + i32.const 1056 + i32.const 1 + call $~lib/rt/itcms/__link + local.get $2 + local.get $1 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + local.get $0 + local.get $0 + i32.load offset=20 + i32.const 1 + i32.add + i32.store offset=20 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + local.get $0 + i32.load + local.set $1 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + local.get $2 + local.get $1 + local.get $6 + local.get $0 + i32.load offset=4 + i32.and + i32.const 2 + i32.shl + i32.add + local.tee $0 + i32.load + i32.store offset=8 + local.get $0 + local.get $2 + i32.store + end + global.get $~lib/memory/__stack_pointer + i32.const 12 + i32.add + global.set $~lib/memory/__stack_pointer + return + end + i32.const 35728 + i32.const 35776 + i32.const 1 + i32.const 1 + call $~lib/builtins/abort + unreachable ) (func $"~lib/map/Map#find" (param $0 i32) (param $1 i32) (param $2 i32) (result i32) (local $3 i32) @@ -3195,11 +2770,11 @@ i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 3008 + i32.const 2940 i32.lt_s if - i32.const 35808 - i32.const 35856 + i32.const 35728 + i32.const 35776 i32.const 1 i32.const 1 call $~lib/builtins/abort @@ -3262,8 +2837,7 @@ global.set $~lib/memory/__stack_pointer i32.const 0 ) - (func $"~lib/map/Map#constructor" (param $0 i32) (result i32) - (local $1 i32) + (func $"~lib/map/Map#set" (param $0 i32) (param $1 i32) (local $2 i32) (local $3 i32) (local $4 i32) @@ -3271,518 +2845,406 @@ (local $6 i32) (local $7 i32) (local $8 i32) + (local $9 i32) + (local $10 i32) + (local $11 i32) global.get $~lib/memory/__stack_pointer - i32.const 20 + i32.const 12 i32.sub global.set $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - i32.const 3008 - i32.lt_s - if - i32.const 35808 - i32.const 35856 - i32.const 1 - i32.const 1 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.const 20 - memory.fill - global.get $~lib/memory/__stack_pointer - i32.const 24 - i32.const 8 - call $~lib/rt/itcms/__new - local.tee $1 - i32.store - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - i32.const 16 - call $~lib/arraybuffer/ArrayBuffer#constructor - local.set $3 - global.get $~lib/memory/__stack_pointer - local.get $3 - i32.store offset=8 - local.get $1 - local.get $3 - i32.store - local.get $1 - local.get $3 - i32.const 0 - call $~lib/rt/itcms/__link - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - local.get $1 - i32.const 3 - i32.store offset=4 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - i32.const 48 - call $~lib/arraybuffer/ArrayBuffer#constructor - local.set $3 - global.get $~lib/memory/__stack_pointer - local.get $3 - i32.store offset=8 - local.get $1 - local.get $3 - i32.store offset=8 - local.get $1 - local.get $3 - i32.const 0 - call $~lib/rt/itcms/__link - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - local.get $1 - i32.const 4 - i32.store offset=12 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - local.get $1 - i32.const 0 - i32.store offset=16 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - local.get $1 - i32.const 0 - i32.store offset=20 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 - call $"~lib/array/Array<~lib/map/KeyValue<~lib/string/String,usize>>#get:length" - local.tee $5 - i32.const 0 - i32.gt_s - if + block $folding-inner0 global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - local.get $5 - local.get $1 - i32.load offset=12 - i32.ge_s - if - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - local.get $1 - local.get $5 - i32.store offset=4 - end + i32.const 2940 + i32.lt_s + br_if $folding-inner0 global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 + i64.const 0 + i64.store global.get $~lib/memory/__stack_pointer - local.get $1 + i32.const 0 i32.store offset=8 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + local.get $0 local.get $1 local.get $1 - i32.load offset=4 - i32.const 1 - i32.shl - i32.const 1 - i32.or - call $"~lib/map/Map#rehash" - loop $for-loop|0 + i32.const -1028477379 + i32.mul + i32.const 374761397 + i32.add + i32.const 17 + i32.rotl + i32.const 668265263 + i32.mul + local.tee $2 + i32.const 15 + i32.shr_u + local.get $2 + i32.xor + i32.const -2048144777 + i32.mul + local.tee $2 + i32.const 13 + i32.shr_u + local.get $2 + i32.xor + i32.const -1028477379 + i32.mul + local.tee $2 + i32.const 16 + i32.shr_u + local.get $2 + i32.xor + local.tee $7 + call $"~lib/map/Map#find" + local.tee $2 + if + global.get $~lib/memory/__stack_pointer + i32.const 1056 + i32.store local.get $2 - local.get $5 - i32.lt_s + i32.const 1056 + i32.store offset=4 + local.get $0 + i32.const 1056 + i32.const 1 + call $~lib/rt/itcms/__link + else + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + local.get $0 + i32.load offset=16 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + local.get $0 + i32.load offset=12 + i32.eq if global.get $~lib/memory/__stack_pointer local.get $0 - i32.store offset=8 - local.get $0 - local.get $2 - call $"~lib/array/Array<~lib/map/KeyValue<~lib/string/String,usize>>#__get" - local.set $3 - global.get $~lib/memory/__stack_pointer - local.get $3 - i32.store offset=4 - local.get $3 - i32.load - local.set $6 - global.get $~lib/memory/__stack_pointer + i32.store global.get $~lib/memory/__stack_pointer local.get $0 - i32.store offset=8 - local.get $0 - local.get $2 - call $"~lib/array/Array<~lib/map/KeyValue<~lib/string/String,usize>>#__get" - local.set $4 - global.get $~lib/memory/__stack_pointer - local.get $4 i32.store offset=4 - local.get $4 - i32.load offset=4 - local.tee $3 - i32.store offset=12 + local.get $0 + i32.load offset=20 global.get $~lib/memory/__stack_pointer - local.get $1 + local.get $0 i32.store offset=4 - local.get $1 - local.get $6 - local.get $6 - i32.const -1028477379 - i32.mul - i32.const 374761397 - i32.add - i32.const 17 - i32.rotl - i32.const 668265263 - i32.mul - local.tee $4 - i32.const 15 - i32.shr_u - local.get $4 - i32.xor - i32.const -2048144777 - i32.mul - local.tee $4 - i32.const 13 - i32.shr_u - local.get $4 - i32.xor - i32.const -1028477379 + local.get $0 + i32.load offset=12 + i32.const 3 i32.mul - local.tee $4 - i32.const 16 - i32.shr_u - local.get $4 - i32.xor - local.tee $7 - call $"~lib/map/Map#find" - local.tee $4 - if + i32.const 4 + i32.div_s + i32.lt_s + if (result i32) global.get $~lib/memory/__stack_pointer - local.get $3 - i32.store offset=4 - local.get $4 - local.get $3 + local.get $0 i32.store offset=4 - local.get $1 - local.get $3 - i32.const 1 - call $~lib/rt/itcms/__link + local.get $0 + i32.load offset=4 else global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.load offset=8 - local.tee $4 - i32.store offset=16 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=8 - local.get $1 - local.get $1 - i32.load offset=16 - local.tee $8 - i32.const 1 - i32.add - i32.store offset=16 - local.get $4 - local.get $8 - i32.const 12 - i32.mul - i32.add - local.tee $4 - local.get $6 - i32.store - global.get $~lib/memory/__stack_pointer - local.get $3 - i32.store offset=4 - local.get $4 - local.get $3 - i32.store offset=4 - local.get $1 - local.get $3 - i32.const 1 - call $~lib/rt/itcms/__link - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=8 - local.get $1 - local.get $1 - i32.load offset=20 - i32.const 1 - i32.add - i32.store offset=20 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - local.get $1 - i32.load - local.set $3 - global.get $~lib/memory/__stack_pointer - local.get $1 + local.get $0 i32.store offset=4 - local.get $4 - local.get $3 - local.get $7 - local.get $1 + local.get $0 i32.load offset=4 - i32.and - i32.const 2 + i32.const 1 i32.shl - i32.add - local.tee $3 - i32.load - i32.store offset=8 - local.get $3 - local.get $4 - i32.store + i32.const 1 + i32.or end - local.get $2 + local.set $8 + global.get $~lib/memory/__stack_pointer + i32.const 16 + i32.sub + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 2940 + i32.lt_s + br_if $folding-inner0 + global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store + global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store offset=8 + global.get $~lib/memory/__stack_pointer + local.get $8 i32.const 1 i32.add + local.tee $2 + i32.const 2 + i32.shl + call $~lib/arraybuffer/ArrayBuffer#constructor + local.tee $9 + i32.store + global.get $~lib/memory/__stack_pointer + local.get $2 + i32.const 3 + i32.shl + i32.const 3 + i32.div_s + local.tee $6 + i32.const 12 + i32.mul + call $~lib/arraybuffer/ArrayBuffer#constructor + local.tee $3 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=8 + local.get $0 + i32.load offset=8 + local.set $10 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=8 + local.get $10 + local.get $0 + i32.load offset=16 + i32.const 12 + i32.mul + i32.add + local.set $5 + local.get $3 local.set $2 - br $for-loop|0 + loop $while-continue|0 + local.get $5 + local.get $10 + i32.ne + if + local.get $10 + i32.load offset=8 + i32.const 1 + i32.and + i32.eqz + if + local.get $2 + local.get $10 + i32.load + local.tee $11 + i32.store + global.get $~lib/memory/__stack_pointer + local.get $10 + i32.load offset=4 + local.tee $4 + i32.store offset=8 + local.get $2 + local.get $4 + i32.store offset=4 + local.get $2 + local.get $9 + local.get $8 + local.get $11 + i32.const -1028477379 + i32.mul + i32.const 374761397 + i32.add + i32.const 17 + i32.rotl + i32.const 668265263 + i32.mul + local.tee $4 + i32.const 15 + i32.shr_u + local.get $4 + i32.xor + i32.const -2048144777 + i32.mul + local.tee $4 + i32.const 13 + i32.shr_u + local.get $4 + i32.xor + i32.const -1028477379 + i32.mul + local.tee $4 + i32.const 16 + i32.shr_u + local.get $4 + i32.xor + i32.and + i32.const 2 + i32.shl + i32.add + local.tee $4 + i32.load + i32.store offset=8 + local.get $4 + local.get $2 + i32.store + local.get $2 + i32.const 12 + i32.add + local.set $2 + end + local.get $10 + i32.const 12 + i32.add + local.set $10 + br $while-continue|0 + end + end + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=8 + global.get $~lib/memory/__stack_pointer + local.get $9 + i32.store offset=12 + local.get $0 + local.get $9 + i32.store + local.get $0 + local.get $9 + i32.const 0 + call $~lib/rt/itcms/__link + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=8 + local.get $0 + local.get $8 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=8 + global.get $~lib/memory/__stack_pointer + local.get $3 + i32.store offset=12 + local.get $0 + local.get $3 + i32.store offset=8 + local.get $0 + local.get $3 + i32.const 0 + call $~lib/rt/itcms/__link + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=8 + local.get $0 + local.get $6 + i32.store offset=12 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=8 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=12 + local.get $0 + local.get $0 + i32.load offset=20 + i32.store offset=16 + global.get $~lib/memory/__stack_pointer + i32.const 16 + i32.add + global.set $~lib/memory/__stack_pointer end - end - end - global.get $~lib/memory/__stack_pointer - i32.const 20 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $1 - ) - (func $"~lib/map/Map#set" (param $0 i32) (param $1 i32) - (local $2 i32) - (local $3 i32) - (local $4 i32) - global.get $~lib/memory/__stack_pointer - i32.const 12 - i32.sub - global.set $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - i32.const 3008 - i32.lt_s - if - i32.const 35808 - i32.const 35856 - i32.const 1 - i32.const 1 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - i64.const 0 - i64.store - global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.store offset=8 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store - local.get $0 - local.get $1 - local.get $1 - i32.const -1028477379 - i32.mul - i32.const 374761397 - i32.add - i32.const 17 - i32.rotl - i32.const 668265263 - i32.mul - local.tee $2 - local.get $2 - i32.const 15 - i32.shr_u - i32.xor - i32.const -2048144777 - i32.mul - local.tee $2 - local.get $2 - i32.const 13 - i32.shr_u - i32.xor - i32.const -1028477379 - i32.mul - local.tee $2 - local.get $2 - i32.const 16 - i32.shr_u - i32.xor - local.tee $3 - call $"~lib/map/Map#find" - local.tee $2 - if - global.get $~lib/memory/__stack_pointer - i32.const 1056 - i32.store - local.get $2 - i32.const 1056 - i32.store offset=4 - local.get $0 - i32.const 1056 - i32.const 1 - call $~lib/rt/itcms/__link - else - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store - local.get $0 - i32.load offset=16 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store - local.get $0 - i32.load offset=12 - i32.eq - if global.get $~lib/memory/__stack_pointer local.get $0 i32.store global.get $~lib/memory/__stack_pointer local.get $0 - i32.store offset=4 + i32.load offset=8 + local.tee $2 + i32.store offset=8 + global.get $~lib/memory/__stack_pointer local.get $0 - i32.load offset=20 - local.set $2 + i32.store global.get $~lib/memory/__stack_pointer local.get $0 i32.store offset=4 local.get $0 - local.get $2 local.get $0 - i32.load offset=12 - i32.const 3 + i32.load offset=16 + local.tee $3 + i32.const 1 + i32.add + i32.store offset=16 + local.get $2 + local.get $3 + i32.const 12 i32.mul - i32.const 4 - i32.div_s - i32.lt_s - if (result i32) - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 - i32.load offset=4 - else - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 - i32.load offset=4 - i32.const 1 - i32.shl - i32.const 1 - i32.or - end - call $"~lib/map/Map#rehash" - end - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.load offset=8 - local.tee $2 - i32.store offset=8 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 - local.get $0 - i32.load offset=16 - local.tee $4 - i32.const 1 - i32.add - i32.store offset=16 - local.get $2 - local.get $4 - i32.const 12 - i32.mul - i32.add - local.tee $2 - local.get $1 - i32.store - global.get $~lib/memory/__stack_pointer - i32.const 1056 - i32.store - local.get $2 - i32.const 1056 - i32.store offset=4 - local.get $0 - i32.const 1056 - i32.const 1 - call $~lib/rt/itcms/__link - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 - local.get $0 - i32.load offset=20 - i32.const 1 - i32.add - i32.store offset=20 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store - local.get $0 - i32.load - local.set $1 + i32.add + local.tee $2 + local.get $1 + i32.store + global.get $~lib/memory/__stack_pointer + i32.const 1056 + i32.store + local.get $2 + i32.const 1056 + i32.store offset=4 + local.get $0 + i32.const 1056 + i32.const 1 + call $~lib/rt/itcms/__link + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + local.get $0 + local.get $0 + i32.load offset=20 + i32.const 1 + i32.add + i32.store offset=20 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + local.get $0 + i32.load + local.set $1 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + local.get $2 + local.get $1 + local.get $7 + local.get $0 + i32.load offset=4 + i32.and + i32.const 2 + i32.shl + i32.add + local.tee $0 + i32.load + i32.store offset=8 + local.get $0 + local.get $2 + i32.store + end global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store - local.get $2 - local.get $1 - local.get $3 - local.get $0 - i32.load offset=4 - i32.and - i32.const 2 - i32.shl + i32.const 12 i32.add - local.tee $0 - i32.load - i32.store offset=8 - local.get $0 - local.get $2 - i32.store + global.set $~lib/memory/__stack_pointer + return end - global.get $~lib/memory/__stack_pointer - i32.const 12 - i32.add - global.set $~lib/memory/__stack_pointer + i32.const 35728 + i32.const 35776 + i32.const 1 + i32.const 1 + call $~lib/builtins/abort + unreachable ) (func $~lib/symbol/_Symbol.for (result i32) (local $0 i32) (local $1 i32) - (local $2 i32) - (local $3 i32) - (local $4 i32) global.get $~lib/memory/__stack_pointer i32.const 8 i32.sub global.set $~lib/memory/__stack_pointer - block $folding-inner2 - block $folding-inner1 + block $folding-inner1 + block $folding-inner0 global.get $~lib/memory/__stack_pointer - i32.const 3008 + i32.const 2940 i32.lt_s - br_if $folding-inner2 + br_if $folding-inner0 global.get $~lib/memory/__stack_pointer i64.const 0 i64.store @@ -3798,9 +3260,9 @@ i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 3008 + i32.const 2940 i32.lt_s - br_if $folding-inner2 + br_if $folding-inner0 global.get $~lib/memory/__stack_pointer i64.const 0 i64.store @@ -3818,7 +3280,6 @@ i32.store offset=8 local.get $0 i32.const 1056 - i32.const 1056 call $~lib/util/hash/HASH<~lib/string/String> call $"~lib/map/Map<~lib/string/String,usize>#find" i32.const 0 @@ -3840,233 +3301,67 @@ i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 3008 + i32.const 2940 i32.lt_s - br_if $folding-inner2 + br_if $folding-inner0 global.get $~lib/memory/__stack_pointer i64.const 0 i64.store - global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.store offset=8 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store - global.get $~lib/memory/__stack_pointer - i32.const 1056 - i32.store offset=4 - global.get $~lib/memory/__stack_pointer - i32.const 1056 - i32.store offset=8 - local.get $0 - i32.const 1056 - i32.const 1056 - call $~lib/util/hash/HASH<~lib/string/String> - call $"~lib/map/Map<~lib/string/String,usize>#find" - local.tee $0 - i32.eqz - if - i32.const 1856 - i32.const 1920 - i32.const 148 - i32.const 17 - call $~lib/builtins/abort - unreachable - end - local.get $0 - i32.load offset=4 - local.set $0 - global.get $~lib/memory/__stack_pointer - i32.const 12 - i32.add - global.set $~lib/memory/__stack_pointer - br $folding-inner1 - end - global.get $~lib/symbol/nextId - local.tee $0 - i32.const 1 - i32.add - global.set $~lib/symbol/nextId - local.get $0 - i32.eqz - if - unreachable - end - global.get $~lib/memory/__stack_pointer - global.get $~lib/symbol/stringToId - local.tee $1 - i32.store - global.get $~lib/memory/__stack_pointer - i32.const 1056 - i32.store offset=4 - global.get $~lib/memory/__stack_pointer - i32.const 12 - i32.sub - global.set $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - i32.const 3008 - i32.lt_s - br_if $folding-inner2 - global.get $~lib/memory/__stack_pointer - i64.const 0 - i64.store - global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.store offset=8 - global.get $~lib/memory/__stack_pointer - i32.const 1056 - i32.store - i32.const 1056 - call $~lib/util/hash/HASH<~lib/string/String> - local.set $2 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store - global.get $~lib/memory/__stack_pointer - i32.const 1056 - i32.store offset=4 - local.get $1 - i32.const 1056 - local.get $2 - call $"~lib/map/Map<~lib/string/String,usize>#find" - local.tee $3 - if - local.get $3 - local.get $0 - i32.store offset=4 - else - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store - local.get $1 - i32.load offset=16 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store - local.get $1 - i32.load offset=12 - i32.eq - if - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - local.get $1 - i32.load offset=20 - local.set $3 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - local.get $1 - local.get $3 - local.get $1 - i32.load offset=12 - i32.const 3 - i32.mul - i32.const 4 - i32.div_s - i32.lt_s - if (result i32) - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - local.get $1 - i32.load offset=4 - else - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - local.get $1 - i32.load offset=4 - i32.const 1 - i32.shl - i32.const 1 - i32.or - end - call $"~lib/map/Map<~lib/string/String,usize>#rehash" - end - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.load offset=8 - local.tee $3 - i32.store offset=8 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - local.get $1 - local.get $1 - i32.load offset=16 - local.tee $4 - i32.const 1 - i32.add - i32.store offset=16 - global.get $~lib/memory/__stack_pointer - i32.const 1056 - i32.store - local.get $3 - local.get $4 - i32.const 12 - i32.mul - i32.add - local.tee $3 - i32.const 1056 - i32.store - local.get $1 - i32.const 1056 - i32.const 1 - call $~lib/rt/itcms/__link - local.get $3 - local.get $0 - i32.store offset=4 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - local.get $1 - local.get $1 - i32.load offset=20 - i32.const 1 - i32.add - i32.store offset=20 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store - local.get $1 - i32.load - local.set $4 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store - local.get $3 - local.get $4 - local.get $2 - local.get $1 - i32.load offset=4 - i32.and - i32.const 2 - i32.shl - i32.add - local.tee $1 - i32.load + global.get $~lib/memory/__stack_pointer + i32.const 0 i32.store offset=8 - local.get $1 - local.get $3 + global.get $~lib/memory/__stack_pointer + local.get $0 i32.store + global.get $~lib/memory/__stack_pointer + i32.const 1056 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + i32.const 1056 + i32.store offset=8 + local.get $0 + i32.const 1056 + call $~lib/util/hash/HASH<~lib/string/String> + call $"~lib/map/Map<~lib/string/String,usize>#find" + local.tee $0 + i32.eqz + if + i32.const 1824 + i32.const 1888 + i32.const 146 + i32.const 17 + call $~lib/builtins/abort + unreachable + end + local.get $0 + i32.load offset=4 + local.set $0 + global.get $~lib/memory/__stack_pointer + i32.const 12 + i32.add + global.set $~lib/memory/__stack_pointer + br $folding-inner1 end - global.get $~lib/memory/__stack_pointer - i32.const 12 + global.get $~lib/symbol/nextId + local.tee $0 + i32.const 1 i32.add - global.set $~lib/memory/__stack_pointer + global.set $~lib/symbol/nextId + local.get $0 + i32.eqz + if + unreachable + end + global.get $~lib/memory/__stack_pointer + global.get $~lib/symbol/stringToId + local.tee $1 + i32.store + global.get $~lib/memory/__stack_pointer + i32.const 1056 + i32.store offset=4 + local.get $1 + local.get $0 + call $"~lib/map/Map<~lib/string/String,usize>#set" global.get $~lib/memory/__stack_pointer global.get $~lib/symbol/idToString local.tee $1 @@ -4077,20 +3372,20 @@ local.get $1 local.get $0 call $"~lib/map/Map#set" + br $folding-inner1 end - global.get $~lib/memory/__stack_pointer - i32.const 8 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $0 - return + i32.const 35728 + i32.const 35776 + i32.const 1 + i32.const 1 + call $~lib/builtins/abort + unreachable end - i32.const 35808 - i32.const 35856 - i32.const 1 - i32.const 1 - call $~lib/builtins/abort - unreachable + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $0 ) (func $"~lib/map/Map#has" (param $0 i32) (param $1 i32) (result i32) global.get $~lib/memory/__stack_pointer @@ -4098,11 +3393,11 @@ i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 3008 + i32.const 2940 i32.lt_s if - i32.const 35808 - i32.const 35856 + i32.const 35728 + i32.const 35776 i32.const 1 i32.const 1 call $~lib/builtins/abort @@ -4158,11 +3453,11 @@ i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 3008 + i32.const 2940 i32.lt_s if - i32.const 35808 - i32.const 35856 + i32.const 35728 + i32.const 35776 i32.const 1 i32.const 1 call $~lib/builtins/abort @@ -4208,9 +3503,9 @@ local.tee $0 i32.eqz if - i32.const 1856 - i32.const 1920 - i32.const 148 + i32.const 1824 + i32.const 1888 + i32.const 146 i32.const 17 call $~lib/builtins/abort unreachable @@ -4229,11 +3524,11 @@ i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 3008 + i32.const 2940 i32.lt_s if - i32.const 35808 - i32.const 35856 + i32.const 35728 + i32.const 35776 i32.const 1 i32.const 1 call $~lib/builtins/abort @@ -4275,7 +3570,7 @@ global.set $~lib/memory/__stack_pointer block $folding-inner0 global.get $~lib/memory/__stack_pointer - i32.const 3008 + i32.const 2940 i32.lt_s br_if $folding-inner0 global.get $~lib/memory/__stack_pointer @@ -4292,7 +3587,7 @@ i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 3008 + i32.const 2940 i32.lt_s br_if $folding-inner0 global.get $~lib/memory/__stack_pointer @@ -4312,7 +3607,7 @@ global.get $~lib/memory/__stack_pointer local.get $1 i32.store - block $__inlined_func$~lib/string/String#concat$309 + block $__inlined_func$~lib/string/String#concat$298 local.get $1 i32.const 20 i32.sub @@ -4329,9 +3624,9 @@ i32.const 8 i32.add global.set $~lib/memory/__stack_pointer - i32.const 2128 + i32.const 2064 local.set $0 - br $__inlined_func$~lib/string/String#concat$309 + br $__inlined_func$~lib/string/String#concat$298 end global.get $~lib/memory/__stack_pointer local.get $0 @@ -4361,8 +3656,8 @@ local.get $0 return end - i32.const 35808 - i32.const 35856 + i32.const 35728 + i32.const 35776 i32.const 1 i32.const 1 call $~lib/builtins/abort @@ -4376,11 +3671,11 @@ i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 3008 + i32.const 2940 i32.lt_s if - i32.const 35808 - i32.const 35856 + i32.const 35728 + i32.const 35776 i32.const 1 i32.const 1 call $~lib/builtins/abort @@ -4390,10 +3685,10 @@ i32.const 0 i32.const 20 memory.fill - i32.const 2128 + i32.const 2064 local.set $1 global.get $~lib/memory/__stack_pointer - i32.const 2128 + i32.const 2064 i32.store block $break|0 block $case11|0 @@ -4413,80 +3708,80 @@ i32.sub br_table $case0|0 $case1|0 $case2|0 $case3|0 $case4|0 $case5|0 $case6|0 $case7|0 $case8|0 $case9|0 $case10|0 $case11|0 end - i32.const 2160 + i32.const 2096 local.set $1 global.get $~lib/memory/__stack_pointer - i32.const 2160 + i32.const 2096 i32.store br $break|0 end - i32.const 2208 + i32.const 2144 local.set $1 global.get $~lib/memory/__stack_pointer - i32.const 2208 + i32.const 2144 i32.store br $break|0 end - i32.const 2272 + i32.const 2208 local.set $1 global.get $~lib/memory/__stack_pointer - i32.const 2272 + i32.const 2208 i32.store br $break|0 end - i32.const 2320 + i32.const 2256 local.set $1 global.get $~lib/memory/__stack_pointer - i32.const 2320 + i32.const 2256 i32.store br $break|0 end - i32.const 2352 + i32.const 2288 local.set $1 global.get $~lib/memory/__stack_pointer - i32.const 2352 + i32.const 2288 i32.store br $break|0 end - i32.const 2400 + i32.const 2336 local.set $1 global.get $~lib/memory/__stack_pointer - i32.const 2400 + i32.const 2336 i32.store br $break|0 end - i32.const 2432 + i32.const 2368 local.set $1 global.get $~lib/memory/__stack_pointer - i32.const 2432 + i32.const 2368 i32.store br $break|0 end - i32.const 2480 + i32.const 2416 local.set $1 global.get $~lib/memory/__stack_pointer - i32.const 2480 + i32.const 2416 i32.store br $break|0 end - i32.const 2512 + i32.const 2448 local.set $1 global.get $~lib/memory/__stack_pointer - i32.const 2512 + i32.const 2448 i32.store br $break|0 end - i32.const 2560 + i32.const 2496 local.set $1 global.get $~lib/memory/__stack_pointer - i32.const 2560 + i32.const 2496 i32.store br $break|0 end - i32.const 2608 + i32.const 2544 local.set $1 global.get $~lib/memory/__stack_pointer - i32.const 2608 + i32.const 2544 i32.store br $break|0 end @@ -4516,12 +3811,12 @@ end end global.get $~lib/memory/__stack_pointer - i32.const 2656 + i32.const 2592 i32.store offset=12 global.get $~lib/memory/__stack_pointer local.get $1 i32.store offset=16 - i32.const 2656 + i32.const 2592 local.get $1 call $~lib/string/String.__concat local.set $0 @@ -4529,10 +3824,10 @@ local.get $0 i32.store offset=4 global.get $~lib/memory/__stack_pointer - i32.const 2704 + i32.const 2640 i32.store offset=8 local.get $0 - i32.const 2704 + i32.const 2640 call $~lib/string/String.__concat global.get $~lib/memory/__stack_pointer i32.const 20 @@ -4548,7 +3843,7 @@ global.set $~lib/memory/__stack_pointer block $folding-inner0 global.get $~lib/memory/__stack_pointer - i32.const 3008 + i32.const 2940 i32.lt_s br_if $folding-inner0 global.get $~lib/memory/__stack_pointer @@ -4601,7 +3896,7 @@ memory.size i32.const 16 i32.shl - i32.const 35776 + i32.const 35708 i32.sub i32.const 1 i32.shr_u @@ -4631,70 +3926,164 @@ i32.const 1536 global.set $~lib/rt/itcms/fromSpace global.get $~lib/memory/__stack_pointer - i32.const 12 + i32.const 20 i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 3008 + i32.const 2940 i32.lt_s br_if $folding-inner0 global.get $~lib/memory/__stack_pointer - i64.const 0 - i64.store - global.get $~lib/memory/__stack_pointer i32.const 0 - i32.store offset=8 + i32.const 20 + memory.fill global.get $~lib/memory/__stack_pointer - i32.const 6 - i32.const 1824 - call $~lib/rt/__newArray + i32.const 24 + i32.const 4 + call $~lib/rt/itcms/__new local.tee $0 i32.store global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + i32.const 16 + call $~lib/arraybuffer/ArrayBuffer#constructor + local.set $1 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=8 + local.get $0 + local.get $1 + i32.store + local.get $0 + local.get $1 i32.const 0 + call $~lib/rt/itcms/__link + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + local.get $0 + i32.const 3 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + local.get $0 i32.store offset=4 + i32.const 48 + call $~lib/arraybuffer/ArrayBuffer#constructor + local.set $1 global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=8 local.get $0 + local.get $1 i32.store offset=8 local.get $0 - call $"~lib/map/Map<~lib/string/String,usize>#constructor" + local.get $1 + i32.const 0 + call $~lib/rt/itcms/__link global.get $~lib/memory/__stack_pointer - i32.const 12 + local.get $0 + i32.store offset=4 + local.get $0 + i32.const 4 + i32.store offset=12 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + local.get $0 + i32.const 0 + i32.store offset=16 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + local.get $0 + i32.const 0 + i32.store offset=20 + global.get $~lib/memory/__stack_pointer + i32.const 20 i32.add global.set $~lib/memory/__stack_pointer + local.get $0 global.set $~lib/symbol/stringToId global.get $~lib/memory/__stack_pointer - i32.const 12 + i32.const 20 i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 3008 + i32.const 2940 i32.lt_s br_if $folding-inner0 global.get $~lib/memory/__stack_pointer - i64.const 0 - i64.store - global.get $~lib/memory/__stack_pointer i32.const 0 - i32.store offset=8 + i32.const 20 + memory.fill global.get $~lib/memory/__stack_pointer - i32.const 10 - i32.const 1968 - call $~lib/rt/__newArray + i32.const 24 + i32.const 7 + call $~lib/rt/itcms/__new local.tee $0 i32.store global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + i32.const 16 + call $~lib/arraybuffer/ArrayBuffer#constructor + local.set $1 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=8 + local.get $0 + local.get $1 + i32.store + local.get $0 + local.get $1 i32.const 0 + call $~lib/rt/itcms/__link + global.get $~lib/memory/__stack_pointer + local.get $0 i32.store offset=4 + local.get $0 + i32.const 3 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + i32.const 48 + call $~lib/arraybuffer/ArrayBuffer#constructor + local.set $1 global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=8 local.get $0 + local.get $1 i32.store offset=8 local.get $0 - call $"~lib/map/Map#constructor" + local.get $1 + i32.const 0 + call $~lib/rt/itcms/__link global.get $~lib/memory/__stack_pointer - i32.const 12 + local.get $0 + i32.store offset=4 + local.get $0 + i32.const 4 + i32.store offset=12 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + local.get $0 + i32.const 0 + i32.store offset=16 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + local.get $0 + i32.const 0 + i32.store offset=20 + global.get $~lib/memory/__stack_pointer + i32.const 20 i32.add global.set $~lib/memory/__stack_pointer + local.get $0 global.set $~lib/symbol/idToString global.get $~lib/memory/__stack_pointer i32.const 1056 @@ -4763,7 +4152,7 @@ local.get $0 i32.eqz if - i32.const 2000 + i32.const 1936 i32.const 1088 i32.const 17 i32.const 12 @@ -4780,7 +4169,7 @@ local.get $0 i32.eqz if - i32.const 2000 + i32.const 1936 i32.const 1088 i32.const 18 i32.const 12 @@ -4845,10 +4234,10 @@ local.get $0 i32.store global.get $~lib/memory/__stack_pointer - i32.const 2736 + i32.const 2672 i32.store offset=12 local.get $0 - i32.const 2736 + i32.const 2672 call $~lib/string/String.__eq i32.eqz if @@ -4866,10 +4255,10 @@ local.get $0 i32.store global.get $~lib/memory/__stack_pointer - i32.const 2784 + i32.const 2720 i32.store offset=12 local.get $0 - i32.const 2784 + i32.const 2720 call $~lib/string/String.__eq i32.eqz if @@ -4889,10 +4278,10 @@ local.get $0 i32.store global.get $~lib/memory/__stack_pointer - i32.const 2832 + i32.const 2768 i32.store offset=12 local.get $0 - i32.const 2832 + i32.const 2768 call $~lib/string/String.__eq i32.eqz if @@ -4910,10 +4299,10 @@ local.get $0 i32.store global.get $~lib/memory/__stack_pointer - i32.const 2896 + i32.const 2832 i32.store offset=12 local.get $0 - i32.const 2896 + i32.const 2832 call $~lib/string/String.__eq i32.eqz if @@ -4930,8 +4319,8 @@ global.set $~lib/memory/__stack_pointer return end - i32.const 35808 - i32.const 35856 + i32.const 35728 + i32.const 35776 i32.const 1 i32.const 1 call $~lib/builtins/abort @@ -4943,11 +4332,11 @@ i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 3008 + i32.const 2940 i32.lt_s if - i32.const 35808 - i32.const 35856 + i32.const 35728 + i32.const 35776 i32.const 1 i32.const 1 call $~lib/builtins/abort @@ -4979,64 +4368,4 @@ global.set $~lib/memory/__stack_pointer local.get $0 ) - (func $~lib/rt/__newArray (param $0 i32) (param $1 i32) (result i32) - (local $2 i32) - (local $3 i32) - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.sub - global.set $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - i32.const 3008 - i32.lt_s - if - i32.const 35808 - i32.const 35856 - i32.const 1 - i32.const 1 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.store - global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.const 1 - call $~lib/rt/itcms/__new - local.set $2 - local.get $1 - if - local.get $2 - local.get $1 - i32.const 0 - memory.copy - end - local.get $2 - i32.store - i32.const 16 - local.get $0 - call $~lib/rt/itcms/__new - local.tee $0 - local.get $2 - i32.store - local.get $0 - local.get $2 - i32.const 0 - call $~lib/rt/itcms/__link - local.get $0 - local.get $2 - i32.store offset=4 - local.get $0 - i32.const 0 - i32.store offset=8 - local.get $0 - i32.const 0 - i32.store offset=12 - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $0 - ) ) From 5d0ecdd20e90ebe111b130c3b0eea85c2e7e3fe1 Mon Sep 17 00:00:00 2001 From: Pebrian Date: Mon, 25 Aug 2025 19:15:29 +0700 Subject: [PATCH 7/7] fix: use early return in Map constructor, correct conditional logic and use cache initialEntries length --- std/assembly/map.ts | 65 +- tests/compiler/std/map.debug.wat | 11432 +++++++++++++----------- tests/compiler/std/map.release.wat | 4532 +++++----- tests/compiler/std/map.ts | 4 + tests/compiler/std/symbol.debug.wat | 936 +- tests/compiler/std/symbol.release.wat | 4 +- 6 files changed, 8980 insertions(+), 7993 deletions(-) diff --git a/std/assembly/map.ts b/std/assembly/map.ts index f4e512add8..3c2b66de95 100644 --- a/std/assembly/map.ts +++ b/std/assembly/map.ts @@ -74,39 +74,40 @@ export class Map { private entriesCount: i32 = 0; constructor(initialEntries: MapInitialEntries | null = null) { - if (initialEntries) { - if (initialEntries.length >= this.entriesCapacity) this.bucketsMask = initialEntries.length; - this.rehash((this.bucketsMask << 1) | 1); - - for (let i = 0; i < initialEntries.length; i++) { - let key = initialEntries[i].key; - let value = initialEntries[i].value; - let hashCode = HASH(key); - let entry = this.find(key, hashCode); // unmanaged! - if (entry) { - entry.value = value; - if (isManaged()) { - __link(changetype(this), changetype(value), true); - } - } else { - // append new entry - let entries = this.entries; - let entry = changetype>(changetype(entries) + (this.entriesOffset++) * ENTRY_SIZE()); - // link with the map - entry.key = key; - if (isManaged()) { - __link(changetype(this), changetype(key), true); - } - entry.value = value; - if (isManaged()) { - __link(changetype(this), changetype(value), true); - } - ++this.entriesCount; - // link with previous entry in bucket - let bucketPtrBase = changetype(this.buckets) + (hashCode & this.bucketsMask) * BUCKET_SIZE; - entry.taggedNext = load(bucketPtrBase); - store(bucketPtrBase, changetype(entry)); + if (!initialEntries || !initialEntries.length) return this; + let initialEntriesLength = initialEntries.length; + + if (initialEntriesLength >= this.entriesCapacity) this.bucketsMask = initialEntriesLength; + this.rehash((this.bucketsMask << 1) | 1); + + for (let i = 0; i < initialEntriesLength; i++) { + let key = initialEntries[i].key; + let value = initialEntries[i].value; + let hashCode = HASH(key); + let entry = this.find(key, hashCode); // unmanaged! + if (entry) { + entry.value = value; + if (isManaged()) { + __link(changetype(this), changetype(value), true); + } + } else { + // append new entry + let entries = this.entries; + let entry = changetype>(changetype(entries) + (this.entriesOffset++) * ENTRY_SIZE()); + // link with the map + entry.key = key; + if (isManaged()) { + __link(changetype(this), changetype(key), true); + } + entry.value = value; + if (isManaged()) { + __link(changetype(this), changetype(value), true); } + ++this.entriesCount; + // link with previous entry in bucket + let bucketPtrBase = changetype(this.buckets) + (hashCode & this.bucketsMask) * BUCKET_SIZE; + entry.taggedNext = load(bucketPtrBase); + store(bucketPtrBase, changetype(entry)); } } } diff --git a/tests/compiler/std/map.debug.wat b/tests/compiler/std/map.debug.wat index e77df1337c..c20f37dc03 100644 --- a/tests/compiler/std/map.debug.wat +++ b/tests/compiler/std/map.debug.wat @@ -50,10 +50,10 @@ (global $~lib/rt/tlsf/ROOT (mut i32) (i32.const 0)) (global $~lib/native/ASC_LOW_MEMORY_LIMIT i32 (i32.const 0)) (global $~lib/native/ASC_RUNTIME i32 (i32.const 2)) - (global $~lib/rt/__rtti_base i32 (i32.const 1184)) - (global $~lib/memory/__data_end i32 (i32.const 1472)) - (global $~lib/memory/__stack_pointer (mut i32) (i32.const 34240)) - (global $~lib/memory/__heap_base i32 (i32.const 34240)) + (global $~lib/rt/__rtti_base i32 (i32.const 1504)) + (global $~lib/memory/__data_end i32 (i32.const 1792)) + (global $~lib/memory/__stack_pointer (mut i32) (i32.const 34560)) + (global $~lib/memory/__heap_base i32 (i32.const 34560)) (memory $0 1) (data $0 (i32.const 12) ",\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\1c\00\00\00I\00n\00v\00a\00l\00i\00d\00 \00l\00e\00n\00g\00t\00h\00") (data $1 (i32.const 60) "<\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00&\00\00\00~\00l\00i\00b\00/\00a\00r\00r\00a\00y\00b\00u\00f\00f\00e\00r\00.\00t\00s\00\00\00\00\00\00\00") @@ -80,7 +80,17 @@ (data $22 (i32.const 1084) "\1c\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00") (data $23 (i32.const 1116) "\1c\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00") (data $24 (i32.const 1148) "\1c\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00") - (data $25 (i32.const 1184) "G\00\00\00 \00\00\00 \00\00\00 \00\00\00\00\00\00\00\10\89\10\00 \00\00\00\02A\00\00B\08\00\00\02\t\00\00P\88\10\00 \00\00\00\02A\00\00\10\t\12\00 \00\00\00\02A\00\00\10\89\00\00 \00\00\00\02A\00\00B\00\00\00P\80\00\00 \00\00\00\02A\00\00\10\t\11\00 \00\00\00\02A\00\00\82\08\00\00\90\08\11\00 \00\00\00\02A\00\00\10\t\01\00 \00\00\00\02A\00\00\82\00\00\00\90\00\01\00 \00\00\00\02A\00\00\10\t\02\00 \00\00\00\02A\00\00\02\01\00\00\10\01\02\00 \00\00\00\02A\00\00\10\t\14\00 \00\00\00\02A\00\00\02\n\00\00\10\n\14\00 \00\00\00\02A\00\00\10\t\04\00 \00\00\00\02A\00\00\02\02\00\00\10\02\04\00 \00\00\00\02A\00\00\10\t2\00 \00\00\00\02A\00\00\02\19\00\00\10\192\00 \00\00\00\02A\00\00\10\t4\00 \00\00\00\02A\00\00\02\1a\00\00\10\1a4\00 \00\00\00\02A\00\00") + (data $25 (i32.const 1180) "\1c\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00") + (data $26 (i32.const 1212) "\1c\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00") + (data $27 (i32.const 1244) "\1c\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00") + (data $28 (i32.const 1276) "\1c\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00") + (data $29 (i32.const 1308) "\1c\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00") + (data $30 (i32.const 1340) "\1c\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00") + (data $31 (i32.const 1372) "\1c\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00") + (data $32 (i32.const 1404) "\1c\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00") + (data $33 (i32.const 1436) "\1c\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00") + (data $34 (i32.const 1468) "\1c\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00") + (data $35 (i32.const 1504) "G\00\00\00 \00\00\00 \00\00\00 \00\00\00\00\00\00\00\10\89\10\00 \00\00\00\02A\00\00B\08\00\00\02\t\00\00P\88\10\00 \00\00\00\02A\00\00\10\t\12\00 \00\00\00\02A\00\00\10\89\00\00 \00\00\00\02A\00\00B\00\00\00P\80\00\00 \00\00\00\02A\00\00\10\t\11\00 \00\00\00\02A\00\00\82\08\00\00\90\08\11\00 \00\00\00\02A\00\00\10\t\01\00 \00\00\00\02A\00\00\82\00\00\00\90\00\01\00 \00\00\00\02A\00\00\10\t\02\00 \00\00\00\02A\00\00\02\01\00\00\10\01\02\00 \00\00\00\02A\00\00\10\t\14\00 \00\00\00\02A\00\00\02\n\00\00\10\n\14\00 \00\00\00\02A\00\00\10\t\04\00 \00\00\00\02A\00\00\02\02\00\00\10\02\04\00 \00\00\00\02A\00\00\10\t2\00 \00\00\00\02A\00\00\02\19\00\00\10\192\00 \00\00\00\02A\00\00\10\t4\00 \00\00\00\02A\00\00\02\1a\00\00\10\1a4\00 \00\00\00\02A\00\00") (table $0 1 1 funcref) (elem $0 (i32.const 1)) (export "memory" (memory $0)) @@ -6615,8 +6625,8 @@ global.get $~lib/memory/__data_end i32.lt_s if - i32.const 34272 - i32.const 34320 + i32.const 34592 + i32.const 34640 i32.const 1 i32.const 1 call $~lib/builtins/abort @@ -6998,16 +7008,17 @@ return ) (func $"~lib/map/Map#constructor" (param $this i32) (param $initialEntries i32) (result i32) + (local $initialEntriesLength i32) (local $i i32) (local $key i32) (local $value i32) (local $hashCode i32) (local $entry i32) (local $entries i32) - (local $8 i32) - (local $entry|9 i32) + (local $9 i32) + (local $entry|10 i32) (local $bucketPtrBase i32) - (local $11 i32) + (local $12 i32) global.get $~lib/memory/__stack_pointer i32.const 16 i32.sub @@ -7030,38 +7041,38 @@ i32.store end local.get $this - local.set $11 + local.set $12 global.get $~lib/memory/__stack_pointer - local.get $11 + local.get $12 i32.store offset=4 - local.get $11 + local.get $12 i32.const 0 i32.const 4 i32.const 4 i32.mul call $~lib/arraybuffer/ArrayBuffer#constructor - local.set $11 + local.set $12 global.get $~lib/memory/__stack_pointer - local.get $11 + local.get $12 i32.store offset=8 - local.get $11 + local.get $12 call $"~lib/map/Map#set:buckets" local.get $this - local.set $11 + local.set $12 global.get $~lib/memory/__stack_pointer - local.get $11 + local.get $12 i32.store offset=4 - local.get $11 + local.get $12 i32.const 4 i32.const 1 i32.sub call $"~lib/map/Map#set:bucketsMask" local.get $this - local.set $11 + local.set $12 global.get $~lib/memory/__stack_pointer - local.get $11 + local.get $12 i32.store offset=4 - local.get $11 + local.get $12 i32.const 0 i32.const 4 block $"~lib/map/ENTRY_SIZE|inlined.5" (result i32) @@ -7070,256 +7081,267 @@ end i32.mul call $~lib/arraybuffer/ArrayBuffer#constructor - local.set $11 + local.set $12 global.get $~lib/memory/__stack_pointer - local.get $11 + local.get $12 i32.store offset=8 - local.get $11 + local.get $12 call $"~lib/map/Map#set:entries" local.get $this - local.set $11 + local.set $12 global.get $~lib/memory/__stack_pointer - local.get $11 + local.get $12 i32.store offset=4 - local.get $11 + local.get $12 i32.const 4 call $"~lib/map/Map#set:entriesCapacity" local.get $this - local.set $11 + local.set $12 global.get $~lib/memory/__stack_pointer - local.get $11 + local.get $12 i32.store offset=4 - local.get $11 + local.get $12 i32.const 0 call $"~lib/map/Map#set:entriesOffset" local.get $this - local.set $11 + local.set $12 global.get $~lib/memory/__stack_pointer - local.get $11 + local.get $12 i32.store offset=4 - local.get $11 + local.get $12 i32.const 0 call $"~lib/map/Map#set:entriesCount" local.get $initialEntries - if + i32.eqz + if (result i32) + i32.const 1 + else local.get $initialEntries - local.set $11 + local.set $12 global.get $~lib/memory/__stack_pointer - local.get $11 + local.get $12 i32.store offset=4 - local.get $11 + local.get $12 call $"~lib/array/Array<~lib/map/KeyValue>#get:length" + i32.eqz + end + if local.get $this - local.set $11 + local.set $12 global.get $~lib/memory/__stack_pointer - local.get $11 + i32.const 16 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $12 + return + end + local.get $initialEntries + local.set $12 + global.get $~lib/memory/__stack_pointer + local.get $12 + i32.store offset=4 + local.get $12 + call $"~lib/array/Array<~lib/map/KeyValue>#get:length" + local.set $initialEntriesLength + local.get $initialEntriesLength + local.get $this + local.set $12 + global.get $~lib/memory/__stack_pointer + local.get $12 + i32.store offset=4 + local.get $12 + call $"~lib/map/Map#get:entriesCapacity" + i32.ge_s + if + local.get $this + local.set $12 + global.get $~lib/memory/__stack_pointer + local.get $12 i32.store offset=4 - local.get $11 - call $"~lib/map/Map#get:entriesCapacity" - i32.ge_s + local.get $12 + local.get $initialEntriesLength + call $"~lib/map/Map#set:bucketsMask" + end + local.get $this + local.set $12 + global.get $~lib/memory/__stack_pointer + local.get $12 + i32.store offset=4 + local.get $12 + local.get $this + local.set $12 + global.get $~lib/memory/__stack_pointer + local.get $12 + i32.store offset=8 + local.get $12 + call $"~lib/map/Map#get:bucketsMask" + i32.const 1 + i32.shl + i32.const 1 + i32.or + call $"~lib/map/Map#rehash" + i32.const 0 + local.set $i + loop $for-loop|0 + local.get $i + local.get $initialEntriesLength + i32.lt_s if - local.get $this - local.set $11 + local.get $initialEntries + local.set $12 global.get $~lib/memory/__stack_pointer - local.get $11 + local.get $12 + i32.store offset=8 + local.get $12 + local.get $i + call $"~lib/array/Array<~lib/map/KeyValue>#__get" + local.set $12 + global.get $~lib/memory/__stack_pointer + local.get $12 i32.store offset=4 - local.get $11 + local.get $12 + call $"~lib/map/KeyValue#get:key" + local.set $key local.get $initialEntries - local.set $11 + local.set $12 global.get $~lib/memory/__stack_pointer - local.get $11 + local.get $12 i32.store offset=8 - local.get $11 - call $"~lib/array/Array<~lib/map/KeyValue>#get:length" - call $"~lib/map/Map#set:bucketsMask" - end - local.get $this - local.set $11 - global.get $~lib/memory/__stack_pointer - local.get $11 - i32.store offset=4 - local.get $11 - local.get $this - local.set $11 - global.get $~lib/memory/__stack_pointer - local.get $11 - i32.store offset=8 - local.get $11 - call $"~lib/map/Map#get:bucketsMask" - i32.const 1 - i32.shl - i32.const 1 - i32.or - call $"~lib/map/Map#rehash" - i32.const 0 - local.set $i - loop $for-loop|0 + local.get $12 local.get $i - local.get $initialEntries - local.set $11 + call $"~lib/array/Array<~lib/map/KeyValue>#__get" + local.set $12 global.get $~lib/memory/__stack_pointer - local.get $11 + local.get $12 i32.store offset=4 - local.get $11 - call $"~lib/array/Array<~lib/map/KeyValue>#get:length" - i32.lt_s + local.get $12 + call $"~lib/map/KeyValue#get:value" + local.set $value + local.get $key + call $~lib/util/hash/HASH + local.set $hashCode + local.get $this + local.set $12 + global.get $~lib/memory/__stack_pointer + local.get $12 + i32.store offset=4 + local.get $12 + local.get $key + local.get $hashCode + call $"~lib/map/Map#find" + local.set $entry + local.get $entry if - local.get $initialEntries - local.set $11 + local.get $entry + local.get $value + call $"~lib/map/MapEntry#set:value" + i32.const 0 + drop + else global.get $~lib/memory/__stack_pointer - local.get $11 - i32.store offset=8 - local.get $11 - local.get $i - call $"~lib/array/Array<~lib/map/KeyValue>#__get" - local.set $11 + local.get $this + local.set $12 global.get $~lib/memory/__stack_pointer - local.get $11 + local.get $12 i32.store offset=4 - local.get $11 - call $"~lib/map/KeyValue#get:key" - local.set $key - local.get $initialEntries - local.set $11 + local.get $12 + call $"~lib/map/Map#get:entries" + local.tee $entries + i32.store offset=12 + local.get $entries + local.get $this + local.set $12 + global.get $~lib/memory/__stack_pointer + local.get $12 + i32.store offset=4 + local.get $12 + local.get $this + local.set $12 global.get $~lib/memory/__stack_pointer - local.get $11 + local.get $12 i32.store offset=8 - local.get $11 - local.get $i - call $"~lib/array/Array<~lib/map/KeyValue>#__get" - local.set $11 + local.get $12 + call $"~lib/map/Map#get:entriesOffset" + local.tee $9 + i32.const 1 + i32.add + call $"~lib/map/Map#set:entriesOffset" + local.get $9 + block $"~lib/map/ENTRY_SIZE|inlined.4" (result i32) + i32.const 12 + br $"~lib/map/ENTRY_SIZE|inlined.4" + end + i32.mul + i32.add + local.set $entry|10 + local.get $entry|10 + local.get $key + call $"~lib/map/MapEntry#set:key" + i32.const 0 + drop + local.get $entry|10 + local.get $value + call $"~lib/map/MapEntry#set:value" + i32.const 0 + drop + local.get $this + local.set $12 global.get $~lib/memory/__stack_pointer - local.get $11 + local.get $12 i32.store offset=4 - local.get $11 - call $"~lib/map/KeyValue#get:value" - local.set $value - local.get $key - call $~lib/util/hash/HASH - local.set $hashCode + local.get $12 + local.get $this + local.set $12 + global.get $~lib/memory/__stack_pointer + local.get $12 + i32.store offset=8 + local.get $12 + call $"~lib/map/Map#get:entriesCount" + i32.const 1 + i32.add + call $"~lib/map/Map#set:entriesCount" local.get $this - local.set $11 + local.set $12 global.get $~lib/memory/__stack_pointer - local.get $11 + local.get $12 i32.store offset=4 - local.get $11 - local.get $key + local.get $12 + call $"~lib/map/Map#get:buckets" local.get $hashCode - call $"~lib/map/Map#find" - local.set $entry - local.get $entry - if - local.get $entry - local.get $value - call $"~lib/map/MapEntry#set:value" - i32.const 0 - drop - else - global.get $~lib/memory/__stack_pointer - local.get $this - local.set $11 - global.get $~lib/memory/__stack_pointer - local.get $11 - i32.store offset=4 - local.get $11 - call $"~lib/map/Map#get:entries" - local.tee $entries - i32.store offset=12 - local.get $entries - local.get $this - local.set $11 - global.get $~lib/memory/__stack_pointer - local.get $11 - i32.store offset=4 - local.get $11 - local.get $this - local.set $11 - global.get $~lib/memory/__stack_pointer - local.get $11 - i32.store offset=8 - local.get $11 - call $"~lib/map/Map#get:entriesOffset" - local.tee $8 - i32.const 1 - i32.add - call $"~lib/map/Map#set:entriesOffset" - local.get $8 - block $"~lib/map/ENTRY_SIZE|inlined.4" (result i32) - i32.const 12 - br $"~lib/map/ENTRY_SIZE|inlined.4" - end - i32.mul - i32.add - local.set $entry|9 - local.get $entry|9 - local.get $key - call $"~lib/map/MapEntry#set:key" - i32.const 0 - drop - local.get $entry|9 - local.get $value - call $"~lib/map/MapEntry#set:value" - i32.const 0 - drop - local.get $this - local.set $11 - global.get $~lib/memory/__stack_pointer - local.get $11 - i32.store offset=4 - local.get $11 - local.get $this - local.set $11 - global.get $~lib/memory/__stack_pointer - local.get $11 - i32.store offset=8 - local.get $11 - call $"~lib/map/Map#get:entriesCount" - i32.const 1 - i32.add - call $"~lib/map/Map#set:entriesCount" - local.get $this - local.set $11 - global.get $~lib/memory/__stack_pointer - local.get $11 - i32.store offset=4 - local.get $11 - call $"~lib/map/Map#get:buckets" - local.get $hashCode - local.get $this - local.set $11 - global.get $~lib/memory/__stack_pointer - local.get $11 - i32.store offset=4 - local.get $11 - call $"~lib/map/Map#get:bucketsMask" - i32.and - i32.const 4 - i32.mul - i32.add - local.set $bucketPtrBase - local.get $entry|9 - local.get $bucketPtrBase - i32.load - call $"~lib/map/MapEntry#set:taggedNext" - local.get $bucketPtrBase - local.get $entry|9 - i32.store - end - local.get $i - i32.const 1 + local.get $this + local.set $12 + global.get $~lib/memory/__stack_pointer + local.get $12 + i32.store offset=4 + local.get $12 + call $"~lib/map/Map#get:bucketsMask" + i32.and + i32.const 4 + i32.mul i32.add - local.set $i - br $for-loop|0 + local.set $bucketPtrBase + local.get $entry|10 + local.get $bucketPtrBase + i32.load + call $"~lib/map/MapEntry#set:taggedNext" + local.get $bucketPtrBase + local.get $entry|10 + i32.store end + local.get $i + i32.const 1 + i32.add + local.set $i + br $for-loop|0 end end local.get $this - local.set $11 + local.set $12 global.get $~lib/memory/__stack_pointer i32.const 16 i32.add global.set $~lib/memory/__stack_pointer - local.get $11 + local.get $12 ) (func $"~lib/map/Map#has" (param $this i32) (param $key i32) (result i32) (local $2 i32) @@ -7580,7 +7602,7 @@ if i32.const 768 i32.const 832 - i32.const 146 + i32.const 147 i32.const 17 call $~lib/builtins/abort unreachable @@ -8790,16 +8812,17 @@ return ) (func $"~lib/map/Map#constructor" (param $this i32) (param $initialEntries i32) (result i32) + (local $initialEntriesLength i32) (local $i i32) (local $key i32) (local $value i32) (local $hashCode i32) (local $entry i32) (local $entries i32) - (local $8 i32) - (local $entry|9 i32) + (local $9 i32) + (local $entry|10 i32) (local $bucketPtrBase i32) - (local $11 i32) + (local $12 i32) global.get $~lib/memory/__stack_pointer i32.const 16 i32.sub @@ -8822,38 +8845,38 @@ i32.store end local.get $this - local.set $11 + local.set $12 global.get $~lib/memory/__stack_pointer - local.get $11 + local.get $12 i32.store offset=4 - local.get $11 + local.get $12 i32.const 0 i32.const 4 i32.const 4 i32.mul call $~lib/arraybuffer/ArrayBuffer#constructor - local.set $11 + local.set $12 global.get $~lib/memory/__stack_pointer - local.get $11 + local.get $12 i32.store offset=8 - local.get $11 + local.get $12 call $"~lib/map/Map#set:buckets" local.get $this - local.set $11 + local.set $12 global.get $~lib/memory/__stack_pointer - local.get $11 + local.get $12 i32.store offset=4 - local.get $11 + local.get $12 i32.const 4 i32.const 1 i32.sub call $"~lib/map/Map#set:bucketsMask" local.get $this - local.set $11 + local.set $12 global.get $~lib/memory/__stack_pointer - local.get $11 + local.get $12 i32.store offset=4 - local.get $11 + local.get $12 i32.const 0 i32.const 4 block $"~lib/map/ENTRY_SIZE|inlined.5" (result i32) @@ -8862,256 +8885,267 @@ end i32.mul call $~lib/arraybuffer/ArrayBuffer#constructor - local.set $11 + local.set $12 global.get $~lib/memory/__stack_pointer - local.get $11 + local.get $12 i32.store offset=8 - local.get $11 + local.get $12 call $"~lib/map/Map#set:entries" local.get $this - local.set $11 + local.set $12 global.get $~lib/memory/__stack_pointer - local.get $11 + local.get $12 i32.store offset=4 - local.get $11 + local.get $12 i32.const 4 call $"~lib/map/Map#set:entriesCapacity" local.get $this - local.set $11 + local.set $12 global.get $~lib/memory/__stack_pointer - local.get $11 + local.get $12 i32.store offset=4 - local.get $11 + local.get $12 i32.const 0 call $"~lib/map/Map#set:entriesOffset" local.get $this - local.set $11 + local.set $12 global.get $~lib/memory/__stack_pointer - local.get $11 + local.get $12 i32.store offset=4 - local.get $11 + local.get $12 i32.const 0 call $"~lib/map/Map#set:entriesCount" local.get $initialEntries - if + i32.eqz + if (result i32) + i32.const 1 + else local.get $initialEntries - local.set $11 + local.set $12 global.get $~lib/memory/__stack_pointer - local.get $11 + local.get $12 i32.store offset=4 - local.get $11 + local.get $12 call $"~lib/array/Array<~lib/map/KeyValue>#get:length" + i32.eqz + end + if + local.get $this + local.set $12 + global.get $~lib/memory/__stack_pointer + i32.const 16 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $12 + return + end + local.get $initialEntries + local.set $12 + global.get $~lib/memory/__stack_pointer + local.get $12 + i32.store offset=4 + local.get $12 + call $"~lib/array/Array<~lib/map/KeyValue>#get:length" + local.set $initialEntriesLength + local.get $initialEntriesLength + local.get $this + local.set $12 + global.get $~lib/memory/__stack_pointer + local.get $12 + i32.store offset=4 + local.get $12 + call $"~lib/map/Map#get:entriesCapacity" + i32.ge_s + if local.get $this - local.set $11 + local.set $12 global.get $~lib/memory/__stack_pointer - local.get $11 + local.get $12 i32.store offset=4 - local.get $11 - call $"~lib/map/Map#get:entriesCapacity" - i32.ge_s + local.get $12 + local.get $initialEntriesLength + call $"~lib/map/Map#set:bucketsMask" + end + local.get $this + local.set $12 + global.get $~lib/memory/__stack_pointer + local.get $12 + i32.store offset=4 + local.get $12 + local.get $this + local.set $12 + global.get $~lib/memory/__stack_pointer + local.get $12 + i32.store offset=8 + local.get $12 + call $"~lib/map/Map#get:bucketsMask" + i32.const 1 + i32.shl + i32.const 1 + i32.or + call $"~lib/map/Map#rehash" + i32.const 0 + local.set $i + loop $for-loop|0 + local.get $i + local.get $initialEntriesLength + i32.lt_s if - local.get $this - local.set $11 + local.get $initialEntries + local.set $12 global.get $~lib/memory/__stack_pointer - local.get $11 + local.get $12 + i32.store offset=8 + local.get $12 + local.get $i + call $"~lib/array/Array<~lib/map/KeyValue>#__get" + local.set $12 + global.get $~lib/memory/__stack_pointer + local.get $12 i32.store offset=4 - local.get $11 + local.get $12 + call $"~lib/map/KeyValue#get:key" + local.set $key local.get $initialEntries - local.set $11 + local.set $12 global.get $~lib/memory/__stack_pointer - local.get $11 + local.get $12 i32.store offset=8 - local.get $11 - call $"~lib/array/Array<~lib/map/KeyValue>#get:length" - call $"~lib/map/Map#set:bucketsMask" - end - local.get $this - local.set $11 - global.get $~lib/memory/__stack_pointer - local.get $11 - i32.store offset=4 - local.get $11 - local.get $this - local.set $11 - global.get $~lib/memory/__stack_pointer - local.get $11 - i32.store offset=8 - local.get $11 - call $"~lib/map/Map#get:bucketsMask" - i32.const 1 - i32.shl - i32.const 1 - i32.or - call $"~lib/map/Map#rehash" - i32.const 0 - local.set $i - loop $for-loop|0 + local.get $12 local.get $i - local.get $initialEntries - local.set $11 + call $"~lib/array/Array<~lib/map/KeyValue>#__get" + local.set $12 global.get $~lib/memory/__stack_pointer - local.get $11 + local.get $12 i32.store offset=4 - local.get $11 - call $"~lib/array/Array<~lib/map/KeyValue>#get:length" - i32.lt_s + local.get $12 + call $"~lib/map/KeyValue#get:value" + local.set $value + local.get $key + call $~lib/util/hash/HASH + local.set $hashCode + local.get $this + local.set $12 + global.get $~lib/memory/__stack_pointer + local.get $12 + i32.store offset=4 + local.get $12 + local.get $key + local.get $hashCode + call $"~lib/map/Map#find" + local.set $entry + local.get $entry if - local.get $initialEntries - local.set $11 + local.get $entry + local.get $value + call $"~lib/map/MapEntry#set:value" + i32.const 0 + drop + else global.get $~lib/memory/__stack_pointer - local.get $11 - i32.store offset=8 - local.get $11 - local.get $i - call $"~lib/array/Array<~lib/map/KeyValue>#__get" - local.set $11 + local.get $this + local.set $12 global.get $~lib/memory/__stack_pointer - local.get $11 + local.get $12 i32.store offset=4 - local.get $11 - call $"~lib/map/KeyValue#get:key" - local.set $key - local.get $initialEntries - local.set $11 + local.get $12 + call $"~lib/map/Map#get:entries" + local.tee $entries + i32.store offset=12 + local.get $entries + local.get $this + local.set $12 + global.get $~lib/memory/__stack_pointer + local.get $12 + i32.store offset=4 + local.get $12 + local.get $this + local.set $12 global.get $~lib/memory/__stack_pointer - local.get $11 + local.get $12 i32.store offset=8 - local.get $11 - local.get $i - call $"~lib/array/Array<~lib/map/KeyValue>#__get" - local.set $11 + local.get $12 + call $"~lib/map/Map#get:entriesOffset" + local.tee $9 + i32.const 1 + i32.add + call $"~lib/map/Map#set:entriesOffset" + local.get $9 + block $"~lib/map/ENTRY_SIZE|inlined.4" (result i32) + i32.const 8 + br $"~lib/map/ENTRY_SIZE|inlined.4" + end + i32.mul + i32.add + local.set $entry|10 + local.get $entry|10 + local.get $key + call $"~lib/map/MapEntry#set:key" + i32.const 0 + drop + local.get $entry|10 + local.get $value + call $"~lib/map/MapEntry#set:value" + i32.const 0 + drop + local.get $this + local.set $12 global.get $~lib/memory/__stack_pointer - local.get $11 + local.get $12 i32.store offset=4 - local.get $11 - call $"~lib/map/KeyValue#get:value" - local.set $value - local.get $key - call $~lib/util/hash/HASH - local.set $hashCode + local.get $12 + local.get $this + local.set $12 + global.get $~lib/memory/__stack_pointer + local.get $12 + i32.store offset=8 + local.get $12 + call $"~lib/map/Map#get:entriesCount" + i32.const 1 + i32.add + call $"~lib/map/Map#set:entriesCount" local.get $this - local.set $11 + local.set $12 global.get $~lib/memory/__stack_pointer - local.get $11 + local.get $12 i32.store offset=4 - local.get $11 - local.get $key + local.get $12 + call $"~lib/map/Map#get:buckets" local.get $hashCode - call $"~lib/map/Map#find" - local.set $entry - local.get $entry - if - local.get $entry - local.get $value - call $"~lib/map/MapEntry#set:value" - i32.const 0 - drop - else - global.get $~lib/memory/__stack_pointer - local.get $this - local.set $11 - global.get $~lib/memory/__stack_pointer - local.get $11 - i32.store offset=4 - local.get $11 - call $"~lib/map/Map#get:entries" - local.tee $entries - i32.store offset=12 - local.get $entries - local.get $this - local.set $11 - global.get $~lib/memory/__stack_pointer - local.get $11 - i32.store offset=4 - local.get $11 - local.get $this - local.set $11 - global.get $~lib/memory/__stack_pointer - local.get $11 - i32.store offset=8 - local.get $11 - call $"~lib/map/Map#get:entriesOffset" - local.tee $8 - i32.const 1 - i32.add - call $"~lib/map/Map#set:entriesOffset" - local.get $8 - block $"~lib/map/ENTRY_SIZE|inlined.4" (result i32) - i32.const 8 - br $"~lib/map/ENTRY_SIZE|inlined.4" - end - i32.mul - i32.add - local.set $entry|9 - local.get $entry|9 - local.get $key - call $"~lib/map/MapEntry#set:key" - i32.const 0 - drop - local.get $entry|9 - local.get $value - call $"~lib/map/MapEntry#set:value" - i32.const 0 - drop - local.get $this - local.set $11 - global.get $~lib/memory/__stack_pointer - local.get $11 - i32.store offset=4 - local.get $11 - local.get $this - local.set $11 - global.get $~lib/memory/__stack_pointer - local.get $11 - i32.store offset=8 - local.get $11 - call $"~lib/map/Map#get:entriesCount" - i32.const 1 - i32.add - call $"~lib/map/Map#set:entriesCount" - local.get $this - local.set $11 - global.get $~lib/memory/__stack_pointer - local.get $11 - i32.store offset=4 - local.get $11 - call $"~lib/map/Map#get:buckets" - local.get $hashCode - local.get $this - local.set $11 - global.get $~lib/memory/__stack_pointer - local.get $11 - i32.store offset=4 - local.get $11 - call $"~lib/map/Map#get:bucketsMask" - i32.and - i32.const 4 - i32.mul - i32.add - local.set $bucketPtrBase - local.get $entry|9 - local.get $bucketPtrBase - i32.load - call $"~lib/map/MapEntry#set:taggedNext" - local.get $bucketPtrBase - local.get $entry|9 - i32.store - end - local.get $i - i32.const 1 + local.get $this + local.set $12 + global.get $~lib/memory/__stack_pointer + local.get $12 + i32.store offset=4 + local.get $12 + call $"~lib/map/Map#get:bucketsMask" + i32.and + i32.const 4 + i32.mul i32.add - local.set $i - br $for-loop|0 + local.set $bucketPtrBase + local.get $entry|10 + local.get $bucketPtrBase + i32.load + call $"~lib/map/MapEntry#set:taggedNext" + local.get $bucketPtrBase + local.get $entry|10 + i32.store end + local.get $i + i32.const 1 + i32.add + local.set $i + br $for-loop|0 end end local.get $this - local.set $11 + local.set $12 global.get $~lib/memory/__stack_pointer i32.const 16 i32.add global.set $~lib/memory/__stack_pointer - local.get $11 + local.get $12 ) (func $"~lib/array/Array<~lib/map/KeyValue>#get:length" (param $this i32) (result i32) (local $1 i32) @@ -9486,16 +9520,17 @@ return ) (func $"~lib/map/Map#constructor" (param $this i32) (param $initialEntries i32) (result i32) + (local $initialEntriesLength i32) (local $i i32) (local $key i32) (local $value i32) (local $hashCode i32) (local $entry i32) (local $entries i32) - (local $8 i32) - (local $entry|9 i32) + (local $9 i32) + (local $entry|10 i32) (local $bucketPtrBase i32) - (local $11 i32) + (local $12 i32) global.get $~lib/memory/__stack_pointer i32.const 16 i32.sub @@ -9518,38 +9553,38 @@ i32.store end local.get $this - local.set $11 + local.set $12 global.get $~lib/memory/__stack_pointer - local.get $11 + local.get $12 i32.store offset=4 - local.get $11 + local.get $12 i32.const 0 i32.const 4 i32.const 4 i32.mul call $~lib/arraybuffer/ArrayBuffer#constructor - local.set $11 + local.set $12 global.get $~lib/memory/__stack_pointer - local.get $11 + local.get $12 i32.store offset=8 - local.get $11 + local.get $12 call $"~lib/map/Map#set:buckets" local.get $this - local.set $11 + local.set $12 global.get $~lib/memory/__stack_pointer - local.get $11 + local.get $12 i32.store offset=4 - local.get $11 + local.get $12 i32.const 4 i32.const 1 i32.sub call $"~lib/map/Map#set:bucketsMask" local.get $this - local.set $11 + local.set $12 global.get $~lib/memory/__stack_pointer - local.get $11 + local.get $12 i32.store offset=4 - local.get $11 + local.get $12 i32.const 0 i32.const 4 block $"~lib/map/ENTRY_SIZE|inlined.5" (result i32) @@ -9558,256 +9593,267 @@ end i32.mul call $~lib/arraybuffer/ArrayBuffer#constructor - local.set $11 + local.set $12 global.get $~lib/memory/__stack_pointer - local.get $11 + local.get $12 i32.store offset=8 - local.get $11 + local.get $12 call $"~lib/map/Map#set:entries" local.get $this - local.set $11 + local.set $12 global.get $~lib/memory/__stack_pointer - local.get $11 + local.get $12 i32.store offset=4 - local.get $11 + local.get $12 i32.const 4 call $"~lib/map/Map#set:entriesCapacity" local.get $this - local.set $11 + local.set $12 global.get $~lib/memory/__stack_pointer - local.get $11 + local.get $12 i32.store offset=4 - local.get $11 + local.get $12 i32.const 0 call $"~lib/map/Map#set:entriesOffset" local.get $this - local.set $11 + local.set $12 global.get $~lib/memory/__stack_pointer - local.get $11 + local.get $12 i32.store offset=4 - local.get $11 + local.get $12 i32.const 0 call $"~lib/map/Map#set:entriesCount" local.get $initialEntries - if + i32.eqz + if (result i32) + i32.const 1 + else local.get $initialEntries - local.set $11 + local.set $12 global.get $~lib/memory/__stack_pointer - local.get $11 + local.get $12 i32.store offset=4 - local.get $11 + local.get $12 call $"~lib/array/Array<~lib/map/KeyValue>#get:length" + i32.eqz + end + if + local.get $this + local.set $12 + global.get $~lib/memory/__stack_pointer + i32.const 16 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $12 + return + end + local.get $initialEntries + local.set $12 + global.get $~lib/memory/__stack_pointer + local.get $12 + i32.store offset=4 + local.get $12 + call $"~lib/array/Array<~lib/map/KeyValue>#get:length" + local.set $initialEntriesLength + local.get $initialEntriesLength + local.get $this + local.set $12 + global.get $~lib/memory/__stack_pointer + local.get $12 + i32.store offset=4 + local.get $12 + call $"~lib/map/Map#get:entriesCapacity" + i32.ge_s + if local.get $this - local.set $11 + local.set $12 global.get $~lib/memory/__stack_pointer - local.get $11 + local.get $12 i32.store offset=4 - local.get $11 - call $"~lib/map/Map#get:entriesCapacity" - i32.ge_s + local.get $12 + local.get $initialEntriesLength + call $"~lib/map/Map#set:bucketsMask" + end + local.get $this + local.set $12 + global.get $~lib/memory/__stack_pointer + local.get $12 + i32.store offset=4 + local.get $12 + local.get $this + local.set $12 + global.get $~lib/memory/__stack_pointer + local.get $12 + i32.store offset=8 + local.get $12 + call $"~lib/map/Map#get:bucketsMask" + i32.const 1 + i32.shl + i32.const 1 + i32.or + call $"~lib/map/Map#rehash" + i32.const 0 + local.set $i + loop $for-loop|0 + local.get $i + local.get $initialEntriesLength + i32.lt_s if - local.get $this - local.set $11 + local.get $initialEntries + local.set $12 global.get $~lib/memory/__stack_pointer - local.get $11 + local.get $12 + i32.store offset=8 + local.get $12 + local.get $i + call $"~lib/array/Array<~lib/map/KeyValue>#__get" + local.set $12 + global.get $~lib/memory/__stack_pointer + local.get $12 i32.store offset=4 - local.get $11 + local.get $12 + call $"~lib/map/KeyValue#get:key" + local.set $key local.get $initialEntries - local.set $11 + local.set $12 global.get $~lib/memory/__stack_pointer - local.get $11 + local.get $12 i32.store offset=8 - local.get $11 - call $"~lib/array/Array<~lib/map/KeyValue>#get:length" - call $"~lib/map/Map#set:bucketsMask" - end - local.get $this - local.set $11 - global.get $~lib/memory/__stack_pointer - local.get $11 - i32.store offset=4 - local.get $11 - local.get $this - local.set $11 - global.get $~lib/memory/__stack_pointer - local.get $11 - i32.store offset=8 - local.get $11 - call $"~lib/map/Map#get:bucketsMask" - i32.const 1 - i32.shl - i32.const 1 - i32.or - call $"~lib/map/Map#rehash" - i32.const 0 - local.set $i - loop $for-loop|0 + local.get $12 local.get $i - local.get $initialEntries - local.set $11 + call $"~lib/array/Array<~lib/map/KeyValue>#__get" + local.set $12 global.get $~lib/memory/__stack_pointer - local.get $11 + local.get $12 i32.store offset=4 - local.get $11 - call $"~lib/array/Array<~lib/map/KeyValue>#get:length" - i32.lt_s + local.get $12 + call $"~lib/map/KeyValue#get:value" + local.set $value + local.get $key + call $~lib/util/hash/HASH + local.set $hashCode + local.get $this + local.set $12 + global.get $~lib/memory/__stack_pointer + local.get $12 + i32.store offset=4 + local.get $12 + local.get $key + local.get $hashCode + call $"~lib/map/Map#find" + local.set $entry + local.get $entry if - local.get $initialEntries - local.set $11 + local.get $entry + local.get $value + call $"~lib/map/MapEntry#set:value" + i32.const 0 + drop + else global.get $~lib/memory/__stack_pointer - local.get $11 - i32.store offset=8 - local.get $11 - local.get $i - call $"~lib/array/Array<~lib/map/KeyValue>#__get" - local.set $11 + local.get $this + local.set $12 + global.get $~lib/memory/__stack_pointer + local.get $12 + i32.store offset=4 + local.get $12 + call $"~lib/map/Map#get:entries" + local.tee $entries + i32.store offset=12 + local.get $entries + local.get $this + local.set $12 global.get $~lib/memory/__stack_pointer - local.get $11 + local.get $12 i32.store offset=4 - local.get $11 - call $"~lib/map/KeyValue#get:key" - local.set $key - local.get $initialEntries - local.set $11 + local.get $12 + local.get $this + local.set $12 global.get $~lib/memory/__stack_pointer - local.get $11 + local.get $12 i32.store offset=8 - local.get $11 - local.get $i - call $"~lib/array/Array<~lib/map/KeyValue>#__get" - local.set $11 + local.get $12 + call $"~lib/map/Map#get:entriesOffset" + local.tee $9 + i32.const 1 + i32.add + call $"~lib/map/Map#set:entriesOffset" + local.get $9 + block $"~lib/map/ENTRY_SIZE|inlined.4" (result i32) + i32.const 12 + br $"~lib/map/ENTRY_SIZE|inlined.4" + end + i32.mul + i32.add + local.set $entry|10 + local.get $entry|10 + local.get $key + call $"~lib/map/MapEntry#set:key" + i32.const 0 + drop + local.get $entry|10 + local.get $value + call $"~lib/map/MapEntry#set:value" + i32.const 0 + drop + local.get $this + local.set $12 global.get $~lib/memory/__stack_pointer - local.get $11 + local.get $12 i32.store offset=4 - local.get $11 - call $"~lib/map/KeyValue#get:value" - local.set $value - local.get $key - call $~lib/util/hash/HASH - local.set $hashCode + local.get $12 + local.get $this + local.set $12 + global.get $~lib/memory/__stack_pointer + local.get $12 + i32.store offset=8 + local.get $12 + call $"~lib/map/Map#get:entriesCount" + i32.const 1 + i32.add + call $"~lib/map/Map#set:entriesCount" local.get $this - local.set $11 + local.set $12 global.get $~lib/memory/__stack_pointer - local.get $11 + local.get $12 i32.store offset=4 - local.get $11 - local.get $key + local.get $12 + call $"~lib/map/Map#get:buckets" local.get $hashCode - call $"~lib/map/Map#find" - local.set $entry - local.get $entry - if - local.get $entry - local.get $value - call $"~lib/map/MapEntry#set:value" - i32.const 0 - drop - else - global.get $~lib/memory/__stack_pointer - local.get $this - local.set $11 - global.get $~lib/memory/__stack_pointer - local.get $11 - i32.store offset=4 - local.get $11 - call $"~lib/map/Map#get:entries" - local.tee $entries - i32.store offset=12 - local.get $entries - local.get $this - local.set $11 - global.get $~lib/memory/__stack_pointer - local.get $11 - i32.store offset=4 - local.get $11 - local.get $this - local.set $11 - global.get $~lib/memory/__stack_pointer - local.get $11 - i32.store offset=8 - local.get $11 - call $"~lib/map/Map#get:entriesOffset" - local.tee $8 - i32.const 1 - i32.add - call $"~lib/map/Map#set:entriesOffset" - local.get $8 - block $"~lib/map/ENTRY_SIZE|inlined.4" (result i32) - i32.const 12 - br $"~lib/map/ENTRY_SIZE|inlined.4" - end - i32.mul - i32.add - local.set $entry|9 - local.get $entry|9 - local.get $key - call $"~lib/map/MapEntry#set:key" - i32.const 0 - drop - local.get $entry|9 - local.get $value - call $"~lib/map/MapEntry#set:value" - i32.const 0 - drop - local.get $this - local.set $11 - global.get $~lib/memory/__stack_pointer - local.get $11 - i32.store offset=4 - local.get $11 - local.get $this - local.set $11 - global.get $~lib/memory/__stack_pointer - local.get $11 - i32.store offset=8 - local.get $11 - call $"~lib/map/Map#get:entriesCount" - i32.const 1 - i32.add - call $"~lib/map/Map#set:entriesCount" - local.get $this - local.set $11 - global.get $~lib/memory/__stack_pointer - local.get $11 - i32.store offset=4 - local.get $11 - call $"~lib/map/Map#get:buckets" - local.get $hashCode - local.get $this - local.set $11 - global.get $~lib/memory/__stack_pointer - local.get $11 - i32.store offset=4 - local.get $11 - call $"~lib/map/Map#get:bucketsMask" - i32.and - i32.const 4 - i32.mul - i32.add - local.set $bucketPtrBase - local.get $entry|9 - local.get $bucketPtrBase - i32.load - call $"~lib/map/MapEntry#set:taggedNext" - local.get $bucketPtrBase - local.get $entry|9 - i32.store - end - local.get $i - i32.const 1 + local.get $this + local.set $12 + global.get $~lib/memory/__stack_pointer + local.get $12 + i32.store offset=4 + local.get $12 + call $"~lib/map/Map#get:bucketsMask" + i32.and + i32.const 4 + i32.mul i32.add - local.set $i - br $for-loop|0 + local.set $bucketPtrBase + local.get $entry|10 + local.get $bucketPtrBase + i32.load + call $"~lib/map/MapEntry#set:taggedNext" + local.get $bucketPtrBase + local.get $entry|10 + i32.store end + local.get $i + i32.const 1 + i32.add + local.set $i + br $for-loop|0 end end local.get $this - local.set $11 + local.set $12 global.get $~lib/memory/__stack_pointer i32.const 16 i32.add global.set $~lib/memory/__stack_pointer - local.get $11 + local.get $12 ) (func $~lib/array/Array#get:length (param $this i32) (result i32) (local $1 i32) @@ -10745,6 +10791,7 @@ (local $15 i32) (local $k|16 i32) (local $17 i32) + (local $18 i32) global.get $~lib/memory/__stack_pointer i32.const 40 i32.sub @@ -10768,11 +10815,11 @@ i32.lt_s if local.get $map - local.set $17 + local.set $18 global.get $~lib/memory/__stack_pointer - local.get $17 + local.get $18 i32.store offset=4 - local.get $17 + local.get $18 local.get $k call $"~lib/map/Map#has" i32.eqz @@ -10786,11 +10833,11 @@ unreachable end local.get $map - local.set $17 + local.set $18 global.get $~lib/memory/__stack_pointer - local.get $17 + local.get $18 i32.store offset=4 - local.get $17 + local.get $18 local.get $k i32.const 10 local.get $k @@ -10798,11 +10845,11 @@ call $"~lib/map/Map#set" drop local.get $map - local.set $17 + local.set $18 global.get $~lib/memory/__stack_pointer - local.get $17 + local.get $18 i32.store offset=4 - local.get $17 + local.get $18 local.get $k call $"~lib/map/Map#has" i32.eqz @@ -10815,11 +10862,11 @@ unreachable end local.get $map - local.set $17 + local.set $18 global.get $~lib/memory/__stack_pointer - local.get $17 + local.get $18 i32.store offset=4 - local.get $17 + local.get $18 local.get $k call $"~lib/map/Map#get" i32.const 10 @@ -10843,11 +10890,11 @@ end end local.get $map - local.set $17 + local.set $18 global.get $~lib/memory/__stack_pointer - local.get $17 + local.get $18 i32.store offset=4 - local.get $17 + local.get $18 call $"~lib/map/Map#get:size" i32.const 100 i32.eq @@ -10868,11 +10915,11 @@ i32.lt_s if local.get $map - local.set $17 + local.set $18 global.get $~lib/memory/__stack_pointer - local.get $17 + local.get $18 i32.store offset=4 - local.get $17 + local.get $18 local.get $k|2 call $"~lib/map/Map#has" i32.eqz @@ -10885,11 +10932,11 @@ unreachable end local.get $map - local.set $17 + local.set $18 global.get $~lib/memory/__stack_pointer - local.get $17 + local.get $18 i32.store offset=4 - local.get $17 + local.get $18 local.get $k|2 call $"~lib/map/Map#get" i32.const 10 @@ -10906,11 +10953,11 @@ unreachable end local.get $map - local.set $17 + local.set $18 global.get $~lib/memory/__stack_pointer - local.get $17 + local.get $18 i32.store offset=4 - local.get $17 + local.get $18 local.get $k|2 i32.const 20 local.get $k|2 @@ -10918,11 +10965,11 @@ call $"~lib/map/Map#set" drop local.get $map - local.set $17 + local.set $18 global.get $~lib/memory/__stack_pointer - local.get $17 + local.get $18 i32.store offset=4 - local.get $17 + local.get $18 local.get $k|2 call $"~lib/map/Map#has" i32.eqz @@ -10935,11 +10982,11 @@ unreachable end local.get $map - local.set $17 + local.set $18 global.get $~lib/memory/__stack_pointer - local.get $17 + local.get $18 i32.store offset=4 - local.get $17 + local.get $18 local.get $k|2 call $"~lib/map/Map#get" i32.const 20 @@ -10963,11 +11010,11 @@ end end local.get $map - local.set $17 + local.set $18 global.get $~lib/memory/__stack_pointer - local.get $17 + local.get $18 i32.store offset=4 - local.get $17 + local.get $18 call $"~lib/map/Map#get:size" i32.const 100 i32.eq @@ -10982,21 +11029,21 @@ end global.get $~lib/memory/__stack_pointer local.get $map - local.set $17 + local.set $18 global.get $~lib/memory/__stack_pointer - local.get $17 + local.get $18 i32.store offset=4 - local.get $17 + local.get $18 call $"~lib/map/Map#keys" local.tee $keys i32.store offset=8 global.get $~lib/memory/__stack_pointer local.get $map - local.set $17 + local.set $18 global.get $~lib/memory/__stack_pointer - local.get $17 + local.get $18 i32.store offset=4 - local.get $17 + local.get $18 call $"~lib/map/Map#values" local.tee $vals i32.store offset=12 @@ -11017,38 +11064,38 @@ loop $for-loop|2 local.get $index local.get $keys - local.set $17 + local.set $18 global.get $~lib/memory/__stack_pointer - local.get $17 + local.get $18 i32.store offset=4 - local.get $17 + local.get $18 call $~lib/array/Array#get:length i32.lt_s if local.get $keys - local.set $17 + local.set $18 global.get $~lib/memory/__stack_pointer - local.get $17 + local.get $18 i32.store offset=4 - local.get $17 + local.get $18 local.get $index call $~lib/array/Array#__get local.set $key local.get $vals - local.set $17 + local.set $18 global.get $~lib/memory/__stack_pointer - local.get $17 + local.get $18 i32.store offset=4 - local.get $17 + local.get $18 local.get $index call $~lib/array/Array#__get local.set $value local.get $map - local.set $17 + local.set $18 global.get $~lib/memory/__stack_pointer - local.get $17 + local.get $18 i32.store offset=4 - local.get $17 + local.get $18 local.get $key call $"~lib/map/Map#has" i32.eqz @@ -11061,11 +11108,11 @@ unreachable end local.get $map - local.set $17 + local.set $18 global.get $~lib/memory/__stack_pointer - local.get $17 + local.get $18 i32.store offset=4 - local.get $17 + local.get $18 local.get $value i32.const 20 i32.sub @@ -11080,21 +11127,21 @@ unreachable end local.get $keyMap - local.set $17 + local.set $18 global.get $~lib/memory/__stack_pointer - local.get $17 + local.get $18 i32.store offset=4 - local.get $17 + local.get $18 local.get $key local.get $key call $"~lib/map/Map#set" drop local.get $valMap - local.set $17 + local.set $18 global.get $~lib/memory/__stack_pointer - local.get $17 + local.get $18 i32.store offset=4 - local.get $17 + local.get $18 local.get $value i32.const 20 i32.sub @@ -11111,11 +11158,11 @@ end end local.get $keyMap - local.set $17 + local.set $18 global.get $~lib/memory/__stack_pointer - local.get $17 + local.get $18 i32.store offset=4 - local.get $17 + local.get $18 call $"~lib/map/Map#get:size" i32.const 100 i32.eq @@ -11129,11 +11176,11 @@ unreachable end local.get $valMap - local.set $17 + local.set $18 global.get $~lib/memory/__stack_pointer - local.get $17 + local.get $18 i32.store offset=4 - local.get $17 + local.get $18 call $"~lib/map/Map#get:size" i32.const 100 i32.eq @@ -11154,11 +11201,11 @@ i32.lt_s if local.get $map - local.set $17 + local.set $18 global.get $~lib/memory/__stack_pointer - local.get $17 + local.get $18 i32.store offset=4 - local.get $17 + local.get $18 local.get $k|10 call $"~lib/map/Map#has" i32.eqz @@ -11171,11 +11218,11 @@ unreachable end local.get $map - local.set $17 + local.set $18 global.get $~lib/memory/__stack_pointer - local.get $17 + local.get $18 i32.store offset=4 - local.get $17 + local.get $18 local.get $k|10 call $"~lib/map/Map#get" i32.const 20 @@ -11192,20 +11239,20 @@ unreachable end local.get $map - local.set $17 + local.set $18 global.get $~lib/memory/__stack_pointer - local.get $17 + local.get $18 i32.store offset=4 - local.get $17 + local.get $18 local.get $k|10 call $"~lib/map/Map#delete" drop local.get $map - local.set $17 + local.set $18 global.get $~lib/memory/__stack_pointer - local.get $17 + local.get $18 i32.store offset=4 - local.get $17 + local.get $18 local.get $k|10 call $"~lib/map/Map#has" i32.eqz @@ -11226,11 +11273,11 @@ end end local.get $map - local.set $17 + local.set $18 global.get $~lib/memory/__stack_pointer - local.get $17 + local.get $18 i32.store offset=4 - local.get $17 + local.get $18 call $"~lib/map/Map#get:size" i32.const 50 i32.eq @@ -11251,11 +11298,11 @@ i32.lt_s if local.get $map - local.set $17 + local.set $18 global.get $~lib/memory/__stack_pointer - local.get $17 + local.get $18 i32.store offset=4 - local.get $17 + local.get $18 local.get $k|11 call $"~lib/map/Map#has" i32.eqz @@ -11269,11 +11316,11 @@ unreachable end local.get $map - local.set $17 + local.set $18 global.get $~lib/memory/__stack_pointer - local.get $17 + local.get $18 i32.store offset=4 - local.get $17 + local.get $18 local.get $k|11 i32.const 10 local.get $k|11 @@ -11281,11 +11328,11 @@ call $"~lib/map/Map#set" drop local.get $map - local.set $17 + local.set $18 global.get $~lib/memory/__stack_pointer - local.get $17 + local.get $18 i32.store offset=4 - local.get $17 + local.get $18 local.get $k|11 call $"~lib/map/Map#has" i32.eqz @@ -11298,20 +11345,20 @@ unreachable end local.get $map - local.set $17 + local.set $18 global.get $~lib/memory/__stack_pointer - local.get $17 + local.get $18 i32.store offset=4 - local.get $17 + local.get $18 local.get $k|11 call $"~lib/map/Map#delete" drop local.get $map - local.set $17 + local.set $18 global.get $~lib/memory/__stack_pointer - local.get $17 + local.get $18 i32.store offset=4 - local.get $17 + local.get $18 local.get $k|11 call $"~lib/map/Map#has" i32.eqz @@ -11332,11 +11379,11 @@ end end local.get $map - local.set $17 + local.set $18 global.get $~lib/memory/__stack_pointer - local.get $17 + local.get $18 i32.store offset=4 - local.get $17 + local.get $18 call $"~lib/map/Map#get:size" i32.const 50 i32.eq @@ -11350,18 +11397,18 @@ unreachable end local.get $map - local.set $17 + local.set $18 global.get $~lib/memory/__stack_pointer - local.get $17 + local.get $18 i32.store offset=4 - local.get $17 + local.get $18 call $"~lib/map/Map#clear" local.get $map - local.set $17 + local.set $18 global.get $~lib/memory/__stack_pointer - local.get $17 + local.get $18 i32.store offset=4 - local.get $17 + local.get $18 call $"~lib/map/Map#get:size" i32.const 0 i32.eq @@ -11390,40 +11437,40 @@ i32.lt_s if local.get $initialEntries - local.set $17 + local.set $18 global.get $~lib/memory/__stack_pointer - local.get $17 + local.get $18 i32.store offset=4 - local.get $17 + local.get $18 global.get $~lib/memory/__stack_pointer i32.const 0 call $"~lib/map/KeyValue#constructor" local.tee $15 i32.store offset=32 local.get $15 - local.set $17 + local.set $18 global.get $~lib/memory/__stack_pointer - local.get $17 + local.get $18 i32.store offset=36 - local.get $17 + local.get $18 local.get $k|14 call $"~lib/map/KeyValue#set:key" local.get $15 - local.set $17 + local.set $18 global.get $~lib/memory/__stack_pointer - local.get $17 + local.get $18 i32.store offset=36 - local.get $17 + local.get $18 i32.const 10 local.get $k|14 i32.add call $"~lib/map/KeyValue#set:value" local.get $15 - local.set $17 + local.set $18 global.get $~lib/memory/__stack_pointer - local.get $17 + local.get $18 i32.store offset=28 - local.get $17 + local.get $18 call $"~lib/array/Array<~lib/map/KeyValue>#push" drop local.get $k|14 @@ -11436,20 +11483,20 @@ global.get $~lib/memory/__stack_pointer i32.const 0 local.get $initialEntries - local.set $17 + local.set $18 global.get $~lib/memory/__stack_pointer - local.get $17 + local.get $18 i32.store offset=4 - local.get $17 + local.get $18 call $"~lib/map/Map#constructor" local.tee $map i32.store local.get $map - local.set $17 + local.set $18 global.get $~lib/memory/__stack_pointer - local.get $17 + local.get $18 i32.store offset=4 - local.get $17 + local.get $18 call $"~lib/map/Map#get:size" i32.const 100 i32.eq @@ -11457,7 +11504,7 @@ if i32.const 0 i32.const 720 - i32.const 74 + i32.const 75 i32.const 3 call $~lib/builtins/abort unreachable @@ -11470,28 +11517,28 @@ i32.lt_s if local.get $map - local.set $17 + local.set $18 global.get $~lib/memory/__stack_pointer - local.get $17 + local.get $18 i32.store offset=4 - local.get $17 + local.get $18 local.get $k|16 call $"~lib/map/Map#has" i32.eqz if i32.const 0 i32.const 720 - i32.const 76 + i32.const 77 i32.const 5 call $~lib/builtins/abort unreachable end local.get $map - local.set $17 + local.set $18 global.get $~lib/memory/__stack_pointer - local.get $17 + local.get $18 i32.store offset=4 - local.get $17 + local.get $18 local.get $k|16 call $"~lib/map/Map#get" i32.const 10 @@ -11502,26 +11549,26 @@ if i32.const 0 i32.const 720 - i32.const 77 + i32.const 78 i32.const 5 call $~lib/builtins/abort unreachable end local.get $map - local.set $17 + local.set $18 global.get $~lib/memory/__stack_pointer - local.get $17 + local.get $18 i32.store offset=4 - local.get $17 + local.get $18 local.get $k|16 call $"~lib/map/Map#delete" drop local.get $map - local.set $17 + local.set $18 global.get $~lib/memory/__stack_pointer - local.get $17 + local.get $18 i32.store offset=4 - local.get $17 + local.get $18 local.get $k|16 call $"~lib/map/Map#has" i32.eqz @@ -11529,7 +11576,7 @@ if i32.const 0 i32.const 720 - i32.const 79 + i32.const 80 i32.const 5 call $~lib/builtins/abort unreachable @@ -11542,11 +11589,44 @@ end end local.get $map - local.set $17 + local.set $18 + global.get $~lib/memory/__stack_pointer + local.get $18 + i32.store offset=4 + local.get $18 + call $"~lib/map/Map#get:size" + i32.const 0 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 720 + i32.const 82 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.const 0 + i32.const 2 + i32.const 6 + i32.const 912 + call $~lib/rt/__newArray + local.set $18 + global.get $~lib/memory/__stack_pointer + local.get $18 + i32.store offset=4 + local.get $18 + call $"~lib/map/Map#constructor" + local.tee $map + i32.store + local.get $map + local.set $18 global.get $~lib/memory/__stack_pointer - local.get $17 + local.get $18 i32.store offset=4 - local.get $17 + local.get $18 call $"~lib/map/Map#get:size" i32.const 0 i32.eq @@ -11554,7 +11634,7 @@ if i32.const 0 i32.const 720 - i32.const 81 + i32.const 85 i32.const 3 call $~lib/builtins/abort unreachable @@ -11941,16 +12021,17 @@ return ) (func $"~lib/map/Map#constructor" (param $this i32) (param $initialEntries i32) (result i32) + (local $initialEntriesLength i32) (local $i i32) (local $key i32) (local $value i32) (local $hashCode i32) (local $entry i32) (local $entries i32) - (local $8 i32) - (local $entry|9 i32) + (local $9 i32) + (local $entry|10 i32) (local $bucketPtrBase i32) - (local $11 i32) + (local $12 i32) global.get $~lib/memory/__stack_pointer i32.const 16 i32.sub @@ -11973,38 +12054,38 @@ i32.store end local.get $this - local.set $11 + local.set $12 global.get $~lib/memory/__stack_pointer - local.get $11 + local.get $12 i32.store offset=4 - local.get $11 + local.get $12 i32.const 0 i32.const 4 i32.const 4 i32.mul call $~lib/arraybuffer/ArrayBuffer#constructor - local.set $11 + local.set $12 global.get $~lib/memory/__stack_pointer - local.get $11 + local.get $12 i32.store offset=8 - local.get $11 + local.get $12 call $"~lib/map/Map#set:buckets" local.get $this - local.set $11 + local.set $12 global.get $~lib/memory/__stack_pointer - local.get $11 + local.get $12 i32.store offset=4 - local.get $11 + local.get $12 i32.const 4 i32.const 1 i32.sub call $"~lib/map/Map#set:bucketsMask" local.get $this - local.set $11 + local.set $12 global.get $~lib/memory/__stack_pointer - local.get $11 + local.get $12 i32.store offset=4 - local.get $11 + local.get $12 i32.const 0 i32.const 4 block $"~lib/map/ENTRY_SIZE|inlined.5" (result i32) @@ -12013,256 +12094,267 @@ end i32.mul call $~lib/arraybuffer/ArrayBuffer#constructor - local.set $11 + local.set $12 global.get $~lib/memory/__stack_pointer - local.get $11 + local.get $12 i32.store offset=8 - local.get $11 + local.get $12 call $"~lib/map/Map#set:entries" local.get $this - local.set $11 + local.set $12 global.get $~lib/memory/__stack_pointer - local.get $11 + local.get $12 i32.store offset=4 - local.get $11 + local.get $12 i32.const 4 call $"~lib/map/Map#set:entriesCapacity" local.get $this - local.set $11 + local.set $12 global.get $~lib/memory/__stack_pointer - local.get $11 + local.get $12 i32.store offset=4 - local.get $11 + local.get $12 i32.const 0 call $"~lib/map/Map#set:entriesOffset" local.get $this - local.set $11 + local.set $12 global.get $~lib/memory/__stack_pointer - local.get $11 + local.get $12 i32.store offset=4 - local.get $11 + local.get $12 i32.const 0 call $"~lib/map/Map#set:entriesCount" local.get $initialEntries - if + i32.eqz + if (result i32) + i32.const 1 + else local.get $initialEntries - local.set $11 + local.set $12 global.get $~lib/memory/__stack_pointer - local.get $11 + local.get $12 i32.store offset=4 - local.get $11 + local.get $12 call $"~lib/array/Array<~lib/map/KeyValue>#get:length" + i32.eqz + end + if local.get $this - local.set $11 + local.set $12 global.get $~lib/memory/__stack_pointer - local.get $11 + i32.const 16 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $12 + return + end + local.get $initialEntries + local.set $12 + global.get $~lib/memory/__stack_pointer + local.get $12 + i32.store offset=4 + local.get $12 + call $"~lib/array/Array<~lib/map/KeyValue>#get:length" + local.set $initialEntriesLength + local.get $initialEntriesLength + local.get $this + local.set $12 + global.get $~lib/memory/__stack_pointer + local.get $12 + i32.store offset=4 + local.get $12 + call $"~lib/map/Map#get:entriesCapacity" + i32.ge_s + if + local.get $this + local.set $12 + global.get $~lib/memory/__stack_pointer + local.get $12 i32.store offset=4 - local.get $11 - call $"~lib/map/Map#get:entriesCapacity" - i32.ge_s + local.get $12 + local.get $initialEntriesLength + call $"~lib/map/Map#set:bucketsMask" + end + local.get $this + local.set $12 + global.get $~lib/memory/__stack_pointer + local.get $12 + i32.store offset=4 + local.get $12 + local.get $this + local.set $12 + global.get $~lib/memory/__stack_pointer + local.get $12 + i32.store offset=8 + local.get $12 + call $"~lib/map/Map#get:bucketsMask" + i32.const 1 + i32.shl + i32.const 1 + i32.or + call $"~lib/map/Map#rehash" + i32.const 0 + local.set $i + loop $for-loop|0 + local.get $i + local.get $initialEntriesLength + i32.lt_s if - local.get $this - local.set $11 + local.get $initialEntries + local.set $12 global.get $~lib/memory/__stack_pointer - local.get $11 + local.get $12 + i32.store offset=8 + local.get $12 + local.get $i + call $"~lib/array/Array<~lib/map/KeyValue>#__get" + local.set $12 + global.get $~lib/memory/__stack_pointer + local.get $12 i32.store offset=4 - local.get $11 + local.get $12 + call $"~lib/map/KeyValue#get:key" + local.set $key local.get $initialEntries - local.set $11 + local.set $12 global.get $~lib/memory/__stack_pointer - local.get $11 + local.get $12 i32.store offset=8 - local.get $11 - call $"~lib/array/Array<~lib/map/KeyValue>#get:length" - call $"~lib/map/Map#set:bucketsMask" - end - local.get $this - local.set $11 - global.get $~lib/memory/__stack_pointer - local.get $11 - i32.store offset=4 - local.get $11 - local.get $this - local.set $11 - global.get $~lib/memory/__stack_pointer - local.get $11 - i32.store offset=8 - local.get $11 - call $"~lib/map/Map#get:bucketsMask" - i32.const 1 - i32.shl - i32.const 1 - i32.or - call $"~lib/map/Map#rehash" - i32.const 0 - local.set $i - loop $for-loop|0 + local.get $12 local.get $i - local.get $initialEntries - local.set $11 + call $"~lib/array/Array<~lib/map/KeyValue>#__get" + local.set $12 global.get $~lib/memory/__stack_pointer - local.get $11 + local.get $12 i32.store offset=4 - local.get $11 - call $"~lib/array/Array<~lib/map/KeyValue>#get:length" - i32.lt_s + local.get $12 + call $"~lib/map/KeyValue#get:value" + local.set $value + local.get $key + call $~lib/util/hash/HASH + local.set $hashCode + local.get $this + local.set $12 + global.get $~lib/memory/__stack_pointer + local.get $12 + i32.store offset=4 + local.get $12 + local.get $key + local.get $hashCode + call $"~lib/map/Map#find" + local.set $entry + local.get $entry if - local.get $initialEntries - local.set $11 + local.get $entry + local.get $value + call $"~lib/map/MapEntry#set:value" + i32.const 0 + drop + else global.get $~lib/memory/__stack_pointer - local.get $11 - i32.store offset=8 - local.get $11 - local.get $i - call $"~lib/array/Array<~lib/map/KeyValue>#__get" - local.set $11 + local.get $this + local.set $12 global.get $~lib/memory/__stack_pointer - local.get $11 + local.get $12 i32.store offset=4 - local.get $11 - call $"~lib/map/KeyValue#get:key" - local.set $key - local.get $initialEntries - local.set $11 + local.get $12 + call $"~lib/map/Map#get:entries" + local.tee $entries + i32.store offset=12 + local.get $entries + local.get $this + local.set $12 global.get $~lib/memory/__stack_pointer - local.get $11 + local.get $12 + i32.store offset=4 + local.get $12 + local.get $this + local.set $12 + global.get $~lib/memory/__stack_pointer + local.get $12 i32.store offset=8 - local.get $11 - local.get $i - call $"~lib/array/Array<~lib/map/KeyValue>#__get" - local.set $11 + local.get $12 + call $"~lib/map/Map#get:entriesOffset" + local.tee $9 + i32.const 1 + i32.add + call $"~lib/map/Map#set:entriesOffset" + local.get $9 + block $"~lib/map/ENTRY_SIZE|inlined.4" (result i32) + i32.const 12 + br $"~lib/map/ENTRY_SIZE|inlined.4" + end + i32.mul + i32.add + local.set $entry|10 + local.get $entry|10 + local.get $key + call $"~lib/map/MapEntry#set:key" + i32.const 0 + drop + local.get $entry|10 + local.get $value + call $"~lib/map/MapEntry#set:value" + i32.const 0 + drop + local.get $this + local.set $12 global.get $~lib/memory/__stack_pointer - local.get $11 + local.get $12 i32.store offset=4 - local.get $11 - call $"~lib/map/KeyValue#get:value" - local.set $value - local.get $key - call $~lib/util/hash/HASH - local.set $hashCode + local.get $12 local.get $this - local.set $11 + local.set $12 global.get $~lib/memory/__stack_pointer - local.get $11 + local.get $12 + i32.store offset=8 + local.get $12 + call $"~lib/map/Map#get:entriesCount" + i32.const 1 + i32.add + call $"~lib/map/Map#set:entriesCount" + local.get $this + local.set $12 + global.get $~lib/memory/__stack_pointer + local.get $12 i32.store offset=4 - local.get $11 - local.get $key + local.get $12 + call $"~lib/map/Map#get:buckets" local.get $hashCode - call $"~lib/map/Map#find" - local.set $entry - local.get $entry - if - local.get $entry - local.get $value - call $"~lib/map/MapEntry#set:value" - i32.const 0 - drop - else - global.get $~lib/memory/__stack_pointer - local.get $this - local.set $11 - global.get $~lib/memory/__stack_pointer - local.get $11 - i32.store offset=4 - local.get $11 - call $"~lib/map/Map#get:entries" - local.tee $entries - i32.store offset=12 - local.get $entries - local.get $this - local.set $11 - global.get $~lib/memory/__stack_pointer - local.get $11 - i32.store offset=4 - local.get $11 - local.get $this - local.set $11 - global.get $~lib/memory/__stack_pointer - local.get $11 - i32.store offset=8 - local.get $11 - call $"~lib/map/Map#get:entriesOffset" - local.tee $8 - i32.const 1 - i32.add - call $"~lib/map/Map#set:entriesOffset" - local.get $8 - block $"~lib/map/ENTRY_SIZE|inlined.4" (result i32) - i32.const 12 - br $"~lib/map/ENTRY_SIZE|inlined.4" - end - i32.mul - i32.add - local.set $entry|9 - local.get $entry|9 - local.get $key - call $"~lib/map/MapEntry#set:key" - i32.const 0 - drop - local.get $entry|9 - local.get $value - call $"~lib/map/MapEntry#set:value" - i32.const 0 - drop - local.get $this - local.set $11 - global.get $~lib/memory/__stack_pointer - local.get $11 - i32.store offset=4 - local.get $11 - local.get $this - local.set $11 - global.get $~lib/memory/__stack_pointer - local.get $11 - i32.store offset=8 - local.get $11 - call $"~lib/map/Map#get:entriesCount" - i32.const 1 - i32.add - call $"~lib/map/Map#set:entriesCount" - local.get $this - local.set $11 - global.get $~lib/memory/__stack_pointer - local.get $11 - i32.store offset=4 - local.get $11 - call $"~lib/map/Map#get:buckets" - local.get $hashCode - local.get $this - local.set $11 - global.get $~lib/memory/__stack_pointer - local.get $11 - i32.store offset=4 - local.get $11 - call $"~lib/map/Map#get:bucketsMask" - i32.and - i32.const 4 - i32.mul - i32.add - local.set $bucketPtrBase - local.get $entry|9 - local.get $bucketPtrBase - i32.load - call $"~lib/map/MapEntry#set:taggedNext" - local.get $bucketPtrBase - local.get $entry|9 - i32.store - end - local.get $i - i32.const 1 + local.get $this + local.set $12 + global.get $~lib/memory/__stack_pointer + local.get $12 + i32.store offset=4 + local.get $12 + call $"~lib/map/Map#get:bucketsMask" + i32.and + i32.const 4 + i32.mul i32.add - local.set $i - br $for-loop|0 + local.set $bucketPtrBase + local.get $entry|10 + local.get $bucketPtrBase + i32.load + call $"~lib/map/MapEntry#set:taggedNext" + local.get $bucketPtrBase + local.get $entry|10 + i32.store end + local.get $i + i32.const 1 + i32.add + local.set $i + br $for-loop|0 end end local.get $this - local.set $11 + local.set $12 global.get $~lib/memory/__stack_pointer i32.const 16 i32.add global.set $~lib/memory/__stack_pointer - local.get $11 + local.get $12 ) (func $"~lib/map/Map#has" (param $this i32) (param $key i32) (result i32) (local $2 i32) @@ -12523,7 +12615,7 @@ if i32.const 768 i32.const 832 - i32.const 146 + i32.const 147 i32.const 17 call $~lib/builtins/abort unreachable @@ -13381,16 +13473,17 @@ return ) (func $"~lib/map/Map#constructor" (param $this i32) (param $initialEntries i32) (result i32) + (local $initialEntriesLength i32) (local $i i32) (local $key i32) (local $value i32) (local $hashCode i32) (local $entry i32) (local $entries i32) - (local $8 i32) - (local $entry|9 i32) + (local $9 i32) + (local $entry|10 i32) (local $bucketPtrBase i32) - (local $11 i32) + (local $12 i32) global.get $~lib/memory/__stack_pointer i32.const 16 i32.sub @@ -13413,38 +13506,38 @@ i32.store end local.get $this - local.set $11 + local.set $12 global.get $~lib/memory/__stack_pointer - local.get $11 + local.get $12 i32.store offset=4 - local.get $11 + local.get $12 i32.const 0 i32.const 4 i32.const 4 i32.mul call $~lib/arraybuffer/ArrayBuffer#constructor - local.set $11 + local.set $12 global.get $~lib/memory/__stack_pointer - local.get $11 + local.get $12 i32.store offset=8 - local.get $11 + local.get $12 call $"~lib/map/Map#set:buckets" local.get $this - local.set $11 + local.set $12 global.get $~lib/memory/__stack_pointer - local.get $11 + local.get $12 i32.store offset=4 - local.get $11 + local.get $12 i32.const 4 i32.const 1 i32.sub call $"~lib/map/Map#set:bucketsMask" local.get $this - local.set $11 + local.set $12 global.get $~lib/memory/__stack_pointer - local.get $11 + local.get $12 i32.store offset=4 - local.get $11 + local.get $12 i32.const 0 i32.const 4 block $"~lib/map/ENTRY_SIZE|inlined.5" (result i32) @@ -13453,256 +13546,267 @@ end i32.mul call $~lib/arraybuffer/ArrayBuffer#constructor - local.set $11 + local.set $12 global.get $~lib/memory/__stack_pointer - local.get $11 + local.get $12 i32.store offset=8 - local.get $11 + local.get $12 call $"~lib/map/Map#set:entries" local.get $this - local.set $11 + local.set $12 global.get $~lib/memory/__stack_pointer - local.get $11 + local.get $12 i32.store offset=4 - local.get $11 + local.get $12 i32.const 4 call $"~lib/map/Map#set:entriesCapacity" local.get $this - local.set $11 + local.set $12 global.get $~lib/memory/__stack_pointer - local.get $11 + local.get $12 i32.store offset=4 - local.get $11 + local.get $12 i32.const 0 call $"~lib/map/Map#set:entriesOffset" local.get $this - local.set $11 + local.set $12 global.get $~lib/memory/__stack_pointer - local.get $11 + local.get $12 i32.store offset=4 - local.get $11 + local.get $12 i32.const 0 call $"~lib/map/Map#set:entriesCount" local.get $initialEntries - if + i32.eqz + if (result i32) + i32.const 1 + else local.get $initialEntries - local.set $11 + local.set $12 global.get $~lib/memory/__stack_pointer - local.get $11 + local.get $12 i32.store offset=4 - local.get $11 + local.get $12 call $"~lib/array/Array<~lib/map/KeyValue>#get:length" + i32.eqz + end + if + local.get $this + local.set $12 + global.get $~lib/memory/__stack_pointer + i32.const 16 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $12 + return + end + local.get $initialEntries + local.set $12 + global.get $~lib/memory/__stack_pointer + local.get $12 + i32.store offset=4 + local.get $12 + call $"~lib/array/Array<~lib/map/KeyValue>#get:length" + local.set $initialEntriesLength + local.get $initialEntriesLength + local.get $this + local.set $12 + global.get $~lib/memory/__stack_pointer + local.get $12 + i32.store offset=4 + local.get $12 + call $"~lib/map/Map#get:entriesCapacity" + i32.ge_s + if local.get $this - local.set $11 + local.set $12 global.get $~lib/memory/__stack_pointer - local.get $11 + local.get $12 i32.store offset=4 - local.get $11 - call $"~lib/map/Map#get:entriesCapacity" - i32.ge_s + local.get $12 + local.get $initialEntriesLength + call $"~lib/map/Map#set:bucketsMask" + end + local.get $this + local.set $12 + global.get $~lib/memory/__stack_pointer + local.get $12 + i32.store offset=4 + local.get $12 + local.get $this + local.set $12 + global.get $~lib/memory/__stack_pointer + local.get $12 + i32.store offset=8 + local.get $12 + call $"~lib/map/Map#get:bucketsMask" + i32.const 1 + i32.shl + i32.const 1 + i32.or + call $"~lib/map/Map#rehash" + i32.const 0 + local.set $i + loop $for-loop|0 + local.get $i + local.get $initialEntriesLength + i32.lt_s if - local.get $this - local.set $11 + local.get $initialEntries + local.set $12 global.get $~lib/memory/__stack_pointer - local.get $11 + local.get $12 + i32.store offset=8 + local.get $12 + local.get $i + call $"~lib/array/Array<~lib/map/KeyValue>#__get" + local.set $12 + global.get $~lib/memory/__stack_pointer + local.get $12 i32.store offset=4 - local.get $11 + local.get $12 + call $"~lib/map/KeyValue#get:key" + local.set $key local.get $initialEntries - local.set $11 + local.set $12 global.get $~lib/memory/__stack_pointer - local.get $11 + local.get $12 i32.store offset=8 - local.get $11 - call $"~lib/array/Array<~lib/map/KeyValue>#get:length" - call $"~lib/map/Map#set:bucketsMask" - end - local.get $this - local.set $11 - global.get $~lib/memory/__stack_pointer - local.get $11 - i32.store offset=4 - local.get $11 - local.get $this - local.set $11 - global.get $~lib/memory/__stack_pointer - local.get $11 - i32.store offset=8 - local.get $11 - call $"~lib/map/Map#get:bucketsMask" - i32.const 1 - i32.shl - i32.const 1 - i32.or - call $"~lib/map/Map#rehash" - i32.const 0 - local.set $i - loop $for-loop|0 + local.get $12 local.get $i - local.get $initialEntries - local.set $11 + call $"~lib/array/Array<~lib/map/KeyValue>#__get" + local.set $12 global.get $~lib/memory/__stack_pointer - local.get $11 + local.get $12 i32.store offset=4 - local.get $11 - call $"~lib/array/Array<~lib/map/KeyValue>#get:length" - i32.lt_s + local.get $12 + call $"~lib/map/KeyValue#get:value" + local.set $value + local.get $key + call $~lib/util/hash/HASH + local.set $hashCode + local.get $this + local.set $12 + global.get $~lib/memory/__stack_pointer + local.get $12 + i32.store offset=4 + local.get $12 + local.get $key + local.get $hashCode + call $"~lib/map/Map#find" + local.set $entry + local.get $entry if - local.get $initialEntries - local.set $11 + local.get $entry + local.get $value + call $"~lib/map/MapEntry#set:value" + i32.const 0 + drop + else global.get $~lib/memory/__stack_pointer - local.get $11 - i32.store offset=8 - local.get $11 - local.get $i - call $"~lib/array/Array<~lib/map/KeyValue>#__get" - local.set $11 + local.get $this + local.set $12 global.get $~lib/memory/__stack_pointer - local.get $11 + local.get $12 i32.store offset=4 - local.get $11 - call $"~lib/map/KeyValue#get:key" - local.set $key - local.get $initialEntries - local.set $11 + local.get $12 + call $"~lib/map/Map#get:entries" + local.tee $entries + i32.store offset=12 + local.get $entries + local.get $this + local.set $12 + global.get $~lib/memory/__stack_pointer + local.get $12 + i32.store offset=4 + local.get $12 + local.get $this + local.set $12 global.get $~lib/memory/__stack_pointer - local.get $11 + local.get $12 i32.store offset=8 - local.get $11 - local.get $i - call $"~lib/array/Array<~lib/map/KeyValue>#__get" - local.set $11 + local.get $12 + call $"~lib/map/Map#get:entriesOffset" + local.tee $9 + i32.const 1 + i32.add + call $"~lib/map/Map#set:entriesOffset" + local.get $9 + block $"~lib/map/ENTRY_SIZE|inlined.4" (result i32) + i32.const 8 + br $"~lib/map/ENTRY_SIZE|inlined.4" + end + i32.mul + i32.add + local.set $entry|10 + local.get $entry|10 + local.get $key + call $"~lib/map/MapEntry#set:key" + i32.const 0 + drop + local.get $entry|10 + local.get $value + call $"~lib/map/MapEntry#set:value" + i32.const 0 + drop + local.get $this + local.set $12 global.get $~lib/memory/__stack_pointer - local.get $11 + local.get $12 i32.store offset=4 - local.get $11 - call $"~lib/map/KeyValue#get:value" - local.set $value - local.get $key - call $~lib/util/hash/HASH - local.set $hashCode + local.get $12 local.get $this - local.set $11 + local.set $12 global.get $~lib/memory/__stack_pointer - local.get $11 + local.get $12 + i32.store offset=8 + local.get $12 + call $"~lib/map/Map#get:entriesCount" + i32.const 1 + i32.add + call $"~lib/map/Map#set:entriesCount" + local.get $this + local.set $12 + global.get $~lib/memory/__stack_pointer + local.get $12 i32.store offset=4 - local.get $11 - local.get $key + local.get $12 + call $"~lib/map/Map#get:buckets" local.get $hashCode - call $"~lib/map/Map#find" - local.set $entry - local.get $entry - if - local.get $entry - local.get $value - call $"~lib/map/MapEntry#set:value" - i32.const 0 - drop - else - global.get $~lib/memory/__stack_pointer - local.get $this - local.set $11 - global.get $~lib/memory/__stack_pointer - local.get $11 - i32.store offset=4 - local.get $11 - call $"~lib/map/Map#get:entries" - local.tee $entries - i32.store offset=12 - local.get $entries - local.get $this - local.set $11 - global.get $~lib/memory/__stack_pointer - local.get $11 - i32.store offset=4 - local.get $11 - local.get $this - local.set $11 - global.get $~lib/memory/__stack_pointer - local.get $11 - i32.store offset=8 - local.get $11 - call $"~lib/map/Map#get:entriesOffset" - local.tee $8 - i32.const 1 - i32.add - call $"~lib/map/Map#set:entriesOffset" - local.get $8 - block $"~lib/map/ENTRY_SIZE|inlined.4" (result i32) - i32.const 8 - br $"~lib/map/ENTRY_SIZE|inlined.4" - end - i32.mul - i32.add - local.set $entry|9 - local.get $entry|9 - local.get $key - call $"~lib/map/MapEntry#set:key" - i32.const 0 - drop - local.get $entry|9 - local.get $value - call $"~lib/map/MapEntry#set:value" - i32.const 0 - drop - local.get $this - local.set $11 - global.get $~lib/memory/__stack_pointer - local.get $11 - i32.store offset=4 - local.get $11 - local.get $this - local.set $11 - global.get $~lib/memory/__stack_pointer - local.get $11 - i32.store offset=8 - local.get $11 - call $"~lib/map/Map#get:entriesCount" - i32.const 1 - i32.add - call $"~lib/map/Map#set:entriesCount" - local.get $this - local.set $11 - global.get $~lib/memory/__stack_pointer - local.get $11 - i32.store offset=4 - local.get $11 - call $"~lib/map/Map#get:buckets" - local.get $hashCode - local.get $this - local.set $11 - global.get $~lib/memory/__stack_pointer - local.get $11 - i32.store offset=4 - local.get $11 - call $"~lib/map/Map#get:bucketsMask" - i32.and - i32.const 4 - i32.mul - i32.add - local.set $bucketPtrBase - local.get $entry|9 - local.get $bucketPtrBase - i32.load - call $"~lib/map/MapEntry#set:taggedNext" - local.get $bucketPtrBase - local.get $entry|9 - i32.store - end - local.get $i - i32.const 1 + local.get $this + local.set $12 + global.get $~lib/memory/__stack_pointer + local.get $12 + i32.store offset=4 + local.get $12 + call $"~lib/map/Map#get:bucketsMask" + i32.and + i32.const 4 + i32.mul i32.add - local.set $i - br $for-loop|0 + local.set $bucketPtrBase + local.get $entry|10 + local.get $bucketPtrBase + i32.load + call $"~lib/map/MapEntry#set:taggedNext" + local.get $bucketPtrBase + local.get $entry|10 + i32.store end + local.get $i + i32.const 1 + i32.add + local.set $i + br $for-loop|0 end end local.get $this - local.set $11 + local.set $12 global.get $~lib/memory/__stack_pointer i32.const 16 i32.add global.set $~lib/memory/__stack_pointer - local.get $11 + local.get $12 ) (func $~lib/array/Array#get:length (param $this i32) (result i32) (local $1 i32) @@ -14361,6 +14465,7 @@ (local $15 i32) (local $k|16 i32) (local $17 i32) + (local $18 i32) global.get $~lib/memory/__stack_pointer i32.const 40 i32.sub @@ -14384,11 +14489,11 @@ i32.lt_u if local.get $map - local.set $17 + local.set $18 global.get $~lib/memory/__stack_pointer - local.get $17 + local.get $18 i32.store offset=4 - local.get $17 + local.get $18 local.get $k call $"~lib/map/Map#has" i32.eqz @@ -14402,11 +14507,11 @@ unreachable end local.get $map - local.set $17 + local.set $18 global.get $~lib/memory/__stack_pointer - local.get $17 + local.get $18 i32.store offset=4 - local.get $17 + local.get $18 local.get $k i32.const 10 local.get $k @@ -14414,11 +14519,11 @@ call $"~lib/map/Map#set" drop local.get $map - local.set $17 + local.set $18 global.get $~lib/memory/__stack_pointer - local.get $17 + local.get $18 i32.store offset=4 - local.get $17 + local.get $18 local.get $k call $"~lib/map/Map#has" i32.eqz @@ -14431,11 +14536,11 @@ unreachable end local.get $map - local.set $17 + local.set $18 global.get $~lib/memory/__stack_pointer - local.get $17 + local.get $18 i32.store offset=4 - local.get $17 + local.get $18 local.get $k call $"~lib/map/Map#get" i32.const 10 @@ -14459,11 +14564,11 @@ end end local.get $map - local.set $17 + local.set $18 global.get $~lib/memory/__stack_pointer - local.get $17 + local.get $18 i32.store offset=4 - local.get $17 + local.get $18 call $"~lib/map/Map#get:size" i32.const 100 i32.eq @@ -14484,11 +14589,11 @@ i32.lt_u if local.get $map - local.set $17 + local.set $18 global.get $~lib/memory/__stack_pointer - local.get $17 + local.get $18 i32.store offset=4 - local.get $17 + local.get $18 local.get $k|2 call $"~lib/map/Map#has" i32.eqz @@ -14501,11 +14606,11 @@ unreachable end local.get $map - local.set $17 + local.set $18 global.get $~lib/memory/__stack_pointer - local.get $17 + local.get $18 i32.store offset=4 - local.get $17 + local.get $18 local.get $k|2 call $"~lib/map/Map#get" i32.const 10 @@ -14522,11 +14627,11 @@ unreachable end local.get $map - local.set $17 + local.set $18 global.get $~lib/memory/__stack_pointer - local.get $17 + local.get $18 i32.store offset=4 - local.get $17 + local.get $18 local.get $k|2 i32.const 20 local.get $k|2 @@ -14534,11 +14639,11 @@ call $"~lib/map/Map#set" drop local.get $map - local.set $17 + local.set $18 global.get $~lib/memory/__stack_pointer - local.get $17 + local.get $18 i32.store offset=4 - local.get $17 + local.get $18 local.get $k|2 call $"~lib/map/Map#has" i32.eqz @@ -14551,11 +14656,11 @@ unreachable end local.get $map - local.set $17 + local.set $18 global.get $~lib/memory/__stack_pointer - local.get $17 + local.get $18 i32.store offset=4 - local.get $17 + local.get $18 local.get $k|2 call $"~lib/map/Map#get" i32.const 20 @@ -14579,11 +14684,11 @@ end end local.get $map - local.set $17 + local.set $18 global.get $~lib/memory/__stack_pointer - local.get $17 + local.get $18 i32.store offset=4 - local.get $17 + local.get $18 call $"~lib/map/Map#get:size" i32.const 100 i32.eq @@ -14598,21 +14703,21 @@ end global.get $~lib/memory/__stack_pointer local.get $map - local.set $17 + local.set $18 global.get $~lib/memory/__stack_pointer - local.get $17 + local.get $18 i32.store offset=4 - local.get $17 + local.get $18 call $"~lib/map/Map#keys" local.tee $keys i32.store offset=8 global.get $~lib/memory/__stack_pointer local.get $map - local.set $17 + local.set $18 global.get $~lib/memory/__stack_pointer - local.get $17 + local.get $18 i32.store offset=4 - local.get $17 + local.get $18 call $"~lib/map/Map#values" local.tee $vals i32.store offset=12 @@ -14633,38 +14738,38 @@ loop $for-loop|2 local.get $index local.get $keys - local.set $17 + local.set $18 global.get $~lib/memory/__stack_pointer - local.get $17 + local.get $18 i32.store offset=4 - local.get $17 + local.get $18 call $~lib/array/Array#get:length i32.lt_s if local.get $keys - local.set $17 + local.set $18 global.get $~lib/memory/__stack_pointer - local.get $17 + local.get $18 i32.store offset=4 - local.get $17 + local.get $18 local.get $index call $~lib/array/Array#__get local.set $key local.get $vals - local.set $17 + local.set $18 global.get $~lib/memory/__stack_pointer - local.get $17 + local.get $18 i32.store offset=4 - local.get $17 + local.get $18 local.get $index call $~lib/array/Array#__get local.set $value local.get $map - local.set $17 + local.set $18 global.get $~lib/memory/__stack_pointer - local.get $17 + local.get $18 i32.store offset=4 - local.get $17 + local.get $18 local.get $key call $"~lib/map/Map#has" i32.eqz @@ -14677,11 +14782,11 @@ unreachable end local.get $map - local.set $17 + local.set $18 global.get $~lib/memory/__stack_pointer - local.get $17 + local.get $18 i32.store offset=4 - local.get $17 + local.get $18 local.get $value i32.const 20 i32.sub @@ -14696,21 +14801,21 @@ unreachable end local.get $keyMap - local.set $17 + local.set $18 global.get $~lib/memory/__stack_pointer - local.get $17 + local.get $18 i32.store offset=4 - local.get $17 + local.get $18 local.get $key local.get $key call $"~lib/map/Map#set" drop local.get $valMap - local.set $17 + local.set $18 global.get $~lib/memory/__stack_pointer - local.get $17 + local.get $18 i32.store offset=4 - local.get $17 + local.get $18 local.get $value i32.const 20 i32.sub @@ -14727,11 +14832,11 @@ end end local.get $keyMap - local.set $17 + local.set $18 global.get $~lib/memory/__stack_pointer - local.get $17 + local.get $18 i32.store offset=4 - local.get $17 + local.get $18 call $"~lib/map/Map#get:size" i32.const 100 i32.eq @@ -14745,11 +14850,11 @@ unreachable end local.get $valMap - local.set $17 + local.set $18 global.get $~lib/memory/__stack_pointer - local.get $17 + local.get $18 i32.store offset=4 - local.get $17 + local.get $18 call $"~lib/map/Map#get:size" i32.const 100 i32.eq @@ -14770,11 +14875,11 @@ i32.lt_u if local.get $map - local.set $17 + local.set $18 global.get $~lib/memory/__stack_pointer - local.get $17 + local.get $18 i32.store offset=4 - local.get $17 + local.get $18 local.get $k|10 call $"~lib/map/Map#has" i32.eqz @@ -14787,11 +14892,11 @@ unreachable end local.get $map - local.set $17 + local.set $18 global.get $~lib/memory/__stack_pointer - local.get $17 + local.get $18 i32.store offset=4 - local.get $17 + local.get $18 local.get $k|10 call $"~lib/map/Map#get" i32.const 20 @@ -14808,20 +14913,20 @@ unreachable end local.get $map - local.set $17 + local.set $18 global.get $~lib/memory/__stack_pointer - local.get $17 + local.get $18 i32.store offset=4 - local.get $17 + local.get $18 local.get $k|10 call $"~lib/map/Map#delete" drop local.get $map - local.set $17 + local.set $18 global.get $~lib/memory/__stack_pointer - local.get $17 + local.get $18 i32.store offset=4 - local.get $17 + local.get $18 local.get $k|10 call $"~lib/map/Map#has" i32.eqz @@ -14842,11 +14947,11 @@ end end local.get $map - local.set $17 + local.set $18 global.get $~lib/memory/__stack_pointer - local.get $17 + local.get $18 i32.store offset=4 - local.get $17 + local.get $18 call $"~lib/map/Map#get:size" i32.const 50 i32.eq @@ -14867,11 +14972,11 @@ i32.lt_u if local.get $map - local.set $17 + local.set $18 global.get $~lib/memory/__stack_pointer - local.get $17 + local.get $18 i32.store offset=4 - local.get $17 + local.get $18 local.get $k|11 call $"~lib/map/Map#has" i32.eqz @@ -14885,11 +14990,11 @@ unreachable end local.get $map - local.set $17 + local.set $18 global.get $~lib/memory/__stack_pointer - local.get $17 + local.get $18 i32.store offset=4 - local.get $17 + local.get $18 local.get $k|11 i32.const 10 local.get $k|11 @@ -14897,11 +15002,11 @@ call $"~lib/map/Map#set" drop local.get $map - local.set $17 + local.set $18 global.get $~lib/memory/__stack_pointer - local.get $17 + local.get $18 i32.store offset=4 - local.get $17 + local.get $18 local.get $k|11 call $"~lib/map/Map#has" i32.eqz @@ -14914,20 +15019,20 @@ unreachable end local.get $map - local.set $17 + local.set $18 global.get $~lib/memory/__stack_pointer - local.get $17 + local.get $18 i32.store offset=4 - local.get $17 + local.get $18 local.get $k|11 call $"~lib/map/Map#delete" drop local.get $map - local.set $17 + local.set $18 global.get $~lib/memory/__stack_pointer - local.get $17 + local.get $18 i32.store offset=4 - local.get $17 + local.get $18 local.get $k|11 call $"~lib/map/Map#has" i32.eqz @@ -14948,11 +15053,11 @@ end end local.get $map - local.set $17 + local.set $18 global.get $~lib/memory/__stack_pointer - local.get $17 + local.get $18 i32.store offset=4 - local.get $17 + local.get $18 call $"~lib/map/Map#get:size" i32.const 50 i32.eq @@ -14966,18 +15071,18 @@ unreachable end local.get $map - local.set $17 + local.set $18 global.get $~lib/memory/__stack_pointer - local.get $17 + local.get $18 i32.store offset=4 - local.get $17 + local.get $18 call $"~lib/map/Map#clear" local.get $map - local.set $17 + local.set $18 global.get $~lib/memory/__stack_pointer - local.get $17 + local.get $18 i32.store offset=4 - local.get $17 + local.get $18 call $"~lib/map/Map#get:size" i32.const 0 i32.eq @@ -14994,7 +15099,7 @@ i32.const 0 i32.const 2 i32.const 17 - i32.const 912 + i32.const 944 call $~lib/rt/__newArray local.tee $initialEntries i32.store offset=24 @@ -15006,40 +15111,40 @@ i32.lt_u if local.get $initialEntries - local.set $17 + local.set $18 global.get $~lib/memory/__stack_pointer - local.get $17 + local.get $18 i32.store offset=4 - local.get $17 + local.get $18 global.get $~lib/memory/__stack_pointer i32.const 0 call $"~lib/map/KeyValue#constructor" local.tee $15 i32.store offset=32 local.get $15 - local.set $17 + local.set $18 global.get $~lib/memory/__stack_pointer - local.get $17 + local.get $18 i32.store offset=36 - local.get $17 + local.get $18 local.get $k|14 call $"~lib/map/KeyValue#set:key" local.get $15 - local.set $17 + local.set $18 global.get $~lib/memory/__stack_pointer - local.get $17 + local.get $18 i32.store offset=36 - local.get $17 + local.get $18 i32.const 10 local.get $k|14 i32.add call $"~lib/map/KeyValue#set:value" local.get $15 - local.set $17 + local.set $18 global.get $~lib/memory/__stack_pointer - local.get $17 + local.get $18 i32.store offset=28 - local.get $17 + local.get $18 call $"~lib/array/Array<~lib/map/KeyValue>#push" drop local.get $k|14 @@ -15052,20 +15157,20 @@ global.get $~lib/memory/__stack_pointer i32.const 0 local.get $initialEntries - local.set $17 + local.set $18 global.get $~lib/memory/__stack_pointer - local.get $17 + local.get $18 i32.store offset=4 - local.get $17 + local.get $18 call $"~lib/map/Map#constructor" local.tee $map i32.store local.get $map - local.set $17 + local.set $18 global.get $~lib/memory/__stack_pointer - local.get $17 + local.get $18 i32.store offset=4 - local.get $17 + local.get $18 call $"~lib/map/Map#get:size" i32.const 100 i32.eq @@ -15073,7 +15178,7 @@ if i32.const 0 i32.const 720 - i32.const 74 + i32.const 75 i32.const 3 call $~lib/builtins/abort unreachable @@ -15086,28 +15191,28 @@ i32.lt_u if local.get $map - local.set $17 + local.set $18 global.get $~lib/memory/__stack_pointer - local.get $17 + local.get $18 i32.store offset=4 - local.get $17 + local.get $18 local.get $k|16 call $"~lib/map/Map#has" i32.eqz if i32.const 0 i32.const 720 - i32.const 76 + i32.const 77 i32.const 5 call $~lib/builtins/abort unreachable end local.get $map - local.set $17 + local.set $18 global.get $~lib/memory/__stack_pointer - local.get $17 + local.get $18 i32.store offset=4 - local.get $17 + local.get $18 local.get $k|16 call $"~lib/map/Map#get" i32.const 10 @@ -15118,26 +15223,26 @@ if i32.const 0 i32.const 720 - i32.const 77 + i32.const 78 i32.const 5 call $~lib/builtins/abort unreachable end local.get $map - local.set $17 + local.set $18 global.get $~lib/memory/__stack_pointer - local.get $17 + local.get $18 i32.store offset=4 - local.get $17 + local.get $18 local.get $k|16 call $"~lib/map/Map#delete" drop local.get $map - local.set $17 + local.set $18 global.get $~lib/memory/__stack_pointer - local.get $17 + local.get $18 i32.store offset=4 - local.get $17 + local.get $18 local.get $k|16 call $"~lib/map/Map#has" i32.eqz @@ -15145,7 +15250,7 @@ if i32.const 0 i32.const 720 - i32.const 79 + i32.const 80 i32.const 5 call $~lib/builtins/abort unreachable @@ -15158,11 +15263,11 @@ end end local.get $map - local.set $17 + local.set $18 global.get $~lib/memory/__stack_pointer - local.get $17 + local.get $18 i32.store offset=4 - local.get $17 + local.get $18 call $"~lib/map/Map#get:size" i32.const 0 i32.eq @@ -15170,7 +15275,40 @@ if i32.const 0 i32.const 720 - i32.const 81 + i32.const 82 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.const 0 + i32.const 2 + i32.const 17 + i32.const 976 + call $~lib/rt/__newArray + local.set $18 + global.get $~lib/memory/__stack_pointer + local.get $18 + i32.store offset=4 + local.get $18 + call $"~lib/map/Map#constructor" + local.tee $map + i32.store + local.get $map + local.set $18 + global.get $~lib/memory/__stack_pointer + local.get $18 + i32.store offset=4 + local.get $18 + call $"~lib/map/Map#get:size" + i32.const 0 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 720 + i32.const 85 i32.const 3 call $~lib/builtins/abort unreachable @@ -15555,16 +15693,17 @@ return ) (func $"~lib/map/Map#constructor" (param $this i32) (param $initialEntries i32) (result i32) + (local $initialEntriesLength i32) (local $i i32) (local $key i32) (local $value i32) (local $hashCode i32) (local $entry i32) (local $entries i32) - (local $8 i32) - (local $entry|9 i32) + (local $9 i32) + (local $entry|10 i32) (local $bucketPtrBase i32) - (local $11 i32) + (local $12 i32) global.get $~lib/memory/__stack_pointer i32.const 16 i32.sub @@ -15587,38 +15726,38 @@ i32.store end local.get $this - local.set $11 + local.set $12 global.get $~lib/memory/__stack_pointer - local.get $11 + local.get $12 i32.store offset=4 - local.get $11 + local.get $12 i32.const 0 i32.const 4 i32.const 4 i32.mul call $~lib/arraybuffer/ArrayBuffer#constructor - local.set $11 + local.set $12 global.get $~lib/memory/__stack_pointer - local.get $11 + local.get $12 i32.store offset=8 - local.get $11 + local.get $12 call $"~lib/map/Map#set:buckets" local.get $this - local.set $11 + local.set $12 global.get $~lib/memory/__stack_pointer - local.get $11 + local.get $12 i32.store offset=4 - local.get $11 + local.get $12 i32.const 4 i32.const 1 i32.sub call $"~lib/map/Map#set:bucketsMask" local.get $this - local.set $11 + local.set $12 global.get $~lib/memory/__stack_pointer - local.get $11 + local.get $12 i32.store offset=4 - local.get $11 + local.get $12 i32.const 0 i32.const 4 block $"~lib/map/ENTRY_SIZE|inlined.5" (result i32) @@ -15627,256 +15766,267 @@ end i32.mul call $~lib/arraybuffer/ArrayBuffer#constructor - local.set $11 + local.set $12 global.get $~lib/memory/__stack_pointer - local.get $11 + local.get $12 i32.store offset=8 - local.get $11 + local.get $12 call $"~lib/map/Map#set:entries" local.get $this - local.set $11 + local.set $12 global.get $~lib/memory/__stack_pointer - local.get $11 + local.get $12 i32.store offset=4 - local.get $11 + local.get $12 i32.const 4 call $"~lib/map/Map#set:entriesCapacity" local.get $this - local.set $11 + local.set $12 global.get $~lib/memory/__stack_pointer - local.get $11 + local.get $12 i32.store offset=4 - local.get $11 + local.get $12 i32.const 0 call $"~lib/map/Map#set:entriesOffset" local.get $this - local.set $11 + local.set $12 global.get $~lib/memory/__stack_pointer - local.get $11 + local.get $12 i32.store offset=4 - local.get $11 + local.get $12 i32.const 0 call $"~lib/map/Map#set:entriesCount" local.get $initialEntries - if + i32.eqz + if (result i32) + i32.const 1 + else local.get $initialEntries - local.set $11 + local.set $12 global.get $~lib/memory/__stack_pointer - local.get $11 + local.get $12 i32.store offset=4 - local.get $11 + local.get $12 call $"~lib/array/Array<~lib/map/KeyValue>#get:length" + i32.eqz + end + if local.get $this - local.set $11 + local.set $12 global.get $~lib/memory/__stack_pointer - local.get $11 + i32.const 16 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $12 + return + end + local.get $initialEntries + local.set $12 + global.get $~lib/memory/__stack_pointer + local.get $12 + i32.store offset=4 + local.get $12 + call $"~lib/array/Array<~lib/map/KeyValue>#get:length" + local.set $initialEntriesLength + local.get $initialEntriesLength + local.get $this + local.set $12 + global.get $~lib/memory/__stack_pointer + local.get $12 + i32.store offset=4 + local.get $12 + call $"~lib/map/Map#get:entriesCapacity" + i32.ge_s + if + local.get $this + local.set $12 + global.get $~lib/memory/__stack_pointer + local.get $12 i32.store offset=4 - local.get $11 - call $"~lib/map/Map#get:entriesCapacity" - i32.ge_s + local.get $12 + local.get $initialEntriesLength + call $"~lib/map/Map#set:bucketsMask" + end + local.get $this + local.set $12 + global.get $~lib/memory/__stack_pointer + local.get $12 + i32.store offset=4 + local.get $12 + local.get $this + local.set $12 + global.get $~lib/memory/__stack_pointer + local.get $12 + i32.store offset=8 + local.get $12 + call $"~lib/map/Map#get:bucketsMask" + i32.const 1 + i32.shl + i32.const 1 + i32.or + call $"~lib/map/Map#rehash" + i32.const 0 + local.set $i + loop $for-loop|0 + local.get $i + local.get $initialEntriesLength + i32.lt_s if - local.get $this - local.set $11 + local.get $initialEntries + local.set $12 global.get $~lib/memory/__stack_pointer - local.get $11 + local.get $12 + i32.store offset=8 + local.get $12 + local.get $i + call $"~lib/array/Array<~lib/map/KeyValue>#__get" + local.set $12 + global.get $~lib/memory/__stack_pointer + local.get $12 i32.store offset=4 - local.get $11 + local.get $12 + call $"~lib/map/KeyValue#get:key" + local.set $key local.get $initialEntries - local.set $11 + local.set $12 global.get $~lib/memory/__stack_pointer - local.get $11 + local.get $12 i32.store offset=8 - local.get $11 - call $"~lib/array/Array<~lib/map/KeyValue>#get:length" - call $"~lib/map/Map#set:bucketsMask" - end - local.get $this - local.set $11 - global.get $~lib/memory/__stack_pointer - local.get $11 - i32.store offset=4 - local.get $11 - local.get $this - local.set $11 - global.get $~lib/memory/__stack_pointer - local.get $11 - i32.store offset=8 - local.get $11 - call $"~lib/map/Map#get:bucketsMask" - i32.const 1 - i32.shl - i32.const 1 - i32.or - call $"~lib/map/Map#rehash" - i32.const 0 - local.set $i - loop $for-loop|0 + local.get $12 local.get $i - local.get $initialEntries - local.set $11 + call $"~lib/array/Array<~lib/map/KeyValue>#__get" + local.set $12 global.get $~lib/memory/__stack_pointer - local.get $11 + local.get $12 i32.store offset=4 - local.get $11 - call $"~lib/array/Array<~lib/map/KeyValue>#get:length" - i32.lt_s + local.get $12 + call $"~lib/map/KeyValue#get:value" + local.set $value + local.get $key + call $~lib/util/hash/HASH + local.set $hashCode + local.get $this + local.set $12 + global.get $~lib/memory/__stack_pointer + local.get $12 + i32.store offset=4 + local.get $12 + local.get $key + local.get $hashCode + call $"~lib/map/Map#find" + local.set $entry + local.get $entry if - local.get $initialEntries - local.set $11 + local.get $entry + local.get $value + call $"~lib/map/MapEntry#set:value" + i32.const 0 + drop + else global.get $~lib/memory/__stack_pointer - local.get $11 - i32.store offset=8 - local.get $11 - local.get $i - call $"~lib/array/Array<~lib/map/KeyValue>#__get" - local.set $11 + local.get $this + local.set $12 global.get $~lib/memory/__stack_pointer - local.get $11 + local.get $12 i32.store offset=4 - local.get $11 - call $"~lib/map/KeyValue#get:key" - local.set $key - local.get $initialEntries - local.set $11 + local.get $12 + call $"~lib/map/Map#get:entries" + local.tee $entries + i32.store offset=12 + local.get $entries + local.get $this + local.set $12 global.get $~lib/memory/__stack_pointer - local.get $11 + local.get $12 + i32.store offset=4 + local.get $12 + local.get $this + local.set $12 + global.get $~lib/memory/__stack_pointer + local.get $12 i32.store offset=8 - local.get $11 - local.get $i - call $"~lib/array/Array<~lib/map/KeyValue>#__get" - local.set $11 + local.get $12 + call $"~lib/map/Map#get:entriesOffset" + local.tee $9 + i32.const 1 + i32.add + call $"~lib/map/Map#set:entriesOffset" + local.get $9 + block $"~lib/map/ENTRY_SIZE|inlined.4" (result i32) + i32.const 12 + br $"~lib/map/ENTRY_SIZE|inlined.4" + end + i32.mul + i32.add + local.set $entry|10 + local.get $entry|10 + local.get $key + call $"~lib/map/MapEntry#set:key" + i32.const 0 + drop + local.get $entry|10 + local.get $value + call $"~lib/map/MapEntry#set:value" + i32.const 0 + drop + local.get $this + local.set $12 global.get $~lib/memory/__stack_pointer - local.get $11 + local.get $12 i32.store offset=4 - local.get $11 - call $"~lib/map/KeyValue#get:value" - local.set $value - local.get $key - call $~lib/util/hash/HASH - local.set $hashCode + local.get $12 local.get $this - local.set $11 + local.set $12 global.get $~lib/memory/__stack_pointer - local.get $11 + local.get $12 + i32.store offset=8 + local.get $12 + call $"~lib/map/Map#get:entriesCount" + i32.const 1 + i32.add + call $"~lib/map/Map#set:entriesCount" + local.get $this + local.set $12 + global.get $~lib/memory/__stack_pointer + local.get $12 i32.store offset=4 - local.get $11 - local.get $key + local.get $12 + call $"~lib/map/Map#get:buckets" local.get $hashCode - call $"~lib/map/Map#find" - local.set $entry - local.get $entry - if - local.get $entry - local.get $value - call $"~lib/map/MapEntry#set:value" - i32.const 0 - drop - else - global.get $~lib/memory/__stack_pointer - local.get $this - local.set $11 - global.get $~lib/memory/__stack_pointer - local.get $11 - i32.store offset=4 - local.get $11 - call $"~lib/map/Map#get:entries" - local.tee $entries - i32.store offset=12 - local.get $entries - local.get $this - local.set $11 - global.get $~lib/memory/__stack_pointer - local.get $11 - i32.store offset=4 - local.get $11 - local.get $this - local.set $11 - global.get $~lib/memory/__stack_pointer - local.get $11 - i32.store offset=8 - local.get $11 - call $"~lib/map/Map#get:entriesOffset" - local.tee $8 - i32.const 1 - i32.add - call $"~lib/map/Map#set:entriesOffset" - local.get $8 - block $"~lib/map/ENTRY_SIZE|inlined.4" (result i32) - i32.const 12 - br $"~lib/map/ENTRY_SIZE|inlined.4" - end - i32.mul - i32.add - local.set $entry|9 - local.get $entry|9 - local.get $key - call $"~lib/map/MapEntry#set:key" - i32.const 0 - drop - local.get $entry|9 - local.get $value - call $"~lib/map/MapEntry#set:value" - i32.const 0 - drop - local.get $this - local.set $11 - global.get $~lib/memory/__stack_pointer - local.get $11 - i32.store offset=4 - local.get $11 - local.get $this - local.set $11 - global.get $~lib/memory/__stack_pointer - local.get $11 - i32.store offset=8 - local.get $11 - call $"~lib/map/Map#get:entriesCount" - i32.const 1 - i32.add - call $"~lib/map/Map#set:entriesCount" - local.get $this - local.set $11 - global.get $~lib/memory/__stack_pointer - local.get $11 - i32.store offset=4 - local.get $11 - call $"~lib/map/Map#get:buckets" - local.get $hashCode - local.get $this - local.set $11 - global.get $~lib/memory/__stack_pointer - local.get $11 - i32.store offset=4 - local.get $11 - call $"~lib/map/Map#get:bucketsMask" - i32.and - i32.const 4 - i32.mul - i32.add - local.set $bucketPtrBase - local.get $entry|9 - local.get $bucketPtrBase - i32.load - call $"~lib/map/MapEntry#set:taggedNext" - local.get $bucketPtrBase - local.get $entry|9 - i32.store - end - local.get $i - i32.const 1 + local.get $this + local.set $12 + global.get $~lib/memory/__stack_pointer + local.get $12 + i32.store offset=4 + local.get $12 + call $"~lib/map/Map#get:bucketsMask" + i32.and + i32.const 4 + i32.mul i32.add - local.set $i - br $for-loop|0 + local.set $bucketPtrBase + local.get $entry|10 + local.get $bucketPtrBase + i32.load + call $"~lib/map/MapEntry#set:taggedNext" + local.get $bucketPtrBase + local.get $entry|10 + i32.store end + local.get $i + i32.const 1 + i32.add + local.set $i + br $for-loop|0 end end local.get $this - local.set $11 + local.set $12 global.get $~lib/memory/__stack_pointer i32.const 16 i32.add global.set $~lib/memory/__stack_pointer - local.get $11 + local.get $12 ) (func $"~lib/map/Map#has" (param $this i32) (param $key i32) (result i32) (local $2 i32) @@ -16137,7 +16287,7 @@ if i32.const 768 i32.const 832 - i32.const 146 + i32.const 147 i32.const 17 call $~lib/builtins/abort unreachable @@ -16993,16 +17143,17 @@ return ) (func $"~lib/map/Map#constructor" (param $this i32) (param $initialEntries i32) (result i32) + (local $initialEntriesLength i32) (local $i i32) (local $key i32) (local $value i32) (local $hashCode i32) (local $entry i32) (local $entries i32) - (local $8 i32) - (local $entry|9 i32) + (local $9 i32) + (local $entry|10 i32) (local $bucketPtrBase i32) - (local $11 i32) + (local $12 i32) global.get $~lib/memory/__stack_pointer i32.const 16 i32.sub @@ -17025,38 +17176,38 @@ i32.store end local.get $this - local.set $11 + local.set $12 global.get $~lib/memory/__stack_pointer - local.get $11 + local.get $12 i32.store offset=4 - local.get $11 + local.get $12 i32.const 0 i32.const 4 i32.const 4 i32.mul call $~lib/arraybuffer/ArrayBuffer#constructor - local.set $11 + local.set $12 global.get $~lib/memory/__stack_pointer - local.get $11 + local.get $12 i32.store offset=8 - local.get $11 + local.get $12 call $"~lib/map/Map#set:buckets" local.get $this - local.set $11 + local.set $12 global.get $~lib/memory/__stack_pointer - local.get $11 + local.get $12 i32.store offset=4 - local.get $11 + local.get $12 i32.const 4 i32.const 1 i32.sub call $"~lib/map/Map#set:bucketsMask" local.get $this - local.set $11 + local.set $12 global.get $~lib/memory/__stack_pointer - local.get $11 + local.get $12 i32.store offset=4 - local.get $11 + local.get $12 i32.const 0 i32.const 4 block $"~lib/map/ENTRY_SIZE|inlined.5" (result i32) @@ -17065,256 +17216,267 @@ end i32.mul call $~lib/arraybuffer/ArrayBuffer#constructor - local.set $11 + local.set $12 global.get $~lib/memory/__stack_pointer - local.get $11 + local.get $12 i32.store offset=8 - local.get $11 + local.get $12 call $"~lib/map/Map#set:entries" local.get $this - local.set $11 + local.set $12 global.get $~lib/memory/__stack_pointer - local.get $11 + local.get $12 i32.store offset=4 - local.get $11 + local.get $12 i32.const 4 call $"~lib/map/Map#set:entriesCapacity" local.get $this - local.set $11 + local.set $12 global.get $~lib/memory/__stack_pointer - local.get $11 + local.get $12 i32.store offset=4 - local.get $11 + local.get $12 i32.const 0 call $"~lib/map/Map#set:entriesOffset" local.get $this - local.set $11 + local.set $12 global.get $~lib/memory/__stack_pointer - local.get $11 + local.get $12 i32.store offset=4 - local.get $11 + local.get $12 i32.const 0 call $"~lib/map/Map#set:entriesCount" local.get $initialEntries - if + i32.eqz + if (result i32) + i32.const 1 + else local.get $initialEntries - local.set $11 + local.set $12 global.get $~lib/memory/__stack_pointer - local.get $11 + local.get $12 i32.store offset=4 - local.get $11 + local.get $12 call $"~lib/array/Array<~lib/map/KeyValue>#get:length" + i32.eqz + end + if local.get $this - local.set $11 + local.set $12 global.get $~lib/memory/__stack_pointer - local.get $11 + i32.const 16 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $12 + return + end + local.get $initialEntries + local.set $12 + global.get $~lib/memory/__stack_pointer + local.get $12 + i32.store offset=4 + local.get $12 + call $"~lib/array/Array<~lib/map/KeyValue>#get:length" + local.set $initialEntriesLength + local.get $initialEntriesLength + local.get $this + local.set $12 + global.get $~lib/memory/__stack_pointer + local.get $12 + i32.store offset=4 + local.get $12 + call $"~lib/map/Map#get:entriesCapacity" + i32.ge_s + if + local.get $this + local.set $12 + global.get $~lib/memory/__stack_pointer + local.get $12 i32.store offset=4 - local.get $11 - call $"~lib/map/Map#get:entriesCapacity" - i32.ge_s + local.get $12 + local.get $initialEntriesLength + call $"~lib/map/Map#set:bucketsMask" + end + local.get $this + local.set $12 + global.get $~lib/memory/__stack_pointer + local.get $12 + i32.store offset=4 + local.get $12 + local.get $this + local.set $12 + global.get $~lib/memory/__stack_pointer + local.get $12 + i32.store offset=8 + local.get $12 + call $"~lib/map/Map#get:bucketsMask" + i32.const 1 + i32.shl + i32.const 1 + i32.or + call $"~lib/map/Map#rehash" + i32.const 0 + local.set $i + loop $for-loop|0 + local.get $i + local.get $initialEntriesLength + i32.lt_s if - local.get $this - local.set $11 + local.get $initialEntries + local.set $12 global.get $~lib/memory/__stack_pointer - local.get $11 + local.get $12 + i32.store offset=8 + local.get $12 + local.get $i + call $"~lib/array/Array<~lib/map/KeyValue>#__get" + local.set $12 + global.get $~lib/memory/__stack_pointer + local.get $12 i32.store offset=4 - local.get $11 + local.get $12 + call $"~lib/map/KeyValue#get:key" + local.set $key local.get $initialEntries - local.set $11 + local.set $12 global.get $~lib/memory/__stack_pointer - local.get $11 + local.get $12 i32.store offset=8 - local.get $11 - call $"~lib/array/Array<~lib/map/KeyValue>#get:length" - call $"~lib/map/Map#set:bucketsMask" - end - local.get $this - local.set $11 - global.get $~lib/memory/__stack_pointer - local.get $11 - i32.store offset=4 - local.get $11 - local.get $this - local.set $11 - global.get $~lib/memory/__stack_pointer - local.get $11 - i32.store offset=8 - local.get $11 - call $"~lib/map/Map#get:bucketsMask" - i32.const 1 - i32.shl - i32.const 1 - i32.or - call $"~lib/map/Map#rehash" - i32.const 0 - local.set $i - loop $for-loop|0 + local.get $12 local.get $i - local.get $initialEntries - local.set $11 + call $"~lib/array/Array<~lib/map/KeyValue>#__get" + local.set $12 global.get $~lib/memory/__stack_pointer - local.get $11 + local.get $12 i32.store offset=4 - local.get $11 - call $"~lib/array/Array<~lib/map/KeyValue>#get:length" - i32.lt_s + local.get $12 + call $"~lib/map/KeyValue#get:value" + local.set $value + local.get $key + call $~lib/util/hash/HASH + local.set $hashCode + local.get $this + local.set $12 + global.get $~lib/memory/__stack_pointer + local.get $12 + i32.store offset=4 + local.get $12 + local.get $key + local.get $hashCode + call $"~lib/map/Map#find" + local.set $entry + local.get $entry if - local.get $initialEntries - local.set $11 + local.get $entry + local.get $value + call $"~lib/map/MapEntry#set:value" + i32.const 0 + drop + else global.get $~lib/memory/__stack_pointer - local.get $11 - i32.store offset=8 - local.get $11 - local.get $i - call $"~lib/array/Array<~lib/map/KeyValue>#__get" - local.set $11 + local.get $this + local.set $12 global.get $~lib/memory/__stack_pointer - local.get $11 + local.get $12 i32.store offset=4 - local.get $11 - call $"~lib/map/KeyValue#get:key" - local.set $key - local.get $initialEntries - local.set $11 + local.get $12 + call $"~lib/map/Map#get:entries" + local.tee $entries + i32.store offset=12 + local.get $entries + local.get $this + local.set $12 + global.get $~lib/memory/__stack_pointer + local.get $12 + i32.store offset=4 + local.get $12 + local.get $this + local.set $12 global.get $~lib/memory/__stack_pointer - local.get $11 + local.get $12 i32.store offset=8 - local.get $11 - local.get $i - call $"~lib/array/Array<~lib/map/KeyValue>#__get" - local.set $11 + local.get $12 + call $"~lib/map/Map#get:entriesOffset" + local.tee $9 + i32.const 1 + i32.add + call $"~lib/map/Map#set:entriesOffset" + local.get $9 + block $"~lib/map/ENTRY_SIZE|inlined.4" (result i32) + i32.const 8 + br $"~lib/map/ENTRY_SIZE|inlined.4" + end + i32.mul + i32.add + local.set $entry|10 + local.get $entry|10 + local.get $key + call $"~lib/map/MapEntry#set:key" + i32.const 0 + drop + local.get $entry|10 + local.get $value + call $"~lib/map/MapEntry#set:value" + i32.const 0 + drop + local.get $this + local.set $12 global.get $~lib/memory/__stack_pointer - local.get $11 + local.get $12 i32.store offset=4 - local.get $11 - call $"~lib/map/KeyValue#get:value" - local.set $value - local.get $key - call $~lib/util/hash/HASH - local.set $hashCode + local.get $12 + local.get $this + local.set $12 + global.get $~lib/memory/__stack_pointer + local.get $12 + i32.store offset=8 + local.get $12 + call $"~lib/map/Map#get:entriesCount" + i32.const 1 + i32.add + call $"~lib/map/Map#set:entriesCount" local.get $this - local.set $11 + local.set $12 global.get $~lib/memory/__stack_pointer - local.get $11 + local.get $12 i32.store offset=4 - local.get $11 - local.get $key + local.get $12 + call $"~lib/map/Map#get:buckets" local.get $hashCode - call $"~lib/map/Map#find" - local.set $entry - local.get $entry - if - local.get $entry - local.get $value - call $"~lib/map/MapEntry#set:value" - i32.const 0 - drop - else - global.get $~lib/memory/__stack_pointer - local.get $this - local.set $11 - global.get $~lib/memory/__stack_pointer - local.get $11 - i32.store offset=4 - local.get $11 - call $"~lib/map/Map#get:entries" - local.tee $entries - i32.store offset=12 - local.get $entries - local.get $this - local.set $11 - global.get $~lib/memory/__stack_pointer - local.get $11 - i32.store offset=4 - local.get $11 - local.get $this - local.set $11 - global.get $~lib/memory/__stack_pointer - local.get $11 - i32.store offset=8 - local.get $11 - call $"~lib/map/Map#get:entriesOffset" - local.tee $8 - i32.const 1 - i32.add - call $"~lib/map/Map#set:entriesOffset" - local.get $8 - block $"~lib/map/ENTRY_SIZE|inlined.4" (result i32) - i32.const 8 - br $"~lib/map/ENTRY_SIZE|inlined.4" - end - i32.mul - i32.add - local.set $entry|9 - local.get $entry|9 - local.get $key - call $"~lib/map/MapEntry#set:key" - i32.const 0 - drop - local.get $entry|9 - local.get $value - call $"~lib/map/MapEntry#set:value" - i32.const 0 - drop - local.get $this - local.set $11 - global.get $~lib/memory/__stack_pointer - local.get $11 - i32.store offset=4 - local.get $11 - local.get $this - local.set $11 - global.get $~lib/memory/__stack_pointer - local.get $11 - i32.store offset=8 - local.get $11 - call $"~lib/map/Map#get:entriesCount" - i32.const 1 - i32.add - call $"~lib/map/Map#set:entriesCount" - local.get $this - local.set $11 - global.get $~lib/memory/__stack_pointer - local.get $11 - i32.store offset=4 - local.get $11 - call $"~lib/map/Map#get:buckets" - local.get $hashCode - local.get $this - local.set $11 - global.get $~lib/memory/__stack_pointer - local.get $11 - i32.store offset=4 - local.get $11 - call $"~lib/map/Map#get:bucketsMask" - i32.and - i32.const 4 - i32.mul - i32.add - local.set $bucketPtrBase - local.get $entry|9 - local.get $bucketPtrBase - i32.load - call $"~lib/map/MapEntry#set:taggedNext" - local.get $bucketPtrBase - local.get $entry|9 - i32.store - end - local.get $i - i32.const 1 + local.get $this + local.set $12 + global.get $~lib/memory/__stack_pointer + local.get $12 + i32.store offset=4 + local.get $12 + call $"~lib/map/Map#get:bucketsMask" + i32.and + i32.const 4 + i32.mul i32.add - local.set $i - br $for-loop|0 + local.set $bucketPtrBase + local.get $entry|10 + local.get $bucketPtrBase + i32.load + call $"~lib/map/MapEntry#set:taggedNext" + local.get $bucketPtrBase + local.get $entry|10 + i32.store end + local.get $i + i32.const 1 + i32.add + local.set $i + br $for-loop|0 end end local.get $this - local.set $11 + local.set $12 global.get $~lib/memory/__stack_pointer i32.const 16 i32.add global.set $~lib/memory/__stack_pointer - local.get $11 + local.get $12 ) (func $~lib/array/Array#get:length (param $this i32) (result i32) (local $1 i32) @@ -17973,6 +18135,7 @@ (local $15 i32) (local $k|16 i32) (local $17 i32) + (local $18 i32) global.get $~lib/memory/__stack_pointer i32.const 40 i32.sub @@ -17996,11 +18159,11 @@ i32.lt_s if local.get $map - local.set $17 + local.set $18 global.get $~lib/memory/__stack_pointer - local.get $17 + local.get $18 i32.store offset=4 - local.get $17 + local.get $18 local.get $k call $"~lib/map/Map#has" i32.eqz @@ -18014,11 +18177,11 @@ unreachable end local.get $map - local.set $17 + local.set $18 global.get $~lib/memory/__stack_pointer - local.get $17 + local.get $18 i32.store offset=4 - local.get $17 + local.get $18 local.get $k i32.const 10 local.get $k @@ -18026,11 +18189,11 @@ call $"~lib/map/Map#set" drop local.get $map - local.set $17 + local.set $18 global.get $~lib/memory/__stack_pointer - local.get $17 + local.get $18 i32.store offset=4 - local.get $17 + local.get $18 local.get $k call $"~lib/map/Map#has" i32.eqz @@ -18043,11 +18206,11 @@ unreachable end local.get $map - local.set $17 + local.set $18 global.get $~lib/memory/__stack_pointer - local.get $17 + local.get $18 i32.store offset=4 - local.get $17 + local.get $18 local.get $k call $"~lib/map/Map#get" i32.const 10 @@ -18071,11 +18234,11 @@ end end local.get $map - local.set $17 + local.set $18 global.get $~lib/memory/__stack_pointer - local.get $17 + local.get $18 i32.store offset=4 - local.get $17 + local.get $18 call $"~lib/map/Map#get:size" i32.const 100 i32.eq @@ -18096,11 +18259,11 @@ i32.lt_s if local.get $map - local.set $17 + local.set $18 global.get $~lib/memory/__stack_pointer - local.get $17 + local.get $18 i32.store offset=4 - local.get $17 + local.get $18 local.get $k|2 call $"~lib/map/Map#has" i32.eqz @@ -18113,11 +18276,11 @@ unreachable end local.get $map - local.set $17 + local.set $18 global.get $~lib/memory/__stack_pointer - local.get $17 + local.get $18 i32.store offset=4 - local.get $17 + local.get $18 local.get $k|2 call $"~lib/map/Map#get" i32.const 10 @@ -18134,11 +18297,11 @@ unreachable end local.get $map - local.set $17 + local.set $18 global.get $~lib/memory/__stack_pointer - local.get $17 + local.get $18 i32.store offset=4 - local.get $17 + local.get $18 local.get $k|2 i32.const 20 local.get $k|2 @@ -18146,11 +18309,11 @@ call $"~lib/map/Map#set" drop local.get $map - local.set $17 + local.set $18 global.get $~lib/memory/__stack_pointer - local.get $17 + local.get $18 i32.store offset=4 - local.get $17 + local.get $18 local.get $k|2 call $"~lib/map/Map#has" i32.eqz @@ -18163,11 +18326,11 @@ unreachable end local.get $map - local.set $17 + local.set $18 global.get $~lib/memory/__stack_pointer - local.get $17 + local.get $18 i32.store offset=4 - local.get $17 + local.get $18 local.get $k|2 call $"~lib/map/Map#get" i32.const 20 @@ -18191,11 +18354,11 @@ end end local.get $map - local.set $17 + local.set $18 global.get $~lib/memory/__stack_pointer - local.get $17 + local.get $18 i32.store offset=4 - local.get $17 + local.get $18 call $"~lib/map/Map#get:size" i32.const 100 i32.eq @@ -18210,21 +18373,21 @@ end global.get $~lib/memory/__stack_pointer local.get $map - local.set $17 + local.set $18 global.get $~lib/memory/__stack_pointer - local.get $17 + local.get $18 i32.store offset=4 - local.get $17 + local.get $18 call $"~lib/map/Map#keys" local.tee $keys i32.store offset=8 global.get $~lib/memory/__stack_pointer local.get $map - local.set $17 + local.set $18 global.get $~lib/memory/__stack_pointer - local.get $17 + local.get $18 i32.store offset=4 - local.get $17 + local.get $18 call $"~lib/map/Map#values" local.tee $vals i32.store offset=12 @@ -18245,38 +18408,38 @@ loop $for-loop|2 local.get $index local.get $keys - local.set $17 + local.set $18 global.get $~lib/memory/__stack_pointer - local.get $17 + local.get $18 i32.store offset=4 - local.get $17 + local.get $18 call $~lib/array/Array#get:length i32.lt_s if local.get $keys - local.set $17 + local.set $18 global.get $~lib/memory/__stack_pointer - local.get $17 + local.get $18 i32.store offset=4 - local.get $17 + local.get $18 local.get $index call $~lib/array/Array#__get local.set $key local.get $vals - local.set $17 + local.set $18 global.get $~lib/memory/__stack_pointer - local.get $17 + local.get $18 i32.store offset=4 - local.get $17 + local.get $18 local.get $index call $~lib/array/Array#__get local.set $value local.get $map - local.set $17 + local.set $18 global.get $~lib/memory/__stack_pointer - local.get $17 + local.get $18 i32.store offset=4 - local.get $17 + local.get $18 local.get $key call $"~lib/map/Map#has" i32.eqz @@ -18289,11 +18452,11 @@ unreachable end local.get $map - local.set $17 + local.set $18 global.get $~lib/memory/__stack_pointer - local.get $17 + local.get $18 i32.store offset=4 - local.get $17 + local.get $18 local.get $value i32.const 20 i32.sub @@ -18308,21 +18471,21 @@ unreachable end local.get $keyMap - local.set $17 + local.set $18 global.get $~lib/memory/__stack_pointer - local.get $17 + local.get $18 i32.store offset=4 - local.get $17 + local.get $18 local.get $key local.get $key call $"~lib/map/Map#set" drop local.get $valMap - local.set $17 + local.set $18 global.get $~lib/memory/__stack_pointer - local.get $17 + local.get $18 i32.store offset=4 - local.get $17 + local.get $18 local.get $value i32.const 20 i32.sub @@ -18339,11 +18502,11 @@ end end local.get $keyMap - local.set $17 + local.set $18 global.get $~lib/memory/__stack_pointer - local.get $17 + local.get $18 i32.store offset=4 - local.get $17 + local.get $18 call $"~lib/map/Map#get:size" i32.const 100 i32.eq @@ -18357,11 +18520,11 @@ unreachable end local.get $valMap - local.set $17 + local.set $18 global.get $~lib/memory/__stack_pointer - local.get $17 + local.get $18 i32.store offset=4 - local.get $17 + local.get $18 call $"~lib/map/Map#get:size" i32.const 100 i32.eq @@ -18382,11 +18545,11 @@ i32.lt_s if local.get $map - local.set $17 + local.set $18 global.get $~lib/memory/__stack_pointer - local.get $17 + local.get $18 i32.store offset=4 - local.get $17 + local.get $18 local.get $k|10 call $"~lib/map/Map#has" i32.eqz @@ -18399,11 +18562,11 @@ unreachable end local.get $map - local.set $17 + local.set $18 global.get $~lib/memory/__stack_pointer - local.get $17 + local.get $18 i32.store offset=4 - local.get $17 + local.get $18 local.get $k|10 call $"~lib/map/Map#get" i32.const 20 @@ -18420,20 +18583,20 @@ unreachable end local.get $map - local.set $17 + local.set $18 global.get $~lib/memory/__stack_pointer - local.get $17 + local.get $18 i32.store offset=4 - local.get $17 + local.get $18 local.get $k|10 call $"~lib/map/Map#delete" drop local.get $map - local.set $17 + local.set $18 global.get $~lib/memory/__stack_pointer - local.get $17 + local.get $18 i32.store offset=4 - local.get $17 + local.get $18 local.get $k|10 call $"~lib/map/Map#has" i32.eqz @@ -18454,11 +18617,11 @@ end end local.get $map - local.set $17 + local.set $18 global.get $~lib/memory/__stack_pointer - local.get $17 + local.get $18 i32.store offset=4 - local.get $17 + local.get $18 call $"~lib/map/Map#get:size" i32.const 50 i32.eq @@ -18479,11 +18642,11 @@ i32.lt_s if local.get $map - local.set $17 + local.set $18 global.get $~lib/memory/__stack_pointer - local.get $17 + local.get $18 i32.store offset=4 - local.get $17 + local.get $18 local.get $k|11 call $"~lib/map/Map#has" i32.eqz @@ -18497,11 +18660,11 @@ unreachable end local.get $map - local.set $17 + local.set $18 global.get $~lib/memory/__stack_pointer - local.get $17 + local.get $18 i32.store offset=4 - local.get $17 + local.get $18 local.get $k|11 i32.const 10 local.get $k|11 @@ -18509,11 +18672,11 @@ call $"~lib/map/Map#set" drop local.get $map - local.set $17 + local.set $18 global.get $~lib/memory/__stack_pointer - local.get $17 + local.get $18 i32.store offset=4 - local.get $17 + local.get $18 local.get $k|11 call $"~lib/map/Map#has" i32.eqz @@ -18526,20 +18689,20 @@ unreachable end local.get $map - local.set $17 + local.set $18 global.get $~lib/memory/__stack_pointer - local.get $17 + local.get $18 i32.store offset=4 - local.get $17 + local.get $18 local.get $k|11 call $"~lib/map/Map#delete" drop local.get $map - local.set $17 + local.set $18 global.get $~lib/memory/__stack_pointer - local.get $17 + local.get $18 i32.store offset=4 - local.get $17 + local.get $18 local.get $k|11 call $"~lib/map/Map#has" i32.eqz @@ -18560,11 +18723,11 @@ end end local.get $map - local.set $17 + local.set $18 global.get $~lib/memory/__stack_pointer - local.get $17 + local.get $18 i32.store offset=4 - local.get $17 + local.get $18 call $"~lib/map/Map#get:size" i32.const 50 i32.eq @@ -18578,18 +18741,18 @@ unreachable end local.get $map - local.set $17 + local.set $18 global.get $~lib/memory/__stack_pointer - local.get $17 + local.get $18 i32.store offset=4 - local.get $17 + local.get $18 call $"~lib/map/Map#clear" local.get $map - local.set $17 + local.set $18 global.get $~lib/memory/__stack_pointer - local.get $17 + local.get $18 i32.store offset=4 - local.get $17 + local.get $18 call $"~lib/map/Map#get:size" i32.const 0 i32.eq @@ -18606,7 +18769,7 @@ i32.const 0 i32.const 2 i32.const 24 - i32.const 944 + i32.const 1008 call $~lib/rt/__newArray local.tee $initialEntries i32.store offset=24 @@ -18618,40 +18781,40 @@ i32.lt_s if local.get $initialEntries - local.set $17 + local.set $18 global.get $~lib/memory/__stack_pointer - local.get $17 + local.get $18 i32.store offset=4 - local.get $17 + local.get $18 global.get $~lib/memory/__stack_pointer i32.const 0 call $"~lib/map/KeyValue#constructor" local.tee $15 i32.store offset=32 local.get $15 - local.set $17 + local.set $18 global.get $~lib/memory/__stack_pointer - local.get $17 + local.get $18 i32.store offset=36 - local.get $17 + local.get $18 local.get $k|14 call $"~lib/map/KeyValue#set:key" local.get $15 - local.set $17 + local.set $18 global.get $~lib/memory/__stack_pointer - local.get $17 + local.get $18 i32.store offset=36 - local.get $17 + local.get $18 i32.const 10 local.get $k|14 i32.add call $"~lib/map/KeyValue#set:value" local.get $15 - local.set $17 + local.set $18 global.get $~lib/memory/__stack_pointer - local.get $17 + local.get $18 i32.store offset=28 - local.get $17 + local.get $18 call $"~lib/array/Array<~lib/map/KeyValue>#push" drop local.get $k|14 @@ -18664,20 +18827,20 @@ global.get $~lib/memory/__stack_pointer i32.const 0 local.get $initialEntries - local.set $17 + local.set $18 global.get $~lib/memory/__stack_pointer - local.get $17 + local.get $18 i32.store offset=4 - local.get $17 + local.get $18 call $"~lib/map/Map#constructor" local.tee $map i32.store local.get $map - local.set $17 + local.set $18 global.get $~lib/memory/__stack_pointer - local.get $17 + local.get $18 i32.store offset=4 - local.get $17 + local.get $18 call $"~lib/map/Map#get:size" i32.const 100 i32.eq @@ -18685,7 +18848,7 @@ if i32.const 0 i32.const 720 - i32.const 74 + i32.const 75 i32.const 3 call $~lib/builtins/abort unreachable @@ -18698,28 +18861,28 @@ i32.lt_s if local.get $map - local.set $17 + local.set $18 global.get $~lib/memory/__stack_pointer - local.get $17 + local.get $18 i32.store offset=4 - local.get $17 + local.get $18 local.get $k|16 call $"~lib/map/Map#has" i32.eqz if i32.const 0 i32.const 720 - i32.const 76 + i32.const 77 i32.const 5 call $~lib/builtins/abort unreachable end local.get $map - local.set $17 + local.set $18 global.get $~lib/memory/__stack_pointer - local.get $17 + local.get $18 i32.store offset=4 - local.get $17 + local.get $18 local.get $k|16 call $"~lib/map/Map#get" i32.const 10 @@ -18730,26 +18893,26 @@ if i32.const 0 i32.const 720 - i32.const 77 + i32.const 78 i32.const 5 call $~lib/builtins/abort unreachable end local.get $map - local.set $17 + local.set $18 global.get $~lib/memory/__stack_pointer - local.get $17 + local.get $18 i32.store offset=4 - local.get $17 + local.get $18 local.get $k|16 call $"~lib/map/Map#delete" drop local.get $map - local.set $17 + local.set $18 global.get $~lib/memory/__stack_pointer - local.get $17 + local.get $18 i32.store offset=4 - local.get $17 + local.get $18 local.get $k|16 call $"~lib/map/Map#has" i32.eqz @@ -18757,7 +18920,7 @@ if i32.const 0 i32.const 720 - i32.const 79 + i32.const 80 i32.const 5 call $~lib/builtins/abort unreachable @@ -18770,11 +18933,11 @@ end end local.get $map - local.set $17 + local.set $18 global.get $~lib/memory/__stack_pointer - local.get $17 + local.get $18 i32.store offset=4 - local.get $17 + local.get $18 call $"~lib/map/Map#get:size" i32.const 0 i32.eq @@ -18782,7 +18945,40 @@ if i32.const 0 i32.const 720 - i32.const 81 + i32.const 82 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.const 0 + i32.const 2 + i32.const 24 + i32.const 1040 + call $~lib/rt/__newArray + local.set $18 + global.get $~lib/memory/__stack_pointer + local.get $18 + i32.store offset=4 + local.get $18 + call $"~lib/map/Map#constructor" + local.tee $map + i32.store + local.get $map + local.set $18 + global.get $~lib/memory/__stack_pointer + local.get $18 + i32.store offset=4 + local.get $18 + call $"~lib/map/Map#get:size" + i32.const 0 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 720 + i32.const 85 i32.const 3 call $~lib/builtins/abort unreachable @@ -19169,16 +19365,17 @@ return ) (func $"~lib/map/Map#constructor" (param $this i32) (param $initialEntries i32) (result i32) + (local $initialEntriesLength i32) (local $i i32) (local $key i32) (local $value i32) (local $hashCode i32) (local $entry i32) (local $entries i32) - (local $8 i32) - (local $entry|9 i32) + (local $9 i32) + (local $entry|10 i32) (local $bucketPtrBase i32) - (local $11 i32) + (local $12 i32) global.get $~lib/memory/__stack_pointer i32.const 16 i32.sub @@ -19201,38 +19398,38 @@ i32.store end local.get $this - local.set $11 + local.set $12 global.get $~lib/memory/__stack_pointer - local.get $11 + local.get $12 i32.store offset=4 - local.get $11 + local.get $12 i32.const 0 i32.const 4 i32.const 4 i32.mul call $~lib/arraybuffer/ArrayBuffer#constructor - local.set $11 + local.set $12 global.get $~lib/memory/__stack_pointer - local.get $11 + local.get $12 i32.store offset=8 - local.get $11 + local.get $12 call $"~lib/map/Map#set:buckets" local.get $this - local.set $11 + local.set $12 global.get $~lib/memory/__stack_pointer - local.get $11 + local.get $12 i32.store offset=4 - local.get $11 + local.get $12 i32.const 4 i32.const 1 i32.sub call $"~lib/map/Map#set:bucketsMask" local.get $this - local.set $11 + local.set $12 global.get $~lib/memory/__stack_pointer - local.get $11 + local.get $12 i32.store offset=4 - local.get $11 + local.get $12 i32.const 0 i32.const 4 block $"~lib/map/ENTRY_SIZE|inlined.5" (result i32) @@ -19241,256 +19438,267 @@ end i32.mul call $~lib/arraybuffer/ArrayBuffer#constructor - local.set $11 + local.set $12 global.get $~lib/memory/__stack_pointer - local.get $11 + local.get $12 i32.store offset=8 - local.get $11 + local.get $12 call $"~lib/map/Map#set:entries" local.get $this - local.set $11 + local.set $12 global.get $~lib/memory/__stack_pointer - local.get $11 + local.get $12 i32.store offset=4 - local.get $11 + local.get $12 i32.const 4 call $"~lib/map/Map#set:entriesCapacity" local.get $this - local.set $11 + local.set $12 global.get $~lib/memory/__stack_pointer - local.get $11 + local.get $12 i32.store offset=4 - local.get $11 + local.get $12 i32.const 0 call $"~lib/map/Map#set:entriesOffset" local.get $this - local.set $11 + local.set $12 global.get $~lib/memory/__stack_pointer - local.get $11 + local.get $12 i32.store offset=4 - local.get $11 + local.get $12 i32.const 0 call $"~lib/map/Map#set:entriesCount" local.get $initialEntries - if + i32.eqz + if (result i32) + i32.const 1 + else local.get $initialEntries - local.set $11 + local.set $12 global.get $~lib/memory/__stack_pointer - local.get $11 + local.get $12 i32.store offset=4 - local.get $11 + local.get $12 call $"~lib/array/Array<~lib/map/KeyValue>#get:length" + i32.eqz + end + if + local.get $this + local.set $12 + global.get $~lib/memory/__stack_pointer + i32.const 16 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $12 + return + end + local.get $initialEntries + local.set $12 + global.get $~lib/memory/__stack_pointer + local.get $12 + i32.store offset=4 + local.get $12 + call $"~lib/array/Array<~lib/map/KeyValue>#get:length" + local.set $initialEntriesLength + local.get $initialEntriesLength + local.get $this + local.set $12 + global.get $~lib/memory/__stack_pointer + local.get $12 + i32.store offset=4 + local.get $12 + call $"~lib/map/Map#get:entriesCapacity" + i32.ge_s + if local.get $this - local.set $11 + local.set $12 global.get $~lib/memory/__stack_pointer - local.get $11 + local.get $12 i32.store offset=4 - local.get $11 - call $"~lib/map/Map#get:entriesCapacity" - i32.ge_s + local.get $12 + local.get $initialEntriesLength + call $"~lib/map/Map#set:bucketsMask" + end + local.get $this + local.set $12 + global.get $~lib/memory/__stack_pointer + local.get $12 + i32.store offset=4 + local.get $12 + local.get $this + local.set $12 + global.get $~lib/memory/__stack_pointer + local.get $12 + i32.store offset=8 + local.get $12 + call $"~lib/map/Map#get:bucketsMask" + i32.const 1 + i32.shl + i32.const 1 + i32.or + call $"~lib/map/Map#rehash" + i32.const 0 + local.set $i + loop $for-loop|0 + local.get $i + local.get $initialEntriesLength + i32.lt_s if - local.get $this - local.set $11 + local.get $initialEntries + local.set $12 global.get $~lib/memory/__stack_pointer - local.get $11 + local.get $12 + i32.store offset=8 + local.get $12 + local.get $i + call $"~lib/array/Array<~lib/map/KeyValue>#__get" + local.set $12 + global.get $~lib/memory/__stack_pointer + local.get $12 i32.store offset=4 - local.get $11 + local.get $12 + call $"~lib/map/KeyValue#get:key" + local.set $key local.get $initialEntries - local.set $11 + local.set $12 global.get $~lib/memory/__stack_pointer - local.get $11 + local.get $12 i32.store offset=8 - local.get $11 - call $"~lib/array/Array<~lib/map/KeyValue>#get:length" - call $"~lib/map/Map#set:bucketsMask" - end - local.get $this - local.set $11 - global.get $~lib/memory/__stack_pointer - local.get $11 - i32.store offset=4 - local.get $11 - local.get $this - local.set $11 - global.get $~lib/memory/__stack_pointer - local.get $11 - i32.store offset=8 - local.get $11 - call $"~lib/map/Map#get:bucketsMask" - i32.const 1 - i32.shl - i32.const 1 - i32.or - call $"~lib/map/Map#rehash" - i32.const 0 - local.set $i - loop $for-loop|0 + local.get $12 local.get $i - local.get $initialEntries - local.set $11 + call $"~lib/array/Array<~lib/map/KeyValue>#__get" + local.set $12 global.get $~lib/memory/__stack_pointer - local.get $11 + local.get $12 i32.store offset=4 - local.get $11 - call $"~lib/array/Array<~lib/map/KeyValue>#get:length" - i32.lt_s + local.get $12 + call $"~lib/map/KeyValue#get:value" + local.set $value + local.get $key + call $~lib/util/hash/HASH + local.set $hashCode + local.get $this + local.set $12 + global.get $~lib/memory/__stack_pointer + local.get $12 + i32.store offset=4 + local.get $12 + local.get $key + local.get $hashCode + call $"~lib/map/Map#find" + local.set $entry + local.get $entry if - local.get $initialEntries - local.set $11 + local.get $entry + local.get $value + call $"~lib/map/MapEntry#set:value" + i32.const 0 + drop + else global.get $~lib/memory/__stack_pointer - local.get $11 - i32.store offset=8 - local.get $11 - local.get $i - call $"~lib/array/Array<~lib/map/KeyValue>#__get" - local.set $11 + local.get $this + local.set $12 global.get $~lib/memory/__stack_pointer - local.get $11 + local.get $12 i32.store offset=4 - local.get $11 - call $"~lib/map/KeyValue#get:key" - local.set $key - local.get $initialEntries - local.set $11 + local.get $12 + call $"~lib/map/Map#get:entries" + local.tee $entries + i32.store offset=12 + local.get $entries + local.get $this + local.set $12 global.get $~lib/memory/__stack_pointer - local.get $11 + local.get $12 + i32.store offset=4 + local.get $12 + local.get $this + local.set $12 + global.get $~lib/memory/__stack_pointer + local.get $12 i32.store offset=8 - local.get $11 - local.get $i - call $"~lib/array/Array<~lib/map/KeyValue>#__get" - local.set $11 + local.get $12 + call $"~lib/map/Map#get:entriesOffset" + local.tee $9 + i32.const 1 + i32.add + call $"~lib/map/Map#set:entriesOffset" + local.get $9 + block $"~lib/map/ENTRY_SIZE|inlined.4" (result i32) + i32.const 12 + br $"~lib/map/ENTRY_SIZE|inlined.4" + end + i32.mul + i32.add + local.set $entry|10 + local.get $entry|10 + local.get $key + call $"~lib/map/MapEntry#set:key" + i32.const 0 + drop + local.get $entry|10 + local.get $value + call $"~lib/map/MapEntry#set:value" + i32.const 0 + drop + local.get $this + local.set $12 global.get $~lib/memory/__stack_pointer - local.get $11 + local.get $12 i32.store offset=4 - local.get $11 - call $"~lib/map/KeyValue#get:value" - local.set $value - local.get $key - call $~lib/util/hash/HASH - local.set $hashCode + local.get $12 local.get $this - local.set $11 + local.set $12 global.get $~lib/memory/__stack_pointer - local.get $11 + local.get $12 + i32.store offset=8 + local.get $12 + call $"~lib/map/Map#get:entriesCount" + i32.const 1 + i32.add + call $"~lib/map/Map#set:entriesCount" + local.get $this + local.set $12 + global.get $~lib/memory/__stack_pointer + local.get $12 i32.store offset=4 - local.get $11 - local.get $key + local.get $12 + call $"~lib/map/Map#get:buckets" local.get $hashCode - call $"~lib/map/Map#find" - local.set $entry - local.get $entry - if - local.get $entry - local.get $value - call $"~lib/map/MapEntry#set:value" - i32.const 0 - drop - else - global.get $~lib/memory/__stack_pointer - local.get $this - local.set $11 - global.get $~lib/memory/__stack_pointer - local.get $11 - i32.store offset=4 - local.get $11 - call $"~lib/map/Map#get:entries" - local.tee $entries - i32.store offset=12 - local.get $entries - local.get $this - local.set $11 - global.get $~lib/memory/__stack_pointer - local.get $11 - i32.store offset=4 - local.get $11 - local.get $this - local.set $11 - global.get $~lib/memory/__stack_pointer - local.get $11 - i32.store offset=8 - local.get $11 - call $"~lib/map/Map#get:entriesOffset" - local.tee $8 - i32.const 1 - i32.add - call $"~lib/map/Map#set:entriesOffset" - local.get $8 - block $"~lib/map/ENTRY_SIZE|inlined.4" (result i32) - i32.const 12 - br $"~lib/map/ENTRY_SIZE|inlined.4" - end - i32.mul - i32.add - local.set $entry|9 - local.get $entry|9 - local.get $key - call $"~lib/map/MapEntry#set:key" - i32.const 0 - drop - local.get $entry|9 - local.get $value - call $"~lib/map/MapEntry#set:value" - i32.const 0 - drop - local.get $this - local.set $11 - global.get $~lib/memory/__stack_pointer - local.get $11 - i32.store offset=4 - local.get $11 - local.get $this - local.set $11 - global.get $~lib/memory/__stack_pointer - local.get $11 - i32.store offset=8 - local.get $11 - call $"~lib/map/Map#get:entriesCount" - i32.const 1 - i32.add - call $"~lib/map/Map#set:entriesCount" - local.get $this - local.set $11 - global.get $~lib/memory/__stack_pointer - local.get $11 - i32.store offset=4 - local.get $11 - call $"~lib/map/Map#get:buckets" - local.get $hashCode - local.get $this - local.set $11 - global.get $~lib/memory/__stack_pointer - local.get $11 - i32.store offset=4 - local.get $11 - call $"~lib/map/Map#get:bucketsMask" - i32.and - i32.const 4 - i32.mul - i32.add - local.set $bucketPtrBase - local.get $entry|9 - local.get $bucketPtrBase - i32.load - call $"~lib/map/MapEntry#set:taggedNext" - local.get $bucketPtrBase - local.get $entry|9 - i32.store - end - local.get $i - i32.const 1 + local.get $this + local.set $12 + global.get $~lib/memory/__stack_pointer + local.get $12 + i32.store offset=4 + local.get $12 + call $"~lib/map/Map#get:bucketsMask" + i32.and + i32.const 4 + i32.mul i32.add - local.set $i - br $for-loop|0 + local.set $bucketPtrBase + local.get $entry|10 + local.get $bucketPtrBase + i32.load + call $"~lib/map/MapEntry#set:taggedNext" + local.get $bucketPtrBase + local.get $entry|10 + i32.store end + local.get $i + i32.const 1 + i32.add + local.set $i + br $for-loop|0 end end local.get $this - local.set $11 + local.set $12 global.get $~lib/memory/__stack_pointer i32.const 16 i32.add global.set $~lib/memory/__stack_pointer - local.get $11 + local.get $12 ) (func $"~lib/map/Map#has" (param $this i32) (param $key i32) (result i32) (local $2 i32) @@ -19751,7 +19959,7 @@ if i32.const 768 i32.const 832 - i32.const 146 + i32.const 147 i32.const 17 call $~lib/builtins/abort unreachable @@ -20609,16 +20817,17 @@ return ) (func $"~lib/map/Map#constructor" (param $this i32) (param $initialEntries i32) (result i32) + (local $initialEntriesLength i32) (local $i i32) (local $key i32) (local $value i32) (local $hashCode i32) (local $entry i32) (local $entries i32) - (local $8 i32) - (local $entry|9 i32) + (local $9 i32) + (local $entry|10 i32) (local $bucketPtrBase i32) - (local $11 i32) + (local $12 i32) global.get $~lib/memory/__stack_pointer i32.const 16 i32.sub @@ -20641,38 +20850,38 @@ i32.store end local.get $this - local.set $11 + local.set $12 global.get $~lib/memory/__stack_pointer - local.get $11 + local.get $12 i32.store offset=4 - local.get $11 + local.get $12 i32.const 0 i32.const 4 i32.const 4 i32.mul call $~lib/arraybuffer/ArrayBuffer#constructor - local.set $11 + local.set $12 global.get $~lib/memory/__stack_pointer - local.get $11 + local.get $12 i32.store offset=8 - local.get $11 + local.get $12 call $"~lib/map/Map#set:buckets" local.get $this - local.set $11 + local.set $12 global.get $~lib/memory/__stack_pointer - local.get $11 + local.get $12 i32.store offset=4 - local.get $11 + local.get $12 i32.const 4 i32.const 1 i32.sub call $"~lib/map/Map#set:bucketsMask" local.get $this - local.set $11 + local.set $12 global.get $~lib/memory/__stack_pointer - local.get $11 + local.get $12 i32.store offset=4 - local.get $11 + local.get $12 i32.const 0 i32.const 4 block $"~lib/map/ENTRY_SIZE|inlined.5" (result i32) @@ -20681,256 +20890,267 @@ end i32.mul call $~lib/arraybuffer/ArrayBuffer#constructor - local.set $11 + local.set $12 global.get $~lib/memory/__stack_pointer - local.get $11 + local.get $12 i32.store offset=8 - local.get $11 + local.get $12 call $"~lib/map/Map#set:entries" local.get $this - local.set $11 + local.set $12 global.get $~lib/memory/__stack_pointer - local.get $11 + local.get $12 i32.store offset=4 - local.get $11 + local.get $12 i32.const 4 call $"~lib/map/Map#set:entriesCapacity" local.get $this - local.set $11 + local.set $12 global.get $~lib/memory/__stack_pointer - local.get $11 + local.get $12 i32.store offset=4 - local.get $11 + local.get $12 i32.const 0 call $"~lib/map/Map#set:entriesOffset" local.get $this - local.set $11 + local.set $12 global.get $~lib/memory/__stack_pointer - local.get $11 + local.get $12 i32.store offset=4 - local.get $11 + local.get $12 i32.const 0 call $"~lib/map/Map#set:entriesCount" local.get $initialEntries - if + i32.eqz + if (result i32) + i32.const 1 + else local.get $initialEntries - local.set $11 + local.set $12 global.get $~lib/memory/__stack_pointer - local.get $11 + local.get $12 i32.store offset=4 - local.get $11 + local.get $12 call $"~lib/array/Array<~lib/map/KeyValue>#get:length" + i32.eqz + end + if + local.get $this + local.set $12 + global.get $~lib/memory/__stack_pointer + i32.const 16 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $12 + return + end + local.get $initialEntries + local.set $12 + global.get $~lib/memory/__stack_pointer + local.get $12 + i32.store offset=4 + local.get $12 + call $"~lib/array/Array<~lib/map/KeyValue>#get:length" + local.set $initialEntriesLength + local.get $initialEntriesLength + local.get $this + local.set $12 + global.get $~lib/memory/__stack_pointer + local.get $12 + i32.store offset=4 + local.get $12 + call $"~lib/map/Map#get:entriesCapacity" + i32.ge_s + if local.get $this - local.set $11 + local.set $12 global.get $~lib/memory/__stack_pointer - local.get $11 + local.get $12 i32.store offset=4 - local.get $11 - call $"~lib/map/Map#get:entriesCapacity" - i32.ge_s + local.get $12 + local.get $initialEntriesLength + call $"~lib/map/Map#set:bucketsMask" + end + local.get $this + local.set $12 + global.get $~lib/memory/__stack_pointer + local.get $12 + i32.store offset=4 + local.get $12 + local.get $this + local.set $12 + global.get $~lib/memory/__stack_pointer + local.get $12 + i32.store offset=8 + local.get $12 + call $"~lib/map/Map#get:bucketsMask" + i32.const 1 + i32.shl + i32.const 1 + i32.or + call $"~lib/map/Map#rehash" + i32.const 0 + local.set $i + loop $for-loop|0 + local.get $i + local.get $initialEntriesLength + i32.lt_s if - local.get $this - local.set $11 + local.get $initialEntries + local.set $12 global.get $~lib/memory/__stack_pointer - local.get $11 + local.get $12 + i32.store offset=8 + local.get $12 + local.get $i + call $"~lib/array/Array<~lib/map/KeyValue>#__get" + local.set $12 + global.get $~lib/memory/__stack_pointer + local.get $12 i32.store offset=4 - local.get $11 + local.get $12 + call $"~lib/map/KeyValue#get:key" + local.set $key local.get $initialEntries - local.set $11 + local.set $12 global.get $~lib/memory/__stack_pointer - local.get $11 + local.get $12 i32.store offset=8 - local.get $11 - call $"~lib/array/Array<~lib/map/KeyValue>#get:length" - call $"~lib/map/Map#set:bucketsMask" - end - local.get $this - local.set $11 - global.get $~lib/memory/__stack_pointer - local.get $11 - i32.store offset=4 - local.get $11 - local.get $this - local.set $11 - global.get $~lib/memory/__stack_pointer - local.get $11 - i32.store offset=8 - local.get $11 - call $"~lib/map/Map#get:bucketsMask" - i32.const 1 - i32.shl - i32.const 1 - i32.or - call $"~lib/map/Map#rehash" - i32.const 0 - local.set $i - loop $for-loop|0 + local.get $12 local.get $i - local.get $initialEntries - local.set $11 + call $"~lib/array/Array<~lib/map/KeyValue>#__get" + local.set $12 global.get $~lib/memory/__stack_pointer - local.get $11 + local.get $12 i32.store offset=4 - local.get $11 - call $"~lib/array/Array<~lib/map/KeyValue>#get:length" - i32.lt_s + local.get $12 + call $"~lib/map/KeyValue#get:value" + local.set $value + local.get $key + call $~lib/util/hash/HASH + local.set $hashCode + local.get $this + local.set $12 + global.get $~lib/memory/__stack_pointer + local.get $12 + i32.store offset=4 + local.get $12 + local.get $key + local.get $hashCode + call $"~lib/map/Map#find" + local.set $entry + local.get $entry if - local.get $initialEntries - local.set $11 + local.get $entry + local.get $value + call $"~lib/map/MapEntry#set:value" + i32.const 0 + drop + else global.get $~lib/memory/__stack_pointer - local.get $11 - i32.store offset=8 - local.get $11 - local.get $i - call $"~lib/array/Array<~lib/map/KeyValue>#__get" - local.set $11 + local.get $this + local.set $12 global.get $~lib/memory/__stack_pointer - local.get $11 + local.get $12 i32.store offset=4 - local.get $11 - call $"~lib/map/KeyValue#get:key" - local.set $key - local.get $initialEntries - local.set $11 + local.get $12 + call $"~lib/map/Map#get:entries" + local.tee $entries + i32.store offset=12 + local.get $entries + local.get $this + local.set $12 global.get $~lib/memory/__stack_pointer - local.get $11 + local.get $12 + i32.store offset=4 + local.get $12 + local.get $this + local.set $12 + global.get $~lib/memory/__stack_pointer + local.get $12 i32.store offset=8 - local.get $11 - local.get $i - call $"~lib/array/Array<~lib/map/KeyValue>#__get" - local.set $11 + local.get $12 + call $"~lib/map/Map#get:entriesOffset" + local.tee $9 + i32.const 1 + i32.add + call $"~lib/map/Map#set:entriesOffset" + local.get $9 + block $"~lib/map/ENTRY_SIZE|inlined.4" (result i32) + i32.const 8 + br $"~lib/map/ENTRY_SIZE|inlined.4" + end + i32.mul + i32.add + local.set $entry|10 + local.get $entry|10 + local.get $key + call $"~lib/map/MapEntry#set:key" + i32.const 0 + drop + local.get $entry|10 + local.get $value + call $"~lib/map/MapEntry#set:value" + i32.const 0 + drop + local.get $this + local.set $12 global.get $~lib/memory/__stack_pointer - local.get $11 + local.get $12 i32.store offset=4 - local.get $11 - call $"~lib/map/KeyValue#get:value" - local.set $value - local.get $key - call $~lib/util/hash/HASH - local.set $hashCode + local.get $12 local.get $this - local.set $11 + local.set $12 global.get $~lib/memory/__stack_pointer - local.get $11 + local.get $12 + i32.store offset=8 + local.get $12 + call $"~lib/map/Map#get:entriesCount" + i32.const 1 + i32.add + call $"~lib/map/Map#set:entriesCount" + local.get $this + local.set $12 + global.get $~lib/memory/__stack_pointer + local.get $12 i32.store offset=4 - local.get $11 - local.get $key + local.get $12 + call $"~lib/map/Map#get:buckets" local.get $hashCode - call $"~lib/map/Map#find" - local.set $entry - local.get $entry - if - local.get $entry - local.get $value - call $"~lib/map/MapEntry#set:value" - i32.const 0 - drop - else - global.get $~lib/memory/__stack_pointer - local.get $this - local.set $11 - global.get $~lib/memory/__stack_pointer - local.get $11 - i32.store offset=4 - local.get $11 - call $"~lib/map/Map#get:entries" - local.tee $entries - i32.store offset=12 - local.get $entries - local.get $this - local.set $11 - global.get $~lib/memory/__stack_pointer - local.get $11 - i32.store offset=4 - local.get $11 - local.get $this - local.set $11 - global.get $~lib/memory/__stack_pointer - local.get $11 - i32.store offset=8 - local.get $11 - call $"~lib/map/Map#get:entriesOffset" - local.tee $8 - i32.const 1 - i32.add - call $"~lib/map/Map#set:entriesOffset" - local.get $8 - block $"~lib/map/ENTRY_SIZE|inlined.4" (result i32) - i32.const 8 - br $"~lib/map/ENTRY_SIZE|inlined.4" - end - i32.mul - i32.add - local.set $entry|9 - local.get $entry|9 - local.get $key - call $"~lib/map/MapEntry#set:key" - i32.const 0 - drop - local.get $entry|9 - local.get $value - call $"~lib/map/MapEntry#set:value" - i32.const 0 - drop - local.get $this - local.set $11 - global.get $~lib/memory/__stack_pointer - local.get $11 - i32.store offset=4 - local.get $11 - local.get $this - local.set $11 - global.get $~lib/memory/__stack_pointer - local.get $11 - i32.store offset=8 - local.get $11 - call $"~lib/map/Map#get:entriesCount" - i32.const 1 - i32.add - call $"~lib/map/Map#set:entriesCount" - local.get $this - local.set $11 - global.get $~lib/memory/__stack_pointer - local.get $11 - i32.store offset=4 - local.get $11 - call $"~lib/map/Map#get:buckets" - local.get $hashCode - local.get $this - local.set $11 - global.get $~lib/memory/__stack_pointer - local.get $11 - i32.store offset=4 - local.get $11 - call $"~lib/map/Map#get:bucketsMask" - i32.and - i32.const 4 - i32.mul - i32.add - local.set $bucketPtrBase - local.get $entry|9 - local.get $bucketPtrBase - i32.load - call $"~lib/map/MapEntry#set:taggedNext" - local.get $bucketPtrBase - local.get $entry|9 - i32.store - end - local.get $i - i32.const 1 + local.get $this + local.set $12 + global.get $~lib/memory/__stack_pointer + local.get $12 + i32.store offset=4 + local.get $12 + call $"~lib/map/Map#get:bucketsMask" + i32.and + i32.const 4 + i32.mul i32.add - local.set $i - br $for-loop|0 + local.set $bucketPtrBase + local.get $entry|10 + local.get $bucketPtrBase + i32.load + call $"~lib/map/MapEntry#set:taggedNext" + local.get $bucketPtrBase + local.get $entry|10 + i32.store end + local.get $i + i32.const 1 + i32.add + local.set $i + br $for-loop|0 end end local.get $this - local.set $11 + local.set $12 global.get $~lib/memory/__stack_pointer i32.const 16 i32.add global.set $~lib/memory/__stack_pointer - local.get $11 + local.get $12 ) (func $~lib/array/Array#get:length (param $this i32) (result i32) (local $1 i32) @@ -21589,6 +21809,7 @@ (local $15 i32) (local $k|16 i32) (local $17 i32) + (local $18 i32) global.get $~lib/memory/__stack_pointer i32.const 40 i32.sub @@ -21612,11 +21833,11 @@ i32.lt_u if local.get $map - local.set $17 + local.set $18 global.get $~lib/memory/__stack_pointer - local.get $17 + local.get $18 i32.store offset=4 - local.get $17 + local.get $18 local.get $k call $"~lib/map/Map#has" i32.eqz @@ -21630,11 +21851,11 @@ unreachable end local.get $map - local.set $17 + local.set $18 global.get $~lib/memory/__stack_pointer - local.get $17 + local.get $18 i32.store offset=4 - local.get $17 + local.get $18 local.get $k i32.const 10 local.get $k @@ -21642,11 +21863,11 @@ call $"~lib/map/Map#set" drop local.get $map - local.set $17 + local.set $18 global.get $~lib/memory/__stack_pointer - local.get $17 + local.get $18 i32.store offset=4 - local.get $17 + local.get $18 local.get $k call $"~lib/map/Map#has" i32.eqz @@ -21659,11 +21880,11 @@ unreachable end local.get $map - local.set $17 + local.set $18 global.get $~lib/memory/__stack_pointer - local.get $17 + local.get $18 i32.store offset=4 - local.get $17 + local.get $18 local.get $k call $"~lib/map/Map#get" i32.const 10 @@ -21687,11 +21908,11 @@ end end local.get $map - local.set $17 + local.set $18 global.get $~lib/memory/__stack_pointer - local.get $17 + local.get $18 i32.store offset=4 - local.get $17 + local.get $18 call $"~lib/map/Map#get:size" i32.const 100 i32.eq @@ -21712,11 +21933,11 @@ i32.lt_u if local.get $map - local.set $17 + local.set $18 global.get $~lib/memory/__stack_pointer - local.get $17 + local.get $18 i32.store offset=4 - local.get $17 + local.get $18 local.get $k|2 call $"~lib/map/Map#has" i32.eqz @@ -21729,11 +21950,11 @@ unreachable end local.get $map - local.set $17 + local.set $18 global.get $~lib/memory/__stack_pointer - local.get $17 + local.get $18 i32.store offset=4 - local.get $17 + local.get $18 local.get $k|2 call $"~lib/map/Map#get" i32.const 10 @@ -21750,11 +21971,11 @@ unreachable end local.get $map - local.set $17 + local.set $18 global.get $~lib/memory/__stack_pointer - local.get $17 + local.get $18 i32.store offset=4 - local.get $17 + local.get $18 local.get $k|2 i32.const 20 local.get $k|2 @@ -21762,11 +21983,11 @@ call $"~lib/map/Map#set" drop local.get $map - local.set $17 + local.set $18 global.get $~lib/memory/__stack_pointer - local.get $17 + local.get $18 i32.store offset=4 - local.get $17 + local.get $18 local.get $k|2 call $"~lib/map/Map#has" i32.eqz @@ -21779,11 +22000,11 @@ unreachable end local.get $map - local.set $17 + local.set $18 global.get $~lib/memory/__stack_pointer - local.get $17 + local.get $18 i32.store offset=4 - local.get $17 + local.get $18 local.get $k|2 call $"~lib/map/Map#get" i32.const 20 @@ -21807,11 +22028,11 @@ end end local.get $map - local.set $17 + local.set $18 global.get $~lib/memory/__stack_pointer - local.get $17 + local.get $18 i32.store offset=4 - local.get $17 + local.get $18 call $"~lib/map/Map#get:size" i32.const 100 i32.eq @@ -21826,21 +22047,21 @@ end global.get $~lib/memory/__stack_pointer local.get $map - local.set $17 + local.set $18 global.get $~lib/memory/__stack_pointer - local.get $17 + local.get $18 i32.store offset=4 - local.get $17 + local.get $18 call $"~lib/map/Map#keys" local.tee $keys i32.store offset=8 global.get $~lib/memory/__stack_pointer local.get $map - local.set $17 + local.set $18 global.get $~lib/memory/__stack_pointer - local.get $17 + local.get $18 i32.store offset=4 - local.get $17 + local.get $18 call $"~lib/map/Map#values" local.tee $vals i32.store offset=12 @@ -21861,38 +22082,38 @@ loop $for-loop|2 local.get $index local.get $keys - local.set $17 + local.set $18 global.get $~lib/memory/__stack_pointer - local.get $17 + local.get $18 i32.store offset=4 - local.get $17 + local.get $18 call $~lib/array/Array#get:length i32.lt_s if local.get $keys - local.set $17 + local.set $18 global.get $~lib/memory/__stack_pointer - local.get $17 + local.get $18 i32.store offset=4 - local.get $17 + local.get $18 local.get $index call $~lib/array/Array#__get local.set $key local.get $vals - local.set $17 + local.set $18 global.get $~lib/memory/__stack_pointer - local.get $17 + local.get $18 i32.store offset=4 - local.get $17 + local.get $18 local.get $index call $~lib/array/Array#__get local.set $value local.get $map - local.set $17 + local.set $18 global.get $~lib/memory/__stack_pointer - local.get $17 + local.get $18 i32.store offset=4 - local.get $17 + local.get $18 local.get $key call $"~lib/map/Map#has" i32.eqz @@ -21905,11 +22126,11 @@ unreachable end local.get $map - local.set $17 + local.set $18 global.get $~lib/memory/__stack_pointer - local.get $17 + local.get $18 i32.store offset=4 - local.get $17 + local.get $18 local.get $value i32.const 20 i32.sub @@ -21924,21 +22145,21 @@ unreachable end local.get $keyMap - local.set $17 + local.set $18 global.get $~lib/memory/__stack_pointer - local.get $17 + local.get $18 i32.store offset=4 - local.get $17 + local.get $18 local.get $key local.get $key call $"~lib/map/Map#set" drop local.get $valMap - local.set $17 + local.set $18 global.get $~lib/memory/__stack_pointer - local.get $17 + local.get $18 i32.store offset=4 - local.get $17 + local.get $18 local.get $value i32.const 20 i32.sub @@ -21955,11 +22176,11 @@ end end local.get $keyMap - local.set $17 + local.set $18 global.get $~lib/memory/__stack_pointer - local.get $17 + local.get $18 i32.store offset=4 - local.get $17 + local.get $18 call $"~lib/map/Map#get:size" i32.const 100 i32.eq @@ -21973,11 +22194,11 @@ unreachable end local.get $valMap - local.set $17 + local.set $18 global.get $~lib/memory/__stack_pointer - local.get $17 + local.get $18 i32.store offset=4 - local.get $17 + local.get $18 call $"~lib/map/Map#get:size" i32.const 100 i32.eq @@ -21998,11 +22219,11 @@ i32.lt_u if local.get $map - local.set $17 + local.set $18 global.get $~lib/memory/__stack_pointer - local.get $17 + local.get $18 i32.store offset=4 - local.get $17 + local.get $18 local.get $k|10 call $"~lib/map/Map#has" i32.eqz @@ -22015,11 +22236,11 @@ unreachable end local.get $map - local.set $17 + local.set $18 global.get $~lib/memory/__stack_pointer - local.get $17 + local.get $18 i32.store offset=4 - local.get $17 + local.get $18 local.get $k|10 call $"~lib/map/Map#get" i32.const 20 @@ -22036,20 +22257,20 @@ unreachable end local.get $map - local.set $17 + local.set $18 global.get $~lib/memory/__stack_pointer - local.get $17 + local.get $18 i32.store offset=4 - local.get $17 + local.get $18 local.get $k|10 call $"~lib/map/Map#delete" drop local.get $map - local.set $17 + local.set $18 global.get $~lib/memory/__stack_pointer - local.get $17 + local.get $18 i32.store offset=4 - local.get $17 + local.get $18 local.get $k|10 call $"~lib/map/Map#has" i32.eqz @@ -22070,11 +22291,11 @@ end end local.get $map - local.set $17 + local.set $18 global.get $~lib/memory/__stack_pointer - local.get $17 + local.get $18 i32.store offset=4 - local.get $17 + local.get $18 call $"~lib/map/Map#get:size" i32.const 50 i32.eq @@ -22095,11 +22316,11 @@ i32.lt_u if local.get $map - local.set $17 + local.set $18 global.get $~lib/memory/__stack_pointer - local.get $17 + local.get $18 i32.store offset=4 - local.get $17 + local.get $18 local.get $k|11 call $"~lib/map/Map#has" i32.eqz @@ -22113,11 +22334,11 @@ unreachable end local.get $map - local.set $17 + local.set $18 global.get $~lib/memory/__stack_pointer - local.get $17 + local.get $18 i32.store offset=4 - local.get $17 + local.get $18 local.get $k|11 i32.const 10 local.get $k|11 @@ -22125,11 +22346,11 @@ call $"~lib/map/Map#set" drop local.get $map - local.set $17 + local.set $18 global.get $~lib/memory/__stack_pointer - local.get $17 + local.get $18 i32.store offset=4 - local.get $17 + local.get $18 local.get $k|11 call $"~lib/map/Map#has" i32.eqz @@ -22142,20 +22363,20 @@ unreachable end local.get $map - local.set $17 + local.set $18 global.get $~lib/memory/__stack_pointer - local.get $17 + local.get $18 i32.store offset=4 - local.get $17 + local.get $18 local.get $k|11 call $"~lib/map/Map#delete" drop local.get $map - local.set $17 + local.set $18 global.get $~lib/memory/__stack_pointer - local.get $17 + local.get $18 i32.store offset=4 - local.get $17 + local.get $18 local.get $k|11 call $"~lib/map/Map#has" i32.eqz @@ -22176,11 +22397,11 @@ end end local.get $map - local.set $17 + local.set $18 global.get $~lib/memory/__stack_pointer - local.get $17 + local.get $18 i32.store offset=4 - local.get $17 + local.get $18 call $"~lib/map/Map#get:size" i32.const 50 i32.eq @@ -22194,18 +22415,18 @@ unreachable end local.get $map - local.set $17 + local.set $18 global.get $~lib/memory/__stack_pointer - local.get $17 + local.get $18 i32.store offset=4 - local.get $17 + local.get $18 call $"~lib/map/Map#clear" local.get $map - local.set $17 + local.set $18 global.get $~lib/memory/__stack_pointer - local.get $17 + local.get $18 i32.store offset=4 - local.get $17 + local.get $18 call $"~lib/map/Map#get:size" i32.const 0 i32.eq @@ -22222,7 +22443,7 @@ i32.const 0 i32.const 2 i32.const 31 - i32.const 976 + i32.const 1072 call $~lib/rt/__newArray local.tee $initialEntries i32.store offset=24 @@ -22234,40 +22455,40 @@ i32.lt_u if local.get $initialEntries - local.set $17 + local.set $18 global.get $~lib/memory/__stack_pointer - local.get $17 + local.get $18 i32.store offset=4 - local.get $17 + local.get $18 global.get $~lib/memory/__stack_pointer i32.const 0 call $"~lib/map/KeyValue#constructor" local.tee $15 i32.store offset=32 local.get $15 - local.set $17 + local.set $18 global.get $~lib/memory/__stack_pointer - local.get $17 + local.get $18 i32.store offset=36 - local.get $17 + local.get $18 local.get $k|14 call $"~lib/map/KeyValue#set:key" local.get $15 - local.set $17 + local.set $18 global.get $~lib/memory/__stack_pointer - local.get $17 + local.get $18 i32.store offset=36 - local.get $17 + local.get $18 i32.const 10 local.get $k|14 i32.add call $"~lib/map/KeyValue#set:value" local.get $15 - local.set $17 + local.set $18 global.get $~lib/memory/__stack_pointer - local.get $17 + local.get $18 i32.store offset=28 - local.get $17 + local.get $18 call $"~lib/array/Array<~lib/map/KeyValue>#push" drop local.get $k|14 @@ -22280,20 +22501,20 @@ global.get $~lib/memory/__stack_pointer i32.const 0 local.get $initialEntries - local.set $17 + local.set $18 global.get $~lib/memory/__stack_pointer - local.get $17 + local.get $18 i32.store offset=4 - local.get $17 + local.get $18 call $"~lib/map/Map#constructor" local.tee $map i32.store local.get $map - local.set $17 + local.set $18 global.get $~lib/memory/__stack_pointer - local.get $17 + local.get $18 i32.store offset=4 - local.get $17 + local.get $18 call $"~lib/map/Map#get:size" i32.const 100 i32.eq @@ -22301,7 +22522,7 @@ if i32.const 0 i32.const 720 - i32.const 74 + i32.const 75 i32.const 3 call $~lib/builtins/abort unreachable @@ -22314,28 +22535,28 @@ i32.lt_u if local.get $map - local.set $17 + local.set $18 global.get $~lib/memory/__stack_pointer - local.get $17 + local.get $18 i32.store offset=4 - local.get $17 + local.get $18 local.get $k|16 call $"~lib/map/Map#has" i32.eqz if i32.const 0 i32.const 720 - i32.const 76 + i32.const 77 i32.const 5 call $~lib/builtins/abort unreachable end local.get $map - local.set $17 + local.set $18 global.get $~lib/memory/__stack_pointer - local.get $17 + local.get $18 i32.store offset=4 - local.get $17 + local.get $18 local.get $k|16 call $"~lib/map/Map#get" i32.const 10 @@ -22346,26 +22567,26 @@ if i32.const 0 i32.const 720 - i32.const 77 + i32.const 78 i32.const 5 call $~lib/builtins/abort unreachable end local.get $map - local.set $17 + local.set $18 global.get $~lib/memory/__stack_pointer - local.get $17 + local.get $18 i32.store offset=4 - local.get $17 + local.get $18 local.get $k|16 call $"~lib/map/Map#delete" drop local.get $map - local.set $17 + local.set $18 global.get $~lib/memory/__stack_pointer - local.get $17 + local.get $18 i32.store offset=4 - local.get $17 + local.get $18 local.get $k|16 call $"~lib/map/Map#has" i32.eqz @@ -22373,7 +22594,7 @@ if i32.const 0 i32.const 720 - i32.const 79 + i32.const 80 i32.const 5 call $~lib/builtins/abort unreachable @@ -22386,11 +22607,44 @@ end end local.get $map - local.set $17 + local.set $18 + global.get $~lib/memory/__stack_pointer + local.get $18 + i32.store offset=4 + local.get $18 + call $"~lib/map/Map#get:size" + i32.const 0 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 720 + i32.const 82 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.const 0 + i32.const 2 + i32.const 31 + i32.const 1104 + call $~lib/rt/__newArray + local.set $18 + global.get $~lib/memory/__stack_pointer + local.get $18 + i32.store offset=4 + local.get $18 + call $"~lib/map/Map#constructor" + local.tee $map + i32.store + local.get $map + local.set $18 global.get $~lib/memory/__stack_pointer - local.get $17 + local.get $18 i32.store offset=4 - local.get $17 + local.get $18 call $"~lib/map/Map#get:size" i32.const 0 i32.eq @@ -22398,7 +22652,7 @@ if i32.const 0 i32.const 720 - i32.const 81 + i32.const 85 i32.const 3 call $~lib/builtins/abort unreachable @@ -22465,7 +22719,7 @@ if i32.const 768 i32.const 832 - i32.const 146 + i32.const 147 i32.const 17 call $~lib/builtins/abort unreachable @@ -23064,6 +23318,7 @@ (local $15 i32) (local $k|16 i32) (local $17 i32) + (local $18 i32) global.get $~lib/memory/__stack_pointer i32.const 40 i32.sub @@ -23087,11 +23342,11 @@ i32.lt_s if local.get $map - local.set $17 + local.set $18 global.get $~lib/memory/__stack_pointer - local.get $17 + local.get $18 i32.store offset=4 - local.get $17 + local.get $18 local.get $k call $"~lib/map/Map#has" i32.eqz @@ -23105,11 +23360,11 @@ unreachable end local.get $map - local.set $17 + local.set $18 global.get $~lib/memory/__stack_pointer - local.get $17 + local.get $18 i32.store offset=4 - local.get $17 + local.get $18 local.get $k i32.const 10 local.get $k @@ -23117,11 +23372,11 @@ call $"~lib/map/Map#set" drop local.get $map - local.set $17 + local.set $18 global.get $~lib/memory/__stack_pointer - local.get $17 + local.get $18 i32.store offset=4 - local.get $17 + local.get $18 local.get $k call $"~lib/map/Map#has" i32.eqz @@ -23134,11 +23389,11 @@ unreachable end local.get $map - local.set $17 + local.set $18 global.get $~lib/memory/__stack_pointer - local.get $17 + local.get $18 i32.store offset=4 - local.get $17 + local.get $18 local.get $k call $"~lib/map/Map#get" i32.const 10 @@ -23162,11 +23417,11 @@ end end local.get $map - local.set $17 + local.set $18 global.get $~lib/memory/__stack_pointer - local.get $17 + local.get $18 i32.store offset=4 - local.get $17 + local.get $18 call $"~lib/map/Map#get:size" i32.const 100 i32.eq @@ -23187,11 +23442,11 @@ i32.lt_s if local.get $map - local.set $17 + local.set $18 global.get $~lib/memory/__stack_pointer - local.get $17 + local.get $18 i32.store offset=4 - local.get $17 + local.get $18 local.get $k|2 call $"~lib/map/Map#has" i32.eqz @@ -23204,11 +23459,11 @@ unreachable end local.get $map - local.set $17 + local.set $18 global.get $~lib/memory/__stack_pointer - local.get $17 + local.get $18 i32.store offset=4 - local.get $17 + local.get $18 local.get $k|2 call $"~lib/map/Map#get" i32.const 10 @@ -23225,11 +23480,11 @@ unreachable end local.get $map - local.set $17 + local.set $18 global.get $~lib/memory/__stack_pointer - local.get $17 + local.get $18 i32.store offset=4 - local.get $17 + local.get $18 local.get $k|2 i32.const 20 local.get $k|2 @@ -23237,11 +23492,11 @@ call $"~lib/map/Map#set" drop local.get $map - local.set $17 + local.set $18 global.get $~lib/memory/__stack_pointer - local.get $17 + local.get $18 i32.store offset=4 - local.get $17 + local.get $18 local.get $k|2 call $"~lib/map/Map#has" i32.eqz @@ -23254,11 +23509,11 @@ unreachable end local.get $map - local.set $17 + local.set $18 global.get $~lib/memory/__stack_pointer - local.get $17 + local.get $18 i32.store offset=4 - local.get $17 + local.get $18 local.get $k|2 call $"~lib/map/Map#get" i32.const 20 @@ -23282,11 +23537,11 @@ end end local.get $map - local.set $17 + local.set $18 global.get $~lib/memory/__stack_pointer - local.get $17 + local.get $18 i32.store offset=4 - local.get $17 + local.get $18 call $"~lib/map/Map#get:size" i32.const 100 i32.eq @@ -23301,21 +23556,21 @@ end global.get $~lib/memory/__stack_pointer local.get $map - local.set $17 + local.set $18 global.get $~lib/memory/__stack_pointer - local.get $17 + local.get $18 i32.store offset=4 - local.get $17 + local.get $18 call $"~lib/map/Map#keys" local.tee $keys i32.store offset=8 global.get $~lib/memory/__stack_pointer local.get $map - local.set $17 + local.set $18 global.get $~lib/memory/__stack_pointer - local.get $17 + local.get $18 i32.store offset=4 - local.get $17 + local.get $18 call $"~lib/map/Map#values" local.tee $vals i32.store offset=12 @@ -23336,38 +23591,38 @@ loop $for-loop|2 local.get $index local.get $keys - local.set $17 + local.set $18 global.get $~lib/memory/__stack_pointer - local.get $17 + local.get $18 i32.store offset=4 - local.get $17 + local.get $18 call $~lib/array/Array#get:length i32.lt_s if local.get $keys - local.set $17 + local.set $18 global.get $~lib/memory/__stack_pointer - local.get $17 + local.get $18 i32.store offset=4 - local.get $17 + local.get $18 local.get $index call $~lib/array/Array#__get local.set $key local.get $vals - local.set $17 + local.set $18 global.get $~lib/memory/__stack_pointer - local.get $17 + local.get $18 i32.store offset=4 - local.get $17 + local.get $18 local.get $index call $~lib/array/Array#__get local.set $value local.get $map - local.set $17 + local.set $18 global.get $~lib/memory/__stack_pointer - local.get $17 + local.get $18 i32.store offset=4 - local.get $17 + local.get $18 local.get $key call $"~lib/map/Map#has" i32.eqz @@ -23380,11 +23635,11 @@ unreachable end local.get $map - local.set $17 + local.set $18 global.get $~lib/memory/__stack_pointer - local.get $17 + local.get $18 i32.store offset=4 - local.get $17 + local.get $18 local.get $value i32.const 20 i32.sub @@ -23399,21 +23654,21 @@ unreachable end local.get $keyMap - local.set $17 + local.set $18 global.get $~lib/memory/__stack_pointer - local.get $17 + local.get $18 i32.store offset=4 - local.get $17 + local.get $18 local.get $key local.get $key call $"~lib/map/Map#set" drop local.get $valMap - local.set $17 + local.set $18 global.get $~lib/memory/__stack_pointer - local.get $17 + local.get $18 i32.store offset=4 - local.get $17 + local.get $18 local.get $value i32.const 20 i32.sub @@ -23430,11 +23685,11 @@ end end local.get $keyMap - local.set $17 + local.set $18 global.get $~lib/memory/__stack_pointer - local.get $17 + local.get $18 i32.store offset=4 - local.get $17 + local.get $18 call $"~lib/map/Map#get:size" i32.const 100 i32.eq @@ -23448,11 +23703,11 @@ unreachable end local.get $valMap - local.set $17 + local.set $18 global.get $~lib/memory/__stack_pointer - local.get $17 + local.get $18 i32.store offset=4 - local.get $17 + local.get $18 call $"~lib/map/Map#get:size" i32.const 100 i32.eq @@ -23473,11 +23728,11 @@ i32.lt_s if local.get $map - local.set $17 + local.set $18 global.get $~lib/memory/__stack_pointer - local.get $17 + local.get $18 i32.store offset=4 - local.get $17 + local.get $18 local.get $k|10 call $"~lib/map/Map#has" i32.eqz @@ -23490,11 +23745,11 @@ unreachable end local.get $map - local.set $17 + local.set $18 global.get $~lib/memory/__stack_pointer - local.get $17 + local.get $18 i32.store offset=4 - local.get $17 + local.get $18 local.get $k|10 call $"~lib/map/Map#get" i32.const 20 @@ -23511,20 +23766,20 @@ unreachable end local.get $map - local.set $17 + local.set $18 global.get $~lib/memory/__stack_pointer - local.get $17 + local.get $18 i32.store offset=4 - local.get $17 + local.get $18 local.get $k|10 call $"~lib/map/Map#delete" drop local.get $map - local.set $17 + local.set $18 global.get $~lib/memory/__stack_pointer - local.get $17 + local.get $18 i32.store offset=4 - local.get $17 + local.get $18 local.get $k|10 call $"~lib/map/Map#has" i32.eqz @@ -23545,11 +23800,11 @@ end end local.get $map - local.set $17 + local.set $18 global.get $~lib/memory/__stack_pointer - local.get $17 + local.get $18 i32.store offset=4 - local.get $17 + local.get $18 call $"~lib/map/Map#get:size" i32.const 50 i32.eq @@ -23570,11 +23825,11 @@ i32.lt_s if local.get $map - local.set $17 + local.set $18 global.get $~lib/memory/__stack_pointer - local.get $17 + local.get $18 i32.store offset=4 - local.get $17 + local.get $18 local.get $k|11 call $"~lib/map/Map#has" i32.eqz @@ -23588,11 +23843,11 @@ unreachable end local.get $map - local.set $17 + local.set $18 global.get $~lib/memory/__stack_pointer - local.get $17 + local.get $18 i32.store offset=4 - local.get $17 + local.get $18 local.get $k|11 i32.const 10 local.get $k|11 @@ -23600,11 +23855,11 @@ call $"~lib/map/Map#set" drop local.get $map - local.set $17 + local.set $18 global.get $~lib/memory/__stack_pointer - local.get $17 + local.get $18 i32.store offset=4 - local.get $17 + local.get $18 local.get $k|11 call $"~lib/map/Map#has" i32.eqz @@ -23617,20 +23872,20 @@ unreachable end local.get $map - local.set $17 + local.set $18 global.get $~lib/memory/__stack_pointer - local.get $17 + local.get $18 i32.store offset=4 - local.get $17 + local.get $18 local.get $k|11 call $"~lib/map/Map#delete" drop local.get $map - local.set $17 + local.set $18 global.get $~lib/memory/__stack_pointer - local.get $17 + local.get $18 i32.store offset=4 - local.get $17 + local.get $18 local.get $k|11 call $"~lib/map/Map#has" i32.eqz @@ -23651,11 +23906,11 @@ end end local.get $map - local.set $17 + local.set $18 global.get $~lib/memory/__stack_pointer - local.get $17 + local.get $18 i32.store offset=4 - local.get $17 + local.get $18 call $"~lib/map/Map#get:size" i32.const 50 i32.eq @@ -23669,18 +23924,18 @@ unreachable end local.get $map - local.set $17 + local.set $18 global.get $~lib/memory/__stack_pointer - local.get $17 + local.get $18 i32.store offset=4 - local.get $17 + local.get $18 call $"~lib/map/Map#clear" local.get $map - local.set $17 + local.set $18 global.get $~lib/memory/__stack_pointer - local.get $17 + local.get $18 i32.store offset=4 - local.get $17 + local.get $18 call $"~lib/map/Map#get:size" i32.const 0 i32.eq @@ -23697,7 +23952,7 @@ i32.const 0 i32.const 2 i32.const 14 - i32.const 1008 + i32.const 1136 call $~lib/rt/__newArray local.tee $initialEntries i32.store offset=24 @@ -23709,40 +23964,40 @@ i32.lt_s if local.get $initialEntries - local.set $17 + local.set $18 global.get $~lib/memory/__stack_pointer - local.get $17 + local.get $18 i32.store offset=4 - local.get $17 + local.get $18 global.get $~lib/memory/__stack_pointer i32.const 0 call $"~lib/map/KeyValue#constructor" local.tee $15 i32.store offset=32 local.get $15 - local.set $17 + local.set $18 global.get $~lib/memory/__stack_pointer - local.get $17 + local.get $18 i32.store offset=36 - local.get $17 + local.get $18 local.get $k|14 call $"~lib/map/KeyValue#set:key" local.get $15 - local.set $17 + local.set $18 global.get $~lib/memory/__stack_pointer - local.get $17 + local.get $18 i32.store offset=36 - local.get $17 + local.get $18 i32.const 10 local.get $k|14 i32.add call $"~lib/map/KeyValue#set:value" local.get $15 - local.set $17 + local.set $18 global.get $~lib/memory/__stack_pointer - local.get $17 + local.get $18 i32.store offset=28 - local.get $17 + local.get $18 call $"~lib/array/Array<~lib/map/KeyValue>#push" drop local.get $k|14 @@ -23755,20 +24010,20 @@ global.get $~lib/memory/__stack_pointer i32.const 0 local.get $initialEntries - local.set $17 + local.set $18 global.get $~lib/memory/__stack_pointer - local.get $17 + local.get $18 i32.store offset=4 - local.get $17 + local.get $18 call $"~lib/map/Map#constructor" local.tee $map i32.store local.get $map - local.set $17 + local.set $18 global.get $~lib/memory/__stack_pointer - local.get $17 + local.get $18 i32.store offset=4 - local.get $17 + local.get $18 call $"~lib/map/Map#get:size" i32.const 100 i32.eq @@ -23776,7 +24031,7 @@ if i32.const 0 i32.const 720 - i32.const 74 + i32.const 75 i32.const 3 call $~lib/builtins/abort unreachable @@ -23789,28 +24044,28 @@ i32.lt_s if local.get $map - local.set $17 + local.set $18 global.get $~lib/memory/__stack_pointer - local.get $17 + local.get $18 i32.store offset=4 - local.get $17 + local.get $18 local.get $k|16 call $"~lib/map/Map#has" i32.eqz if i32.const 0 i32.const 720 - i32.const 76 + i32.const 77 i32.const 5 call $~lib/builtins/abort unreachable end local.get $map - local.set $17 + local.set $18 global.get $~lib/memory/__stack_pointer - local.get $17 + local.get $18 i32.store offset=4 - local.get $17 + local.get $18 local.get $k|16 call $"~lib/map/Map#get" i32.const 10 @@ -23821,26 +24076,26 @@ if i32.const 0 i32.const 720 - i32.const 77 + i32.const 78 i32.const 5 call $~lib/builtins/abort unreachable end local.get $map - local.set $17 + local.set $18 global.get $~lib/memory/__stack_pointer - local.get $17 + local.get $18 i32.store offset=4 - local.get $17 + local.get $18 local.get $k|16 call $"~lib/map/Map#delete" drop local.get $map - local.set $17 + local.set $18 global.get $~lib/memory/__stack_pointer - local.get $17 + local.get $18 i32.store offset=4 - local.get $17 + local.get $18 local.get $k|16 call $"~lib/map/Map#has" i32.eqz @@ -23848,7 +24103,7 @@ if i32.const 0 i32.const 720 - i32.const 79 + i32.const 80 i32.const 5 call $~lib/builtins/abort unreachable @@ -23861,11 +24116,44 @@ end end local.get $map - local.set $17 + local.set $18 + global.get $~lib/memory/__stack_pointer + local.get $18 + i32.store offset=4 + local.get $18 + call $"~lib/map/Map#get:size" + i32.const 0 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 720 + i32.const 82 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.const 0 + i32.const 2 + i32.const 14 + i32.const 1168 + call $~lib/rt/__newArray + local.set $18 + global.get $~lib/memory/__stack_pointer + local.get $18 + i32.store offset=4 + local.get $18 + call $"~lib/map/Map#constructor" + local.tee $map + i32.store + local.get $map + local.set $18 global.get $~lib/memory/__stack_pointer - local.get $17 + local.get $18 i32.store offset=4 - local.get $17 + local.get $18 call $"~lib/map/Map#get:size" i32.const 0 i32.eq @@ -23873,7 +24161,7 @@ if i32.const 0 i32.const 720 - i32.const 81 + i32.const 85 i32.const 3 call $~lib/builtins/abort unreachable @@ -24256,16 +24544,17 @@ return ) (func $"~lib/map/Map#constructor" (param $this i32) (param $initialEntries i32) (result i32) + (local $initialEntriesLength i32) (local $i i32) (local $key i32) (local $value i32) (local $hashCode i32) (local $entry i32) (local $entries i32) - (local $8 i32) - (local $entry|9 i32) + (local $9 i32) + (local $entry|10 i32) (local $bucketPtrBase i32) - (local $11 i32) + (local $12 i32) global.get $~lib/memory/__stack_pointer i32.const 16 i32.sub @@ -24288,38 +24577,38 @@ i32.store end local.get $this - local.set $11 + local.set $12 global.get $~lib/memory/__stack_pointer - local.get $11 + local.get $12 i32.store offset=4 - local.get $11 + local.get $12 i32.const 0 i32.const 4 i32.const 4 i32.mul call $~lib/arraybuffer/ArrayBuffer#constructor - local.set $11 + local.set $12 global.get $~lib/memory/__stack_pointer - local.get $11 + local.get $12 i32.store offset=8 - local.get $11 + local.get $12 call $"~lib/map/Map#set:buckets" local.get $this - local.set $11 + local.set $12 global.get $~lib/memory/__stack_pointer - local.get $11 + local.get $12 i32.store offset=4 - local.get $11 + local.get $12 i32.const 4 i32.const 1 i32.sub call $"~lib/map/Map#set:bucketsMask" local.get $this - local.set $11 + local.set $12 global.get $~lib/memory/__stack_pointer - local.get $11 + local.get $12 i32.store offset=4 - local.get $11 + local.get $12 i32.const 0 i32.const 4 block $"~lib/map/ENTRY_SIZE|inlined.5" (result i32) @@ -24328,256 +24617,267 @@ end i32.mul call $~lib/arraybuffer/ArrayBuffer#constructor - local.set $11 + local.set $12 global.get $~lib/memory/__stack_pointer - local.get $11 + local.get $12 i32.store offset=8 - local.get $11 + local.get $12 call $"~lib/map/Map#set:entries" local.get $this - local.set $11 + local.set $12 global.get $~lib/memory/__stack_pointer - local.get $11 + local.get $12 i32.store offset=4 - local.get $11 + local.get $12 i32.const 4 call $"~lib/map/Map#set:entriesCapacity" local.get $this - local.set $11 + local.set $12 global.get $~lib/memory/__stack_pointer - local.get $11 + local.get $12 i32.store offset=4 - local.get $11 + local.get $12 i32.const 0 call $"~lib/map/Map#set:entriesOffset" local.get $this - local.set $11 + local.set $12 global.get $~lib/memory/__stack_pointer - local.get $11 + local.get $12 i32.store offset=4 - local.get $11 + local.get $12 i32.const 0 call $"~lib/map/Map#set:entriesCount" local.get $initialEntries - if + i32.eqz + if (result i32) + i32.const 1 + else local.get $initialEntries - local.set $11 + local.set $12 global.get $~lib/memory/__stack_pointer - local.get $11 + local.get $12 i32.store offset=4 - local.get $11 + local.get $12 call $"~lib/array/Array<~lib/map/KeyValue>#get:length" + i32.eqz + end + if + local.get $this + local.set $12 + global.get $~lib/memory/__stack_pointer + i32.const 16 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $12 + return + end + local.get $initialEntries + local.set $12 + global.get $~lib/memory/__stack_pointer + local.get $12 + i32.store offset=4 + local.get $12 + call $"~lib/array/Array<~lib/map/KeyValue>#get:length" + local.set $initialEntriesLength + local.get $initialEntriesLength + local.get $this + local.set $12 + global.get $~lib/memory/__stack_pointer + local.get $12 + i32.store offset=4 + local.get $12 + call $"~lib/map/Map#get:entriesCapacity" + i32.ge_s + if local.get $this - local.set $11 + local.set $12 global.get $~lib/memory/__stack_pointer - local.get $11 + local.get $12 i32.store offset=4 - local.get $11 - call $"~lib/map/Map#get:entriesCapacity" - i32.ge_s + local.get $12 + local.get $initialEntriesLength + call $"~lib/map/Map#set:bucketsMask" + end + local.get $this + local.set $12 + global.get $~lib/memory/__stack_pointer + local.get $12 + i32.store offset=4 + local.get $12 + local.get $this + local.set $12 + global.get $~lib/memory/__stack_pointer + local.get $12 + i32.store offset=8 + local.get $12 + call $"~lib/map/Map#get:bucketsMask" + i32.const 1 + i32.shl + i32.const 1 + i32.or + call $"~lib/map/Map#rehash" + i32.const 0 + local.set $i + loop $for-loop|0 + local.get $i + local.get $initialEntriesLength + i32.lt_s if - local.get $this - local.set $11 + local.get $initialEntries + local.set $12 global.get $~lib/memory/__stack_pointer - local.get $11 + local.get $12 + i32.store offset=8 + local.get $12 + local.get $i + call $"~lib/array/Array<~lib/map/KeyValue>#__get" + local.set $12 + global.get $~lib/memory/__stack_pointer + local.get $12 i32.store offset=4 - local.get $11 + local.get $12 + call $"~lib/map/KeyValue#get:key" + local.set $key local.get $initialEntries - local.set $11 + local.set $12 global.get $~lib/memory/__stack_pointer - local.get $11 + local.get $12 i32.store offset=8 - local.get $11 - call $"~lib/array/Array<~lib/map/KeyValue>#get:length" - call $"~lib/map/Map#set:bucketsMask" - end - local.get $this - local.set $11 - global.get $~lib/memory/__stack_pointer - local.get $11 - i32.store offset=4 - local.get $11 - local.get $this - local.set $11 - global.get $~lib/memory/__stack_pointer - local.get $11 - i32.store offset=8 - local.get $11 - call $"~lib/map/Map#get:bucketsMask" - i32.const 1 - i32.shl - i32.const 1 - i32.or - call $"~lib/map/Map#rehash" - i32.const 0 - local.set $i - loop $for-loop|0 + local.get $12 local.get $i - local.get $initialEntries - local.set $11 + call $"~lib/array/Array<~lib/map/KeyValue>#__get" + local.set $12 global.get $~lib/memory/__stack_pointer - local.get $11 + local.get $12 i32.store offset=4 - local.get $11 - call $"~lib/array/Array<~lib/map/KeyValue>#get:length" - i32.lt_s + local.get $12 + call $"~lib/map/KeyValue#get:value" + local.set $value + local.get $key + call $~lib/util/hash/HASH + local.set $hashCode + local.get $this + local.set $12 + global.get $~lib/memory/__stack_pointer + local.get $12 + i32.store offset=4 + local.get $12 + local.get $key + local.get $hashCode + call $"~lib/map/Map#find" + local.set $entry + local.get $entry if - local.get $initialEntries - local.set $11 + local.get $entry + local.get $value + call $"~lib/map/MapEntry#set:value" + i32.const 0 + drop + else global.get $~lib/memory/__stack_pointer - local.get $11 - i32.store offset=8 - local.get $11 - local.get $i - call $"~lib/array/Array<~lib/map/KeyValue>#__get" - local.set $11 + local.get $this + local.set $12 global.get $~lib/memory/__stack_pointer - local.get $11 + local.get $12 i32.store offset=4 - local.get $11 - call $"~lib/map/KeyValue#get:key" - local.set $key - local.get $initialEntries - local.set $11 + local.get $12 + call $"~lib/map/Map#get:entries" + local.tee $entries + i32.store offset=12 + local.get $entries + local.get $this + local.set $12 global.get $~lib/memory/__stack_pointer - local.get $11 + local.get $12 + i32.store offset=4 + local.get $12 + local.get $this + local.set $12 + global.get $~lib/memory/__stack_pointer + local.get $12 i32.store offset=8 - local.get $11 - local.get $i - call $"~lib/array/Array<~lib/map/KeyValue>#__get" - local.set $11 + local.get $12 + call $"~lib/map/Map#get:entriesOffset" + local.tee $9 + i32.const 1 + i32.add + call $"~lib/map/Map#set:entriesOffset" + local.get $9 + block $"~lib/map/ENTRY_SIZE|inlined.4" (result i32) + i32.const 12 + br $"~lib/map/ENTRY_SIZE|inlined.4" + end + i32.mul + i32.add + local.set $entry|10 + local.get $entry|10 + local.get $key + call $"~lib/map/MapEntry#set:key" + i32.const 0 + drop + local.get $entry|10 + local.get $value + call $"~lib/map/MapEntry#set:value" + i32.const 0 + drop + local.get $this + local.set $12 global.get $~lib/memory/__stack_pointer - local.get $11 + local.get $12 i32.store offset=4 - local.get $11 - call $"~lib/map/KeyValue#get:value" - local.set $value - local.get $key - call $~lib/util/hash/HASH - local.set $hashCode + local.get $12 local.get $this - local.set $11 + local.set $12 global.get $~lib/memory/__stack_pointer - local.get $11 + local.get $12 + i32.store offset=8 + local.get $12 + call $"~lib/map/Map#get:entriesCount" + i32.const 1 + i32.add + call $"~lib/map/Map#set:entriesCount" + local.get $this + local.set $12 + global.get $~lib/memory/__stack_pointer + local.get $12 i32.store offset=4 - local.get $11 - local.get $key + local.get $12 + call $"~lib/map/Map#get:buckets" local.get $hashCode - call $"~lib/map/Map#find" - local.set $entry - local.get $entry - if - local.get $entry - local.get $value - call $"~lib/map/MapEntry#set:value" - i32.const 0 - drop - else - global.get $~lib/memory/__stack_pointer - local.get $this - local.set $11 - global.get $~lib/memory/__stack_pointer - local.get $11 - i32.store offset=4 - local.get $11 - call $"~lib/map/Map#get:entries" - local.tee $entries - i32.store offset=12 - local.get $entries - local.get $this - local.set $11 - global.get $~lib/memory/__stack_pointer - local.get $11 - i32.store offset=4 - local.get $11 - local.get $this - local.set $11 - global.get $~lib/memory/__stack_pointer - local.get $11 - i32.store offset=8 - local.get $11 - call $"~lib/map/Map#get:entriesOffset" - local.tee $8 - i32.const 1 - i32.add - call $"~lib/map/Map#set:entriesOffset" - local.get $8 - block $"~lib/map/ENTRY_SIZE|inlined.4" (result i32) - i32.const 12 - br $"~lib/map/ENTRY_SIZE|inlined.4" - end - i32.mul - i32.add - local.set $entry|9 - local.get $entry|9 - local.get $key - call $"~lib/map/MapEntry#set:key" - i32.const 0 - drop - local.get $entry|9 - local.get $value - call $"~lib/map/MapEntry#set:value" - i32.const 0 - drop - local.get $this - local.set $11 - global.get $~lib/memory/__stack_pointer - local.get $11 - i32.store offset=4 - local.get $11 - local.get $this - local.set $11 - global.get $~lib/memory/__stack_pointer - local.get $11 - i32.store offset=8 - local.get $11 - call $"~lib/map/Map#get:entriesCount" - i32.const 1 - i32.add - call $"~lib/map/Map#set:entriesCount" - local.get $this - local.set $11 - global.get $~lib/memory/__stack_pointer - local.get $11 - i32.store offset=4 - local.get $11 - call $"~lib/map/Map#get:buckets" - local.get $hashCode - local.get $this - local.set $11 - global.get $~lib/memory/__stack_pointer - local.get $11 - i32.store offset=4 - local.get $11 - call $"~lib/map/Map#get:bucketsMask" - i32.and - i32.const 4 - i32.mul - i32.add - local.set $bucketPtrBase - local.get $entry|9 - local.get $bucketPtrBase - i32.load - call $"~lib/map/MapEntry#set:taggedNext" - local.get $bucketPtrBase - local.get $entry|9 - i32.store - end - local.get $i - i32.const 1 + local.get $this + local.set $12 + global.get $~lib/memory/__stack_pointer + local.get $12 + i32.store offset=4 + local.get $12 + call $"~lib/map/Map#get:bucketsMask" + i32.and + i32.const 4 + i32.mul i32.add - local.set $i - br $for-loop|0 + local.set $bucketPtrBase + local.get $entry|10 + local.get $bucketPtrBase + i32.load + call $"~lib/map/MapEntry#set:taggedNext" + local.get $bucketPtrBase + local.get $entry|10 + i32.store end + local.get $i + i32.const 1 + i32.add + local.set $i + br $for-loop|0 end end local.get $this - local.set $11 + local.set $12 global.get $~lib/memory/__stack_pointer i32.const 16 i32.add global.set $~lib/memory/__stack_pointer - local.get $11 + local.get $12 ) (func $"~lib/map/Map#has" (param $this i32) (param $key i32) (result i32) (local $2 i32) @@ -24838,7 +25138,7 @@ if i32.const 768 i32.const 832 - i32.const 146 + i32.const 147 i32.const 17 call $~lib/builtins/abort unreachable @@ -25692,16 +25992,17 @@ return ) (func $"~lib/map/Map#constructor" (param $this i32) (param $initialEntries i32) (result i32) + (local $initialEntriesLength i32) (local $i i32) (local $key i32) (local $value i32) (local $hashCode i32) (local $entry i32) (local $entries i32) - (local $8 i32) - (local $entry|9 i32) + (local $9 i32) + (local $entry|10 i32) (local $bucketPtrBase i32) - (local $11 i32) + (local $12 i32) global.get $~lib/memory/__stack_pointer i32.const 16 i32.sub @@ -25724,38 +26025,38 @@ i32.store end local.get $this - local.set $11 + local.set $12 global.get $~lib/memory/__stack_pointer - local.get $11 + local.get $12 i32.store offset=4 - local.get $11 + local.get $12 i32.const 0 i32.const 4 i32.const 4 i32.mul call $~lib/arraybuffer/ArrayBuffer#constructor - local.set $11 + local.set $12 global.get $~lib/memory/__stack_pointer - local.get $11 + local.get $12 i32.store offset=8 - local.get $11 + local.get $12 call $"~lib/map/Map#set:buckets" local.get $this - local.set $11 + local.set $12 global.get $~lib/memory/__stack_pointer - local.get $11 + local.get $12 i32.store offset=4 - local.get $11 + local.get $12 i32.const 4 i32.const 1 i32.sub call $"~lib/map/Map#set:bucketsMask" local.get $this - local.set $11 + local.set $12 global.get $~lib/memory/__stack_pointer - local.get $11 + local.get $12 i32.store offset=4 - local.get $11 + local.get $12 i32.const 0 i32.const 4 block $"~lib/map/ENTRY_SIZE|inlined.5" (result i32) @@ -25764,256 +26065,267 @@ end i32.mul call $~lib/arraybuffer/ArrayBuffer#constructor - local.set $11 + local.set $12 global.get $~lib/memory/__stack_pointer - local.get $11 + local.get $12 i32.store offset=8 - local.get $11 + local.get $12 call $"~lib/map/Map#set:entries" local.get $this - local.set $11 + local.set $12 global.get $~lib/memory/__stack_pointer - local.get $11 + local.get $12 i32.store offset=4 - local.get $11 + local.get $12 i32.const 4 call $"~lib/map/Map#set:entriesCapacity" local.get $this - local.set $11 + local.set $12 global.get $~lib/memory/__stack_pointer - local.get $11 + local.get $12 i32.store offset=4 - local.get $11 + local.get $12 i32.const 0 call $"~lib/map/Map#set:entriesOffset" local.get $this - local.set $11 + local.set $12 global.get $~lib/memory/__stack_pointer - local.get $11 + local.get $12 i32.store offset=4 - local.get $11 + local.get $12 i32.const 0 call $"~lib/map/Map#set:entriesCount" local.get $initialEntries - if + i32.eqz + if (result i32) + i32.const 1 + else local.get $initialEntries - local.set $11 + local.set $12 global.get $~lib/memory/__stack_pointer - local.get $11 + local.get $12 i32.store offset=4 - local.get $11 + local.get $12 call $"~lib/array/Array<~lib/map/KeyValue>#get:length" + i32.eqz + end + if local.get $this - local.set $11 + local.set $12 global.get $~lib/memory/__stack_pointer - local.get $11 + i32.const 16 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $12 + return + end + local.get $initialEntries + local.set $12 + global.get $~lib/memory/__stack_pointer + local.get $12 + i32.store offset=4 + local.get $12 + call $"~lib/array/Array<~lib/map/KeyValue>#get:length" + local.set $initialEntriesLength + local.get $initialEntriesLength + local.get $this + local.set $12 + global.get $~lib/memory/__stack_pointer + local.get $12 + i32.store offset=4 + local.get $12 + call $"~lib/map/Map#get:entriesCapacity" + i32.ge_s + if + local.get $this + local.set $12 + global.get $~lib/memory/__stack_pointer + local.get $12 i32.store offset=4 - local.get $11 - call $"~lib/map/Map#get:entriesCapacity" - i32.ge_s + local.get $12 + local.get $initialEntriesLength + call $"~lib/map/Map#set:bucketsMask" + end + local.get $this + local.set $12 + global.get $~lib/memory/__stack_pointer + local.get $12 + i32.store offset=4 + local.get $12 + local.get $this + local.set $12 + global.get $~lib/memory/__stack_pointer + local.get $12 + i32.store offset=8 + local.get $12 + call $"~lib/map/Map#get:bucketsMask" + i32.const 1 + i32.shl + i32.const 1 + i32.or + call $"~lib/map/Map#rehash" + i32.const 0 + local.set $i + loop $for-loop|0 + local.get $i + local.get $initialEntriesLength + i32.lt_s if - local.get $this - local.set $11 + local.get $initialEntries + local.set $12 global.get $~lib/memory/__stack_pointer - local.get $11 + local.get $12 + i32.store offset=8 + local.get $12 + local.get $i + call $"~lib/array/Array<~lib/map/KeyValue>#__get" + local.set $12 + global.get $~lib/memory/__stack_pointer + local.get $12 i32.store offset=4 - local.get $11 + local.get $12 + call $"~lib/map/KeyValue#get:key" + local.set $key local.get $initialEntries - local.set $11 + local.set $12 global.get $~lib/memory/__stack_pointer - local.get $11 + local.get $12 i32.store offset=8 - local.get $11 - call $"~lib/array/Array<~lib/map/KeyValue>#get:length" - call $"~lib/map/Map#set:bucketsMask" - end - local.get $this - local.set $11 - global.get $~lib/memory/__stack_pointer - local.get $11 - i32.store offset=4 - local.get $11 - local.get $this - local.set $11 - global.get $~lib/memory/__stack_pointer - local.get $11 - i32.store offset=8 - local.get $11 - call $"~lib/map/Map#get:bucketsMask" - i32.const 1 - i32.shl - i32.const 1 - i32.or - call $"~lib/map/Map#rehash" - i32.const 0 - local.set $i - loop $for-loop|0 + local.get $12 local.get $i - local.get $initialEntries - local.set $11 + call $"~lib/array/Array<~lib/map/KeyValue>#__get" + local.set $12 global.get $~lib/memory/__stack_pointer - local.get $11 + local.get $12 i32.store offset=4 - local.get $11 - call $"~lib/array/Array<~lib/map/KeyValue>#get:length" - i32.lt_s + local.get $12 + call $"~lib/map/KeyValue#get:value" + local.set $value + local.get $key + call $~lib/util/hash/HASH + local.set $hashCode + local.get $this + local.set $12 + global.get $~lib/memory/__stack_pointer + local.get $12 + i32.store offset=4 + local.get $12 + local.get $key + local.get $hashCode + call $"~lib/map/Map#find" + local.set $entry + local.get $entry if - local.get $initialEntries - local.set $11 + local.get $entry + local.get $value + call $"~lib/map/MapEntry#set:value" + i32.const 0 + drop + else global.get $~lib/memory/__stack_pointer - local.get $11 - i32.store offset=8 - local.get $11 - local.get $i - call $"~lib/array/Array<~lib/map/KeyValue>#__get" - local.set $11 + local.get $this + local.set $12 global.get $~lib/memory/__stack_pointer - local.get $11 + local.get $12 i32.store offset=4 - local.get $11 - call $"~lib/map/KeyValue#get:key" - local.set $key - local.get $initialEntries - local.set $11 + local.get $12 + call $"~lib/map/Map#get:entries" + local.tee $entries + i32.store offset=12 + local.get $entries + local.get $this + local.set $12 global.get $~lib/memory/__stack_pointer - local.get $11 + local.get $12 + i32.store offset=4 + local.get $12 + local.get $this + local.set $12 + global.get $~lib/memory/__stack_pointer + local.get $12 i32.store offset=8 - local.get $11 - local.get $i - call $"~lib/array/Array<~lib/map/KeyValue>#__get" - local.set $11 + local.get $12 + call $"~lib/map/Map#get:entriesOffset" + local.tee $9 + i32.const 1 + i32.add + call $"~lib/map/Map#set:entriesOffset" + local.get $9 + block $"~lib/map/ENTRY_SIZE|inlined.4" (result i32) + i32.const 12 + br $"~lib/map/ENTRY_SIZE|inlined.4" + end + i32.mul + i32.add + local.set $entry|10 + local.get $entry|10 + local.get $key + call $"~lib/map/MapEntry#set:key" + i32.const 0 + drop + local.get $entry|10 + local.get $value + call $"~lib/map/MapEntry#set:value" + i32.const 0 + drop + local.get $this + local.set $12 global.get $~lib/memory/__stack_pointer - local.get $11 + local.get $12 i32.store offset=4 - local.get $11 - call $"~lib/map/KeyValue#get:value" - local.set $value - local.get $key - call $~lib/util/hash/HASH - local.set $hashCode + local.get $12 + local.get $this + local.set $12 + global.get $~lib/memory/__stack_pointer + local.get $12 + i32.store offset=8 + local.get $12 + call $"~lib/map/Map#get:entriesCount" + i32.const 1 + i32.add + call $"~lib/map/Map#set:entriesCount" local.get $this - local.set $11 + local.set $12 global.get $~lib/memory/__stack_pointer - local.get $11 + local.get $12 i32.store offset=4 - local.get $11 - local.get $key + local.get $12 + call $"~lib/map/Map#get:buckets" local.get $hashCode - call $"~lib/map/Map#find" - local.set $entry - local.get $entry - if - local.get $entry - local.get $value - call $"~lib/map/MapEntry#set:value" - i32.const 0 - drop - else - global.get $~lib/memory/__stack_pointer - local.get $this - local.set $11 - global.get $~lib/memory/__stack_pointer - local.get $11 - i32.store offset=4 - local.get $11 - call $"~lib/map/Map#get:entries" - local.tee $entries - i32.store offset=12 - local.get $entries - local.get $this - local.set $11 - global.get $~lib/memory/__stack_pointer - local.get $11 - i32.store offset=4 - local.get $11 - local.get $this - local.set $11 - global.get $~lib/memory/__stack_pointer - local.get $11 - i32.store offset=8 - local.get $11 - call $"~lib/map/Map#get:entriesOffset" - local.tee $8 - i32.const 1 - i32.add - call $"~lib/map/Map#set:entriesOffset" - local.get $8 - block $"~lib/map/ENTRY_SIZE|inlined.4" (result i32) - i32.const 12 - br $"~lib/map/ENTRY_SIZE|inlined.4" - end - i32.mul - i32.add - local.set $entry|9 - local.get $entry|9 - local.get $key - call $"~lib/map/MapEntry#set:key" - i32.const 0 - drop - local.get $entry|9 - local.get $value - call $"~lib/map/MapEntry#set:value" - i32.const 0 - drop - local.get $this - local.set $11 - global.get $~lib/memory/__stack_pointer - local.get $11 - i32.store offset=4 - local.get $11 - local.get $this - local.set $11 - global.get $~lib/memory/__stack_pointer - local.get $11 - i32.store offset=8 - local.get $11 - call $"~lib/map/Map#get:entriesCount" - i32.const 1 - i32.add - call $"~lib/map/Map#set:entriesCount" - local.get $this - local.set $11 - global.get $~lib/memory/__stack_pointer - local.get $11 - i32.store offset=4 - local.get $11 - call $"~lib/map/Map#get:buckets" - local.get $hashCode - local.get $this - local.set $11 - global.get $~lib/memory/__stack_pointer - local.get $11 - i32.store offset=4 - local.get $11 - call $"~lib/map/Map#get:bucketsMask" - i32.and - i32.const 4 - i32.mul - i32.add - local.set $bucketPtrBase - local.get $entry|9 - local.get $bucketPtrBase - i32.load - call $"~lib/map/MapEntry#set:taggedNext" - local.get $bucketPtrBase - local.get $entry|9 - i32.store - end - local.get $i - i32.const 1 + local.get $this + local.set $12 + global.get $~lib/memory/__stack_pointer + local.get $12 + i32.store offset=4 + local.get $12 + call $"~lib/map/Map#get:bucketsMask" + i32.and + i32.const 4 + i32.mul i32.add - local.set $i - br $for-loop|0 + local.set $bucketPtrBase + local.get $entry|10 + local.get $bucketPtrBase + i32.load + call $"~lib/map/MapEntry#set:taggedNext" + local.get $bucketPtrBase + local.get $entry|10 + i32.store end + local.get $i + i32.const 1 + i32.add + local.set $i + br $for-loop|0 end end local.get $this - local.set $11 + local.set $12 global.get $~lib/memory/__stack_pointer i32.const 16 i32.add global.set $~lib/memory/__stack_pointer - local.get $11 + local.get $12 ) (func $~lib/array/Array#get:length (param $this i32) (result i32) (local $1 i32) @@ -26672,6 +26984,7 @@ (local $15 i32) (local $k|16 i32) (local $17 i32) + (local $18 i32) global.get $~lib/memory/__stack_pointer i32.const 40 i32.sub @@ -26695,11 +27008,11 @@ i32.lt_u if local.get $map - local.set $17 + local.set $18 global.get $~lib/memory/__stack_pointer - local.get $17 + local.get $18 i32.store offset=4 - local.get $17 + local.get $18 local.get $k call $"~lib/map/Map#has" i32.eqz @@ -26713,11 +27026,11 @@ unreachable end local.get $map - local.set $17 + local.set $18 global.get $~lib/memory/__stack_pointer - local.get $17 + local.get $18 i32.store offset=4 - local.get $17 + local.get $18 local.get $k i32.const 10 local.get $k @@ -26725,11 +27038,11 @@ call $"~lib/map/Map#set" drop local.get $map - local.set $17 + local.set $18 global.get $~lib/memory/__stack_pointer - local.get $17 + local.get $18 i32.store offset=4 - local.get $17 + local.get $18 local.get $k call $"~lib/map/Map#has" i32.eqz @@ -26742,11 +27055,11 @@ unreachable end local.get $map - local.set $17 + local.set $18 global.get $~lib/memory/__stack_pointer - local.get $17 + local.get $18 i32.store offset=4 - local.get $17 + local.get $18 local.get $k call $"~lib/map/Map#get" i32.const 10 @@ -26770,11 +27083,11 @@ end end local.get $map - local.set $17 + local.set $18 global.get $~lib/memory/__stack_pointer - local.get $17 + local.get $18 i32.store offset=4 - local.get $17 + local.get $18 call $"~lib/map/Map#get:size" i32.const 100 i32.eq @@ -26795,11 +27108,11 @@ i32.lt_u if local.get $map - local.set $17 + local.set $18 global.get $~lib/memory/__stack_pointer - local.get $17 + local.get $18 i32.store offset=4 - local.get $17 + local.get $18 local.get $k|2 call $"~lib/map/Map#has" i32.eqz @@ -26812,11 +27125,11 @@ unreachable end local.get $map - local.set $17 + local.set $18 global.get $~lib/memory/__stack_pointer - local.get $17 + local.get $18 i32.store offset=4 - local.get $17 + local.get $18 local.get $k|2 call $"~lib/map/Map#get" i32.const 10 @@ -26833,11 +27146,11 @@ unreachable end local.get $map - local.set $17 + local.set $18 global.get $~lib/memory/__stack_pointer - local.get $17 + local.get $18 i32.store offset=4 - local.get $17 + local.get $18 local.get $k|2 i32.const 20 local.get $k|2 @@ -26845,11 +27158,11 @@ call $"~lib/map/Map#set" drop local.get $map - local.set $17 + local.set $18 global.get $~lib/memory/__stack_pointer - local.get $17 + local.get $18 i32.store offset=4 - local.get $17 + local.get $18 local.get $k|2 call $"~lib/map/Map#has" i32.eqz @@ -26862,11 +27175,11 @@ unreachable end local.get $map - local.set $17 + local.set $18 global.get $~lib/memory/__stack_pointer - local.get $17 + local.get $18 i32.store offset=4 - local.get $17 + local.get $18 local.get $k|2 call $"~lib/map/Map#get" i32.const 20 @@ -26890,11 +27203,11 @@ end end local.get $map - local.set $17 + local.set $18 global.get $~lib/memory/__stack_pointer - local.get $17 + local.get $18 i32.store offset=4 - local.get $17 + local.get $18 call $"~lib/map/Map#get:size" i32.const 100 i32.eq @@ -26909,21 +27222,21 @@ end global.get $~lib/memory/__stack_pointer local.get $map - local.set $17 + local.set $18 global.get $~lib/memory/__stack_pointer - local.get $17 + local.get $18 i32.store offset=4 - local.get $17 + local.get $18 call $"~lib/map/Map#keys" local.tee $keys i32.store offset=8 global.get $~lib/memory/__stack_pointer local.get $map - local.set $17 + local.set $18 global.get $~lib/memory/__stack_pointer - local.get $17 + local.get $18 i32.store offset=4 - local.get $17 + local.get $18 call $"~lib/map/Map#values" local.tee $vals i32.store offset=12 @@ -26944,38 +27257,38 @@ loop $for-loop|2 local.get $index local.get $keys - local.set $17 + local.set $18 global.get $~lib/memory/__stack_pointer - local.get $17 + local.get $18 i32.store offset=4 - local.get $17 + local.get $18 call $~lib/array/Array#get:length i32.lt_s if local.get $keys - local.set $17 + local.set $18 global.get $~lib/memory/__stack_pointer - local.get $17 + local.get $18 i32.store offset=4 - local.get $17 + local.get $18 local.get $index call $~lib/array/Array#__get local.set $key local.get $vals - local.set $17 + local.set $18 global.get $~lib/memory/__stack_pointer - local.get $17 + local.get $18 i32.store offset=4 - local.get $17 + local.get $18 local.get $index call $~lib/array/Array#__get local.set $value local.get $map - local.set $17 + local.set $18 global.get $~lib/memory/__stack_pointer - local.get $17 + local.get $18 i32.store offset=4 - local.get $17 + local.get $18 local.get $key call $"~lib/map/Map#has" i32.eqz @@ -26988,11 +27301,11 @@ unreachable end local.get $map - local.set $17 + local.set $18 global.get $~lib/memory/__stack_pointer - local.get $17 + local.get $18 i32.store offset=4 - local.get $17 + local.get $18 local.get $value i32.const 20 i32.sub @@ -27007,21 +27320,21 @@ unreachable end local.get $keyMap - local.set $17 + local.set $18 global.get $~lib/memory/__stack_pointer - local.get $17 + local.get $18 i32.store offset=4 - local.get $17 + local.get $18 local.get $key local.get $key call $"~lib/map/Map#set" drop local.get $valMap - local.set $17 + local.set $18 global.get $~lib/memory/__stack_pointer - local.get $17 + local.get $18 i32.store offset=4 - local.get $17 + local.get $18 local.get $value i32.const 20 i32.sub @@ -27038,11 +27351,11 @@ end end local.get $keyMap - local.set $17 + local.set $18 global.get $~lib/memory/__stack_pointer - local.get $17 + local.get $18 i32.store offset=4 - local.get $17 + local.get $18 call $"~lib/map/Map#get:size" i32.const 100 i32.eq @@ -27056,11 +27369,11 @@ unreachable end local.get $valMap - local.set $17 + local.set $18 global.get $~lib/memory/__stack_pointer - local.get $17 + local.get $18 i32.store offset=4 - local.get $17 + local.get $18 call $"~lib/map/Map#get:size" i32.const 100 i32.eq @@ -27081,11 +27394,11 @@ i32.lt_u if local.get $map - local.set $17 + local.set $18 global.get $~lib/memory/__stack_pointer - local.get $17 + local.get $18 i32.store offset=4 - local.get $17 + local.get $18 local.get $k|10 call $"~lib/map/Map#has" i32.eqz @@ -27098,11 +27411,11 @@ unreachable end local.get $map - local.set $17 + local.set $18 global.get $~lib/memory/__stack_pointer - local.get $17 + local.get $18 i32.store offset=4 - local.get $17 + local.get $18 local.get $k|10 call $"~lib/map/Map#get" i32.const 20 @@ -27119,20 +27432,20 @@ unreachable end local.get $map - local.set $17 + local.set $18 global.get $~lib/memory/__stack_pointer - local.get $17 + local.get $18 i32.store offset=4 - local.get $17 + local.get $18 local.get $k|10 call $"~lib/map/Map#delete" drop local.get $map - local.set $17 + local.set $18 global.get $~lib/memory/__stack_pointer - local.get $17 + local.get $18 i32.store offset=4 - local.get $17 + local.get $18 local.get $k|10 call $"~lib/map/Map#has" i32.eqz @@ -27153,11 +27466,11 @@ end end local.get $map - local.set $17 + local.set $18 global.get $~lib/memory/__stack_pointer - local.get $17 + local.get $18 i32.store offset=4 - local.get $17 + local.get $18 call $"~lib/map/Map#get:size" i32.const 50 i32.eq @@ -27178,11 +27491,11 @@ i32.lt_u if local.get $map - local.set $17 + local.set $18 global.get $~lib/memory/__stack_pointer - local.get $17 + local.get $18 i32.store offset=4 - local.get $17 + local.get $18 local.get $k|11 call $"~lib/map/Map#has" i32.eqz @@ -27196,11 +27509,11 @@ unreachable end local.get $map - local.set $17 + local.set $18 global.get $~lib/memory/__stack_pointer - local.get $17 + local.get $18 i32.store offset=4 - local.get $17 + local.get $18 local.get $k|11 i32.const 10 local.get $k|11 @@ -27208,11 +27521,11 @@ call $"~lib/map/Map#set" drop local.get $map - local.set $17 + local.set $18 global.get $~lib/memory/__stack_pointer - local.get $17 + local.get $18 i32.store offset=4 - local.get $17 + local.get $18 local.get $k|11 call $"~lib/map/Map#has" i32.eqz @@ -27225,20 +27538,20 @@ unreachable end local.get $map - local.set $17 + local.set $18 global.get $~lib/memory/__stack_pointer - local.get $17 + local.get $18 i32.store offset=4 - local.get $17 + local.get $18 local.get $k|11 call $"~lib/map/Map#delete" drop local.get $map - local.set $17 + local.set $18 global.get $~lib/memory/__stack_pointer - local.get $17 + local.get $18 i32.store offset=4 - local.get $17 + local.get $18 local.get $k|11 call $"~lib/map/Map#has" i32.eqz @@ -27259,11 +27572,11 @@ end end local.get $map - local.set $17 + local.set $18 global.get $~lib/memory/__stack_pointer - local.get $17 + local.get $18 i32.store offset=4 - local.get $17 + local.get $18 call $"~lib/map/Map#get:size" i32.const 50 i32.eq @@ -27277,18 +27590,18 @@ unreachable end local.get $map - local.set $17 + local.set $18 global.get $~lib/memory/__stack_pointer - local.get $17 + local.get $18 i32.store offset=4 - local.get $17 + local.get $18 call $"~lib/map/Map#clear" local.get $map - local.set $17 + local.set $18 global.get $~lib/memory/__stack_pointer - local.get $17 + local.get $18 i32.store offset=4 - local.get $17 + local.get $18 call $"~lib/map/Map#get:size" i32.const 0 i32.eq @@ -27305,7 +27618,7 @@ i32.const 0 i32.const 2 i32.const 38 - i32.const 1040 + i32.const 1200 call $~lib/rt/__newArray local.tee $initialEntries i32.store offset=24 @@ -27317,40 +27630,40 @@ i32.lt_u if local.get $initialEntries - local.set $17 + local.set $18 global.get $~lib/memory/__stack_pointer - local.get $17 + local.get $18 i32.store offset=4 - local.get $17 + local.get $18 global.get $~lib/memory/__stack_pointer i32.const 0 call $"~lib/map/KeyValue#constructor" local.tee $15 i32.store offset=32 local.get $15 - local.set $17 + local.set $18 global.get $~lib/memory/__stack_pointer - local.get $17 + local.get $18 i32.store offset=36 - local.get $17 + local.get $18 local.get $k|14 call $"~lib/map/KeyValue#set:key" local.get $15 - local.set $17 + local.set $18 global.get $~lib/memory/__stack_pointer - local.get $17 + local.get $18 i32.store offset=36 - local.get $17 + local.get $18 i32.const 10 local.get $k|14 i32.add call $"~lib/map/KeyValue#set:value" local.get $15 - local.set $17 + local.set $18 global.get $~lib/memory/__stack_pointer - local.get $17 + local.get $18 i32.store offset=28 - local.get $17 + local.get $18 call $"~lib/array/Array<~lib/map/KeyValue>#push" drop local.get $k|14 @@ -27363,20 +27676,20 @@ global.get $~lib/memory/__stack_pointer i32.const 0 local.get $initialEntries - local.set $17 + local.set $18 global.get $~lib/memory/__stack_pointer - local.get $17 + local.get $18 i32.store offset=4 - local.get $17 + local.get $18 call $"~lib/map/Map#constructor" local.tee $map i32.store local.get $map - local.set $17 + local.set $18 global.get $~lib/memory/__stack_pointer - local.get $17 + local.get $18 i32.store offset=4 - local.get $17 + local.get $18 call $"~lib/map/Map#get:size" i32.const 100 i32.eq @@ -27384,7 +27697,7 @@ if i32.const 0 i32.const 720 - i32.const 74 + i32.const 75 i32.const 3 call $~lib/builtins/abort unreachable @@ -27397,28 +27710,28 @@ i32.lt_u if local.get $map - local.set $17 + local.set $18 global.get $~lib/memory/__stack_pointer - local.get $17 + local.get $18 i32.store offset=4 - local.get $17 + local.get $18 local.get $k|16 call $"~lib/map/Map#has" i32.eqz if i32.const 0 i32.const 720 - i32.const 76 + i32.const 77 i32.const 5 call $~lib/builtins/abort unreachable end local.get $map - local.set $17 + local.set $18 global.get $~lib/memory/__stack_pointer - local.get $17 + local.get $18 i32.store offset=4 - local.get $17 + local.get $18 local.get $k|16 call $"~lib/map/Map#get" i32.const 10 @@ -27429,26 +27742,26 @@ if i32.const 0 i32.const 720 - i32.const 77 + i32.const 78 i32.const 5 call $~lib/builtins/abort unreachable end local.get $map - local.set $17 + local.set $18 global.get $~lib/memory/__stack_pointer - local.get $17 + local.get $18 i32.store offset=4 - local.get $17 + local.get $18 local.get $k|16 call $"~lib/map/Map#delete" drop local.get $map - local.set $17 + local.set $18 global.get $~lib/memory/__stack_pointer - local.get $17 + local.get $18 i32.store offset=4 - local.get $17 + local.get $18 local.get $k|16 call $"~lib/map/Map#has" i32.eqz @@ -27456,7 +27769,7 @@ if i32.const 0 i32.const 720 - i32.const 79 + i32.const 80 i32.const 5 call $~lib/builtins/abort unreachable @@ -27469,11 +27782,11 @@ end end local.get $map - local.set $17 + local.set $18 global.get $~lib/memory/__stack_pointer - local.get $17 + local.get $18 i32.store offset=4 - local.get $17 + local.get $18 call $"~lib/map/Map#get:size" i32.const 0 i32.eq @@ -27481,7 +27794,40 @@ if i32.const 0 i32.const 720 - i32.const 81 + i32.const 82 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.const 0 + i32.const 2 + i32.const 38 + i32.const 1232 + call $~lib/rt/__newArray + local.set $18 + global.get $~lib/memory/__stack_pointer + local.get $18 + i32.store offset=4 + local.get $18 + call $"~lib/map/Map#constructor" + local.tee $map + i32.store + local.get $map + local.set $18 + global.get $~lib/memory/__stack_pointer + local.get $18 + i32.store offset=4 + local.get $18 + call $"~lib/map/Map#get:size" + i32.const 0 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 720 + i32.const 85 i32.const 3 call $~lib/builtins/abort unreachable @@ -27864,16 +28210,17 @@ return ) (func $"~lib/map/Map#constructor" (param $this i32) (param $initialEntries i32) (result i32) + (local $initialEntriesLength i32) (local $i i32) (local $key i64) (local $value i32) (local $hashCode i32) (local $entry i32) (local $entries i32) - (local $8 i32) - (local $entry|9 i32) + (local $9 i32) + (local $entry|10 i32) (local $bucketPtrBase i32) - (local $11 i32) + (local $12 i32) global.get $~lib/memory/__stack_pointer i32.const 16 i32.sub @@ -27896,38 +28243,38 @@ i32.store end local.get $this - local.set $11 + local.set $12 global.get $~lib/memory/__stack_pointer - local.get $11 + local.get $12 i32.store offset=4 - local.get $11 + local.get $12 i32.const 0 i32.const 4 i32.const 4 i32.mul call $~lib/arraybuffer/ArrayBuffer#constructor - local.set $11 + local.set $12 global.get $~lib/memory/__stack_pointer - local.get $11 + local.get $12 i32.store offset=8 - local.get $11 + local.get $12 call $"~lib/map/Map#set:buckets" local.get $this - local.set $11 + local.set $12 global.get $~lib/memory/__stack_pointer - local.get $11 + local.get $12 i32.store offset=4 - local.get $11 + local.get $12 i32.const 4 i32.const 1 i32.sub call $"~lib/map/Map#set:bucketsMask" local.get $this - local.set $11 + local.set $12 global.get $~lib/memory/__stack_pointer - local.get $11 + local.get $12 i32.store offset=4 - local.get $11 + local.get $12 i32.const 0 i32.const 4 block $"~lib/map/ENTRY_SIZE|inlined.5" (result i32) @@ -27936,256 +28283,267 @@ end i32.mul call $~lib/arraybuffer/ArrayBuffer#constructor - local.set $11 + local.set $12 global.get $~lib/memory/__stack_pointer - local.get $11 + local.get $12 i32.store offset=8 - local.get $11 + local.get $12 call $"~lib/map/Map#set:entries" local.get $this - local.set $11 + local.set $12 global.get $~lib/memory/__stack_pointer - local.get $11 + local.get $12 i32.store offset=4 - local.get $11 + local.get $12 i32.const 4 call $"~lib/map/Map#set:entriesCapacity" local.get $this - local.set $11 + local.set $12 global.get $~lib/memory/__stack_pointer - local.get $11 + local.get $12 i32.store offset=4 - local.get $11 + local.get $12 i32.const 0 call $"~lib/map/Map#set:entriesOffset" local.get $this - local.set $11 + local.set $12 global.get $~lib/memory/__stack_pointer - local.get $11 + local.get $12 i32.store offset=4 - local.get $11 + local.get $12 i32.const 0 call $"~lib/map/Map#set:entriesCount" local.get $initialEntries - if + i32.eqz + if (result i32) + i32.const 1 + else local.get $initialEntries - local.set $11 + local.set $12 global.get $~lib/memory/__stack_pointer - local.get $11 + local.get $12 i32.store offset=4 - local.get $11 + local.get $12 call $"~lib/array/Array<~lib/map/KeyValue>#get:length" + i32.eqz + end + if + local.get $this + local.set $12 + global.get $~lib/memory/__stack_pointer + i32.const 16 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $12 + return + end + local.get $initialEntries + local.set $12 + global.get $~lib/memory/__stack_pointer + local.get $12 + i32.store offset=4 + local.get $12 + call $"~lib/array/Array<~lib/map/KeyValue>#get:length" + local.set $initialEntriesLength + local.get $initialEntriesLength + local.get $this + local.set $12 + global.get $~lib/memory/__stack_pointer + local.get $12 + i32.store offset=4 + local.get $12 + call $"~lib/map/Map#get:entriesCapacity" + i32.ge_s + if local.get $this - local.set $11 + local.set $12 global.get $~lib/memory/__stack_pointer - local.get $11 + local.get $12 i32.store offset=4 - local.get $11 - call $"~lib/map/Map#get:entriesCapacity" - i32.ge_s + local.get $12 + local.get $initialEntriesLength + call $"~lib/map/Map#set:bucketsMask" + end + local.get $this + local.set $12 + global.get $~lib/memory/__stack_pointer + local.get $12 + i32.store offset=4 + local.get $12 + local.get $this + local.set $12 + global.get $~lib/memory/__stack_pointer + local.get $12 + i32.store offset=8 + local.get $12 + call $"~lib/map/Map#get:bucketsMask" + i32.const 1 + i32.shl + i32.const 1 + i32.or + call $"~lib/map/Map#rehash" + i32.const 0 + local.set $i + loop $for-loop|0 + local.get $i + local.get $initialEntriesLength + i32.lt_s if - local.get $this - local.set $11 + local.get $initialEntries + local.set $12 global.get $~lib/memory/__stack_pointer - local.get $11 + local.get $12 + i32.store offset=8 + local.get $12 + local.get $i + call $"~lib/array/Array<~lib/map/KeyValue>#__get" + local.set $12 + global.get $~lib/memory/__stack_pointer + local.get $12 i32.store offset=4 - local.get $11 + local.get $12 + call $"~lib/map/KeyValue#get:key" + local.set $key local.get $initialEntries - local.set $11 + local.set $12 global.get $~lib/memory/__stack_pointer - local.get $11 + local.get $12 i32.store offset=8 - local.get $11 - call $"~lib/array/Array<~lib/map/KeyValue>#get:length" - call $"~lib/map/Map#set:bucketsMask" - end - local.get $this - local.set $11 - global.get $~lib/memory/__stack_pointer - local.get $11 - i32.store offset=4 - local.get $11 - local.get $this - local.set $11 - global.get $~lib/memory/__stack_pointer - local.get $11 - i32.store offset=8 - local.get $11 - call $"~lib/map/Map#get:bucketsMask" - i32.const 1 - i32.shl - i32.const 1 - i32.or - call $"~lib/map/Map#rehash" - i32.const 0 - local.set $i - loop $for-loop|0 + local.get $12 local.get $i - local.get $initialEntries - local.set $11 + call $"~lib/array/Array<~lib/map/KeyValue>#__get" + local.set $12 global.get $~lib/memory/__stack_pointer - local.get $11 + local.get $12 i32.store offset=4 - local.get $11 - call $"~lib/array/Array<~lib/map/KeyValue>#get:length" - i32.lt_s + local.get $12 + call $"~lib/map/KeyValue#get:value" + local.set $value + local.get $key + call $~lib/util/hash/HASH + local.set $hashCode + local.get $this + local.set $12 + global.get $~lib/memory/__stack_pointer + local.get $12 + i32.store offset=4 + local.get $12 + local.get $key + local.get $hashCode + call $"~lib/map/Map#find" + local.set $entry + local.get $entry if - local.get $initialEntries - local.set $11 + local.get $entry + local.get $value + call $"~lib/map/MapEntry#set:value" + i32.const 0 + drop + else global.get $~lib/memory/__stack_pointer - local.get $11 - i32.store offset=8 - local.get $11 - local.get $i - call $"~lib/array/Array<~lib/map/KeyValue>#__get" - local.set $11 + local.get $this + local.set $12 global.get $~lib/memory/__stack_pointer - local.get $11 + local.get $12 i32.store offset=4 - local.get $11 - call $"~lib/map/KeyValue#get:key" - local.set $key - local.get $initialEntries - local.set $11 + local.get $12 + call $"~lib/map/Map#get:entries" + local.tee $entries + i32.store offset=12 + local.get $entries + local.get $this + local.set $12 global.get $~lib/memory/__stack_pointer - local.get $11 + local.get $12 + i32.store offset=4 + local.get $12 + local.get $this + local.set $12 + global.get $~lib/memory/__stack_pointer + local.get $12 i32.store offset=8 - local.get $11 - local.get $i - call $"~lib/array/Array<~lib/map/KeyValue>#__get" - local.set $11 + local.get $12 + call $"~lib/map/Map#get:entriesOffset" + local.tee $9 + i32.const 1 + i32.add + call $"~lib/map/Map#set:entriesOffset" + local.get $9 + block $"~lib/map/ENTRY_SIZE|inlined.4" (result i32) + i32.const 16 + br $"~lib/map/ENTRY_SIZE|inlined.4" + end + i32.mul + i32.add + local.set $entry|10 + local.get $entry|10 + local.get $key + call $"~lib/map/MapEntry#set:key" + i32.const 0 + drop + local.get $entry|10 + local.get $value + call $"~lib/map/MapEntry#set:value" + i32.const 0 + drop + local.get $this + local.set $12 global.get $~lib/memory/__stack_pointer - local.get $11 + local.get $12 i32.store offset=4 - local.get $11 - call $"~lib/map/KeyValue#get:value" - local.set $value - local.get $key - call $~lib/util/hash/HASH - local.set $hashCode + local.get $12 local.get $this - local.set $11 + local.set $12 global.get $~lib/memory/__stack_pointer - local.get $11 + local.get $12 + i32.store offset=8 + local.get $12 + call $"~lib/map/Map#get:entriesCount" + i32.const 1 + i32.add + call $"~lib/map/Map#set:entriesCount" + local.get $this + local.set $12 + global.get $~lib/memory/__stack_pointer + local.get $12 i32.store offset=4 - local.get $11 - local.get $key + local.get $12 + call $"~lib/map/Map#get:buckets" local.get $hashCode - call $"~lib/map/Map#find" - local.set $entry - local.get $entry - if - local.get $entry - local.get $value - call $"~lib/map/MapEntry#set:value" - i32.const 0 - drop - else - global.get $~lib/memory/__stack_pointer - local.get $this - local.set $11 - global.get $~lib/memory/__stack_pointer - local.get $11 - i32.store offset=4 - local.get $11 - call $"~lib/map/Map#get:entries" - local.tee $entries - i32.store offset=12 - local.get $entries - local.get $this - local.set $11 - global.get $~lib/memory/__stack_pointer - local.get $11 - i32.store offset=4 - local.get $11 - local.get $this - local.set $11 - global.get $~lib/memory/__stack_pointer - local.get $11 - i32.store offset=8 - local.get $11 - call $"~lib/map/Map#get:entriesOffset" - local.tee $8 - i32.const 1 - i32.add - call $"~lib/map/Map#set:entriesOffset" - local.get $8 - block $"~lib/map/ENTRY_SIZE|inlined.4" (result i32) - i32.const 16 - br $"~lib/map/ENTRY_SIZE|inlined.4" - end - i32.mul - i32.add - local.set $entry|9 - local.get $entry|9 - local.get $key - call $"~lib/map/MapEntry#set:key" - i32.const 0 - drop - local.get $entry|9 - local.get $value - call $"~lib/map/MapEntry#set:value" - i32.const 0 - drop - local.get $this - local.set $11 - global.get $~lib/memory/__stack_pointer - local.get $11 - i32.store offset=4 - local.get $11 - local.get $this - local.set $11 - global.get $~lib/memory/__stack_pointer - local.get $11 - i32.store offset=8 - local.get $11 - call $"~lib/map/Map#get:entriesCount" - i32.const 1 - i32.add - call $"~lib/map/Map#set:entriesCount" - local.get $this - local.set $11 - global.get $~lib/memory/__stack_pointer - local.get $11 - i32.store offset=4 - local.get $11 - call $"~lib/map/Map#get:buckets" - local.get $hashCode - local.get $this - local.set $11 - global.get $~lib/memory/__stack_pointer - local.get $11 - i32.store offset=4 - local.get $11 - call $"~lib/map/Map#get:bucketsMask" - i32.and - i32.const 4 - i32.mul - i32.add - local.set $bucketPtrBase - local.get $entry|9 - local.get $bucketPtrBase - i32.load - call $"~lib/map/MapEntry#set:taggedNext" - local.get $bucketPtrBase - local.get $entry|9 - i32.store - end - local.get $i - i32.const 1 + local.get $this + local.set $12 + global.get $~lib/memory/__stack_pointer + local.get $12 + i32.store offset=4 + local.get $12 + call $"~lib/map/Map#get:bucketsMask" + i32.and + i32.const 4 + i32.mul i32.add - local.set $i - br $for-loop|0 + local.set $bucketPtrBase + local.get $entry|10 + local.get $bucketPtrBase + i32.load + call $"~lib/map/MapEntry#set:taggedNext" + local.get $bucketPtrBase + local.get $entry|10 + i32.store end + local.get $i + i32.const 1 + i32.add + local.set $i + br $for-loop|0 end end local.get $this - local.set $11 + local.set $12 global.get $~lib/memory/__stack_pointer i32.const 16 i32.add global.set $~lib/memory/__stack_pointer - local.get $11 + local.get $12 ) (func $"~lib/map/Map#has" (param $this i32) (param $key i64) (result i32) (local $2 i32) @@ -28446,7 +28804,7 @@ if i32.const 768 i32.const 832 - i32.const 146 + i32.const 147 i32.const 17 call $~lib/builtins/abort unreachable @@ -29300,16 +29658,17 @@ return ) (func $"~lib/map/Map#constructor" (param $this i32) (param $initialEntries i32) (result i32) + (local $initialEntriesLength i32) (local $i i32) (local $key i64) (local $value i64) (local $hashCode i32) (local $entry i32) (local $entries i32) - (local $8 i32) - (local $entry|9 i32) + (local $9 i32) + (local $entry|10 i32) (local $bucketPtrBase i32) - (local $11 i32) + (local $12 i32) global.get $~lib/memory/__stack_pointer i32.const 16 i32.sub @@ -29332,38 +29691,38 @@ i32.store end local.get $this - local.set $11 + local.set $12 global.get $~lib/memory/__stack_pointer - local.get $11 + local.get $12 i32.store offset=4 - local.get $11 + local.get $12 i32.const 0 i32.const 4 i32.const 4 i32.mul call $~lib/arraybuffer/ArrayBuffer#constructor - local.set $11 + local.set $12 global.get $~lib/memory/__stack_pointer - local.get $11 + local.get $12 i32.store offset=8 - local.get $11 + local.get $12 call $"~lib/map/Map#set:buckets" local.get $this - local.set $11 + local.set $12 global.get $~lib/memory/__stack_pointer - local.get $11 + local.get $12 i32.store offset=4 - local.get $11 + local.get $12 i32.const 4 i32.const 1 i32.sub call $"~lib/map/Map#set:bucketsMask" local.get $this - local.set $11 + local.set $12 global.get $~lib/memory/__stack_pointer - local.get $11 + local.get $12 i32.store offset=4 - local.get $11 + local.get $12 i32.const 0 i32.const 4 block $"~lib/map/ENTRY_SIZE|inlined.5" (result i32) @@ -29372,256 +29731,267 @@ end i32.mul call $~lib/arraybuffer/ArrayBuffer#constructor - local.set $11 + local.set $12 global.get $~lib/memory/__stack_pointer - local.get $11 + local.get $12 i32.store offset=8 - local.get $11 + local.get $12 call $"~lib/map/Map#set:entries" local.get $this - local.set $11 + local.set $12 global.get $~lib/memory/__stack_pointer - local.get $11 + local.get $12 i32.store offset=4 - local.get $11 + local.get $12 i32.const 4 call $"~lib/map/Map#set:entriesCapacity" local.get $this - local.set $11 + local.set $12 global.get $~lib/memory/__stack_pointer - local.get $11 + local.get $12 i32.store offset=4 - local.get $11 + local.get $12 i32.const 0 call $"~lib/map/Map#set:entriesOffset" local.get $this - local.set $11 + local.set $12 global.get $~lib/memory/__stack_pointer - local.get $11 + local.get $12 i32.store offset=4 - local.get $11 + local.get $12 i32.const 0 call $"~lib/map/Map#set:entriesCount" local.get $initialEntries - if + i32.eqz + if (result i32) + i32.const 1 + else local.get $initialEntries - local.set $11 + local.set $12 global.get $~lib/memory/__stack_pointer - local.get $11 + local.get $12 i32.store offset=4 - local.get $11 + local.get $12 call $"~lib/array/Array<~lib/map/KeyValue>#get:length" + i32.eqz + end + if local.get $this - local.set $11 + local.set $12 global.get $~lib/memory/__stack_pointer - local.get $11 + i32.const 16 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $12 + return + end + local.get $initialEntries + local.set $12 + global.get $~lib/memory/__stack_pointer + local.get $12 + i32.store offset=4 + local.get $12 + call $"~lib/array/Array<~lib/map/KeyValue>#get:length" + local.set $initialEntriesLength + local.get $initialEntriesLength + local.get $this + local.set $12 + global.get $~lib/memory/__stack_pointer + local.get $12 + i32.store offset=4 + local.get $12 + call $"~lib/map/Map#get:entriesCapacity" + i32.ge_s + if + local.get $this + local.set $12 + global.get $~lib/memory/__stack_pointer + local.get $12 i32.store offset=4 - local.get $11 - call $"~lib/map/Map#get:entriesCapacity" - i32.ge_s + local.get $12 + local.get $initialEntriesLength + call $"~lib/map/Map#set:bucketsMask" + end + local.get $this + local.set $12 + global.get $~lib/memory/__stack_pointer + local.get $12 + i32.store offset=4 + local.get $12 + local.get $this + local.set $12 + global.get $~lib/memory/__stack_pointer + local.get $12 + i32.store offset=8 + local.get $12 + call $"~lib/map/Map#get:bucketsMask" + i32.const 1 + i32.shl + i32.const 1 + i32.or + call $"~lib/map/Map#rehash" + i32.const 0 + local.set $i + loop $for-loop|0 + local.get $i + local.get $initialEntriesLength + i32.lt_s if - local.get $this - local.set $11 + local.get $initialEntries + local.set $12 global.get $~lib/memory/__stack_pointer - local.get $11 + local.get $12 + i32.store offset=8 + local.get $12 + local.get $i + call $"~lib/array/Array<~lib/map/KeyValue>#__get" + local.set $12 + global.get $~lib/memory/__stack_pointer + local.get $12 i32.store offset=4 - local.get $11 + local.get $12 + call $"~lib/map/KeyValue#get:key" + local.set $key local.get $initialEntries - local.set $11 + local.set $12 global.get $~lib/memory/__stack_pointer - local.get $11 + local.get $12 i32.store offset=8 - local.get $11 - call $"~lib/array/Array<~lib/map/KeyValue>#get:length" - call $"~lib/map/Map#set:bucketsMask" - end - local.get $this - local.set $11 - global.get $~lib/memory/__stack_pointer - local.get $11 - i32.store offset=4 - local.get $11 - local.get $this - local.set $11 - global.get $~lib/memory/__stack_pointer - local.get $11 - i32.store offset=8 - local.get $11 - call $"~lib/map/Map#get:bucketsMask" - i32.const 1 - i32.shl - i32.const 1 - i32.or - call $"~lib/map/Map#rehash" - i32.const 0 - local.set $i - loop $for-loop|0 + local.get $12 local.get $i - local.get $initialEntries - local.set $11 + call $"~lib/array/Array<~lib/map/KeyValue>#__get" + local.set $12 global.get $~lib/memory/__stack_pointer - local.get $11 + local.get $12 i32.store offset=4 - local.get $11 - call $"~lib/array/Array<~lib/map/KeyValue>#get:length" - i32.lt_s + local.get $12 + call $"~lib/map/KeyValue#get:value" + local.set $value + local.get $key + call $~lib/util/hash/HASH + local.set $hashCode + local.get $this + local.set $12 + global.get $~lib/memory/__stack_pointer + local.get $12 + i32.store offset=4 + local.get $12 + local.get $key + local.get $hashCode + call $"~lib/map/Map#find" + local.set $entry + local.get $entry if - local.get $initialEntries - local.set $11 + local.get $entry + local.get $value + call $"~lib/map/MapEntry#set:value" + i32.const 0 + drop + else global.get $~lib/memory/__stack_pointer - local.get $11 - i32.store offset=8 - local.get $11 - local.get $i - call $"~lib/array/Array<~lib/map/KeyValue>#__get" - local.set $11 + local.get $this + local.set $12 global.get $~lib/memory/__stack_pointer - local.get $11 + local.get $12 i32.store offset=4 - local.get $11 - call $"~lib/map/KeyValue#get:key" - local.set $key - local.get $initialEntries - local.set $11 + local.get $12 + call $"~lib/map/Map#get:entries" + local.tee $entries + i32.store offset=12 + local.get $entries + local.get $this + local.set $12 global.get $~lib/memory/__stack_pointer - local.get $11 + local.get $12 + i32.store offset=4 + local.get $12 + local.get $this + local.set $12 + global.get $~lib/memory/__stack_pointer + local.get $12 i32.store offset=8 - local.get $11 - local.get $i - call $"~lib/array/Array<~lib/map/KeyValue>#__get" - local.set $11 + local.get $12 + call $"~lib/map/Map#get:entriesOffset" + local.tee $9 + i32.const 1 + i32.add + call $"~lib/map/Map#set:entriesOffset" + local.get $9 + block $"~lib/map/ENTRY_SIZE|inlined.4" (result i32) + i32.const 24 + br $"~lib/map/ENTRY_SIZE|inlined.4" + end + i32.mul + i32.add + local.set $entry|10 + local.get $entry|10 + local.get $key + call $"~lib/map/MapEntry#set:key" + i32.const 0 + drop + local.get $entry|10 + local.get $value + call $"~lib/map/MapEntry#set:value" + i32.const 0 + drop + local.get $this + local.set $12 global.get $~lib/memory/__stack_pointer - local.get $11 + local.get $12 i32.store offset=4 - local.get $11 - call $"~lib/map/KeyValue#get:value" - local.set $value - local.get $key - call $~lib/util/hash/HASH - local.set $hashCode + local.get $12 + local.get $this + local.set $12 + global.get $~lib/memory/__stack_pointer + local.get $12 + i32.store offset=8 + local.get $12 + call $"~lib/map/Map#get:entriesCount" + i32.const 1 + i32.add + call $"~lib/map/Map#set:entriesCount" local.get $this - local.set $11 + local.set $12 global.get $~lib/memory/__stack_pointer - local.get $11 + local.get $12 i32.store offset=4 - local.get $11 - local.get $key + local.get $12 + call $"~lib/map/Map#get:buckets" local.get $hashCode - call $"~lib/map/Map#find" - local.set $entry - local.get $entry - if - local.get $entry - local.get $value - call $"~lib/map/MapEntry#set:value" - i32.const 0 - drop - else - global.get $~lib/memory/__stack_pointer - local.get $this - local.set $11 - global.get $~lib/memory/__stack_pointer - local.get $11 - i32.store offset=4 - local.get $11 - call $"~lib/map/Map#get:entries" - local.tee $entries - i32.store offset=12 - local.get $entries - local.get $this - local.set $11 - global.get $~lib/memory/__stack_pointer - local.get $11 - i32.store offset=4 - local.get $11 - local.get $this - local.set $11 - global.get $~lib/memory/__stack_pointer - local.get $11 - i32.store offset=8 - local.get $11 - call $"~lib/map/Map#get:entriesOffset" - local.tee $8 - i32.const 1 - i32.add - call $"~lib/map/Map#set:entriesOffset" - local.get $8 - block $"~lib/map/ENTRY_SIZE|inlined.4" (result i32) - i32.const 24 - br $"~lib/map/ENTRY_SIZE|inlined.4" - end - i32.mul - i32.add - local.set $entry|9 - local.get $entry|9 - local.get $key - call $"~lib/map/MapEntry#set:key" - i32.const 0 - drop - local.get $entry|9 - local.get $value - call $"~lib/map/MapEntry#set:value" - i32.const 0 - drop - local.get $this - local.set $11 - global.get $~lib/memory/__stack_pointer - local.get $11 - i32.store offset=4 - local.get $11 - local.get $this - local.set $11 - global.get $~lib/memory/__stack_pointer - local.get $11 - i32.store offset=8 - local.get $11 - call $"~lib/map/Map#get:entriesCount" - i32.const 1 - i32.add - call $"~lib/map/Map#set:entriesCount" - local.get $this - local.set $11 - global.get $~lib/memory/__stack_pointer - local.get $11 - i32.store offset=4 - local.get $11 - call $"~lib/map/Map#get:buckets" - local.get $hashCode - local.get $this - local.set $11 - global.get $~lib/memory/__stack_pointer - local.get $11 - i32.store offset=4 - local.get $11 - call $"~lib/map/Map#get:bucketsMask" - i32.and - i32.const 4 - i32.mul - i32.add - local.set $bucketPtrBase - local.get $entry|9 - local.get $bucketPtrBase - i32.load - call $"~lib/map/MapEntry#set:taggedNext" - local.get $bucketPtrBase - local.get $entry|9 - i32.store - end - local.get $i - i32.const 1 + local.get $this + local.set $12 + global.get $~lib/memory/__stack_pointer + local.get $12 + i32.store offset=4 + local.get $12 + call $"~lib/map/Map#get:bucketsMask" + i32.and + i32.const 4 + i32.mul i32.add - local.set $i - br $for-loop|0 + local.set $bucketPtrBase + local.get $entry|10 + local.get $bucketPtrBase + i32.load + call $"~lib/map/MapEntry#set:taggedNext" + local.get $bucketPtrBase + local.get $entry|10 + i32.store end + local.get $i + i32.const 1 + i32.add + local.set $i + br $for-loop|0 end end local.get $this - local.set $11 + local.set $12 global.get $~lib/memory/__stack_pointer i32.const 16 i32.add global.set $~lib/memory/__stack_pointer - local.get $11 + local.get $12 ) (func $~lib/array/Array#get:length (param $this i32) (result i32) (local $1 i32) @@ -30281,6 +30651,7 @@ (local $15 i32) (local $k|16 i64) (local $17 i32) + (local $18 i32) global.get $~lib/memory/__stack_pointer i32.const 40 i32.sub @@ -30304,11 +30675,11 @@ i64.lt_s if local.get $map - local.set $17 + local.set $18 global.get $~lib/memory/__stack_pointer - local.get $17 + local.get $18 i32.store offset=4 - local.get $17 + local.get $18 local.get $k call $"~lib/map/Map#has" i32.eqz @@ -30322,11 +30693,11 @@ unreachable end local.get $map - local.set $17 + local.set $18 global.get $~lib/memory/__stack_pointer - local.get $17 + local.get $18 i32.store offset=4 - local.get $17 + local.get $18 local.get $k i32.const 10 local.get $k @@ -30335,11 +30706,11 @@ call $"~lib/map/Map#set" drop local.get $map - local.set $17 + local.set $18 global.get $~lib/memory/__stack_pointer - local.get $17 + local.get $18 i32.store offset=4 - local.get $17 + local.get $18 local.get $k call $"~lib/map/Map#has" i32.eqz @@ -30352,11 +30723,11 @@ unreachable end local.get $map - local.set $17 + local.set $18 global.get $~lib/memory/__stack_pointer - local.get $17 + local.get $18 i32.store offset=4 - local.get $17 + local.get $18 local.get $k call $"~lib/map/Map#get" i32.const 10 @@ -30381,11 +30752,11 @@ end end local.get $map - local.set $17 + local.set $18 global.get $~lib/memory/__stack_pointer - local.get $17 + local.get $18 i32.store offset=4 - local.get $17 + local.get $18 call $"~lib/map/Map#get:size" i32.const 100 i32.eq @@ -30406,11 +30777,11 @@ i64.lt_s if local.get $map - local.set $17 + local.set $18 global.get $~lib/memory/__stack_pointer - local.get $17 + local.get $18 i32.store offset=4 - local.get $17 + local.get $18 local.get $k|2 call $"~lib/map/Map#has" i32.eqz @@ -30423,11 +30794,11 @@ unreachable end local.get $map - local.set $17 + local.set $18 global.get $~lib/memory/__stack_pointer - local.get $17 + local.get $18 i32.store offset=4 - local.get $17 + local.get $18 local.get $k|2 call $"~lib/map/Map#get" i32.const 10 @@ -30445,11 +30816,11 @@ unreachable end local.get $map - local.set $17 + local.set $18 global.get $~lib/memory/__stack_pointer - local.get $17 + local.get $18 i32.store offset=4 - local.get $17 + local.get $18 local.get $k|2 i32.const 20 local.get $k|2 @@ -30458,11 +30829,11 @@ call $"~lib/map/Map#set" drop local.get $map - local.set $17 + local.set $18 global.get $~lib/memory/__stack_pointer - local.get $17 + local.get $18 i32.store offset=4 - local.get $17 + local.get $18 local.get $k|2 call $"~lib/map/Map#has" i32.eqz @@ -30475,11 +30846,11 @@ unreachable end local.get $map - local.set $17 + local.set $18 global.get $~lib/memory/__stack_pointer - local.get $17 + local.get $18 i32.store offset=4 - local.get $17 + local.get $18 local.get $k|2 call $"~lib/map/Map#get" i32.const 20 @@ -30504,11 +30875,11 @@ end end local.get $map - local.set $17 + local.set $18 global.get $~lib/memory/__stack_pointer - local.get $17 + local.get $18 i32.store offset=4 - local.get $17 + local.get $18 call $"~lib/map/Map#get:size" i32.const 100 i32.eq @@ -30523,21 +30894,21 @@ end global.get $~lib/memory/__stack_pointer local.get $map - local.set $17 + local.set $18 global.get $~lib/memory/__stack_pointer - local.get $17 + local.get $18 i32.store offset=4 - local.get $17 + local.get $18 call $"~lib/map/Map#keys" local.tee $keys i32.store offset=8 global.get $~lib/memory/__stack_pointer local.get $map - local.set $17 + local.set $18 global.get $~lib/memory/__stack_pointer - local.get $17 + local.get $18 i32.store offset=4 - local.get $17 + local.get $18 call $"~lib/map/Map#values" local.tee $vals i32.store offset=12 @@ -30558,38 +30929,38 @@ loop $for-loop|2 local.get $index local.get $keys - local.set $17 + local.set $18 global.get $~lib/memory/__stack_pointer - local.get $17 + local.get $18 i32.store offset=4 - local.get $17 + local.get $18 call $~lib/array/Array#get:length i32.lt_s if local.get $keys - local.set $17 + local.set $18 global.get $~lib/memory/__stack_pointer - local.get $17 + local.get $18 i32.store offset=4 - local.get $17 + local.get $18 local.get $index call $~lib/array/Array#__get local.set $key local.get $vals - local.set $17 + local.set $18 global.get $~lib/memory/__stack_pointer - local.get $17 + local.get $18 i32.store offset=4 - local.get $17 + local.get $18 local.get $index call $~lib/array/Array#__get local.set $value local.get $map - local.set $17 + local.set $18 global.get $~lib/memory/__stack_pointer - local.get $17 + local.get $18 i32.store offset=4 - local.get $17 + local.get $18 local.get $key call $"~lib/map/Map#has" i32.eqz @@ -30602,11 +30973,11 @@ unreachable end local.get $map - local.set $17 + local.set $18 global.get $~lib/memory/__stack_pointer - local.get $17 + local.get $18 i32.store offset=4 - local.get $17 + local.get $18 local.get $value i32.const 20 i32.sub @@ -30622,21 +30993,21 @@ unreachable end local.get $keyMap - local.set $17 + local.set $18 global.get $~lib/memory/__stack_pointer - local.get $17 + local.get $18 i32.store offset=4 - local.get $17 + local.get $18 local.get $key local.get $key call $"~lib/map/Map#set" drop local.get $valMap - local.set $17 + local.set $18 global.get $~lib/memory/__stack_pointer - local.get $17 + local.get $18 i32.store offset=4 - local.get $17 + local.get $18 local.get $value i32.const 20 i32.sub @@ -30653,11 +31024,11 @@ end end local.get $keyMap - local.set $17 + local.set $18 global.get $~lib/memory/__stack_pointer - local.get $17 + local.get $18 i32.store offset=4 - local.get $17 + local.get $18 call $"~lib/map/Map#get:size" i32.const 100 i32.eq @@ -30671,11 +31042,11 @@ unreachable end local.get $valMap - local.set $17 + local.set $18 global.get $~lib/memory/__stack_pointer - local.get $17 + local.get $18 i32.store offset=4 - local.get $17 + local.get $18 call $"~lib/map/Map#get:size" i32.const 100 i32.eq @@ -30696,11 +31067,11 @@ i64.lt_s if local.get $map - local.set $17 + local.set $18 global.get $~lib/memory/__stack_pointer - local.get $17 + local.get $18 i32.store offset=4 - local.get $17 + local.get $18 local.get $k|10 call $"~lib/map/Map#has" i32.eqz @@ -30713,11 +31084,11 @@ unreachable end local.get $map - local.set $17 + local.set $18 global.get $~lib/memory/__stack_pointer - local.get $17 + local.get $18 i32.store offset=4 - local.get $17 + local.get $18 local.get $k|10 call $"~lib/map/Map#get" i32.const 20 @@ -30735,20 +31106,20 @@ unreachable end local.get $map - local.set $17 + local.set $18 global.get $~lib/memory/__stack_pointer - local.get $17 + local.get $18 i32.store offset=4 - local.get $17 + local.get $18 local.get $k|10 call $"~lib/map/Map#delete" drop local.get $map - local.set $17 + local.set $18 global.get $~lib/memory/__stack_pointer - local.get $17 + local.get $18 i32.store offset=4 - local.get $17 + local.get $18 local.get $k|10 call $"~lib/map/Map#has" i32.eqz @@ -30769,11 +31140,11 @@ end end local.get $map - local.set $17 + local.set $18 global.get $~lib/memory/__stack_pointer - local.get $17 + local.get $18 i32.store offset=4 - local.get $17 + local.get $18 call $"~lib/map/Map#get:size" i32.const 50 i32.eq @@ -30794,11 +31165,11 @@ i64.lt_s if local.get $map - local.set $17 + local.set $18 global.get $~lib/memory/__stack_pointer - local.get $17 + local.get $18 i32.store offset=4 - local.get $17 + local.get $18 local.get $k|11 call $"~lib/map/Map#has" i32.eqz @@ -30812,11 +31183,11 @@ unreachable end local.get $map - local.set $17 + local.set $18 global.get $~lib/memory/__stack_pointer - local.get $17 + local.get $18 i32.store offset=4 - local.get $17 + local.get $18 local.get $k|11 i32.const 10 local.get $k|11 @@ -30825,11 +31196,11 @@ call $"~lib/map/Map#set" drop local.get $map - local.set $17 + local.set $18 global.get $~lib/memory/__stack_pointer - local.get $17 + local.get $18 i32.store offset=4 - local.get $17 + local.get $18 local.get $k|11 call $"~lib/map/Map#has" i32.eqz @@ -30842,20 +31213,20 @@ unreachable end local.get $map - local.set $17 + local.set $18 global.get $~lib/memory/__stack_pointer - local.get $17 + local.get $18 i32.store offset=4 - local.get $17 + local.get $18 local.get $k|11 call $"~lib/map/Map#delete" drop local.get $map - local.set $17 + local.set $18 global.get $~lib/memory/__stack_pointer - local.get $17 + local.get $18 i32.store offset=4 - local.get $17 + local.get $18 local.get $k|11 call $"~lib/map/Map#has" i32.eqz @@ -30876,11 +31247,11 @@ end end local.get $map - local.set $17 + local.set $18 global.get $~lib/memory/__stack_pointer - local.get $17 + local.get $18 i32.store offset=4 - local.get $17 + local.get $18 call $"~lib/map/Map#get:size" i32.const 50 i32.eq @@ -30894,18 +31265,18 @@ unreachable end local.get $map - local.set $17 + local.set $18 global.get $~lib/memory/__stack_pointer - local.get $17 + local.get $18 i32.store offset=4 - local.get $17 + local.get $18 call $"~lib/map/Map#clear" local.get $map - local.set $17 + local.set $18 global.get $~lib/memory/__stack_pointer - local.get $17 + local.get $18 i32.store offset=4 - local.get $17 + local.get $18 call $"~lib/map/Map#get:size" i32.const 0 i32.eq @@ -30922,7 +31293,7 @@ i32.const 0 i32.const 2 i32.const 45 - i32.const 1072 + i32.const 1264 call $~lib/rt/__newArray local.tee $initialEntries i32.store offset=24 @@ -30934,41 +31305,41 @@ i64.lt_s if local.get $initialEntries - local.set $17 + local.set $18 global.get $~lib/memory/__stack_pointer - local.get $17 + local.get $18 i32.store offset=4 - local.get $17 + local.get $18 global.get $~lib/memory/__stack_pointer i32.const 0 call $"~lib/map/KeyValue#constructor" local.tee $15 i32.store offset=32 local.get $15 - local.set $17 + local.set $18 global.get $~lib/memory/__stack_pointer - local.get $17 + local.get $18 i32.store offset=36 - local.get $17 + local.get $18 local.get $k|14 call $"~lib/map/KeyValue#set:key" local.get $15 - local.set $17 + local.set $18 global.get $~lib/memory/__stack_pointer - local.get $17 + local.get $18 i32.store offset=36 - local.get $17 + local.get $18 i32.const 10 local.get $k|14 i32.wrap_i64 i32.add call $"~lib/map/KeyValue#set:value" local.get $15 - local.set $17 + local.set $18 global.get $~lib/memory/__stack_pointer - local.get $17 + local.get $18 i32.store offset=28 - local.get $17 + local.get $18 call $"~lib/array/Array<~lib/map/KeyValue>#push" drop local.get $k|14 @@ -30981,20 +31352,20 @@ global.get $~lib/memory/__stack_pointer i32.const 0 local.get $initialEntries - local.set $17 + local.set $18 global.get $~lib/memory/__stack_pointer - local.get $17 + local.get $18 i32.store offset=4 - local.get $17 + local.get $18 call $"~lib/map/Map#constructor" local.tee $map i32.store local.get $map - local.set $17 + local.set $18 global.get $~lib/memory/__stack_pointer - local.get $17 + local.get $18 i32.store offset=4 - local.get $17 + local.get $18 call $"~lib/map/Map#get:size" i32.const 100 i32.eq @@ -31002,7 +31373,7 @@ if i32.const 0 i32.const 720 - i32.const 74 + i32.const 75 i32.const 3 call $~lib/builtins/abort unreachable @@ -31015,28 +31386,28 @@ i64.lt_s if local.get $map - local.set $17 + local.set $18 global.get $~lib/memory/__stack_pointer - local.get $17 + local.get $18 i32.store offset=4 - local.get $17 + local.get $18 local.get $k|16 call $"~lib/map/Map#has" i32.eqz if i32.const 0 i32.const 720 - i32.const 76 + i32.const 77 i32.const 5 call $~lib/builtins/abort unreachable end local.get $map - local.set $17 + local.set $18 global.get $~lib/memory/__stack_pointer - local.get $17 + local.get $18 i32.store offset=4 - local.get $17 + local.get $18 local.get $k|16 call $"~lib/map/Map#get" i32.const 10 @@ -31048,26 +31419,26 @@ if i32.const 0 i32.const 720 - i32.const 77 + i32.const 78 i32.const 5 call $~lib/builtins/abort unreachable end local.get $map - local.set $17 + local.set $18 global.get $~lib/memory/__stack_pointer - local.get $17 + local.get $18 i32.store offset=4 - local.get $17 + local.get $18 local.get $k|16 call $"~lib/map/Map#delete" drop local.get $map - local.set $17 + local.set $18 global.get $~lib/memory/__stack_pointer - local.get $17 + local.get $18 i32.store offset=4 - local.get $17 + local.get $18 local.get $k|16 call $"~lib/map/Map#has" i32.eqz @@ -31075,7 +31446,7 @@ if i32.const 0 i32.const 720 - i32.const 79 + i32.const 80 i32.const 5 call $~lib/builtins/abort unreachable @@ -31088,11 +31459,11 @@ end end local.get $map - local.set $17 + local.set $18 global.get $~lib/memory/__stack_pointer - local.get $17 + local.get $18 i32.store offset=4 - local.get $17 + local.get $18 call $"~lib/map/Map#get:size" i32.const 0 i32.eq @@ -31100,7 +31471,40 @@ if i32.const 0 i32.const 720 - i32.const 81 + i32.const 82 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.const 0 + i32.const 2 + i32.const 45 + i32.const 1296 + call $~lib/rt/__newArray + local.set $18 + global.get $~lib/memory/__stack_pointer + local.get $18 + i32.store offset=4 + local.get $18 + call $"~lib/map/Map#constructor" + local.tee $map + i32.store + local.get $map + local.set $18 + global.get $~lib/memory/__stack_pointer + local.get $18 + i32.store offset=4 + local.get $18 + call $"~lib/map/Map#get:size" + i32.const 0 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 720 + i32.const 85 i32.const 3 call $~lib/builtins/abort unreachable @@ -31483,16 +31887,17 @@ return ) (func $"~lib/map/Map#constructor" (param $this i32) (param $initialEntries i32) (result i32) + (local $initialEntriesLength i32) (local $i i32) (local $key i64) (local $value i32) (local $hashCode i32) (local $entry i32) (local $entries i32) - (local $8 i32) - (local $entry|9 i32) + (local $9 i32) + (local $entry|10 i32) (local $bucketPtrBase i32) - (local $11 i32) + (local $12 i32) global.get $~lib/memory/__stack_pointer i32.const 16 i32.sub @@ -31515,38 +31920,38 @@ i32.store end local.get $this - local.set $11 + local.set $12 global.get $~lib/memory/__stack_pointer - local.get $11 + local.get $12 i32.store offset=4 - local.get $11 + local.get $12 i32.const 0 i32.const 4 i32.const 4 i32.mul call $~lib/arraybuffer/ArrayBuffer#constructor - local.set $11 + local.set $12 global.get $~lib/memory/__stack_pointer - local.get $11 + local.get $12 i32.store offset=8 - local.get $11 + local.get $12 call $"~lib/map/Map#set:buckets" local.get $this - local.set $11 + local.set $12 global.get $~lib/memory/__stack_pointer - local.get $11 + local.get $12 i32.store offset=4 - local.get $11 + local.get $12 i32.const 4 i32.const 1 i32.sub call $"~lib/map/Map#set:bucketsMask" local.get $this - local.set $11 + local.set $12 global.get $~lib/memory/__stack_pointer - local.get $11 + local.get $12 i32.store offset=4 - local.get $11 + local.get $12 i32.const 0 i32.const 4 block $"~lib/map/ENTRY_SIZE|inlined.5" (result i32) @@ -31555,256 +31960,267 @@ end i32.mul call $~lib/arraybuffer/ArrayBuffer#constructor - local.set $11 + local.set $12 global.get $~lib/memory/__stack_pointer - local.get $11 + local.get $12 i32.store offset=8 - local.get $11 + local.get $12 call $"~lib/map/Map#set:entries" local.get $this - local.set $11 + local.set $12 global.get $~lib/memory/__stack_pointer - local.get $11 + local.get $12 i32.store offset=4 - local.get $11 + local.get $12 i32.const 4 call $"~lib/map/Map#set:entriesCapacity" local.get $this - local.set $11 + local.set $12 global.get $~lib/memory/__stack_pointer - local.get $11 + local.get $12 i32.store offset=4 - local.get $11 + local.get $12 i32.const 0 call $"~lib/map/Map#set:entriesOffset" local.get $this - local.set $11 + local.set $12 global.get $~lib/memory/__stack_pointer - local.get $11 + local.get $12 i32.store offset=4 - local.get $11 + local.get $12 i32.const 0 call $"~lib/map/Map#set:entriesCount" local.get $initialEntries - if + i32.eqz + if (result i32) + i32.const 1 + else local.get $initialEntries - local.set $11 + local.set $12 global.get $~lib/memory/__stack_pointer - local.get $11 + local.get $12 i32.store offset=4 - local.get $11 + local.get $12 call $"~lib/array/Array<~lib/map/KeyValue>#get:length" + i32.eqz + end + if + local.get $this + local.set $12 + global.get $~lib/memory/__stack_pointer + i32.const 16 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $12 + return + end + local.get $initialEntries + local.set $12 + global.get $~lib/memory/__stack_pointer + local.get $12 + i32.store offset=4 + local.get $12 + call $"~lib/array/Array<~lib/map/KeyValue>#get:length" + local.set $initialEntriesLength + local.get $initialEntriesLength + local.get $this + local.set $12 + global.get $~lib/memory/__stack_pointer + local.get $12 + i32.store offset=4 + local.get $12 + call $"~lib/map/Map#get:entriesCapacity" + i32.ge_s + if local.get $this - local.set $11 + local.set $12 global.get $~lib/memory/__stack_pointer - local.get $11 + local.get $12 i32.store offset=4 - local.get $11 - call $"~lib/map/Map#get:entriesCapacity" - i32.ge_s + local.get $12 + local.get $initialEntriesLength + call $"~lib/map/Map#set:bucketsMask" + end + local.get $this + local.set $12 + global.get $~lib/memory/__stack_pointer + local.get $12 + i32.store offset=4 + local.get $12 + local.get $this + local.set $12 + global.get $~lib/memory/__stack_pointer + local.get $12 + i32.store offset=8 + local.get $12 + call $"~lib/map/Map#get:bucketsMask" + i32.const 1 + i32.shl + i32.const 1 + i32.or + call $"~lib/map/Map#rehash" + i32.const 0 + local.set $i + loop $for-loop|0 + local.get $i + local.get $initialEntriesLength + i32.lt_s if - local.get $this - local.set $11 + local.get $initialEntries + local.set $12 global.get $~lib/memory/__stack_pointer - local.get $11 + local.get $12 + i32.store offset=8 + local.get $12 + local.get $i + call $"~lib/array/Array<~lib/map/KeyValue>#__get" + local.set $12 + global.get $~lib/memory/__stack_pointer + local.get $12 i32.store offset=4 - local.get $11 + local.get $12 + call $"~lib/map/KeyValue#get:key" + local.set $key local.get $initialEntries - local.set $11 + local.set $12 global.get $~lib/memory/__stack_pointer - local.get $11 + local.get $12 i32.store offset=8 - local.get $11 - call $"~lib/array/Array<~lib/map/KeyValue>#get:length" - call $"~lib/map/Map#set:bucketsMask" - end - local.get $this - local.set $11 - global.get $~lib/memory/__stack_pointer - local.get $11 - i32.store offset=4 - local.get $11 - local.get $this - local.set $11 - global.get $~lib/memory/__stack_pointer - local.get $11 - i32.store offset=8 - local.get $11 - call $"~lib/map/Map#get:bucketsMask" - i32.const 1 - i32.shl - i32.const 1 - i32.or - call $"~lib/map/Map#rehash" - i32.const 0 - local.set $i - loop $for-loop|0 + local.get $12 local.get $i - local.get $initialEntries - local.set $11 + call $"~lib/array/Array<~lib/map/KeyValue>#__get" + local.set $12 global.get $~lib/memory/__stack_pointer - local.get $11 + local.get $12 i32.store offset=4 - local.get $11 - call $"~lib/array/Array<~lib/map/KeyValue>#get:length" - i32.lt_s + local.get $12 + call $"~lib/map/KeyValue#get:value" + local.set $value + local.get $key + call $~lib/util/hash/HASH + local.set $hashCode + local.get $this + local.set $12 + global.get $~lib/memory/__stack_pointer + local.get $12 + i32.store offset=4 + local.get $12 + local.get $key + local.get $hashCode + call $"~lib/map/Map#find" + local.set $entry + local.get $entry if - local.get $initialEntries - local.set $11 + local.get $entry + local.get $value + call $"~lib/map/MapEntry#set:value" + i32.const 0 + drop + else global.get $~lib/memory/__stack_pointer - local.get $11 - i32.store offset=8 - local.get $11 - local.get $i - call $"~lib/array/Array<~lib/map/KeyValue>#__get" - local.set $11 + local.get $this + local.set $12 global.get $~lib/memory/__stack_pointer - local.get $11 + local.get $12 i32.store offset=4 - local.get $11 - call $"~lib/map/KeyValue#get:key" - local.set $key - local.get $initialEntries - local.set $11 + local.get $12 + call $"~lib/map/Map#get:entries" + local.tee $entries + i32.store offset=12 + local.get $entries + local.get $this + local.set $12 global.get $~lib/memory/__stack_pointer - local.get $11 + local.get $12 + i32.store offset=4 + local.get $12 + local.get $this + local.set $12 + global.get $~lib/memory/__stack_pointer + local.get $12 i32.store offset=8 - local.get $11 - local.get $i - call $"~lib/array/Array<~lib/map/KeyValue>#__get" - local.set $11 + local.get $12 + call $"~lib/map/Map#get:entriesOffset" + local.tee $9 + i32.const 1 + i32.add + call $"~lib/map/Map#set:entriesOffset" + local.get $9 + block $"~lib/map/ENTRY_SIZE|inlined.4" (result i32) + i32.const 16 + br $"~lib/map/ENTRY_SIZE|inlined.4" + end + i32.mul + i32.add + local.set $entry|10 + local.get $entry|10 + local.get $key + call $"~lib/map/MapEntry#set:key" + i32.const 0 + drop + local.get $entry|10 + local.get $value + call $"~lib/map/MapEntry#set:value" + i32.const 0 + drop + local.get $this + local.set $12 global.get $~lib/memory/__stack_pointer - local.get $11 + local.get $12 i32.store offset=4 - local.get $11 - call $"~lib/map/KeyValue#get:value" - local.set $value - local.get $key - call $~lib/util/hash/HASH - local.set $hashCode + local.get $12 local.get $this - local.set $11 + local.set $12 global.get $~lib/memory/__stack_pointer - local.get $11 + local.get $12 + i32.store offset=8 + local.get $12 + call $"~lib/map/Map#get:entriesCount" + i32.const 1 + i32.add + call $"~lib/map/Map#set:entriesCount" + local.get $this + local.set $12 + global.get $~lib/memory/__stack_pointer + local.get $12 i32.store offset=4 - local.get $11 - local.get $key + local.get $12 + call $"~lib/map/Map#get:buckets" local.get $hashCode - call $"~lib/map/Map#find" - local.set $entry - local.get $entry - if - local.get $entry - local.get $value - call $"~lib/map/MapEntry#set:value" - i32.const 0 - drop - else - global.get $~lib/memory/__stack_pointer - local.get $this - local.set $11 - global.get $~lib/memory/__stack_pointer - local.get $11 - i32.store offset=4 - local.get $11 - call $"~lib/map/Map#get:entries" - local.tee $entries - i32.store offset=12 - local.get $entries - local.get $this - local.set $11 - global.get $~lib/memory/__stack_pointer - local.get $11 - i32.store offset=4 - local.get $11 - local.get $this - local.set $11 - global.get $~lib/memory/__stack_pointer - local.get $11 - i32.store offset=8 - local.get $11 - call $"~lib/map/Map#get:entriesOffset" - local.tee $8 - i32.const 1 - i32.add - call $"~lib/map/Map#set:entriesOffset" - local.get $8 - block $"~lib/map/ENTRY_SIZE|inlined.4" (result i32) - i32.const 16 - br $"~lib/map/ENTRY_SIZE|inlined.4" - end - i32.mul - i32.add - local.set $entry|9 - local.get $entry|9 - local.get $key - call $"~lib/map/MapEntry#set:key" - i32.const 0 - drop - local.get $entry|9 - local.get $value - call $"~lib/map/MapEntry#set:value" - i32.const 0 - drop - local.get $this - local.set $11 - global.get $~lib/memory/__stack_pointer - local.get $11 - i32.store offset=4 - local.get $11 - local.get $this - local.set $11 - global.get $~lib/memory/__stack_pointer - local.get $11 - i32.store offset=8 - local.get $11 - call $"~lib/map/Map#get:entriesCount" - i32.const 1 - i32.add - call $"~lib/map/Map#set:entriesCount" - local.get $this - local.set $11 - global.get $~lib/memory/__stack_pointer - local.get $11 - i32.store offset=4 - local.get $11 - call $"~lib/map/Map#get:buckets" - local.get $hashCode - local.get $this - local.set $11 - global.get $~lib/memory/__stack_pointer - local.get $11 - i32.store offset=4 - local.get $11 - call $"~lib/map/Map#get:bucketsMask" - i32.and - i32.const 4 - i32.mul - i32.add - local.set $bucketPtrBase - local.get $entry|9 - local.get $bucketPtrBase - i32.load - call $"~lib/map/MapEntry#set:taggedNext" - local.get $bucketPtrBase - local.get $entry|9 - i32.store - end - local.get $i - i32.const 1 + local.get $this + local.set $12 + global.get $~lib/memory/__stack_pointer + local.get $12 + i32.store offset=4 + local.get $12 + call $"~lib/map/Map#get:bucketsMask" + i32.and + i32.const 4 + i32.mul i32.add - local.set $i - br $for-loop|0 + local.set $bucketPtrBase + local.get $entry|10 + local.get $bucketPtrBase + i32.load + call $"~lib/map/MapEntry#set:taggedNext" + local.get $bucketPtrBase + local.get $entry|10 + i32.store end + local.get $i + i32.const 1 + i32.add + local.set $i + br $for-loop|0 end end local.get $this - local.set $11 + local.set $12 global.get $~lib/memory/__stack_pointer i32.const 16 i32.add global.set $~lib/memory/__stack_pointer - local.get $11 + local.get $12 ) (func $"~lib/map/Map#has" (param $this i32) (param $key i64) (result i32) (local $2 i32) @@ -32065,7 +32481,7 @@ if i32.const 768 i32.const 832 - i32.const 146 + i32.const 147 i32.const 17 call $~lib/builtins/abort unreachable @@ -32919,16 +33335,17 @@ return ) (func $"~lib/map/Map#constructor" (param $this i32) (param $initialEntries i32) (result i32) + (local $initialEntriesLength i32) (local $i i32) (local $key i64) (local $value i64) (local $hashCode i32) (local $entry i32) (local $entries i32) - (local $8 i32) - (local $entry|9 i32) + (local $9 i32) + (local $entry|10 i32) (local $bucketPtrBase i32) - (local $11 i32) + (local $12 i32) global.get $~lib/memory/__stack_pointer i32.const 16 i32.sub @@ -32951,38 +33368,38 @@ i32.store end local.get $this - local.set $11 + local.set $12 global.get $~lib/memory/__stack_pointer - local.get $11 + local.get $12 i32.store offset=4 - local.get $11 + local.get $12 i32.const 0 i32.const 4 i32.const 4 i32.mul call $~lib/arraybuffer/ArrayBuffer#constructor - local.set $11 + local.set $12 global.get $~lib/memory/__stack_pointer - local.get $11 + local.get $12 i32.store offset=8 - local.get $11 + local.get $12 call $"~lib/map/Map#set:buckets" local.get $this - local.set $11 + local.set $12 global.get $~lib/memory/__stack_pointer - local.get $11 + local.get $12 i32.store offset=4 - local.get $11 + local.get $12 i32.const 4 i32.const 1 i32.sub call $"~lib/map/Map#set:bucketsMask" local.get $this - local.set $11 + local.set $12 global.get $~lib/memory/__stack_pointer - local.get $11 + local.get $12 i32.store offset=4 - local.get $11 + local.get $12 i32.const 0 i32.const 4 block $"~lib/map/ENTRY_SIZE|inlined.5" (result i32) @@ -32991,256 +33408,267 @@ end i32.mul call $~lib/arraybuffer/ArrayBuffer#constructor - local.set $11 + local.set $12 global.get $~lib/memory/__stack_pointer - local.get $11 + local.get $12 i32.store offset=8 - local.get $11 + local.get $12 call $"~lib/map/Map#set:entries" local.get $this - local.set $11 + local.set $12 global.get $~lib/memory/__stack_pointer - local.get $11 + local.get $12 i32.store offset=4 - local.get $11 + local.get $12 i32.const 4 call $"~lib/map/Map#set:entriesCapacity" local.get $this - local.set $11 + local.set $12 global.get $~lib/memory/__stack_pointer - local.get $11 + local.get $12 i32.store offset=4 - local.get $11 + local.get $12 i32.const 0 call $"~lib/map/Map#set:entriesOffset" local.get $this - local.set $11 + local.set $12 global.get $~lib/memory/__stack_pointer - local.get $11 + local.get $12 i32.store offset=4 - local.get $11 + local.get $12 i32.const 0 call $"~lib/map/Map#set:entriesCount" local.get $initialEntries - if + i32.eqz + if (result i32) + i32.const 1 + else local.get $initialEntries - local.set $11 + local.set $12 global.get $~lib/memory/__stack_pointer - local.get $11 + local.get $12 i32.store offset=4 - local.get $11 + local.get $12 call $"~lib/array/Array<~lib/map/KeyValue>#get:length" + i32.eqz + end + if local.get $this - local.set $11 + local.set $12 global.get $~lib/memory/__stack_pointer - local.get $11 + i32.const 16 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $12 + return + end + local.get $initialEntries + local.set $12 + global.get $~lib/memory/__stack_pointer + local.get $12 + i32.store offset=4 + local.get $12 + call $"~lib/array/Array<~lib/map/KeyValue>#get:length" + local.set $initialEntriesLength + local.get $initialEntriesLength + local.get $this + local.set $12 + global.get $~lib/memory/__stack_pointer + local.get $12 + i32.store offset=4 + local.get $12 + call $"~lib/map/Map#get:entriesCapacity" + i32.ge_s + if + local.get $this + local.set $12 + global.get $~lib/memory/__stack_pointer + local.get $12 i32.store offset=4 - local.get $11 - call $"~lib/map/Map#get:entriesCapacity" - i32.ge_s + local.get $12 + local.get $initialEntriesLength + call $"~lib/map/Map#set:bucketsMask" + end + local.get $this + local.set $12 + global.get $~lib/memory/__stack_pointer + local.get $12 + i32.store offset=4 + local.get $12 + local.get $this + local.set $12 + global.get $~lib/memory/__stack_pointer + local.get $12 + i32.store offset=8 + local.get $12 + call $"~lib/map/Map#get:bucketsMask" + i32.const 1 + i32.shl + i32.const 1 + i32.or + call $"~lib/map/Map#rehash" + i32.const 0 + local.set $i + loop $for-loop|0 + local.get $i + local.get $initialEntriesLength + i32.lt_s if - local.get $this - local.set $11 + local.get $initialEntries + local.set $12 global.get $~lib/memory/__stack_pointer - local.get $11 + local.get $12 + i32.store offset=8 + local.get $12 + local.get $i + call $"~lib/array/Array<~lib/map/KeyValue>#__get" + local.set $12 + global.get $~lib/memory/__stack_pointer + local.get $12 i32.store offset=4 - local.get $11 + local.get $12 + call $"~lib/map/KeyValue#get:key" + local.set $key local.get $initialEntries - local.set $11 + local.set $12 global.get $~lib/memory/__stack_pointer - local.get $11 + local.get $12 i32.store offset=8 - local.get $11 - call $"~lib/array/Array<~lib/map/KeyValue>#get:length" - call $"~lib/map/Map#set:bucketsMask" - end - local.get $this - local.set $11 - global.get $~lib/memory/__stack_pointer - local.get $11 - i32.store offset=4 - local.get $11 - local.get $this - local.set $11 - global.get $~lib/memory/__stack_pointer - local.get $11 - i32.store offset=8 - local.get $11 - call $"~lib/map/Map#get:bucketsMask" - i32.const 1 - i32.shl - i32.const 1 - i32.or - call $"~lib/map/Map#rehash" - i32.const 0 - local.set $i - loop $for-loop|0 + local.get $12 local.get $i - local.get $initialEntries - local.set $11 + call $"~lib/array/Array<~lib/map/KeyValue>#__get" + local.set $12 global.get $~lib/memory/__stack_pointer - local.get $11 + local.get $12 i32.store offset=4 - local.get $11 - call $"~lib/array/Array<~lib/map/KeyValue>#get:length" - i32.lt_s + local.get $12 + call $"~lib/map/KeyValue#get:value" + local.set $value + local.get $key + call $~lib/util/hash/HASH + local.set $hashCode + local.get $this + local.set $12 + global.get $~lib/memory/__stack_pointer + local.get $12 + i32.store offset=4 + local.get $12 + local.get $key + local.get $hashCode + call $"~lib/map/Map#find" + local.set $entry + local.get $entry if - local.get $initialEntries - local.set $11 + local.get $entry + local.get $value + call $"~lib/map/MapEntry#set:value" + i32.const 0 + drop + else global.get $~lib/memory/__stack_pointer - local.get $11 - i32.store offset=8 - local.get $11 - local.get $i - call $"~lib/array/Array<~lib/map/KeyValue>#__get" - local.set $11 + local.get $this + local.set $12 global.get $~lib/memory/__stack_pointer - local.get $11 + local.get $12 i32.store offset=4 - local.get $11 - call $"~lib/map/KeyValue#get:key" - local.set $key - local.get $initialEntries - local.set $11 + local.get $12 + call $"~lib/map/Map#get:entries" + local.tee $entries + i32.store offset=12 + local.get $entries + local.get $this + local.set $12 global.get $~lib/memory/__stack_pointer - local.get $11 + local.get $12 + i32.store offset=4 + local.get $12 + local.get $this + local.set $12 + global.get $~lib/memory/__stack_pointer + local.get $12 i32.store offset=8 - local.get $11 - local.get $i - call $"~lib/array/Array<~lib/map/KeyValue>#__get" - local.set $11 + local.get $12 + call $"~lib/map/Map#get:entriesOffset" + local.tee $9 + i32.const 1 + i32.add + call $"~lib/map/Map#set:entriesOffset" + local.get $9 + block $"~lib/map/ENTRY_SIZE|inlined.4" (result i32) + i32.const 24 + br $"~lib/map/ENTRY_SIZE|inlined.4" + end + i32.mul + i32.add + local.set $entry|10 + local.get $entry|10 + local.get $key + call $"~lib/map/MapEntry#set:key" + i32.const 0 + drop + local.get $entry|10 + local.get $value + call $"~lib/map/MapEntry#set:value" + i32.const 0 + drop + local.get $this + local.set $12 global.get $~lib/memory/__stack_pointer - local.get $11 + local.get $12 i32.store offset=4 - local.get $11 - call $"~lib/map/KeyValue#get:value" - local.set $value - local.get $key - call $~lib/util/hash/HASH - local.set $hashCode + local.get $12 + local.get $this + local.set $12 + global.get $~lib/memory/__stack_pointer + local.get $12 + i32.store offset=8 + local.get $12 + call $"~lib/map/Map#get:entriesCount" + i32.const 1 + i32.add + call $"~lib/map/Map#set:entriesCount" local.get $this - local.set $11 + local.set $12 global.get $~lib/memory/__stack_pointer - local.get $11 + local.get $12 i32.store offset=4 - local.get $11 - local.get $key + local.get $12 + call $"~lib/map/Map#get:buckets" local.get $hashCode - call $"~lib/map/Map#find" - local.set $entry - local.get $entry - if - local.get $entry - local.get $value - call $"~lib/map/MapEntry#set:value" - i32.const 0 - drop - else - global.get $~lib/memory/__stack_pointer - local.get $this - local.set $11 - global.get $~lib/memory/__stack_pointer - local.get $11 - i32.store offset=4 - local.get $11 - call $"~lib/map/Map#get:entries" - local.tee $entries - i32.store offset=12 - local.get $entries - local.get $this - local.set $11 - global.get $~lib/memory/__stack_pointer - local.get $11 - i32.store offset=4 - local.get $11 - local.get $this - local.set $11 - global.get $~lib/memory/__stack_pointer - local.get $11 - i32.store offset=8 - local.get $11 - call $"~lib/map/Map#get:entriesOffset" - local.tee $8 - i32.const 1 - i32.add - call $"~lib/map/Map#set:entriesOffset" - local.get $8 - block $"~lib/map/ENTRY_SIZE|inlined.4" (result i32) - i32.const 24 - br $"~lib/map/ENTRY_SIZE|inlined.4" - end - i32.mul - i32.add - local.set $entry|9 - local.get $entry|9 - local.get $key - call $"~lib/map/MapEntry#set:key" - i32.const 0 - drop - local.get $entry|9 - local.get $value - call $"~lib/map/MapEntry#set:value" - i32.const 0 - drop - local.get $this - local.set $11 - global.get $~lib/memory/__stack_pointer - local.get $11 - i32.store offset=4 - local.get $11 - local.get $this - local.set $11 - global.get $~lib/memory/__stack_pointer - local.get $11 - i32.store offset=8 - local.get $11 - call $"~lib/map/Map#get:entriesCount" - i32.const 1 - i32.add - call $"~lib/map/Map#set:entriesCount" - local.get $this - local.set $11 - global.get $~lib/memory/__stack_pointer - local.get $11 - i32.store offset=4 - local.get $11 - call $"~lib/map/Map#get:buckets" - local.get $hashCode - local.get $this - local.set $11 - global.get $~lib/memory/__stack_pointer - local.get $11 - i32.store offset=4 - local.get $11 - call $"~lib/map/Map#get:bucketsMask" - i32.and - i32.const 4 - i32.mul - i32.add - local.set $bucketPtrBase - local.get $entry|9 - local.get $bucketPtrBase - i32.load - call $"~lib/map/MapEntry#set:taggedNext" - local.get $bucketPtrBase - local.get $entry|9 - i32.store - end - local.get $i - i32.const 1 + local.get $this + local.set $12 + global.get $~lib/memory/__stack_pointer + local.get $12 + i32.store offset=4 + local.get $12 + call $"~lib/map/Map#get:bucketsMask" + i32.and + i32.const 4 + i32.mul i32.add - local.set $i - br $for-loop|0 + local.set $bucketPtrBase + local.get $entry|10 + local.get $bucketPtrBase + i32.load + call $"~lib/map/MapEntry#set:taggedNext" + local.get $bucketPtrBase + local.get $entry|10 + i32.store end + local.get $i + i32.const 1 + i32.add + local.set $i + br $for-loop|0 end end local.get $this - local.set $11 + local.set $12 global.get $~lib/memory/__stack_pointer i32.const 16 i32.add global.set $~lib/memory/__stack_pointer - local.get $11 + local.get $12 ) (func $~lib/array/Array#get:length (param $this i32) (result i32) (local $1 i32) @@ -33900,6 +34328,7 @@ (local $15 i32) (local $k|16 i64) (local $17 i32) + (local $18 i32) global.get $~lib/memory/__stack_pointer i32.const 40 i32.sub @@ -33923,11 +34352,11 @@ i64.lt_u if local.get $map - local.set $17 + local.set $18 global.get $~lib/memory/__stack_pointer - local.get $17 + local.get $18 i32.store offset=4 - local.get $17 + local.get $18 local.get $k call $"~lib/map/Map#has" i32.eqz @@ -33941,11 +34370,11 @@ unreachable end local.get $map - local.set $17 + local.set $18 global.get $~lib/memory/__stack_pointer - local.get $17 + local.get $18 i32.store offset=4 - local.get $17 + local.get $18 local.get $k i32.const 10 local.get $k @@ -33954,11 +34383,11 @@ call $"~lib/map/Map#set" drop local.get $map - local.set $17 + local.set $18 global.get $~lib/memory/__stack_pointer - local.get $17 + local.get $18 i32.store offset=4 - local.get $17 + local.get $18 local.get $k call $"~lib/map/Map#has" i32.eqz @@ -33971,11 +34400,11 @@ unreachable end local.get $map - local.set $17 + local.set $18 global.get $~lib/memory/__stack_pointer - local.get $17 + local.get $18 i32.store offset=4 - local.get $17 + local.get $18 local.get $k call $"~lib/map/Map#get" i32.const 10 @@ -34000,11 +34429,11 @@ end end local.get $map - local.set $17 + local.set $18 global.get $~lib/memory/__stack_pointer - local.get $17 + local.get $18 i32.store offset=4 - local.get $17 + local.get $18 call $"~lib/map/Map#get:size" i32.const 100 i32.eq @@ -34025,11 +34454,11 @@ i64.lt_u if local.get $map - local.set $17 + local.set $18 global.get $~lib/memory/__stack_pointer - local.get $17 + local.get $18 i32.store offset=4 - local.get $17 + local.get $18 local.get $k|2 call $"~lib/map/Map#has" i32.eqz @@ -34042,11 +34471,11 @@ unreachable end local.get $map - local.set $17 + local.set $18 global.get $~lib/memory/__stack_pointer - local.get $17 + local.get $18 i32.store offset=4 - local.get $17 + local.get $18 local.get $k|2 call $"~lib/map/Map#get" i32.const 10 @@ -34064,11 +34493,11 @@ unreachable end local.get $map - local.set $17 + local.set $18 global.get $~lib/memory/__stack_pointer - local.get $17 + local.get $18 i32.store offset=4 - local.get $17 + local.get $18 local.get $k|2 i32.const 20 local.get $k|2 @@ -34077,11 +34506,11 @@ call $"~lib/map/Map#set" drop local.get $map - local.set $17 + local.set $18 global.get $~lib/memory/__stack_pointer - local.get $17 + local.get $18 i32.store offset=4 - local.get $17 + local.get $18 local.get $k|2 call $"~lib/map/Map#has" i32.eqz @@ -34094,11 +34523,11 @@ unreachable end local.get $map - local.set $17 + local.set $18 global.get $~lib/memory/__stack_pointer - local.get $17 + local.get $18 i32.store offset=4 - local.get $17 + local.get $18 local.get $k|2 call $"~lib/map/Map#get" i32.const 20 @@ -34123,11 +34552,11 @@ end end local.get $map - local.set $17 + local.set $18 global.get $~lib/memory/__stack_pointer - local.get $17 + local.get $18 i32.store offset=4 - local.get $17 + local.get $18 call $"~lib/map/Map#get:size" i32.const 100 i32.eq @@ -34142,21 +34571,21 @@ end global.get $~lib/memory/__stack_pointer local.get $map - local.set $17 + local.set $18 global.get $~lib/memory/__stack_pointer - local.get $17 + local.get $18 i32.store offset=4 - local.get $17 + local.get $18 call $"~lib/map/Map#keys" local.tee $keys i32.store offset=8 global.get $~lib/memory/__stack_pointer local.get $map - local.set $17 + local.set $18 global.get $~lib/memory/__stack_pointer - local.get $17 + local.get $18 i32.store offset=4 - local.get $17 + local.get $18 call $"~lib/map/Map#values" local.tee $vals i32.store offset=12 @@ -34177,38 +34606,38 @@ loop $for-loop|2 local.get $index local.get $keys - local.set $17 + local.set $18 global.get $~lib/memory/__stack_pointer - local.get $17 + local.get $18 i32.store offset=4 - local.get $17 + local.get $18 call $~lib/array/Array#get:length i32.lt_s if local.get $keys - local.set $17 + local.set $18 global.get $~lib/memory/__stack_pointer - local.get $17 + local.get $18 i32.store offset=4 - local.get $17 + local.get $18 local.get $index call $~lib/array/Array#__get local.set $key local.get $vals - local.set $17 + local.set $18 global.get $~lib/memory/__stack_pointer - local.get $17 + local.get $18 i32.store offset=4 - local.get $17 + local.get $18 local.get $index call $~lib/array/Array#__get local.set $value local.get $map - local.set $17 + local.set $18 global.get $~lib/memory/__stack_pointer - local.get $17 + local.get $18 i32.store offset=4 - local.get $17 + local.get $18 local.get $key call $"~lib/map/Map#has" i32.eqz @@ -34221,11 +34650,11 @@ unreachable end local.get $map - local.set $17 + local.set $18 global.get $~lib/memory/__stack_pointer - local.get $17 + local.get $18 i32.store offset=4 - local.get $17 + local.get $18 local.get $value i32.const 20 i32.sub @@ -34241,21 +34670,21 @@ unreachable end local.get $keyMap - local.set $17 + local.set $18 global.get $~lib/memory/__stack_pointer - local.get $17 + local.get $18 i32.store offset=4 - local.get $17 + local.get $18 local.get $key local.get $key call $"~lib/map/Map#set" drop local.get $valMap - local.set $17 + local.set $18 global.get $~lib/memory/__stack_pointer - local.get $17 + local.get $18 i32.store offset=4 - local.get $17 + local.get $18 local.get $value i32.const 20 i32.sub @@ -34272,11 +34701,11 @@ end end local.get $keyMap - local.set $17 + local.set $18 global.get $~lib/memory/__stack_pointer - local.get $17 + local.get $18 i32.store offset=4 - local.get $17 + local.get $18 call $"~lib/map/Map#get:size" i32.const 100 i32.eq @@ -34290,11 +34719,11 @@ unreachable end local.get $valMap - local.set $17 + local.set $18 global.get $~lib/memory/__stack_pointer - local.get $17 + local.get $18 i32.store offset=4 - local.get $17 + local.get $18 call $"~lib/map/Map#get:size" i32.const 100 i32.eq @@ -34315,11 +34744,11 @@ i64.lt_u if local.get $map - local.set $17 + local.set $18 global.get $~lib/memory/__stack_pointer - local.get $17 + local.get $18 i32.store offset=4 - local.get $17 + local.get $18 local.get $k|10 call $"~lib/map/Map#has" i32.eqz @@ -34332,11 +34761,11 @@ unreachable end local.get $map - local.set $17 + local.set $18 global.get $~lib/memory/__stack_pointer - local.get $17 + local.get $18 i32.store offset=4 - local.get $17 + local.get $18 local.get $k|10 call $"~lib/map/Map#get" i32.const 20 @@ -34354,20 +34783,20 @@ unreachable end local.get $map - local.set $17 + local.set $18 global.get $~lib/memory/__stack_pointer - local.get $17 + local.get $18 i32.store offset=4 - local.get $17 + local.get $18 local.get $k|10 call $"~lib/map/Map#delete" drop local.get $map - local.set $17 + local.set $18 global.get $~lib/memory/__stack_pointer - local.get $17 + local.get $18 i32.store offset=4 - local.get $17 + local.get $18 local.get $k|10 call $"~lib/map/Map#has" i32.eqz @@ -34388,11 +34817,11 @@ end end local.get $map - local.set $17 + local.set $18 global.get $~lib/memory/__stack_pointer - local.get $17 + local.get $18 i32.store offset=4 - local.get $17 + local.get $18 call $"~lib/map/Map#get:size" i32.const 50 i32.eq @@ -34413,11 +34842,11 @@ i64.lt_u if local.get $map - local.set $17 + local.set $18 global.get $~lib/memory/__stack_pointer - local.get $17 + local.get $18 i32.store offset=4 - local.get $17 + local.get $18 local.get $k|11 call $"~lib/map/Map#has" i32.eqz @@ -34431,11 +34860,11 @@ unreachable end local.get $map - local.set $17 + local.set $18 global.get $~lib/memory/__stack_pointer - local.get $17 + local.get $18 i32.store offset=4 - local.get $17 + local.get $18 local.get $k|11 i32.const 10 local.get $k|11 @@ -34444,11 +34873,11 @@ call $"~lib/map/Map#set" drop local.get $map - local.set $17 + local.set $18 global.get $~lib/memory/__stack_pointer - local.get $17 + local.get $18 i32.store offset=4 - local.get $17 + local.get $18 local.get $k|11 call $"~lib/map/Map#has" i32.eqz @@ -34461,20 +34890,20 @@ unreachable end local.get $map - local.set $17 + local.set $18 global.get $~lib/memory/__stack_pointer - local.get $17 + local.get $18 i32.store offset=4 - local.get $17 + local.get $18 local.get $k|11 call $"~lib/map/Map#delete" drop local.get $map - local.set $17 + local.set $18 global.get $~lib/memory/__stack_pointer - local.get $17 + local.get $18 i32.store offset=4 - local.get $17 + local.get $18 local.get $k|11 call $"~lib/map/Map#has" i32.eqz @@ -34495,11 +34924,11 @@ end end local.get $map - local.set $17 + local.set $18 global.get $~lib/memory/__stack_pointer - local.get $17 + local.get $18 i32.store offset=4 - local.get $17 + local.get $18 call $"~lib/map/Map#get:size" i32.const 50 i32.eq @@ -34513,18 +34942,18 @@ unreachable end local.get $map - local.set $17 + local.set $18 global.get $~lib/memory/__stack_pointer - local.get $17 + local.get $18 i32.store offset=4 - local.get $17 + local.get $18 call $"~lib/map/Map#clear" local.get $map - local.set $17 + local.set $18 global.get $~lib/memory/__stack_pointer - local.get $17 + local.get $18 i32.store offset=4 - local.get $17 + local.get $18 call $"~lib/map/Map#get:size" i32.const 0 i32.eq @@ -34541,7 +34970,7 @@ i32.const 0 i32.const 2 i32.const 52 - i32.const 1104 + i32.const 1328 call $~lib/rt/__newArray local.tee $initialEntries i32.store offset=24 @@ -34553,41 +34982,41 @@ i64.lt_u if local.get $initialEntries - local.set $17 + local.set $18 global.get $~lib/memory/__stack_pointer - local.get $17 + local.get $18 i32.store offset=4 - local.get $17 + local.get $18 global.get $~lib/memory/__stack_pointer i32.const 0 call $"~lib/map/KeyValue#constructor" local.tee $15 i32.store offset=32 local.get $15 - local.set $17 + local.set $18 global.get $~lib/memory/__stack_pointer - local.get $17 + local.get $18 i32.store offset=36 - local.get $17 + local.get $18 local.get $k|14 call $"~lib/map/KeyValue#set:key" local.get $15 - local.set $17 + local.set $18 global.get $~lib/memory/__stack_pointer - local.get $17 + local.get $18 i32.store offset=36 - local.get $17 + local.get $18 i32.const 10 local.get $k|14 i32.wrap_i64 i32.add call $"~lib/map/KeyValue#set:value" local.get $15 - local.set $17 + local.set $18 global.get $~lib/memory/__stack_pointer - local.get $17 + local.get $18 i32.store offset=28 - local.get $17 + local.get $18 call $"~lib/array/Array<~lib/map/KeyValue>#push" drop local.get $k|14 @@ -34600,20 +35029,20 @@ global.get $~lib/memory/__stack_pointer i32.const 0 local.get $initialEntries - local.set $17 + local.set $18 global.get $~lib/memory/__stack_pointer - local.get $17 + local.get $18 i32.store offset=4 - local.get $17 + local.get $18 call $"~lib/map/Map#constructor" local.tee $map i32.store local.get $map - local.set $17 + local.set $18 global.get $~lib/memory/__stack_pointer - local.get $17 + local.get $18 i32.store offset=4 - local.get $17 + local.get $18 call $"~lib/map/Map#get:size" i32.const 100 i32.eq @@ -34621,7 +35050,7 @@ if i32.const 0 i32.const 720 - i32.const 74 + i32.const 75 i32.const 3 call $~lib/builtins/abort unreachable @@ -34634,28 +35063,28 @@ i64.lt_u if local.get $map - local.set $17 + local.set $18 global.get $~lib/memory/__stack_pointer - local.get $17 + local.get $18 i32.store offset=4 - local.get $17 + local.get $18 local.get $k|16 call $"~lib/map/Map#has" i32.eqz if i32.const 0 i32.const 720 - i32.const 76 + i32.const 77 i32.const 5 call $~lib/builtins/abort unreachable end local.get $map - local.set $17 + local.set $18 global.get $~lib/memory/__stack_pointer - local.get $17 + local.get $18 i32.store offset=4 - local.get $17 + local.get $18 local.get $k|16 call $"~lib/map/Map#get" i32.const 10 @@ -34667,26 +35096,26 @@ if i32.const 0 i32.const 720 - i32.const 77 + i32.const 78 i32.const 5 call $~lib/builtins/abort unreachable end local.get $map - local.set $17 + local.set $18 global.get $~lib/memory/__stack_pointer - local.get $17 + local.get $18 i32.store offset=4 - local.get $17 + local.get $18 local.get $k|16 call $"~lib/map/Map#delete" drop local.get $map - local.set $17 + local.set $18 global.get $~lib/memory/__stack_pointer - local.get $17 + local.get $18 i32.store offset=4 - local.get $17 + local.get $18 local.get $k|16 call $"~lib/map/Map#has" i32.eqz @@ -34694,7 +35123,7 @@ if i32.const 0 i32.const 720 - i32.const 79 + i32.const 80 i32.const 5 call $~lib/builtins/abort unreachable @@ -34707,11 +35136,11 @@ end end local.get $map - local.set $17 + local.set $18 global.get $~lib/memory/__stack_pointer - local.get $17 + local.get $18 i32.store offset=4 - local.get $17 + local.get $18 call $"~lib/map/Map#get:size" i32.const 0 i32.eq @@ -34719,7 +35148,40 @@ if i32.const 0 i32.const 720 - i32.const 81 + i32.const 82 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.const 0 + i32.const 2 + i32.const 52 + i32.const 1360 + call $~lib/rt/__newArray + local.set $18 + global.get $~lib/memory/__stack_pointer + local.get $18 + i32.store offset=4 + local.get $18 + call $"~lib/map/Map#constructor" + local.tee $map + i32.store + local.get $map + local.set $18 + global.get $~lib/memory/__stack_pointer + local.get $18 + i32.store offset=4 + local.get $18 + call $"~lib/map/Map#get:size" + i32.const 0 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 720 + i32.const 85 i32.const 3 call $~lib/builtins/abort unreachable @@ -35102,16 +35564,17 @@ return ) (func $"~lib/map/Map#constructor" (param $this i32) (param $initialEntries i32) (result i32) + (local $initialEntriesLength i32) (local $i i32) (local $key f32) (local $value i32) (local $hashCode i32) (local $entry i32) (local $entries i32) - (local $8 i32) - (local $entry|9 i32) + (local $9 i32) + (local $entry|10 i32) (local $bucketPtrBase i32) - (local $11 i32) + (local $12 i32) global.get $~lib/memory/__stack_pointer i32.const 16 i32.sub @@ -35134,38 +35597,38 @@ i32.store end local.get $this - local.set $11 + local.set $12 global.get $~lib/memory/__stack_pointer - local.get $11 + local.get $12 i32.store offset=4 - local.get $11 + local.get $12 i32.const 0 i32.const 4 i32.const 4 i32.mul call $~lib/arraybuffer/ArrayBuffer#constructor - local.set $11 + local.set $12 global.get $~lib/memory/__stack_pointer - local.get $11 + local.get $12 i32.store offset=8 - local.get $11 + local.get $12 call $"~lib/map/Map#set:buckets" local.get $this - local.set $11 + local.set $12 global.get $~lib/memory/__stack_pointer - local.get $11 + local.get $12 i32.store offset=4 - local.get $11 + local.get $12 i32.const 4 i32.const 1 i32.sub call $"~lib/map/Map#set:bucketsMask" local.get $this - local.set $11 + local.set $12 global.get $~lib/memory/__stack_pointer - local.get $11 + local.get $12 i32.store offset=4 - local.get $11 + local.get $12 i32.const 0 i32.const 4 block $"~lib/map/ENTRY_SIZE|inlined.5" (result i32) @@ -35174,256 +35637,267 @@ end i32.mul call $~lib/arraybuffer/ArrayBuffer#constructor - local.set $11 + local.set $12 global.get $~lib/memory/__stack_pointer - local.get $11 + local.get $12 i32.store offset=8 - local.get $11 + local.get $12 call $"~lib/map/Map#set:entries" local.get $this - local.set $11 + local.set $12 global.get $~lib/memory/__stack_pointer - local.get $11 + local.get $12 i32.store offset=4 - local.get $11 + local.get $12 i32.const 4 call $"~lib/map/Map#set:entriesCapacity" local.get $this - local.set $11 + local.set $12 global.get $~lib/memory/__stack_pointer - local.get $11 + local.get $12 i32.store offset=4 - local.get $11 + local.get $12 i32.const 0 call $"~lib/map/Map#set:entriesOffset" local.get $this - local.set $11 + local.set $12 global.get $~lib/memory/__stack_pointer - local.get $11 + local.get $12 i32.store offset=4 - local.get $11 + local.get $12 i32.const 0 call $"~lib/map/Map#set:entriesCount" local.get $initialEntries - if + i32.eqz + if (result i32) + i32.const 1 + else local.get $initialEntries - local.set $11 + local.set $12 global.get $~lib/memory/__stack_pointer - local.get $11 + local.get $12 i32.store offset=4 - local.get $11 + local.get $12 call $"~lib/array/Array<~lib/map/KeyValue>#get:length" + i32.eqz + end + if + local.get $this + local.set $12 + global.get $~lib/memory/__stack_pointer + i32.const 16 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $12 + return + end + local.get $initialEntries + local.set $12 + global.get $~lib/memory/__stack_pointer + local.get $12 + i32.store offset=4 + local.get $12 + call $"~lib/array/Array<~lib/map/KeyValue>#get:length" + local.set $initialEntriesLength + local.get $initialEntriesLength + local.get $this + local.set $12 + global.get $~lib/memory/__stack_pointer + local.get $12 + i32.store offset=4 + local.get $12 + call $"~lib/map/Map#get:entriesCapacity" + i32.ge_s + if local.get $this - local.set $11 + local.set $12 global.get $~lib/memory/__stack_pointer - local.get $11 + local.get $12 i32.store offset=4 - local.get $11 - call $"~lib/map/Map#get:entriesCapacity" - i32.ge_s + local.get $12 + local.get $initialEntriesLength + call $"~lib/map/Map#set:bucketsMask" + end + local.get $this + local.set $12 + global.get $~lib/memory/__stack_pointer + local.get $12 + i32.store offset=4 + local.get $12 + local.get $this + local.set $12 + global.get $~lib/memory/__stack_pointer + local.get $12 + i32.store offset=8 + local.get $12 + call $"~lib/map/Map#get:bucketsMask" + i32.const 1 + i32.shl + i32.const 1 + i32.or + call $"~lib/map/Map#rehash" + i32.const 0 + local.set $i + loop $for-loop|0 + local.get $i + local.get $initialEntriesLength + i32.lt_s if - local.get $this - local.set $11 + local.get $initialEntries + local.set $12 global.get $~lib/memory/__stack_pointer - local.get $11 + local.get $12 + i32.store offset=8 + local.get $12 + local.get $i + call $"~lib/array/Array<~lib/map/KeyValue>#__get" + local.set $12 + global.get $~lib/memory/__stack_pointer + local.get $12 i32.store offset=4 - local.get $11 + local.get $12 + call $"~lib/map/KeyValue#get:key" + local.set $key local.get $initialEntries - local.set $11 + local.set $12 global.get $~lib/memory/__stack_pointer - local.get $11 + local.get $12 i32.store offset=8 - local.get $11 - call $"~lib/array/Array<~lib/map/KeyValue>#get:length" - call $"~lib/map/Map#set:bucketsMask" - end - local.get $this - local.set $11 - global.get $~lib/memory/__stack_pointer - local.get $11 - i32.store offset=4 - local.get $11 - local.get $this - local.set $11 - global.get $~lib/memory/__stack_pointer - local.get $11 - i32.store offset=8 - local.get $11 - call $"~lib/map/Map#get:bucketsMask" - i32.const 1 - i32.shl - i32.const 1 - i32.or - call $"~lib/map/Map#rehash" - i32.const 0 - local.set $i - loop $for-loop|0 + local.get $12 local.get $i - local.get $initialEntries - local.set $11 + call $"~lib/array/Array<~lib/map/KeyValue>#__get" + local.set $12 global.get $~lib/memory/__stack_pointer - local.get $11 + local.get $12 i32.store offset=4 - local.get $11 - call $"~lib/array/Array<~lib/map/KeyValue>#get:length" - i32.lt_s + local.get $12 + call $"~lib/map/KeyValue#get:value" + local.set $value + local.get $key + call $~lib/util/hash/HASH + local.set $hashCode + local.get $this + local.set $12 + global.get $~lib/memory/__stack_pointer + local.get $12 + i32.store offset=4 + local.get $12 + local.get $key + local.get $hashCode + call $"~lib/map/Map#find" + local.set $entry + local.get $entry if - local.get $initialEntries - local.set $11 + local.get $entry + local.get $value + call $"~lib/map/MapEntry#set:value" + i32.const 0 + drop + else global.get $~lib/memory/__stack_pointer - local.get $11 - i32.store offset=8 - local.get $11 - local.get $i - call $"~lib/array/Array<~lib/map/KeyValue>#__get" - local.set $11 + local.get $this + local.set $12 global.get $~lib/memory/__stack_pointer - local.get $11 + local.get $12 i32.store offset=4 - local.get $11 - call $"~lib/map/KeyValue#get:key" - local.set $key - local.get $initialEntries - local.set $11 + local.get $12 + call $"~lib/map/Map#get:entries" + local.tee $entries + i32.store offset=12 + local.get $entries + local.get $this + local.set $12 global.get $~lib/memory/__stack_pointer - local.get $11 + local.get $12 + i32.store offset=4 + local.get $12 + local.get $this + local.set $12 + global.get $~lib/memory/__stack_pointer + local.get $12 i32.store offset=8 - local.get $11 - local.get $i - call $"~lib/array/Array<~lib/map/KeyValue>#__get" - local.set $11 + local.get $12 + call $"~lib/map/Map#get:entriesOffset" + local.tee $9 + i32.const 1 + i32.add + call $"~lib/map/Map#set:entriesOffset" + local.get $9 + block $"~lib/map/ENTRY_SIZE|inlined.4" (result i32) + i32.const 12 + br $"~lib/map/ENTRY_SIZE|inlined.4" + end + i32.mul + i32.add + local.set $entry|10 + local.get $entry|10 + local.get $key + call $"~lib/map/MapEntry#set:key" + i32.const 0 + drop + local.get $entry|10 + local.get $value + call $"~lib/map/MapEntry#set:value" + i32.const 0 + drop + local.get $this + local.set $12 global.get $~lib/memory/__stack_pointer - local.get $11 + local.get $12 i32.store offset=4 - local.get $11 - call $"~lib/map/KeyValue#get:value" - local.set $value - local.get $key - call $~lib/util/hash/HASH - local.set $hashCode + local.get $12 local.get $this - local.set $11 + local.set $12 global.get $~lib/memory/__stack_pointer - local.get $11 + local.get $12 + i32.store offset=8 + local.get $12 + call $"~lib/map/Map#get:entriesCount" + i32.const 1 + i32.add + call $"~lib/map/Map#set:entriesCount" + local.get $this + local.set $12 + global.get $~lib/memory/__stack_pointer + local.get $12 i32.store offset=4 - local.get $11 - local.get $key + local.get $12 + call $"~lib/map/Map#get:buckets" local.get $hashCode - call $"~lib/map/Map#find" - local.set $entry - local.get $entry - if - local.get $entry - local.get $value - call $"~lib/map/MapEntry#set:value" - i32.const 0 - drop - else - global.get $~lib/memory/__stack_pointer - local.get $this - local.set $11 - global.get $~lib/memory/__stack_pointer - local.get $11 - i32.store offset=4 - local.get $11 - call $"~lib/map/Map#get:entries" - local.tee $entries - i32.store offset=12 - local.get $entries - local.get $this - local.set $11 - global.get $~lib/memory/__stack_pointer - local.get $11 - i32.store offset=4 - local.get $11 - local.get $this - local.set $11 - global.get $~lib/memory/__stack_pointer - local.get $11 - i32.store offset=8 - local.get $11 - call $"~lib/map/Map#get:entriesOffset" - local.tee $8 - i32.const 1 - i32.add - call $"~lib/map/Map#set:entriesOffset" - local.get $8 - block $"~lib/map/ENTRY_SIZE|inlined.4" (result i32) - i32.const 12 - br $"~lib/map/ENTRY_SIZE|inlined.4" - end - i32.mul - i32.add - local.set $entry|9 - local.get $entry|9 - local.get $key - call $"~lib/map/MapEntry#set:key" - i32.const 0 - drop - local.get $entry|9 - local.get $value - call $"~lib/map/MapEntry#set:value" - i32.const 0 - drop - local.get $this - local.set $11 - global.get $~lib/memory/__stack_pointer - local.get $11 - i32.store offset=4 - local.get $11 - local.get $this - local.set $11 - global.get $~lib/memory/__stack_pointer - local.get $11 - i32.store offset=8 - local.get $11 - call $"~lib/map/Map#get:entriesCount" - i32.const 1 - i32.add - call $"~lib/map/Map#set:entriesCount" - local.get $this - local.set $11 - global.get $~lib/memory/__stack_pointer - local.get $11 - i32.store offset=4 - local.get $11 - call $"~lib/map/Map#get:buckets" - local.get $hashCode - local.get $this - local.set $11 - global.get $~lib/memory/__stack_pointer - local.get $11 - i32.store offset=4 - local.get $11 - call $"~lib/map/Map#get:bucketsMask" - i32.and - i32.const 4 - i32.mul - i32.add - local.set $bucketPtrBase - local.get $entry|9 - local.get $bucketPtrBase - i32.load - call $"~lib/map/MapEntry#set:taggedNext" - local.get $bucketPtrBase - local.get $entry|9 - i32.store - end - local.get $i - i32.const 1 + local.get $this + local.set $12 + global.get $~lib/memory/__stack_pointer + local.get $12 + i32.store offset=4 + local.get $12 + call $"~lib/map/Map#get:bucketsMask" + i32.and + i32.const 4 + i32.mul i32.add - local.set $i - br $for-loop|0 + local.set $bucketPtrBase + local.get $entry|10 + local.get $bucketPtrBase + i32.load + call $"~lib/map/MapEntry#set:taggedNext" + local.get $bucketPtrBase + local.get $entry|10 + i32.store end + local.get $i + i32.const 1 + i32.add + local.set $i + br $for-loop|0 end end local.get $this - local.set $11 + local.set $12 global.get $~lib/memory/__stack_pointer i32.const 16 i32.add global.set $~lib/memory/__stack_pointer - local.get $11 + local.get $12 ) (func $"~lib/map/Map#has" (param $this i32) (param $key f32) (result i32) (local $2 i32) @@ -35684,7 +36158,7 @@ if i32.const 768 i32.const 832 - i32.const 146 + i32.const 147 i32.const 17 call $~lib/builtins/abort unreachable @@ -36538,16 +37012,17 @@ return ) (func $"~lib/map/Map#constructor" (param $this i32) (param $initialEntries i32) (result i32) + (local $initialEntriesLength i32) (local $i i32) (local $key f32) (local $value f32) (local $hashCode i32) (local $entry i32) (local $entries i32) - (local $8 i32) - (local $entry|9 i32) + (local $9 i32) + (local $entry|10 i32) (local $bucketPtrBase i32) - (local $11 i32) + (local $12 i32) global.get $~lib/memory/__stack_pointer i32.const 16 i32.sub @@ -36570,38 +37045,38 @@ i32.store end local.get $this - local.set $11 + local.set $12 global.get $~lib/memory/__stack_pointer - local.get $11 + local.get $12 i32.store offset=4 - local.get $11 + local.get $12 i32.const 0 i32.const 4 i32.const 4 i32.mul call $~lib/arraybuffer/ArrayBuffer#constructor - local.set $11 + local.set $12 global.get $~lib/memory/__stack_pointer - local.get $11 + local.get $12 i32.store offset=8 - local.get $11 + local.get $12 call $"~lib/map/Map#set:buckets" local.get $this - local.set $11 + local.set $12 global.get $~lib/memory/__stack_pointer - local.get $11 + local.get $12 i32.store offset=4 - local.get $11 + local.get $12 i32.const 4 i32.const 1 i32.sub call $"~lib/map/Map#set:bucketsMask" local.get $this - local.set $11 + local.set $12 global.get $~lib/memory/__stack_pointer - local.get $11 + local.get $12 i32.store offset=4 - local.get $11 + local.get $12 i32.const 0 i32.const 4 block $"~lib/map/ENTRY_SIZE|inlined.5" (result i32) @@ -36610,256 +37085,267 @@ end i32.mul call $~lib/arraybuffer/ArrayBuffer#constructor - local.set $11 + local.set $12 global.get $~lib/memory/__stack_pointer - local.get $11 + local.get $12 i32.store offset=8 - local.get $11 + local.get $12 call $"~lib/map/Map#set:entries" local.get $this - local.set $11 + local.set $12 global.get $~lib/memory/__stack_pointer - local.get $11 + local.get $12 i32.store offset=4 - local.get $11 + local.get $12 i32.const 4 call $"~lib/map/Map#set:entriesCapacity" local.get $this - local.set $11 + local.set $12 global.get $~lib/memory/__stack_pointer - local.get $11 + local.get $12 i32.store offset=4 - local.get $11 + local.get $12 i32.const 0 call $"~lib/map/Map#set:entriesOffset" local.get $this - local.set $11 + local.set $12 global.get $~lib/memory/__stack_pointer - local.get $11 + local.get $12 i32.store offset=4 - local.get $11 + local.get $12 i32.const 0 call $"~lib/map/Map#set:entriesCount" local.get $initialEntries - if + i32.eqz + if (result i32) + i32.const 1 + else local.get $initialEntries - local.set $11 + local.set $12 global.get $~lib/memory/__stack_pointer - local.get $11 + local.get $12 i32.store offset=4 - local.get $11 + local.get $12 call $"~lib/array/Array<~lib/map/KeyValue>#get:length" + i32.eqz + end + if local.get $this - local.set $11 + local.set $12 global.get $~lib/memory/__stack_pointer - local.get $11 + i32.const 16 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $12 + return + end + local.get $initialEntries + local.set $12 + global.get $~lib/memory/__stack_pointer + local.get $12 + i32.store offset=4 + local.get $12 + call $"~lib/array/Array<~lib/map/KeyValue>#get:length" + local.set $initialEntriesLength + local.get $initialEntriesLength + local.get $this + local.set $12 + global.get $~lib/memory/__stack_pointer + local.get $12 + i32.store offset=4 + local.get $12 + call $"~lib/map/Map#get:entriesCapacity" + i32.ge_s + if + local.get $this + local.set $12 + global.get $~lib/memory/__stack_pointer + local.get $12 i32.store offset=4 - local.get $11 - call $"~lib/map/Map#get:entriesCapacity" - i32.ge_s + local.get $12 + local.get $initialEntriesLength + call $"~lib/map/Map#set:bucketsMask" + end + local.get $this + local.set $12 + global.get $~lib/memory/__stack_pointer + local.get $12 + i32.store offset=4 + local.get $12 + local.get $this + local.set $12 + global.get $~lib/memory/__stack_pointer + local.get $12 + i32.store offset=8 + local.get $12 + call $"~lib/map/Map#get:bucketsMask" + i32.const 1 + i32.shl + i32.const 1 + i32.or + call $"~lib/map/Map#rehash" + i32.const 0 + local.set $i + loop $for-loop|0 + local.get $i + local.get $initialEntriesLength + i32.lt_s if - local.get $this - local.set $11 + local.get $initialEntries + local.set $12 global.get $~lib/memory/__stack_pointer - local.get $11 + local.get $12 + i32.store offset=8 + local.get $12 + local.get $i + call $"~lib/array/Array<~lib/map/KeyValue>#__get" + local.set $12 + global.get $~lib/memory/__stack_pointer + local.get $12 i32.store offset=4 - local.get $11 + local.get $12 + call $"~lib/map/KeyValue#get:key" + local.set $key local.get $initialEntries - local.set $11 + local.set $12 global.get $~lib/memory/__stack_pointer - local.get $11 + local.get $12 i32.store offset=8 - local.get $11 - call $"~lib/array/Array<~lib/map/KeyValue>#get:length" - call $"~lib/map/Map#set:bucketsMask" - end - local.get $this - local.set $11 - global.get $~lib/memory/__stack_pointer - local.get $11 - i32.store offset=4 - local.get $11 - local.get $this - local.set $11 - global.get $~lib/memory/__stack_pointer - local.get $11 - i32.store offset=8 - local.get $11 - call $"~lib/map/Map#get:bucketsMask" - i32.const 1 - i32.shl - i32.const 1 - i32.or - call $"~lib/map/Map#rehash" - i32.const 0 - local.set $i - loop $for-loop|0 + local.get $12 local.get $i - local.get $initialEntries - local.set $11 + call $"~lib/array/Array<~lib/map/KeyValue>#__get" + local.set $12 global.get $~lib/memory/__stack_pointer - local.get $11 + local.get $12 i32.store offset=4 - local.get $11 - call $"~lib/array/Array<~lib/map/KeyValue>#get:length" - i32.lt_s + local.get $12 + call $"~lib/map/KeyValue#get:value" + local.set $value + local.get $key + call $~lib/util/hash/HASH + local.set $hashCode + local.get $this + local.set $12 + global.get $~lib/memory/__stack_pointer + local.get $12 + i32.store offset=4 + local.get $12 + local.get $key + local.get $hashCode + call $"~lib/map/Map#find" + local.set $entry + local.get $entry if - local.get $initialEntries - local.set $11 + local.get $entry + local.get $value + call $"~lib/map/MapEntry#set:value" + i32.const 0 + drop + else global.get $~lib/memory/__stack_pointer - local.get $11 - i32.store offset=8 - local.get $11 - local.get $i - call $"~lib/array/Array<~lib/map/KeyValue>#__get" - local.set $11 + local.get $this + local.set $12 global.get $~lib/memory/__stack_pointer - local.get $11 + local.get $12 i32.store offset=4 - local.get $11 - call $"~lib/map/KeyValue#get:key" - local.set $key - local.get $initialEntries - local.set $11 + local.get $12 + call $"~lib/map/Map#get:entries" + local.tee $entries + i32.store offset=12 + local.get $entries + local.get $this + local.set $12 global.get $~lib/memory/__stack_pointer - local.get $11 + local.get $12 + i32.store offset=4 + local.get $12 + local.get $this + local.set $12 + global.get $~lib/memory/__stack_pointer + local.get $12 i32.store offset=8 - local.get $11 - local.get $i - call $"~lib/array/Array<~lib/map/KeyValue>#__get" - local.set $11 + local.get $12 + call $"~lib/map/Map#get:entriesOffset" + local.tee $9 + i32.const 1 + i32.add + call $"~lib/map/Map#set:entriesOffset" + local.get $9 + block $"~lib/map/ENTRY_SIZE|inlined.4" (result i32) + i32.const 12 + br $"~lib/map/ENTRY_SIZE|inlined.4" + end + i32.mul + i32.add + local.set $entry|10 + local.get $entry|10 + local.get $key + call $"~lib/map/MapEntry#set:key" + i32.const 0 + drop + local.get $entry|10 + local.get $value + call $"~lib/map/MapEntry#set:value" + i32.const 0 + drop + local.get $this + local.set $12 global.get $~lib/memory/__stack_pointer - local.get $11 + local.get $12 i32.store offset=4 - local.get $11 - call $"~lib/map/KeyValue#get:value" - local.set $value - local.get $key - call $~lib/util/hash/HASH - local.set $hashCode + local.get $12 + local.get $this + local.set $12 + global.get $~lib/memory/__stack_pointer + local.get $12 + i32.store offset=8 + local.get $12 + call $"~lib/map/Map#get:entriesCount" + i32.const 1 + i32.add + call $"~lib/map/Map#set:entriesCount" local.get $this - local.set $11 + local.set $12 global.get $~lib/memory/__stack_pointer - local.get $11 + local.get $12 i32.store offset=4 - local.get $11 - local.get $key + local.get $12 + call $"~lib/map/Map#get:buckets" local.get $hashCode - call $"~lib/map/Map#find" - local.set $entry - local.get $entry - if - local.get $entry - local.get $value - call $"~lib/map/MapEntry#set:value" - i32.const 0 - drop - else - global.get $~lib/memory/__stack_pointer - local.get $this - local.set $11 - global.get $~lib/memory/__stack_pointer - local.get $11 - i32.store offset=4 - local.get $11 - call $"~lib/map/Map#get:entries" - local.tee $entries - i32.store offset=12 - local.get $entries - local.get $this - local.set $11 - global.get $~lib/memory/__stack_pointer - local.get $11 - i32.store offset=4 - local.get $11 - local.get $this - local.set $11 - global.get $~lib/memory/__stack_pointer - local.get $11 - i32.store offset=8 - local.get $11 - call $"~lib/map/Map#get:entriesOffset" - local.tee $8 - i32.const 1 - i32.add - call $"~lib/map/Map#set:entriesOffset" - local.get $8 - block $"~lib/map/ENTRY_SIZE|inlined.4" (result i32) - i32.const 12 - br $"~lib/map/ENTRY_SIZE|inlined.4" - end - i32.mul - i32.add - local.set $entry|9 - local.get $entry|9 - local.get $key - call $"~lib/map/MapEntry#set:key" - i32.const 0 - drop - local.get $entry|9 - local.get $value - call $"~lib/map/MapEntry#set:value" - i32.const 0 - drop - local.get $this - local.set $11 - global.get $~lib/memory/__stack_pointer - local.get $11 - i32.store offset=4 - local.get $11 - local.get $this - local.set $11 - global.get $~lib/memory/__stack_pointer - local.get $11 - i32.store offset=8 - local.get $11 - call $"~lib/map/Map#get:entriesCount" - i32.const 1 - i32.add - call $"~lib/map/Map#set:entriesCount" - local.get $this - local.set $11 - global.get $~lib/memory/__stack_pointer - local.get $11 - i32.store offset=4 - local.get $11 - call $"~lib/map/Map#get:buckets" - local.get $hashCode - local.get $this - local.set $11 - global.get $~lib/memory/__stack_pointer - local.get $11 - i32.store offset=4 - local.get $11 - call $"~lib/map/Map#get:bucketsMask" - i32.and - i32.const 4 - i32.mul - i32.add - local.set $bucketPtrBase - local.get $entry|9 - local.get $bucketPtrBase - i32.load - call $"~lib/map/MapEntry#set:taggedNext" - local.get $bucketPtrBase - local.get $entry|9 - i32.store - end - local.get $i - i32.const 1 + local.get $this + local.set $12 + global.get $~lib/memory/__stack_pointer + local.get $12 + i32.store offset=4 + local.get $12 + call $"~lib/map/Map#get:bucketsMask" + i32.and + i32.const 4 + i32.mul i32.add - local.set $i - br $for-loop|0 + local.set $bucketPtrBase + local.get $entry|10 + local.get $bucketPtrBase + i32.load + call $"~lib/map/MapEntry#set:taggedNext" + local.get $bucketPtrBase + local.get $entry|10 + i32.store end + local.get $i + i32.const 1 + i32.add + local.set $i + br $for-loop|0 end end local.get $this - local.set $11 + local.set $12 global.get $~lib/memory/__stack_pointer i32.const 16 i32.add global.set $~lib/memory/__stack_pointer - local.get $11 + local.get $12 ) (func $~lib/array/Array#get:length (param $this i32) (result i32) (local $1 i32) @@ -37519,6 +38005,7 @@ (local $15 i32) (local $k|16 f32) (local $17 i32) + (local $18 i32) global.get $~lib/memory/__stack_pointer i32.const 40 i32.sub @@ -37542,11 +38029,11 @@ f32.lt if local.get $map - local.set $17 + local.set $18 global.get $~lib/memory/__stack_pointer - local.get $17 + local.get $18 i32.store offset=4 - local.get $17 + local.get $18 local.get $k call $"~lib/map/Map#has" i32.eqz @@ -37560,11 +38047,11 @@ unreachable end local.get $map - local.set $17 + local.set $18 global.get $~lib/memory/__stack_pointer - local.get $17 + local.get $18 i32.store offset=4 - local.get $17 + local.get $18 local.get $k i32.const 10 local.get $k @@ -37573,11 +38060,11 @@ call $"~lib/map/Map#set" drop local.get $map - local.set $17 + local.set $18 global.get $~lib/memory/__stack_pointer - local.get $17 + local.get $18 i32.store offset=4 - local.get $17 + local.get $18 local.get $k call $"~lib/map/Map#has" i32.eqz @@ -37590,11 +38077,11 @@ unreachable end local.get $map - local.set $17 + local.set $18 global.get $~lib/memory/__stack_pointer - local.get $17 + local.get $18 i32.store offset=4 - local.get $17 + local.get $18 local.get $k call $"~lib/map/Map#get" i32.const 10 @@ -37619,11 +38106,11 @@ end end local.get $map - local.set $17 + local.set $18 global.get $~lib/memory/__stack_pointer - local.get $17 + local.get $18 i32.store offset=4 - local.get $17 + local.get $18 call $"~lib/map/Map#get:size" i32.const 100 i32.eq @@ -37644,11 +38131,11 @@ f32.lt if local.get $map - local.set $17 + local.set $18 global.get $~lib/memory/__stack_pointer - local.get $17 + local.get $18 i32.store offset=4 - local.get $17 + local.get $18 local.get $k|2 call $"~lib/map/Map#has" i32.eqz @@ -37661,11 +38148,11 @@ unreachable end local.get $map - local.set $17 + local.set $18 global.get $~lib/memory/__stack_pointer - local.get $17 + local.get $18 i32.store offset=4 - local.get $17 + local.get $18 local.get $k|2 call $"~lib/map/Map#get" i32.const 10 @@ -37683,11 +38170,11 @@ unreachable end local.get $map - local.set $17 + local.set $18 global.get $~lib/memory/__stack_pointer - local.get $17 + local.get $18 i32.store offset=4 - local.get $17 + local.get $18 local.get $k|2 i32.const 20 local.get $k|2 @@ -37696,11 +38183,11 @@ call $"~lib/map/Map#set" drop local.get $map - local.set $17 + local.set $18 global.get $~lib/memory/__stack_pointer - local.get $17 + local.get $18 i32.store offset=4 - local.get $17 + local.get $18 local.get $k|2 call $"~lib/map/Map#has" i32.eqz @@ -37713,11 +38200,11 @@ unreachable end local.get $map - local.set $17 + local.set $18 global.get $~lib/memory/__stack_pointer - local.get $17 + local.get $18 i32.store offset=4 - local.get $17 + local.get $18 local.get $k|2 call $"~lib/map/Map#get" i32.const 20 @@ -37742,11 +38229,11 @@ end end local.get $map - local.set $17 + local.set $18 global.get $~lib/memory/__stack_pointer - local.get $17 + local.get $18 i32.store offset=4 - local.get $17 + local.get $18 call $"~lib/map/Map#get:size" i32.const 100 i32.eq @@ -37761,21 +38248,21 @@ end global.get $~lib/memory/__stack_pointer local.get $map - local.set $17 + local.set $18 global.get $~lib/memory/__stack_pointer - local.get $17 + local.get $18 i32.store offset=4 - local.get $17 + local.get $18 call $"~lib/map/Map#keys" local.tee $keys i32.store offset=8 global.get $~lib/memory/__stack_pointer local.get $map - local.set $17 + local.set $18 global.get $~lib/memory/__stack_pointer - local.get $17 + local.get $18 i32.store offset=4 - local.get $17 + local.get $18 call $"~lib/map/Map#values" local.tee $vals i32.store offset=12 @@ -37796,38 +38283,38 @@ loop $for-loop|2 local.get $index local.get $keys - local.set $17 + local.set $18 global.get $~lib/memory/__stack_pointer - local.get $17 + local.get $18 i32.store offset=4 - local.get $17 + local.get $18 call $~lib/array/Array#get:length i32.lt_s if local.get $keys - local.set $17 + local.set $18 global.get $~lib/memory/__stack_pointer - local.get $17 + local.get $18 i32.store offset=4 - local.get $17 + local.get $18 local.get $index call $~lib/array/Array#__get local.set $key local.get $vals - local.set $17 + local.set $18 global.get $~lib/memory/__stack_pointer - local.get $17 + local.get $18 i32.store offset=4 - local.get $17 + local.get $18 local.get $index call $~lib/array/Array#__get local.set $value local.get $map - local.set $17 + local.set $18 global.get $~lib/memory/__stack_pointer - local.get $17 + local.get $18 i32.store offset=4 - local.get $17 + local.get $18 local.get $key call $"~lib/map/Map#has" i32.eqz @@ -37840,11 +38327,11 @@ unreachable end local.get $map - local.set $17 + local.set $18 global.get $~lib/memory/__stack_pointer - local.get $17 + local.get $18 i32.store offset=4 - local.get $17 + local.get $18 local.get $value i32.const 20 i32.sub @@ -37860,21 +38347,21 @@ unreachable end local.get $keyMap - local.set $17 + local.set $18 global.get $~lib/memory/__stack_pointer - local.get $17 + local.get $18 i32.store offset=4 - local.get $17 + local.get $18 local.get $key local.get $key call $"~lib/map/Map#set" drop local.get $valMap - local.set $17 + local.set $18 global.get $~lib/memory/__stack_pointer - local.get $17 + local.get $18 i32.store offset=4 - local.get $17 + local.get $18 local.get $value i32.const 20 i32.sub @@ -37891,11 +38378,11 @@ end end local.get $keyMap - local.set $17 + local.set $18 global.get $~lib/memory/__stack_pointer - local.get $17 + local.get $18 i32.store offset=4 - local.get $17 + local.get $18 call $"~lib/map/Map#get:size" i32.const 100 i32.eq @@ -37909,11 +38396,11 @@ unreachable end local.get $valMap - local.set $17 + local.set $18 global.get $~lib/memory/__stack_pointer - local.get $17 + local.get $18 i32.store offset=4 - local.get $17 + local.get $18 call $"~lib/map/Map#get:size" i32.const 100 i32.eq @@ -37934,11 +38421,11 @@ f32.lt if local.get $map - local.set $17 + local.set $18 global.get $~lib/memory/__stack_pointer - local.get $17 + local.get $18 i32.store offset=4 - local.get $17 + local.get $18 local.get $k|10 call $"~lib/map/Map#has" i32.eqz @@ -37951,11 +38438,11 @@ unreachable end local.get $map - local.set $17 + local.set $18 global.get $~lib/memory/__stack_pointer - local.get $17 + local.get $18 i32.store offset=4 - local.get $17 + local.get $18 local.get $k|10 call $"~lib/map/Map#get" i32.const 20 @@ -37973,20 +38460,20 @@ unreachable end local.get $map - local.set $17 + local.set $18 global.get $~lib/memory/__stack_pointer - local.get $17 + local.get $18 i32.store offset=4 - local.get $17 + local.get $18 local.get $k|10 call $"~lib/map/Map#delete" drop local.get $map - local.set $17 + local.set $18 global.get $~lib/memory/__stack_pointer - local.get $17 + local.get $18 i32.store offset=4 - local.get $17 + local.get $18 local.get $k|10 call $"~lib/map/Map#has" i32.eqz @@ -38007,11 +38494,11 @@ end end local.get $map - local.set $17 + local.set $18 global.get $~lib/memory/__stack_pointer - local.get $17 + local.get $18 i32.store offset=4 - local.get $17 + local.get $18 call $"~lib/map/Map#get:size" i32.const 50 i32.eq @@ -38032,11 +38519,11 @@ f32.lt if local.get $map - local.set $17 + local.set $18 global.get $~lib/memory/__stack_pointer - local.get $17 + local.get $18 i32.store offset=4 - local.get $17 + local.get $18 local.get $k|11 call $"~lib/map/Map#has" i32.eqz @@ -38050,11 +38537,11 @@ unreachable end local.get $map - local.set $17 + local.set $18 global.get $~lib/memory/__stack_pointer - local.get $17 + local.get $18 i32.store offset=4 - local.get $17 + local.get $18 local.get $k|11 i32.const 10 local.get $k|11 @@ -38063,11 +38550,11 @@ call $"~lib/map/Map#set" drop local.get $map - local.set $17 + local.set $18 global.get $~lib/memory/__stack_pointer - local.get $17 + local.get $18 i32.store offset=4 - local.get $17 + local.get $18 local.get $k|11 call $"~lib/map/Map#has" i32.eqz @@ -38080,20 +38567,20 @@ unreachable end local.get $map - local.set $17 + local.set $18 global.get $~lib/memory/__stack_pointer - local.get $17 + local.get $18 i32.store offset=4 - local.get $17 + local.get $18 local.get $k|11 call $"~lib/map/Map#delete" drop local.get $map - local.set $17 + local.set $18 global.get $~lib/memory/__stack_pointer - local.get $17 + local.get $18 i32.store offset=4 - local.get $17 + local.get $18 local.get $k|11 call $"~lib/map/Map#has" i32.eqz @@ -38114,11 +38601,11 @@ end end local.get $map - local.set $17 + local.set $18 global.get $~lib/memory/__stack_pointer - local.get $17 + local.get $18 i32.store offset=4 - local.get $17 + local.get $18 call $"~lib/map/Map#get:size" i32.const 50 i32.eq @@ -38132,18 +38619,18 @@ unreachable end local.get $map - local.set $17 + local.set $18 global.get $~lib/memory/__stack_pointer - local.get $17 + local.get $18 i32.store offset=4 - local.get $17 + local.get $18 call $"~lib/map/Map#clear" local.get $map - local.set $17 + local.set $18 global.get $~lib/memory/__stack_pointer - local.get $17 + local.get $18 i32.store offset=4 - local.get $17 + local.get $18 call $"~lib/map/Map#get:size" i32.const 0 i32.eq @@ -38160,7 +38647,7 @@ i32.const 0 i32.const 2 i32.const 59 - i32.const 1136 + i32.const 1392 call $~lib/rt/__newArray local.tee $initialEntries i32.store offset=24 @@ -38172,41 +38659,41 @@ f32.lt if local.get $initialEntries - local.set $17 + local.set $18 global.get $~lib/memory/__stack_pointer - local.get $17 + local.get $18 i32.store offset=4 - local.get $17 + local.get $18 global.get $~lib/memory/__stack_pointer i32.const 0 call $"~lib/map/KeyValue#constructor" local.tee $15 i32.store offset=32 local.get $15 - local.set $17 + local.set $18 global.get $~lib/memory/__stack_pointer - local.get $17 + local.get $18 i32.store offset=36 - local.get $17 + local.get $18 local.get $k|14 call $"~lib/map/KeyValue#set:key" local.get $15 - local.set $17 + local.set $18 global.get $~lib/memory/__stack_pointer - local.get $17 + local.get $18 i32.store offset=36 - local.get $17 + local.get $18 i32.const 10 local.get $k|14 i32.trunc_sat_f32_s i32.add call $"~lib/map/KeyValue#set:value" local.get $15 - local.set $17 + local.set $18 global.get $~lib/memory/__stack_pointer - local.get $17 + local.get $18 i32.store offset=28 - local.get $17 + local.get $18 call $"~lib/array/Array<~lib/map/KeyValue>#push" drop local.get $k|14 @@ -38219,20 +38706,20 @@ global.get $~lib/memory/__stack_pointer i32.const 0 local.get $initialEntries - local.set $17 + local.set $18 global.get $~lib/memory/__stack_pointer - local.get $17 + local.get $18 i32.store offset=4 - local.get $17 + local.get $18 call $"~lib/map/Map#constructor" local.tee $map i32.store local.get $map - local.set $17 + local.set $18 global.get $~lib/memory/__stack_pointer - local.get $17 + local.get $18 i32.store offset=4 - local.get $17 + local.get $18 call $"~lib/map/Map#get:size" i32.const 100 i32.eq @@ -38240,7 +38727,7 @@ if i32.const 0 i32.const 720 - i32.const 74 + i32.const 75 i32.const 3 call $~lib/builtins/abort unreachable @@ -38253,28 +38740,28 @@ f32.lt if local.get $map - local.set $17 + local.set $18 global.get $~lib/memory/__stack_pointer - local.get $17 + local.get $18 i32.store offset=4 - local.get $17 + local.get $18 local.get $k|16 call $"~lib/map/Map#has" i32.eqz if i32.const 0 i32.const 720 - i32.const 76 + i32.const 77 i32.const 5 call $~lib/builtins/abort unreachable end local.get $map - local.set $17 + local.set $18 global.get $~lib/memory/__stack_pointer - local.get $17 + local.get $18 i32.store offset=4 - local.get $17 + local.get $18 local.get $k|16 call $"~lib/map/Map#get" i32.const 10 @@ -38286,26 +38773,26 @@ if i32.const 0 i32.const 720 - i32.const 77 + i32.const 78 i32.const 5 call $~lib/builtins/abort unreachable end local.get $map - local.set $17 + local.set $18 global.get $~lib/memory/__stack_pointer - local.get $17 + local.get $18 i32.store offset=4 - local.get $17 + local.get $18 local.get $k|16 call $"~lib/map/Map#delete" drop local.get $map - local.set $17 + local.set $18 global.get $~lib/memory/__stack_pointer - local.get $17 + local.get $18 i32.store offset=4 - local.get $17 + local.get $18 local.get $k|16 call $"~lib/map/Map#has" i32.eqz @@ -38313,7 +38800,7 @@ if i32.const 0 i32.const 720 - i32.const 79 + i32.const 80 i32.const 5 call $~lib/builtins/abort unreachable @@ -38326,11 +38813,11 @@ end end local.get $map - local.set $17 + local.set $18 global.get $~lib/memory/__stack_pointer - local.get $17 + local.get $18 i32.store offset=4 - local.get $17 + local.get $18 call $"~lib/map/Map#get:size" i32.const 0 i32.eq @@ -38338,7 +38825,40 @@ if i32.const 0 i32.const 720 - i32.const 81 + i32.const 82 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.const 0 + i32.const 2 + i32.const 59 + i32.const 1424 + call $~lib/rt/__newArray + local.set $18 + global.get $~lib/memory/__stack_pointer + local.get $18 + i32.store offset=4 + local.get $18 + call $"~lib/map/Map#constructor" + local.tee $map + i32.store + local.get $map + local.set $18 + global.get $~lib/memory/__stack_pointer + local.get $18 + i32.store offset=4 + local.get $18 + call $"~lib/map/Map#get:size" + i32.const 0 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 720 + i32.const 85 i32.const 3 call $~lib/builtins/abort unreachable @@ -38721,16 +39241,17 @@ return ) (func $"~lib/map/Map#constructor" (param $this i32) (param $initialEntries i32) (result i32) + (local $initialEntriesLength i32) (local $i i32) (local $key f64) (local $value i32) (local $hashCode i32) (local $entry i32) (local $entries i32) - (local $8 i32) - (local $entry|9 i32) + (local $9 i32) + (local $entry|10 i32) (local $bucketPtrBase i32) - (local $11 i32) + (local $12 i32) global.get $~lib/memory/__stack_pointer i32.const 16 i32.sub @@ -38753,38 +39274,38 @@ i32.store end local.get $this - local.set $11 + local.set $12 global.get $~lib/memory/__stack_pointer - local.get $11 + local.get $12 i32.store offset=4 - local.get $11 + local.get $12 i32.const 0 i32.const 4 i32.const 4 i32.mul call $~lib/arraybuffer/ArrayBuffer#constructor - local.set $11 + local.set $12 global.get $~lib/memory/__stack_pointer - local.get $11 + local.get $12 i32.store offset=8 - local.get $11 + local.get $12 call $"~lib/map/Map#set:buckets" local.get $this - local.set $11 + local.set $12 global.get $~lib/memory/__stack_pointer - local.get $11 + local.get $12 i32.store offset=4 - local.get $11 + local.get $12 i32.const 4 i32.const 1 i32.sub call $"~lib/map/Map#set:bucketsMask" local.get $this - local.set $11 + local.set $12 global.get $~lib/memory/__stack_pointer - local.get $11 + local.get $12 i32.store offset=4 - local.get $11 + local.get $12 i32.const 0 i32.const 4 block $"~lib/map/ENTRY_SIZE|inlined.5" (result i32) @@ -38793,256 +39314,267 @@ end i32.mul call $~lib/arraybuffer/ArrayBuffer#constructor - local.set $11 + local.set $12 global.get $~lib/memory/__stack_pointer - local.get $11 + local.get $12 i32.store offset=8 - local.get $11 + local.get $12 call $"~lib/map/Map#set:entries" local.get $this - local.set $11 + local.set $12 global.get $~lib/memory/__stack_pointer - local.get $11 + local.get $12 i32.store offset=4 - local.get $11 + local.get $12 i32.const 4 call $"~lib/map/Map#set:entriesCapacity" local.get $this - local.set $11 + local.set $12 global.get $~lib/memory/__stack_pointer - local.get $11 + local.get $12 i32.store offset=4 - local.get $11 + local.get $12 i32.const 0 call $"~lib/map/Map#set:entriesOffset" local.get $this - local.set $11 + local.set $12 global.get $~lib/memory/__stack_pointer - local.get $11 + local.get $12 i32.store offset=4 - local.get $11 + local.get $12 i32.const 0 call $"~lib/map/Map#set:entriesCount" local.get $initialEntries - if + i32.eqz + if (result i32) + i32.const 1 + else local.get $initialEntries - local.set $11 + local.set $12 global.get $~lib/memory/__stack_pointer - local.get $11 + local.get $12 i32.store offset=4 - local.get $11 + local.get $12 call $"~lib/array/Array<~lib/map/KeyValue>#get:length" + i32.eqz + end + if + local.get $this + local.set $12 + global.get $~lib/memory/__stack_pointer + i32.const 16 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $12 + return + end + local.get $initialEntries + local.set $12 + global.get $~lib/memory/__stack_pointer + local.get $12 + i32.store offset=4 + local.get $12 + call $"~lib/array/Array<~lib/map/KeyValue>#get:length" + local.set $initialEntriesLength + local.get $initialEntriesLength + local.get $this + local.set $12 + global.get $~lib/memory/__stack_pointer + local.get $12 + i32.store offset=4 + local.get $12 + call $"~lib/map/Map#get:entriesCapacity" + i32.ge_s + if local.get $this - local.set $11 + local.set $12 global.get $~lib/memory/__stack_pointer - local.get $11 + local.get $12 i32.store offset=4 - local.get $11 - call $"~lib/map/Map#get:entriesCapacity" - i32.ge_s + local.get $12 + local.get $initialEntriesLength + call $"~lib/map/Map#set:bucketsMask" + end + local.get $this + local.set $12 + global.get $~lib/memory/__stack_pointer + local.get $12 + i32.store offset=4 + local.get $12 + local.get $this + local.set $12 + global.get $~lib/memory/__stack_pointer + local.get $12 + i32.store offset=8 + local.get $12 + call $"~lib/map/Map#get:bucketsMask" + i32.const 1 + i32.shl + i32.const 1 + i32.or + call $"~lib/map/Map#rehash" + i32.const 0 + local.set $i + loop $for-loop|0 + local.get $i + local.get $initialEntriesLength + i32.lt_s if - local.get $this - local.set $11 + local.get $initialEntries + local.set $12 global.get $~lib/memory/__stack_pointer - local.get $11 + local.get $12 + i32.store offset=8 + local.get $12 + local.get $i + call $"~lib/array/Array<~lib/map/KeyValue>#__get" + local.set $12 + global.get $~lib/memory/__stack_pointer + local.get $12 i32.store offset=4 - local.get $11 + local.get $12 + call $"~lib/map/KeyValue#get:key" + local.set $key local.get $initialEntries - local.set $11 + local.set $12 global.get $~lib/memory/__stack_pointer - local.get $11 + local.get $12 i32.store offset=8 - local.get $11 - call $"~lib/array/Array<~lib/map/KeyValue>#get:length" - call $"~lib/map/Map#set:bucketsMask" - end - local.get $this - local.set $11 - global.get $~lib/memory/__stack_pointer - local.get $11 - i32.store offset=4 - local.get $11 - local.get $this - local.set $11 - global.get $~lib/memory/__stack_pointer - local.get $11 - i32.store offset=8 - local.get $11 - call $"~lib/map/Map#get:bucketsMask" - i32.const 1 - i32.shl - i32.const 1 - i32.or - call $"~lib/map/Map#rehash" - i32.const 0 - local.set $i - loop $for-loop|0 + local.get $12 local.get $i - local.get $initialEntries - local.set $11 + call $"~lib/array/Array<~lib/map/KeyValue>#__get" + local.set $12 global.get $~lib/memory/__stack_pointer - local.get $11 + local.get $12 i32.store offset=4 - local.get $11 - call $"~lib/array/Array<~lib/map/KeyValue>#get:length" - i32.lt_s + local.get $12 + call $"~lib/map/KeyValue#get:value" + local.set $value + local.get $key + call $~lib/util/hash/HASH + local.set $hashCode + local.get $this + local.set $12 + global.get $~lib/memory/__stack_pointer + local.get $12 + i32.store offset=4 + local.get $12 + local.get $key + local.get $hashCode + call $"~lib/map/Map#find" + local.set $entry + local.get $entry if - local.get $initialEntries - local.set $11 + local.get $entry + local.get $value + call $"~lib/map/MapEntry#set:value" + i32.const 0 + drop + else global.get $~lib/memory/__stack_pointer - local.get $11 - i32.store offset=8 - local.get $11 - local.get $i - call $"~lib/array/Array<~lib/map/KeyValue>#__get" - local.set $11 + local.get $this + local.set $12 global.get $~lib/memory/__stack_pointer - local.get $11 + local.get $12 i32.store offset=4 - local.get $11 - call $"~lib/map/KeyValue#get:key" - local.set $key - local.get $initialEntries - local.set $11 + local.get $12 + call $"~lib/map/Map#get:entries" + local.tee $entries + i32.store offset=12 + local.get $entries + local.get $this + local.set $12 global.get $~lib/memory/__stack_pointer - local.get $11 + local.get $12 + i32.store offset=4 + local.get $12 + local.get $this + local.set $12 + global.get $~lib/memory/__stack_pointer + local.get $12 i32.store offset=8 - local.get $11 - local.get $i - call $"~lib/array/Array<~lib/map/KeyValue>#__get" - local.set $11 + local.get $12 + call $"~lib/map/Map#get:entriesOffset" + local.tee $9 + i32.const 1 + i32.add + call $"~lib/map/Map#set:entriesOffset" + local.get $9 + block $"~lib/map/ENTRY_SIZE|inlined.4" (result i32) + i32.const 16 + br $"~lib/map/ENTRY_SIZE|inlined.4" + end + i32.mul + i32.add + local.set $entry|10 + local.get $entry|10 + local.get $key + call $"~lib/map/MapEntry#set:key" + i32.const 0 + drop + local.get $entry|10 + local.get $value + call $"~lib/map/MapEntry#set:value" + i32.const 0 + drop + local.get $this + local.set $12 global.get $~lib/memory/__stack_pointer - local.get $11 + local.get $12 i32.store offset=4 - local.get $11 - call $"~lib/map/KeyValue#get:value" - local.set $value - local.get $key - call $~lib/util/hash/HASH - local.set $hashCode + local.get $12 + local.get $this + local.set $12 + global.get $~lib/memory/__stack_pointer + local.get $12 + i32.store offset=8 + local.get $12 + call $"~lib/map/Map#get:entriesCount" + i32.const 1 + i32.add + call $"~lib/map/Map#set:entriesCount" local.get $this - local.set $11 + local.set $12 global.get $~lib/memory/__stack_pointer - local.get $11 + local.get $12 i32.store offset=4 - local.get $11 - local.get $key + local.get $12 + call $"~lib/map/Map#get:buckets" local.get $hashCode - call $"~lib/map/Map#find" - local.set $entry - local.get $entry - if - local.get $entry - local.get $value - call $"~lib/map/MapEntry#set:value" - i32.const 0 - drop - else - global.get $~lib/memory/__stack_pointer - local.get $this - local.set $11 - global.get $~lib/memory/__stack_pointer - local.get $11 - i32.store offset=4 - local.get $11 - call $"~lib/map/Map#get:entries" - local.tee $entries - i32.store offset=12 - local.get $entries - local.get $this - local.set $11 - global.get $~lib/memory/__stack_pointer - local.get $11 - i32.store offset=4 - local.get $11 - local.get $this - local.set $11 - global.get $~lib/memory/__stack_pointer - local.get $11 - i32.store offset=8 - local.get $11 - call $"~lib/map/Map#get:entriesOffset" - local.tee $8 - i32.const 1 - i32.add - call $"~lib/map/Map#set:entriesOffset" - local.get $8 - block $"~lib/map/ENTRY_SIZE|inlined.4" (result i32) - i32.const 16 - br $"~lib/map/ENTRY_SIZE|inlined.4" - end - i32.mul - i32.add - local.set $entry|9 - local.get $entry|9 - local.get $key - call $"~lib/map/MapEntry#set:key" - i32.const 0 - drop - local.get $entry|9 - local.get $value - call $"~lib/map/MapEntry#set:value" - i32.const 0 - drop - local.get $this - local.set $11 - global.get $~lib/memory/__stack_pointer - local.get $11 - i32.store offset=4 - local.get $11 - local.get $this - local.set $11 - global.get $~lib/memory/__stack_pointer - local.get $11 - i32.store offset=8 - local.get $11 - call $"~lib/map/Map#get:entriesCount" - i32.const 1 - i32.add - call $"~lib/map/Map#set:entriesCount" - local.get $this - local.set $11 - global.get $~lib/memory/__stack_pointer - local.get $11 - i32.store offset=4 - local.get $11 - call $"~lib/map/Map#get:buckets" - local.get $hashCode - local.get $this - local.set $11 - global.get $~lib/memory/__stack_pointer - local.get $11 - i32.store offset=4 - local.get $11 - call $"~lib/map/Map#get:bucketsMask" - i32.and - i32.const 4 - i32.mul - i32.add - local.set $bucketPtrBase - local.get $entry|9 - local.get $bucketPtrBase - i32.load - call $"~lib/map/MapEntry#set:taggedNext" - local.get $bucketPtrBase - local.get $entry|9 - i32.store - end - local.get $i - i32.const 1 + local.get $this + local.set $12 + global.get $~lib/memory/__stack_pointer + local.get $12 + i32.store offset=4 + local.get $12 + call $"~lib/map/Map#get:bucketsMask" + i32.and + i32.const 4 + i32.mul i32.add - local.set $i - br $for-loop|0 + local.set $bucketPtrBase + local.get $entry|10 + local.get $bucketPtrBase + i32.load + call $"~lib/map/MapEntry#set:taggedNext" + local.get $bucketPtrBase + local.get $entry|10 + i32.store end + local.get $i + i32.const 1 + i32.add + local.set $i + br $for-loop|0 end end local.get $this - local.set $11 + local.set $12 global.get $~lib/memory/__stack_pointer i32.const 16 i32.add global.set $~lib/memory/__stack_pointer - local.get $11 + local.get $12 ) (func $"~lib/map/Map#has" (param $this i32) (param $key f64) (result i32) (local $2 i32) @@ -39303,7 +39835,7 @@ if i32.const 768 i32.const 832 - i32.const 146 + i32.const 147 i32.const 17 call $~lib/builtins/abort unreachable @@ -40157,16 +40689,17 @@ return ) (func $"~lib/map/Map#constructor" (param $this i32) (param $initialEntries i32) (result i32) + (local $initialEntriesLength i32) (local $i i32) (local $key f64) (local $value f64) (local $hashCode i32) (local $entry i32) (local $entries i32) - (local $8 i32) - (local $entry|9 i32) + (local $9 i32) + (local $entry|10 i32) (local $bucketPtrBase i32) - (local $11 i32) + (local $12 i32) global.get $~lib/memory/__stack_pointer i32.const 16 i32.sub @@ -40189,38 +40722,38 @@ i32.store end local.get $this - local.set $11 + local.set $12 global.get $~lib/memory/__stack_pointer - local.get $11 + local.get $12 i32.store offset=4 - local.get $11 + local.get $12 i32.const 0 i32.const 4 i32.const 4 i32.mul call $~lib/arraybuffer/ArrayBuffer#constructor - local.set $11 + local.set $12 global.get $~lib/memory/__stack_pointer - local.get $11 + local.get $12 i32.store offset=8 - local.get $11 + local.get $12 call $"~lib/map/Map#set:buckets" local.get $this - local.set $11 + local.set $12 global.get $~lib/memory/__stack_pointer - local.get $11 + local.get $12 i32.store offset=4 - local.get $11 + local.get $12 i32.const 4 i32.const 1 i32.sub call $"~lib/map/Map#set:bucketsMask" local.get $this - local.set $11 + local.set $12 global.get $~lib/memory/__stack_pointer - local.get $11 + local.get $12 i32.store offset=4 - local.get $11 + local.get $12 i32.const 0 i32.const 4 block $"~lib/map/ENTRY_SIZE|inlined.5" (result i32) @@ -40229,256 +40762,267 @@ end i32.mul call $~lib/arraybuffer/ArrayBuffer#constructor - local.set $11 + local.set $12 global.get $~lib/memory/__stack_pointer - local.get $11 + local.get $12 i32.store offset=8 - local.get $11 + local.get $12 call $"~lib/map/Map#set:entries" local.get $this - local.set $11 + local.set $12 global.get $~lib/memory/__stack_pointer - local.get $11 + local.get $12 i32.store offset=4 - local.get $11 + local.get $12 i32.const 4 call $"~lib/map/Map#set:entriesCapacity" local.get $this - local.set $11 + local.set $12 global.get $~lib/memory/__stack_pointer - local.get $11 + local.get $12 i32.store offset=4 - local.get $11 + local.get $12 i32.const 0 call $"~lib/map/Map#set:entriesOffset" local.get $this - local.set $11 + local.set $12 global.get $~lib/memory/__stack_pointer - local.get $11 + local.get $12 i32.store offset=4 - local.get $11 + local.get $12 i32.const 0 call $"~lib/map/Map#set:entriesCount" local.get $initialEntries - if + i32.eqz + if (result i32) + i32.const 1 + else local.get $initialEntries - local.set $11 + local.set $12 global.get $~lib/memory/__stack_pointer - local.get $11 + local.get $12 i32.store offset=4 - local.get $11 + local.get $12 call $"~lib/array/Array<~lib/map/KeyValue>#get:length" + i32.eqz + end + if local.get $this - local.set $11 + local.set $12 global.get $~lib/memory/__stack_pointer - local.get $11 + i32.const 16 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $12 + return + end + local.get $initialEntries + local.set $12 + global.get $~lib/memory/__stack_pointer + local.get $12 + i32.store offset=4 + local.get $12 + call $"~lib/array/Array<~lib/map/KeyValue>#get:length" + local.set $initialEntriesLength + local.get $initialEntriesLength + local.get $this + local.set $12 + global.get $~lib/memory/__stack_pointer + local.get $12 + i32.store offset=4 + local.get $12 + call $"~lib/map/Map#get:entriesCapacity" + i32.ge_s + if + local.get $this + local.set $12 + global.get $~lib/memory/__stack_pointer + local.get $12 i32.store offset=4 - local.get $11 - call $"~lib/map/Map#get:entriesCapacity" - i32.ge_s + local.get $12 + local.get $initialEntriesLength + call $"~lib/map/Map#set:bucketsMask" + end + local.get $this + local.set $12 + global.get $~lib/memory/__stack_pointer + local.get $12 + i32.store offset=4 + local.get $12 + local.get $this + local.set $12 + global.get $~lib/memory/__stack_pointer + local.get $12 + i32.store offset=8 + local.get $12 + call $"~lib/map/Map#get:bucketsMask" + i32.const 1 + i32.shl + i32.const 1 + i32.or + call $"~lib/map/Map#rehash" + i32.const 0 + local.set $i + loop $for-loop|0 + local.get $i + local.get $initialEntriesLength + i32.lt_s if - local.get $this - local.set $11 + local.get $initialEntries + local.set $12 global.get $~lib/memory/__stack_pointer - local.get $11 + local.get $12 + i32.store offset=8 + local.get $12 + local.get $i + call $"~lib/array/Array<~lib/map/KeyValue>#__get" + local.set $12 + global.get $~lib/memory/__stack_pointer + local.get $12 i32.store offset=4 - local.get $11 + local.get $12 + call $"~lib/map/KeyValue#get:key" + local.set $key local.get $initialEntries - local.set $11 + local.set $12 global.get $~lib/memory/__stack_pointer - local.get $11 + local.get $12 i32.store offset=8 - local.get $11 - call $"~lib/array/Array<~lib/map/KeyValue>#get:length" - call $"~lib/map/Map#set:bucketsMask" - end - local.get $this - local.set $11 - global.get $~lib/memory/__stack_pointer - local.get $11 - i32.store offset=4 - local.get $11 - local.get $this - local.set $11 - global.get $~lib/memory/__stack_pointer - local.get $11 - i32.store offset=8 - local.get $11 - call $"~lib/map/Map#get:bucketsMask" - i32.const 1 - i32.shl - i32.const 1 - i32.or - call $"~lib/map/Map#rehash" - i32.const 0 - local.set $i - loop $for-loop|0 + local.get $12 local.get $i - local.get $initialEntries - local.set $11 + call $"~lib/array/Array<~lib/map/KeyValue>#__get" + local.set $12 global.get $~lib/memory/__stack_pointer - local.get $11 + local.get $12 i32.store offset=4 - local.get $11 - call $"~lib/array/Array<~lib/map/KeyValue>#get:length" - i32.lt_s + local.get $12 + call $"~lib/map/KeyValue#get:value" + local.set $value + local.get $key + call $~lib/util/hash/HASH + local.set $hashCode + local.get $this + local.set $12 + global.get $~lib/memory/__stack_pointer + local.get $12 + i32.store offset=4 + local.get $12 + local.get $key + local.get $hashCode + call $"~lib/map/Map#find" + local.set $entry + local.get $entry if - local.get $initialEntries - local.set $11 + local.get $entry + local.get $value + call $"~lib/map/MapEntry#set:value" + i32.const 0 + drop + else global.get $~lib/memory/__stack_pointer - local.get $11 - i32.store offset=8 - local.get $11 - local.get $i - call $"~lib/array/Array<~lib/map/KeyValue>#__get" - local.set $11 + local.get $this + local.set $12 + global.get $~lib/memory/__stack_pointer + local.get $12 + i32.store offset=4 + local.get $12 + call $"~lib/map/Map#get:entries" + local.tee $entries + i32.store offset=12 + local.get $entries + local.get $this + local.set $12 global.get $~lib/memory/__stack_pointer - local.get $11 + local.get $12 i32.store offset=4 - local.get $11 - call $"~lib/map/KeyValue#get:key" - local.set $key - local.get $initialEntries - local.set $11 + local.get $12 + local.get $this + local.set $12 global.get $~lib/memory/__stack_pointer - local.get $11 + local.get $12 i32.store offset=8 - local.get $11 - local.get $i - call $"~lib/array/Array<~lib/map/KeyValue>#__get" - local.set $11 + local.get $12 + call $"~lib/map/Map#get:entriesOffset" + local.tee $9 + i32.const 1 + i32.add + call $"~lib/map/Map#set:entriesOffset" + local.get $9 + block $"~lib/map/ENTRY_SIZE|inlined.4" (result i32) + i32.const 24 + br $"~lib/map/ENTRY_SIZE|inlined.4" + end + i32.mul + i32.add + local.set $entry|10 + local.get $entry|10 + local.get $key + call $"~lib/map/MapEntry#set:key" + i32.const 0 + drop + local.get $entry|10 + local.get $value + call $"~lib/map/MapEntry#set:value" + i32.const 0 + drop + local.get $this + local.set $12 global.get $~lib/memory/__stack_pointer - local.get $11 + local.get $12 i32.store offset=4 - local.get $11 - call $"~lib/map/KeyValue#get:value" - local.set $value - local.get $key - call $~lib/util/hash/HASH - local.set $hashCode + local.get $12 local.get $this - local.set $11 + local.set $12 global.get $~lib/memory/__stack_pointer - local.get $11 + local.get $12 + i32.store offset=8 + local.get $12 + call $"~lib/map/Map#get:entriesCount" + i32.const 1 + i32.add + call $"~lib/map/Map#set:entriesCount" + local.get $this + local.set $12 + global.get $~lib/memory/__stack_pointer + local.get $12 i32.store offset=4 - local.get $11 - local.get $key + local.get $12 + call $"~lib/map/Map#get:buckets" local.get $hashCode - call $"~lib/map/Map#find" - local.set $entry - local.get $entry - if - local.get $entry - local.get $value - call $"~lib/map/MapEntry#set:value" - i32.const 0 - drop - else - global.get $~lib/memory/__stack_pointer - local.get $this - local.set $11 - global.get $~lib/memory/__stack_pointer - local.get $11 - i32.store offset=4 - local.get $11 - call $"~lib/map/Map#get:entries" - local.tee $entries - i32.store offset=12 - local.get $entries - local.get $this - local.set $11 - global.get $~lib/memory/__stack_pointer - local.get $11 - i32.store offset=4 - local.get $11 - local.get $this - local.set $11 - global.get $~lib/memory/__stack_pointer - local.get $11 - i32.store offset=8 - local.get $11 - call $"~lib/map/Map#get:entriesOffset" - local.tee $8 - i32.const 1 - i32.add - call $"~lib/map/Map#set:entriesOffset" - local.get $8 - block $"~lib/map/ENTRY_SIZE|inlined.4" (result i32) - i32.const 24 - br $"~lib/map/ENTRY_SIZE|inlined.4" - end - i32.mul - i32.add - local.set $entry|9 - local.get $entry|9 - local.get $key - call $"~lib/map/MapEntry#set:key" - i32.const 0 - drop - local.get $entry|9 - local.get $value - call $"~lib/map/MapEntry#set:value" - i32.const 0 - drop - local.get $this - local.set $11 - global.get $~lib/memory/__stack_pointer - local.get $11 - i32.store offset=4 - local.get $11 - local.get $this - local.set $11 - global.get $~lib/memory/__stack_pointer - local.get $11 - i32.store offset=8 - local.get $11 - call $"~lib/map/Map#get:entriesCount" - i32.const 1 - i32.add - call $"~lib/map/Map#set:entriesCount" - local.get $this - local.set $11 - global.get $~lib/memory/__stack_pointer - local.get $11 - i32.store offset=4 - local.get $11 - call $"~lib/map/Map#get:buckets" - local.get $hashCode - local.get $this - local.set $11 - global.get $~lib/memory/__stack_pointer - local.get $11 - i32.store offset=4 - local.get $11 - call $"~lib/map/Map#get:bucketsMask" - i32.and - i32.const 4 - i32.mul - i32.add - local.set $bucketPtrBase - local.get $entry|9 - local.get $bucketPtrBase - i32.load - call $"~lib/map/MapEntry#set:taggedNext" - local.get $bucketPtrBase - local.get $entry|9 - i32.store - end - local.get $i - i32.const 1 + local.get $this + local.set $12 + global.get $~lib/memory/__stack_pointer + local.get $12 + i32.store offset=4 + local.get $12 + call $"~lib/map/Map#get:bucketsMask" + i32.and + i32.const 4 + i32.mul i32.add - local.set $i - br $for-loop|0 + local.set $bucketPtrBase + local.get $entry|10 + local.get $bucketPtrBase + i32.load + call $"~lib/map/MapEntry#set:taggedNext" + local.get $bucketPtrBase + local.get $entry|10 + i32.store end + local.get $i + i32.const 1 + i32.add + local.set $i + br $for-loop|0 end end local.get $this - local.set $11 + local.set $12 global.get $~lib/memory/__stack_pointer i32.const 16 i32.add global.set $~lib/memory/__stack_pointer - local.get $11 + local.get $12 ) (func $~lib/array/Array#get:length (param $this i32) (result i32) (local $1 i32) @@ -41138,6 +41682,7 @@ (local $15 i32) (local $k|16 f64) (local $17 i32) + (local $18 i32) global.get $~lib/memory/__stack_pointer i32.const 40 i32.sub @@ -41161,11 +41706,11 @@ f64.lt if local.get $map - local.set $17 + local.set $18 global.get $~lib/memory/__stack_pointer - local.get $17 + local.get $18 i32.store offset=4 - local.get $17 + local.get $18 local.get $k call $"~lib/map/Map#has" i32.eqz @@ -41179,11 +41724,11 @@ unreachable end local.get $map - local.set $17 + local.set $18 global.get $~lib/memory/__stack_pointer - local.get $17 + local.get $18 i32.store offset=4 - local.get $17 + local.get $18 local.get $k i32.const 10 local.get $k @@ -41192,11 +41737,11 @@ call $"~lib/map/Map#set" drop local.get $map - local.set $17 + local.set $18 global.get $~lib/memory/__stack_pointer - local.get $17 + local.get $18 i32.store offset=4 - local.get $17 + local.get $18 local.get $k call $"~lib/map/Map#has" i32.eqz @@ -41209,11 +41754,11 @@ unreachable end local.get $map - local.set $17 + local.set $18 global.get $~lib/memory/__stack_pointer - local.get $17 + local.get $18 i32.store offset=4 - local.get $17 + local.get $18 local.get $k call $"~lib/map/Map#get" i32.const 10 @@ -41238,11 +41783,11 @@ end end local.get $map - local.set $17 + local.set $18 global.get $~lib/memory/__stack_pointer - local.get $17 + local.get $18 i32.store offset=4 - local.get $17 + local.get $18 call $"~lib/map/Map#get:size" i32.const 100 i32.eq @@ -41263,11 +41808,11 @@ f64.lt if local.get $map - local.set $17 + local.set $18 global.get $~lib/memory/__stack_pointer - local.get $17 + local.get $18 i32.store offset=4 - local.get $17 + local.get $18 local.get $k|2 call $"~lib/map/Map#has" i32.eqz @@ -41280,11 +41825,11 @@ unreachable end local.get $map - local.set $17 + local.set $18 global.get $~lib/memory/__stack_pointer - local.get $17 + local.get $18 i32.store offset=4 - local.get $17 + local.get $18 local.get $k|2 call $"~lib/map/Map#get" i32.const 10 @@ -41302,11 +41847,11 @@ unreachable end local.get $map - local.set $17 + local.set $18 global.get $~lib/memory/__stack_pointer - local.get $17 + local.get $18 i32.store offset=4 - local.get $17 + local.get $18 local.get $k|2 i32.const 20 local.get $k|2 @@ -41315,11 +41860,11 @@ call $"~lib/map/Map#set" drop local.get $map - local.set $17 + local.set $18 global.get $~lib/memory/__stack_pointer - local.get $17 + local.get $18 i32.store offset=4 - local.get $17 + local.get $18 local.get $k|2 call $"~lib/map/Map#has" i32.eqz @@ -41332,11 +41877,11 @@ unreachable end local.get $map - local.set $17 + local.set $18 global.get $~lib/memory/__stack_pointer - local.get $17 + local.get $18 i32.store offset=4 - local.get $17 + local.get $18 local.get $k|2 call $"~lib/map/Map#get" i32.const 20 @@ -41361,11 +41906,11 @@ end end local.get $map - local.set $17 + local.set $18 global.get $~lib/memory/__stack_pointer - local.get $17 + local.get $18 i32.store offset=4 - local.get $17 + local.get $18 call $"~lib/map/Map#get:size" i32.const 100 i32.eq @@ -41380,21 +41925,21 @@ end global.get $~lib/memory/__stack_pointer local.get $map - local.set $17 + local.set $18 global.get $~lib/memory/__stack_pointer - local.get $17 + local.get $18 i32.store offset=4 - local.get $17 + local.get $18 call $"~lib/map/Map#keys" local.tee $keys i32.store offset=8 global.get $~lib/memory/__stack_pointer local.get $map - local.set $17 + local.set $18 global.get $~lib/memory/__stack_pointer - local.get $17 + local.get $18 i32.store offset=4 - local.get $17 + local.get $18 call $"~lib/map/Map#values" local.tee $vals i32.store offset=12 @@ -41415,38 +41960,38 @@ loop $for-loop|2 local.get $index local.get $keys - local.set $17 + local.set $18 global.get $~lib/memory/__stack_pointer - local.get $17 + local.get $18 i32.store offset=4 - local.get $17 + local.get $18 call $~lib/array/Array#get:length i32.lt_s if local.get $keys - local.set $17 + local.set $18 global.get $~lib/memory/__stack_pointer - local.get $17 + local.get $18 i32.store offset=4 - local.get $17 + local.get $18 local.get $index call $~lib/array/Array#__get local.set $key local.get $vals - local.set $17 + local.set $18 global.get $~lib/memory/__stack_pointer - local.get $17 + local.get $18 i32.store offset=4 - local.get $17 + local.get $18 local.get $index call $~lib/array/Array#__get local.set $value local.get $map - local.set $17 + local.set $18 global.get $~lib/memory/__stack_pointer - local.get $17 + local.get $18 i32.store offset=4 - local.get $17 + local.get $18 local.get $key call $"~lib/map/Map#has" i32.eqz @@ -41459,11 +42004,11 @@ unreachable end local.get $map - local.set $17 + local.set $18 global.get $~lib/memory/__stack_pointer - local.get $17 + local.get $18 i32.store offset=4 - local.get $17 + local.get $18 local.get $value i32.const 20 i32.sub @@ -41479,21 +42024,21 @@ unreachable end local.get $keyMap - local.set $17 + local.set $18 global.get $~lib/memory/__stack_pointer - local.get $17 + local.get $18 i32.store offset=4 - local.get $17 + local.get $18 local.get $key local.get $key call $"~lib/map/Map#set" drop local.get $valMap - local.set $17 + local.set $18 global.get $~lib/memory/__stack_pointer - local.get $17 + local.get $18 i32.store offset=4 - local.get $17 + local.get $18 local.get $value i32.const 20 i32.sub @@ -41510,11 +42055,11 @@ end end local.get $keyMap - local.set $17 + local.set $18 global.get $~lib/memory/__stack_pointer - local.get $17 + local.get $18 i32.store offset=4 - local.get $17 + local.get $18 call $"~lib/map/Map#get:size" i32.const 100 i32.eq @@ -41528,11 +42073,11 @@ unreachable end local.get $valMap - local.set $17 + local.set $18 global.get $~lib/memory/__stack_pointer - local.get $17 + local.get $18 i32.store offset=4 - local.get $17 + local.get $18 call $"~lib/map/Map#get:size" i32.const 100 i32.eq @@ -41553,11 +42098,11 @@ f64.lt if local.get $map - local.set $17 + local.set $18 global.get $~lib/memory/__stack_pointer - local.get $17 + local.get $18 i32.store offset=4 - local.get $17 + local.get $18 local.get $k|10 call $"~lib/map/Map#has" i32.eqz @@ -41570,11 +42115,11 @@ unreachable end local.get $map - local.set $17 + local.set $18 global.get $~lib/memory/__stack_pointer - local.get $17 + local.get $18 i32.store offset=4 - local.get $17 + local.get $18 local.get $k|10 call $"~lib/map/Map#get" i32.const 20 @@ -41592,20 +42137,20 @@ unreachable end local.get $map - local.set $17 + local.set $18 global.get $~lib/memory/__stack_pointer - local.get $17 + local.get $18 i32.store offset=4 - local.get $17 + local.get $18 local.get $k|10 call $"~lib/map/Map#delete" drop local.get $map - local.set $17 + local.set $18 global.get $~lib/memory/__stack_pointer - local.get $17 + local.get $18 i32.store offset=4 - local.get $17 + local.get $18 local.get $k|10 call $"~lib/map/Map#has" i32.eqz @@ -41626,11 +42171,11 @@ end end local.get $map - local.set $17 + local.set $18 global.get $~lib/memory/__stack_pointer - local.get $17 + local.get $18 i32.store offset=4 - local.get $17 + local.get $18 call $"~lib/map/Map#get:size" i32.const 50 i32.eq @@ -41651,11 +42196,11 @@ f64.lt if local.get $map - local.set $17 + local.set $18 global.get $~lib/memory/__stack_pointer - local.get $17 + local.get $18 i32.store offset=4 - local.get $17 + local.get $18 local.get $k|11 call $"~lib/map/Map#has" i32.eqz @@ -41669,11 +42214,11 @@ unreachable end local.get $map - local.set $17 + local.set $18 global.get $~lib/memory/__stack_pointer - local.get $17 + local.get $18 i32.store offset=4 - local.get $17 + local.get $18 local.get $k|11 i32.const 10 local.get $k|11 @@ -41682,11 +42227,11 @@ call $"~lib/map/Map#set" drop local.get $map - local.set $17 + local.set $18 global.get $~lib/memory/__stack_pointer - local.get $17 + local.get $18 i32.store offset=4 - local.get $17 + local.get $18 local.get $k|11 call $"~lib/map/Map#has" i32.eqz @@ -41699,20 +42244,20 @@ unreachable end local.get $map - local.set $17 + local.set $18 global.get $~lib/memory/__stack_pointer - local.get $17 + local.get $18 i32.store offset=4 - local.get $17 + local.get $18 local.get $k|11 call $"~lib/map/Map#delete" drop local.get $map - local.set $17 + local.set $18 global.get $~lib/memory/__stack_pointer - local.get $17 + local.get $18 i32.store offset=4 - local.get $17 + local.get $18 local.get $k|11 call $"~lib/map/Map#has" i32.eqz @@ -41733,11 +42278,11 @@ end end local.get $map - local.set $17 + local.set $18 global.get $~lib/memory/__stack_pointer - local.get $17 + local.get $18 i32.store offset=4 - local.get $17 + local.get $18 call $"~lib/map/Map#get:size" i32.const 50 i32.eq @@ -41751,18 +42296,18 @@ unreachable end local.get $map - local.set $17 + local.set $18 global.get $~lib/memory/__stack_pointer - local.get $17 + local.get $18 i32.store offset=4 - local.get $17 + local.get $18 call $"~lib/map/Map#clear" local.get $map - local.set $17 + local.set $18 global.get $~lib/memory/__stack_pointer - local.get $17 + local.get $18 i32.store offset=4 - local.get $17 + local.get $18 call $"~lib/map/Map#get:size" i32.const 0 i32.eq @@ -41779,7 +42324,7 @@ i32.const 0 i32.const 2 i32.const 66 - i32.const 1168 + i32.const 1456 call $~lib/rt/__newArray local.tee $initialEntries i32.store offset=24 @@ -41791,41 +42336,41 @@ f64.lt if local.get $initialEntries - local.set $17 + local.set $18 global.get $~lib/memory/__stack_pointer - local.get $17 + local.get $18 i32.store offset=4 - local.get $17 + local.get $18 global.get $~lib/memory/__stack_pointer i32.const 0 call $"~lib/map/KeyValue#constructor" local.tee $15 i32.store offset=32 local.get $15 - local.set $17 + local.set $18 global.get $~lib/memory/__stack_pointer - local.get $17 + local.get $18 i32.store offset=36 - local.get $17 + local.get $18 local.get $k|14 call $"~lib/map/KeyValue#set:key" local.get $15 - local.set $17 + local.set $18 global.get $~lib/memory/__stack_pointer - local.get $17 + local.get $18 i32.store offset=36 - local.get $17 + local.get $18 i32.const 10 local.get $k|14 i32.trunc_sat_f64_s i32.add call $"~lib/map/KeyValue#set:value" local.get $15 - local.set $17 + local.set $18 global.get $~lib/memory/__stack_pointer - local.get $17 + local.get $18 i32.store offset=28 - local.get $17 + local.get $18 call $"~lib/array/Array<~lib/map/KeyValue>#push" drop local.get $k|14 @@ -41838,20 +42383,20 @@ global.get $~lib/memory/__stack_pointer i32.const 0 local.get $initialEntries - local.set $17 + local.set $18 global.get $~lib/memory/__stack_pointer - local.get $17 + local.get $18 i32.store offset=4 - local.get $17 + local.get $18 call $"~lib/map/Map#constructor" local.tee $map i32.store local.get $map - local.set $17 + local.set $18 global.get $~lib/memory/__stack_pointer - local.get $17 + local.get $18 i32.store offset=4 - local.get $17 + local.get $18 call $"~lib/map/Map#get:size" i32.const 100 i32.eq @@ -41859,7 +42404,7 @@ if i32.const 0 i32.const 720 - i32.const 74 + i32.const 75 i32.const 3 call $~lib/builtins/abort unreachable @@ -41872,28 +42417,28 @@ f64.lt if local.get $map - local.set $17 + local.set $18 global.get $~lib/memory/__stack_pointer - local.get $17 + local.get $18 i32.store offset=4 - local.get $17 + local.get $18 local.get $k|16 call $"~lib/map/Map#has" i32.eqz if i32.const 0 i32.const 720 - i32.const 76 + i32.const 77 i32.const 5 call $~lib/builtins/abort unreachable end local.get $map - local.set $17 + local.set $18 global.get $~lib/memory/__stack_pointer - local.get $17 + local.get $18 i32.store offset=4 - local.get $17 + local.get $18 local.get $k|16 call $"~lib/map/Map#get" i32.const 10 @@ -41905,26 +42450,26 @@ if i32.const 0 i32.const 720 - i32.const 77 + i32.const 78 i32.const 5 call $~lib/builtins/abort unreachable end local.get $map - local.set $17 + local.set $18 global.get $~lib/memory/__stack_pointer - local.get $17 + local.get $18 i32.store offset=4 - local.get $17 + local.get $18 local.get $k|16 call $"~lib/map/Map#delete" drop local.get $map - local.set $17 + local.set $18 global.get $~lib/memory/__stack_pointer - local.get $17 + local.get $18 i32.store offset=4 - local.get $17 + local.get $18 local.get $k|16 call $"~lib/map/Map#has" i32.eqz @@ -41932,7 +42477,7 @@ if i32.const 0 i32.const 720 - i32.const 79 + i32.const 80 i32.const 5 call $~lib/builtins/abort unreachable @@ -41945,11 +42490,44 @@ end end local.get $map - local.set $17 + local.set $18 + global.get $~lib/memory/__stack_pointer + local.get $18 + i32.store offset=4 + local.get $18 + call $"~lib/map/Map#get:size" + i32.const 0 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 720 + i32.const 82 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.const 0 + i32.const 2 + i32.const 66 + i32.const 1488 + call $~lib/rt/__newArray + local.set $18 + global.get $~lib/memory/__stack_pointer + local.get $18 + i32.store offset=4 + local.get $18 + call $"~lib/map/Map#constructor" + local.tee $map + i32.store + local.get $map + local.set $18 global.get $~lib/memory/__stack_pointer - local.get $17 + local.get $18 i32.store offset=4 - local.get $17 + local.get $18 call $"~lib/map/Map#get:size" i32.const 0 i32.eq @@ -41957,7 +42535,7 @@ if i32.const 0 i32.const 720 - i32.const 81 + i32.const 85 i32.const 3 call $~lib/builtins/abort unreachable diff --git a/tests/compiler/std/map.release.wat b/tests/compiler/std/map.release.wat index 43d986e57c..af2d90ce65 100644 --- a/tests/compiler/std/map.release.wat +++ b/tests/compiler/std/map.release.wat @@ -35,7 +35,7 @@ (global $~lib/rt/itcms/white (mut i32) (i32.const 0)) (global $~lib/rt/itcms/fromSpace (mut i32) (i32.const 0)) (global $~lib/rt/tlsf/ROOT (mut i32) (i32.const 0)) - (global $~lib/memory/__stack_pointer (mut i32) (i32.const 35264)) + (global $~lib/memory/__stack_pointer (mut i32) (i32.const 35584)) (memory $0 1) (data $0 (i32.const 1036) ",") (data $0.1 (i32.const 1048) "\02\00\00\00\1c\00\00\00I\00n\00v\00a\00l\00i\00d\00 \00l\00e\00n\00g\00t\00h") @@ -81,7 +81,27 @@ (data $23.1 (i32.const 2152) "\01") (data $24 (i32.const 2172) "\1c") (data $24.1 (i32.const 2184) "\01") - (data $25 (i32.const 2208) "G\00\00\00 \00\00\00 \00\00\00 \00\00\00\00\00\00\00\10\89\10\00 \00\00\00\02A\00\00B\08\00\00\02\t\00\00P\88\10\00 \00\00\00\02A\00\00\10\t\12\00 \00\00\00\02A\00\00\10\89\00\00 \00\00\00\02A\00\00B\00\00\00P\80\00\00 \00\00\00\02A\00\00\10\t\11\00 \00\00\00\02A\00\00\82\08\00\00\90\08\11\00 \00\00\00\02A\00\00\10\t\01\00 \00\00\00\02A\00\00\82\00\00\00\90\00\01\00 \00\00\00\02A\00\00\10\t\02\00 \00\00\00\02A\00\00\02\01\00\00\10\01\02\00 \00\00\00\02A\00\00\10\t\14\00 \00\00\00\02A\00\00\02\n\00\00\10\n\14\00 \00\00\00\02A\00\00\10\t\04\00 \00\00\00\02A\00\00\02\02\00\00\10\02\04\00 \00\00\00\02A\00\00\10\t2\00 \00\00\00\02A\00\00\02\19\00\00\10\192\00 \00\00\00\02A\00\00\10\t4\00 \00\00\00\02A\00\00\02\1a\00\00\10\1a4\00 \00\00\00\02A") + (data $25 (i32.const 2204) "\1c") + (data $25.1 (i32.const 2216) "\01") + (data $26 (i32.const 2236) "\1c") + (data $26.1 (i32.const 2248) "\01") + (data $27 (i32.const 2268) "\1c") + (data $27.1 (i32.const 2280) "\01") + (data $28 (i32.const 2300) "\1c") + (data $28.1 (i32.const 2312) "\01") + (data $29 (i32.const 2332) "\1c") + (data $29.1 (i32.const 2344) "\01") + (data $30 (i32.const 2364) "\1c") + (data $30.1 (i32.const 2376) "\01") + (data $31 (i32.const 2396) "\1c") + (data $31.1 (i32.const 2408) "\01") + (data $32 (i32.const 2428) "\1c") + (data $32.1 (i32.const 2440) "\01") + (data $33 (i32.const 2460) "\1c") + (data $33.1 (i32.const 2472) "\01") + (data $34 (i32.const 2492) "\1c") + (data $34.1 (i32.const 2504) "\01") + (data $35 (i32.const 2528) "G\00\00\00 \00\00\00 \00\00\00 \00\00\00\00\00\00\00\10\89\10\00 \00\00\00\02A\00\00B\08\00\00\02\t\00\00P\88\10\00 \00\00\00\02A\00\00\10\t\12\00 \00\00\00\02A\00\00\10\89\00\00 \00\00\00\02A\00\00B\00\00\00P\80\00\00 \00\00\00\02A\00\00\10\t\11\00 \00\00\00\02A\00\00\82\08\00\00\90\08\11\00 \00\00\00\02A\00\00\10\t\01\00 \00\00\00\02A\00\00\82\00\00\00\90\00\01\00 \00\00\00\02A\00\00\10\t\02\00 \00\00\00\02A\00\00\02\01\00\00\10\01\02\00 \00\00\00\02A\00\00\10\t\14\00 \00\00\00\02A\00\00\02\n\00\00\10\n\14\00 \00\00\00\02A\00\00\10\t\04\00 \00\00\00\02A\00\00\02\02\00\00\10\02\04\00 \00\00\00\02A\00\00\10\t2\00 \00\00\00\02A\00\00\02\19\00\00\10\192\00 \00\00\00\02A\00\00\10\t4\00 \00\00\00\02A\00\00\02\1a\00\00\10\1a4\00 \00\00\00\02A") (export "memory" (memory $0)) (start $~start) (func $~lib/rt/itcms/visitRoots @@ -170,7 +190,7 @@ i32.load offset=8 i32.eqz local.get $0 - i32.const 35264 + i32.const 35584 i32.lt_u i32.and i32.eqz @@ -219,7 +239,7 @@ i32.const 1 else local.get $1 - i32.const 2208 + i32.const 2528 i32.load i32.gt_u if @@ -233,7 +253,7 @@ local.get $1 i32.const 2 i32.shl - i32.const 2212 + i32.const 2532 i32.add i32.load i32.const 32 @@ -817,10 +837,10 @@ if unreachable end - i32.const 35264 + i32.const 35584 i32.const 0 i32.store - i32.const 36832 + i32.const 37152 i32.const 0 i32.store loop $for-loop|0 @@ -831,7 +851,7 @@ local.get $0 i32.const 2 i32.shl - i32.const 35264 + i32.const 35584 i32.add i32.const 0 i32.store offset=4 @@ -849,7 +869,7 @@ i32.add i32.const 2 i32.shl - i32.const 35264 + i32.const 35584 i32.add i32.const 0 i32.store offset=96 @@ -867,14 +887,14 @@ br $for-loop|0 end end - i32.const 35264 - i32.const 36836 + i32.const 35584 + i32.const 37156 memory.size i64.extend_i32_s i64.const 16 i64.shl call $~lib/rt/tlsf/addMemory - i32.const 35264 + i32.const 35584 global.set $~lib/rt/tlsf/ROOT ) (func $~lib/rt/itcms/step (result i32) @@ -959,7 +979,7 @@ local.set $0 loop $while-continue|0 local.get $0 - i32.const 35264 + i32.const 35584 i32.lt_u if local.get $0 @@ -1055,7 +1075,7 @@ unreachable end local.get $0 - i32.const 35264 + i32.const 35584 i32.lt_u if local.get $0 @@ -1078,7 +1098,7 @@ i32.const 4 i32.add local.tee $0 - i32.const 35264 + i32.const 35584 i32.ge_u if global.get $~lib/rt/tlsf/ROOT @@ -1735,7 +1755,7 @@ i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 2496 + i32.const 2816 i32.lt_s br_if $folding-inner3 global.get $~lib/memory/__stack_pointer @@ -1764,7 +1784,7 @@ i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 2496 + i32.const 2816 i32.lt_s br_if $folding-inner3 global.get $~lib/memory/__stack_pointer @@ -1822,7 +1842,7 @@ i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 2496 + i32.const 2816 i32.lt_s br_if $folding-inner3 global.get $~lib/memory/__stack_pointer @@ -1840,8 +1860,8 @@ global.set $~lib/memory/__stack_pointer return end - i32.const 35296 - i32.const 35344 + i32.const 35616 + i32.const 35664 i32.const 1 i32.const 1 call $~lib/builtins/abort @@ -1851,7 +1871,7 @@ memory.size i32.const 16 i32.shl - i32.const 35264 + i32.const 35584 i32.sub i32.const 1 i32.shr_u @@ -1930,11 +1950,11 @@ i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 2496 + i32.const 2816 i32.lt_s if - i32.const 35296 - i32.const 35344 + i32.const 35616 + i32.const 35664 i32.const 1 i32.const 1 call $~lib/builtins/abort @@ -1966,11 +1986,11 @@ i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 2496 + i32.const 2816 i32.lt_s if - i32.const 35296 - i32.const 35344 + i32.const 35616 + i32.const 35664 i32.const 1 i32.const 1 call $~lib/builtins/abort @@ -2154,11 +2174,11 @@ i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 2496 + i32.const 2816 i32.lt_s if - i32.const 35296 - i32.const 35344 + i32.const 35616 + i32.const 35664 i32.const 1 i32.const 1 call $~lib/builtins/abort @@ -2218,11 +2238,11 @@ i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 2496 + i32.const 2816 i32.lt_s if - i32.const 35296 - i32.const 35344 + i32.const 35616 + i32.const 35664 i32.const 1 i32.const 1 call $~lib/builtins/abort @@ -2295,16 +2315,17 @@ (local $5 i32) (local $6 i32) (local $7 i32) + (local $8 i32) global.get $~lib/memory/__stack_pointer i32.const 16 i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 2496 + i32.const 2816 i32.lt_s if - i32.const 35296 - i32.const 35344 + i32.const 35616 + i32.const 35664 i32.const 1 i32.const 1 call $~lib/builtins/abort @@ -2379,195 +2400,205 @@ i32.const 0 i32.store offset=20 local.get $0 - if + if (result i32) global.get $~lib/memory/__stack_pointer local.get $0 i32.store offset=4 local.get $0 call $"~lib/array/Array<~lib/map/KeyValue>#get:length" + else + i32.const 0 + end + i32.eqz + if + global.get $~lib/memory/__stack_pointer + i32.const 16 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $1 + return + end + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + local.get $0 + call $"~lib/array/Array<~lib/map/KeyValue>#get:length" + local.set $4 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + local.get $4 + local.get $1 + i32.load offset=12 + i32.ge_s + if global.get $~lib/memory/__stack_pointer local.get $1 i32.store offset=4 local.get $1 - i32.load offset=12 - i32.ge_s + local.get $4 + i32.store offset=4 + end + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=8 + local.get $1 + local.get $1 + i32.load offset=4 + i32.const 1 + i32.shl + i32.const 1 + i32.or + call $"~lib/map/Map#rehash" + loop $for-loop|0 + local.get $2 + local.get $4 + i32.lt_s if - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 global.get $~lib/memory/__stack_pointer local.get $0 i32.store offset=8 - local.get $1 local.get $0 - call $"~lib/array/Array<~lib/map/KeyValue>#get:length" + local.get $2 + call $"~lib/array/Array<~lib/map/KeyValue>#__get" + local.set $3 + global.get $~lib/memory/__stack_pointer + local.get $3 i32.store offset=4 - end - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=8 - local.get $1 - local.get $1 - i32.load offset=4 - i32.const 1 - i32.shl - i32.const 1 - i32.or - call $"~lib/map/Map#rehash" - loop $for-loop|0 + local.get $3 + i32.load8_s + local.set $5 global.get $~lib/memory/__stack_pointer local.get $0 - i32.store offset=4 + i32.store offset=8 local.get $0 - call $"~lib/array/Array<~lib/map/KeyValue>#get:length" local.get $2 - i32.gt_s + call $"~lib/array/Array<~lib/map/KeyValue>#__get" + local.set $3 + global.get $~lib/memory/__stack_pointer + local.get $3 + i32.store offset=4 + local.get $3 + i32.load offset=4 + local.set $6 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + local.get $1 + local.get $5 + local.get $5 + i32.const -1028477379 + i32.mul + i32.const 374761394 + i32.add + i32.const 17 + i32.rotl + i32.const 668265263 + i32.mul + local.tee $3 + i32.const 15 + i32.shr_u + local.get $3 + i32.xor + i32.const -2048144777 + i32.mul + local.tee $3 + i32.const 13 + i32.shr_u + local.get $3 + i32.xor + i32.const -1028477379 + i32.mul + local.tee $3 + i32.const 16 + i32.shr_u + local.get $3 + i32.xor + local.tee $7 + call $"~lib/map/Map#find" + local.tee $3 if + local.get $3 + local.get $6 + i32.store offset=4 + else global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=8 - local.get $0 - local.get $2 - call $"~lib/array/Array<~lib/map/KeyValue>#__get" - local.set $3 + local.get $1 + i32.store offset=4 global.get $~lib/memory/__stack_pointer - local.get $3 + local.get $1 + i32.load offset=8 + local.tee $8 + i32.store offset=12 + global.get $~lib/memory/__stack_pointer + local.get $1 i32.store offset=4 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=8 + local.get $1 + local.get $1 + i32.load offset=16 + local.tee $3 + i32.const 1 + i32.add + i32.store offset=16 + local.get $8 local.get $3 - i32.load8_s - local.set $3 + i32.const 12 + i32.mul + i32.add + local.tee $3 + local.get $5 + i32.store8 + local.get $3 + local.get $6 + i32.store offset=4 global.get $~lib/memory/__stack_pointer - local.get $0 + local.get $1 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + local.get $1 i32.store offset=8 - local.get $0 - local.get $2 - call $"~lib/array/Array<~lib/map/KeyValue>#__get" - local.set $4 + local.get $1 + local.get $1 + i32.load offset=20 + i32.const 1 + i32.add + i32.store offset=20 global.get $~lib/memory/__stack_pointer - local.get $4 + local.get $1 i32.store offset=4 - local.get $4 - i32.load offset=4 + local.get $1 + i32.load local.set $5 global.get $~lib/memory/__stack_pointer local.get $1 i32.store offset=4 - local.get $1 - local.get $3 local.get $3 - i32.const -1028477379 - i32.mul - i32.const 374761394 + local.get $5 + local.get $7 + local.get $1 + i32.load offset=4 + i32.and + i32.const 2 + i32.shl i32.add - i32.const 17 - i32.rotl - i32.const 668265263 - i32.mul - local.tee $4 - i32.const 15 - i32.shr_u - local.get $4 - i32.xor - i32.const -2048144777 - i32.mul - local.tee $4 - i32.const 13 - i32.shr_u - local.get $4 - i32.xor - i32.const -1028477379 - i32.mul - local.tee $4 - i32.const 16 - i32.shr_u - local.get $4 - i32.xor - local.tee $6 - call $"~lib/map/Map#find" - local.tee $4 - if - local.get $4 - local.get $5 - i32.store offset=4 - else - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.load offset=8 - local.tee $4 - i32.store offset=12 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=8 - local.get $1 - local.get $1 - i32.load offset=16 - local.tee $7 - i32.const 1 - i32.add - i32.store offset=16 - local.get $4 - local.get $7 - i32.const 12 - i32.mul - i32.add - local.tee $4 - local.get $3 - i32.store8 - local.get $4 - local.get $5 - i32.store offset=4 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=8 - local.get $1 - local.get $1 - i32.load offset=20 - i32.const 1 - i32.add - i32.store offset=20 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - local.get $1 - i32.load - local.set $3 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - local.get $4 - local.get $3 - local.get $6 - local.get $1 - i32.load offset=4 - i32.and - i32.const 2 - i32.shl - i32.add - local.tee $3 - i32.load - i32.store offset=8 - local.get $3 - local.get $4 - i32.store - end - local.get $2 - i32.const 1 - i32.add - local.set $2 - br $for-loop|0 + local.tee $5 + i32.load + i32.store offset=8 + local.get $5 + local.get $3 + i32.store end + local.get $2 + i32.const 1 + i32.add + local.set $2 + br $for-loop|0 end end global.get $~lib/memory/__stack_pointer @@ -2582,11 +2613,11 @@ i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 2496 + i32.const 2816 i32.lt_s if - i32.const 35296 - i32.const 35344 + i32.const 35616 + i32.const 35664 i32.const 1 i32.const 1 call $~lib/builtins/abort @@ -2646,11 +2677,11 @@ i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 2496 + i32.const 2816 i32.lt_s if - i32.const 35296 - i32.const 35344 + i32.const 35616 + i32.const 35664 i32.const 1 i32.const 1 call $~lib/builtins/abort @@ -2836,11 +2867,11 @@ i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 2496 + i32.const 2816 i32.lt_s if - i32.const 35296 - i32.const 35344 + i32.const 35616 + i32.const 35664 i32.const 1 i32.const 1 call $~lib/builtins/abort @@ -2889,7 +2920,7 @@ if i32.const 1792 i32.const 1856 - i32.const 146 + i32.const 147 i32.const 17 call $~lib/builtins/abort unreachable @@ -2907,11 +2938,11 @@ i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 2496 + i32.const 2816 i32.lt_s if - i32.const 35296 - i32.const 35344 + i32.const 35616 + i32.const 35664 i32.const 1 i32.const 1 call $~lib/builtins/abort @@ -2938,11 +2969,11 @@ i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 2496 + i32.const 2816 i32.lt_s if - i32.const 35296 - i32.const 35344 + i32.const 35616 + i32.const 35664 i32.const 1 i32.const 1 call $~lib/builtins/abort @@ -3076,11 +3107,11 @@ i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 2496 + i32.const 2816 i32.lt_s if - i32.const 35296 - i32.const 35344 + i32.const 35616 + i32.const 35664 i32.const 1 i32.const 1 call $~lib/builtins/abort @@ -3143,11 +3174,11 @@ i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 2496 + i32.const 2816 i32.lt_s if - i32.const 35296 - i32.const 35344 + i32.const 35616 + i32.const 35664 i32.const 1 i32.const 1 call $~lib/builtins/abort @@ -3181,11 +3212,11 @@ i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 2496 + i32.const 2816 i32.lt_s if - i32.const 35296 - i32.const 35344 + i32.const 35616 + i32.const 35664 i32.const 1 i32.const 1 call $~lib/builtins/abort @@ -3300,11 +3331,11 @@ i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 2496 + i32.const 2816 i32.lt_s if - i32.const 35296 - i32.const 35344 + i32.const 35616 + i32.const 35664 i32.const 1 i32.const 1 call $~lib/builtins/abort @@ -3369,11 +3400,11 @@ i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 2496 + i32.const 2816 i32.lt_s if - i32.const 35296 - i32.const 35344 + i32.const 35616 + i32.const 35664 i32.const 1 i32.const 1 call $~lib/builtins/abort @@ -3409,11 +3440,11 @@ i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 2496 + i32.const 2816 i32.lt_s if - i32.const 35296 - i32.const 35344 + i32.const 35616 + i32.const 35664 i32.const 1 i32.const 1 call $~lib/builtins/abort @@ -3499,11 +3530,11 @@ i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 2496 + i32.const 2816 i32.lt_s if - i32.const 35296 - i32.const 35344 + i32.const 35616 + i32.const 35664 i32.const 1 i32.const 1 call $~lib/builtins/abort @@ -3688,11 +3719,11 @@ i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 2496 + i32.const 2816 i32.lt_s if - i32.const 35296 - i32.const 35344 + i32.const 35616 + i32.const 35664 i32.const 1 i32.const 1 call $~lib/builtins/abort @@ -3763,16 +3794,17 @@ (local $5 i32) (local $6 i32) (local $7 i32) + (local $8 i32) global.get $~lib/memory/__stack_pointer i32.const 16 i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 2496 + i32.const 2816 i32.lt_s if - i32.const 35296 - i32.const 35344 + i32.const 35616 + i32.const 35664 i32.const 1 i32.const 1 call $~lib/builtins/abort @@ -3847,195 +3879,205 @@ i32.const 0 i32.store offset=20 local.get $0 - if + if (result i32) global.get $~lib/memory/__stack_pointer local.get $0 i32.store offset=4 local.get $0 call $"~lib/array/Array<~lib/map/KeyValue>#get:length" + else + i32.const 0 + end + i32.eqz + if + global.get $~lib/memory/__stack_pointer + i32.const 16 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $1 + return + end + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + local.get $0 + call $"~lib/array/Array<~lib/map/KeyValue>#get:length" + local.set $4 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + local.get $4 + local.get $1 + i32.load offset=12 + i32.ge_s + if global.get $~lib/memory/__stack_pointer local.get $1 i32.store offset=4 local.get $1 - i32.load offset=12 - i32.ge_s + local.get $4 + i32.store offset=4 + end + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=8 + local.get $1 + local.get $1 + i32.load offset=4 + i32.const 1 + i32.shl + i32.const 1 + i32.or + call $"~lib/map/Map#rehash" + loop $for-loop|0 + local.get $2 + local.get $4 + i32.lt_s if - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 global.get $~lib/memory/__stack_pointer local.get $0 i32.store offset=8 - local.get $1 local.get $0 - call $"~lib/array/Array<~lib/map/KeyValue>#get:length" + local.get $2 + call $"~lib/array/Array<~lib/map/KeyValue>#__get" + local.set $3 + global.get $~lib/memory/__stack_pointer + local.get $3 i32.store offset=4 - end - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=8 - local.get $1 - local.get $1 - i32.load offset=4 - i32.const 1 - i32.shl - i32.const 1 - i32.or - call $"~lib/map/Map#rehash" - loop $for-loop|0 + local.get $3 + i32.load + local.set $5 global.get $~lib/memory/__stack_pointer local.get $0 - i32.store offset=4 + i32.store offset=8 local.get $0 - call $"~lib/array/Array<~lib/map/KeyValue>#get:length" local.get $2 - i32.gt_s + call $"~lib/array/Array<~lib/map/KeyValue>#__get" + local.set $3 + global.get $~lib/memory/__stack_pointer + local.get $3 + i32.store offset=4 + local.get $3 + i32.load offset=4 + local.set $6 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + local.get $1 + local.get $5 + local.get $5 + i32.const -1028477379 + i32.mul + i32.const 374761397 + i32.add + i32.const 17 + i32.rotl + i32.const 668265263 + i32.mul + local.tee $3 + i32.const 15 + i32.shr_u + local.get $3 + i32.xor + i32.const -2048144777 + i32.mul + local.tee $3 + i32.const 13 + i32.shr_u + local.get $3 + i32.xor + i32.const -1028477379 + i32.mul + local.tee $3 + i32.const 16 + i32.shr_u + local.get $3 + i32.xor + local.tee $7 + call $"~lib/map/Map#find" + local.tee $3 if + local.get $3 + local.get $6 + i32.store offset=4 + else global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=8 - local.get $0 - local.get $2 - call $"~lib/array/Array<~lib/map/KeyValue>#__get" - local.set $3 + local.get $1 + i32.store offset=4 global.get $~lib/memory/__stack_pointer - local.get $3 + local.get $1 + i32.load offset=8 + local.tee $8 + i32.store offset=12 + global.get $~lib/memory/__stack_pointer + local.get $1 i32.store offset=4 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=8 + local.get $1 + local.get $1 + i32.load offset=16 + local.tee $3 + i32.const 1 + i32.add + i32.store offset=16 + local.get $8 local.get $3 - i32.load - local.set $3 + i32.const 12 + i32.mul + i32.add + local.tee $3 + local.get $5 + i32.store + local.get $3 + local.get $6 + i32.store offset=4 global.get $~lib/memory/__stack_pointer - local.get $0 + local.get $1 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + local.get $1 i32.store offset=8 - local.get $0 - local.get $2 - call $"~lib/array/Array<~lib/map/KeyValue>#__get" - local.set $4 + local.get $1 + local.get $1 + i32.load offset=20 + i32.const 1 + i32.add + i32.store offset=20 global.get $~lib/memory/__stack_pointer - local.get $4 + local.get $1 i32.store offset=4 - local.get $4 - i32.load offset=4 + local.get $1 + i32.load local.set $5 global.get $~lib/memory/__stack_pointer local.get $1 i32.store offset=4 - local.get $1 - local.get $3 local.get $3 - i32.const -1028477379 - i32.mul - i32.const 374761397 - i32.add - i32.const 17 - i32.rotl - i32.const 668265263 - i32.mul - local.tee $4 - i32.const 15 - i32.shr_u - local.get $4 - i32.xor - i32.const -2048144777 - i32.mul - local.tee $4 - i32.const 13 - i32.shr_u - local.get $4 - i32.xor - i32.const -1028477379 - i32.mul - local.tee $4 - i32.const 16 - i32.shr_u - local.get $4 - i32.xor - local.tee $6 - call $"~lib/map/Map#find" - local.tee $4 - if - local.get $4 - local.get $5 - i32.store offset=4 - else - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.load offset=8 - local.tee $4 - i32.store offset=12 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=8 - local.get $1 - local.get $1 - i32.load offset=16 - local.tee $7 - i32.const 1 - i32.add - i32.store offset=16 - local.get $4 - local.get $7 - i32.const 12 - i32.mul - i32.add - local.tee $4 - local.get $3 - i32.store - local.get $4 - local.get $5 - i32.store offset=4 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=8 - local.get $1 - local.get $1 - i32.load offset=20 - i32.const 1 - i32.add - i32.store offset=20 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - local.get $1 - i32.load - local.set $3 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - local.get $4 - local.get $3 - local.get $6 - local.get $1 - i32.load offset=4 - i32.and - i32.const 2 - i32.shl - i32.add - local.tee $3 - i32.load - i32.store offset=8 - local.get $3 - local.get $4 - i32.store - end - local.get $2 - i32.const 1 + local.get $5 + local.get $7 + local.get $1 + i32.load offset=4 + i32.and + i32.const 2 + i32.shl i32.add - local.set $2 - br $for-loop|0 + local.tee $5 + i32.load + i32.store offset=8 + local.get $5 + local.get $3 + i32.store end + local.get $2 + i32.const 1 + i32.add + local.set $2 + br $for-loop|0 end end global.get $~lib/memory/__stack_pointer @@ -4050,11 +4092,11 @@ i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 2496 + i32.const 2816 i32.lt_s if - i32.const 35296 - i32.const 35344 + i32.const 35616 + i32.const 35664 i32.const 1 i32.const 1 call $~lib/builtins/abort @@ -4109,7 +4151,7 @@ global.set $~lib/memory/__stack_pointer block $folding-inner0 global.get $~lib/memory/__stack_pointer - i32.const 2496 + i32.const 2816 i32.lt_s br_if $folding-inner0 global.get $~lib/memory/__stack_pointer @@ -4157,7 +4199,7 @@ i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 2496 + i32.const 2816 i32.lt_s br_if $folding-inner0 global.get $~lib/memory/__stack_pointer @@ -4279,7 +4321,7 @@ i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 2496 + i32.const 2816 i32.lt_s br_if $folding-inner0 global.get $~lib/memory/__stack_pointer @@ -4529,8 +4571,8 @@ global.set $~lib/memory/__stack_pointer return end - i32.const 35296 - i32.const 35344 + i32.const 35616 + i32.const 35664 i32.const 1 i32.const 1 call $~lib/builtins/abort @@ -4545,11 +4587,11 @@ i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 2496 + i32.const 2816 i32.lt_s if - i32.const 35296 - i32.const 35344 + i32.const 35616 + i32.const 35664 i32.const 1 i32.const 1 call $~lib/builtins/abort @@ -4735,11 +4777,11 @@ i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 2496 + i32.const 2816 i32.lt_s if - i32.const 35296 - i32.const 35344 + i32.const 35616 + i32.const 35664 i32.const 1 i32.const 1 call $~lib/builtins/abort @@ -4872,11 +4914,11 @@ i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 2496 + i32.const 2816 i32.lt_s if - i32.const 35296 - i32.const 35344 + i32.const 35616 + i32.const 35664 i32.const 1 i32.const 1 call $~lib/builtins/abort @@ -4954,11 +4996,11 @@ i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 2496 + i32.const 2816 i32.lt_s if - i32.const 35296 - i32.const 35344 + i32.const 35616 + i32.const 35664 i32.const 1 i32.const 1 call $~lib/builtins/abort @@ -5022,7 +5064,7 @@ global.set $~lib/memory/__stack_pointer block $folding-inner1 global.get $~lib/memory/__stack_pointer - i32.const 2496 + i32.const 2816 i32.lt_s br_if $folding-inner1 global.get $~lib/memory/__stack_pointer @@ -5230,7 +5272,7 @@ i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 2496 + i32.const 2816 i32.lt_s br_if $folding-inner1 global.get $~lib/memory/__stack_pointer @@ -5254,7 +5296,7 @@ i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 2496 + i32.const 2816 i32.lt_s br_if $folding-inner1 global.get $~lib/memory/__stack_pointer @@ -5421,7 +5463,7 @@ i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 2496 + i32.const 2816 i32.lt_s br_if $folding-inner1 global.get $~lib/memory/__stack_pointer @@ -5520,7 +5562,7 @@ i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 2496 + i32.const 2816 i32.lt_s br_if $folding-inner1 global.get $~lib/memory/__stack_pointer @@ -5856,7 +5898,7 @@ i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 2496 + i32.const 2816 i32.lt_s br_if $folding-inner1 global.get $~lib/memory/__stack_pointer @@ -5939,7 +5981,7 @@ if i32.const 0 i32.const 1744 - i32.const 74 + i32.const 75 i32.const 3 call $~lib/builtins/abort unreachable @@ -5961,7 +6003,7 @@ if i32.const 0 i32.const 1744 - i32.const 76 + i32.const 77 i32.const 5 call $~lib/builtins/abort unreachable @@ -5979,7 +6021,7 @@ if i32.const 0 i32.const 1744 - i32.const 77 + i32.const 78 i32.const 5 call $~lib/builtins/abort unreachable @@ -5999,7 +6041,7 @@ if i32.const 0 i32.const 1744 - i32.const 79 + i32.const 80 i32.const 5 call $~lib/builtins/abort unreachable @@ -6019,7 +6061,32 @@ if i32.const 0 i32.const 1744 - i32.const 81 + i32.const 82 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + i32.const 6 + i32.const 1936 + call $~lib/rt/__newArray + local.set $1 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + local.get $1 + call $"~lib/map/Map#constructor" + local.tee $0 + i32.store + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + local.get $0 + call $"~lib/map/Map#get:size" + if + i32.const 0 + i32.const 1744 + i32.const 85 i32.const 3 call $~lib/builtins/abort unreachable @@ -6030,8 +6097,8 @@ global.set $~lib/memory/__stack_pointer return end - i32.const 35296 - i32.const 35344 + i32.const 35616 + i32.const 35664 i32.const 1 i32.const 1 call $~lib/builtins/abort @@ -6050,11 +6117,11 @@ i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 2496 + i32.const 2816 i32.lt_s if - i32.const 35296 - i32.const 35344 + i32.const 35616 + i32.const 35664 i32.const 1 i32.const 1 call $~lib/builtins/abort @@ -6240,16 +6307,17 @@ (local $5 i32) (local $6 i32) (local $7 i32) + (local $8 i32) global.get $~lib/memory/__stack_pointer i32.const 16 i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 2496 + i32.const 2816 i32.lt_s if - i32.const 35296 - i32.const 35344 + i32.const 35616 + i32.const 35664 i32.const 1 i32.const 1 call $~lib/builtins/abort @@ -6324,195 +6392,205 @@ i32.const 0 i32.store offset=20 local.get $0 - if + if (result i32) global.get $~lib/memory/__stack_pointer local.get $0 i32.store offset=4 local.get $0 call $"~lib/array/Array<~lib/map/KeyValue>#get:length" + else + i32.const 0 + end + i32.eqz + if + global.get $~lib/memory/__stack_pointer + i32.const 16 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $1 + return + end + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + local.get $0 + call $"~lib/array/Array<~lib/map/KeyValue>#get:length" + local.set $4 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + local.get $4 + local.get $1 + i32.load offset=12 + i32.ge_s + if global.get $~lib/memory/__stack_pointer local.get $1 i32.store offset=4 local.get $1 - i32.load offset=12 - i32.ge_s + local.get $4 + i32.store offset=4 + end + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=8 + local.get $1 + local.get $1 + i32.load offset=4 + i32.const 1 + i32.shl + i32.const 1 + i32.or + call $"~lib/map/Map#rehash" + loop $for-loop|0 + local.get $2 + local.get $4 + i32.lt_s if - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 global.get $~lib/memory/__stack_pointer local.get $0 i32.store offset=8 - local.get $1 local.get $0 - call $"~lib/array/Array<~lib/map/KeyValue>#get:length" + local.get $2 + call $"~lib/array/Array<~lib/map/KeyValue>#__get" + local.set $3 + global.get $~lib/memory/__stack_pointer + local.get $3 i32.store offset=4 - end - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=8 - local.get $1 - local.get $1 - i32.load offset=4 - i32.const 1 - i32.shl - i32.const 1 - i32.or - call $"~lib/map/Map#rehash" - loop $for-loop|0 + local.get $3 + i32.load8_u + local.set $5 global.get $~lib/memory/__stack_pointer local.get $0 - i32.store offset=4 + i32.store offset=8 local.get $0 - call $"~lib/array/Array<~lib/map/KeyValue>#get:length" local.get $2 - i32.gt_s + call $"~lib/array/Array<~lib/map/KeyValue>#__get" + local.set $3 + global.get $~lib/memory/__stack_pointer + local.get $3 + i32.store offset=4 + local.get $3 + i32.load offset=4 + local.set $6 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + local.get $1 + local.get $5 + local.get $5 + i32.const -1028477379 + i32.mul + i32.const 374761394 + i32.add + i32.const 17 + i32.rotl + i32.const 668265263 + i32.mul + local.tee $3 + i32.const 15 + i32.shr_u + local.get $3 + i32.xor + i32.const -2048144777 + i32.mul + local.tee $3 + i32.const 13 + i32.shr_u + local.get $3 + i32.xor + i32.const -1028477379 + i32.mul + local.tee $3 + i32.const 16 + i32.shr_u + local.get $3 + i32.xor + local.tee $7 + call $"~lib/map/Map#find" + local.tee $3 if - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=8 - local.get $0 - local.get $2 - call $"~lib/array/Array<~lib/map/KeyValue>#__get" - local.set $3 - global.get $~lib/memory/__stack_pointer - local.get $3 - i32.store offset=4 local.get $3 - i32.load8_u - local.set $3 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=8 - local.get $0 - local.get $2 - call $"~lib/array/Array<~lib/map/KeyValue>#__get" - local.set $4 - global.get $~lib/memory/__stack_pointer - local.get $4 + local.get $6 i32.store offset=4 - local.get $4 - i32.load offset=4 - local.set $5 + else global.get $~lib/memory/__stack_pointer local.get $1 i32.store offset=4 + global.get $~lib/memory/__stack_pointer local.get $1 - local.get $3 - local.get $3 - i32.const -1028477379 - i32.mul - i32.const 374761394 - i32.add - i32.const 17 - i32.rotl - i32.const 668265263 - i32.mul - local.tee $4 - i32.const 15 - i32.shr_u - local.get $4 - i32.xor - i32.const -2048144777 - i32.mul - local.tee $4 - i32.const 13 - i32.shr_u - local.get $4 - i32.xor - i32.const -1028477379 - i32.mul - local.tee $4 - i32.const 16 - i32.shr_u - local.get $4 - i32.xor - local.tee $6 - call $"~lib/map/Map#find" - local.tee $4 - if - local.get $4 - local.get $5 - i32.store offset=4 - else - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.load offset=8 - local.tee $4 - i32.store offset=12 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=8 - local.get $1 - local.get $1 - i32.load offset=16 - local.tee $7 - i32.const 1 - i32.add - i32.store offset=16 - local.get $4 - local.get $7 - i32.const 12 - i32.mul - i32.add - local.tee $4 - local.get $3 - i32.store8 - local.get $4 - local.get $5 - i32.store offset=4 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=8 - local.get $1 - local.get $1 - i32.load offset=20 - i32.const 1 - i32.add - i32.store offset=20 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - local.get $1 - i32.load - local.set $3 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - local.get $4 - local.get $3 - local.get $6 - local.get $1 - i32.load offset=4 - i32.and - i32.const 2 - i32.shl - i32.add - local.tee $3 - i32.load - i32.store offset=8 - local.get $3 - local.get $4 - i32.store - end - local.get $2 + i32.load offset=8 + local.tee $8 + i32.store offset=12 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=8 + local.get $1 + local.get $1 + i32.load offset=16 + local.tee $3 i32.const 1 i32.add - local.set $2 - br $for-loop|0 + i32.store offset=16 + local.get $8 + local.get $3 + i32.const 12 + i32.mul + i32.add + local.tee $3 + local.get $5 + i32.store8 + local.get $3 + local.get $6 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=8 + local.get $1 + local.get $1 + i32.load offset=20 + i32.const 1 + i32.add + i32.store offset=20 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + local.get $1 + i32.load + local.set $5 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + local.get $3 + local.get $5 + local.get $7 + local.get $1 + i32.load offset=4 + i32.and + i32.const 2 + i32.shl + i32.add + local.tee $5 + i32.load + i32.store offset=8 + local.get $5 + local.get $3 + i32.store end + local.get $2 + i32.const 1 + i32.add + local.set $2 + br $for-loop|0 end end global.get $~lib/memory/__stack_pointer @@ -6527,11 +6605,11 @@ i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 2496 + i32.const 2816 i32.lt_s if - i32.const 35296 - i32.const 35344 + i32.const 35616 + i32.const 35664 i32.const 1 i32.const 1 call $~lib/builtins/abort @@ -6592,11 +6670,11 @@ i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 2496 + i32.const 2816 i32.lt_s if - i32.const 35296 - i32.const 35344 + i32.const 35616 + i32.const 35664 i32.const 1 i32.const 1 call $~lib/builtins/abort @@ -6783,11 +6861,11 @@ i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 2496 + i32.const 2816 i32.lt_s if - i32.const 35296 - i32.const 35344 + i32.const 35616 + i32.const 35664 i32.const 1 i32.const 1 call $~lib/builtins/abort @@ -6837,7 +6915,7 @@ if i32.const 1792 i32.const 1856 - i32.const 146 + i32.const 147 i32.const 17 call $~lib/builtins/abort unreachable @@ -6865,7 +6943,7 @@ global.set $~lib/memory/__stack_pointer block $folding-inner0 global.get $~lib/memory/__stack_pointer - i32.const 2496 + i32.const 2816 i32.lt_s br_if $folding-inner0 global.get $~lib/memory/__stack_pointer @@ -6914,7 +6992,7 @@ i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 2496 + i32.const 2816 i32.lt_s br_if $folding-inner0 global.get $~lib/memory/__stack_pointer @@ -7036,7 +7114,7 @@ i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 2496 + i32.const 2816 i32.lt_s br_if $folding-inner0 global.get $~lib/memory/__stack_pointer @@ -7286,8 +7364,8 @@ global.set $~lib/memory/__stack_pointer return end - i32.const 35296 - i32.const 35344 + i32.const 35616 + i32.const 35664 i32.const 1 i32.const 1 call $~lib/builtins/abort @@ -7300,11 +7378,11 @@ i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 2496 + i32.const 2816 i32.lt_s if - i32.const 35296 - i32.const 35344 + i32.const 35616 + i32.const 35664 i32.const 1 i32.const 1 call $~lib/builtins/abort @@ -7447,7 +7525,7 @@ global.set $~lib/memory/__stack_pointer block $folding-inner1 global.get $~lib/memory/__stack_pointer - i32.const 2496 + i32.const 2816 i32.lt_s br_if $folding-inner1 global.get $~lib/memory/__stack_pointer @@ -7655,7 +7733,7 @@ i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 2496 + i32.const 2816 i32.lt_s br_if $folding-inner1 global.get $~lib/memory/__stack_pointer @@ -7679,7 +7757,7 @@ i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 2496 + i32.const 2816 i32.lt_s br_if $folding-inner1 global.get $~lib/memory/__stack_pointer @@ -7846,7 +7924,7 @@ i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 2496 + i32.const 2816 i32.lt_s br_if $folding-inner1 global.get $~lib/memory/__stack_pointer @@ -7945,7 +8023,7 @@ i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 2496 + i32.const 2816 i32.lt_s br_if $folding-inner1 global.get $~lib/memory/__stack_pointer @@ -8261,7 +8339,7 @@ end global.get $~lib/memory/__stack_pointer i32.const 17 - i32.const 1936 + i32.const 1968 call $~lib/rt/__newArray local.tee $1 i32.store offset=24 @@ -8281,7 +8359,7 @@ i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 2496 + i32.const 2816 i32.lt_s br_if $folding-inner1 global.get $~lib/memory/__stack_pointer @@ -8364,7 +8442,7 @@ if i32.const 0 i32.const 1744 - i32.const 74 + i32.const 75 i32.const 3 call $~lib/builtins/abort unreachable @@ -8386,7 +8464,7 @@ if i32.const 0 i32.const 1744 - i32.const 76 + i32.const 77 i32.const 5 call $~lib/builtins/abort unreachable @@ -8404,7 +8482,7 @@ if i32.const 0 i32.const 1744 - i32.const 77 + i32.const 78 i32.const 5 call $~lib/builtins/abort unreachable @@ -8424,7 +8502,7 @@ if i32.const 0 i32.const 1744 - i32.const 79 + i32.const 80 i32.const 5 call $~lib/builtins/abort unreachable @@ -8444,7 +8522,32 @@ if i32.const 0 i32.const 1744 - i32.const 81 + i32.const 82 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + i32.const 17 + i32.const 2000 + call $~lib/rt/__newArray + local.set $1 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + local.get $1 + call $"~lib/map/Map#constructor" + local.tee $0 + i32.store + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + local.get $0 + call $"~lib/map/Map#get:size" + if + i32.const 0 + i32.const 1744 + i32.const 85 i32.const 3 call $~lib/builtins/abort unreachable @@ -8455,8 +8558,8 @@ global.set $~lib/memory/__stack_pointer return end - i32.const 35296 - i32.const 35344 + i32.const 35616 + i32.const 35664 i32.const 1 i32.const 1 call $~lib/builtins/abort @@ -8475,11 +8578,11 @@ i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 2496 + i32.const 2816 i32.lt_s if - i32.const 35296 - i32.const 35344 + i32.const 35616 + i32.const 35664 i32.const 1 i32.const 1 call $~lib/builtins/abort @@ -8664,11 +8767,11 @@ i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 2496 + i32.const 2816 i32.lt_s if - i32.const 35296 - i32.const 35344 + i32.const 35616 + i32.const 35664 i32.const 1 i32.const 1 call $~lib/builtins/abort @@ -8741,16 +8844,17 @@ (local $5 i32) (local $6 i32) (local $7 i32) + (local $8 i32) global.get $~lib/memory/__stack_pointer i32.const 16 i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 2496 + i32.const 2816 i32.lt_s if - i32.const 35296 - i32.const 35344 + i32.const 35616 + i32.const 35664 i32.const 1 i32.const 1 call $~lib/builtins/abort @@ -8825,195 +8929,205 @@ i32.const 0 i32.store offset=20 local.get $0 - if + if (result i32) global.get $~lib/memory/__stack_pointer local.get $0 i32.store offset=4 local.get $0 call $"~lib/array/Array<~lib/map/KeyValue>#get:length" + else + i32.const 0 + end + i32.eqz + if + global.get $~lib/memory/__stack_pointer + i32.const 16 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $1 + return + end + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + local.get $0 + call $"~lib/array/Array<~lib/map/KeyValue>#get:length" + local.set $4 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + local.get $4 + local.get $1 + i32.load offset=12 + i32.ge_s + if global.get $~lib/memory/__stack_pointer local.get $1 i32.store offset=4 local.get $1 - i32.load offset=12 - i32.ge_s + local.get $4 + i32.store offset=4 + end + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=8 + local.get $1 + local.get $1 + i32.load offset=4 + i32.const 1 + i32.shl + i32.const 1 + i32.or + call $"~lib/map/Map#rehash" + loop $for-loop|0 + local.get $2 + local.get $4 + i32.lt_s if - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 global.get $~lib/memory/__stack_pointer local.get $0 i32.store offset=8 - local.get $1 local.get $0 - call $"~lib/array/Array<~lib/map/KeyValue>#get:length" + local.get $2 + call $"~lib/array/Array<~lib/map/KeyValue>#__get" + local.set $3 + global.get $~lib/memory/__stack_pointer + local.get $3 i32.store offset=4 - end - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=8 - local.get $1 - local.get $1 - i32.load offset=4 - i32.const 1 - i32.shl - i32.const 1 - i32.or - call $"~lib/map/Map#rehash" - loop $for-loop|0 + local.get $3 + i32.load16_s + local.set $5 global.get $~lib/memory/__stack_pointer local.get $0 - i32.store offset=4 + i32.store offset=8 local.get $0 - call $"~lib/array/Array<~lib/map/KeyValue>#get:length" local.get $2 - i32.gt_s + call $"~lib/array/Array<~lib/map/KeyValue>#__get" + local.set $3 + global.get $~lib/memory/__stack_pointer + local.get $3 + i32.store offset=4 + local.get $3 + i32.load offset=4 + local.set $6 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + local.get $1 + local.get $5 + local.get $5 + i32.const -1028477379 + i32.mul + i32.const 374761395 + i32.add + i32.const 17 + i32.rotl + i32.const 668265263 + i32.mul + local.tee $3 + i32.const 15 + i32.shr_u + local.get $3 + i32.xor + i32.const -2048144777 + i32.mul + local.tee $3 + i32.const 13 + i32.shr_u + local.get $3 + i32.xor + i32.const -1028477379 + i32.mul + local.tee $3 + i32.const 16 + i32.shr_u + local.get $3 + i32.xor + local.tee $7 + call $"~lib/map/Map#find" + local.tee $3 if + local.get $3 + local.get $6 + i32.store offset=4 + else global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=8 - local.get $0 - local.get $2 - call $"~lib/array/Array<~lib/map/KeyValue>#__get" - local.set $3 + local.get $1 + i32.store offset=4 global.get $~lib/memory/__stack_pointer - local.get $3 + local.get $1 + i32.load offset=8 + local.tee $8 + i32.store offset=12 + global.get $~lib/memory/__stack_pointer + local.get $1 i32.store offset=4 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=8 + local.get $1 + local.get $1 + i32.load offset=16 + local.tee $3 + i32.const 1 + i32.add + i32.store offset=16 + local.get $8 local.get $3 - i32.load16_s - local.set $3 + i32.const 12 + i32.mul + i32.add + local.tee $3 + local.get $5 + i32.store16 + local.get $3 + local.get $6 + i32.store offset=4 global.get $~lib/memory/__stack_pointer - local.get $0 + local.get $1 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + local.get $1 i32.store offset=8 - local.get $0 - local.get $2 - call $"~lib/array/Array<~lib/map/KeyValue>#__get" - local.set $4 + local.get $1 + local.get $1 + i32.load offset=20 + i32.const 1 + i32.add + i32.store offset=20 global.get $~lib/memory/__stack_pointer - local.get $4 + local.get $1 i32.store offset=4 - local.get $4 - i32.load offset=4 + local.get $1 + i32.load local.set $5 global.get $~lib/memory/__stack_pointer local.get $1 i32.store offset=4 - local.get $1 local.get $3 - local.get $3 - i32.const -1028477379 - i32.mul - i32.const 374761395 - i32.add - i32.const 17 - i32.rotl - i32.const 668265263 - i32.mul - local.tee $4 - i32.const 15 - i32.shr_u - local.get $4 - i32.xor - i32.const -2048144777 - i32.mul - local.tee $4 - i32.const 13 - i32.shr_u - local.get $4 - i32.xor - i32.const -1028477379 - i32.mul - local.tee $4 - i32.const 16 - i32.shr_u - local.get $4 - i32.xor - local.tee $6 - call $"~lib/map/Map#find" - local.tee $4 - if - local.get $4 - local.get $5 - i32.store offset=4 - else - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.load offset=8 - local.tee $4 - i32.store offset=12 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=8 - local.get $1 - local.get $1 - i32.load offset=16 - local.tee $7 - i32.const 1 - i32.add - i32.store offset=16 - local.get $4 - local.get $7 - i32.const 12 - i32.mul - i32.add - local.tee $4 - local.get $3 - i32.store16 - local.get $4 - local.get $5 - i32.store offset=4 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=8 - local.get $1 - local.get $1 - i32.load offset=20 - i32.const 1 - i32.add - i32.store offset=20 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - local.get $1 - i32.load - local.set $3 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - local.get $4 - local.get $3 - local.get $6 - local.get $1 - i32.load offset=4 - i32.and - i32.const 2 - i32.shl - i32.add - local.tee $3 - i32.load - i32.store offset=8 - local.get $3 - local.get $4 - i32.store - end - local.get $2 - i32.const 1 + local.get $5 + local.get $7 + local.get $1 + i32.load offset=4 + i32.and + i32.const 2 + i32.shl i32.add - local.set $2 - br $for-loop|0 + local.tee $5 + i32.load + i32.store offset=8 + local.get $5 + local.get $3 + i32.store end + local.get $2 + i32.const 1 + i32.add + local.set $2 + br $for-loop|0 end end global.get $~lib/memory/__stack_pointer @@ -9028,11 +9142,11 @@ i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 2496 + i32.const 2816 i32.lt_s if - i32.const 35296 - i32.const 35344 + i32.const 35616 + i32.const 35664 i32.const 1 i32.const 1 call $~lib/builtins/abort @@ -9092,11 +9206,11 @@ i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 2496 + i32.const 2816 i32.lt_s if - i32.const 35296 - i32.const 35344 + i32.const 35616 + i32.const 35664 i32.const 1 i32.const 1 call $~lib/builtins/abort @@ -9282,11 +9396,11 @@ i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 2496 + i32.const 2816 i32.lt_s if - i32.const 35296 - i32.const 35344 + i32.const 35616 + i32.const 35664 i32.const 1 i32.const 1 call $~lib/builtins/abort @@ -9335,7 +9449,7 @@ if i32.const 1792 i32.const 1856 - i32.const 146 + i32.const 147 i32.const 17 call $~lib/builtins/abort unreachable @@ -9354,11 +9468,11 @@ i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 2496 + i32.const 2816 i32.lt_s if - i32.const 35296 - i32.const 35344 + i32.const 35616 + i32.const 35664 i32.const 1 i32.const 1 call $~lib/builtins/abort @@ -9423,11 +9537,11 @@ i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 2496 + i32.const 2816 i32.lt_s if - i32.const 35296 - i32.const 35344 + i32.const 35616 + i32.const 35664 i32.const 1 i32.const 1 call $~lib/builtins/abort @@ -9468,7 +9582,7 @@ global.set $~lib/memory/__stack_pointer block $folding-inner0 global.get $~lib/memory/__stack_pointer - i32.const 2496 + i32.const 2816 i32.lt_s br_if $folding-inner0 global.get $~lib/memory/__stack_pointer @@ -9516,7 +9630,7 @@ i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 2496 + i32.const 2816 i32.lt_s br_if $folding-inner0 global.get $~lib/memory/__stack_pointer @@ -9638,7 +9752,7 @@ i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 2496 + i32.const 2816 i32.lt_s br_if $folding-inner0 global.get $~lib/memory/__stack_pointer @@ -9888,8 +10002,8 @@ global.set $~lib/memory/__stack_pointer return end - i32.const 35296 - i32.const 35344 + i32.const 35616 + i32.const 35664 i32.const 1 i32.const 1 call $~lib/builtins/abort @@ -9902,11 +10016,11 @@ i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 2496 + i32.const 2816 i32.lt_s if - i32.const 35296 - i32.const 35344 + i32.const 35616 + i32.const 35664 i32.const 1 i32.const 1 call $~lib/builtins/abort @@ -10048,7 +10162,7 @@ global.set $~lib/memory/__stack_pointer block $folding-inner1 global.get $~lib/memory/__stack_pointer - i32.const 2496 + i32.const 2816 i32.lt_s br_if $folding-inner1 global.get $~lib/memory/__stack_pointer @@ -10256,7 +10370,7 @@ i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 2496 + i32.const 2816 i32.lt_s br_if $folding-inner1 global.get $~lib/memory/__stack_pointer @@ -10280,7 +10394,7 @@ i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 2496 + i32.const 2816 i32.lt_s br_if $folding-inner1 global.get $~lib/memory/__stack_pointer @@ -10449,7 +10563,7 @@ i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 2496 + i32.const 2816 i32.lt_s br_if $folding-inner1 global.get $~lib/memory/__stack_pointer @@ -10548,7 +10662,7 @@ i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 2496 + i32.const 2816 i32.lt_s br_if $folding-inner1 global.get $~lib/memory/__stack_pointer @@ -10866,7 +10980,7 @@ end global.get $~lib/memory/__stack_pointer i32.const 24 - i32.const 1968 + i32.const 2032 call $~lib/rt/__newArray local.tee $1 i32.store offset=24 @@ -10886,7 +11000,7 @@ i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 2496 + i32.const 2816 i32.lt_s br_if $folding-inner1 global.get $~lib/memory/__stack_pointer @@ -10969,7 +11083,7 @@ if i32.const 0 i32.const 1744 - i32.const 74 + i32.const 75 i32.const 3 call $~lib/builtins/abort unreachable @@ -10991,7 +11105,7 @@ if i32.const 0 i32.const 1744 - i32.const 76 + i32.const 77 i32.const 5 call $~lib/builtins/abort unreachable @@ -11009,7 +11123,7 @@ if i32.const 0 i32.const 1744 - i32.const 77 + i32.const 78 i32.const 5 call $~lib/builtins/abort unreachable @@ -11029,7 +11143,7 @@ if i32.const 0 i32.const 1744 - i32.const 79 + i32.const 80 i32.const 5 call $~lib/builtins/abort unreachable @@ -11049,7 +11163,32 @@ if i32.const 0 i32.const 1744 - i32.const 81 + i32.const 82 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + i32.const 24 + i32.const 2064 + call $~lib/rt/__newArray + local.set $1 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + local.get $1 + call $"~lib/map/Map#constructor" + local.tee $0 + i32.store + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + local.get $0 + call $"~lib/map/Map#get:size" + if + i32.const 0 + i32.const 1744 + i32.const 85 i32.const 3 call $~lib/builtins/abort unreachable @@ -11060,8 +11199,8 @@ global.set $~lib/memory/__stack_pointer return end - i32.const 35296 - i32.const 35344 + i32.const 35616 + i32.const 35664 i32.const 1 i32.const 1 call $~lib/builtins/abort @@ -11080,11 +11219,11 @@ i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 2496 + i32.const 2816 i32.lt_s if - i32.const 35296 - i32.const 35344 + i32.const 35616 + i32.const 35664 i32.const 1 i32.const 1 call $~lib/builtins/abort @@ -11270,16 +11409,17 @@ (local $5 i32) (local $6 i32) (local $7 i32) + (local $8 i32) global.get $~lib/memory/__stack_pointer i32.const 16 i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 2496 + i32.const 2816 i32.lt_s if - i32.const 35296 - i32.const 35344 + i32.const 35616 + i32.const 35664 i32.const 1 i32.const 1 call $~lib/builtins/abort @@ -11354,195 +11494,205 @@ i32.const 0 i32.store offset=20 local.get $0 - if + if (result i32) global.get $~lib/memory/__stack_pointer local.get $0 i32.store offset=4 local.get $0 call $"~lib/array/Array<~lib/map/KeyValue>#get:length" + else + i32.const 0 + end + i32.eqz + if + global.get $~lib/memory/__stack_pointer + i32.const 16 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $1 + return + end + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + local.get $0 + call $"~lib/array/Array<~lib/map/KeyValue>#get:length" + local.set $4 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + local.get $4 + local.get $1 + i32.load offset=12 + i32.ge_s + if global.get $~lib/memory/__stack_pointer local.get $1 i32.store offset=4 local.get $1 - i32.load offset=12 - i32.ge_s + local.get $4 + i32.store offset=4 + end + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=8 + local.get $1 + local.get $1 + i32.load offset=4 + i32.const 1 + i32.shl + i32.const 1 + i32.or + call $"~lib/map/Map#rehash" + loop $for-loop|0 + local.get $2 + local.get $4 + i32.lt_s if - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 global.get $~lib/memory/__stack_pointer local.get $0 i32.store offset=8 - local.get $1 local.get $0 - call $"~lib/array/Array<~lib/map/KeyValue>#get:length" + local.get $2 + call $"~lib/array/Array<~lib/map/KeyValue>#__get" + local.set $3 + global.get $~lib/memory/__stack_pointer + local.get $3 i32.store offset=4 - end - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=8 - local.get $1 - local.get $1 - i32.load offset=4 - i32.const 1 - i32.shl - i32.const 1 - i32.or - call $"~lib/map/Map#rehash" - loop $for-loop|0 + local.get $3 + i32.load16_u + local.set $5 global.get $~lib/memory/__stack_pointer local.get $0 - i32.store offset=4 + i32.store offset=8 local.get $0 - call $"~lib/array/Array<~lib/map/KeyValue>#get:length" local.get $2 - i32.gt_s + call $"~lib/array/Array<~lib/map/KeyValue>#__get" + local.set $3 + global.get $~lib/memory/__stack_pointer + local.get $3 + i32.store offset=4 + local.get $3 + i32.load offset=4 + local.set $6 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + local.get $1 + local.get $5 + local.get $5 + i32.const -1028477379 + i32.mul + i32.const 374761395 + i32.add + i32.const 17 + i32.rotl + i32.const 668265263 + i32.mul + local.tee $3 + i32.const 15 + i32.shr_u + local.get $3 + i32.xor + i32.const -2048144777 + i32.mul + local.tee $3 + i32.const 13 + i32.shr_u + local.get $3 + i32.xor + i32.const -1028477379 + i32.mul + local.tee $3 + i32.const 16 + i32.shr_u + local.get $3 + i32.xor + local.tee $7 + call $"~lib/map/Map#find" + local.tee $3 if + local.get $3 + local.get $6 + i32.store offset=4 + else + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.load offset=8 + local.tee $8 + i32.store offset=12 global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=8 - local.get $0 - local.get $2 - call $"~lib/array/Array<~lib/map/KeyValue>#__get" - local.set $3 + local.get $1 + i32.store offset=4 global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=8 + local.get $1 + local.get $1 + i32.load offset=16 + local.tee $3 + i32.const 1 + i32.add + i32.store offset=16 + local.get $8 local.get $3 - i32.store offset=4 + i32.const 12 + i32.mul + i32.add + local.tee $3 + local.get $5 + i32.store16 local.get $3 - i32.load16_u - local.set $3 + local.get $6 + i32.store offset=4 global.get $~lib/memory/__stack_pointer - local.get $0 + local.get $1 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + local.get $1 i32.store offset=8 - local.get $0 - local.get $2 - call $"~lib/array/Array<~lib/map/KeyValue>#__get" - local.set $4 + local.get $1 + local.get $1 + i32.load offset=20 + i32.const 1 + i32.add + i32.store offset=20 global.get $~lib/memory/__stack_pointer - local.get $4 + local.get $1 i32.store offset=4 - local.get $4 - i32.load offset=4 + local.get $1 + i32.load local.set $5 global.get $~lib/memory/__stack_pointer local.get $1 i32.store offset=4 - local.get $1 - local.get $3 local.get $3 - i32.const -1028477379 - i32.mul - i32.const 374761395 - i32.add - i32.const 17 - i32.rotl - i32.const 668265263 - i32.mul - local.tee $4 - i32.const 15 - i32.shr_u - local.get $4 - i32.xor - i32.const -2048144777 - i32.mul - local.tee $4 - i32.const 13 - i32.shr_u - local.get $4 - i32.xor - i32.const -1028477379 - i32.mul - local.tee $4 - i32.const 16 - i32.shr_u - local.get $4 - i32.xor - local.tee $6 - call $"~lib/map/Map#find" - local.tee $4 - if - local.get $4 - local.get $5 - i32.store offset=4 - else - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.load offset=8 - local.tee $4 - i32.store offset=12 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=8 - local.get $1 - local.get $1 - i32.load offset=16 - local.tee $7 - i32.const 1 - i32.add - i32.store offset=16 - local.get $4 - local.get $7 - i32.const 12 - i32.mul - i32.add - local.tee $4 - local.get $3 - i32.store16 - local.get $4 - local.get $5 - i32.store offset=4 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=8 - local.get $1 - local.get $1 - i32.load offset=20 - i32.const 1 - i32.add - i32.store offset=20 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - local.get $1 - i32.load - local.set $3 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - local.get $4 - local.get $3 - local.get $6 - local.get $1 - i32.load offset=4 - i32.and - i32.const 2 - i32.shl - i32.add - local.tee $3 - i32.load - i32.store offset=8 - local.get $3 - local.get $4 - i32.store - end - local.get $2 - i32.const 1 + local.get $5 + local.get $7 + local.get $1 + i32.load offset=4 + i32.and + i32.const 2 + i32.shl i32.add - local.set $2 - br $for-loop|0 + local.tee $5 + i32.load + i32.store offset=8 + local.get $5 + local.get $3 + i32.store end + local.get $2 + i32.const 1 + i32.add + local.set $2 + br $for-loop|0 end end global.get $~lib/memory/__stack_pointer @@ -11557,11 +11707,11 @@ i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 2496 + i32.const 2816 i32.lt_s if - i32.const 35296 - i32.const 35344 + i32.const 35616 + i32.const 35664 i32.const 1 i32.const 1 call $~lib/builtins/abort @@ -11622,11 +11772,11 @@ i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 2496 + i32.const 2816 i32.lt_s if - i32.const 35296 - i32.const 35344 + i32.const 35616 + i32.const 35664 i32.const 1 i32.const 1 call $~lib/builtins/abort @@ -11813,11 +11963,11 @@ i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 2496 + i32.const 2816 i32.lt_s if - i32.const 35296 - i32.const 35344 + i32.const 35616 + i32.const 35664 i32.const 1 i32.const 1 call $~lib/builtins/abort @@ -11867,7 +12017,7 @@ if i32.const 1792 i32.const 1856 - i32.const 146 + i32.const 147 i32.const 17 call $~lib/builtins/abort unreachable @@ -11895,7 +12045,7 @@ global.set $~lib/memory/__stack_pointer block $folding-inner0 global.get $~lib/memory/__stack_pointer - i32.const 2496 + i32.const 2816 i32.lt_s br_if $folding-inner0 global.get $~lib/memory/__stack_pointer @@ -11944,7 +12094,7 @@ i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 2496 + i32.const 2816 i32.lt_s br_if $folding-inner0 global.get $~lib/memory/__stack_pointer @@ -12066,7 +12216,7 @@ i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 2496 + i32.const 2816 i32.lt_s br_if $folding-inner0 global.get $~lib/memory/__stack_pointer @@ -12316,8 +12466,8 @@ global.set $~lib/memory/__stack_pointer return end - i32.const 35296 - i32.const 35344 + i32.const 35616 + i32.const 35664 i32.const 1 i32.const 1 call $~lib/builtins/abort @@ -12330,11 +12480,11 @@ i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 2496 + i32.const 2816 i32.lt_s if - i32.const 35296 - i32.const 35344 + i32.const 35616 + i32.const 35664 i32.const 1 i32.const 1 call $~lib/builtins/abort @@ -12477,7 +12627,7 @@ global.set $~lib/memory/__stack_pointer block $folding-inner1 global.get $~lib/memory/__stack_pointer - i32.const 2496 + i32.const 2816 i32.lt_s br_if $folding-inner1 global.get $~lib/memory/__stack_pointer @@ -12685,7 +12835,7 @@ i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 2496 + i32.const 2816 i32.lt_s br_if $folding-inner1 global.get $~lib/memory/__stack_pointer @@ -12709,7 +12859,7 @@ i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 2496 + i32.const 2816 i32.lt_s br_if $folding-inner1 global.get $~lib/memory/__stack_pointer @@ -12878,7 +13028,7 @@ i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 2496 + i32.const 2816 i32.lt_s br_if $folding-inner1 global.get $~lib/memory/__stack_pointer @@ -12977,7 +13127,7 @@ i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 2496 + i32.const 2816 i32.lt_s br_if $folding-inner1 global.get $~lib/memory/__stack_pointer @@ -13295,7 +13445,7 @@ end global.get $~lib/memory/__stack_pointer i32.const 31 - i32.const 2000 + i32.const 2096 call $~lib/rt/__newArray local.tee $1 i32.store offset=24 @@ -13315,7 +13465,7 @@ i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 2496 + i32.const 2816 i32.lt_s br_if $folding-inner1 global.get $~lib/memory/__stack_pointer @@ -13398,7 +13548,7 @@ if i32.const 0 i32.const 1744 - i32.const 74 + i32.const 75 i32.const 3 call $~lib/builtins/abort unreachable @@ -13420,7 +13570,7 @@ if i32.const 0 i32.const 1744 - i32.const 76 + i32.const 77 i32.const 5 call $~lib/builtins/abort unreachable @@ -13438,7 +13588,7 @@ if i32.const 0 i32.const 1744 - i32.const 77 + i32.const 78 i32.const 5 call $~lib/builtins/abort unreachable @@ -13458,7 +13608,7 @@ if i32.const 0 i32.const 1744 - i32.const 79 + i32.const 80 i32.const 5 call $~lib/builtins/abort unreachable @@ -13478,7 +13628,32 @@ if i32.const 0 i32.const 1744 - i32.const 81 + i32.const 82 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + i32.const 31 + i32.const 2128 + call $~lib/rt/__newArray + local.set $1 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + local.get $1 + call $"~lib/map/Map#constructor" + local.tee $0 + i32.store + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + local.get $0 + call $"~lib/map/Map#get:size" + if + i32.const 0 + i32.const 1744 + i32.const 85 i32.const 3 call $~lib/builtins/abort unreachable @@ -13489,8 +13664,8 @@ global.set $~lib/memory/__stack_pointer return end - i32.const 35296 - i32.const 35344 + i32.const 35616 + i32.const 35664 i32.const 1 i32.const 1 call $~lib/builtins/abort @@ -13502,11 +13677,11 @@ i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 2496 + i32.const 2816 i32.lt_s if - i32.const 35296 - i32.const 35344 + i32.const 35616 + i32.const 35664 i32.const 1 i32.const 1 call $~lib/builtins/abort @@ -13562,11 +13737,11 @@ i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 2496 + i32.const 2816 i32.lt_s if - i32.const 35296 - i32.const 35344 + i32.const 35616 + i32.const 35664 i32.const 1 i32.const 1 call $~lib/builtins/abort @@ -13614,7 +13789,7 @@ if i32.const 1792 i32.const 1856 - i32.const 146 + i32.const 147 i32.const 17 call $~lib/builtins/abort unreachable @@ -13633,11 +13808,11 @@ i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 2496 + i32.const 2816 i32.lt_s if - i32.const 35296 - i32.const 35344 + i32.const 35616 + i32.const 35664 i32.const 1 i32.const 1 call $~lib/builtins/abort @@ -13777,7 +13952,7 @@ global.set $~lib/memory/__stack_pointer block $folding-inner0 global.get $~lib/memory/__stack_pointer - i32.const 2496 + i32.const 2816 i32.lt_s br_if $folding-inner0 global.get $~lib/memory/__stack_pointer @@ -13985,7 +14160,7 @@ i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 2496 + i32.const 2816 i32.lt_s br_if $folding-inner0 global.get $~lib/memory/__stack_pointer @@ -14375,7 +14550,7 @@ end global.get $~lib/memory/__stack_pointer i32.const 14 - i32.const 2032 + i32.const 2160 call $~lib/rt/__newArray local.tee $1 i32.store offset=24 @@ -14395,7 +14570,7 @@ i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 2496 + i32.const 2816 i32.lt_s br_if $folding-inner0 global.get $~lib/memory/__stack_pointer @@ -14478,7 +14653,7 @@ if i32.const 0 i32.const 1744 - i32.const 74 + i32.const 75 i32.const 3 call $~lib/builtins/abort unreachable @@ -14500,7 +14675,7 @@ if i32.const 0 i32.const 1744 - i32.const 76 + i32.const 77 i32.const 5 call $~lib/builtins/abort unreachable @@ -14518,7 +14693,7 @@ if i32.const 0 i32.const 1744 - i32.const 77 + i32.const 78 i32.const 5 call $~lib/builtins/abort unreachable @@ -14538,7 +14713,7 @@ if i32.const 0 i32.const 1744 - i32.const 79 + i32.const 80 i32.const 5 call $~lib/builtins/abort unreachable @@ -14558,7 +14733,32 @@ if i32.const 0 i32.const 1744 - i32.const 81 + i32.const 82 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + i32.const 14 + i32.const 2192 + call $~lib/rt/__newArray + local.set $1 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + local.get $1 + call $"~lib/map/Map#constructor" + local.tee $0 + i32.store + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + local.get $0 + call $"~lib/map/Map#get:size" + if + i32.const 0 + i32.const 1744 + i32.const 85 i32.const 3 call $~lib/builtins/abort unreachable @@ -14569,8 +14769,8 @@ global.set $~lib/memory/__stack_pointer return end - i32.const 35296 - i32.const 35344 + i32.const 35616 + i32.const 35664 i32.const 1 i32.const 1 call $~lib/builtins/abort @@ -14589,11 +14789,11 @@ i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 2496 + i32.const 2816 i32.lt_s if - i32.const 35296 - i32.const 35344 + i32.const 35616 + i32.const 35664 i32.const 1 i32.const 1 call $~lib/builtins/abort @@ -14778,11 +14978,11 @@ i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 2496 + i32.const 2816 i32.lt_s if - i32.const 35296 - i32.const 35344 + i32.const 35616 + i32.const 35664 i32.const 1 i32.const 1 call $~lib/builtins/abort @@ -14853,16 +15053,17 @@ (local $5 i32) (local $6 i32) (local $7 i32) + (local $8 i32) global.get $~lib/memory/__stack_pointer i32.const 16 i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 2496 + i32.const 2816 i32.lt_s if - i32.const 35296 - i32.const 35344 + i32.const 35616 + i32.const 35664 i32.const 1 i32.const 1 call $~lib/builtins/abort @@ -14937,195 +15138,205 @@ i32.const 0 i32.store offset=20 local.get $0 - if + if (result i32) global.get $~lib/memory/__stack_pointer local.get $0 i32.store offset=4 local.get $0 call $"~lib/array/Array<~lib/map/KeyValue>#get:length" + else + i32.const 0 + end + i32.eqz + if + global.get $~lib/memory/__stack_pointer + i32.const 16 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $1 + return + end + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + local.get $0 + call $"~lib/array/Array<~lib/map/KeyValue>#get:length" + local.set $4 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + local.get $4 + local.get $1 + i32.load offset=12 + i32.ge_s + if global.get $~lib/memory/__stack_pointer local.get $1 i32.store offset=4 local.get $1 - i32.load offset=12 - i32.ge_s + local.get $4 + i32.store offset=4 + end + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=8 + local.get $1 + local.get $1 + i32.load offset=4 + i32.const 1 + i32.shl + i32.const 1 + i32.or + call $"~lib/map/Map#rehash" + loop $for-loop|0 + local.get $2 + local.get $4 + i32.lt_s if - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 global.get $~lib/memory/__stack_pointer local.get $0 i32.store offset=8 - local.get $1 local.get $0 - call $"~lib/array/Array<~lib/map/KeyValue>#get:length" + local.get $2 + call $"~lib/array/Array<~lib/map/KeyValue>#__get" + local.set $3 + global.get $~lib/memory/__stack_pointer + local.get $3 i32.store offset=4 - end - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=8 - local.get $1 - local.get $1 - i32.load offset=4 - i32.const 1 - i32.shl - i32.const 1 - i32.or - call $"~lib/map/Map#rehash" - loop $for-loop|0 + local.get $3 + i32.load + local.set $5 global.get $~lib/memory/__stack_pointer local.get $0 - i32.store offset=4 + i32.store offset=8 local.get $0 - call $"~lib/array/Array<~lib/map/KeyValue>#get:length" local.get $2 - i32.gt_s + call $"~lib/array/Array<~lib/map/KeyValue>#__get" + local.set $3 + global.get $~lib/memory/__stack_pointer + local.get $3 + i32.store offset=4 + local.get $3 + i32.load offset=4 + local.set $6 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + local.get $1 + local.get $5 + local.get $5 + i32.const -1028477379 + i32.mul + i32.const 374761397 + i32.add + i32.const 17 + i32.rotl + i32.const 668265263 + i32.mul + local.tee $3 + i32.const 15 + i32.shr_u + local.get $3 + i32.xor + i32.const -2048144777 + i32.mul + local.tee $3 + i32.const 13 + i32.shr_u + local.get $3 + i32.xor + i32.const -1028477379 + i32.mul + local.tee $3 + i32.const 16 + i32.shr_u + local.get $3 + i32.xor + local.tee $7 + call $"~lib/map/Map#find" + local.tee $3 if + local.get $3 + local.get $6 + i32.store offset=4 + else global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=8 - local.get $0 - local.get $2 - call $"~lib/array/Array<~lib/map/KeyValue>#__get" - local.set $3 + local.get $1 + i32.store offset=4 global.get $~lib/memory/__stack_pointer - local.get $3 + local.get $1 + i32.load offset=8 + local.tee $8 + i32.store offset=12 + global.get $~lib/memory/__stack_pointer + local.get $1 i32.store offset=4 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=8 + local.get $1 + local.get $1 + i32.load offset=16 + local.tee $3 + i32.const 1 + i32.add + i32.store offset=16 + local.get $8 local.get $3 - i32.load - local.set $3 + i32.const 12 + i32.mul + i32.add + local.tee $3 + local.get $5 + i32.store + local.get $3 + local.get $6 + i32.store offset=4 global.get $~lib/memory/__stack_pointer - local.get $0 + local.get $1 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + local.get $1 i32.store offset=8 - local.get $0 - local.get $2 - call $"~lib/array/Array<~lib/map/KeyValue>#__get" - local.set $4 + local.get $1 + local.get $1 + i32.load offset=20 + i32.const 1 + i32.add + i32.store offset=20 global.get $~lib/memory/__stack_pointer - local.get $4 + local.get $1 i32.store offset=4 - local.get $4 - i32.load offset=4 + local.get $1 + i32.load local.set $5 global.get $~lib/memory/__stack_pointer local.get $1 i32.store offset=4 - local.get $1 - local.get $3 local.get $3 - i32.const -1028477379 - i32.mul - i32.const 374761397 - i32.add - i32.const 17 - i32.rotl - i32.const 668265263 - i32.mul - local.tee $4 - i32.const 15 - i32.shr_u - local.get $4 - i32.xor - i32.const -2048144777 - i32.mul - local.tee $4 - i32.const 13 - i32.shr_u - local.get $4 - i32.xor - i32.const -1028477379 - i32.mul - local.tee $4 - i32.const 16 - i32.shr_u - local.get $4 - i32.xor - local.tee $6 - call $"~lib/map/Map#find" - local.tee $4 - if - local.get $4 - local.get $5 - i32.store offset=4 - else - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.load offset=8 - local.tee $4 - i32.store offset=12 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=8 - local.get $1 - local.get $1 - i32.load offset=16 - local.tee $7 - i32.const 1 - i32.add - i32.store offset=16 - local.get $4 - local.get $7 - i32.const 12 - i32.mul - i32.add - local.tee $4 - local.get $3 - i32.store - local.get $4 - local.get $5 - i32.store offset=4 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=8 - local.get $1 - local.get $1 - i32.load offset=20 - i32.const 1 - i32.add - i32.store offset=20 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - local.get $1 - i32.load - local.set $3 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - local.get $4 - local.get $3 - local.get $6 - local.get $1 - i32.load offset=4 - i32.and - i32.const 2 - i32.shl - i32.add - local.tee $3 - i32.load - i32.store offset=8 - local.get $3 - local.get $4 - i32.store - end - local.get $2 - i32.const 1 + local.get $5 + local.get $7 + local.get $1 + i32.load offset=4 + i32.and + i32.const 2 + i32.shl i32.add - local.set $2 - br $for-loop|0 + local.tee $5 + i32.load + i32.store offset=8 + local.get $5 + local.get $3 + i32.store end + local.get $2 + i32.const 1 + i32.add + local.set $2 + br $for-loop|0 end end global.get $~lib/memory/__stack_pointer @@ -15140,11 +15351,11 @@ i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 2496 + i32.const 2816 i32.lt_s if - i32.const 35296 - i32.const 35344 + i32.const 35616 + i32.const 35664 i32.const 1 i32.const 1 call $~lib/builtins/abort @@ -15203,11 +15414,11 @@ i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 2496 + i32.const 2816 i32.lt_s if - i32.const 35296 - i32.const 35344 + i32.const 35616 + i32.const 35664 i32.const 1 i32.const 1 call $~lib/builtins/abort @@ -15392,11 +15603,11 @@ i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 2496 + i32.const 2816 i32.lt_s if - i32.const 35296 - i32.const 35344 + i32.const 35616 + i32.const 35664 i32.const 1 i32.const 1 call $~lib/builtins/abort @@ -15444,7 +15655,7 @@ if i32.const 1792 i32.const 1856 - i32.const 146 + i32.const 147 i32.const 17 call $~lib/builtins/abort unreachable @@ -15472,7 +15683,7 @@ global.set $~lib/memory/__stack_pointer block $folding-inner0 global.get $~lib/memory/__stack_pointer - i32.const 2496 + i32.const 2816 i32.lt_s br_if $folding-inner0 global.get $~lib/memory/__stack_pointer @@ -15575,7 +15786,7 @@ i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 2496 + i32.const 2816 i32.lt_s br_if $folding-inner0 global.get $~lib/memory/__stack_pointer @@ -15825,8 +16036,8 @@ global.set $~lib/memory/__stack_pointer return end - i32.const 35296 - i32.const 35344 + i32.const 35616 + i32.const 35664 i32.const 1 i32.const 1 call $~lib/builtins/abort @@ -15839,11 +16050,11 @@ i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 2496 + i32.const 2816 i32.lt_s if - i32.const 35296 - i32.const 35344 + i32.const 35616 + i32.const 35664 i32.const 1 i32.const 1 call $~lib/builtins/abort @@ -15984,7 +16195,7 @@ global.set $~lib/memory/__stack_pointer block $folding-inner1 global.get $~lib/memory/__stack_pointer - i32.const 2496 + i32.const 2816 i32.lt_s br_if $folding-inner1 global.get $~lib/memory/__stack_pointer @@ -16192,7 +16403,7 @@ i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 2496 + i32.const 2816 i32.lt_s br_if $folding-inner1 global.get $~lib/memory/__stack_pointer @@ -16216,7 +16427,7 @@ i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 2496 + i32.const 2816 i32.lt_s br_if $folding-inner1 global.get $~lib/memory/__stack_pointer @@ -16385,7 +16596,7 @@ i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 2496 + i32.const 2816 i32.lt_s br_if $folding-inner1 global.get $~lib/memory/__stack_pointer @@ -16484,7 +16695,7 @@ i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 2496 + i32.const 2816 i32.lt_s br_if $folding-inner1 global.get $~lib/memory/__stack_pointer @@ -16802,7 +17013,7 @@ end global.get $~lib/memory/__stack_pointer i32.const 38 - i32.const 2064 + i32.const 2224 call $~lib/rt/__newArray local.tee $1 i32.store offset=24 @@ -16822,7 +17033,7 @@ i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 2496 + i32.const 2816 i32.lt_s br_if $folding-inner1 global.get $~lib/memory/__stack_pointer @@ -16905,7 +17116,7 @@ if i32.const 0 i32.const 1744 - i32.const 74 + i32.const 75 i32.const 3 call $~lib/builtins/abort unreachable @@ -16927,7 +17138,7 @@ if i32.const 0 i32.const 1744 - i32.const 76 + i32.const 77 i32.const 5 call $~lib/builtins/abort unreachable @@ -16945,7 +17156,7 @@ if i32.const 0 i32.const 1744 - i32.const 77 + i32.const 78 i32.const 5 call $~lib/builtins/abort unreachable @@ -16965,7 +17176,7 @@ if i32.const 0 i32.const 1744 - i32.const 79 + i32.const 80 i32.const 5 call $~lib/builtins/abort unreachable @@ -16985,7 +17196,32 @@ if i32.const 0 i32.const 1744 - i32.const 81 + i32.const 82 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + i32.const 38 + i32.const 2256 + call $~lib/rt/__newArray + local.set $1 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + local.get $1 + call $"~lib/map/Map#constructor" + local.tee $0 + i32.store + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + local.get $0 + call $"~lib/map/Map#get:size" + if + i32.const 0 + i32.const 1744 + i32.const 85 i32.const 3 call $~lib/builtins/abort unreachable @@ -16996,8 +17232,8 @@ global.set $~lib/memory/__stack_pointer return end - i32.const 35296 - i32.const 35344 + i32.const 35616 + i32.const 35664 i32.const 1 i32.const 1 call $~lib/builtins/abort @@ -17017,11 +17253,11 @@ i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 2496 + i32.const 2816 i32.lt_s if - i32.const 35296 - i32.const 35344 + i32.const 35616 + i32.const 35664 i32.const 1 i32.const 1 call $~lib/builtins/abort @@ -17218,11 +17454,11 @@ i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 2496 + i32.const 2816 i32.lt_s if - i32.const 35296 - i32.const 35344 + i32.const 35616 + i32.const 35664 i32.const 1 i32.const 1 call $~lib/builtins/abort @@ -17293,16 +17529,17 @@ (local $5 i32) (local $6 i32) (local $7 i32) + (local $8 i32) global.get $~lib/memory/__stack_pointer i32.const 16 i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 2496 + i32.const 2816 i32.lt_s if - i32.const 35296 - i32.const 35344 + i32.const 35616 + i32.const 35664 i32.const 1 i32.const 1 call $~lib/builtins/abort @@ -17377,207 +17614,217 @@ i32.const 0 i32.store offset=20 local.get $0 - if + if (result i32) global.get $~lib/memory/__stack_pointer local.get $0 i32.store offset=4 local.get $0 call $"~lib/array/Array<~lib/map/KeyValue>#get:length" + else + i32.const 0 + end + i32.eqz + if + global.get $~lib/memory/__stack_pointer + i32.const 16 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $1 + return + end + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + local.get $0 + call $"~lib/array/Array<~lib/map/KeyValue>#get:length" + local.set $5 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + local.get $5 + local.get $1 + i32.load offset=12 + i32.ge_s + if global.get $~lib/memory/__stack_pointer local.get $1 i32.store offset=4 local.get $1 - i32.load offset=12 - i32.ge_s + local.get $5 + i32.store offset=4 + end + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=8 + local.get $1 + local.get $1 + i32.load offset=4 + i32.const 1 + i32.shl + i32.const 1 + i32.or + call $"~lib/map/Map#rehash" + loop $for-loop|0 + local.get $2 + local.get $5 + i32.lt_s if - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 global.get $~lib/memory/__stack_pointer local.get $0 i32.store offset=8 - local.get $1 local.get $0 - call $"~lib/array/Array<~lib/map/KeyValue>#get:length" + local.get $2 + call $"~lib/array/Array<~lib/map/KeyValue>#__get" + local.set $4 + global.get $~lib/memory/__stack_pointer + local.get $4 i32.store offset=4 - end - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=8 - local.get $1 - local.get $1 - i32.load offset=4 - i32.const 1 - i32.shl - i32.const 1 - i32.or - call $"~lib/map/Map#rehash" - loop $for-loop|0 + local.get $4 + i64.load + local.set $3 global.get $~lib/memory/__stack_pointer local.get $0 - i32.store offset=4 + i32.store offset=8 local.get $0 - call $"~lib/array/Array<~lib/map/KeyValue>#get:length" local.get $2 - i32.gt_s + call $"~lib/array/Array<~lib/map/KeyValue>#__get" + local.set $4 + global.get $~lib/memory/__stack_pointer + local.get $4 + i32.store offset=4 + local.get $4 + i32.load offset=8 + local.set $6 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + local.get $1 + local.get $3 + local.get $3 + i32.wrap_i64 + i32.const -1028477379 + i32.mul + i32.const 374761401 + i32.add + i32.const 17 + i32.rotl + i32.const 668265263 + i32.mul + local.get $3 + i64.const 32 + i64.shr_u + i32.wrap_i64 + i32.const -1028477379 + i32.mul + i32.add + i32.const 17 + i32.rotl + i32.const 668265263 + i32.mul + local.tee $4 + i32.const 15 + i32.shr_u + local.get $4 + i32.xor + i32.const -2048144777 + i32.mul + local.tee $4 + i32.const 13 + i32.shr_u + local.get $4 + i32.xor + i32.const -1028477379 + i32.mul + local.tee $4 + i32.const 16 + i32.shr_u + local.get $4 + i32.xor + local.tee $7 + call $"~lib/map/Map#find" + local.tee $4 if - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=8 - local.get $0 - local.get $2 - call $"~lib/array/Array<~lib/map/KeyValue>#__get" - local.set $4 - global.get $~lib/memory/__stack_pointer - local.get $4 - i32.store offset=4 local.get $4 - i64.load - local.set $3 - global.get $~lib/memory/__stack_pointer - local.get $0 + local.get $6 i32.store offset=8 - local.get $0 - local.get $2 - call $"~lib/array/Array<~lib/map/KeyValue>#__get" - local.set $4 + else global.get $~lib/memory/__stack_pointer - local.get $4 + local.get $1 i32.store offset=4 - local.get $4 + global.get $~lib/memory/__stack_pointer + local.get $1 i32.load offset=8 - local.set $5 + local.tee $8 + i32.store offset=12 global.get $~lib/memory/__stack_pointer local.get $1 i32.store offset=4 + global.get $~lib/memory/__stack_pointer local.get $1 - local.get $3 - local.get $3 - i32.wrap_i64 - i32.const -1028477379 - i32.mul - i32.const 374761401 - i32.add - i32.const 17 - i32.rotl - i32.const 668265263 - i32.mul - local.get $3 - i64.const 32 - i64.shr_u - i32.wrap_i64 - i32.const -1028477379 - i32.mul - i32.add - i32.const 17 - i32.rotl - i32.const 668265263 - i32.mul - local.tee $4 - i32.const 15 - i32.shr_u - local.get $4 - i32.xor - i32.const -2048144777 - i32.mul - local.tee $4 - i32.const 13 - i32.shr_u - local.get $4 - i32.xor - i32.const -1028477379 - i32.mul - local.tee $4 - i32.const 16 - i32.shr_u - local.get $4 - i32.xor - local.tee $6 - call $"~lib/map/Map#find" - local.tee $4 - if - local.get $4 - local.get $5 - i32.store offset=8 - else - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.load offset=8 - local.tee $4 - i32.store offset=12 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=8 - local.get $1 - local.get $1 - i32.load offset=16 - local.tee $7 - i32.const 1 - i32.add - i32.store offset=16 - local.get $4 - local.get $7 - i32.const 4 - i32.shl - i32.add - local.tee $4 - local.get $3 - i64.store - local.get $4 - local.get $5 - i32.store offset=8 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=8 - local.get $1 - local.get $1 - i32.load offset=20 - i32.const 1 - i32.add - i32.store offset=20 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - local.get $1 - i32.load - local.set $5 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - local.get $4 - local.get $5 - local.get $6 - local.get $1 - i32.load offset=4 - i32.and - i32.const 2 - i32.shl - i32.add - local.tee $5 - i32.load - i32.store offset=12 - local.get $5 - local.get $4 - i32.store - end - local.get $2 + i32.store offset=8 + local.get $1 + local.get $1 + i32.load offset=16 + local.tee $4 i32.const 1 i32.add - local.set $2 - br $for-loop|0 + i32.store offset=16 + local.get $8 + local.get $4 + i32.const 4 + i32.shl + i32.add + local.tee $4 + local.get $3 + i64.store + local.get $4 + local.get $6 + i32.store offset=8 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=8 + local.get $1 + local.get $1 + i32.load offset=20 + i32.const 1 + i32.add + i32.store offset=20 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + local.get $1 + i32.load + local.set $6 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + local.get $4 + local.get $6 + local.get $7 + local.get $1 + i32.load offset=4 + i32.and + i32.const 2 + i32.shl + i32.add + local.tee $6 + i32.load + i32.store offset=12 + local.get $6 + local.get $4 + i32.store end + local.get $2 + i32.const 1 + i32.add + local.set $2 + br $for-loop|0 end end global.get $~lib/memory/__stack_pointer @@ -17592,11 +17839,11 @@ i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 2496 + i32.const 2816 i32.lt_s if - i32.const 35296 - i32.const 35344 + i32.const 35616 + i32.const 35664 i32.const 1 i32.const 1 call $~lib/builtins/abort @@ -17667,11 +17914,11 @@ i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 2496 + i32.const 2816 i32.lt_s if - i32.const 35296 - i32.const 35344 + i32.const 35616 + i32.const 35664 i32.const 1 i32.const 1 call $~lib/builtins/abort @@ -17868,11 +18115,11 @@ i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 2496 + i32.const 2816 i32.lt_s if - i32.const 35296 - i32.const 35344 + i32.const 35616 + i32.const 35664 i32.const 1 i32.const 1 call $~lib/builtins/abort @@ -17932,7 +18179,7 @@ if i32.const 1792 i32.const 1856 - i32.const 146 + i32.const 147 i32.const 17 call $~lib/builtins/abort unreachable @@ -17951,11 +18198,11 @@ i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 2496 + i32.const 2816 i32.lt_s if - i32.const 35296 - i32.const 35344 + i32.const 35616 + i32.const 35664 i32.const 1 i32.const 1 call $~lib/builtins/abort @@ -18020,11 +18267,11 @@ i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 2496 + i32.const 2816 i32.lt_s if - i32.const 35296 - i32.const 35344 + i32.const 35616 + i32.const 35664 i32.const 1 i32.const 1 call $~lib/builtins/abort @@ -18060,11 +18307,11 @@ i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 2496 + i32.const 2816 i32.lt_s if - i32.const 35296 - i32.const 35344 + i32.const 35616 + i32.const 35664 i32.const 1 i32.const 1 call $~lib/builtins/abort @@ -18154,7 +18401,7 @@ global.set $~lib/memory/__stack_pointer block $folding-inner0 global.get $~lib/memory/__stack_pointer - i32.const 2496 + i32.const 2816 i32.lt_s br_if $folding-inner0 global.get $~lib/memory/__stack_pointer @@ -18212,7 +18459,7 @@ i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 2496 + i32.const 2816 i32.lt_s br_if $folding-inner0 global.get $~lib/memory/__stack_pointer @@ -18332,7 +18579,7 @@ i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 2496 + i32.const 2816 i32.lt_s br_if $folding-inner0 global.get $~lib/memory/__stack_pointer @@ -18594,8 +18841,8 @@ global.set $~lib/memory/__stack_pointer return end - i32.const 35296 - i32.const 35344 + i32.const 35616 + i32.const 35664 i32.const 1 i32.const 1 call $~lib/builtins/abort @@ -18609,11 +18856,11 @@ i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 2496 + i32.const 2816 i32.lt_s if - i32.const 35296 - i32.const 35344 + i32.const 35616 + i32.const 35664 i32.const 1 i32.const 1 call $~lib/builtins/abort @@ -18757,11 +19004,11 @@ i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 2496 + i32.const 2816 i32.lt_s if - i32.const 35296 - i32.const 35344 + i32.const 35616 + i32.const 35664 i32.const 1 i32.const 1 call $~lib/builtins/abort @@ -18848,7 +19095,7 @@ global.set $~lib/memory/__stack_pointer block $folding-inner1 global.get $~lib/memory/__stack_pointer - i32.const 2496 + i32.const 2816 i32.lt_s br_if $folding-inner1 global.get $~lib/memory/__stack_pointer @@ -19061,7 +19308,7 @@ i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 2496 + i32.const 2816 i32.lt_s br_if $folding-inner1 global.get $~lib/memory/__stack_pointer @@ -19085,7 +19332,7 @@ i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 2496 + i32.const 2816 i32.lt_s br_if $folding-inner1 global.get $~lib/memory/__stack_pointer @@ -19252,7 +19499,7 @@ i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 2496 + i32.const 2816 i32.lt_s br_if $folding-inner1 global.get $~lib/memory/__stack_pointer @@ -19353,7 +19600,7 @@ i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 2496 + i32.const 2816 i32.lt_s br_if $folding-inner1 global.get $~lib/memory/__stack_pointer @@ -19674,7 +19921,7 @@ end global.get $~lib/memory/__stack_pointer i32.const 45 - i32.const 2096 + i32.const 2288 call $~lib/rt/__newArray local.tee $0 i32.store offset=24 @@ -19694,7 +19941,7 @@ i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 2496 + i32.const 2816 i32.lt_s br_if $folding-inner1 global.get $~lib/memory/__stack_pointer @@ -19778,7 +20025,7 @@ if i32.const 0 i32.const 1744 - i32.const 74 + i32.const 75 i32.const 3 call $~lib/builtins/abort unreachable @@ -19800,7 +20047,7 @@ if i32.const 0 i32.const 1744 - i32.const 76 + i32.const 77 i32.const 5 call $~lib/builtins/abort unreachable @@ -19819,7 +20066,7 @@ if i32.const 0 i32.const 1744 - i32.const 77 + i32.const 78 i32.const 5 call $~lib/builtins/abort unreachable @@ -19839,7 +20086,7 @@ if i32.const 0 i32.const 1744 - i32.const 79 + i32.const 80 i32.const 5 call $~lib/builtins/abort unreachable @@ -19859,7 +20106,32 @@ if i32.const 0 i32.const 1744 - i32.const 81 + i32.const 82 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + i32.const 45 + i32.const 2320 + call $~lib/rt/__newArray + local.set $2 + global.get $~lib/memory/__stack_pointer + local.get $2 + i32.store offset=4 + local.get $2 + call $"~lib/map/Map#constructor" + local.tee $0 + i32.store + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + local.get $0 + call $"~lib/map/Map#get:size" + if + i32.const 0 + i32.const 1744 + i32.const 85 i32.const 3 call $~lib/builtins/abort unreachable @@ -19870,8 +20142,8 @@ global.set $~lib/memory/__stack_pointer return end - i32.const 35296 - i32.const 35344 + i32.const 35616 + i32.const 35664 i32.const 1 i32.const 1 call $~lib/builtins/abort @@ -19891,11 +20163,11 @@ i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 2496 + i32.const 2816 i32.lt_s if - i32.const 35296 - i32.const 35344 + i32.const 35616 + i32.const 35664 i32.const 1 i32.const 1 call $~lib/builtins/abort @@ -20092,11 +20364,11 @@ i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 2496 + i32.const 2816 i32.lt_s if - i32.const 35296 - i32.const 35344 + i32.const 35616 + i32.const 35664 i32.const 1 i32.const 1 call $~lib/builtins/abort @@ -20167,16 +20439,17 @@ (local $5 i32) (local $6 i32) (local $7 i32) + (local $8 i32) global.get $~lib/memory/__stack_pointer i32.const 16 i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 2496 + i32.const 2816 i32.lt_s if - i32.const 35296 - i32.const 35344 + i32.const 35616 + i32.const 35664 i32.const 1 i32.const 1 call $~lib/builtins/abort @@ -20251,207 +20524,217 @@ i32.const 0 i32.store offset=20 local.get $0 - if + if (result i32) global.get $~lib/memory/__stack_pointer local.get $0 i32.store offset=4 local.get $0 call $"~lib/array/Array<~lib/map/KeyValue>#get:length" + else + i32.const 0 + end + i32.eqz + if + global.get $~lib/memory/__stack_pointer + i32.const 16 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $1 + return + end + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + local.get $0 + call $"~lib/array/Array<~lib/map/KeyValue>#get:length" + local.set $5 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + local.get $5 + local.get $1 + i32.load offset=12 + i32.ge_s + if global.get $~lib/memory/__stack_pointer local.get $1 i32.store offset=4 local.get $1 - i32.load offset=12 - i32.ge_s + local.get $5 + i32.store offset=4 + end + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=8 + local.get $1 + local.get $1 + i32.load offset=4 + i32.const 1 + i32.shl + i32.const 1 + i32.or + call $"~lib/map/Map#rehash" + loop $for-loop|0 + local.get $2 + local.get $5 + i32.lt_s if - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 global.get $~lib/memory/__stack_pointer local.get $0 i32.store offset=8 - local.get $1 local.get $0 - call $"~lib/array/Array<~lib/map/KeyValue>#get:length" + local.get $2 + call $"~lib/array/Array<~lib/map/KeyValue>#__get" + local.set $4 + global.get $~lib/memory/__stack_pointer + local.get $4 i32.store offset=4 - end - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=8 - local.get $1 - local.get $1 - i32.load offset=4 - i32.const 1 - i32.shl - i32.const 1 - i32.or - call $"~lib/map/Map#rehash" - loop $for-loop|0 + local.get $4 + i64.load + local.set $3 global.get $~lib/memory/__stack_pointer local.get $0 - i32.store offset=4 + i32.store offset=8 local.get $0 - call $"~lib/array/Array<~lib/map/KeyValue>#get:length" local.get $2 - i32.gt_s + call $"~lib/array/Array<~lib/map/KeyValue>#__get" + local.set $4 + global.get $~lib/memory/__stack_pointer + local.get $4 + i32.store offset=4 + local.get $4 + i32.load offset=8 + local.set $6 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + local.get $1 + local.get $3 + local.get $3 + i32.wrap_i64 + i32.const -1028477379 + i32.mul + i32.const 374761401 + i32.add + i32.const 17 + i32.rotl + i32.const 668265263 + i32.mul + local.get $3 + i64.const 32 + i64.shr_u + i32.wrap_i64 + i32.const -1028477379 + i32.mul + i32.add + i32.const 17 + i32.rotl + i32.const 668265263 + i32.mul + local.tee $4 + i32.const 15 + i32.shr_u + local.get $4 + i32.xor + i32.const -2048144777 + i32.mul + local.tee $4 + i32.const 13 + i32.shr_u + local.get $4 + i32.xor + i32.const -1028477379 + i32.mul + local.tee $4 + i32.const 16 + i32.shr_u + local.get $4 + i32.xor + local.tee $7 + call $"~lib/map/Map#find" + local.tee $4 if - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=8 - local.get $0 - local.get $2 - call $"~lib/array/Array<~lib/map/KeyValue>#__get" - local.set $4 - global.get $~lib/memory/__stack_pointer - local.get $4 - i32.store offset=4 local.get $4 - i64.load - local.set $3 - global.get $~lib/memory/__stack_pointer - local.get $0 + local.get $6 i32.store offset=8 - local.get $0 - local.get $2 - call $"~lib/array/Array<~lib/map/KeyValue>#__get" - local.set $4 + else global.get $~lib/memory/__stack_pointer - local.get $4 + local.get $1 i32.store offset=4 - local.get $4 + global.get $~lib/memory/__stack_pointer + local.get $1 i32.load offset=8 - local.set $5 + local.tee $8 + i32.store offset=12 global.get $~lib/memory/__stack_pointer local.get $1 i32.store offset=4 + global.get $~lib/memory/__stack_pointer local.get $1 - local.get $3 - local.get $3 - i32.wrap_i64 - i32.const -1028477379 - i32.mul - i32.const 374761401 - i32.add - i32.const 17 - i32.rotl - i32.const 668265263 - i32.mul - local.get $3 - i64.const 32 - i64.shr_u - i32.wrap_i64 - i32.const -1028477379 - i32.mul - i32.add - i32.const 17 - i32.rotl - i32.const 668265263 - i32.mul - local.tee $4 - i32.const 15 - i32.shr_u - local.get $4 - i32.xor - i32.const -2048144777 - i32.mul - local.tee $4 - i32.const 13 - i32.shr_u - local.get $4 - i32.xor - i32.const -1028477379 - i32.mul + i32.store offset=8 + local.get $1 + local.get $1 + i32.load offset=16 local.tee $4 - i32.const 16 - i32.shr_u + i32.const 1 + i32.add + i32.store offset=16 + local.get $8 local.get $4 - i32.xor - local.tee $6 - call $"~lib/map/Map#find" + i32.const 4 + i32.shl + i32.add local.tee $4 - if - local.get $4 - local.get $5 - i32.store offset=8 - else - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.load offset=8 - local.tee $4 - i32.store offset=12 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=8 - local.get $1 - local.get $1 - i32.load offset=16 - local.tee $7 - i32.const 1 - i32.add - i32.store offset=16 - local.get $4 - local.get $7 - i32.const 4 - i32.shl - i32.add - local.tee $4 - local.get $3 - i64.store - local.get $4 - local.get $5 - i32.store offset=8 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=8 - local.get $1 - local.get $1 - i32.load offset=20 - i32.const 1 - i32.add - i32.store offset=20 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - local.get $1 - i32.load - local.set $5 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - local.get $4 - local.get $5 - local.get $6 - local.get $1 - i32.load offset=4 - i32.and - i32.const 2 - i32.shl - i32.add - local.tee $5 - i32.load - i32.store offset=12 - local.get $5 - local.get $4 - i32.store - end - local.get $2 + local.get $3 + i64.store + local.get $4 + local.get $6 + i32.store offset=8 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=8 + local.get $1 + local.get $1 + i32.load offset=20 i32.const 1 i32.add - local.set $2 - br $for-loop|0 + i32.store offset=20 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + local.get $1 + i32.load + local.set $6 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + local.get $4 + local.get $6 + local.get $7 + local.get $1 + i32.load offset=4 + i32.and + i32.const 2 + i32.shl + i32.add + local.tee $6 + i32.load + i32.store offset=12 + local.get $6 + local.get $4 + i32.store end + local.get $2 + i32.const 1 + i32.add + local.set $2 + br $for-loop|0 end end global.get $~lib/memory/__stack_pointer @@ -20466,11 +20749,11 @@ i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 2496 + i32.const 2816 i32.lt_s if - i32.const 35296 - i32.const 35344 + i32.const 35616 + i32.const 35664 i32.const 1 i32.const 1 call $~lib/builtins/abort @@ -20541,11 +20824,11 @@ i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 2496 + i32.const 2816 i32.lt_s if - i32.const 35296 - i32.const 35344 + i32.const 35616 + i32.const 35664 i32.const 1 i32.const 1 call $~lib/builtins/abort @@ -20742,11 +21025,11 @@ i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 2496 + i32.const 2816 i32.lt_s if - i32.const 35296 - i32.const 35344 + i32.const 35616 + i32.const 35664 i32.const 1 i32.const 1 call $~lib/builtins/abort @@ -20806,7 +21089,7 @@ if i32.const 1792 i32.const 1856 - i32.const 146 + i32.const 147 i32.const 17 call $~lib/builtins/abort unreachable @@ -20835,7 +21118,7 @@ global.set $~lib/memory/__stack_pointer block $folding-inner0 global.get $~lib/memory/__stack_pointer - i32.const 2496 + i32.const 2816 i32.lt_s br_if $folding-inner0 global.get $~lib/memory/__stack_pointer @@ -20893,7 +21176,7 @@ i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 2496 + i32.const 2816 i32.lt_s br_if $folding-inner0 global.get $~lib/memory/__stack_pointer @@ -21013,7 +21296,7 @@ i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 2496 + i32.const 2816 i32.lt_s br_if $folding-inner0 global.get $~lib/memory/__stack_pointer @@ -21275,8 +21558,8 @@ global.set $~lib/memory/__stack_pointer return end - i32.const 35296 - i32.const 35344 + i32.const 35616 + i32.const 35664 i32.const 1 i32.const 1 call $~lib/builtins/abort @@ -21290,11 +21573,11 @@ i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 2496 + i32.const 2816 i32.lt_s if - i32.const 35296 - i32.const 35344 + i32.const 35616 + i32.const 35664 i32.const 1 i32.const 1 call $~lib/builtins/abort @@ -21448,7 +21731,7 @@ global.set $~lib/memory/__stack_pointer block $folding-inner1 global.get $~lib/memory/__stack_pointer - i32.const 2496 + i32.const 2816 i32.lt_s br_if $folding-inner1 global.get $~lib/memory/__stack_pointer @@ -21661,7 +21944,7 @@ i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 2496 + i32.const 2816 i32.lt_s br_if $folding-inner1 global.get $~lib/memory/__stack_pointer @@ -21685,7 +21968,7 @@ i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 2496 + i32.const 2816 i32.lt_s br_if $folding-inner1 global.get $~lib/memory/__stack_pointer @@ -21852,7 +22135,7 @@ i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 2496 + i32.const 2816 i32.lt_s br_if $folding-inner1 global.get $~lib/memory/__stack_pointer @@ -21953,7 +22236,7 @@ i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 2496 + i32.const 2816 i32.lt_s br_if $folding-inner1 global.get $~lib/memory/__stack_pointer @@ -22274,7 +22557,7 @@ end global.get $~lib/memory/__stack_pointer i32.const 52 - i32.const 2128 + i32.const 2352 call $~lib/rt/__newArray local.tee $0 i32.store offset=24 @@ -22294,7 +22577,7 @@ i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 2496 + i32.const 2816 i32.lt_s br_if $folding-inner1 global.get $~lib/memory/__stack_pointer @@ -22378,7 +22661,7 @@ if i32.const 0 i32.const 1744 - i32.const 74 + i32.const 75 i32.const 3 call $~lib/builtins/abort unreachable @@ -22400,7 +22683,7 @@ if i32.const 0 i32.const 1744 - i32.const 76 + i32.const 77 i32.const 5 call $~lib/builtins/abort unreachable @@ -22419,7 +22702,7 @@ if i32.const 0 i32.const 1744 - i32.const 77 + i32.const 78 i32.const 5 call $~lib/builtins/abort unreachable @@ -22439,7 +22722,7 @@ if i32.const 0 i32.const 1744 - i32.const 79 + i32.const 80 i32.const 5 call $~lib/builtins/abort unreachable @@ -22459,7 +22742,32 @@ if i32.const 0 i32.const 1744 - i32.const 81 + i32.const 82 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + i32.const 52 + i32.const 2384 + call $~lib/rt/__newArray + local.set $2 + global.get $~lib/memory/__stack_pointer + local.get $2 + i32.store offset=4 + local.get $2 + call $"~lib/map/Map#constructor" + local.tee $0 + i32.store + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + local.get $0 + call $"~lib/map/Map#get:size" + if + i32.const 0 + i32.const 1744 + i32.const 85 i32.const 3 call $~lib/builtins/abort unreachable @@ -22470,8 +22778,8 @@ global.set $~lib/memory/__stack_pointer return end - i32.const 35296 - i32.const 35344 + i32.const 35616 + i32.const 35664 i32.const 1 i32.const 1 call $~lib/builtins/abort @@ -22491,11 +22799,11 @@ i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 2496 + i32.const 2816 i32.lt_s if - i32.const 35296 - i32.const 35344 + i32.const 35616 + i32.const 35664 i32.const 1 i32.const 1 call $~lib/builtins/abort @@ -22681,11 +22989,11 @@ i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 2496 + i32.const 2816 i32.lt_s if - i32.const 35296 - i32.const 35344 + i32.const 35616 + i32.const 35664 i32.const 1 i32.const 1 call $~lib/builtins/abort @@ -22756,16 +23064,17 @@ (local $5 i32) (local $6 i32) (local $7 i32) + (local $8 i32) global.get $~lib/memory/__stack_pointer i32.const 16 i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 2496 + i32.const 2816 i32.lt_s if - i32.const 35296 - i32.const 35344 + i32.const 35616 + i32.const 35664 i32.const 1 i32.const 1 call $~lib/builtins/abort @@ -22840,196 +23149,206 @@ i32.const 0 i32.store offset=20 local.get $0 - if + if (result i32) global.get $~lib/memory/__stack_pointer local.get $0 i32.store offset=4 local.get $0 call $"~lib/array/Array<~lib/map/KeyValue>#get:length" + else + i32.const 0 + end + i32.eqz + if + global.get $~lib/memory/__stack_pointer + i32.const 16 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $1 + return + end + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + local.get $0 + call $"~lib/array/Array<~lib/map/KeyValue>#get:length" + local.set $5 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + local.get $5 + local.get $1 + i32.load offset=12 + i32.ge_s + if global.get $~lib/memory/__stack_pointer local.get $1 i32.store offset=4 local.get $1 - i32.load offset=12 - i32.ge_s + local.get $5 + i32.store offset=4 + end + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=8 + local.get $1 + local.get $1 + i32.load offset=4 + i32.const 1 + i32.shl + i32.const 1 + i32.or + call $"~lib/map/Map#rehash" + loop $for-loop|0 + local.get $2 + local.get $5 + i32.lt_s if - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 global.get $~lib/memory/__stack_pointer local.get $0 i32.store offset=8 - local.get $1 local.get $0 - call $"~lib/array/Array<~lib/map/KeyValue>#get:length" + local.get $2 + call $"~lib/array/Array<~lib/map/KeyValue>#__get" + local.set $4 + global.get $~lib/memory/__stack_pointer + local.get $4 i32.store offset=4 - end - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=8 - local.get $1 - local.get $1 - i32.load offset=4 - i32.const 1 - i32.shl - i32.const 1 - i32.or - call $"~lib/map/Map#rehash" - loop $for-loop|0 + local.get $4 + f32.load + local.set $3 global.get $~lib/memory/__stack_pointer local.get $0 - i32.store offset=4 + i32.store offset=8 local.get $0 - call $"~lib/array/Array<~lib/map/KeyValue>#get:length" local.get $2 - i32.gt_s - if - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=8 - local.get $0 - local.get $2 - call $"~lib/array/Array<~lib/map/KeyValue>#__get" - local.set $4 - global.get $~lib/memory/__stack_pointer + call $"~lib/array/Array<~lib/map/KeyValue>#__get" + local.set $4 + global.get $~lib/memory/__stack_pointer + local.get $4 + i32.store offset=4 + local.get $4 + i32.load offset=4 + local.set $6 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + local.get $1 + local.get $3 + local.get $3 + i32.reinterpret_f32 + i32.const -1028477379 + i32.mul + i32.const 374761397 + i32.add + i32.const 17 + i32.rotl + i32.const 668265263 + i32.mul + local.tee $4 + i32.const 15 + i32.shr_u + local.get $4 + i32.xor + i32.const -2048144777 + i32.mul + local.tee $4 + i32.const 13 + i32.shr_u + local.get $4 + i32.xor + i32.const -1028477379 + i32.mul + local.tee $4 + i32.const 16 + i32.shr_u + local.get $4 + i32.xor + local.tee $7 + call $"~lib/map/Map#find" + local.tee $4 + if local.get $4 + local.get $6 i32.store offset=4 - local.get $4 - f32.load - local.set $3 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=8 - local.get $0 - local.get $2 - call $"~lib/array/Array<~lib/map/KeyValue>#__get" - local.set $4 + else global.get $~lib/memory/__stack_pointer - local.get $4 + local.get $1 i32.store offset=4 - local.get $4 - i32.load offset=4 - local.set $5 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.load offset=8 + local.tee $8 + i32.store offset=12 global.get $~lib/memory/__stack_pointer local.get $1 i32.store offset=4 + global.get $~lib/memory/__stack_pointer local.get $1 - local.get $3 - local.get $3 - i32.reinterpret_f32 - i32.const -1028477379 - i32.mul - i32.const 374761397 - i32.add - i32.const 17 - i32.rotl - i32.const 668265263 - i32.mul - local.tee $4 - i32.const 15 - i32.shr_u - local.get $4 - i32.xor - i32.const -2048144777 - i32.mul + i32.store offset=8 + local.get $1 + local.get $1 + i32.load offset=16 local.tee $4 - i32.const 13 - i32.shr_u + i32.const 1 + i32.add + i32.store offset=16 + local.get $8 local.get $4 - i32.xor - i32.const -1028477379 + i32.const 12 i32.mul + i32.add local.tee $4 - i32.const 16 - i32.shr_u + local.get $3 + f32.store local.get $4 - i32.xor - local.tee $6 - call $"~lib/map/Map#find" - local.tee $4 - if - local.get $4 - local.get $5 - i32.store offset=4 - else - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.load offset=8 - local.tee $4 - i32.store offset=12 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=8 - local.get $1 - local.get $1 - i32.load offset=16 - local.tee $7 - i32.const 1 - i32.add - i32.store offset=16 - local.get $4 - local.get $7 - i32.const 12 - i32.mul - i32.add - local.tee $4 - local.get $3 - f32.store - local.get $4 - local.get $5 - i32.store offset=4 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=8 - local.get $1 - local.get $1 - i32.load offset=20 - i32.const 1 - i32.add - i32.store offset=20 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - local.get $1 - i32.load - local.set $5 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - local.get $4 - local.get $5 - local.get $6 - local.get $1 - i32.load offset=4 - i32.and - i32.const 2 - i32.shl - i32.add - local.tee $5 - i32.load - i32.store offset=8 - local.get $5 - local.get $4 - i32.store - end - local.get $2 + local.get $6 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=8 + local.get $1 + local.get $1 + i32.load offset=20 i32.const 1 i32.add - local.set $2 - br $for-loop|0 + i32.store offset=20 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + local.get $1 + i32.load + local.set $6 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + local.get $4 + local.get $6 + local.get $7 + local.get $1 + i32.load offset=4 + i32.and + i32.const 2 + i32.shl + i32.add + local.tee $6 + i32.load + i32.store offset=8 + local.get $6 + local.get $4 + i32.store end + local.get $2 + i32.const 1 + i32.add + local.set $2 + br $for-loop|0 end end global.get $~lib/memory/__stack_pointer @@ -23044,11 +23363,11 @@ i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 2496 + i32.const 2816 i32.lt_s if - i32.const 35296 - i32.const 35344 + i32.const 35616 + i32.const 35664 i32.const 1 i32.const 1 call $~lib/builtins/abort @@ -23108,11 +23427,11 @@ i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 2496 + i32.const 2816 i32.lt_s if - i32.const 35296 - i32.const 35344 + i32.const 35616 + i32.const 35664 i32.const 1 i32.const 1 call $~lib/builtins/abort @@ -23298,11 +23617,11 @@ i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 2496 + i32.const 2816 i32.lt_s if - i32.const 35296 - i32.const 35344 + i32.const 35616 + i32.const 35664 i32.const 1 i32.const 1 call $~lib/builtins/abort @@ -23351,7 +23670,7 @@ if i32.const 1792 i32.const 1856 - i32.const 146 + i32.const 147 i32.const 17 call $~lib/builtins/abort unreachable @@ -23377,7 +23696,7 @@ global.set $~lib/memory/__stack_pointer block $folding-inner1 global.get $~lib/memory/__stack_pointer - i32.const 2496 + i32.const 2816 i32.lt_s br_if $folding-inner1 global.get $~lib/memory/__stack_pointer @@ -23401,7 +23720,7 @@ i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 2496 + i32.const 2816 i32.lt_s br_if $folding-inner1 global.get $~lib/memory/__stack_pointer @@ -23538,7 +23857,7 @@ i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 2496 + i32.const 2816 i32.lt_s br_if $folding-inner1 global.get $~lib/memory/__stack_pointer @@ -23614,8 +23933,8 @@ local.get $6 return end - i32.const 35296 - i32.const 35344 + i32.const 35616 + i32.const 35664 i32.const 1 i32.const 1 call $~lib/builtins/abort @@ -23638,7 +23957,7 @@ global.set $~lib/memory/__stack_pointer block $folding-inner0 global.get $~lib/memory/__stack_pointer - i32.const 2496 + i32.const 2816 i32.lt_s br_if $folding-inner0 global.get $~lib/memory/__stack_pointer @@ -23742,7 +24061,7 @@ i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 2496 + i32.const 2816 i32.lt_s br_if $folding-inner0 global.get $~lib/memory/__stack_pointer @@ -23993,8 +24312,8 @@ global.set $~lib/memory/__stack_pointer return end - i32.const 35296 - i32.const 35344 + i32.const 35616 + i32.const 35664 i32.const 1 i32.const 1 call $~lib/builtins/abort @@ -24008,11 +24327,11 @@ i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 2496 + i32.const 2816 i32.lt_s if - i32.const 35296 - i32.const 35344 + i32.const 35616 + i32.const 35664 i32.const 1 i32.const 1 call $~lib/builtins/abort @@ -24153,7 +24472,7 @@ global.set $~lib/memory/__stack_pointer block $folding-inner1 global.get $~lib/memory/__stack_pointer - i32.const 2496 + i32.const 2816 i32.lt_s br_if $folding-inner1 global.get $~lib/memory/__stack_pointer @@ -24379,7 +24698,7 @@ i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 2496 + i32.const 2816 i32.lt_s br_if $folding-inner1 global.get $~lib/memory/__stack_pointer @@ -24478,7 +24797,7 @@ i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 2496 + i32.const 2816 i32.lt_s br_if $folding-inner1 global.get $~lib/memory/__stack_pointer @@ -24799,7 +25118,7 @@ end global.get $~lib/memory/__stack_pointer i32.const 59 - i32.const 2160 + i32.const 2416 call $~lib/rt/__newArray local.tee $0 i32.store offset=24 @@ -24819,7 +25138,7 @@ i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 2496 + i32.const 2816 i32.lt_s br_if $folding-inner1 global.get $~lib/memory/__stack_pointer @@ -24903,7 +25222,7 @@ if i32.const 0 i32.const 1744 - i32.const 74 + i32.const 75 i32.const 3 call $~lib/builtins/abort unreachable @@ -24925,7 +25244,7 @@ if i32.const 0 i32.const 1744 - i32.const 76 + i32.const 77 i32.const 5 call $~lib/builtins/abort unreachable @@ -24944,7 +25263,7 @@ if i32.const 0 i32.const 1744 - i32.const 77 + i32.const 78 i32.const 5 call $~lib/builtins/abort unreachable @@ -24964,7 +25283,7 @@ if i32.const 0 i32.const 1744 - i32.const 79 + i32.const 80 i32.const 5 call $~lib/builtins/abort unreachable @@ -24984,7 +25303,32 @@ if i32.const 0 i32.const 1744 - i32.const 81 + i32.const 82 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + i32.const 59 + i32.const 2448 + call $~lib/rt/__newArray + local.set $2 + global.get $~lib/memory/__stack_pointer + local.get $2 + i32.store offset=4 + local.get $2 + call $"~lib/map/Map#constructor" + local.tee $0 + i32.store + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + local.get $0 + call $"~lib/map/Map#get:size" + if + i32.const 0 + i32.const 1744 + i32.const 85 i32.const 3 call $~lib/builtins/abort unreachable @@ -24995,8 +25339,8 @@ global.set $~lib/memory/__stack_pointer return end - i32.const 35296 - i32.const 35344 + i32.const 35616 + i32.const 35664 i32.const 1 i32.const 1 call $~lib/builtins/abort @@ -25017,11 +25361,11 @@ i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 2496 + i32.const 2816 i32.lt_s if - i32.const 35296 - i32.const 35344 + i32.const 35616 + i32.const 35664 i32.const 1 i32.const 1 call $~lib/builtins/abort @@ -25220,11 +25564,11 @@ i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 2496 + i32.const 2816 i32.lt_s if - i32.const 35296 - i32.const 35344 + i32.const 35616 + i32.const 35664 i32.const 1 i32.const 1 call $~lib/builtins/abort @@ -25296,16 +25640,17 @@ (local $6 i32) (local $7 i32) (local $8 i32) + (local $9 i32) global.get $~lib/memory/__stack_pointer i32.const 16 i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 2496 + i32.const 2816 i32.lt_s if - i32.const 35296 - i32.const 35344 + i32.const 35616 + i32.const 35664 i32.const 1 i32.const 1 call $~lib/builtins/abort @@ -25380,209 +25725,219 @@ i32.const 0 i32.store offset=20 local.get $0 - if + if (result i32) global.get $~lib/memory/__stack_pointer local.get $0 i32.store offset=4 local.get $0 call $"~lib/array/Array<~lib/map/KeyValue>#get:length" + else + i32.const 0 + end + i32.eqz + if global.get $~lib/memory/__stack_pointer + i32.const 16 + i32.add + global.set $~lib/memory/__stack_pointer local.get $1 - i32.store offset=4 - local.get $1 - i32.load offset=12 - i32.ge_s - if - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=8 - local.get $1 - local.get $0 - call $"~lib/array/Array<~lib/map/KeyValue>#get:length" - i32.store offset=4 - end + return + end + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + local.get $0 + call $"~lib/array/Array<~lib/map/KeyValue>#get:length" + local.set $6 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + local.get $6 + local.get $1 + i32.load offset=12 + i32.ge_s + if global.get $~lib/memory/__stack_pointer local.get $1 i32.store offset=4 - global.get $~lib/memory/__stack_pointer local.get $1 - i32.store offset=8 - local.get $1 - local.get $1 - i32.load offset=4 - i32.const 1 - i32.shl - i32.const 1 - i32.or - call $"~lib/map/Map#rehash" - loop $for-loop|0 + local.get $6 + i32.store offset=4 + end + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=8 + local.get $1 + local.get $1 + i32.load offset=4 + i32.const 1 + i32.shl + i32.const 1 + i32.or + call $"~lib/map/Map#rehash" + loop $for-loop|0 + local.get $2 + local.get $6 + i32.lt_s + if global.get $~lib/memory/__stack_pointer local.get $0 + i32.store offset=8 + local.get $0 + local.get $2 + call $"~lib/array/Array<~lib/map/KeyValue>#__get" + local.set $5 + global.get $~lib/memory/__stack_pointer + local.get $5 i32.store offset=4 + local.get $5 + f64.load + local.set $3 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=8 local.get $0 - call $"~lib/array/Array<~lib/map/KeyValue>#get:length" local.get $2 - i32.gt_s + call $"~lib/array/Array<~lib/map/KeyValue>#__get" + local.set $5 + global.get $~lib/memory/__stack_pointer + local.get $5 + i32.store offset=4 + local.get $5 + i32.load offset=8 + local.set $7 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + local.get $1 + local.get $3 + local.get $3 + i64.reinterpret_f64 + local.tee $4 + i32.wrap_i64 + i32.const -1028477379 + i32.mul + i32.const 374761401 + i32.add + i32.const 17 + i32.rotl + i32.const 668265263 + i32.mul + local.get $4 + i64.const 32 + i64.shr_u + i32.wrap_i64 + i32.const -1028477379 + i32.mul + i32.add + i32.const 17 + i32.rotl + i32.const 668265263 + i32.mul + local.tee $5 + i32.const 15 + i32.shr_u + local.get $5 + i32.xor + i32.const -2048144777 + i32.mul + local.tee $5 + i32.const 13 + i32.shr_u + local.get $5 + i32.xor + i32.const -1028477379 + i32.mul + local.tee $5 + i32.const 16 + i32.shr_u + local.get $5 + i32.xor + local.tee $8 + call $"~lib/map/Map#find" + local.tee $5 if - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=8 - local.get $0 - local.get $2 - call $"~lib/array/Array<~lib/map/KeyValue>#__get" - local.set $5 - global.get $~lib/memory/__stack_pointer - local.get $5 - i32.store offset=4 local.get $5 - f64.load - local.set $3 - global.get $~lib/memory/__stack_pointer - local.get $0 + local.get $7 i32.store offset=8 - local.get $0 - local.get $2 - call $"~lib/array/Array<~lib/map/KeyValue>#__get" - local.set $5 + else global.get $~lib/memory/__stack_pointer - local.get $5 + local.get $1 i32.store offset=4 - local.get $5 + global.get $~lib/memory/__stack_pointer + local.get $1 i32.load offset=8 - local.set $6 + local.tee $9 + i32.store offset=12 global.get $~lib/memory/__stack_pointer local.get $1 i32.store offset=4 + global.get $~lib/memory/__stack_pointer local.get $1 - local.get $3 - local.get $3 - i64.reinterpret_f64 - local.tee $4 - i32.wrap_i64 - i32.const -1028477379 - i32.mul - i32.const 374761401 - i32.add - i32.const 17 - i32.rotl - i32.const 668265263 - i32.mul - local.get $4 - i64.const 32 - i64.shr_u - i32.wrap_i64 - i32.const -1028477379 - i32.mul - i32.add - i32.const 17 - i32.rotl - i32.const 668265263 - i32.mul - local.tee $5 - i32.const 15 - i32.shr_u - local.get $5 - i32.xor - i32.const -2048144777 - i32.mul + i32.store offset=8 + local.get $1 + local.get $1 + i32.load offset=16 local.tee $5 - i32.const 13 - i32.shr_u + i32.const 1 + i32.add + i32.store offset=16 + local.get $9 local.get $5 - i32.xor - i32.const -1028477379 - i32.mul + i32.const 4 + i32.shl + i32.add local.tee $5 - i32.const 16 - i32.shr_u + local.get $3 + f64.store local.get $5 - i32.xor - local.tee $7 - call $"~lib/map/Map#find" - local.tee $5 - if - local.get $5 - local.get $6 - i32.store offset=8 - else - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.load offset=8 - local.tee $5 - i32.store offset=12 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=8 - local.get $1 - local.get $1 - i32.load offset=16 - local.tee $8 - i32.const 1 - i32.add - i32.store offset=16 - local.get $5 - local.get $8 - i32.const 4 - i32.shl - i32.add - local.tee $5 - local.get $3 - f64.store - local.get $5 - local.get $6 - i32.store offset=8 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=8 - local.get $1 - local.get $1 - i32.load offset=20 - i32.const 1 - i32.add - i32.store offset=20 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - local.get $1 - i32.load - local.set $6 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - local.get $5 - local.get $6 - local.get $7 - local.get $1 - i32.load offset=4 - i32.and - i32.const 2 - i32.shl - i32.add - local.tee $6 - i32.load - i32.store offset=12 - local.get $6 - local.get $5 - i32.store - end - local.get $2 + local.get $7 + i32.store offset=8 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=8 + local.get $1 + local.get $1 + i32.load offset=20 i32.const 1 i32.add - local.set $2 - br $for-loop|0 + i32.store offset=20 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + local.get $1 + i32.load + local.set $7 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + local.get $5 + local.get $7 + local.get $8 + local.get $1 + i32.load offset=4 + i32.and + i32.const 2 + i32.shl + i32.add + local.tee $7 + i32.load + i32.store offset=12 + local.get $7 + local.get $5 + i32.store end + local.get $2 + i32.const 1 + i32.add + local.set $2 + br $for-loop|0 end end global.get $~lib/memory/__stack_pointer @@ -25598,11 +25953,11 @@ i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 2496 + i32.const 2816 i32.lt_s if - i32.const 35296 - i32.const 35344 + i32.const 35616 + i32.const 35664 i32.const 1 i32.const 1 call $~lib/builtins/abort @@ -25676,11 +26031,11 @@ i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 2496 + i32.const 2816 i32.lt_s if - i32.const 35296 - i32.const 35344 + i32.const 35616 + i32.const 35664 i32.const 1 i32.const 1 call $~lib/builtins/abort @@ -25880,11 +26235,11 @@ i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 2496 + i32.const 2816 i32.lt_s if - i32.const 35296 - i32.const 35344 + i32.const 35616 + i32.const 35664 i32.const 1 i32.const 1 call $~lib/builtins/abort @@ -25946,7 +26301,7 @@ if i32.const 1792 i32.const 1856 - i32.const 146 + i32.const 147 i32.const 17 call $~lib/builtins/abort unreachable @@ -25972,7 +26327,7 @@ global.set $~lib/memory/__stack_pointer block $folding-inner1 global.get $~lib/memory/__stack_pointer - i32.const 2496 + i32.const 2816 i32.lt_s br_if $folding-inner1 global.get $~lib/memory/__stack_pointer @@ -25996,7 +26351,7 @@ i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 2496 + i32.const 2816 i32.lt_s br_if $folding-inner1 global.get $~lib/memory/__stack_pointer @@ -26133,7 +26488,7 @@ i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 2496 + i32.const 2816 i32.lt_s br_if $folding-inner1 global.get $~lib/memory/__stack_pointer @@ -26209,8 +26564,8 @@ local.get $6 return end - i32.const 35296 - i32.const 35344 + i32.const 35616 + i32.const 35664 i32.const 1 i32.const 1 call $~lib/builtins/abort @@ -26234,7 +26589,7 @@ global.set $~lib/memory/__stack_pointer block $folding-inner0 global.get $~lib/memory/__stack_pointer - i32.const 2496 + i32.const 2816 i32.lt_s br_if $folding-inner0 global.get $~lib/memory/__stack_pointer @@ -26294,7 +26649,7 @@ i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 2496 + i32.const 2816 i32.lt_s br_if $folding-inner0 global.get $~lib/memory/__stack_pointer @@ -26414,7 +26769,7 @@ i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 2496 + i32.const 2816 i32.lt_s br_if $folding-inner0 global.get $~lib/memory/__stack_pointer @@ -26678,8 +27033,8 @@ global.set $~lib/memory/__stack_pointer return end - i32.const 35296 - i32.const 35344 + i32.const 35616 + i32.const 35664 i32.const 1 i32.const 1 call $~lib/builtins/abort @@ -26694,11 +27049,11 @@ i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 2496 + i32.const 2816 i32.lt_s if - i32.const 35296 - i32.const 35344 + i32.const 35616 + i32.const 35664 i32.const 1 i32.const 1 call $~lib/builtins/abort @@ -26852,7 +27207,7 @@ global.set $~lib/memory/__stack_pointer block $folding-inner1 global.get $~lib/memory/__stack_pointer - i32.const 2496 + i32.const 2816 i32.lt_s br_if $folding-inner1 global.get $~lib/memory/__stack_pointer @@ -27078,7 +27433,7 @@ i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 2496 + i32.const 2816 i32.lt_s br_if $folding-inner1 global.get $~lib/memory/__stack_pointer @@ -27177,7 +27532,7 @@ i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 2496 + i32.const 2816 i32.lt_s br_if $folding-inner1 global.get $~lib/memory/__stack_pointer @@ -27498,7 +27853,7 @@ end global.get $~lib/memory/__stack_pointer i32.const 66 - i32.const 2192 + i32.const 2480 call $~lib/rt/__newArray local.tee $0 i32.store offset=24 @@ -27518,7 +27873,7 @@ i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 2496 + i32.const 2816 i32.lt_s br_if $folding-inner1 global.get $~lib/memory/__stack_pointer @@ -27602,7 +27957,7 @@ if i32.const 0 i32.const 1744 - i32.const 74 + i32.const 75 i32.const 3 call $~lib/builtins/abort unreachable @@ -27624,7 +27979,7 @@ if i32.const 0 i32.const 1744 - i32.const 76 + i32.const 77 i32.const 5 call $~lib/builtins/abort unreachable @@ -27643,7 +27998,7 @@ if i32.const 0 i32.const 1744 - i32.const 77 + i32.const 78 i32.const 5 call $~lib/builtins/abort unreachable @@ -27663,7 +28018,7 @@ if i32.const 0 i32.const 1744 - i32.const 79 + i32.const 80 i32.const 5 call $~lib/builtins/abort unreachable @@ -27683,7 +28038,32 @@ if i32.const 0 i32.const 1744 - i32.const 81 + i32.const 82 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + i32.const 66 + i32.const 2512 + call $~lib/rt/__newArray + local.set $2 + global.get $~lib/memory/__stack_pointer + local.get $2 + i32.store offset=4 + local.get $2 + call $"~lib/map/Map#constructor" + local.tee $0 + i32.store + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + local.get $0 + call $"~lib/map/Map#get:size" + if + i32.const 0 + i32.const 1744 + i32.const 85 i32.const 3 call $~lib/builtins/abort unreachable @@ -27694,8 +28074,8 @@ global.set $~lib/memory/__stack_pointer return end - i32.const 35296 - i32.const 35344 + i32.const 35616 + i32.const 35664 i32.const 1 i32.const 1 call $~lib/builtins/abort @@ -27707,11 +28087,11 @@ i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 2496 + i32.const 2816 i32.lt_s if - i32.const 35296 - i32.const 35344 + i32.const 35616 + i32.const 35664 i32.const 1 i32.const 1 call $~lib/builtins/abort @@ -27751,11 +28131,11 @@ i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 2496 + i32.const 2816 i32.lt_s if - i32.const 35296 - i32.const 35344 + i32.const 35616 + i32.const 35664 i32.const 1 i32.const 1 call $~lib/builtins/abort @@ -27809,11 +28189,11 @@ i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 2496 + i32.const 2816 i32.lt_s if - i32.const 35296 - i32.const 35344 + i32.const 35616 + i32.const 35664 i32.const 1 i32.const 1 call $~lib/builtins/abort diff --git a/tests/compiler/std/map.ts b/tests/compiler/std/map.ts index 4df81e171c..6a3ad3898a 100644 --- a/tests/compiler/std/map.ts +++ b/tests/compiler/std/map.ts @@ -60,6 +60,7 @@ function testNumeric(): void { map.clear(); assert(map.size == 0); + // initial entries const initialEntries: MapInitialEntries = []; for(let k: K = 0; k < 100; ++k){ @@ -79,6 +80,9 @@ function testNumeric(): void { assert(!map.has(k)); } assert(map.size == 0); + + map = new Map([]); + assert(map.size == 0); } testNumeric(); diff --git a/tests/compiler/std/symbol.debug.wat b/tests/compiler/std/symbol.debug.wat index 782dd0d467..40771faf09 100644 --- a/tests/compiler/std/symbol.debug.wat +++ b/tests/compiler/std/symbol.debug.wat @@ -3762,16 +3762,17 @@ return ) (func $"~lib/map/Map<~lib/string/String,usize>#constructor" (param $this i32) (param $initialEntries i32) (result i32) + (local $initialEntriesLength i32) (local $i i32) (local $key i32) (local $value i32) (local $hashCode i32) (local $entry i32) (local $entries i32) - (local $8 i32) - (local $entry|9 i32) + (local $9 i32) + (local $entry|10 i32) (local $bucketPtrBase i32) - (local $11 i32) + (local $12 i32) global.get $~lib/memory/__stack_pointer i32.const 20 i32.sub @@ -3792,38 +3793,38 @@ i32.store end local.get $this - local.set $11 + local.set $12 global.get $~lib/memory/__stack_pointer - local.get $11 + local.get $12 i32.store offset=4 - local.get $11 + local.get $12 i32.const 0 i32.const 4 i32.const 4 i32.mul call $~lib/arraybuffer/ArrayBuffer#constructor - local.set $11 + local.set $12 global.get $~lib/memory/__stack_pointer - local.get $11 + local.get $12 i32.store offset=8 - local.get $11 + local.get $12 call $"~lib/map/Map<~lib/string/String,usize>#set:buckets" local.get $this - local.set $11 + local.set $12 global.get $~lib/memory/__stack_pointer - local.get $11 + local.get $12 i32.store offset=4 - local.get $11 + local.get $12 i32.const 4 i32.const 1 i32.sub call $"~lib/map/Map<~lib/string/String,usize>#set:bucketsMask" local.get $this - local.set $11 + local.set $12 global.get $~lib/memory/__stack_pointer - local.get $11 + local.get $12 i32.store offset=4 - local.get $11 + local.get $12 i32.const 0 i32.const 4 block $"~lib/map/ENTRY_SIZE<~lib/string/String,usize>|inlined.5" (result i32) @@ -3832,277 +3833,288 @@ end i32.mul call $~lib/arraybuffer/ArrayBuffer#constructor - local.set $11 + local.set $12 global.get $~lib/memory/__stack_pointer - local.get $11 + local.get $12 i32.store offset=8 - local.get $11 + local.get $12 call $"~lib/map/Map<~lib/string/String,usize>#set:entries" local.get $this - local.set $11 + local.set $12 global.get $~lib/memory/__stack_pointer - local.get $11 + local.get $12 i32.store offset=4 - local.get $11 + local.get $12 i32.const 4 call $"~lib/map/Map<~lib/string/String,usize>#set:entriesCapacity" local.get $this - local.set $11 + local.set $12 global.get $~lib/memory/__stack_pointer - local.get $11 + local.get $12 i32.store offset=4 - local.get $11 + local.get $12 i32.const 0 call $"~lib/map/Map<~lib/string/String,usize>#set:entriesOffset" local.get $this - local.set $11 + local.set $12 global.get $~lib/memory/__stack_pointer - local.get $11 + local.get $12 i32.store offset=4 - local.get $11 + local.get $12 i32.const 0 call $"~lib/map/Map<~lib/string/String,usize>#set:entriesCount" local.get $initialEntries - if + i32.eqz + if (result i32) + i32.const 1 + else local.get $initialEntries - local.set $11 + local.set $12 global.get $~lib/memory/__stack_pointer - local.get $11 + local.get $12 i32.store offset=4 - local.get $11 + local.get $12 call $"~lib/array/Array<~lib/map/KeyValue<~lib/string/String,usize>>#get:length" + i32.eqz + end + if local.get $this - local.set $11 + local.set $12 global.get $~lib/memory/__stack_pointer - local.get $11 + i32.const 20 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $12 + return + end + local.get $initialEntries + local.set $12 + global.get $~lib/memory/__stack_pointer + local.get $12 + i32.store offset=4 + local.get $12 + call $"~lib/array/Array<~lib/map/KeyValue<~lib/string/String,usize>>#get:length" + local.set $initialEntriesLength + local.get $initialEntriesLength + local.get $this + local.set $12 + global.get $~lib/memory/__stack_pointer + local.get $12 + i32.store offset=4 + local.get $12 + call $"~lib/map/Map<~lib/string/String,usize>#get:entriesCapacity" + i32.ge_s + if + local.get $this + local.set $12 + global.get $~lib/memory/__stack_pointer + local.get $12 i32.store offset=4 - local.get $11 - call $"~lib/map/Map<~lib/string/String,usize>#get:entriesCapacity" - i32.ge_s + local.get $12 + local.get $initialEntriesLength + call $"~lib/map/Map<~lib/string/String,usize>#set:bucketsMask" + end + local.get $this + local.set $12 + global.get $~lib/memory/__stack_pointer + local.get $12 + i32.store offset=4 + local.get $12 + local.get $this + local.set $12 + global.get $~lib/memory/__stack_pointer + local.get $12 + i32.store offset=8 + local.get $12 + call $"~lib/map/Map<~lib/string/String,usize>#get:bucketsMask" + i32.const 1 + i32.shl + i32.const 1 + i32.or + call $"~lib/map/Map<~lib/string/String,usize>#rehash" + i32.const 0 + local.set $i + loop $for-loop|0 + local.get $i + local.get $initialEntriesLength + i32.lt_s if - local.get $this - local.set $11 global.get $~lib/memory/__stack_pointer - local.get $11 - i32.store offset=4 - local.get $11 local.get $initialEntries - local.set $11 + local.set $12 global.get $~lib/memory/__stack_pointer - local.get $11 + local.get $12 i32.store offset=8 - local.get $11 - call $"~lib/array/Array<~lib/map/KeyValue<~lib/string/String,usize>>#get:length" - call $"~lib/map/Map<~lib/string/String,usize>#set:bucketsMask" - end - local.get $this - local.set $11 - global.get $~lib/memory/__stack_pointer - local.get $11 - i32.store offset=4 - local.get $11 - local.get $this - local.set $11 - global.get $~lib/memory/__stack_pointer - local.get $11 - i32.store offset=8 - local.get $11 - call $"~lib/map/Map<~lib/string/String,usize>#get:bucketsMask" - i32.const 1 - i32.shl - i32.const 1 - i32.or - call $"~lib/map/Map<~lib/string/String,usize>#rehash" - i32.const 0 - local.set $i - loop $for-loop|0 + local.get $12 local.get $i + call $"~lib/array/Array<~lib/map/KeyValue<~lib/string/String,usize>>#__get" + local.set $12 + global.get $~lib/memory/__stack_pointer + local.get $12 + i32.store offset=4 + local.get $12 + call $"~lib/map/KeyValue<~lib/string/String,usize>#get:key" + local.tee $key + i32.store offset=12 local.get $initialEntries - local.set $11 + local.set $12 global.get $~lib/memory/__stack_pointer - local.get $11 + local.get $12 + i32.store offset=8 + local.get $12 + local.get $i + call $"~lib/array/Array<~lib/map/KeyValue<~lib/string/String,usize>>#__get" + local.set $12 + global.get $~lib/memory/__stack_pointer + local.get $12 i32.store offset=4 - local.get $11 - call $"~lib/array/Array<~lib/map/KeyValue<~lib/string/String,usize>>#get:length" - i32.lt_s + local.get $12 + call $"~lib/map/KeyValue<~lib/string/String,usize>#get:value" + local.set $value + local.get $key + local.set $12 + global.get $~lib/memory/__stack_pointer + local.get $12 + i32.store offset=4 + local.get $12 + call $~lib/util/hash/HASH<~lib/string/String> + local.set $hashCode + local.get $this + local.set $12 + global.get $~lib/memory/__stack_pointer + local.get $12 + i32.store offset=4 + local.get $12 + local.get $key + local.set $12 + global.get $~lib/memory/__stack_pointer + local.get $12 + i32.store offset=8 + local.get $12 + local.get $hashCode + call $"~lib/map/Map<~lib/string/String,usize>#find" + local.set $entry + local.get $entry if + local.get $entry + local.get $value + call $"~lib/map/MapEntry<~lib/string/String,usize>#set:value" + i32.const 0 + drop + else global.get $~lib/memory/__stack_pointer - local.get $initialEntries - local.set $11 + local.get $this + local.set $12 global.get $~lib/memory/__stack_pointer - local.get $11 - i32.store offset=8 - local.get $11 - local.get $i - call $"~lib/array/Array<~lib/map/KeyValue<~lib/string/String,usize>>#__get" - local.set $11 + local.get $12 + i32.store offset=4 + local.get $12 + call $"~lib/map/Map<~lib/string/String,usize>#get:entries" + local.tee $entries + i32.store offset=16 + local.get $entries + local.get $this + local.set $12 global.get $~lib/memory/__stack_pointer - local.get $11 + local.get $12 i32.store offset=4 - local.get $11 - call $"~lib/map/KeyValue<~lib/string/String,usize>#get:key" - local.tee $key - i32.store offset=12 - local.get $initialEntries - local.set $11 + local.get $12 + local.get $this + local.set $12 global.get $~lib/memory/__stack_pointer - local.get $11 + local.get $12 i32.store offset=8 - local.get $11 - local.get $i - call $"~lib/array/Array<~lib/map/KeyValue<~lib/string/String,usize>>#__get" - local.set $11 - global.get $~lib/memory/__stack_pointer - local.get $11 - i32.store offset=4 - local.get $11 - call $"~lib/map/KeyValue<~lib/string/String,usize>#get:value" - local.set $value + local.get $12 + call $"~lib/map/Map<~lib/string/String,usize>#get:entriesOffset" + local.tee $9 + i32.const 1 + i32.add + call $"~lib/map/Map<~lib/string/String,usize>#set:entriesOffset" + local.get $9 + block $"~lib/map/ENTRY_SIZE<~lib/string/String,usize>|inlined.4" (result i32) + i32.const 12 + br $"~lib/map/ENTRY_SIZE<~lib/string/String,usize>|inlined.4" + end + i32.mul + i32.add + local.set $entry|10 + local.get $entry|10 local.get $key - local.set $11 + local.set $12 global.get $~lib/memory/__stack_pointer - local.get $11 + local.get $12 i32.store offset=4 - local.get $11 - call $~lib/util/hash/HASH<~lib/string/String> - local.set $hashCode + local.get $12 + call $"~lib/map/MapEntry<~lib/string/String,usize>#set:key" + i32.const 1 + drop local.get $this - local.set $11 + local.get $key + i32.const 1 + call $~lib/rt/itcms/__link + local.get $entry|10 + local.get $value + call $"~lib/map/MapEntry<~lib/string/String,usize>#set:value" + i32.const 0 + drop + local.get $this + local.set $12 global.get $~lib/memory/__stack_pointer - local.get $11 + local.get $12 i32.store offset=4 - local.get $11 - local.get $key - local.set $11 + local.get $12 + local.get $this + local.set $12 global.get $~lib/memory/__stack_pointer - local.get $11 + local.get $12 i32.store offset=8 - local.get $11 - local.get $hashCode - call $"~lib/map/Map<~lib/string/String,usize>#find" - local.set $entry - local.get $entry - if - local.get $entry - local.get $value - call $"~lib/map/MapEntry<~lib/string/String,usize>#set:value" - i32.const 0 - drop - else - global.get $~lib/memory/__stack_pointer - local.get $this - local.set $11 - global.get $~lib/memory/__stack_pointer - local.get $11 - i32.store offset=4 - local.get $11 - call $"~lib/map/Map<~lib/string/String,usize>#get:entries" - local.tee $entries - i32.store offset=16 - local.get $entries - local.get $this - local.set $11 - global.get $~lib/memory/__stack_pointer - local.get $11 - i32.store offset=4 - local.get $11 - local.get $this - local.set $11 - global.get $~lib/memory/__stack_pointer - local.get $11 - i32.store offset=8 - local.get $11 - call $"~lib/map/Map<~lib/string/String,usize>#get:entriesOffset" - local.tee $8 - i32.const 1 - i32.add - call $"~lib/map/Map<~lib/string/String,usize>#set:entriesOffset" - local.get $8 - block $"~lib/map/ENTRY_SIZE<~lib/string/String,usize>|inlined.4" (result i32) - i32.const 12 - br $"~lib/map/ENTRY_SIZE<~lib/string/String,usize>|inlined.4" - end - i32.mul - i32.add - local.set $entry|9 - local.get $entry|9 - local.get $key - local.set $11 - global.get $~lib/memory/__stack_pointer - local.get $11 - i32.store offset=4 - local.get $11 - call $"~lib/map/MapEntry<~lib/string/String,usize>#set:key" - i32.const 1 - drop - local.get $this - local.get $key - i32.const 1 - call $~lib/rt/itcms/__link - local.get $entry|9 - local.get $value - call $"~lib/map/MapEntry<~lib/string/String,usize>#set:value" - i32.const 0 - drop - local.get $this - local.set $11 - global.get $~lib/memory/__stack_pointer - local.get $11 - i32.store offset=4 - local.get $11 - local.get $this - local.set $11 - global.get $~lib/memory/__stack_pointer - local.get $11 - i32.store offset=8 - local.get $11 - call $"~lib/map/Map<~lib/string/String,usize>#get:entriesCount" - i32.const 1 - i32.add - call $"~lib/map/Map<~lib/string/String,usize>#set:entriesCount" - local.get $this - local.set $11 - global.get $~lib/memory/__stack_pointer - local.get $11 - i32.store offset=4 - local.get $11 - call $"~lib/map/Map<~lib/string/String,usize>#get:buckets" - local.get $hashCode - local.get $this - local.set $11 - global.get $~lib/memory/__stack_pointer - local.get $11 - i32.store offset=4 - local.get $11 - call $"~lib/map/Map<~lib/string/String,usize>#get:bucketsMask" - i32.and - i32.const 4 - i32.mul - i32.add - local.set $bucketPtrBase - local.get $entry|9 - local.get $bucketPtrBase - i32.load - call $"~lib/map/MapEntry<~lib/string/String,usize>#set:taggedNext" - local.get $bucketPtrBase - local.get $entry|9 - i32.store - end - local.get $i + local.get $12 + call $"~lib/map/Map<~lib/string/String,usize>#get:entriesCount" i32.const 1 i32.add - local.set $i - br $for-loop|0 + call $"~lib/map/Map<~lib/string/String,usize>#set:entriesCount" + local.get $this + local.set $12 + global.get $~lib/memory/__stack_pointer + local.get $12 + i32.store offset=4 + local.get $12 + call $"~lib/map/Map<~lib/string/String,usize>#get:buckets" + local.get $hashCode + local.get $this + local.set $12 + global.get $~lib/memory/__stack_pointer + local.get $12 + i32.store offset=4 + local.get $12 + call $"~lib/map/Map<~lib/string/String,usize>#get:bucketsMask" + i32.and + i32.const 4 + i32.mul + i32.add + local.set $bucketPtrBase + local.get $entry|10 + local.get $bucketPtrBase + i32.load + call $"~lib/map/MapEntry<~lib/string/String,usize>#set:taggedNext" + local.get $bucketPtrBase + local.get $entry|10 + i32.store end + local.get $i + i32.const 1 + i32.add + local.set $i + br $for-loop|0 end end local.get $this - local.set $11 + local.set $12 global.get $~lib/memory/__stack_pointer i32.const 20 i32.add global.set $~lib/memory/__stack_pointer - local.get $11 + local.get $12 ) (func $"~lib/map/Map<~lib/string/String,usize>#has" (param $this i32) (param $key i32) (result i32) (local $2 i32) @@ -4187,7 +4199,7 @@ if i32.const 800 i32.const 864 - i32.const 146 + i32.const 147 i32.const 17 call $~lib/builtins/abort unreachable @@ -4801,16 +4813,17 @@ return ) (func $"~lib/map/Map#constructor" (param $this i32) (param $initialEntries i32) (result i32) + (local $initialEntriesLength i32) (local $i i32) (local $key i32) (local $value i32) (local $hashCode i32) (local $entry i32) (local $entries i32) - (local $8 i32) - (local $entry|9 i32) + (local $9 i32) + (local $entry|10 i32) (local $bucketPtrBase i32) - (local $11 i32) + (local $12 i32) global.get $~lib/memory/__stack_pointer i32.const 20 i32.sub @@ -4831,38 +4844,38 @@ i32.store end local.get $this - local.set $11 + local.set $12 global.get $~lib/memory/__stack_pointer - local.get $11 + local.get $12 i32.store offset=4 - local.get $11 + local.get $12 i32.const 0 i32.const 4 i32.const 4 i32.mul call $~lib/arraybuffer/ArrayBuffer#constructor - local.set $11 + local.set $12 global.get $~lib/memory/__stack_pointer - local.get $11 + local.get $12 i32.store offset=8 - local.get $11 + local.get $12 call $"~lib/map/Map#set:buckets" local.get $this - local.set $11 + local.set $12 global.get $~lib/memory/__stack_pointer - local.get $11 + local.get $12 i32.store offset=4 - local.get $11 + local.get $12 i32.const 4 i32.const 1 i32.sub call $"~lib/map/Map#set:bucketsMask" local.get $this - local.set $11 + local.set $12 global.get $~lib/memory/__stack_pointer - local.get $11 + local.get $12 i32.store offset=4 - local.get $11 + local.get $12 i32.const 0 i32.const 4 block $"~lib/map/ENTRY_SIZE|inlined.5" (result i32) @@ -4871,276 +4884,287 @@ end i32.mul call $~lib/arraybuffer/ArrayBuffer#constructor - local.set $11 + local.set $12 global.get $~lib/memory/__stack_pointer - local.get $11 + local.get $12 i32.store offset=8 - local.get $11 + local.get $12 call $"~lib/map/Map#set:entries" local.get $this - local.set $11 + local.set $12 global.get $~lib/memory/__stack_pointer - local.get $11 + local.get $12 i32.store offset=4 - local.get $11 + local.get $12 i32.const 4 call $"~lib/map/Map#set:entriesCapacity" local.get $this - local.set $11 + local.set $12 global.get $~lib/memory/__stack_pointer - local.get $11 + local.get $12 i32.store offset=4 - local.get $11 + local.get $12 i32.const 0 call $"~lib/map/Map#set:entriesOffset" local.get $this - local.set $11 + local.set $12 global.get $~lib/memory/__stack_pointer - local.get $11 + local.get $12 i32.store offset=4 - local.get $11 + local.get $12 i32.const 0 call $"~lib/map/Map#set:entriesCount" local.get $initialEntries - if + i32.eqz + if (result i32) + i32.const 1 + else local.get $initialEntries - local.set $11 + local.set $12 global.get $~lib/memory/__stack_pointer - local.get $11 + local.get $12 i32.store offset=4 - local.get $11 + local.get $12 call $"~lib/array/Array<~lib/map/KeyValue>#get:length" + i32.eqz + end + if local.get $this - local.set $11 + local.set $12 global.get $~lib/memory/__stack_pointer - local.get $11 + i32.const 20 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $12 + return + end + local.get $initialEntries + local.set $12 + global.get $~lib/memory/__stack_pointer + local.get $12 + i32.store offset=4 + local.get $12 + call $"~lib/array/Array<~lib/map/KeyValue>#get:length" + local.set $initialEntriesLength + local.get $initialEntriesLength + local.get $this + local.set $12 + global.get $~lib/memory/__stack_pointer + local.get $12 + i32.store offset=4 + local.get $12 + call $"~lib/map/Map#get:entriesCapacity" + i32.ge_s + if + local.get $this + local.set $12 + global.get $~lib/memory/__stack_pointer + local.get $12 i32.store offset=4 - local.get $11 - call $"~lib/map/Map#get:entriesCapacity" - i32.ge_s + local.get $12 + local.get $initialEntriesLength + call $"~lib/map/Map#set:bucketsMask" + end + local.get $this + local.set $12 + global.get $~lib/memory/__stack_pointer + local.get $12 + i32.store offset=4 + local.get $12 + local.get $this + local.set $12 + global.get $~lib/memory/__stack_pointer + local.get $12 + i32.store offset=8 + local.get $12 + call $"~lib/map/Map#get:bucketsMask" + i32.const 1 + i32.shl + i32.const 1 + i32.or + call $"~lib/map/Map#rehash" + i32.const 0 + local.set $i + loop $for-loop|0 + local.get $i + local.get $initialEntriesLength + i32.lt_s if - local.get $this - local.set $11 + local.get $initialEntries + local.set $12 + global.get $~lib/memory/__stack_pointer + local.get $12 + i32.store offset=8 + local.get $12 + local.get $i + call $"~lib/array/Array<~lib/map/KeyValue>#__get" + local.set $12 global.get $~lib/memory/__stack_pointer - local.get $11 + local.get $12 i32.store offset=4 - local.get $11 + local.get $12 + call $"~lib/map/KeyValue#get:key" + local.set $key + global.get $~lib/memory/__stack_pointer local.get $initialEntries - local.set $11 + local.set $12 global.get $~lib/memory/__stack_pointer - local.get $11 + local.get $12 i32.store offset=8 - local.get $11 - call $"~lib/array/Array<~lib/map/KeyValue>#get:length" - call $"~lib/map/Map#set:bucketsMask" - end - local.get $this - local.set $11 - global.get $~lib/memory/__stack_pointer - local.get $11 - i32.store offset=4 - local.get $11 - local.get $this - local.set $11 - global.get $~lib/memory/__stack_pointer - local.get $11 - i32.store offset=8 - local.get $11 - call $"~lib/map/Map#get:bucketsMask" - i32.const 1 - i32.shl - i32.const 1 - i32.or - call $"~lib/map/Map#rehash" - i32.const 0 - local.set $i - loop $for-loop|0 + local.get $12 local.get $i - local.get $initialEntries - local.set $11 + call $"~lib/array/Array<~lib/map/KeyValue>#__get" + local.set $12 global.get $~lib/memory/__stack_pointer - local.get $11 + local.get $12 i32.store offset=4 - local.get $11 - call $"~lib/array/Array<~lib/map/KeyValue>#get:length" - i32.lt_s + local.get $12 + call $"~lib/map/KeyValue#get:value" + local.tee $value + i32.store offset=12 + local.get $key + call $~lib/util/hash/HASH + local.set $hashCode + local.get $this + local.set $12 + global.get $~lib/memory/__stack_pointer + local.get $12 + i32.store offset=4 + local.get $12 + local.get $key + local.get $hashCode + call $"~lib/map/Map#find" + local.set $entry + local.get $entry if - local.get $initialEntries - local.set $11 + local.get $entry + local.get $value + local.set $12 global.get $~lib/memory/__stack_pointer - local.get $11 - i32.store offset=8 - local.get $11 - local.get $i - call $"~lib/array/Array<~lib/map/KeyValue>#__get" - local.set $11 + local.get $12 + i32.store offset=4 + local.get $12 + call $"~lib/map/MapEntry#set:value" + i32.const 1 + drop + local.get $this + local.get $value + i32.const 1 + call $~lib/rt/itcms/__link + else + global.get $~lib/memory/__stack_pointer + local.get $this + local.set $12 global.get $~lib/memory/__stack_pointer - local.get $11 + local.get $12 i32.store offset=4 - local.get $11 - call $"~lib/map/KeyValue#get:key" - local.set $key + local.get $12 + call $"~lib/map/Map#get:entries" + local.tee $entries + i32.store offset=16 + local.get $entries + local.get $this + local.set $12 global.get $~lib/memory/__stack_pointer - local.get $initialEntries - local.set $11 + local.get $12 + i32.store offset=4 + local.get $12 + local.get $this + local.set $12 global.get $~lib/memory/__stack_pointer - local.get $11 + local.get $12 i32.store offset=8 - local.get $11 - local.get $i - call $"~lib/array/Array<~lib/map/KeyValue>#__get" - local.set $11 + local.get $12 + call $"~lib/map/Map#get:entriesOffset" + local.tee $9 + i32.const 1 + i32.add + call $"~lib/map/Map#set:entriesOffset" + local.get $9 + block $"~lib/map/ENTRY_SIZE|inlined.4" (result i32) + i32.const 12 + br $"~lib/map/ENTRY_SIZE|inlined.4" + end + i32.mul + i32.add + local.set $entry|10 + local.get $entry|10 + local.get $key + call $"~lib/map/MapEntry#set:key" + i32.const 0 + drop + local.get $entry|10 + local.get $value + local.set $12 global.get $~lib/memory/__stack_pointer - local.get $11 + local.get $12 i32.store offset=4 - local.get $11 - call $"~lib/map/KeyValue#get:value" - local.tee $value - i32.store offset=12 - local.get $key - call $~lib/util/hash/HASH - local.set $hashCode + local.get $12 + call $"~lib/map/MapEntry#set:value" + i32.const 1 + drop + local.get $this + local.get $value + i32.const 1 + call $~lib/rt/itcms/__link local.get $this - local.set $11 + local.set $12 global.get $~lib/memory/__stack_pointer - local.get $11 + local.get $12 i32.store offset=4 - local.get $11 - local.get $key - local.get $hashCode - call $"~lib/map/Map#find" - local.set $entry - local.get $entry - if - local.get $entry - local.get $value - local.set $11 - global.get $~lib/memory/__stack_pointer - local.get $11 - i32.store offset=4 - local.get $11 - call $"~lib/map/MapEntry#set:value" - i32.const 1 - drop - local.get $this - local.get $value - i32.const 1 - call $~lib/rt/itcms/__link - else - global.get $~lib/memory/__stack_pointer - local.get $this - local.set $11 - global.get $~lib/memory/__stack_pointer - local.get $11 - i32.store offset=4 - local.get $11 - call $"~lib/map/Map#get:entries" - local.tee $entries - i32.store offset=16 - local.get $entries - local.get $this - local.set $11 - global.get $~lib/memory/__stack_pointer - local.get $11 - i32.store offset=4 - local.get $11 - local.get $this - local.set $11 - global.get $~lib/memory/__stack_pointer - local.get $11 - i32.store offset=8 - local.get $11 - call $"~lib/map/Map#get:entriesOffset" - local.tee $8 - i32.const 1 - i32.add - call $"~lib/map/Map#set:entriesOffset" - local.get $8 - block $"~lib/map/ENTRY_SIZE|inlined.4" (result i32) - i32.const 12 - br $"~lib/map/ENTRY_SIZE|inlined.4" - end - i32.mul - i32.add - local.set $entry|9 - local.get $entry|9 - local.get $key - call $"~lib/map/MapEntry#set:key" - i32.const 0 - drop - local.get $entry|9 - local.get $value - local.set $11 - global.get $~lib/memory/__stack_pointer - local.get $11 - i32.store offset=4 - local.get $11 - call $"~lib/map/MapEntry#set:value" - i32.const 1 - drop - local.get $this - local.get $value - i32.const 1 - call $~lib/rt/itcms/__link - local.get $this - local.set $11 - global.get $~lib/memory/__stack_pointer - local.get $11 - i32.store offset=4 - local.get $11 - local.get $this - local.set $11 - global.get $~lib/memory/__stack_pointer - local.get $11 - i32.store offset=8 - local.get $11 - call $"~lib/map/Map#get:entriesCount" - i32.const 1 - i32.add - call $"~lib/map/Map#set:entriesCount" - local.get $this - local.set $11 - global.get $~lib/memory/__stack_pointer - local.get $11 - i32.store offset=4 - local.get $11 - call $"~lib/map/Map#get:buckets" - local.get $hashCode - local.get $this - local.set $11 - global.get $~lib/memory/__stack_pointer - local.get $11 - i32.store offset=4 - local.get $11 - call $"~lib/map/Map#get:bucketsMask" - i32.and - i32.const 4 - i32.mul - i32.add - local.set $bucketPtrBase - local.get $entry|9 - local.get $bucketPtrBase - i32.load - call $"~lib/map/MapEntry#set:taggedNext" - local.get $bucketPtrBase - local.get $entry|9 - i32.store - end - local.get $i + local.get $12 + local.get $this + local.set $12 + global.get $~lib/memory/__stack_pointer + local.get $12 + i32.store offset=8 + local.get $12 + call $"~lib/map/Map#get:entriesCount" i32.const 1 i32.add - local.set $i - br $for-loop|0 + call $"~lib/map/Map#set:entriesCount" + local.get $this + local.set $12 + global.get $~lib/memory/__stack_pointer + local.get $12 + i32.store offset=4 + local.get $12 + call $"~lib/map/Map#get:buckets" + local.get $hashCode + local.get $this + local.set $12 + global.get $~lib/memory/__stack_pointer + local.get $12 + i32.store offset=4 + local.get $12 + call $"~lib/map/Map#get:bucketsMask" + i32.and + i32.const 4 + i32.mul + i32.add + local.set $bucketPtrBase + local.get $entry|10 + local.get $bucketPtrBase + i32.load + call $"~lib/map/MapEntry#set:taggedNext" + local.get $bucketPtrBase + local.get $entry|10 + i32.store end + local.get $i + i32.const 1 + i32.add + local.set $i + br $for-loop|0 end end local.get $this - local.set $11 + local.set $12 global.get $~lib/memory/__stack_pointer i32.const 20 i32.add global.set $~lib/memory/__stack_pointer - local.get $11 + local.get $12 ) (func $"~lib/map/Map#set" (param $this i32) (param $key i32) (param $value i32) (result i32) (local $hashCode i32) @@ -5517,7 +5541,7 @@ if i32.const 800 i32.const 864 - i32.const 146 + i32.const 147 i32.const 17 call $~lib/builtins/abort unreachable diff --git a/tests/compiler/std/symbol.release.wat b/tests/compiler/std/symbol.release.wat index bab1fa97a4..4bc6dbeec0 100644 --- a/tests/compiler/std/symbol.release.wat +++ b/tests/compiler/std/symbol.release.wat @@ -3328,7 +3328,7 @@ if i32.const 1824 i32.const 1888 - i32.const 146 + i32.const 147 i32.const 17 call $~lib/builtins/abort unreachable @@ -3505,7 +3505,7 @@ if i32.const 1824 i32.const 1888 - i32.const 146 + i32.const 147 i32.const 17 call $~lib/builtins/abort unreachable