From e5890b14001e73b68d992ffaa07312e28275b5a1 Mon Sep 17 00:00:00 2001 From: CountBleck Date: Sat, 30 Sep 2023 13:09:53 -0700 Subject: [PATCH 1/2] Add an optional handler for detecting memory.grow() use in the runtime This handler can be used with an import for users not using ESM bindings to recreate views into memory only when necessary. --- std/assembly/rt/index.d.ts | 3 + std/assembly/rt/stub.ts | 1 + std/assembly/rt/tlsf.ts | 6 +- tests/compiler/bindings/esm.debug.wat | 20 +- tests/compiler/bindings/esm.release.wat | 18 +- .../bindings/noExportRuntime.debug.wat | 20 +- .../bindings/noExportRuntime.release.wat | 18 +- tests/compiler/bindings/raw.debug.wat | 20 +- tests/compiler/bindings/raw.release.wat | 18 +- tests/compiler/call-super.debug.wat | 20 +- tests/compiler/call-super.release.wat | 18 +- tests/compiler/class-implements.debug.wat | 20 +- tests/compiler/class-implements.release.wat | 18 +- .../compiler/class-overloading-cast.debug.wat | 20 +- .../class-overloading-cast.release.wat | 16 +- tests/compiler/class-overloading.debug.wat | 20 +- tests/compiler/class-overloading.release.wat | 16 +- tests/compiler/class.debug.wat | 20 +- tests/compiler/class.release.wat | 18 +- tests/compiler/constructor.debug.wat | 20 +- tests/compiler/constructor.release.wat | 18 +- tests/compiler/do.debug.wat | 20 +- tests/compiler/do.release.wat | 16 +- tests/compiler/duplicate-fields.debug.wat | 20 +- tests/compiler/duplicate-fields.release.wat | 18 +- tests/compiler/empty-exportruntime.debug.wat | 20 +- .../compiler/empty-exportruntime.release.wat | 18 +- tests/compiler/empty-new.debug.wat | 20 +- tests/compiler/empty-new.release.wat | 16 +- .../compiler/exportstar-rereexport.debug.wat | 20 +- .../exportstar-rereexport.release.wat | 16 +- .../compiler/extends-baseaggregate.debug.wat | 20 +- .../extends-baseaggregate.release.wat | 18 +- tests/compiler/extends-recursive.debug.wat | 20 +- tests/compiler/extends-recursive.release.wat | 18 +- tests/compiler/field-initialization.debug.wat | 20 +- .../compiler/field-initialization.release.wat | 18 +- tests/compiler/field.debug.wat | 20 +- tests/compiler/field.release.wat | 18 +- tests/compiler/for.debug.wat | 20 +- tests/compiler/for.release.wat | 16 +- tests/compiler/function-call.debug.wat | 20 +- tests/compiler/function-call.release.wat | 16 +- tests/compiler/function-expression.debug.wat | 20 +- .../compiler/function-expression.release.wat | 16 +- tests/compiler/getter-call.debug.wat | 20 +- tests/compiler/getter-call.release.wat | 16 +- tests/compiler/heap.debug.wat | 20 +- tests/compiler/heap.release.wat | 18 +- tests/compiler/infer-array.debug.wat | 20 +- tests/compiler/infer-array.release.wat | 18 +- tests/compiler/infer-generic.debug.wat | 20 +- tests/compiler/infer-generic.release.wat | 18 +- tests/compiler/inlining.debug.wat | 20 +- tests/compiler/inlining.release.wat | 18 +- tests/compiler/instanceof.debug.wat | 20 +- tests/compiler/instanceof.release.wat | 16 +- tests/compiler/issues/1095.debug.wat | 20 +- tests/compiler/issues/1095.release.wat | 18 +- tests/compiler/issues/1225.debug.wat | 20 +- tests/compiler/issues/1225.release.wat | 16 +- tests/compiler/issues/1699.debug.wat | 20 +- tests/compiler/issues/1699.release.wat | 18 +- tests/compiler/issues/2166.debug.wat | 20 +- tests/compiler/issues/2166.release.wat | 16 +- tests/compiler/issues/2322/index.debug.wat | 20 +- tests/compiler/issues/2322/index.release.wat | 18 +- tests/compiler/issues/2622.debug.wat | 20 +- tests/compiler/issues/2622.release.wat | 16 +- tests/compiler/logical.debug.wat | 20 +- tests/compiler/logical.release.wat | 16 +- tests/compiler/managed-cast.debug.wat | 20 +- tests/compiler/managed-cast.release.wat | 16 +- tests/compiler/new.debug.wat | 20 +- tests/compiler/new.release.wat | 16 +- tests/compiler/object-literal.debug.wat | 20 +- tests/compiler/object-literal.release.wat | 18 +- .../optional-typeparameters.debug.wat | 20 +- .../optional-typeparameters.release.wat | 16 +- tests/compiler/reexport.debug.wat | 20 +- tests/compiler/reexport.release.wat | 16 +- tests/compiler/rereexport.debug.wat | 20 +- tests/compiler/rereexport.release.wat | 16 +- tests/compiler/resolve-access.debug.wat | 20 +- tests/compiler/resolve-access.release.wat | 18 +- tests/compiler/resolve-binary.debug.wat | 20 +- tests/compiler/resolve-binary.release.wat | 18 +- .../compiler/resolve-elementaccess.debug.wat | 20 +- .../resolve-elementaccess.release.wat | 18 +- .../resolve-function-expression.debug.wat | 20 +- .../resolve-function-expression.release.wat | 18 +- tests/compiler/resolve-new.debug.wat | 20 +- tests/compiler/resolve-new.release.wat | 16 +- .../compiler/resolve-propertyaccess.debug.wat | 20 +- .../resolve-propertyaccess.release.wat | 18 +- tests/compiler/resolve-ternary.debug.wat | 20 +- tests/compiler/resolve-ternary.release.wat | 18 +- tests/compiler/resolve-unary.debug.wat | 20 +- tests/compiler/resolve-unary.release.wat | 18 +- tests/compiler/return-unreachable.debug.wat | 20 +- tests/compiler/return-unreachable.release.wat | 18 +- .../compiler/rt/alloc-large-memory.debug.wat | 18 +- .../rt/alloc-large-memory.release.wat | 16 +- tests/compiler/rt/finalize.debug.wat | 20 +- tests/compiler/rt/finalize.release.wat | 16 +- tests/compiler/rt/grow-handler.debug.wat | 2752 +++++++++++++++++ tests/compiler/rt/grow-handler.js | 12 + tests/compiler/rt/grow-handler.json | 5 + tests/compiler/rt/grow-handler.release.wat | 1896 ++++++++++++ tests/compiler/rt/grow-handler.ts | 7 + tests/compiler/rt/issue-2719.debug.wat | 20 +- tests/compiler/rt/issue-2719.release.wat | 18 +- .../rt/runtime-incremental-export.debug.wat | 20 +- .../rt/runtime-incremental-export.release.wat | 18 +- .../rt/runtime-minimal-export.debug.wat | 20 +- .../rt/runtime-minimal-export.release.wat | 18 +- .../compiler/rt/runtime-stub-export.debug.wat | 6 +- .../rt/runtime-stub-export.release.wat | 4 +- tests/compiler/simd.debug.wat | 20 +- tests/compiler/simd.release.wat | 18 +- tests/compiler/std/array-literal.debug.wat | 20 +- tests/compiler/std/array-literal.release.wat | 18 +- tests/compiler/std/array.debug.wat | 20 +- tests/compiler/std/array.release.wat | 18 +- tests/compiler/std/arraybuffer.debug.wat | 20 +- tests/compiler/std/arraybuffer.release.wat | 18 +- tests/compiler/std/dataview.debug.wat | 20 +- tests/compiler/std/dataview.release.wat | 18 +- tests/compiler/std/date.debug.wat | 20 +- tests/compiler/std/date.release.wat | 18 +- tests/compiler/std/map.debug.wat | 20 +- tests/compiler/std/map.release.wat | 18 +- tests/compiler/std/new.debug.wat | 20 +- tests/compiler/std/new.release.wat | 16 +- tests/compiler/std/object.debug.wat | 6 +- .../std/operator-overloading.debug.wat | 20 +- .../std/operator-overloading.release.wat | 16 +- tests/compiler/std/set.debug.wat | 20 +- tests/compiler/std/set.release.wat | 18 +- tests/compiler/std/static-array.debug.wat | 20 +- tests/compiler/std/static-array.release.wat | 18 +- tests/compiler/std/staticarray.debug.wat | 20 +- tests/compiler/std/staticarray.release.wat | 18 +- .../compiler/std/string-casemapping.debug.wat | 20 +- .../std/string-casemapping.release.wat | 18 +- tests/compiler/std/string-encoding.debug.wat | 20 +- .../compiler/std/string-encoding.release.wat | 18 +- tests/compiler/std/string.debug.wat | 20 +- tests/compiler/std/string.release.wat | 18 +- tests/compiler/std/symbol.debug.wat | 20 +- tests/compiler/std/symbol.release.wat | 18 +- tests/compiler/std/typedarray.debug.wat | 20 +- tests/compiler/std/typedarray.release.wat | 18 +- tests/compiler/std/uri.debug.wat | 20 +- tests/compiler/std/uri.release.wat | 18 +- tests/compiler/super-inline.debug.wat | 20 +- tests/compiler/super-inline.release.wat | 16 +- tests/compiler/templateliteral.debug.wat | 20 +- tests/compiler/templateliteral.release.wat | 18 +- tests/compiler/throw.debug.wat | 12 +- tests/compiler/throw.release.wat | 12 +- tests/compiler/typeof.debug.wat | 20 +- tests/compiler/typeof.release.wat | 16 +- tests/compiler/while.debug.wat | 20 +- tests/compiler/while.release.wat | 16 +- 165 files changed, 6118 insertions(+), 1436 deletions(-) create mode 100644 tests/compiler/rt/grow-handler.debug.wat create mode 100644 tests/compiler/rt/grow-handler.js create mode 100644 tests/compiler/rt/grow-handler.json create mode 100644 tests/compiler/rt/grow-handler.release.wat create mode 100644 tests/compiler/rt/grow-handler.ts diff --git a/std/assembly/rt/index.d.ts b/std/assembly/rt/index.d.ts index fbe1a778e1..7828f2c64a 100644 --- a/std/assembly/rt/index.d.ts +++ b/std/assembly/rt/index.d.ts @@ -29,6 +29,9 @@ declare function __finalize(ptr: usize): void; declare const ASC_RTRACE: bool; declare const ASC_PROFILE: bool; +// Memory growth handling +declare function ASC_RT_GROW_HANDLER(): void; + // Incremental GC constants declare const ASC_GC_GRANULARITY: i32; declare const ASC_GC_SWEEPFACTOR: i32; diff --git a/std/assembly/rt/stub.ts b/std/assembly/rt/stub.ts index a80c6d33c6..c900ce2cad 100644 --- a/std/assembly/rt/stub.ts +++ b/std/assembly/rt/stub.ts @@ -18,6 +18,7 @@ function maybeGrowMemory(newOffset: usize): void { if (memory.grow(pagesWanted) < 0) { if (memory.grow(pagesNeeded) < 0) unreachable(); // out of memory } + if (isDefined(ASC_RT_GROW_HANDLER)) ASC_RT_GROW_HANDLER(); } offset = newOffset; } diff --git a/std/assembly/rt/tlsf.ts b/std/assembly/rt/tlsf.ts index 3d135a3bee..b469cefbca 100644 --- a/std/assembly/rt/tlsf.ts +++ b/std/assembly/rt/tlsf.ts @@ -444,6 +444,7 @@ function growMemory(root: Root, size: usize): void { if (memory.grow(pagesWanted) < 0) { if (memory.grow(pagesNeeded) < 0) unreachable(); } + if (isDefined(ASC_RT_GROW_HANDLER)) ASC_RT_GROW_HANDLER(); let pagesAfter = memory.size(); addMemory(root, pagesBefore << 16, pagesAfter << 16); } @@ -468,7 +469,10 @@ function initialize(): void { let rootOffset = (__heap_base + AL_MASK) & ~AL_MASK; let pagesBefore = memory.size(); let pagesNeeded = ((((rootOffset + ROOT_SIZE) + 0xffff) & ~0xffff) >>> 16); - if (pagesNeeded > pagesBefore && memory.grow(pagesNeeded - pagesBefore) < 0) unreachable(); + if (pagesNeeded > pagesBefore) { + if (memory.grow(pagesNeeded - pagesBefore) < 0) unreachable(); + if (isDefined(ASC_RT_GROW_HANDLER)) ASC_RT_GROW_HANDLER(); + } let root = changetype(rootOffset); root.flMap = 0; SETTAIL(root, changetype(0)); diff --git a/tests/compiler/bindings/esm.debug.wat b/tests/compiler/bindings/esm.debug.wat index 230933f1b4..519251ee90 100644 --- a/tests/compiler/bindings/esm.debug.wat +++ b/tests/compiler/bindings/esm.debug.wat @@ -1338,18 +1338,18 @@ local.get $pagesNeeded local.get $pagesBefore i32.gt_s - if (result i32) + if local.get $pagesNeeded local.get $pagesBefore i32.sub memory.grow $0 i32.const 0 i32.lt_s - else + if + unreachable + end i32.const 0 - end - if - unreachable + drop end local.get $rootOffset local.set $root @@ -1470,7 +1470,7 @@ if i32.const 0 i32.const 672 - i32.const 562 + i32.const 566 i32.const 3 call $~lib/builtins/abort unreachable @@ -1799,7 +1799,7 @@ if i32.const 336 i32.const 672 - i32.const 461 + i32.const 462 i32.const 29 call $~lib/builtins/abort unreachable @@ -2095,6 +2095,8 @@ unreachable end end + i32.const 0 + drop memory.size $0 local.set $pagesAfter local.get $root @@ -2244,7 +2246,7 @@ if i32.const 0 i32.const 672 - i32.const 499 + i32.const 503 i32.const 16 call $~lib/builtins/abort unreachable @@ -2264,7 +2266,7 @@ if i32.const 0 i32.const 672 - i32.const 501 + i32.const 505 i32.const 14 call $~lib/builtins/abort unreachable diff --git a/tests/compiler/bindings/esm.release.wat b/tests/compiler/bindings/esm.release.wat index 672115c456..efbc4334b6 100644 --- a/tests/compiler/bindings/esm.release.wat +++ b/tests/compiler/bindings/esm.release.wat @@ -852,18 +852,16 @@ local.tee $1 i32.const 0 i32.le_s - if (result i32) + if i32.const 1 local.get $1 i32.sub memory.grow $0 i32.const 0 i32.lt_s - else - i32.const 0 - end - if - unreachable + if + unreachable + end end i32.const 35056 i32.const 0 @@ -1161,7 +1159,7 @@ if i32.const 0 i32.const 1696 - i32.const 562 + i32.const 566 i32.const 3 call $~lib/builtins/abort unreachable @@ -1396,7 +1394,7 @@ if i32.const 1360 i32.const 1696 - i32.const 461 + i32.const 462 i32.const 29 call $~lib/builtins/abort unreachable @@ -1494,7 +1492,7 @@ if i32.const 0 i32.const 1696 - i32.const 499 + i32.const 503 i32.const 16 call $~lib/builtins/abort unreachable @@ -1509,7 +1507,7 @@ if i32.const 0 i32.const 1696 - i32.const 501 + i32.const 505 i32.const 14 call $~lib/builtins/abort unreachable diff --git a/tests/compiler/bindings/noExportRuntime.debug.wat b/tests/compiler/bindings/noExportRuntime.debug.wat index d6621948a3..247251ac80 100644 --- a/tests/compiler/bindings/noExportRuntime.debug.wat +++ b/tests/compiler/bindings/noExportRuntime.debug.wat @@ -1253,18 +1253,18 @@ local.get $pagesNeeded local.get $pagesBefore i32.gt_s - if (result i32) + if local.get $pagesNeeded local.get $pagesBefore i32.sub memory.grow $0 i32.const 0 i32.lt_s - else + if + unreachable + end i32.const 0 - end - if - unreachable + drop end local.get $rootOffset local.set $root @@ -1385,7 +1385,7 @@ if i32.const 0 i32.const 512 - i32.const 562 + i32.const 566 i32.const 3 call $~lib/builtins/abort unreachable @@ -1714,7 +1714,7 @@ if i32.const 176 i32.const 512 - i32.const 461 + i32.const 462 i32.const 29 call $~lib/builtins/abort unreachable @@ -2010,6 +2010,8 @@ unreachable end end + i32.const 0 + drop memory.size $0 local.set $pagesAfter local.get $root @@ -2159,7 +2161,7 @@ if i32.const 0 i32.const 512 - i32.const 499 + i32.const 503 i32.const 16 call $~lib/builtins/abort unreachable @@ -2179,7 +2181,7 @@ if i32.const 0 i32.const 512 - i32.const 501 + i32.const 505 i32.const 14 call $~lib/builtins/abort unreachable diff --git a/tests/compiler/bindings/noExportRuntime.release.wat b/tests/compiler/bindings/noExportRuntime.release.wat index 759421547c..b8177a0330 100644 --- a/tests/compiler/bindings/noExportRuntime.release.wat +++ b/tests/compiler/bindings/noExportRuntime.release.wat @@ -785,18 +785,16 @@ local.tee $1 i32.const 0 i32.le_s - if (result i32) + if i32.const 1 local.get $1 i32.sub memory.grow $0 i32.const 0 i32.lt_s - else - i32.const 0 - end - if - unreachable + if + unreachable + end end i32.const 34560 i32.const 0 @@ -1094,7 +1092,7 @@ if i32.const 0 i32.const 1536 - i32.const 562 + i32.const 566 i32.const 3 call $~lib/builtins/abort unreachable @@ -1329,7 +1327,7 @@ if i32.const 1200 i32.const 1536 - i32.const 461 + i32.const 462 i32.const 29 call $~lib/builtins/abort unreachable @@ -1427,7 +1425,7 @@ if i32.const 0 i32.const 1536 - i32.const 499 + i32.const 503 i32.const 16 call $~lib/builtins/abort unreachable @@ -1442,7 +1440,7 @@ if i32.const 0 i32.const 1536 - i32.const 501 + i32.const 505 i32.const 14 call $~lib/builtins/abort unreachable diff --git a/tests/compiler/bindings/raw.debug.wat b/tests/compiler/bindings/raw.debug.wat index 2b6256a0a1..ef70c50131 100644 --- a/tests/compiler/bindings/raw.debug.wat +++ b/tests/compiler/bindings/raw.debug.wat @@ -1341,18 +1341,18 @@ local.get $pagesNeeded local.get $pagesBefore i32.gt_s - if (result i32) + if local.get $pagesNeeded local.get $pagesBefore i32.sub memory.grow $0 i32.const 0 i32.lt_s - else + if + unreachable + end i32.const 0 - end - if - unreachable + drop end local.get $rootOffset local.set $root @@ -1473,7 +1473,7 @@ if i32.const 0 i32.const 672 - i32.const 562 + i32.const 566 i32.const 3 call $~lib/builtins/abort unreachable @@ -1802,7 +1802,7 @@ if i32.const 336 i32.const 672 - i32.const 461 + i32.const 462 i32.const 29 call $~lib/builtins/abort unreachable @@ -2098,6 +2098,8 @@ unreachable end end + i32.const 0 + drop memory.size $0 local.set $pagesAfter local.get $root @@ -2247,7 +2249,7 @@ if i32.const 0 i32.const 672 - i32.const 499 + i32.const 503 i32.const 16 call $~lib/builtins/abort unreachable @@ -2267,7 +2269,7 @@ if i32.const 0 i32.const 672 - i32.const 501 + i32.const 505 i32.const 14 call $~lib/builtins/abort unreachable diff --git a/tests/compiler/bindings/raw.release.wat b/tests/compiler/bindings/raw.release.wat index da0352b4a1..ece51dddd9 100644 --- a/tests/compiler/bindings/raw.release.wat +++ b/tests/compiler/bindings/raw.release.wat @@ -852,18 +852,16 @@ local.tee $1 i32.const 0 i32.le_s - if (result i32) + if i32.const 1 local.get $1 i32.sub memory.grow $0 i32.const 0 i32.lt_s - else - i32.const 0 - end - if - unreachable + if + unreachable + end end i32.const 35056 i32.const 0 @@ -1161,7 +1159,7 @@ if i32.const 0 i32.const 1696 - i32.const 562 + i32.const 566 i32.const 3 call $~lib/builtins/abort unreachable @@ -1396,7 +1394,7 @@ if i32.const 1360 i32.const 1696 - i32.const 461 + i32.const 462 i32.const 29 call $~lib/builtins/abort unreachable @@ -1494,7 +1492,7 @@ if i32.const 0 i32.const 1696 - i32.const 499 + i32.const 503 i32.const 16 call $~lib/builtins/abort unreachable @@ -1509,7 +1507,7 @@ if i32.const 0 i32.const 1696 - i32.const 501 + i32.const 505 i32.const 14 call $~lib/builtins/abort unreachable diff --git a/tests/compiler/call-super.debug.wat b/tests/compiler/call-super.debug.wat index fb91ea7874..52866af837 100644 --- a/tests/compiler/call-super.debug.wat +++ b/tests/compiler/call-super.debug.wat @@ -1228,18 +1228,18 @@ local.get $pagesNeeded local.get $pagesBefore i32.gt_s - if (result i32) + if local.get $pagesNeeded local.get $pagesBefore i32.sub memory.grow $0 i32.const 0 i32.lt_s - else + if + unreachable + end i32.const 0 - end - if - unreachable + drop end local.get $rootOffset local.set $root @@ -1360,7 +1360,7 @@ if i32.const 0 i32.const 416 - i32.const 562 + i32.const 566 i32.const 3 call $~lib/builtins/abort unreachable @@ -1689,7 +1689,7 @@ if i32.const 80 i32.const 416 - i32.const 461 + i32.const 462 i32.const 29 call $~lib/builtins/abort unreachable @@ -1985,6 +1985,8 @@ unreachable end end + i32.const 0 + drop memory.size $0 local.set $pagesAfter local.get $root @@ -2134,7 +2136,7 @@ if i32.const 0 i32.const 416 - i32.const 499 + i32.const 503 i32.const 16 call $~lib/builtins/abort unreachable @@ -2154,7 +2156,7 @@ if i32.const 0 i32.const 416 - i32.const 501 + i32.const 505 i32.const 14 call $~lib/builtins/abort unreachable diff --git a/tests/compiler/call-super.release.wat b/tests/compiler/call-super.release.wat index bdcc3e03e7..2b5e82467d 100644 --- a/tests/compiler/call-super.release.wat +++ b/tests/compiler/call-super.release.wat @@ -732,18 +732,16 @@ local.tee $1 i32.const 0 i32.le_s - if (result i32) + if i32.const 1 local.get $1 i32.sub memory.grow $0 i32.const 0 i32.lt_s - else - i32.const 0 - end - if - unreachable + if + unreachable + end end i32.const 34320 i32.const 0 @@ -1041,7 +1039,7 @@ if i32.const 0 i32.const 1440 - i32.const 562 + i32.const 566 i32.const 3 call $~lib/builtins/abort unreachable @@ -1276,7 +1274,7 @@ if i32.const 1104 i32.const 1440 - i32.const 461 + i32.const 462 i32.const 29 call $~lib/builtins/abort unreachable @@ -1374,7 +1372,7 @@ if i32.const 0 i32.const 1440 - i32.const 499 + i32.const 503 i32.const 16 call $~lib/builtins/abort unreachable @@ -1389,7 +1387,7 @@ if i32.const 0 i32.const 1440 - i32.const 501 + i32.const 505 i32.const 14 call $~lib/builtins/abort unreachable diff --git a/tests/compiler/class-implements.debug.wat b/tests/compiler/class-implements.debug.wat index bfeec249ca..14eb62da5f 100644 --- a/tests/compiler/class-implements.debug.wat +++ b/tests/compiler/class-implements.debug.wat @@ -1231,18 +1231,18 @@ local.get $pagesNeeded local.get $pagesBefore i32.gt_s - if (result i32) + if local.get $pagesNeeded local.get $pagesBefore i32.sub memory.grow $0 i32.const 0 i32.lt_s - else + if + unreachable + end i32.const 0 - end - if - unreachable + drop end local.get $rootOffset local.set $root @@ -1363,7 +1363,7 @@ if i32.const 0 i32.const 368 - i32.const 562 + i32.const 566 i32.const 3 call $~lib/builtins/abort unreachable @@ -1692,7 +1692,7 @@ if i32.const 32 i32.const 368 - i32.const 461 + i32.const 462 i32.const 29 call $~lib/builtins/abort unreachable @@ -1988,6 +1988,8 @@ unreachable end end + i32.const 0 + drop memory.size $0 local.set $pagesAfter local.get $root @@ -2137,7 +2139,7 @@ if i32.const 0 i32.const 368 - i32.const 499 + i32.const 503 i32.const 16 call $~lib/builtins/abort unreachable @@ -2157,7 +2159,7 @@ if i32.const 0 i32.const 368 - i32.const 501 + i32.const 505 i32.const 14 call $~lib/builtins/abort unreachable diff --git a/tests/compiler/class-implements.release.wat b/tests/compiler/class-implements.release.wat index d9ef9d7e18..1906d20db6 100644 --- a/tests/compiler/class-implements.release.wat +++ b/tests/compiler/class-implements.release.wat @@ -781,18 +781,16 @@ local.tee $1 i32.const 0 i32.le_s - if (result i32) + if i32.const 1 local.get $1 i32.sub memory.grow $0 i32.const 0 i32.lt_s - else - i32.const 0 - end - if - unreachable + if + unreachable + end end i32.const 34352 i32.const 0 @@ -1090,7 +1088,7 @@ if i32.const 0 i32.const 1392 - i32.const 562 + i32.const 566 i32.const 3 call $~lib/builtins/abort unreachable @@ -1325,7 +1323,7 @@ if i32.const 1056 i32.const 1392 - i32.const 461 + i32.const 462 i32.const 29 call $~lib/builtins/abort unreachable @@ -1423,7 +1421,7 @@ if i32.const 0 i32.const 1392 - i32.const 499 + i32.const 503 i32.const 16 call $~lib/builtins/abort unreachable @@ -1438,7 +1436,7 @@ if i32.const 0 i32.const 1392 - i32.const 501 + i32.const 505 i32.const 14 call $~lib/builtins/abort unreachable diff --git a/tests/compiler/class-overloading-cast.debug.wat b/tests/compiler/class-overloading-cast.debug.wat index c4342ebc91..0617b96181 100644 --- a/tests/compiler/class-overloading-cast.debug.wat +++ b/tests/compiler/class-overloading-cast.debug.wat @@ -1237,18 +1237,18 @@ local.get $pagesNeeded local.get $pagesBefore i32.gt_s - if (result i32) + if local.get $pagesNeeded local.get $pagesBefore i32.sub memory.grow $0 i32.const 0 i32.lt_s - else + if + unreachable + end i32.const 0 - end - if - unreachable + drop end local.get $rootOffset local.set $root @@ -1369,7 +1369,7 @@ if i32.const 0 i32.const 368 - i32.const 562 + i32.const 566 i32.const 3 call $~lib/builtins/abort unreachable @@ -1698,7 +1698,7 @@ if i32.const 32 i32.const 368 - i32.const 461 + i32.const 462 i32.const 29 call $~lib/builtins/abort unreachable @@ -1994,6 +1994,8 @@ unreachable end end + i32.const 0 + drop memory.size $0 local.set $pagesAfter local.get $root @@ -2143,7 +2145,7 @@ if i32.const 0 i32.const 368 - i32.const 499 + i32.const 503 i32.const 16 call $~lib/builtins/abort unreachable @@ -2163,7 +2165,7 @@ if i32.const 0 i32.const 368 - i32.const 501 + i32.const 505 i32.const 14 call $~lib/builtins/abort unreachable diff --git a/tests/compiler/class-overloading-cast.release.wat b/tests/compiler/class-overloading-cast.release.wat index 14a24afc68..76a8682b41 100644 --- a/tests/compiler/class-overloading-cast.release.wat +++ b/tests/compiler/class-overloading-cast.release.wat @@ -769,18 +769,16 @@ local.tee $1 i32.const 0 i32.le_s - if (result i32) + if i32.const 1 local.get $1 i32.sub memory.grow $0 i32.const 0 i32.lt_s - else - i32.const 0 - end - if - unreachable + if + unreachable + end end i32.const 34480 i32.const 0 @@ -1078,7 +1076,7 @@ if i32.const 0 i32.const 1392 - i32.const 562 + i32.const 566 i32.const 3 call $~lib/builtins/abort unreachable @@ -1278,7 +1276,7 @@ if i32.const 0 i32.const 1392 - i32.const 499 + i32.const 503 i32.const 16 call $~lib/builtins/abort unreachable @@ -1293,7 +1291,7 @@ if i32.const 0 i32.const 1392 - i32.const 501 + i32.const 505 i32.const 14 call $~lib/builtins/abort unreachable diff --git a/tests/compiler/class-overloading.debug.wat b/tests/compiler/class-overloading.debug.wat index dc394bbf8e..d645bc4dbb 100644 --- a/tests/compiler/class-overloading.debug.wat +++ b/tests/compiler/class-overloading.debug.wat @@ -1241,18 +1241,18 @@ local.get $pagesNeeded local.get $pagesBefore i32.gt_s - if (result i32) + if local.get $pagesNeeded local.get $pagesBefore i32.sub memory.grow $0 i32.const 0 i32.lt_s - else + if + unreachable + end i32.const 0 - end - if - unreachable + drop end local.get $rootOffset local.set $root @@ -1373,7 +1373,7 @@ if i32.const 0 i32.const 400 - i32.const 562 + i32.const 566 i32.const 3 call $~lib/builtins/abort unreachable @@ -1702,7 +1702,7 @@ if i32.const 64 i32.const 400 - i32.const 461 + i32.const 462 i32.const 29 call $~lib/builtins/abort unreachable @@ -1998,6 +1998,8 @@ unreachable end end + i32.const 0 + drop memory.size $0 local.set $pagesAfter local.get $root @@ -2147,7 +2149,7 @@ if i32.const 0 i32.const 400 - i32.const 499 + i32.const 503 i32.const 16 call $~lib/builtins/abort unreachable @@ -2167,7 +2169,7 @@ if i32.const 0 i32.const 400 - i32.const 501 + i32.const 505 i32.const 14 call $~lib/builtins/abort unreachable diff --git a/tests/compiler/class-overloading.release.wat b/tests/compiler/class-overloading.release.wat index 8b358295ca..47c04ab88c 100644 --- a/tests/compiler/class-overloading.release.wat +++ b/tests/compiler/class-overloading.release.wat @@ -791,18 +791,16 @@ local.tee $1 i32.const 0 i32.le_s - if (result i32) + if i32.const 1 local.get $1 i32.sub memory.grow $0 i32.const 0 i32.lt_s - else - i32.const 0 - end - if - unreachable + if + unreachable + end end i32.const 34640 i32.const 0 @@ -1100,7 +1098,7 @@ if i32.const 0 i32.const 1424 - i32.const 562 + i32.const 566 i32.const 3 call $~lib/builtins/abort unreachable @@ -1300,7 +1298,7 @@ if i32.const 0 i32.const 1424 - i32.const 499 + i32.const 503 i32.const 16 call $~lib/builtins/abort unreachable @@ -1315,7 +1313,7 @@ if i32.const 0 i32.const 1424 - i32.const 501 + i32.const 505 i32.const 14 call $~lib/builtins/abort unreachable diff --git a/tests/compiler/class.debug.wat b/tests/compiler/class.debug.wat index afda7eb500..d1746d9d77 100644 --- a/tests/compiler/class.debug.wat +++ b/tests/compiler/class.debug.wat @@ -1309,18 +1309,18 @@ local.get $pagesNeeded local.get $pagesBefore i32.gt_s - if (result i32) + if local.get $pagesNeeded local.get $pagesBefore i32.sub memory.grow $0 i32.const 0 i32.lt_s - else + if + unreachable + end i32.const 0 - end - if - unreachable + drop end local.get $rootOffset local.set $root @@ -1441,7 +1441,7 @@ if i32.const 0 i32.const 368 - i32.const 562 + i32.const 566 i32.const 3 call $~lib/builtins/abort unreachable @@ -1770,7 +1770,7 @@ if i32.const 32 i32.const 368 - i32.const 461 + i32.const 462 i32.const 29 call $~lib/builtins/abort unreachable @@ -2066,6 +2066,8 @@ unreachable end end + i32.const 0 + drop memory.size $0 local.set $pagesAfter local.get $root @@ -2215,7 +2217,7 @@ if i32.const 0 i32.const 368 - i32.const 499 + i32.const 503 i32.const 16 call $~lib/builtins/abort unreachable @@ -2235,7 +2237,7 @@ if i32.const 0 i32.const 368 - i32.const 501 + i32.const 505 i32.const 14 call $~lib/builtins/abort unreachable diff --git a/tests/compiler/class.release.wat b/tests/compiler/class.release.wat index c3107e7912..9b6494432d 100644 --- a/tests/compiler/class.release.wat +++ b/tests/compiler/class.release.wat @@ -738,18 +738,16 @@ local.tee $1 i32.const 0 i32.le_s - if (result i32) + if i32.const 1 local.get $1 i32.sub memory.grow $0 i32.const 0 i32.lt_s - else - i32.const 0 - end - if - unreachable + if + unreachable + end end i32.const 34336 i32.const 0 @@ -1047,7 +1045,7 @@ if i32.const 0 i32.const 1392 - i32.const 562 + i32.const 566 i32.const 3 call $~lib/builtins/abort unreachable @@ -1282,7 +1280,7 @@ if i32.const 1056 i32.const 1392 - i32.const 461 + i32.const 462 i32.const 29 call $~lib/builtins/abort unreachable @@ -1380,7 +1378,7 @@ if i32.const 0 i32.const 1392 - i32.const 499 + i32.const 503 i32.const 16 call $~lib/builtins/abort unreachable @@ -1395,7 +1393,7 @@ if i32.const 0 i32.const 1392 - i32.const 501 + i32.const 505 i32.const 14 call $~lib/builtins/abort unreachable diff --git a/tests/compiler/constructor.debug.wat b/tests/compiler/constructor.debug.wat index 4a1a9a65b2..1c978398ab 100644 --- a/tests/compiler/constructor.debug.wat +++ b/tests/compiler/constructor.debug.wat @@ -1237,18 +1237,18 @@ local.get $pagesNeeded local.get $pagesBefore i32.gt_s - if (result i32) + if local.get $pagesNeeded local.get $pagesBefore i32.sub memory.grow $0 i32.const 0 i32.lt_s - else + if + unreachable + end i32.const 0 - end - if - unreachable + drop end local.get $rootOffset local.set $root @@ -1369,7 +1369,7 @@ if i32.const 0 i32.const 368 - i32.const 562 + i32.const 566 i32.const 3 call $~lib/builtins/abort unreachable @@ -1698,7 +1698,7 @@ if i32.const 32 i32.const 368 - i32.const 461 + i32.const 462 i32.const 29 call $~lib/builtins/abort unreachable @@ -1994,6 +1994,8 @@ unreachable end end + i32.const 0 + drop memory.size $0 local.set $pagesAfter local.get $root @@ -2143,7 +2145,7 @@ if i32.const 0 i32.const 368 - i32.const 499 + i32.const 503 i32.const 16 call $~lib/builtins/abort unreachable @@ -2163,7 +2165,7 @@ if i32.const 0 i32.const 368 - i32.const 501 + i32.const 505 i32.const 14 call $~lib/builtins/abort unreachable diff --git a/tests/compiler/constructor.release.wat b/tests/compiler/constructor.release.wat index 60eea444fc..d35b8ded3f 100644 --- a/tests/compiler/constructor.release.wat +++ b/tests/compiler/constructor.release.wat @@ -795,18 +795,16 @@ local.tee $1 i32.const 0 i32.le_s - if (result i32) + if i32.const 1 local.get $1 i32.sub memory.grow $0 i32.const 0 i32.lt_s - else - i32.const 0 - end - if - unreachable + if + unreachable + end end i32.const 34336 i32.const 0 @@ -1104,7 +1102,7 @@ if i32.const 0 i32.const 1392 - i32.const 562 + i32.const 566 i32.const 3 call $~lib/builtins/abort unreachable @@ -1339,7 +1337,7 @@ if i32.const 1056 i32.const 1392 - i32.const 461 + i32.const 462 i32.const 29 call $~lib/builtins/abort unreachable @@ -1437,7 +1435,7 @@ if i32.const 0 i32.const 1392 - i32.const 499 + i32.const 503 i32.const 16 call $~lib/builtins/abort unreachable @@ -1452,7 +1450,7 @@ if i32.const 0 i32.const 1392 - i32.const 501 + i32.const 505 i32.const 14 call $~lib/builtins/abort unreachable diff --git a/tests/compiler/do.debug.wat b/tests/compiler/do.debug.wat index 91f52ccdb5..03dcce2f1d 100644 --- a/tests/compiler/do.debug.wat +++ b/tests/compiler/do.debug.wat @@ -1632,18 +1632,18 @@ local.get $pagesNeeded local.get $pagesBefore i32.gt_s - if (result i32) + if local.get $pagesNeeded local.get $pagesBefore i32.sub memory.grow $0 i32.const 0 i32.lt_s - else + if + unreachable + end i32.const 0 - end - if - unreachable + drop end local.get $rootOffset local.set $root @@ -1764,7 +1764,7 @@ if i32.const 0 i32.const 400 - i32.const 562 + i32.const 566 i32.const 3 call $~lib/builtins/abort unreachable @@ -2093,7 +2093,7 @@ if i32.const 64 i32.const 400 - i32.const 461 + i32.const 462 i32.const 29 call $~lib/builtins/abort unreachable @@ -2389,6 +2389,8 @@ unreachable end end + i32.const 0 + drop memory.size $0 local.set $pagesAfter local.get $root @@ -2538,7 +2540,7 @@ if i32.const 0 i32.const 400 - i32.const 499 + i32.const 503 i32.const 16 call $~lib/builtins/abort unreachable @@ -2558,7 +2560,7 @@ if i32.const 0 i32.const 400 - i32.const 501 + i32.const 505 i32.const 14 call $~lib/builtins/abort unreachable diff --git a/tests/compiler/do.release.wat b/tests/compiler/do.release.wat index 0bcfedbba6..fd7b301d09 100644 --- a/tests/compiler/do.release.wat +++ b/tests/compiler/do.release.wat @@ -731,18 +731,16 @@ local.tee $1 i32.const 0 i32.le_s - if (result i32) + if i32.const 1 local.get $1 i32.sub memory.grow $0 i32.const 0 i32.lt_s - else - i32.const 0 - end - if - unreachable + if + unreachable + end end i32.const 34272 i32.const 0 @@ -1040,7 +1038,7 @@ if i32.const 0 i32.const 1424 - i32.const 562 + i32.const 566 i32.const 3 call $~lib/builtins/abort unreachable @@ -1240,7 +1238,7 @@ if i32.const 0 i32.const 1424 - i32.const 499 + i32.const 503 i32.const 16 call $~lib/builtins/abort unreachable @@ -1255,7 +1253,7 @@ if i32.const 0 i32.const 1424 - i32.const 501 + i32.const 505 i32.const 14 call $~lib/builtins/abort unreachable diff --git a/tests/compiler/duplicate-fields.debug.wat b/tests/compiler/duplicate-fields.debug.wat index 7f96433a13..8740a6570d 100644 --- a/tests/compiler/duplicate-fields.debug.wat +++ b/tests/compiler/duplicate-fields.debug.wat @@ -1231,18 +1231,18 @@ local.get $pagesNeeded local.get $pagesBefore i32.gt_s - if (result i32) + if local.get $pagesNeeded local.get $pagesBefore i32.sub memory.grow $0 i32.const 0 i32.lt_s - else + if + unreachable + end i32.const 0 - end - if - unreachable + drop end local.get $rootOffset local.set $root @@ -1363,7 +1363,7 @@ if i32.const 0 i32.const 368 - i32.const 562 + i32.const 566 i32.const 3 call $~lib/builtins/abort unreachable @@ -1692,7 +1692,7 @@ if i32.const 32 i32.const 368 - i32.const 461 + i32.const 462 i32.const 29 call $~lib/builtins/abort unreachable @@ -1988,6 +1988,8 @@ unreachable end end + i32.const 0 + drop memory.size $0 local.set $pagesAfter local.get $root @@ -2137,7 +2139,7 @@ if i32.const 0 i32.const 368 - i32.const 499 + i32.const 503 i32.const 16 call $~lib/builtins/abort unreachable @@ -2157,7 +2159,7 @@ if i32.const 0 i32.const 368 - i32.const 501 + i32.const 505 i32.const 14 call $~lib/builtins/abort unreachable diff --git a/tests/compiler/duplicate-fields.release.wat b/tests/compiler/duplicate-fields.release.wat index a2b9b1a72d..68a244ccf1 100644 --- a/tests/compiler/duplicate-fields.release.wat +++ b/tests/compiler/duplicate-fields.release.wat @@ -745,18 +745,16 @@ local.tee $1 i32.const 0 i32.le_s - if (result i32) + if i32.const 1 local.get $1 i32.sub memory.grow $0 i32.const 0 i32.lt_s - else - i32.const 0 - end - if - unreachable + if + unreachable + end end i32.const 34320 i32.const 0 @@ -1054,7 +1052,7 @@ if i32.const 0 i32.const 1392 - i32.const 562 + i32.const 566 i32.const 3 call $~lib/builtins/abort unreachable @@ -1289,7 +1287,7 @@ if i32.const 1056 i32.const 1392 - i32.const 461 + i32.const 462 i32.const 29 call $~lib/builtins/abort unreachable @@ -1387,7 +1385,7 @@ if i32.const 0 i32.const 1392 - i32.const 499 + i32.const 503 i32.const 16 call $~lib/builtins/abort unreachable @@ -1402,7 +1400,7 @@ if i32.const 0 i32.const 1392 - i32.const 501 + i32.const 505 i32.const 14 call $~lib/builtins/abort unreachable diff --git a/tests/compiler/empty-exportruntime.debug.wat b/tests/compiler/empty-exportruntime.debug.wat index 1c5c21375c..a2b0ab3bb0 100644 --- a/tests/compiler/empty-exportruntime.debug.wat +++ b/tests/compiler/empty-exportruntime.debug.wat @@ -1230,18 +1230,18 @@ local.get $pagesNeeded local.get $pagesBefore i32.gt_s - if (result i32) + if local.get $pagesNeeded local.get $pagesBefore i32.sub memory.grow $0 i32.const 0 i32.lt_s - else + if + unreachable + end i32.const 0 - end - if - unreachable + drop end local.get $rootOffset local.set $root @@ -1362,7 +1362,7 @@ if i32.const 0 i32.const 368 - i32.const 562 + i32.const 566 i32.const 3 call $~lib/builtins/abort unreachable @@ -1691,7 +1691,7 @@ if i32.const 32 i32.const 368 - i32.const 461 + i32.const 462 i32.const 29 call $~lib/builtins/abort unreachable @@ -1987,6 +1987,8 @@ unreachable end end + i32.const 0 + drop memory.size $0 local.set $pagesAfter local.get $root @@ -2136,7 +2138,7 @@ if i32.const 0 i32.const 368 - i32.const 499 + i32.const 503 i32.const 16 call $~lib/builtins/abort unreachable @@ -2156,7 +2158,7 @@ if i32.const 0 i32.const 368 - i32.const 501 + i32.const 505 i32.const 14 call $~lib/builtins/abort unreachable diff --git a/tests/compiler/empty-exportruntime.release.wat b/tests/compiler/empty-exportruntime.release.wat index 8ac160e12a..473f971e6d 100644 --- a/tests/compiler/empty-exportruntime.release.wat +++ b/tests/compiler/empty-exportruntime.release.wat @@ -746,18 +746,16 @@ local.tee $1 i32.const 0 i32.le_s - if (result i32) + if i32.const 1 local.get $1 i32.sub memory.grow $0 i32.const 0 i32.lt_s - else - i32.const 0 - end - if - unreachable + if + unreachable + end end i32.const 34368 i32.const 0 @@ -1055,7 +1053,7 @@ if i32.const 0 i32.const 1392 - i32.const 562 + i32.const 566 i32.const 3 call $~lib/builtins/abort unreachable @@ -1290,7 +1288,7 @@ if i32.const 1056 i32.const 1392 - i32.const 461 + i32.const 462 i32.const 29 call $~lib/builtins/abort unreachable @@ -1388,7 +1386,7 @@ if i32.const 0 i32.const 1392 - i32.const 499 + i32.const 503 i32.const 16 call $~lib/builtins/abort unreachable @@ -1403,7 +1401,7 @@ if i32.const 0 i32.const 1392 - i32.const 501 + i32.const 505 i32.const 14 call $~lib/builtins/abort unreachable diff --git a/tests/compiler/empty-new.debug.wat b/tests/compiler/empty-new.debug.wat index 9d3c257697..f42bc49801 100644 --- a/tests/compiler/empty-new.debug.wat +++ b/tests/compiler/empty-new.debug.wat @@ -1223,18 +1223,18 @@ local.get $pagesNeeded local.get $pagesBefore i32.gt_s - if (result i32) + if local.get $pagesNeeded local.get $pagesBefore i32.sub memory.grow $0 i32.const 0 i32.lt_s - else + if + unreachable + end i32.const 0 - end - if - unreachable + drop end local.get $rootOffset local.set $root @@ -1355,7 +1355,7 @@ if i32.const 0 i32.const 368 - i32.const 562 + i32.const 566 i32.const 3 call $~lib/builtins/abort unreachable @@ -1684,7 +1684,7 @@ if i32.const 32 i32.const 368 - i32.const 461 + i32.const 462 i32.const 29 call $~lib/builtins/abort unreachable @@ -1980,6 +1980,8 @@ unreachable end end + i32.const 0 + drop memory.size $0 local.set $pagesAfter local.get $root @@ -2129,7 +2131,7 @@ if i32.const 0 i32.const 368 - i32.const 499 + i32.const 503 i32.const 16 call $~lib/builtins/abort unreachable @@ -2149,7 +2151,7 @@ if i32.const 0 i32.const 368 - i32.const 501 + i32.const 505 i32.const 14 call $~lib/builtins/abort unreachable diff --git a/tests/compiler/empty-new.release.wat b/tests/compiler/empty-new.release.wat index af3b8bd9f4..339d8b6d8b 100644 --- a/tests/compiler/empty-new.release.wat +++ b/tests/compiler/empty-new.release.wat @@ -728,18 +728,16 @@ local.tee $1 i32.const 0 i32.le_s - if (result i32) + if i32.const 1 local.get $1 i32.sub memory.grow $0 i32.const 0 i32.lt_s - else - i32.const 0 - end - if - unreachable + if + unreachable + end end i32.const 34240 i32.const 0 @@ -1037,7 +1035,7 @@ if i32.const 0 i32.const 1392 - i32.const 562 + i32.const 566 i32.const 3 call $~lib/builtins/abort unreachable @@ -1237,7 +1235,7 @@ if i32.const 0 i32.const 1392 - i32.const 499 + i32.const 503 i32.const 16 call $~lib/builtins/abort unreachable @@ -1252,7 +1250,7 @@ if i32.const 0 i32.const 1392 - i32.const 501 + i32.const 505 i32.const 14 call $~lib/builtins/abort unreachable diff --git a/tests/compiler/exportstar-rereexport.debug.wat b/tests/compiler/exportstar-rereexport.debug.wat index 663ea26eea..eb3602ce74 100644 --- a/tests/compiler/exportstar-rereexport.debug.wat +++ b/tests/compiler/exportstar-rereexport.debug.wat @@ -1263,18 +1263,18 @@ local.get $pagesNeeded local.get $pagesBefore i32.gt_s - if (result i32) + if local.get $pagesNeeded local.get $pagesBefore i32.sub memory.grow $0 i32.const 0 i32.lt_s - else + if + unreachable + end i32.const 0 - end - if - unreachable + drop end local.get $rootOffset local.set $root @@ -1395,7 +1395,7 @@ if i32.const 0 i32.const 416 - i32.const 562 + i32.const 566 i32.const 3 call $~lib/builtins/abort unreachable @@ -1724,7 +1724,7 @@ if i32.const 80 i32.const 416 - i32.const 461 + i32.const 462 i32.const 29 call $~lib/builtins/abort unreachable @@ -2020,6 +2020,8 @@ unreachable end end + i32.const 0 + drop memory.size $0 local.set $pagesAfter local.get $root @@ -2169,7 +2171,7 @@ if i32.const 0 i32.const 416 - i32.const 499 + i32.const 503 i32.const 16 call $~lib/builtins/abort unreachable @@ -2189,7 +2191,7 @@ if i32.const 0 i32.const 416 - i32.const 501 + i32.const 505 i32.const 14 call $~lib/builtins/abort unreachable diff --git a/tests/compiler/exportstar-rereexport.release.wat b/tests/compiler/exportstar-rereexport.release.wat index 622828f662..ab673a8f6d 100644 --- a/tests/compiler/exportstar-rereexport.release.wat +++ b/tests/compiler/exportstar-rereexport.release.wat @@ -762,18 +762,16 @@ local.tee $1 i32.const 0 i32.le_s - if (result i32) + if i32.const 1 local.get $1 i32.sub memory.grow $0 i32.const 0 i32.lt_s - else - i32.const 0 - end - if - unreachable + if + unreachable + end end i32.const 34336 i32.const 0 @@ -1071,7 +1069,7 @@ if i32.const 0 i32.const 1440 - i32.const 562 + i32.const 566 i32.const 3 call $~lib/builtins/abort unreachable @@ -1271,7 +1269,7 @@ if i32.const 0 i32.const 1440 - i32.const 499 + i32.const 503 i32.const 16 call $~lib/builtins/abort unreachable @@ -1286,7 +1284,7 @@ if i32.const 0 i32.const 1440 - i32.const 501 + i32.const 505 i32.const 14 call $~lib/builtins/abort unreachable diff --git a/tests/compiler/extends-baseaggregate.debug.wat b/tests/compiler/extends-baseaggregate.debug.wat index 264ed92d68..10991a8327 100644 --- a/tests/compiler/extends-baseaggregate.debug.wat +++ b/tests/compiler/extends-baseaggregate.debug.wat @@ -1233,18 +1233,18 @@ local.get $pagesNeeded local.get $pagesBefore i32.gt_s - if (result i32) + if local.get $pagesNeeded local.get $pagesBefore i32.sub memory.grow $0 i32.const 0 i32.lt_s - else + if + unreachable + end i32.const 0 - end - if - unreachable + drop end local.get $rootOffset local.set $root @@ -1365,7 +1365,7 @@ if i32.const 0 i32.const 528 - i32.const 562 + i32.const 566 i32.const 3 call $~lib/builtins/abort unreachable @@ -1694,7 +1694,7 @@ if i32.const 192 i32.const 528 - i32.const 461 + i32.const 462 i32.const 29 call $~lib/builtins/abort unreachable @@ -1990,6 +1990,8 @@ unreachable end end + i32.const 0 + drop memory.size $0 local.set $pagesAfter local.get $root @@ -2139,7 +2141,7 @@ if i32.const 0 i32.const 528 - i32.const 499 + i32.const 503 i32.const 16 call $~lib/builtins/abort unreachable @@ -2159,7 +2161,7 @@ if i32.const 0 i32.const 528 - i32.const 501 + i32.const 505 i32.const 14 call $~lib/builtins/abort unreachable diff --git a/tests/compiler/extends-baseaggregate.release.wat b/tests/compiler/extends-baseaggregate.release.wat index 402d658397..52cd3245e6 100644 --- a/tests/compiler/extends-baseaggregate.release.wat +++ b/tests/compiler/extends-baseaggregate.release.wat @@ -748,18 +748,16 @@ local.tee $1 i32.const 0 i32.le_s - if (result i32) + if i32.const 1 local.get $1 i32.sub memory.grow $0 i32.const 0 i32.lt_s - else - i32.const 0 - end - if - unreachable + if + unreachable + end end i32.const 34512 i32.const 0 @@ -1057,7 +1055,7 @@ if i32.const 0 i32.const 1552 - i32.const 562 + i32.const 566 i32.const 3 call $~lib/builtins/abort unreachable @@ -1292,7 +1290,7 @@ if i32.const 1216 i32.const 1552 - i32.const 461 + i32.const 462 i32.const 29 call $~lib/builtins/abort unreachable @@ -1390,7 +1388,7 @@ if i32.const 0 i32.const 1552 - i32.const 499 + i32.const 503 i32.const 16 call $~lib/builtins/abort unreachable @@ -1405,7 +1403,7 @@ if i32.const 0 i32.const 1552 - i32.const 501 + i32.const 505 i32.const 14 call $~lib/builtins/abort unreachable diff --git a/tests/compiler/extends-recursive.debug.wat b/tests/compiler/extends-recursive.debug.wat index b83754c683..38a20cc061 100644 --- a/tests/compiler/extends-recursive.debug.wat +++ b/tests/compiler/extends-recursive.debug.wat @@ -1223,18 +1223,18 @@ local.get $pagesNeeded local.get $pagesBefore i32.gt_s - if (result i32) + if local.get $pagesNeeded local.get $pagesBefore i32.sub memory.grow $0 i32.const 0 i32.lt_s - else + if + unreachable + end i32.const 0 - end - if - unreachable + drop end local.get $rootOffset local.set $root @@ -1355,7 +1355,7 @@ if i32.const 0 i32.const 368 - i32.const 562 + i32.const 566 i32.const 3 call $~lib/builtins/abort unreachable @@ -1684,7 +1684,7 @@ if i32.const 32 i32.const 368 - i32.const 461 + i32.const 462 i32.const 29 call $~lib/builtins/abort unreachable @@ -1980,6 +1980,8 @@ unreachable end end + i32.const 0 + drop memory.size $0 local.set $pagesAfter local.get $root @@ -2129,7 +2131,7 @@ if i32.const 0 i32.const 368 - i32.const 499 + i32.const 503 i32.const 16 call $~lib/builtins/abort unreachable @@ -2149,7 +2151,7 @@ if i32.const 0 i32.const 368 - i32.const 501 + i32.const 505 i32.const 14 call $~lib/builtins/abort unreachable diff --git a/tests/compiler/extends-recursive.release.wat b/tests/compiler/extends-recursive.release.wat index ee63b3d673..c08cc129ee 100644 --- a/tests/compiler/extends-recursive.release.wat +++ b/tests/compiler/extends-recursive.release.wat @@ -729,18 +729,16 @@ local.tee $1 i32.const 0 i32.le_s - if (result i32) + if i32.const 1 local.get $1 i32.sub memory.grow $0 i32.const 0 i32.lt_s - else - i32.const 0 - end - if - unreachable + if + unreachable + end end i32.const 34240 i32.const 0 @@ -1038,7 +1036,7 @@ if i32.const 0 i32.const 1392 - i32.const 562 + i32.const 566 i32.const 3 call $~lib/builtins/abort unreachable @@ -1273,7 +1271,7 @@ if i32.const 1056 i32.const 1392 - i32.const 461 + i32.const 462 i32.const 29 call $~lib/builtins/abort unreachable @@ -1371,7 +1369,7 @@ if i32.const 0 i32.const 1392 - i32.const 499 + i32.const 503 i32.const 16 call $~lib/builtins/abort unreachable @@ -1386,7 +1384,7 @@ if i32.const 0 i32.const 1392 - i32.const 501 + i32.const 505 i32.const 14 call $~lib/builtins/abort unreachable diff --git a/tests/compiler/field-initialization.debug.wat b/tests/compiler/field-initialization.debug.wat index c6d03b2b7d..921b53e595 100644 --- a/tests/compiler/field-initialization.debug.wat +++ b/tests/compiler/field-initialization.debug.wat @@ -1234,18 +1234,18 @@ local.get $pagesNeeded local.get $pagesBefore i32.gt_s - if (result i32) + if local.get $pagesNeeded local.get $pagesBefore i32.sub memory.grow $0 i32.const 0 i32.lt_s - else + if + unreachable + end i32.const 0 - end - if - unreachable + drop end local.get $rootOffset local.set $root @@ -1366,7 +1366,7 @@ if i32.const 0 i32.const 368 - i32.const 562 + i32.const 566 i32.const 3 call $~lib/builtins/abort unreachable @@ -1695,7 +1695,7 @@ if i32.const 32 i32.const 368 - i32.const 461 + i32.const 462 i32.const 29 call $~lib/builtins/abort unreachable @@ -1991,6 +1991,8 @@ unreachable end end + i32.const 0 + drop memory.size $0 local.set $pagesAfter local.get $root @@ -2140,7 +2142,7 @@ if i32.const 0 i32.const 368 - i32.const 499 + i32.const 503 i32.const 16 call $~lib/builtins/abort unreachable @@ -2160,7 +2162,7 @@ if i32.const 0 i32.const 368 - i32.const 501 + i32.const 505 i32.const 14 call $~lib/builtins/abort unreachable diff --git a/tests/compiler/field-initialization.release.wat b/tests/compiler/field-initialization.release.wat index 581a1ac36b..f734513997 100644 --- a/tests/compiler/field-initialization.release.wat +++ b/tests/compiler/field-initialization.release.wat @@ -749,18 +749,16 @@ local.tee $1 i32.const 0 i32.le_s - if (result i32) + if i32.const 1 local.get $1 i32.sub memory.grow $0 i32.const 0 i32.lt_s - else - i32.const 0 - end - if - unreachable + if + unreachable + end end i32.const 34672 i32.const 0 @@ -1058,7 +1056,7 @@ if i32.const 0 i32.const 1392 - i32.const 562 + i32.const 566 i32.const 3 call $~lib/builtins/abort unreachable @@ -1293,7 +1291,7 @@ if i32.const 1056 i32.const 1392 - i32.const 461 + i32.const 462 i32.const 29 call $~lib/builtins/abort unreachable @@ -1391,7 +1389,7 @@ if i32.const 0 i32.const 1392 - i32.const 499 + i32.const 503 i32.const 16 call $~lib/builtins/abort unreachable @@ -1406,7 +1404,7 @@ if i32.const 0 i32.const 1392 - i32.const 501 + i32.const 505 i32.const 14 call $~lib/builtins/abort unreachable diff --git a/tests/compiler/field.debug.wat b/tests/compiler/field.debug.wat index e20ed15673..0c05f49533 100644 --- a/tests/compiler/field.debug.wat +++ b/tests/compiler/field.debug.wat @@ -1226,18 +1226,18 @@ local.get $pagesNeeded local.get $pagesBefore i32.gt_s - if (result i32) + if local.get $pagesNeeded local.get $pagesBefore i32.sub memory.grow $0 i32.const 0 i32.lt_s - else + if + unreachable + end i32.const 0 - end - if - unreachable + drop end local.get $rootOffset local.set $root @@ -1358,7 +1358,7 @@ if i32.const 0 i32.const 368 - i32.const 562 + i32.const 566 i32.const 3 call $~lib/builtins/abort unreachable @@ -1687,7 +1687,7 @@ if i32.const 32 i32.const 368 - i32.const 461 + i32.const 462 i32.const 29 call $~lib/builtins/abort unreachable @@ -1983,6 +1983,8 @@ unreachable end end + i32.const 0 + drop memory.size $0 local.set $pagesAfter local.get $root @@ -2132,7 +2134,7 @@ if i32.const 0 i32.const 368 - i32.const 499 + i32.const 503 i32.const 16 call $~lib/builtins/abort unreachable @@ -2152,7 +2154,7 @@ if i32.const 0 i32.const 368 - i32.const 501 + i32.const 505 i32.const 14 call $~lib/builtins/abort unreachable diff --git a/tests/compiler/field.release.wat b/tests/compiler/field.release.wat index dc9afffca7..a9f0948a97 100644 --- a/tests/compiler/field.release.wat +++ b/tests/compiler/field.release.wat @@ -732,18 +732,16 @@ local.tee $1 i32.const 0 i32.le_s - if (result i32) + if i32.const 1 local.get $1 i32.sub memory.grow $0 i32.const 0 i32.lt_s - else - i32.const 0 - end - if - unreachable + if + unreachable + end end i32.const 34272 i32.const 0 @@ -1041,7 +1039,7 @@ if i32.const 0 i32.const 1392 - i32.const 562 + i32.const 566 i32.const 3 call $~lib/builtins/abort unreachable @@ -1276,7 +1274,7 @@ if i32.const 1056 i32.const 1392 - i32.const 461 + i32.const 462 i32.const 29 call $~lib/builtins/abort unreachable @@ -1374,7 +1372,7 @@ if i32.const 0 i32.const 1392 - i32.const 499 + i32.const 503 i32.const 16 call $~lib/builtins/abort unreachable @@ -1389,7 +1387,7 @@ if i32.const 0 i32.const 1392 - i32.const 501 + i32.const 505 i32.const 14 call $~lib/builtins/abort unreachable diff --git a/tests/compiler/for.debug.wat b/tests/compiler/for.debug.wat index aa94a43a4f..3964014e71 100644 --- a/tests/compiler/for.debug.wat +++ b/tests/compiler/for.debug.wat @@ -1613,18 +1613,18 @@ local.get $pagesNeeded local.get $pagesBefore i32.gt_s - if (result i32) + if local.get $pagesNeeded local.get $pagesBefore i32.sub memory.grow $0 i32.const 0 i32.lt_s - else + if + unreachable + end i32.const 0 - end - if - unreachable + drop end local.get $rootOffset local.set $root @@ -1745,7 +1745,7 @@ if i32.const 0 i32.const 400 - i32.const 562 + i32.const 566 i32.const 3 call $~lib/builtins/abort unreachable @@ -2074,7 +2074,7 @@ if i32.const 64 i32.const 400 - i32.const 461 + i32.const 462 i32.const 29 call $~lib/builtins/abort unreachable @@ -2370,6 +2370,8 @@ unreachable end end + i32.const 0 + drop memory.size $0 local.set $pagesAfter local.get $root @@ -2519,7 +2521,7 @@ if i32.const 0 i32.const 400 - i32.const 499 + i32.const 503 i32.const 16 call $~lib/builtins/abort unreachable @@ -2539,7 +2541,7 @@ if i32.const 0 i32.const 400 - i32.const 501 + i32.const 505 i32.const 14 call $~lib/builtins/abort unreachable diff --git a/tests/compiler/for.release.wat b/tests/compiler/for.release.wat index da3cbbfa5b..f1b4ec6338 100644 --- a/tests/compiler/for.release.wat +++ b/tests/compiler/for.release.wat @@ -731,18 +731,16 @@ local.tee $1 i32.const 0 i32.le_s - if (result i32) + if i32.const 1 local.get $1 i32.sub memory.grow $0 i32.const 0 i32.lt_s - else - i32.const 0 - end - if - unreachable + if + unreachable + end end i32.const 34272 i32.const 0 @@ -1040,7 +1038,7 @@ if i32.const 0 i32.const 1424 - i32.const 562 + i32.const 566 i32.const 3 call $~lib/builtins/abort unreachable @@ -1240,7 +1238,7 @@ if i32.const 0 i32.const 1424 - i32.const 499 + i32.const 503 i32.const 16 call $~lib/builtins/abort unreachable @@ -1255,7 +1253,7 @@ if i32.const 0 i32.const 1424 - i32.const 501 + i32.const 505 i32.const 14 call $~lib/builtins/abort unreachable diff --git a/tests/compiler/function-call.debug.wat b/tests/compiler/function-call.debug.wat index 5f87d1289e..379e650723 100644 --- a/tests/compiler/function-call.debug.wat +++ b/tests/compiler/function-call.debug.wat @@ -1262,18 +1262,18 @@ local.get $pagesNeeded local.get $pagesBefore i32.gt_s - if (result i32) + if local.get $pagesNeeded local.get $pagesBefore i32.sub memory.grow $0 i32.const 0 i32.lt_s - else + if + unreachable + end i32.const 0 - end - if - unreachable + drop end local.get $rootOffset local.set $root @@ -1394,7 +1394,7 @@ if i32.const 0 i32.const 592 - i32.const 562 + i32.const 566 i32.const 3 call $~lib/builtins/abort unreachable @@ -1723,7 +1723,7 @@ if i32.const 256 i32.const 592 - i32.const 461 + i32.const 462 i32.const 29 call $~lib/builtins/abort unreachable @@ -2019,6 +2019,8 @@ unreachable end end + i32.const 0 + drop memory.size $0 local.set $pagesAfter local.get $root @@ -2168,7 +2170,7 @@ if i32.const 0 i32.const 592 - i32.const 499 + i32.const 503 i32.const 16 call $~lib/builtins/abort unreachable @@ -2188,7 +2190,7 @@ if i32.const 0 i32.const 592 - i32.const 501 + i32.const 505 i32.const 14 call $~lib/builtins/abort unreachable diff --git a/tests/compiler/function-call.release.wat b/tests/compiler/function-call.release.wat index 29e7b4f8cc..5166f1e512 100644 --- a/tests/compiler/function-call.release.wat +++ b/tests/compiler/function-call.release.wat @@ -770,18 +770,16 @@ local.tee $1 i32.const 0 i32.le_s - if (result i32) + if i32.const 1 local.get $1 i32.sub memory.grow $0 i32.const 0 i32.lt_s - else - i32.const 0 - end - if - unreachable + if + unreachable + end end i32.const 34576 i32.const 0 @@ -1079,7 +1077,7 @@ if i32.const 0 i32.const 1616 - i32.const 562 + i32.const 566 i32.const 3 call $~lib/builtins/abort unreachable @@ -1279,7 +1277,7 @@ if i32.const 0 i32.const 1616 - i32.const 499 + i32.const 503 i32.const 16 call $~lib/builtins/abort unreachable @@ -1294,7 +1292,7 @@ if i32.const 0 i32.const 1616 - i32.const 501 + i32.const 505 i32.const 14 call $~lib/builtins/abort unreachable diff --git a/tests/compiler/function-expression.debug.wat b/tests/compiler/function-expression.debug.wat index d519160857..dc78b7f03a 100644 --- a/tests/compiler/function-expression.debug.wat +++ b/tests/compiler/function-expression.debug.wat @@ -1419,18 +1419,18 @@ local.get $pagesNeeded local.get $pagesBefore i32.gt_s - if (result i32) + if local.get $pagesNeeded local.get $pagesBefore i32.sub memory.grow $0 i32.const 0 i32.lt_s - else + if + unreachable + end i32.const 0 - end - if - unreachable + drop end local.get $rootOffset local.set $root @@ -1551,7 +1551,7 @@ if i32.const 0 i32.const 912 - i32.const 562 + i32.const 566 i32.const 3 call $~lib/builtins/abort unreachable @@ -1880,7 +1880,7 @@ if i32.const 576 i32.const 912 - i32.const 461 + i32.const 462 i32.const 29 call $~lib/builtins/abort unreachable @@ -2176,6 +2176,8 @@ unreachable end end + i32.const 0 + drop memory.size $0 local.set $pagesAfter local.get $root @@ -2325,7 +2327,7 @@ if i32.const 0 i32.const 912 - i32.const 499 + i32.const 503 i32.const 16 call $~lib/builtins/abort unreachable @@ -2345,7 +2347,7 @@ if i32.const 0 i32.const 912 - i32.const 501 + i32.const 505 i32.const 14 call $~lib/builtins/abort unreachable diff --git a/tests/compiler/function-expression.release.wat b/tests/compiler/function-expression.release.wat index 236d54c1ed..a9fbd002be 100644 --- a/tests/compiler/function-expression.release.wat +++ b/tests/compiler/function-expression.release.wat @@ -796,18 +796,16 @@ local.tee $1 i32.const 0 i32.le_s - if (result i32) + if i32.const 1 local.get $1 i32.sub memory.grow $0 i32.const 0 i32.lt_s - else - i32.const 0 - end - if - unreachable + if + unreachable + end end i32.const 34928 i32.const 0 @@ -1105,7 +1103,7 @@ if i32.const 0 i32.const 1936 - i32.const 562 + i32.const 566 i32.const 3 call $~lib/builtins/abort unreachable @@ -1305,7 +1303,7 @@ if i32.const 0 i32.const 1936 - i32.const 499 + i32.const 503 i32.const 16 call $~lib/builtins/abort unreachable @@ -1320,7 +1318,7 @@ if i32.const 0 i32.const 1936 - i32.const 501 + i32.const 505 i32.const 14 call $~lib/builtins/abort unreachable diff --git a/tests/compiler/getter-call.debug.wat b/tests/compiler/getter-call.debug.wat index c0548a9af5..f3939371ae 100644 --- a/tests/compiler/getter-call.debug.wat +++ b/tests/compiler/getter-call.debug.wat @@ -1226,18 +1226,18 @@ local.get $pagesNeeded local.get $pagesBefore i32.gt_s - if (result i32) + if local.get $pagesNeeded local.get $pagesBefore i32.sub memory.grow $0 i32.const 0 i32.lt_s - else + if + unreachable + end i32.const 0 - end - if - unreachable + drop end local.get $rootOffset local.set $root @@ -1358,7 +1358,7 @@ if i32.const 0 i32.const 368 - i32.const 562 + i32.const 566 i32.const 3 call $~lib/builtins/abort unreachable @@ -1687,7 +1687,7 @@ if i32.const 32 i32.const 368 - i32.const 461 + i32.const 462 i32.const 29 call $~lib/builtins/abort unreachable @@ -1983,6 +1983,8 @@ unreachable end end + i32.const 0 + drop memory.size $0 local.set $pagesAfter local.get $root @@ -2132,7 +2134,7 @@ if i32.const 0 i32.const 368 - i32.const 499 + i32.const 503 i32.const 16 call $~lib/builtins/abort unreachable @@ -2152,7 +2154,7 @@ if i32.const 0 i32.const 368 - i32.const 501 + i32.const 505 i32.const 14 call $~lib/builtins/abort unreachable diff --git a/tests/compiler/getter-call.release.wat b/tests/compiler/getter-call.release.wat index 485f0d940a..2b99fd258f 100644 --- a/tests/compiler/getter-call.release.wat +++ b/tests/compiler/getter-call.release.wat @@ -734,18 +734,16 @@ local.tee $1 i32.const 0 i32.le_s - if (result i32) + if i32.const 1 local.get $1 i32.sub memory.grow $0 i32.const 0 i32.lt_s - else - i32.const 0 - end - if - unreachable + if + unreachable + end end i32.const 34272 i32.const 0 @@ -1043,7 +1041,7 @@ if i32.const 0 i32.const 1392 - i32.const 562 + i32.const 566 i32.const 3 call $~lib/builtins/abort unreachable @@ -1243,7 +1241,7 @@ if i32.const 0 i32.const 1392 - i32.const 499 + i32.const 503 i32.const 16 call $~lib/builtins/abort unreachable @@ -1258,7 +1256,7 @@ if i32.const 0 i32.const 1392 - i32.const 501 + i32.const 505 i32.const 14 call $~lib/builtins/abort unreachable diff --git a/tests/compiler/heap.debug.wat b/tests/compiler/heap.debug.wat index bf6e6caca9..5bdaaf00ad 100644 --- a/tests/compiler/heap.debug.wat +++ b/tests/compiler/heap.debug.wat @@ -872,18 +872,18 @@ local.get $pagesNeeded local.get $pagesBefore i32.gt_s - if (result i32) + if local.get $pagesNeeded local.get $pagesBefore i32.sub memory.grow $0 i32.const 0 i32.lt_s - else + if + unreachable + end i32.const 0 - end - if - unreachable + drop end local.get $rootOffset local.set $root @@ -1002,7 +1002,7 @@ if i32.const 96 i32.const 32 - i32.const 461 + i32.const 462 i32.const 29 call $~lib/builtins/abort unreachable @@ -1298,6 +1298,8 @@ unreachable end end + i32.const 0 + drop memory.size $0 local.set $pagesAfter local.get $root @@ -1447,7 +1449,7 @@ if i32.const 0 i32.const 32 - i32.const 499 + i32.const 503 i32.const 16 call $~lib/builtins/abort unreachable @@ -1467,7 +1469,7 @@ if i32.const 0 i32.const 32 - i32.const 501 + i32.const 505 i32.const 14 call $~lib/builtins/abort unreachable @@ -1532,7 +1534,7 @@ if i32.const 0 i32.const 32 - i32.const 562 + i32.const 566 i32.const 3 call $~lib/builtins/abort unreachable diff --git a/tests/compiler/heap.release.wat b/tests/compiler/heap.release.wat index 417f51de5b..d0a204021b 100644 --- a/tests/compiler/heap.release.wat +++ b/tests/compiler/heap.release.wat @@ -536,18 +536,16 @@ local.tee $1 i32.const 0 i32.le_s - if (result i32) + if i32.const 1 local.get $1 i32.sub memory.grow $0 i32.const 0 i32.lt_s - else - i32.const 0 - end - if - unreachable + if + unreachable + end end i32.const 33936 i32.const 0 @@ -616,7 +614,7 @@ if i32.const 1120 i32.const 1056 - i32.const 461 + i32.const 462 i32.const 29 call $~lib/builtins/abort unreachable @@ -918,7 +916,7 @@ if i32.const 0 i32.const 1056 - i32.const 499 + i32.const 503 i32.const 16 call $~lib/builtins/abort unreachable @@ -933,7 +931,7 @@ if i32.const 0 i32.const 1056 - i32.const 501 + i32.const 505 i32.const 14 call $~lib/builtins/abort unreachable @@ -970,7 +968,7 @@ if i32.const 0 i32.const 1056 - i32.const 562 + i32.const 566 i32.const 3 call $~lib/builtins/abort unreachable diff --git a/tests/compiler/infer-array.debug.wat b/tests/compiler/infer-array.debug.wat index 2ee919b26d..118bb0b8d1 100644 --- a/tests/compiler/infer-array.debug.wat +++ b/tests/compiler/infer-array.debug.wat @@ -1245,18 +1245,18 @@ local.get $pagesNeeded local.get $pagesBefore i32.gt_s - if (result i32) + if local.get $pagesNeeded local.get $pagesBefore i32.sub memory.grow $0 i32.const 0 i32.lt_s - else + if + unreachable + end i32.const 0 - end - if - unreachable + drop end local.get $rootOffset local.set $root @@ -1377,7 +1377,7 @@ if i32.const 0 i32.const 400 - i32.const 562 + i32.const 566 i32.const 3 call $~lib/builtins/abort unreachable @@ -1706,7 +1706,7 @@ if i32.const 64 i32.const 400 - i32.const 461 + i32.const 462 i32.const 29 call $~lib/builtins/abort unreachable @@ -2002,6 +2002,8 @@ unreachable end end + i32.const 0 + drop memory.size $0 local.set $pagesAfter local.get $root @@ -2151,7 +2153,7 @@ if i32.const 0 i32.const 400 - i32.const 499 + i32.const 503 i32.const 16 call $~lib/builtins/abort unreachable @@ -2171,7 +2173,7 @@ if i32.const 0 i32.const 400 - i32.const 501 + i32.const 505 i32.const 14 call $~lib/builtins/abort unreachable diff --git a/tests/compiler/infer-array.release.wat b/tests/compiler/infer-array.release.wat index b2492c4fa9..2957a87312 100644 --- a/tests/compiler/infer-array.release.wat +++ b/tests/compiler/infer-array.release.wat @@ -771,18 +771,16 @@ local.tee $1 i32.const 0 i32.le_s - if (result i32) + if i32.const 1 local.get $1 i32.sub memory.grow $0 i32.const 0 i32.lt_s - else - i32.const 0 - end - if - unreachable + if + unreachable + end end i32.const 34992 i32.const 0 @@ -1080,7 +1078,7 @@ if i32.const 0 i32.const 1424 - i32.const 562 + i32.const 566 i32.const 3 call $~lib/builtins/abort unreachable @@ -1315,7 +1313,7 @@ if i32.const 1088 i32.const 1424 - i32.const 461 + i32.const 462 i32.const 29 call $~lib/builtins/abort unreachable @@ -1413,7 +1411,7 @@ if i32.const 0 i32.const 1424 - i32.const 499 + i32.const 503 i32.const 16 call $~lib/builtins/abort unreachable @@ -1428,7 +1426,7 @@ if i32.const 0 i32.const 1424 - i32.const 501 + i32.const 505 i32.const 14 call $~lib/builtins/abort unreachable diff --git a/tests/compiler/infer-generic.debug.wat b/tests/compiler/infer-generic.debug.wat index f617123eb8..503b7a19ea 100644 --- a/tests/compiler/infer-generic.debug.wat +++ b/tests/compiler/infer-generic.debug.wat @@ -1272,18 +1272,18 @@ local.get $pagesNeeded local.get $pagesBefore i32.gt_s - if (result i32) + if local.get $pagesNeeded local.get $pagesBefore i32.sub memory.grow $0 i32.const 0 i32.lt_s - else + if + unreachable + end i32.const 0 - end - if - unreachable + drop end local.get $rootOffset local.set $root @@ -1404,7 +1404,7 @@ if i32.const 0 i32.const 544 - i32.const 562 + i32.const 566 i32.const 3 call $~lib/builtins/abort unreachable @@ -1733,7 +1733,7 @@ if i32.const 208 i32.const 544 - i32.const 461 + i32.const 462 i32.const 29 call $~lib/builtins/abort unreachable @@ -2029,6 +2029,8 @@ unreachable end end + i32.const 0 + drop memory.size $0 local.set $pagesAfter local.get $root @@ -2178,7 +2180,7 @@ if i32.const 0 i32.const 544 - i32.const 499 + i32.const 503 i32.const 16 call $~lib/builtins/abort unreachable @@ -2198,7 +2200,7 @@ if i32.const 0 i32.const 544 - i32.const 501 + i32.const 505 i32.const 14 call $~lib/builtins/abort unreachable diff --git a/tests/compiler/infer-generic.release.wat b/tests/compiler/infer-generic.release.wat index acfed03605..d2587b06ba 100644 --- a/tests/compiler/infer-generic.release.wat +++ b/tests/compiler/infer-generic.release.wat @@ -758,18 +758,16 @@ local.tee $1 i32.const 0 i32.le_s - if (result i32) + if i32.const 1 local.get $1 i32.sub memory.grow $0 i32.const 0 i32.lt_s - else - i32.const 0 - end - if - unreachable + if + unreachable + end end i32.const 34432 i32.const 0 @@ -1067,7 +1065,7 @@ if i32.const 0 i32.const 1568 - i32.const 562 + i32.const 566 i32.const 3 call $~lib/builtins/abort unreachable @@ -1302,7 +1300,7 @@ if i32.const 1232 i32.const 1568 - i32.const 461 + i32.const 462 i32.const 29 call $~lib/builtins/abort unreachable @@ -1400,7 +1398,7 @@ if i32.const 0 i32.const 1568 - i32.const 499 + i32.const 503 i32.const 16 call $~lib/builtins/abort unreachable @@ -1415,7 +1413,7 @@ if i32.const 0 i32.const 1568 - i32.const 501 + i32.const 505 i32.const 14 call $~lib/builtins/abort unreachable diff --git a/tests/compiler/inlining.debug.wat b/tests/compiler/inlining.debug.wat index 3740c9af7c..d8b54a8b2c 100644 --- a/tests/compiler/inlining.debug.wat +++ b/tests/compiler/inlining.debug.wat @@ -1491,18 +1491,18 @@ local.get $pagesNeeded local.get $pagesBefore i32.gt_s - if (result i32) + if local.get $pagesNeeded local.get $pagesBefore i32.sub memory.grow $0 i32.const 0 i32.lt_s - else + if + unreachable + end i32.const 0 - end - if - unreachable + drop end local.get $rootOffset local.set $root @@ -1623,7 +1623,7 @@ if i32.const 0 i32.const 448 - i32.const 562 + i32.const 566 i32.const 3 call $~lib/builtins/abort unreachable @@ -1952,7 +1952,7 @@ if i32.const 112 i32.const 448 - i32.const 461 + i32.const 462 i32.const 29 call $~lib/builtins/abort unreachable @@ -2248,6 +2248,8 @@ unreachable end end + i32.const 0 + drop memory.size $0 local.set $pagesAfter local.get $root @@ -2397,7 +2399,7 @@ if i32.const 0 i32.const 448 - i32.const 499 + i32.const 503 i32.const 16 call $~lib/builtins/abort unreachable @@ -2417,7 +2419,7 @@ if i32.const 0 i32.const 448 - i32.const 501 + i32.const 505 i32.const 14 call $~lib/builtins/abort unreachable diff --git a/tests/compiler/inlining.release.wat b/tests/compiler/inlining.release.wat index 77804a8363..1f9cf6f2d9 100644 --- a/tests/compiler/inlining.release.wat +++ b/tests/compiler/inlining.release.wat @@ -744,18 +744,16 @@ local.tee $1 i32.const 0 i32.le_s - if (result i32) + if i32.const 1 local.get $1 i32.sub memory.grow $0 i32.const 0 i32.lt_s - else - i32.const 0 - end - if - unreachable + if + unreachable + end end i32.const 34336 i32.const 0 @@ -1053,7 +1051,7 @@ if i32.const 0 i32.const 1472 - i32.const 562 + i32.const 566 i32.const 3 call $~lib/builtins/abort unreachable @@ -1288,7 +1286,7 @@ if i32.const 1136 i32.const 1472 - i32.const 461 + i32.const 462 i32.const 29 call $~lib/builtins/abort unreachable @@ -1386,7 +1384,7 @@ if i32.const 0 i32.const 1472 - i32.const 499 + i32.const 503 i32.const 16 call $~lib/builtins/abort unreachable @@ -1401,7 +1399,7 @@ if i32.const 0 i32.const 1472 - i32.const 501 + i32.const 505 i32.const 14 call $~lib/builtins/abort unreachable diff --git a/tests/compiler/instanceof.debug.wat b/tests/compiler/instanceof.debug.wat index a0d0a1b0aa..389758b96f 100644 --- a/tests/compiler/instanceof.debug.wat +++ b/tests/compiler/instanceof.debug.wat @@ -1247,18 +1247,18 @@ local.get $pagesNeeded local.get $pagesBefore i32.gt_s - if (result i32) + if local.get $pagesNeeded local.get $pagesBefore i32.sub memory.grow $0 i32.const 0 i32.lt_s - else + if + unreachable + end i32.const 0 - end - if - unreachable + drop end local.get $rootOffset local.set $root @@ -1379,7 +1379,7 @@ if i32.const 0 i32.const 368 - i32.const 562 + i32.const 566 i32.const 3 call $~lib/builtins/abort unreachable @@ -1708,7 +1708,7 @@ if i32.const 32 i32.const 368 - i32.const 461 + i32.const 462 i32.const 29 call $~lib/builtins/abort unreachable @@ -2004,6 +2004,8 @@ unreachable end end + i32.const 0 + drop memory.size $0 local.set $pagesAfter local.get $root @@ -2153,7 +2155,7 @@ if i32.const 0 i32.const 368 - i32.const 499 + i32.const 503 i32.const 16 call $~lib/builtins/abort unreachable @@ -2173,7 +2175,7 @@ if i32.const 0 i32.const 368 - i32.const 501 + i32.const 505 i32.const 14 call $~lib/builtins/abort unreachable diff --git a/tests/compiler/instanceof.release.wat b/tests/compiler/instanceof.release.wat index e5507b780a..fa15ee1eb4 100644 --- a/tests/compiler/instanceof.release.wat +++ b/tests/compiler/instanceof.release.wat @@ -836,18 +836,16 @@ local.tee $1 i32.const 0 i32.le_s - if (result i32) + if i32.const 1 local.get $1 i32.sub memory.grow $0 i32.const 0 i32.lt_s - else - i32.const 0 - end - if - unreachable + if + unreachable + end end i32.const 34368 i32.const 0 @@ -1145,7 +1143,7 @@ if i32.const 0 i32.const 1392 - i32.const 562 + i32.const 566 i32.const 3 call $~lib/builtins/abort unreachable @@ -1345,7 +1343,7 @@ if i32.const 0 i32.const 1392 - i32.const 499 + i32.const 503 i32.const 16 call $~lib/builtins/abort unreachable @@ -1360,7 +1358,7 @@ if i32.const 0 i32.const 1392 - i32.const 501 + i32.const 505 i32.const 14 call $~lib/builtins/abort unreachable diff --git a/tests/compiler/issues/1095.debug.wat b/tests/compiler/issues/1095.debug.wat index 3885debe7a..1a55d5197c 100644 --- a/tests/compiler/issues/1095.debug.wat +++ b/tests/compiler/issues/1095.debug.wat @@ -1226,18 +1226,18 @@ local.get $pagesNeeded local.get $pagesBefore i32.gt_s - if (result i32) + if local.get $pagesNeeded local.get $pagesBefore i32.sub memory.grow $0 i32.const 0 i32.lt_s - else + if + unreachable + end i32.const 0 - end - if - unreachable + drop end local.get $rootOffset local.set $root @@ -1358,7 +1358,7 @@ if i32.const 0 i32.const 368 - i32.const 562 + i32.const 566 i32.const 3 call $~lib/builtins/abort unreachable @@ -1687,7 +1687,7 @@ if i32.const 32 i32.const 368 - i32.const 461 + i32.const 462 i32.const 29 call $~lib/builtins/abort unreachable @@ -1983,6 +1983,8 @@ unreachable end end + i32.const 0 + drop memory.size $0 local.set $pagesAfter local.get $root @@ -2132,7 +2134,7 @@ if i32.const 0 i32.const 368 - i32.const 499 + i32.const 503 i32.const 16 call $~lib/builtins/abort unreachable @@ -2152,7 +2154,7 @@ if i32.const 0 i32.const 368 - i32.const 501 + i32.const 505 i32.const 14 call $~lib/builtins/abort unreachable diff --git a/tests/compiler/issues/1095.release.wat b/tests/compiler/issues/1095.release.wat index 4ac8523a24..6d7cd7d42b 100644 --- a/tests/compiler/issues/1095.release.wat +++ b/tests/compiler/issues/1095.release.wat @@ -735,18 +735,16 @@ local.tee $1 i32.const 0 i32.le_s - if (result i32) + if i32.const 1 local.get $1 i32.sub memory.grow $0 i32.const 0 i32.lt_s - else - i32.const 0 - end - if - unreachable + if + unreachable + end end i32.const 34448 i32.const 0 @@ -1044,7 +1042,7 @@ if i32.const 0 i32.const 1392 - i32.const 562 + i32.const 566 i32.const 3 call $~lib/builtins/abort unreachable @@ -1279,7 +1277,7 @@ if i32.const 1056 i32.const 1392 - i32.const 461 + i32.const 462 i32.const 29 call $~lib/builtins/abort unreachable @@ -1377,7 +1375,7 @@ if i32.const 0 i32.const 1392 - i32.const 499 + i32.const 503 i32.const 16 call $~lib/builtins/abort unreachable @@ -1392,7 +1390,7 @@ if i32.const 0 i32.const 1392 - i32.const 501 + i32.const 505 i32.const 14 call $~lib/builtins/abort unreachable diff --git a/tests/compiler/issues/1225.debug.wat b/tests/compiler/issues/1225.debug.wat index 9514862a47..c45a2db20f 100644 --- a/tests/compiler/issues/1225.debug.wat +++ b/tests/compiler/issues/1225.debug.wat @@ -1241,18 +1241,18 @@ local.get $pagesNeeded local.get $pagesBefore i32.gt_s - if (result i32) + if local.get $pagesNeeded local.get $pagesBefore i32.sub memory.grow $0 i32.const 0 i32.lt_s - else + if + unreachable + end i32.const 0 - end - if - unreachable + drop end local.get $rootOffset local.set $root @@ -1373,7 +1373,7 @@ if i32.const 0 i32.const 368 - i32.const 562 + i32.const 566 i32.const 3 call $~lib/builtins/abort unreachable @@ -1702,7 +1702,7 @@ if i32.const 32 i32.const 368 - i32.const 461 + i32.const 462 i32.const 29 call $~lib/builtins/abort unreachable @@ -1998,6 +1998,8 @@ unreachable end end + i32.const 0 + drop memory.size $0 local.set $pagesAfter local.get $root @@ -2147,7 +2149,7 @@ if i32.const 0 i32.const 368 - i32.const 499 + i32.const 503 i32.const 16 call $~lib/builtins/abort unreachable @@ -2167,7 +2169,7 @@ if i32.const 0 i32.const 368 - i32.const 501 + i32.const 505 i32.const 14 call $~lib/builtins/abort unreachable diff --git a/tests/compiler/issues/1225.release.wat b/tests/compiler/issues/1225.release.wat index 40774e3a59..ee92fc2f3b 100644 --- a/tests/compiler/issues/1225.release.wat +++ b/tests/compiler/issues/1225.release.wat @@ -740,18 +740,16 @@ local.tee $1 i32.const 0 i32.le_s - if (result i32) + if i32.const 1 local.get $1 i32.sub memory.grow $0 i32.const 0 i32.lt_s - else - i32.const 0 - end - if - unreachable + if + unreachable + end end i32.const 34288 i32.const 0 @@ -1049,7 +1047,7 @@ if i32.const 0 i32.const 1392 - i32.const 562 + i32.const 566 i32.const 3 call $~lib/builtins/abort unreachable @@ -1249,7 +1247,7 @@ if i32.const 0 i32.const 1392 - i32.const 499 + i32.const 503 i32.const 16 call $~lib/builtins/abort unreachable @@ -1264,7 +1262,7 @@ if i32.const 0 i32.const 1392 - i32.const 501 + i32.const 505 i32.const 14 call $~lib/builtins/abort unreachable diff --git a/tests/compiler/issues/1699.debug.wat b/tests/compiler/issues/1699.debug.wat index 7c5c76c48b..6e90fe9d4b 100644 --- a/tests/compiler/issues/1699.debug.wat +++ b/tests/compiler/issues/1699.debug.wat @@ -1228,18 +1228,18 @@ local.get $pagesNeeded local.get $pagesBefore i32.gt_s - if (result i32) + if local.get $pagesNeeded local.get $pagesBefore i32.sub memory.grow $0 i32.const 0 i32.lt_s - else + if + unreachable + end i32.const 0 - end - if - unreachable + drop end local.get $rootOffset local.set $root @@ -1360,7 +1360,7 @@ if i32.const 0 i32.const 464 - i32.const 562 + i32.const 566 i32.const 3 call $~lib/builtins/abort unreachable @@ -1689,7 +1689,7 @@ if i32.const 128 i32.const 464 - i32.const 461 + i32.const 462 i32.const 29 call $~lib/builtins/abort unreachable @@ -1985,6 +1985,8 @@ unreachable end end + i32.const 0 + drop memory.size $0 local.set $pagesAfter local.get $root @@ -2134,7 +2136,7 @@ if i32.const 0 i32.const 464 - i32.const 499 + i32.const 503 i32.const 16 call $~lib/builtins/abort unreachable @@ -2154,7 +2156,7 @@ if i32.const 0 i32.const 464 - i32.const 501 + i32.const 505 i32.const 14 call $~lib/builtins/abort unreachable diff --git a/tests/compiler/issues/1699.release.wat b/tests/compiler/issues/1699.release.wat index 12d1ca18b1..d0a0a5a8b2 100644 --- a/tests/compiler/issues/1699.release.wat +++ b/tests/compiler/issues/1699.release.wat @@ -742,18 +742,16 @@ local.tee $1 i32.const 0 i32.le_s - if (result i32) + if i32.const 1 local.get $1 i32.sub memory.grow $0 i32.const 0 i32.lt_s - else - i32.const 0 - end - if - unreachable + if + unreachable + end end i32.const 34512 i32.const 0 @@ -1051,7 +1049,7 @@ if i32.const 0 i32.const 1488 - i32.const 562 + i32.const 566 i32.const 3 call $~lib/builtins/abort unreachable @@ -1286,7 +1284,7 @@ if i32.const 1152 i32.const 1488 - i32.const 461 + i32.const 462 i32.const 29 call $~lib/builtins/abort unreachable @@ -1384,7 +1382,7 @@ if i32.const 0 i32.const 1488 - i32.const 499 + i32.const 503 i32.const 16 call $~lib/builtins/abort unreachable @@ -1399,7 +1397,7 @@ if i32.const 0 i32.const 1488 - i32.const 501 + i32.const 505 i32.const 14 call $~lib/builtins/abort unreachable diff --git a/tests/compiler/issues/2166.debug.wat b/tests/compiler/issues/2166.debug.wat index 39c49cc006..d083a0ed28 100644 --- a/tests/compiler/issues/2166.debug.wat +++ b/tests/compiler/issues/2166.debug.wat @@ -1230,18 +1230,18 @@ local.get $pagesNeeded local.get $pagesBefore i32.gt_s - if (result i32) + if local.get $pagesNeeded local.get $pagesBefore i32.sub memory.grow $0 i32.const 0 i32.lt_s - else + if + unreachable + end i32.const 0 - end - if - unreachable + drop end local.get $rootOffset local.set $root @@ -1362,7 +1362,7 @@ if i32.const 0 i32.const 368 - i32.const 562 + i32.const 566 i32.const 3 call $~lib/builtins/abort unreachable @@ -1691,7 +1691,7 @@ if i32.const 32 i32.const 368 - i32.const 461 + i32.const 462 i32.const 29 call $~lib/builtins/abort unreachable @@ -1987,6 +1987,8 @@ unreachable end end + i32.const 0 + drop memory.size $0 local.set $pagesAfter local.get $root @@ -2136,7 +2138,7 @@ if i32.const 0 i32.const 368 - i32.const 499 + i32.const 503 i32.const 16 call $~lib/builtins/abort unreachable @@ -2156,7 +2158,7 @@ if i32.const 0 i32.const 368 - i32.const 501 + i32.const 505 i32.const 14 call $~lib/builtins/abort unreachable diff --git a/tests/compiler/issues/2166.release.wat b/tests/compiler/issues/2166.release.wat index addb2abaee..0f5ce5a795 100644 --- a/tests/compiler/issues/2166.release.wat +++ b/tests/compiler/issues/2166.release.wat @@ -740,18 +740,16 @@ local.tee $1 i32.const 0 i32.le_s - if (result i32) + if i32.const 1 local.get $1 i32.sub memory.grow $0 i32.const 0 i32.lt_s - else - i32.const 0 - end - if - unreachable + if + unreachable + end end i32.const 34432 i32.const 0 @@ -1049,7 +1047,7 @@ if i32.const 0 i32.const 1392 - i32.const 562 + i32.const 566 i32.const 3 call $~lib/builtins/abort unreachable @@ -1249,7 +1247,7 @@ if i32.const 0 i32.const 1392 - i32.const 499 + i32.const 503 i32.const 16 call $~lib/builtins/abort unreachable @@ -1264,7 +1262,7 @@ if i32.const 0 i32.const 1392 - i32.const 501 + i32.const 505 i32.const 14 call $~lib/builtins/abort unreachable diff --git a/tests/compiler/issues/2322/index.debug.wat b/tests/compiler/issues/2322/index.debug.wat index 7ff1a4a09b..e36c57dc30 100644 --- a/tests/compiler/issues/2322/index.debug.wat +++ b/tests/compiler/issues/2322/index.debug.wat @@ -1224,18 +1224,18 @@ local.get $pagesNeeded local.get $pagesBefore i32.gt_s - if (result i32) + if local.get $pagesNeeded local.get $pagesBefore i32.sub memory.grow $0 i32.const 0 i32.lt_s - else + if + unreachable + end i32.const 0 - end - if - unreachable + drop end local.get $rootOffset local.set $root @@ -1356,7 +1356,7 @@ if i32.const 0 i32.const 368 - i32.const 562 + i32.const 566 i32.const 3 call $~lib/builtins/abort unreachable @@ -1685,7 +1685,7 @@ if i32.const 32 i32.const 368 - i32.const 461 + i32.const 462 i32.const 29 call $~lib/builtins/abort unreachable @@ -1981,6 +1981,8 @@ unreachable end end + i32.const 0 + drop memory.size $0 local.set $pagesAfter local.get $root @@ -2130,7 +2132,7 @@ if i32.const 0 i32.const 368 - i32.const 499 + i32.const 503 i32.const 16 call $~lib/builtins/abort unreachable @@ -2150,7 +2152,7 @@ if i32.const 0 i32.const 368 - i32.const 501 + i32.const 505 i32.const 14 call $~lib/builtins/abort unreachable diff --git a/tests/compiler/issues/2322/index.release.wat b/tests/compiler/issues/2322/index.release.wat index f1d42124ee..2b0b2d52ba 100644 --- a/tests/compiler/issues/2322/index.release.wat +++ b/tests/compiler/issues/2322/index.release.wat @@ -730,18 +730,16 @@ local.tee $1 i32.const 0 i32.le_s - if (result i32) + if i32.const 1 local.get $1 i32.sub memory.grow $0 i32.const 0 i32.lt_s - else - i32.const 0 - end - if - unreachable + if + unreachable + end end i32.const 34240 i32.const 0 @@ -1039,7 +1037,7 @@ if i32.const 0 i32.const 1392 - i32.const 562 + i32.const 566 i32.const 3 call $~lib/builtins/abort unreachable @@ -1274,7 +1272,7 @@ if i32.const 1056 i32.const 1392 - i32.const 461 + i32.const 462 i32.const 29 call $~lib/builtins/abort unreachable @@ -1372,7 +1370,7 @@ if i32.const 0 i32.const 1392 - i32.const 499 + i32.const 503 i32.const 16 call $~lib/builtins/abort unreachable @@ -1387,7 +1385,7 @@ if i32.const 0 i32.const 1392 - i32.const 501 + i32.const 505 i32.const 14 call $~lib/builtins/abort unreachable diff --git a/tests/compiler/issues/2622.debug.wat b/tests/compiler/issues/2622.debug.wat index 860a0a0b91..ec3e5910f3 100644 --- a/tests/compiler/issues/2622.debug.wat +++ b/tests/compiler/issues/2622.debug.wat @@ -1227,18 +1227,18 @@ local.get $pagesNeeded local.get $pagesBefore i32.gt_s - if (result i32) + if local.get $pagesNeeded local.get $pagesBefore i32.sub memory.grow $0 i32.const 0 i32.lt_s - else + if + unreachable + end i32.const 0 - end - if - unreachable + drop end local.get $rootOffset local.set $root @@ -1359,7 +1359,7 @@ if i32.const 0 i32.const 368 - i32.const 562 + i32.const 566 i32.const 3 call $~lib/builtins/abort unreachable @@ -1688,7 +1688,7 @@ if i32.const 32 i32.const 368 - i32.const 461 + i32.const 462 i32.const 29 call $~lib/builtins/abort unreachable @@ -1984,6 +1984,8 @@ unreachable end end + i32.const 0 + drop memory.size $0 local.set $pagesAfter local.get $root @@ -2133,7 +2135,7 @@ if i32.const 0 i32.const 368 - i32.const 499 + i32.const 503 i32.const 16 call $~lib/builtins/abort unreachable @@ -2153,7 +2155,7 @@ if i32.const 0 i32.const 368 - i32.const 501 + i32.const 505 i32.const 14 call $~lib/builtins/abort unreachable diff --git a/tests/compiler/issues/2622.release.wat b/tests/compiler/issues/2622.release.wat index 2b438537a0..2c5ef428b5 100644 --- a/tests/compiler/issues/2622.release.wat +++ b/tests/compiler/issues/2622.release.wat @@ -769,18 +769,16 @@ local.tee $1 i32.const 0 i32.le_s - if (result i32) + if i32.const 1 local.get $1 i32.sub memory.grow $0 i32.const 0 i32.lt_s - else - i32.const 0 - end - if - unreachable + if + unreachable + end end i32.const 34240 i32.const 0 @@ -1078,7 +1076,7 @@ if i32.const 0 i32.const 1392 - i32.const 562 + i32.const 566 i32.const 3 call $~lib/builtins/abort unreachable @@ -1278,7 +1276,7 @@ if i32.const 0 i32.const 1392 - i32.const 499 + i32.const 503 i32.const 16 call $~lib/builtins/abort unreachable @@ -1293,7 +1291,7 @@ if i32.const 0 i32.const 1392 - i32.const 501 + i32.const 505 i32.const 14 call $~lib/builtins/abort unreachable diff --git a/tests/compiler/logical.debug.wat b/tests/compiler/logical.debug.wat index fad4d4ffc2..d6b2174533 100644 --- a/tests/compiler/logical.debug.wat +++ b/tests/compiler/logical.debug.wat @@ -1253,18 +1253,18 @@ local.get $pagesNeeded local.get $pagesBefore i32.gt_s - if (result i32) + if local.get $pagesNeeded local.get $pagesBefore i32.sub memory.grow $0 i32.const 0 i32.lt_s - else + if + unreachable + end i32.const 0 - end - if - unreachable + drop end local.get $rootOffset local.set $root @@ -1385,7 +1385,7 @@ if i32.const 0 i32.const 416 - i32.const 562 + i32.const 566 i32.const 3 call $~lib/builtins/abort unreachable @@ -1714,7 +1714,7 @@ if i32.const 80 i32.const 416 - i32.const 461 + i32.const 462 i32.const 29 call $~lib/builtins/abort unreachable @@ -2010,6 +2010,8 @@ unreachable end end + i32.const 0 + drop memory.size $0 local.set $pagesAfter local.get $root @@ -2159,7 +2161,7 @@ if i32.const 0 i32.const 416 - i32.const 499 + i32.const 503 i32.const 16 call $~lib/builtins/abort unreachable @@ -2179,7 +2181,7 @@ if i32.const 0 i32.const 416 - i32.const 501 + i32.const 505 i32.const 14 call $~lib/builtins/abort unreachable diff --git a/tests/compiler/logical.release.wat b/tests/compiler/logical.release.wat index abc2afedfa..91db893bd8 100644 --- a/tests/compiler/logical.release.wat +++ b/tests/compiler/logical.release.wat @@ -745,18 +745,16 @@ local.tee $1 i32.const 0 i32.le_s - if (result i32) + if i32.const 1 local.get $1 i32.sub memory.grow $0 i32.const 0 i32.lt_s - else - i32.const 0 - end - if - unreachable + if + unreachable + end end i32.const 34304 i32.const 0 @@ -1054,7 +1052,7 @@ if i32.const 0 i32.const 1440 - i32.const 562 + i32.const 566 i32.const 3 call $~lib/builtins/abort unreachable @@ -1254,7 +1252,7 @@ if i32.const 0 i32.const 1440 - i32.const 499 + i32.const 503 i32.const 16 call $~lib/builtins/abort unreachable @@ -1269,7 +1267,7 @@ if i32.const 0 i32.const 1440 - i32.const 501 + i32.const 505 i32.const 14 call $~lib/builtins/abort unreachable diff --git a/tests/compiler/managed-cast.debug.wat b/tests/compiler/managed-cast.debug.wat index 4fb7b175d9..2d4960fbfc 100644 --- a/tests/compiler/managed-cast.debug.wat +++ b/tests/compiler/managed-cast.debug.wat @@ -1226,18 +1226,18 @@ local.get $pagesNeeded local.get $pagesBefore i32.gt_s - if (result i32) + if local.get $pagesNeeded local.get $pagesBefore i32.sub memory.grow $0 i32.const 0 i32.lt_s - else + if + unreachable + end i32.const 0 - end - if - unreachable + drop end local.get $rootOffset local.set $root @@ -1358,7 +1358,7 @@ if i32.const 0 i32.const 368 - i32.const 562 + i32.const 566 i32.const 3 call $~lib/builtins/abort unreachable @@ -1687,7 +1687,7 @@ if i32.const 32 i32.const 368 - i32.const 461 + i32.const 462 i32.const 29 call $~lib/builtins/abort unreachable @@ -1983,6 +1983,8 @@ unreachable end end + i32.const 0 + drop memory.size $0 local.set $pagesAfter local.get $root @@ -2132,7 +2134,7 @@ if i32.const 0 i32.const 368 - i32.const 499 + i32.const 503 i32.const 16 call $~lib/builtins/abort unreachable @@ -2152,7 +2154,7 @@ if i32.const 0 i32.const 368 - i32.const 501 + i32.const 505 i32.const 14 call $~lib/builtins/abort unreachable diff --git a/tests/compiler/managed-cast.release.wat b/tests/compiler/managed-cast.release.wat index 5e26cf390f..ae418a7def 100644 --- a/tests/compiler/managed-cast.release.wat +++ b/tests/compiler/managed-cast.release.wat @@ -735,18 +735,16 @@ local.tee $1 i32.const 0 i32.le_s - if (result i32) + if i32.const 1 local.get $1 i32.sub memory.grow $0 i32.const 0 i32.lt_s - else - i32.const 0 - end - if - unreachable + if + unreachable + end end i32.const 34496 i32.const 0 @@ -1044,7 +1042,7 @@ if i32.const 0 i32.const 1392 - i32.const 562 + i32.const 566 i32.const 3 call $~lib/builtins/abort unreachable @@ -1244,7 +1242,7 @@ if i32.const 0 i32.const 1392 - i32.const 499 + i32.const 503 i32.const 16 call $~lib/builtins/abort unreachable @@ -1259,7 +1257,7 @@ if i32.const 0 i32.const 1392 - i32.const 501 + i32.const 505 i32.const 14 call $~lib/builtins/abort unreachable diff --git a/tests/compiler/new.debug.wat b/tests/compiler/new.debug.wat index b0a882fcdb..788ce6daca 100644 --- a/tests/compiler/new.debug.wat +++ b/tests/compiler/new.debug.wat @@ -1229,18 +1229,18 @@ local.get $pagesNeeded local.get $pagesBefore i32.gt_s - if (result i32) + if local.get $pagesNeeded local.get $pagesBefore i32.sub memory.grow $0 i32.const 0 i32.lt_s - else + if + unreachable + end i32.const 0 - end - if - unreachable + drop end local.get $rootOffset local.set $root @@ -1361,7 +1361,7 @@ if i32.const 0 i32.const 368 - i32.const 562 + i32.const 566 i32.const 3 call $~lib/builtins/abort unreachable @@ -1690,7 +1690,7 @@ if i32.const 32 i32.const 368 - i32.const 461 + i32.const 462 i32.const 29 call $~lib/builtins/abort unreachable @@ -1986,6 +1986,8 @@ unreachable end end + i32.const 0 + drop memory.size $0 local.set $pagesAfter local.get $root @@ -2135,7 +2137,7 @@ if i32.const 0 i32.const 368 - i32.const 499 + i32.const 503 i32.const 16 call $~lib/builtins/abort unreachable @@ -2155,7 +2157,7 @@ if i32.const 0 i32.const 368 - i32.const 501 + i32.const 505 i32.const 14 call $~lib/builtins/abort unreachable diff --git a/tests/compiler/new.release.wat b/tests/compiler/new.release.wat index 438eba16e8..abbeb8fd64 100644 --- a/tests/compiler/new.release.wat +++ b/tests/compiler/new.release.wat @@ -771,18 +771,16 @@ local.tee $1 i32.const 0 i32.le_s - if (result i32) + if i32.const 1 local.get $1 i32.sub memory.grow $0 i32.const 0 i32.lt_s - else - i32.const 0 - end - if - unreachable + if + unreachable + end end i32.const 34256 i32.const 0 @@ -1080,7 +1078,7 @@ if i32.const 0 i32.const 1392 - i32.const 562 + i32.const 566 i32.const 3 call $~lib/builtins/abort unreachable @@ -1280,7 +1278,7 @@ if i32.const 0 i32.const 1392 - i32.const 499 + i32.const 503 i32.const 16 call $~lib/builtins/abort unreachable @@ -1295,7 +1293,7 @@ if i32.const 0 i32.const 1392 - i32.const 501 + i32.const 505 i32.const 14 call $~lib/builtins/abort unreachable diff --git a/tests/compiler/object-literal.debug.wat b/tests/compiler/object-literal.debug.wat index 570fbc57d4..476aa5a084 100644 --- a/tests/compiler/object-literal.debug.wat +++ b/tests/compiler/object-literal.debug.wat @@ -1321,18 +1321,18 @@ local.get $pagesNeeded local.get $pagesBefore i32.gt_s - if (result i32) + if local.get $pagesNeeded local.get $pagesBefore i32.sub memory.grow $0 i32.const 0 i32.lt_s - else + if + unreachable + end i32.const 0 - end - if - unreachable + drop end local.get $rootOffset local.set $root @@ -1453,7 +1453,7 @@ if i32.const 0 i32.const 416 - i32.const 562 + i32.const 566 i32.const 3 call $~lib/builtins/abort unreachable @@ -1782,7 +1782,7 @@ if i32.const 288 i32.const 416 - i32.const 461 + i32.const 462 i32.const 29 call $~lib/builtins/abort unreachable @@ -2078,6 +2078,8 @@ unreachable end end + i32.const 0 + drop memory.size $0 local.set $pagesAfter local.get $root @@ -2227,7 +2229,7 @@ if i32.const 0 i32.const 416 - i32.const 499 + i32.const 503 i32.const 16 call $~lib/builtins/abort unreachable @@ -2247,7 +2249,7 @@ if i32.const 0 i32.const 416 - i32.const 501 + i32.const 505 i32.const 14 call $~lib/builtins/abort unreachable diff --git a/tests/compiler/object-literal.release.wat b/tests/compiler/object-literal.release.wat index 79bce27f83..fbeac219aa 100644 --- a/tests/compiler/object-literal.release.wat +++ b/tests/compiler/object-literal.release.wat @@ -745,18 +745,16 @@ local.tee $1 i32.const 0 i32.le_s - if (result i32) + if i32.const 1 local.get $1 i32.sub memory.grow $0 i32.const 0 i32.lt_s - else - i32.const 0 - end - if - unreachable + if + unreachable + end end i32.const 34528 i32.const 0 @@ -855,7 +853,7 @@ if i32.const 0 i32.const 1440 - i32.const 562 + i32.const 566 i32.const 3 call $~lib/builtins/abort unreachable @@ -1227,7 +1225,7 @@ if i32.const 1312 i32.const 1440 - i32.const 461 + i32.const 462 i32.const 29 call $~lib/builtins/abort unreachable @@ -1325,7 +1323,7 @@ if i32.const 0 i32.const 1440 - i32.const 499 + i32.const 503 i32.const 16 call $~lib/builtins/abort unreachable @@ -1340,7 +1338,7 @@ if i32.const 0 i32.const 1440 - i32.const 501 + i32.const 505 i32.const 14 call $~lib/builtins/abort unreachable diff --git a/tests/compiler/optional-typeparameters.debug.wat b/tests/compiler/optional-typeparameters.debug.wat index ea99c2b3f8..229758a302 100644 --- a/tests/compiler/optional-typeparameters.debug.wat +++ b/tests/compiler/optional-typeparameters.debug.wat @@ -1237,18 +1237,18 @@ local.get $pagesNeeded local.get $pagesBefore i32.gt_s - if (result i32) + if local.get $pagesNeeded local.get $pagesBefore i32.sub memory.grow $0 i32.const 0 i32.lt_s - else + if + unreachable + end i32.const 0 - end - if - unreachable + drop end local.get $rootOffset local.set $root @@ -1369,7 +1369,7 @@ if i32.const 0 i32.const 368 - i32.const 562 + i32.const 566 i32.const 3 call $~lib/builtins/abort unreachable @@ -1698,7 +1698,7 @@ if i32.const 32 i32.const 368 - i32.const 461 + i32.const 462 i32.const 29 call $~lib/builtins/abort unreachable @@ -1994,6 +1994,8 @@ unreachable end end + i32.const 0 + drop memory.size $0 local.set $pagesAfter local.get $root @@ -2143,7 +2145,7 @@ if i32.const 0 i32.const 368 - i32.const 499 + i32.const 503 i32.const 16 call $~lib/builtins/abort unreachable @@ -2163,7 +2165,7 @@ if i32.const 0 i32.const 368 - i32.const 501 + i32.const 505 i32.const 14 call $~lib/builtins/abort unreachable diff --git a/tests/compiler/optional-typeparameters.release.wat b/tests/compiler/optional-typeparameters.release.wat index 338470aae5..28e65e9e86 100644 --- a/tests/compiler/optional-typeparameters.release.wat +++ b/tests/compiler/optional-typeparameters.release.wat @@ -757,18 +757,16 @@ local.tee $1 i32.const 0 i32.le_s - if (result i32) + if i32.const 1 local.get $1 i32.sub memory.grow $0 i32.const 0 i32.lt_s - else - i32.const 0 - end - if - unreachable + if + unreachable + end end i32.const 34256 i32.const 0 @@ -1066,7 +1064,7 @@ if i32.const 0 i32.const 1392 - i32.const 562 + i32.const 566 i32.const 3 call $~lib/builtins/abort unreachable @@ -1266,7 +1264,7 @@ if i32.const 0 i32.const 1392 - i32.const 499 + i32.const 503 i32.const 16 call $~lib/builtins/abort unreachable @@ -1281,7 +1279,7 @@ if i32.const 0 i32.const 1392 - i32.const 501 + i32.const 505 i32.const 14 call $~lib/builtins/abort unreachable diff --git a/tests/compiler/reexport.debug.wat b/tests/compiler/reexport.debug.wat index b19004b09e..c112bbafce 100644 --- a/tests/compiler/reexport.debug.wat +++ b/tests/compiler/reexport.debug.wat @@ -1270,18 +1270,18 @@ local.get $pagesNeeded local.get $pagesBefore i32.gt_s - if (result i32) + if local.get $pagesNeeded local.get $pagesBefore i32.sub memory.grow $0 i32.const 0 i32.lt_s - else + if + unreachable + end i32.const 0 - end - if - unreachable + drop end local.get $rootOffset local.set $root @@ -1402,7 +1402,7 @@ if i32.const 0 i32.const 416 - i32.const 562 + i32.const 566 i32.const 3 call $~lib/builtins/abort unreachable @@ -1731,7 +1731,7 @@ if i32.const 80 i32.const 416 - i32.const 461 + i32.const 462 i32.const 29 call $~lib/builtins/abort unreachable @@ -2027,6 +2027,8 @@ unreachable end end + i32.const 0 + drop memory.size $0 local.set $pagesAfter local.get $root @@ -2176,7 +2178,7 @@ if i32.const 0 i32.const 416 - i32.const 499 + i32.const 503 i32.const 16 call $~lib/builtins/abort unreachable @@ -2196,7 +2198,7 @@ if i32.const 0 i32.const 416 - i32.const 501 + i32.const 505 i32.const 14 call $~lib/builtins/abort unreachable diff --git a/tests/compiler/reexport.release.wat b/tests/compiler/reexport.release.wat index aa6cf67823..7bac80c212 100644 --- a/tests/compiler/reexport.release.wat +++ b/tests/compiler/reexport.release.wat @@ -764,18 +764,16 @@ local.tee $1 i32.const 0 i32.le_s - if (result i32) + if i32.const 1 local.get $1 i32.sub memory.grow $0 i32.const 0 i32.lt_s - else - i32.const 0 - end - if - unreachable + if + unreachable + end end i32.const 34288 i32.const 0 @@ -1073,7 +1071,7 @@ if i32.const 0 i32.const 1440 - i32.const 562 + i32.const 566 i32.const 3 call $~lib/builtins/abort unreachable @@ -1273,7 +1271,7 @@ if i32.const 0 i32.const 1440 - i32.const 499 + i32.const 503 i32.const 16 call $~lib/builtins/abort unreachable @@ -1288,7 +1286,7 @@ if i32.const 0 i32.const 1440 - i32.const 501 + i32.const 505 i32.const 14 call $~lib/builtins/abort unreachable diff --git a/tests/compiler/rereexport.debug.wat b/tests/compiler/rereexport.debug.wat index b409499e1b..2fdb4b7f20 100644 --- a/tests/compiler/rereexport.debug.wat +++ b/tests/compiler/rereexport.debug.wat @@ -1263,18 +1263,18 @@ local.get $pagesNeeded local.get $pagesBefore i32.gt_s - if (result i32) + if local.get $pagesNeeded local.get $pagesBefore i32.sub memory.grow $0 i32.const 0 i32.lt_s - else + if + unreachable + end i32.const 0 - end - if - unreachable + drop end local.get $rootOffset local.set $root @@ -1395,7 +1395,7 @@ if i32.const 0 i32.const 416 - i32.const 562 + i32.const 566 i32.const 3 call $~lib/builtins/abort unreachable @@ -1724,7 +1724,7 @@ if i32.const 80 i32.const 416 - i32.const 461 + i32.const 462 i32.const 29 call $~lib/builtins/abort unreachable @@ -2020,6 +2020,8 @@ unreachable end end + i32.const 0 + drop memory.size $0 local.set $pagesAfter local.get $root @@ -2169,7 +2171,7 @@ if i32.const 0 i32.const 416 - i32.const 499 + i32.const 503 i32.const 16 call $~lib/builtins/abort unreachable @@ -2189,7 +2191,7 @@ if i32.const 0 i32.const 416 - i32.const 501 + i32.const 505 i32.const 14 call $~lib/builtins/abort unreachable diff --git a/tests/compiler/rereexport.release.wat b/tests/compiler/rereexport.release.wat index 4ca358b3ef..a049534ceb 100644 --- a/tests/compiler/rereexport.release.wat +++ b/tests/compiler/rereexport.release.wat @@ -762,18 +762,16 @@ local.tee $1 i32.const 0 i32.le_s - if (result i32) + if i32.const 1 local.get $1 i32.sub memory.grow $0 i32.const 0 i32.lt_s - else - i32.const 0 - end - if - unreachable + if + unreachable + end end i32.const 34336 i32.const 0 @@ -1071,7 +1069,7 @@ if i32.const 0 i32.const 1440 - i32.const 562 + i32.const 566 i32.const 3 call $~lib/builtins/abort unreachable @@ -1271,7 +1269,7 @@ if i32.const 0 i32.const 1440 - i32.const 499 + i32.const 503 i32.const 16 call $~lib/builtins/abort unreachable @@ -1286,7 +1284,7 @@ if i32.const 0 i32.const 1440 - i32.const 501 + i32.const 505 i32.const 14 call $~lib/builtins/abort unreachable diff --git a/tests/compiler/resolve-access.debug.wat b/tests/compiler/resolve-access.debug.wat index daff744a0a..e234a85411 100644 --- a/tests/compiler/resolve-access.debug.wat +++ b/tests/compiler/resolve-access.debug.wat @@ -1245,18 +1245,18 @@ local.get $pagesNeeded local.get $pagesBefore i32.gt_s - if (result i32) + if local.get $pagesNeeded local.get $pagesBefore i32.sub memory.grow $0 i32.const 0 i32.lt_s - else + if + unreachable + end i32.const 0 - end - if - unreachable + drop end local.get $rootOffset local.set $root @@ -1377,7 +1377,7 @@ if i32.const 0 i32.const 400 - i32.const 562 + i32.const 566 i32.const 3 call $~lib/builtins/abort unreachable @@ -1706,7 +1706,7 @@ if i32.const 64 i32.const 400 - i32.const 461 + i32.const 462 i32.const 29 call $~lib/builtins/abort unreachable @@ -2002,6 +2002,8 @@ unreachable end end + i32.const 0 + drop memory.size $0 local.set $pagesAfter local.get $root @@ -2151,7 +2153,7 @@ if i32.const 0 i32.const 400 - i32.const 499 + i32.const 503 i32.const 16 call $~lib/builtins/abort unreachable @@ -2171,7 +2173,7 @@ if i32.const 0 i32.const 400 - i32.const 501 + i32.const 505 i32.const 14 call $~lib/builtins/abort unreachable diff --git a/tests/compiler/resolve-access.release.wat b/tests/compiler/resolve-access.release.wat index 81f11c300d..f9956d38b3 100644 --- a/tests/compiler/resolve-access.release.wat +++ b/tests/compiler/resolve-access.release.wat @@ -753,18 +753,16 @@ local.tee $1 i32.const 0 i32.le_s - if (result i32) + if i32.const 1 local.get $1 i32.sub memory.grow $0 i32.const 0 i32.lt_s - else - i32.const 0 - end - if - unreachable + if + unreachable + end end i32.const 36096 i32.const 0 @@ -1062,7 +1060,7 @@ if i32.const 0 i32.const 1424 - i32.const 562 + i32.const 566 i32.const 3 call $~lib/builtins/abort unreachable @@ -1297,7 +1295,7 @@ if i32.const 1088 i32.const 1424 - i32.const 461 + i32.const 462 i32.const 29 call $~lib/builtins/abort unreachable @@ -1395,7 +1393,7 @@ if i32.const 0 i32.const 1424 - i32.const 499 + i32.const 503 i32.const 16 call $~lib/builtins/abort unreachable @@ -1410,7 +1408,7 @@ if i32.const 0 i32.const 1424 - i32.const 501 + i32.const 505 i32.const 14 call $~lib/builtins/abort unreachable diff --git a/tests/compiler/resolve-binary.debug.wat b/tests/compiler/resolve-binary.debug.wat index 8e4d5246fe..9611d6c90d 100644 --- a/tests/compiler/resolve-binary.debug.wat +++ b/tests/compiler/resolve-binary.debug.wat @@ -1465,18 +1465,18 @@ local.get $pagesNeeded local.get $pagesBefore i32.gt_s - if (result i32) + if local.get $pagesNeeded local.get $pagesBefore i32.sub memory.grow $0 i32.const 0 i32.lt_s - else + if + unreachable + end i32.const 0 - end - if - unreachable + drop end local.get $rootOffset local.set $root @@ -1597,7 +1597,7 @@ if i32.const 0 i32.const 720 - i32.const 562 + i32.const 566 i32.const 3 call $~lib/builtins/abort unreachable @@ -1926,7 +1926,7 @@ if i32.const 384 i32.const 720 - i32.const 461 + i32.const 462 i32.const 29 call $~lib/builtins/abort unreachable @@ -2222,6 +2222,8 @@ unreachable end end + i32.const 0 + drop memory.size $0 local.set $pagesAfter local.get $root @@ -2371,7 +2373,7 @@ if i32.const 0 i32.const 720 - i32.const 499 + i32.const 503 i32.const 16 call $~lib/builtins/abort unreachable @@ -2391,7 +2393,7 @@ if i32.const 0 i32.const 720 - i32.const 501 + i32.const 505 i32.const 14 call $~lib/builtins/abort unreachable diff --git a/tests/compiler/resolve-binary.release.wat b/tests/compiler/resolve-binary.release.wat index 361d585398..2e08884cc2 100644 --- a/tests/compiler/resolve-binary.release.wat +++ b/tests/compiler/resolve-binary.release.wat @@ -962,18 +962,16 @@ local.tee $1 i32.const 0 i32.le_s - if (result i32) + if i32.const 1 local.get $1 i32.sub memory.grow $0 i32.const 0 i32.lt_s - else - i32.const 0 - end - if - unreachable + if + unreachable + end end i32.const 44016 i32.const 0 @@ -1271,7 +1269,7 @@ if i32.const 0 i32.const 1744 - i32.const 562 + i32.const 566 i32.const 3 call $~lib/builtins/abort unreachable @@ -1506,7 +1504,7 @@ if i32.const 1408 i32.const 1744 - i32.const 461 + i32.const 462 i32.const 29 call $~lib/builtins/abort unreachable @@ -1604,7 +1602,7 @@ if i32.const 0 i32.const 1744 - i32.const 499 + i32.const 503 i32.const 16 call $~lib/builtins/abort unreachable @@ -1619,7 +1617,7 @@ if i32.const 0 i32.const 1744 - i32.const 501 + i32.const 505 i32.const 14 call $~lib/builtins/abort unreachable diff --git a/tests/compiler/resolve-elementaccess.debug.wat b/tests/compiler/resolve-elementaccess.debug.wat index 4f7f102983..202306bea5 100644 --- a/tests/compiler/resolve-elementaccess.debug.wat +++ b/tests/compiler/resolve-elementaccess.debug.wat @@ -1268,18 +1268,18 @@ local.get $pagesNeeded local.get $pagesBefore i32.gt_s - if (result i32) + if local.get $pagesNeeded local.get $pagesBefore i32.sub memory.grow $0 i32.const 0 i32.lt_s - else + if + unreachable + end i32.const 0 - end - if - unreachable + drop end local.get $rootOffset local.set $root @@ -1400,7 +1400,7 @@ if i32.const 0 i32.const 480 - i32.const 562 + i32.const 566 i32.const 3 call $~lib/builtins/abort unreachable @@ -1729,7 +1729,7 @@ if i32.const 144 i32.const 480 - i32.const 461 + i32.const 462 i32.const 29 call $~lib/builtins/abort unreachable @@ -2025,6 +2025,8 @@ unreachable end end + i32.const 0 + drop memory.size $0 local.set $pagesAfter local.get $root @@ -2174,7 +2176,7 @@ if i32.const 0 i32.const 480 - i32.const 499 + i32.const 503 i32.const 16 call $~lib/builtins/abort unreachable @@ -2194,7 +2196,7 @@ if i32.const 0 i32.const 480 - i32.const 501 + i32.const 505 i32.const 14 call $~lib/builtins/abort unreachable diff --git a/tests/compiler/resolve-elementaccess.release.wat b/tests/compiler/resolve-elementaccess.release.wat index b08ff52596..36d96c9e97 100644 --- a/tests/compiler/resolve-elementaccess.release.wat +++ b/tests/compiler/resolve-elementaccess.release.wat @@ -805,18 +805,16 @@ local.tee $1 i32.const 0 i32.le_s - if (result i32) + if i32.const 1 local.get $1 i32.sub memory.grow $0 i32.const 0 i32.lt_s - else - i32.const 0 - end - if - unreachable + if + unreachable + end end i32.const 37600 i32.const 0 @@ -1114,7 +1112,7 @@ if i32.const 0 i32.const 1504 - i32.const 562 + i32.const 566 i32.const 3 call $~lib/builtins/abort unreachable @@ -1349,7 +1347,7 @@ if i32.const 1168 i32.const 1504 - i32.const 461 + i32.const 462 i32.const 29 call $~lib/builtins/abort unreachable @@ -1447,7 +1445,7 @@ if i32.const 0 i32.const 1504 - i32.const 499 + i32.const 503 i32.const 16 call $~lib/builtins/abort unreachable @@ -1462,7 +1460,7 @@ if i32.const 0 i32.const 1504 - i32.const 501 + i32.const 505 i32.const 14 call $~lib/builtins/abort unreachable diff --git a/tests/compiler/resolve-function-expression.debug.wat b/tests/compiler/resolve-function-expression.debug.wat index a9cdc844bf..639798b662 100644 --- a/tests/compiler/resolve-function-expression.debug.wat +++ b/tests/compiler/resolve-function-expression.debug.wat @@ -1311,18 +1311,18 @@ local.get $pagesNeeded local.get $pagesBefore i32.gt_s - if (result i32) + if local.get $pagesNeeded local.get $pagesBefore i32.sub memory.grow $0 i32.const 0 i32.lt_s - else + if + unreachable + end i32.const 0 - end - if - unreachable + drop end local.get $rootOffset local.set $root @@ -1443,7 +1443,7 @@ if i32.const 0 i32.const 768 - i32.const 562 + i32.const 566 i32.const 3 call $~lib/builtins/abort unreachable @@ -1772,7 +1772,7 @@ if i32.const 432 i32.const 768 - i32.const 461 + i32.const 462 i32.const 29 call $~lib/builtins/abort unreachable @@ -2068,6 +2068,8 @@ unreachable end end + i32.const 0 + drop memory.size $0 local.set $pagesAfter local.get $root @@ -2217,7 +2219,7 @@ if i32.const 0 i32.const 768 - i32.const 499 + i32.const 503 i32.const 16 call $~lib/builtins/abort unreachable @@ -2237,7 +2239,7 @@ if i32.const 0 i32.const 768 - i32.const 501 + i32.const 505 i32.const 14 call $~lib/builtins/abort unreachable diff --git a/tests/compiler/resolve-function-expression.release.wat b/tests/compiler/resolve-function-expression.release.wat index 27215c7055..8561fec9f2 100644 --- a/tests/compiler/resolve-function-expression.release.wat +++ b/tests/compiler/resolve-function-expression.release.wat @@ -772,18 +772,16 @@ local.tee $1 i32.const 0 i32.le_s - if (result i32) + if i32.const 1 local.get $1 i32.sub memory.grow $0 i32.const 0 i32.lt_s - else - i32.const 0 - end - if - unreachable + if + unreachable + end end i32.const 36224 i32.const 0 @@ -1081,7 +1079,7 @@ if i32.const 0 i32.const 1792 - i32.const 562 + i32.const 566 i32.const 3 call $~lib/builtins/abort unreachable @@ -1414,7 +1412,7 @@ if i32.const 1456 i32.const 1792 - i32.const 461 + i32.const 462 i32.const 29 call $~lib/builtins/abort unreachable @@ -1512,7 +1510,7 @@ if i32.const 0 i32.const 1792 - i32.const 499 + i32.const 503 i32.const 16 call $~lib/builtins/abort unreachable @@ -1527,7 +1525,7 @@ if i32.const 0 i32.const 1792 - i32.const 501 + i32.const 505 i32.const 14 call $~lib/builtins/abort unreachable diff --git a/tests/compiler/resolve-new.debug.wat b/tests/compiler/resolve-new.debug.wat index 3b02a74784..41bc50be74 100644 --- a/tests/compiler/resolve-new.debug.wat +++ b/tests/compiler/resolve-new.debug.wat @@ -1224,18 +1224,18 @@ local.get $pagesNeeded local.get $pagesBefore i32.gt_s - if (result i32) + if local.get $pagesNeeded local.get $pagesBefore i32.sub memory.grow $0 i32.const 0 i32.lt_s - else + if + unreachable + end i32.const 0 - end - if - unreachable + drop end local.get $rootOffset local.set $root @@ -1356,7 +1356,7 @@ if i32.const 0 i32.const 368 - i32.const 562 + i32.const 566 i32.const 3 call $~lib/builtins/abort unreachable @@ -1685,7 +1685,7 @@ if i32.const 32 i32.const 368 - i32.const 461 + i32.const 462 i32.const 29 call $~lib/builtins/abort unreachable @@ -1981,6 +1981,8 @@ unreachable end end + i32.const 0 + drop memory.size $0 local.set $pagesAfter local.get $root @@ -2130,7 +2132,7 @@ if i32.const 0 i32.const 368 - i32.const 499 + i32.const 503 i32.const 16 call $~lib/builtins/abort unreachable @@ -2150,7 +2152,7 @@ if i32.const 0 i32.const 368 - i32.const 501 + i32.const 505 i32.const 14 call $~lib/builtins/abort unreachable diff --git a/tests/compiler/resolve-new.release.wat b/tests/compiler/resolve-new.release.wat index 78f4407d8e..2bd2dbe5eb 100644 --- a/tests/compiler/resolve-new.release.wat +++ b/tests/compiler/resolve-new.release.wat @@ -736,18 +736,16 @@ local.tee $1 i32.const 0 i32.le_s - if (result i32) + if i32.const 1 local.get $1 i32.sub memory.grow $0 i32.const 0 i32.lt_s - else - i32.const 0 - end - if - unreachable + if + unreachable + end end i32.const 34240 i32.const 0 @@ -1045,7 +1043,7 @@ if i32.const 0 i32.const 1392 - i32.const 562 + i32.const 566 i32.const 3 call $~lib/builtins/abort unreachable @@ -1245,7 +1243,7 @@ if i32.const 0 i32.const 1392 - i32.const 499 + i32.const 503 i32.const 16 call $~lib/builtins/abort unreachable @@ -1260,7 +1258,7 @@ if i32.const 0 i32.const 1392 - i32.const 501 + i32.const 505 i32.const 14 call $~lib/builtins/abort unreachable diff --git a/tests/compiler/resolve-propertyaccess.debug.wat b/tests/compiler/resolve-propertyaccess.debug.wat index c40972e4f0..6d548b1b7c 100644 --- a/tests/compiler/resolve-propertyaccess.debug.wat +++ b/tests/compiler/resolve-propertyaccess.debug.wat @@ -1311,18 +1311,18 @@ local.get $pagesNeeded local.get $pagesBefore i32.gt_s - if (result i32) + if local.get $pagesNeeded local.get $pagesBefore i32.sub memory.grow $0 i32.const 0 i32.lt_s - else + if + unreachable + end i32.const 0 - end - if - unreachable + drop end local.get $rootOffset local.set $root @@ -1443,7 +1443,7 @@ if i32.const 0 i32.const 592 - i32.const 562 + i32.const 566 i32.const 3 call $~lib/builtins/abort unreachable @@ -1772,7 +1772,7 @@ if i32.const 256 i32.const 592 - i32.const 461 + i32.const 462 i32.const 29 call $~lib/builtins/abort unreachable @@ -2068,6 +2068,8 @@ unreachable end end + i32.const 0 + drop memory.size $0 local.set $pagesAfter local.get $root @@ -2217,7 +2219,7 @@ if i32.const 0 i32.const 592 - i32.const 499 + i32.const 503 i32.const 16 call $~lib/builtins/abort unreachable @@ -2237,7 +2239,7 @@ if i32.const 0 i32.const 592 - i32.const 501 + i32.const 505 i32.const 14 call $~lib/builtins/abort unreachable diff --git a/tests/compiler/resolve-propertyaccess.release.wat b/tests/compiler/resolve-propertyaccess.release.wat index 05ca990b33..e2ecd311cd 100644 --- a/tests/compiler/resolve-propertyaccess.release.wat +++ b/tests/compiler/resolve-propertyaccess.release.wat @@ -771,18 +771,16 @@ local.tee $1 i32.const 0 i32.le_s - if (result i32) + if i32.const 1 local.get $1 i32.sub memory.grow $0 i32.const 0 i32.lt_s - else - i32.const 0 - end - if - unreachable + if + unreachable + end end i32.const 36480 i32.const 0 @@ -1080,7 +1078,7 @@ if i32.const 0 i32.const 1616 - i32.const 562 + i32.const 566 i32.const 3 call $~lib/builtins/abort unreachable @@ -1315,7 +1313,7 @@ if i32.const 1280 i32.const 1616 - i32.const 461 + i32.const 462 i32.const 29 call $~lib/builtins/abort unreachable @@ -1413,7 +1411,7 @@ if i32.const 0 i32.const 1616 - i32.const 499 + i32.const 503 i32.const 16 call $~lib/builtins/abort unreachable @@ -1428,7 +1426,7 @@ if i32.const 0 i32.const 1616 - i32.const 501 + i32.const 505 i32.const 14 call $~lib/builtins/abort unreachable diff --git a/tests/compiler/resolve-ternary.debug.wat b/tests/compiler/resolve-ternary.debug.wat index 88fe3f8e4c..430e609f22 100644 --- a/tests/compiler/resolve-ternary.debug.wat +++ b/tests/compiler/resolve-ternary.debug.wat @@ -1319,18 +1319,18 @@ local.get $pagesNeeded local.get $pagesBefore i32.gt_s - if (result i32) + if local.get $pagesNeeded local.get $pagesBefore i32.sub memory.grow $0 i32.const 0 i32.lt_s - else + if + unreachable + end i32.const 0 - end - if - unreachable + drop end local.get $rootOffset local.set $root @@ -1451,7 +1451,7 @@ if i32.const 0 i32.const 592 - i32.const 562 + i32.const 566 i32.const 3 call $~lib/builtins/abort unreachable @@ -1780,7 +1780,7 @@ if i32.const 256 i32.const 592 - i32.const 461 + i32.const 462 i32.const 29 call $~lib/builtins/abort unreachable @@ -2076,6 +2076,8 @@ unreachable end end + i32.const 0 + drop memory.size $0 local.set $pagesAfter local.get $root @@ -2225,7 +2227,7 @@ if i32.const 0 i32.const 592 - i32.const 499 + i32.const 503 i32.const 16 call $~lib/builtins/abort unreachable @@ -2245,7 +2247,7 @@ if i32.const 0 i32.const 592 - i32.const 501 + i32.const 505 i32.const 14 call $~lib/builtins/abort unreachable diff --git a/tests/compiler/resolve-ternary.release.wat b/tests/compiler/resolve-ternary.release.wat index fd5bc84dca..eb3490c64c 100644 --- a/tests/compiler/resolve-ternary.release.wat +++ b/tests/compiler/resolve-ternary.release.wat @@ -777,18 +777,16 @@ local.tee $1 i32.const 0 i32.le_s - if (result i32) + if i32.const 1 local.get $1 i32.sub memory.grow $0 i32.const 0 i32.lt_s - else - i32.const 0 - end - if - unreachable + if + unreachable + end end i32.const 37408 i32.const 0 @@ -1086,7 +1084,7 @@ if i32.const 0 i32.const 1616 - i32.const 562 + i32.const 566 i32.const 3 call $~lib/builtins/abort unreachable @@ -1321,7 +1319,7 @@ if i32.const 1280 i32.const 1616 - i32.const 461 + i32.const 462 i32.const 29 call $~lib/builtins/abort unreachable @@ -1419,7 +1417,7 @@ if i32.const 0 i32.const 1616 - i32.const 499 + i32.const 503 i32.const 16 call $~lib/builtins/abort unreachable @@ -1434,7 +1432,7 @@ if i32.const 0 i32.const 1616 - i32.const 501 + i32.const 505 i32.const 14 call $~lib/builtins/abort unreachable diff --git a/tests/compiler/resolve-unary.debug.wat b/tests/compiler/resolve-unary.debug.wat index 862a3d4188..328cb7982c 100644 --- a/tests/compiler/resolve-unary.debug.wat +++ b/tests/compiler/resolve-unary.debug.wat @@ -1311,18 +1311,18 @@ local.get $pagesNeeded local.get $pagesBefore i32.gt_s - if (result i32) + if local.get $pagesNeeded local.get $pagesBefore i32.sub memory.grow $0 i32.const 0 i32.lt_s - else + if + unreachable + end i32.const 0 - end - if - unreachable + drop end local.get $rootOffset local.set $root @@ -1443,7 +1443,7 @@ if i32.const 0 i32.const 592 - i32.const 562 + i32.const 566 i32.const 3 call $~lib/builtins/abort unreachable @@ -1772,7 +1772,7 @@ if i32.const 256 i32.const 592 - i32.const 461 + i32.const 462 i32.const 29 call $~lib/builtins/abort unreachable @@ -2068,6 +2068,8 @@ unreachable end end + i32.const 0 + drop memory.size $0 local.set $pagesAfter local.get $root @@ -2217,7 +2219,7 @@ if i32.const 0 i32.const 592 - i32.const 499 + i32.const 503 i32.const 16 call $~lib/builtins/abort unreachable @@ -2237,7 +2239,7 @@ if i32.const 0 i32.const 592 - i32.const 501 + i32.const 505 i32.const 14 call $~lib/builtins/abort unreachable diff --git a/tests/compiler/resolve-unary.release.wat b/tests/compiler/resolve-unary.release.wat index 446dbe2298..1b8dce0321 100644 --- a/tests/compiler/resolve-unary.release.wat +++ b/tests/compiler/resolve-unary.release.wat @@ -797,18 +797,16 @@ local.tee $1 i32.const 0 i32.le_s - if (result i32) + if i32.const 1 local.get $1 i32.sub memory.grow $0 i32.const 0 i32.lt_s - else - i32.const 0 - end - if - unreachable + if + unreachable + end end i32.const 36640 i32.const 0 @@ -1106,7 +1104,7 @@ if i32.const 0 i32.const 1616 - i32.const 562 + i32.const 566 i32.const 3 call $~lib/builtins/abort unreachable @@ -1341,7 +1339,7 @@ if i32.const 1280 i32.const 1616 - i32.const 461 + i32.const 462 i32.const 29 call $~lib/builtins/abort unreachable @@ -1439,7 +1437,7 @@ if i32.const 0 i32.const 1616 - i32.const 499 + i32.const 503 i32.const 16 call $~lib/builtins/abort unreachable @@ -1454,7 +1452,7 @@ if i32.const 0 i32.const 1616 - i32.const 501 + i32.const 505 i32.const 14 call $~lib/builtins/abort unreachable diff --git a/tests/compiler/return-unreachable.debug.wat b/tests/compiler/return-unreachable.debug.wat index ce61a8bc37..5a33de96e6 100644 --- a/tests/compiler/return-unreachable.debug.wat +++ b/tests/compiler/return-unreachable.debug.wat @@ -1227,18 +1227,18 @@ local.get $pagesNeeded local.get $pagesBefore i32.gt_s - if (result i32) + if local.get $pagesNeeded local.get $pagesBefore i32.sub memory.grow $0 i32.const 0 i32.lt_s - else + if + unreachable + end i32.const 0 - end - if - unreachable + drop end local.get $rootOffset local.set $root @@ -1359,7 +1359,7 @@ if i32.const 0 i32.const 464 - i32.const 562 + i32.const 566 i32.const 3 call $~lib/builtins/abort unreachable @@ -1688,7 +1688,7 @@ if i32.const 128 i32.const 464 - i32.const 461 + i32.const 462 i32.const 29 call $~lib/builtins/abort unreachable @@ -1984,6 +1984,8 @@ unreachable end end + i32.const 0 + drop memory.size $0 local.set $pagesAfter local.get $root @@ -2133,7 +2135,7 @@ if i32.const 0 i32.const 464 - i32.const 499 + i32.const 503 i32.const 16 call $~lib/builtins/abort unreachable @@ -2153,7 +2155,7 @@ if i32.const 0 i32.const 464 - i32.const 501 + i32.const 505 i32.const 14 call $~lib/builtins/abort unreachable diff --git a/tests/compiler/return-unreachable.release.wat b/tests/compiler/return-unreachable.release.wat index a30d733294..e47b5c046a 100644 --- a/tests/compiler/return-unreachable.release.wat +++ b/tests/compiler/return-unreachable.release.wat @@ -737,18 +737,16 @@ local.tee $1 i32.const 0 i32.le_s - if (result i32) + if i32.const 1 local.get $1 i32.sub memory.grow $0 i32.const 0 i32.lt_s - else - i32.const 0 - end - if - unreachable + if + unreachable + end end i32.const 34336 i32.const 0 @@ -1046,7 +1044,7 @@ if i32.const 0 i32.const 1488 - i32.const 562 + i32.const 566 i32.const 3 call $~lib/builtins/abort unreachable @@ -1281,7 +1279,7 @@ if i32.const 1152 i32.const 1488 - i32.const 461 + i32.const 462 i32.const 29 call $~lib/builtins/abort unreachable @@ -1379,7 +1377,7 @@ if i32.const 0 i32.const 1488 - i32.const 499 + i32.const 503 i32.const 16 call $~lib/builtins/abort unreachable @@ -1394,7 +1392,7 @@ if i32.const 0 i32.const 1488 - i32.const 501 + i32.const 505 i32.const 14 call $~lib/builtins/abort unreachable diff --git a/tests/compiler/rt/alloc-large-memory.debug.wat b/tests/compiler/rt/alloc-large-memory.debug.wat index e2aa202376..38ee2aceee 100644 --- a/tests/compiler/rt/alloc-large-memory.debug.wat +++ b/tests/compiler/rt/alloc-large-memory.debug.wat @@ -869,18 +869,18 @@ local.get $pagesNeeded local.get $pagesBefore i32.gt_s - if (result i32) + if local.get $pagesNeeded local.get $pagesBefore i32.sub memory.grow $0 i32.const 0 i32.lt_s - else + if + unreachable + end i32.const 0 - end - if - unreachable + drop end local.get $rootOffset local.set $root @@ -999,7 +999,7 @@ if i32.const 96 i32.const 32 - i32.const 461 + i32.const 462 i32.const 29 call $~lib/builtins/abort unreachable @@ -1295,6 +1295,8 @@ unreachable end end + i32.const 0 + drop memory.size $0 local.set $pagesAfter local.get $root @@ -1444,7 +1446,7 @@ if i32.const 0 i32.const 32 - i32.const 499 + i32.const 503 i32.const 16 call $~lib/builtins/abort unreachable @@ -1464,7 +1466,7 @@ if i32.const 0 i32.const 32 - i32.const 501 + i32.const 505 i32.const 14 call $~lib/builtins/abort unreachable diff --git a/tests/compiler/rt/alloc-large-memory.release.wat b/tests/compiler/rt/alloc-large-memory.release.wat index dcdd6257a6..b557586b62 100644 --- a/tests/compiler/rt/alloc-large-memory.release.wat +++ b/tests/compiler/rt/alloc-large-memory.release.wat @@ -665,18 +665,16 @@ local.tee $2 i32.const 0 i32.le_s - if (result i32) + if i32.const 1 local.get $2 i32.sub memory.grow $0 i32.const 0 i32.lt_s - else - i32.const 0 - end - if - unreachable + if + unreachable + end end i32.const 33936 i32.const 0 @@ -746,7 +744,7 @@ if i32.const 1120 i32.const 1056 - i32.const 461 + i32.const 462 i32.const 29 call $~lib/builtins/abort unreachable @@ -844,7 +842,7 @@ if i32.const 0 i32.const 1056 - i32.const 499 + i32.const 503 i32.const 16 call $~lib/builtins/abort unreachable @@ -859,7 +857,7 @@ if i32.const 0 i32.const 1056 - i32.const 501 + i32.const 505 i32.const 14 call $~lib/builtins/abort unreachable diff --git a/tests/compiler/rt/finalize.debug.wat b/tests/compiler/rt/finalize.debug.wat index 95ff6cc8a3..49cf76a2bc 100644 --- a/tests/compiler/rt/finalize.debug.wat +++ b/tests/compiler/rt/finalize.debug.wat @@ -1243,18 +1243,18 @@ local.get $pagesNeeded local.get $pagesBefore i32.gt_s - if (result i32) + if local.get $pagesNeeded local.get $pagesBefore i32.sub memory.grow $0 i32.const 0 i32.lt_s - else + if + unreachable + end i32.const 0 - end - if - unreachable + drop end local.get $rootOffset local.set $root @@ -1375,7 +1375,7 @@ if i32.const 0 i32.const 416 - i32.const 562 + i32.const 566 i32.const 3 call $~lib/builtins/abort unreachable @@ -1708,7 +1708,7 @@ if i32.const 32 i32.const 416 - i32.const 461 + i32.const 462 i32.const 29 call $~lib/builtins/abort unreachable @@ -2004,6 +2004,8 @@ unreachable end end + i32.const 0 + drop memory.size $0 local.set $pagesAfter local.get $root @@ -2153,7 +2155,7 @@ if i32.const 0 i32.const 416 - i32.const 499 + i32.const 503 i32.const 16 call $~lib/builtins/abort unreachable @@ -2173,7 +2175,7 @@ if i32.const 0 i32.const 416 - i32.const 501 + i32.const 505 i32.const 14 call $~lib/builtins/abort unreachable diff --git a/tests/compiler/rt/finalize.release.wat b/tests/compiler/rt/finalize.release.wat index c72c96d7a2..625ba53a48 100644 --- a/tests/compiler/rt/finalize.release.wat +++ b/tests/compiler/rt/finalize.release.wat @@ -734,18 +734,16 @@ local.tee $1 i32.const 0 i32.le_s - if (result i32) + if i32.const 1 local.get $1 i32.sub memory.grow $0 i32.const 0 i32.lt_s - else - i32.const 0 - end - if - unreachable + if + unreachable + end end i32.const 34288 i32.const 0 @@ -1058,7 +1056,7 @@ if i32.const 0 i32.const 1440 - i32.const 562 + i32.const 566 i32.const 3 call $~lib/builtins/abort unreachable @@ -1258,7 +1256,7 @@ if i32.const 0 i32.const 1440 - i32.const 499 + i32.const 503 i32.const 16 call $~lib/builtins/abort unreachable @@ -1273,7 +1271,7 @@ if i32.const 0 i32.const 1440 - i32.const 501 + i32.const 505 i32.const 14 call $~lib/builtins/abort unreachable diff --git a/tests/compiler/rt/grow-handler.debug.wat b/tests/compiler/rt/grow-handler.debug.wat new file mode 100644 index 0000000000..493affbf3c --- /dev/null +++ b/tests/compiler/rt/grow-handler.debug.wat @@ -0,0 +1,2752 @@ +(module + (type $i32_=>_i32 (func (param i32) (result i32))) + (type $i32_i32_=>_none (func (param i32 i32))) + (type $i32_=>_none (func (param i32))) + (type $none_=>_none (func)) + (type $i32_i32_=>_i32 (func (param i32 i32) (result i32))) + (type $i32_i32_i32_=>_none (func (param i32 i32 i32))) + (type $i32_i32_i32_i32_=>_none (func (param i32 i32 i32 i32))) + (type $i32_i32_i64_=>_i32 (func (param i32 i32 i64) (result i32))) + (type $none_=>_i32 (func (result i32))) + (import "env" "abort" (func $~lib/builtins/abort (param i32 i32 i32 i32))) + (import "grow" "handler" (func $rt/grow-handler/handler)) + (global $rt/grow-handler/leak (mut i32) (i32.const 64)) + (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)) + (global $~lib/rt/itcms/visitCount (mut i32) (i32.const 0)) + (global $~lib/rt/itcms/pinSpace (mut i32) (i32.const 0)) + (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/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 592)) + (global $~lib/memory/__data_end i32 (i32.const 616)) + (global $~lib/memory/__stack_pointer (mut i32) (i32.const 33384)) + (global $~lib/memory/__heap_base i32 (i32.const 33384)) + (memory $0 1) + (data $0 (i32.const 12) "\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 $1 (i32.const 44) ",\00\00\00\00\00\00\00\00\00\00\00\04\00\00\00\10\00\00\00 \00\00\00 \00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\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\1a\00\00\00~\00l\00i\00b\00/\00a\00r\00r\00a\00y\00.\00t\00s\00\00\00") + (data $4 (i32.const 188) "<\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 252) "<\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 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 352) "\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00") + (data $8 (i32.const 380) "<\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 444) ",\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 496) "\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00") + (data $11 (i32.const 524) "<\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 592) "\05\00\00\00 \00\00\00 \00\00\00 \00\00\00\00\00\00\00\02\t\00\00") + (table $0 1 1 funcref) + (elem $0 (i32.const 1)) + (export "stress" (func $rt/grow-handler/stress)) + (export "memory" (memory $0)) + (start $~start) + (func $~lib/array/Array#get:length_ (param $this i32) (result i32) + local.get $this + i32.load $0 offset=12 + ) + (func $~lib/arraybuffer/ArrayBufferView#get:byteLength (param $this i32) (result i32) + local.get $this + i32.load $0 offset=8 + ) + (func $~lib/arraybuffer/ArrayBufferView#get:buffer (param $this i32) (result i32) + local.get $this + i32.load $0 + ) + (func $~lib/rt/common/BLOCK#get:mmInfo (param $this i32) (result i32) + local.get $this + i32.load $0 + ) + (func $~lib/rt/itcms/Object#set:rtSize (param $this i32) (param $rtSize i32) + local.get $this + local.get $rtSize + i32.store $0 offset=16 + ) + (func $~lib/rt/itcms/Object#get:rtId (param $this i32) (result i32) + local.get $this + i32.load $0 offset=12 + ) + (func $~lib/rt/itcms/Object#set:nextWithColor (param $this i32) (param $nextWithColor i32) + local.get $this + local.get $nextWithColor + i32.store $0 offset=4 + ) + (func $~lib/rt/itcms/Object#set:prev (param $this i32) (param $prev i32) + local.get $this + local.get $prev + i32.store $0 offset=8 + ) + (func $~lib/rt/itcms/initLazy (param $space i32) (result i32) + local.get $space + local.get $space + call $~lib/rt/itcms/Object#set:nextWithColor + local.get $space + local.get $space + call $~lib/rt/itcms/Object#set:prev + local.get $space + return + ) + (func $~lib/rt/itcms/Object#get:nextWithColor (param $this i32) (result i32) + local.get $this + i32.load $0 offset=4 + ) + (func $~lib/rt/itcms/Object#get:next (param $this i32) (result i32) + local.get $this + call $~lib/rt/itcms/Object#get:nextWithColor + i32.const 3 + i32.const -1 + i32.xor + i32.and + return + ) + (func $~lib/rt/itcms/Object#get:color (param $this i32) (result i32) + local.get $this + call $~lib/rt/itcms/Object#get:nextWithColor + i32.const 3 + i32.and + return + ) + (func $~lib/rt/itcms/visitRoots (param $cookie i32) + (local $pn i32) + (local $iter i32) + local.get $cookie + call $~lib/rt/__visit_globals + global.get $~lib/rt/itcms/pinSpace + local.set $pn + local.get $pn + call $~lib/rt/itcms/Object#get:next + local.set $iter + loop $while-continue|0 + local.get $iter + local.get $pn + i32.ne + if + i32.const 1 + drop + local.get $iter + call $~lib/rt/itcms/Object#get:color + i32.const 3 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 272 + i32.const 160 + i32.const 16 + call $~lib/builtins/abort + unreachable + end + local.get $iter + i32.const 20 + i32.add + local.get $cookie + call $~lib/rt/__visit_members + local.get $iter + call $~lib/rt/itcms/Object#get:next + local.set $iter + br $while-continue|0 + end + end + ) + (func $~lib/rt/itcms/Object#set:color (param $this i32) (param $color i32) + local.get $this + local.get $this + call $~lib/rt/itcms/Object#get:nextWithColor + i32.const 3 + i32.const -1 + i32.xor + i32.and + local.get $color + i32.or + call $~lib/rt/itcms/Object#set:nextWithColor + ) + (func $~lib/rt/itcms/Object#get:prev (param $this i32) (result i32) + local.get $this + i32.load $0 offset=8 + ) + (func $~lib/rt/itcms/Object#set:next (param $this i32) (param $obj i32) + local.get $this + local.get $obj + local.get $this + call $~lib/rt/itcms/Object#get:nextWithColor + i32.const 3 + i32.and + i32.or + call $~lib/rt/itcms/Object#set:nextWithColor + ) + (func $~lib/rt/itcms/Object#unlink (param $this i32) + (local $next i32) + (local $prev i32) + local.get $this + call $~lib/rt/itcms/Object#get:next + local.set $next + local.get $next + i32.const 0 + i32.eq + if + i32.const 1 + drop + local.get $this + call $~lib/rt/itcms/Object#get:prev + i32.const 0 + i32.eq + if (result i32) + local.get $this + global.get $~lib/memory/__heap_base + i32.lt_u + else + i32.const 0 + end + i32.eqz + if + i32.const 0 + i32.const 272 + i32.const 128 + i32.const 18 + call $~lib/builtins/abort + unreachable + end + return + end + local.get $this + call $~lib/rt/itcms/Object#get:prev + local.set $prev + i32.const 1 + drop + local.get $prev + i32.eqz + if + i32.const 0 + i32.const 272 + i32.const 132 + i32.const 16 + call $~lib/builtins/abort + unreachable + end + local.get $next + local.get $prev + call $~lib/rt/itcms/Object#set:prev + local.get $prev + local.get $next + call $~lib/rt/itcms/Object#set:next + ) + (func $~lib/shared/typeinfo/Typeinfo#get:flags (param $this i32) (result i32) + local.get $this + i32.load $0 + ) + (func $~lib/rt/__typeinfo (param $id i32) (result i32) + (local $ptr i32) + global.get $~lib/rt/__rtti_base + local.set $ptr + local.get $id + local.get $ptr + i32.load $0 + i32.gt_u + if + i32.const 400 + i32.const 464 + i32.const 21 + i32.const 28 + call $~lib/builtins/abort + unreachable + end + local.get $ptr + i32.const 4 + i32.add + local.get $id + i32.const 4 + i32.mul + i32.add + call $~lib/shared/typeinfo/Typeinfo#get:flags + return + ) + (func $~lib/rt/itcms/Object#get:isPointerfree (param $this i32) (result i32) + (local $rtId i32) + local.get $this + call $~lib/rt/itcms/Object#get:rtId + local.set $rtId + local.get $rtId + i32.const 2 + i32.le_u + if (result i32) + i32.const 1 + else + local.get $rtId + call $~lib/rt/__typeinfo + i32.const 32 + i32.and + i32.const 0 + i32.ne + end + return + ) + (func $~lib/rt/itcms/Object#linkTo (param $this i32) (param $list i32) (param $withColor i32) + (local $prev i32) + local.get $list + call $~lib/rt/itcms/Object#get:prev + local.set $prev + local.get $this + local.get $list + local.get $withColor + i32.or + call $~lib/rt/itcms/Object#set:nextWithColor + local.get $this + local.get $prev + call $~lib/rt/itcms/Object#set:prev + local.get $prev + local.get $this + call $~lib/rt/itcms/Object#set:next + local.get $list + local.get $this + call $~lib/rt/itcms/Object#set:prev + ) + (func $~lib/rt/itcms/Object#makeGray (param $this i32) + (local $1 i32) + local.get $this + global.get $~lib/rt/itcms/iter + i32.eq + if + local.get $this + call $~lib/rt/itcms/Object#get:prev + local.tee $1 + i32.eqz + if (result i32) + i32.const 0 + i32.const 272 + i32.const 148 + i32.const 30 + call $~lib/builtins/abort + unreachable + else + local.get $1 + end + global.set $~lib/rt/itcms/iter + end + local.get $this + call $~lib/rt/itcms/Object#unlink + local.get $this + global.get $~lib/rt/itcms/toSpace + local.get $this + call $~lib/rt/itcms/Object#get:isPointerfree + if (result i32) + global.get $~lib/rt/itcms/white + i32.eqz + else + i32.const 2 + end + call $~lib/rt/itcms/Object#linkTo + ) + (func $~lib/rt/itcms/__visit (param $ptr i32) (param $cookie i32) + (local $obj i32) + local.get $ptr + i32.eqz + if + return + end + local.get $ptr + i32.const 20 + i32.sub + local.set $obj + i32.const 0 + drop + local.get $obj + call $~lib/rt/itcms/Object#get:color + global.get $~lib/rt/itcms/white + i32.eq + if + local.get $obj + call $~lib/rt/itcms/Object#makeGray + global.get $~lib/rt/itcms/visitCount + i32.const 1 + i32.add + global.set $~lib/rt/itcms/visitCount + end + ) + (func $~lib/rt/itcms/visitStack (param $cookie i32) + (local $ptr i32) + global.get $~lib/memory/__stack_pointer + local.set $ptr + loop $while-continue|0 + local.get $ptr + global.get $~lib/memory/__heap_base + i32.lt_u + if + local.get $ptr + i32.load $0 + local.get $cookie + call $~lib/rt/itcms/__visit + local.get $ptr + i32.const 4 + i32.add + local.set $ptr + br $while-continue|0 + end + end + ) + (func $~lib/rt/itcms/Object#get:size (param $this i32) (result i32) + i32.const 4 + local.get $this + call $~lib/rt/common/BLOCK#get:mmInfo + i32.const 3 + i32.const -1 + i32.xor + i32.and + i32.add + return + ) + (func $~lib/rt/tlsf/Root#set:flMap (param $this i32) (param $flMap i32) + local.get $this + local.get $flMap + i32.store $0 + ) + (func $~lib/rt/common/BLOCK#set:mmInfo (param $this i32) (param $mmInfo i32) + local.get $this + local.get $mmInfo + i32.store $0 + ) + (func $~lib/rt/tlsf/Block#set:prev (param $this i32) (param $prev i32) + local.get $this + local.get $prev + i32.store $0 offset=4 + ) + (func $~lib/rt/tlsf/Block#set:next (param $this i32) (param $next i32) + local.get $this + local.get $next + i32.store $0 offset=8 + ) + (func $~lib/rt/tlsf/Block#get:prev (param $this i32) (result i32) + local.get $this + i32.load $0 offset=4 + ) + (func $~lib/rt/tlsf/Block#get:next (param $this i32) (result i32) + local.get $this + i32.load $0 offset=8 + ) + (func $~lib/rt/tlsf/Root#get:flMap (param $this i32) (result i32) + local.get $this + i32.load $0 + ) + (func $~lib/rt/tlsf/removeBlock (param $root i32) (param $block i32) + (local $blockInfo i32) + (local $size i32) + (local $fl i32) + (local $sl i32) + (local $6 i32) + (local $7 i32) + (local $boundedSize i32) + (local $prev i32) + (local $next i32) + (local $root|11 i32) + (local $fl|12 i32) + (local $sl|13 i32) + (local $root|14 i32) + (local $fl|15 i32) + (local $sl|16 i32) + (local $head i32) + (local $root|18 i32) + (local $fl|19 i32) + (local $slMap i32) + (local $root|21 i32) + (local $fl|22 i32) + (local $slMap|23 i32) + local.get $block + call $~lib/rt/common/BLOCK#get:mmInfo + local.set $blockInfo + i32.const 1 + drop + local.get $blockInfo + i32.const 1 + i32.and + i32.eqz + if + i32.const 0 + i32.const 544 + i32.const 268 + i32.const 14 + call $~lib/builtins/abort + unreachable + end + local.get $blockInfo + i32.const 3 + i32.const -1 + i32.xor + i32.and + local.set $size + i32.const 1 + drop + local.get $size + i32.const 12 + i32.ge_u + i32.eqz + if + i32.const 0 + i32.const 544 + i32.const 270 + i32.const 14 + call $~lib/builtins/abort + unreachable + end + local.get $size + i32.const 256 + i32.lt_u + if + i32.const 0 + local.set $fl + local.get $size + i32.const 4 + i32.shr_u + local.set $sl + else + local.get $size + local.tee $6 + i32.const 1073741820 + local.tee $7 + local.get $6 + local.get $7 + i32.lt_u + select + local.set $boundedSize + i32.const 31 + local.get $boundedSize + i32.clz + i32.sub + local.set $fl + local.get $boundedSize + local.get $fl + i32.const 4 + i32.sub + i32.shr_u + i32.const 1 + i32.const 4 + i32.shl + i32.xor + local.set $sl + local.get $fl + i32.const 8 + i32.const 1 + i32.sub + i32.sub + local.set $fl + end + i32.const 1 + drop + local.get $fl + i32.const 23 + i32.lt_u + if (result i32) + local.get $sl + i32.const 16 + i32.lt_u + else + i32.const 0 + end + i32.eqz + if + i32.const 0 + i32.const 544 + i32.const 284 + i32.const 14 + call $~lib/builtins/abort + unreachable + end + local.get $block + call $~lib/rt/tlsf/Block#get:prev + local.set $prev + local.get $block + call $~lib/rt/tlsf/Block#get:next + local.set $next + local.get $prev + if + local.get $prev + local.get $next + call $~lib/rt/tlsf/Block#set:next + end + local.get $next + if + local.get $next + local.get $prev + call $~lib/rt/tlsf/Block#set:prev + end + local.get $block + block $~lib/rt/tlsf/GETHEAD|inlined.0 (result i32) + local.get $root + local.set $root|11 + local.get $fl + local.set $fl|12 + local.get $sl + local.set $sl|13 + local.get $root|11 + local.get $fl|12 + i32.const 4 + i32.shl + local.get $sl|13 + i32.add + i32.const 2 + i32.shl + i32.add + i32.load $0 offset=96 + br $~lib/rt/tlsf/GETHEAD|inlined.0 + end + i32.eq + if + local.get $root + local.set $root|14 + local.get $fl + local.set $fl|15 + local.get $sl + local.set $sl|16 + local.get $next + local.set $head + local.get $root|14 + local.get $fl|15 + i32.const 4 + i32.shl + local.get $sl|16 + i32.add + i32.const 2 + i32.shl + i32.add + local.get $head + i32.store $0 offset=96 + local.get $next + i32.eqz + if + block $~lib/rt/tlsf/GETSL|inlined.0 (result i32) + local.get $root + local.set $root|18 + local.get $fl + local.set $fl|19 + local.get $root|18 + local.get $fl|19 + i32.const 2 + i32.shl + i32.add + i32.load $0 offset=4 + br $~lib/rt/tlsf/GETSL|inlined.0 + end + local.set $slMap + local.get $root + local.set $root|21 + local.get $fl + local.set $fl|22 + local.get $slMap + i32.const 1 + local.get $sl + i32.shl + i32.const -1 + i32.xor + i32.and + local.tee $slMap + local.set $slMap|23 + local.get $root|21 + local.get $fl|22 + i32.const 2 + i32.shl + i32.add + local.get $slMap|23 + i32.store $0 offset=4 + local.get $slMap + i32.eqz + if + local.get $root + local.get $root + call $~lib/rt/tlsf/Root#get:flMap + i32.const 1 + local.get $fl + i32.shl + i32.const -1 + i32.xor + i32.and + call $~lib/rt/tlsf/Root#set:flMap + end + end + end + ) + (func $~lib/rt/tlsf/insertBlock (param $root i32) (param $block i32) + (local $blockInfo i32) + (local $block|3 i32) + (local $right i32) + (local $rightInfo i32) + (local $block|6 i32) + (local $block|7 i32) + (local $left i32) + (local $leftInfo i32) + (local $size i32) + (local $fl i32) + (local $sl i32) + (local $13 i32) + (local $14 i32) + (local $boundedSize i32) + (local $root|16 i32) + (local $fl|17 i32) + (local $sl|18 i32) + (local $head i32) + (local $root|20 i32) + (local $fl|21 i32) + (local $sl|22 i32) + (local $head|23 i32) + (local $root|24 i32) + (local $fl|25 i32) + (local $root|26 i32) + (local $fl|27 i32) + (local $slMap i32) + i32.const 1 + drop + local.get $block + i32.eqz + if + i32.const 0 + i32.const 544 + i32.const 201 + i32.const 14 + call $~lib/builtins/abort + unreachable + end + local.get $block + call $~lib/rt/common/BLOCK#get:mmInfo + local.set $blockInfo + i32.const 1 + drop + local.get $blockInfo + i32.const 1 + i32.and + i32.eqz + if + i32.const 0 + i32.const 544 + i32.const 203 + i32.const 14 + call $~lib/builtins/abort + unreachable + end + block $~lib/rt/tlsf/GETRIGHT|inlined.0 (result i32) + local.get $block + local.set $block|3 + local.get $block|3 + i32.const 4 + i32.add + local.get $block|3 + call $~lib/rt/common/BLOCK#get:mmInfo + i32.const 3 + i32.const -1 + i32.xor + i32.and + i32.add + br $~lib/rt/tlsf/GETRIGHT|inlined.0 + end + local.set $right + local.get $right + call $~lib/rt/common/BLOCK#get:mmInfo + local.set $rightInfo + local.get $rightInfo + i32.const 1 + i32.and + if + local.get $root + local.get $right + call $~lib/rt/tlsf/removeBlock + local.get $block + local.get $blockInfo + i32.const 4 + i32.add + local.get $rightInfo + i32.const 3 + i32.const -1 + i32.xor + i32.and + i32.add + local.tee $blockInfo + call $~lib/rt/common/BLOCK#set:mmInfo + block $~lib/rt/tlsf/GETRIGHT|inlined.1 (result i32) + local.get $block + local.set $block|6 + local.get $block|6 + i32.const 4 + i32.add + local.get $block|6 + call $~lib/rt/common/BLOCK#get:mmInfo + i32.const 3 + i32.const -1 + i32.xor + i32.and + i32.add + br $~lib/rt/tlsf/GETRIGHT|inlined.1 + end + local.set $right + local.get $right + call $~lib/rt/common/BLOCK#get:mmInfo + local.set $rightInfo + end + local.get $blockInfo + i32.const 2 + i32.and + if + block $~lib/rt/tlsf/GETFREELEFT|inlined.0 (result i32) + local.get $block + local.set $block|7 + local.get $block|7 + i32.const 4 + i32.sub + i32.load $0 + br $~lib/rt/tlsf/GETFREELEFT|inlined.0 + end + local.set $left + local.get $left + call $~lib/rt/common/BLOCK#get:mmInfo + local.set $leftInfo + i32.const 1 + drop + local.get $leftInfo + i32.const 1 + i32.and + i32.eqz + if + i32.const 0 + i32.const 544 + i32.const 221 + i32.const 16 + call $~lib/builtins/abort + unreachable + end + local.get $root + local.get $left + call $~lib/rt/tlsf/removeBlock + local.get $left + local.set $block + local.get $block + local.get $leftInfo + i32.const 4 + i32.add + local.get $blockInfo + i32.const 3 + i32.const -1 + i32.xor + i32.and + i32.add + local.tee $blockInfo + call $~lib/rt/common/BLOCK#set:mmInfo + end + local.get $right + local.get $rightInfo + i32.const 2 + i32.or + call $~lib/rt/common/BLOCK#set:mmInfo + local.get $blockInfo + i32.const 3 + i32.const -1 + i32.xor + i32.and + local.set $size + i32.const 1 + drop + local.get $size + i32.const 12 + i32.ge_u + i32.eqz + if + i32.const 0 + i32.const 544 + i32.const 233 + i32.const 14 + call $~lib/builtins/abort + unreachable + end + i32.const 1 + drop + local.get $block + i32.const 4 + i32.add + local.get $size + i32.add + local.get $right + i32.eq + i32.eqz + if + i32.const 0 + i32.const 544 + i32.const 234 + i32.const 14 + call $~lib/builtins/abort + unreachable + end + local.get $right + i32.const 4 + i32.sub + local.get $block + i32.store $0 + local.get $size + i32.const 256 + i32.lt_u + if + i32.const 0 + local.set $fl + local.get $size + i32.const 4 + i32.shr_u + local.set $sl + else + local.get $size + local.tee $13 + i32.const 1073741820 + local.tee $14 + local.get $13 + local.get $14 + i32.lt_u + select + local.set $boundedSize + i32.const 31 + local.get $boundedSize + i32.clz + i32.sub + local.set $fl + local.get $boundedSize + local.get $fl + i32.const 4 + i32.sub + i32.shr_u + i32.const 1 + i32.const 4 + i32.shl + i32.xor + local.set $sl + local.get $fl + i32.const 8 + i32.const 1 + i32.sub + i32.sub + local.set $fl + end + i32.const 1 + drop + local.get $fl + i32.const 23 + i32.lt_u + if (result i32) + local.get $sl + i32.const 16 + i32.lt_u + else + i32.const 0 + end + i32.eqz + if + i32.const 0 + i32.const 544 + i32.const 251 + i32.const 14 + call $~lib/builtins/abort + unreachable + end + block $~lib/rt/tlsf/GETHEAD|inlined.1 (result i32) + local.get $root + local.set $root|16 + local.get $fl + local.set $fl|17 + local.get $sl + local.set $sl|18 + local.get $root|16 + local.get $fl|17 + i32.const 4 + i32.shl + local.get $sl|18 + i32.add + i32.const 2 + i32.shl + i32.add + i32.load $0 offset=96 + br $~lib/rt/tlsf/GETHEAD|inlined.1 + end + local.set $head + local.get $block + i32.const 0 + call $~lib/rt/tlsf/Block#set:prev + local.get $block + local.get $head + call $~lib/rt/tlsf/Block#set:next + local.get $head + if + local.get $head + local.get $block + call $~lib/rt/tlsf/Block#set:prev + end + local.get $root + local.set $root|20 + local.get $fl + local.set $fl|21 + local.get $sl + local.set $sl|22 + local.get $block + local.set $head|23 + local.get $root|20 + local.get $fl|21 + i32.const 4 + i32.shl + local.get $sl|22 + i32.add + i32.const 2 + i32.shl + i32.add + local.get $head|23 + i32.store $0 offset=96 + local.get $root + local.get $root + call $~lib/rt/tlsf/Root#get:flMap + i32.const 1 + local.get $fl + i32.shl + i32.or + call $~lib/rt/tlsf/Root#set:flMap + local.get $root + local.set $root|26 + local.get $fl + local.set $fl|27 + block $~lib/rt/tlsf/GETSL|inlined.1 (result i32) + local.get $root + local.set $root|24 + local.get $fl + local.set $fl|25 + local.get $root|24 + local.get $fl|25 + i32.const 2 + i32.shl + i32.add + i32.load $0 offset=4 + br $~lib/rt/tlsf/GETSL|inlined.1 + end + i32.const 1 + local.get $sl + i32.shl + i32.or + local.set $slMap + local.get $root|26 + local.get $fl|27 + i32.const 2 + i32.shl + i32.add + local.get $slMap + i32.store $0 offset=4 + ) + (func $~lib/rt/tlsf/addMemory (param $root i32) (param $start i32) (param $endU64 i64) (result i32) + (local $end i32) + (local $root|4 i32) + (local $tail i32) + (local $tailInfo i32) + (local $size i32) + (local $leftSize i32) + (local $left i32) + (local $root|10 i32) + (local $tail|11 i32) + local.get $endU64 + i32.wrap_i64 + local.set $end + i32.const 1 + drop + local.get $start + i64.extend_i32_u + local.get $endU64 + i64.le_u + i32.eqz + if + i32.const 0 + i32.const 544 + i32.const 382 + i32.const 14 + call $~lib/builtins/abort + unreachable + end + local.get $start + i32.const 4 + i32.add + i32.const 15 + i32.add + i32.const 15 + i32.const -1 + i32.xor + i32.and + i32.const 4 + i32.sub + local.set $start + local.get $end + i32.const 15 + i32.const -1 + i32.xor + i32.and + local.set $end + block $~lib/rt/tlsf/GETTAIL|inlined.0 (result i32) + local.get $root + local.set $root|4 + local.get $root|4 + i32.load $0 offset=1568 + br $~lib/rt/tlsf/GETTAIL|inlined.0 + end + local.set $tail + i32.const 0 + local.set $tailInfo + local.get $tail + if + i32.const 1 + drop + local.get $start + local.get $tail + i32.const 4 + i32.add + i32.ge_u + i32.eqz + if + i32.const 0 + i32.const 544 + i32.const 389 + i32.const 16 + call $~lib/builtins/abort + unreachable + end + local.get $start + i32.const 16 + i32.sub + local.get $tail + i32.eq + if + local.get $start + i32.const 16 + i32.sub + local.set $start + local.get $tail + call $~lib/rt/common/BLOCK#get:mmInfo + local.set $tailInfo + else + nop + end + else + i32.const 1 + drop + local.get $start + local.get $root + i32.const 1572 + i32.add + i32.ge_u + i32.eqz + if + i32.const 0 + i32.const 544 + i32.const 402 + i32.const 5 + call $~lib/builtins/abort + unreachable + end + end + local.get $end + local.get $start + i32.sub + local.set $size + local.get $size + i32.const 4 + i32.const 12 + i32.add + i32.const 4 + i32.add + i32.lt_u + if + i32.const 0 + return + end + local.get $size + i32.const 2 + i32.const 4 + i32.mul + i32.sub + local.set $leftSize + local.get $start + local.set $left + local.get $left + local.get $leftSize + i32.const 1 + i32.or + local.get $tailInfo + i32.const 2 + i32.and + i32.or + call $~lib/rt/common/BLOCK#set:mmInfo + local.get $left + i32.const 0 + call $~lib/rt/tlsf/Block#set:prev + local.get $left + i32.const 0 + call $~lib/rt/tlsf/Block#set:next + local.get $start + i32.const 4 + i32.add + local.get $leftSize + i32.add + local.set $tail + local.get $tail + i32.const 0 + i32.const 2 + i32.or + call $~lib/rt/common/BLOCK#set:mmInfo + local.get $root + local.set $root|10 + local.get $tail + local.set $tail|11 + local.get $root|10 + local.get $tail|11 + i32.store $0 offset=1568 + local.get $root + local.get $left + call $~lib/rt/tlsf/insertBlock + i32.const 1 + return + ) + (func $~lib/rt/tlsf/initialize + (local $rootOffset i32) + (local $pagesBefore i32) + (local $pagesNeeded i32) + (local $root i32) + (local $root|4 i32) + (local $tail i32) + (local $fl i32) + (local $root|7 i32) + (local $fl|8 i32) + (local $slMap i32) + (local $sl i32) + (local $root|11 i32) + (local $fl|12 i32) + (local $sl|13 i32) + (local $head i32) + (local $memStart i32) + i32.const 0 + drop + global.get $~lib/memory/__heap_base + i32.const 15 + i32.add + i32.const 15 + i32.const -1 + i32.xor + i32.and + local.set $rootOffset + memory.size $0 + local.set $pagesBefore + local.get $rootOffset + i32.const 1572 + i32.add + i32.const 65535 + i32.add + i32.const 65535 + i32.const -1 + i32.xor + i32.and + i32.const 16 + i32.shr_u + local.set $pagesNeeded + local.get $pagesNeeded + local.get $pagesBefore + i32.gt_s + if + local.get $pagesNeeded + local.get $pagesBefore + i32.sub + memory.grow $0 + i32.const 0 + i32.lt_s + if + unreachable + end + i32.const 1 + drop + call $rt/grow-handler/handler + end + local.get $rootOffset + local.set $root + local.get $root + i32.const 0 + call $~lib/rt/tlsf/Root#set:flMap + local.get $root + local.set $root|4 + i32.const 0 + local.set $tail + local.get $root|4 + local.get $tail + i32.store $0 offset=1568 + i32.const 0 + local.set $fl + loop $for-loop|0 + local.get $fl + i32.const 23 + i32.lt_u + if + local.get $root + local.set $root|7 + local.get $fl + local.set $fl|8 + i32.const 0 + local.set $slMap + local.get $root|7 + local.get $fl|8 + i32.const 2 + i32.shl + i32.add + local.get $slMap + i32.store $0 offset=4 + i32.const 0 + local.set $sl + loop $for-loop|1 + local.get $sl + i32.const 16 + i32.lt_u + if + local.get $root + local.set $root|11 + local.get $fl + local.set $fl|12 + local.get $sl + local.set $sl|13 + i32.const 0 + local.set $head + local.get $root|11 + local.get $fl|12 + i32.const 4 + i32.shl + local.get $sl|13 + i32.add + i32.const 2 + i32.shl + i32.add + local.get $head + i32.store $0 offset=96 + local.get $sl + i32.const 1 + i32.add + local.set $sl + br $for-loop|1 + end + end + local.get $fl + i32.const 1 + i32.add + local.set $fl + br $for-loop|0 + end + end + local.get $rootOffset + i32.const 1572 + i32.add + local.set $memStart + i32.const 0 + drop + local.get $root + local.get $memStart + memory.size $0 + i64.extend_i32_s + i64.const 16 + i64.shl + call $~lib/rt/tlsf/addMemory + drop + local.get $root + global.set $~lib/rt/tlsf/ROOT + ) + (func $~lib/rt/tlsf/checkUsedBlock (param $ptr i32) (result i32) + (local $block i32) + local.get $ptr + i32.const 4 + i32.sub + local.set $block + local.get $ptr + i32.const 0 + i32.ne + if (result i32) + local.get $ptr + i32.const 15 + i32.and + i32.eqz + else + i32.const 0 + end + if (result i32) + local.get $block + call $~lib/rt/common/BLOCK#get:mmInfo + i32.const 1 + i32.and + i32.eqz + else + i32.const 0 + end + i32.eqz + if + i32.const 0 + i32.const 544 + i32.const 566 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $block + return + ) + (func $~lib/rt/tlsf/freeBlock (param $root i32) (param $block i32) + i32.const 0 + drop + local.get $block + local.get $block + call $~lib/rt/common/BLOCK#get:mmInfo + i32.const 1 + i32.or + call $~lib/rt/common/BLOCK#set:mmInfo + local.get $root + local.get $block + call $~lib/rt/tlsf/insertBlock + ) + (func $~lib/rt/tlsf/__free (param $ptr i32) + local.get $ptr + global.get $~lib/memory/__heap_base + i32.lt_u + if + return + end + global.get $~lib/rt/tlsf/ROOT + i32.eqz + if + call $~lib/rt/tlsf/initialize + end + global.get $~lib/rt/tlsf/ROOT + local.get $ptr + call $~lib/rt/tlsf/checkUsedBlock + call $~lib/rt/tlsf/freeBlock + ) + (func $~lib/rt/itcms/free (param $obj i32) + local.get $obj + global.get $~lib/memory/__heap_base + i32.lt_u + if + local.get $obj + i32.const 0 + call $~lib/rt/itcms/Object#set:nextWithColor + local.get $obj + i32.const 0 + call $~lib/rt/itcms/Object#set:prev + else + global.get $~lib/rt/itcms/total + local.get $obj + call $~lib/rt/itcms/Object#get:size + i32.sub + global.set $~lib/rt/itcms/total + i32.const 0 + drop + local.get $obj + i32.const 4 + i32.add + call $~lib/rt/tlsf/__free + end + ) + (func $~lib/rt/itcms/step (result i32) + (local $obj i32) + (local $1 i32) + (local $black i32) + (local $from i32) + block $break|0 + block $case2|0 + block $case1|0 + block $case0|0 + global.get $~lib/rt/itcms/state + local.set $1 + local.get $1 + i32.const 0 + i32.eq + br_if $case0|0 + local.get $1 + i32.const 1 + i32.eq + br_if $case1|0 + local.get $1 + i32.const 2 + i32.eq + br_if $case2|0 + br $break|0 + end + i32.const 1 + global.set $~lib/rt/itcms/state + i32.const 0 + global.set $~lib/rt/itcms/visitCount + i32.const 0 + call $~lib/rt/itcms/visitRoots + global.get $~lib/rt/itcms/toSpace + global.set $~lib/rt/itcms/iter + global.get $~lib/rt/itcms/visitCount + i32.const 1 + i32.mul + return + end + global.get $~lib/rt/itcms/white + i32.eqz + local.set $black + global.get $~lib/rt/itcms/iter + call $~lib/rt/itcms/Object#get:next + local.set $obj + loop $while-continue|1 + local.get $obj + global.get $~lib/rt/itcms/toSpace + i32.ne + if + local.get $obj + global.set $~lib/rt/itcms/iter + local.get $obj + call $~lib/rt/itcms/Object#get:color + local.get $black + i32.ne + if + local.get $obj + local.get $black + call $~lib/rt/itcms/Object#set:color + i32.const 0 + global.set $~lib/rt/itcms/visitCount + local.get $obj + i32.const 20 + i32.add + i32.const 0 + call $~lib/rt/__visit_members + global.get $~lib/rt/itcms/visitCount + i32.const 1 + i32.mul + return + end + local.get $obj + call $~lib/rt/itcms/Object#get:next + local.set $obj + br $while-continue|1 + end + end + i32.const 0 + global.set $~lib/rt/itcms/visitCount + i32.const 0 + call $~lib/rt/itcms/visitRoots + global.get $~lib/rt/itcms/iter + call $~lib/rt/itcms/Object#get:next + local.set $obj + local.get $obj + global.get $~lib/rt/itcms/toSpace + i32.eq + if + i32.const 0 + call $~lib/rt/itcms/visitStack + global.get $~lib/rt/itcms/iter + call $~lib/rt/itcms/Object#get:next + local.set $obj + loop $while-continue|2 + local.get $obj + global.get $~lib/rt/itcms/toSpace + i32.ne + if + local.get $obj + call $~lib/rt/itcms/Object#get:color + local.get $black + i32.ne + if + local.get $obj + local.get $black + call $~lib/rt/itcms/Object#set:color + local.get $obj + i32.const 20 + i32.add + i32.const 0 + call $~lib/rt/__visit_members + end + local.get $obj + call $~lib/rt/itcms/Object#get:next + local.set $obj + br $while-continue|2 + end + end + global.get $~lib/rt/itcms/fromSpace + local.set $from + global.get $~lib/rt/itcms/toSpace + global.set $~lib/rt/itcms/fromSpace + local.get $from + global.set $~lib/rt/itcms/toSpace + local.get $black + global.set $~lib/rt/itcms/white + local.get $from + call $~lib/rt/itcms/Object#get:next + global.set $~lib/rt/itcms/iter + i32.const 2 + global.set $~lib/rt/itcms/state + end + global.get $~lib/rt/itcms/visitCount + i32.const 1 + i32.mul + return + end + global.get $~lib/rt/itcms/iter + local.set $obj + local.get $obj + global.get $~lib/rt/itcms/toSpace + i32.ne + if + local.get $obj + call $~lib/rt/itcms/Object#get:next + global.set $~lib/rt/itcms/iter + i32.const 1 + drop + local.get $obj + call $~lib/rt/itcms/Object#get:color + global.get $~lib/rt/itcms/white + i32.eqz + i32.eq + i32.eqz + if + i32.const 0 + i32.const 272 + i32.const 229 + i32.const 20 + call $~lib/builtins/abort + unreachable + end + local.get $obj + call $~lib/rt/itcms/free + i32.const 10 + return + end + global.get $~lib/rt/itcms/toSpace + global.get $~lib/rt/itcms/toSpace + call $~lib/rt/itcms/Object#set:nextWithColor + global.get $~lib/rt/itcms/toSpace + global.get $~lib/rt/itcms/toSpace + call $~lib/rt/itcms/Object#set:prev + i32.const 0 + global.set $~lib/rt/itcms/state + br $break|0 + end + i32.const 0 + return + ) + (func $~lib/rt/itcms/interrupt + (local $budget i32) + i32.const 0 + drop + i32.const 0 + drop + i32.const 1024 + i32.const 200 + i32.mul + i32.const 100 + i32.div_u + local.set $budget + loop $do-loop|0 + local.get $budget + call $~lib/rt/itcms/step + i32.sub + local.set $budget + global.get $~lib/rt/itcms/state + i32.const 0 + i32.eq + if + i32.const 0 + drop + global.get $~lib/rt/itcms/total + i64.extend_i32_u + i32.const 200 + i64.extend_i32_u + i64.mul + i64.const 100 + i64.div_u + i32.wrap_i64 + i32.const 1024 + i32.add + global.set $~lib/rt/itcms/threshold + i32.const 0 + drop + return + end + local.get $budget + i32.const 0 + i32.gt_s + br_if $do-loop|0 + end + i32.const 0 + drop + global.get $~lib/rt/itcms/total + i32.const 1024 + global.get $~lib/rt/itcms/total + global.get $~lib/rt/itcms/threshold + i32.sub + i32.const 1024 + i32.lt_u + i32.mul + i32.add + global.set $~lib/rt/itcms/threshold + i32.const 0 + drop + ) + (func $~lib/rt/tlsf/computeSize (param $size i32) (result i32) + local.get $size + i32.const 12 + i32.le_u + if (result i32) + i32.const 12 + else + local.get $size + i32.const 4 + i32.add + i32.const 15 + i32.add + i32.const 15 + i32.const -1 + i32.xor + i32.and + i32.const 4 + i32.sub + end + return + ) + (func $~lib/rt/tlsf/prepareSize (param $size i32) (result i32) + local.get $size + i32.const 1073741820 + i32.gt_u + if + i32.const 208 + i32.const 544 + i32.const 462 + i32.const 29 + call $~lib/builtins/abort + unreachable + end + local.get $size + call $~lib/rt/tlsf/computeSize + return + ) + (func $~lib/rt/tlsf/roundSize (param $size i32) (result i32) + local.get $size + i32.const 536870910 + i32.lt_u + if (result i32) + local.get $size + i32.const 1 + i32.const 27 + local.get $size + i32.clz + i32.sub + i32.shl + i32.add + i32.const 1 + i32.sub + else + local.get $size + end + return + ) + (func $~lib/rt/tlsf/searchBlock (param $root i32) (param $size i32) (result i32) + (local $fl i32) + (local $sl i32) + (local $requestSize i32) + (local $root|5 i32) + (local $fl|6 i32) + (local $slMap i32) + (local $head i32) + (local $flMap i32) + (local $root|10 i32) + (local $fl|11 i32) + (local $root|12 i32) + (local $fl|13 i32) + (local $sl|14 i32) + (local $root|15 i32) + (local $fl|16 i32) + (local $sl|17 i32) + local.get $size + i32.const 256 + i32.lt_u + if + i32.const 0 + local.set $fl + local.get $size + i32.const 4 + i32.shr_u + local.set $sl + else + local.get $size + call $~lib/rt/tlsf/roundSize + local.set $requestSize + i32.const 4 + i32.const 8 + i32.mul + i32.const 1 + i32.sub + local.get $requestSize + i32.clz + i32.sub + local.set $fl + local.get $requestSize + local.get $fl + i32.const 4 + i32.sub + i32.shr_u + i32.const 1 + i32.const 4 + i32.shl + i32.xor + local.set $sl + local.get $fl + i32.const 8 + i32.const 1 + i32.sub + i32.sub + local.set $fl + end + i32.const 1 + drop + local.get $fl + i32.const 23 + i32.lt_u + if (result i32) + local.get $sl + i32.const 16 + i32.lt_u + else + i32.const 0 + end + i32.eqz + if + i32.const 0 + i32.const 544 + i32.const 334 + i32.const 14 + call $~lib/builtins/abort + unreachable + end + block $~lib/rt/tlsf/GETSL|inlined.2 (result i32) + local.get $root + local.set $root|5 + local.get $fl + local.set $fl|6 + local.get $root|5 + local.get $fl|6 + i32.const 2 + i32.shl + i32.add + i32.load $0 offset=4 + br $~lib/rt/tlsf/GETSL|inlined.2 + end + i32.const 0 + i32.const -1 + i32.xor + local.get $sl + i32.shl + i32.and + local.set $slMap + i32.const 0 + local.set $head + local.get $slMap + i32.eqz + if + local.get $root + call $~lib/rt/tlsf/Root#get:flMap + i32.const 0 + i32.const -1 + i32.xor + local.get $fl + i32.const 1 + i32.add + i32.shl + i32.and + local.set $flMap + local.get $flMap + i32.eqz + if + i32.const 0 + local.set $head + else + local.get $flMap + i32.ctz + local.set $fl + block $~lib/rt/tlsf/GETSL|inlined.3 (result i32) + local.get $root + local.set $root|10 + local.get $fl + local.set $fl|11 + local.get $root|10 + local.get $fl|11 + i32.const 2 + i32.shl + i32.add + i32.load $0 offset=4 + br $~lib/rt/tlsf/GETSL|inlined.3 + end + local.set $slMap + i32.const 1 + drop + local.get $slMap + i32.eqz + if + i32.const 0 + i32.const 544 + i32.const 347 + i32.const 18 + call $~lib/builtins/abort + unreachable + end + block $~lib/rt/tlsf/GETHEAD|inlined.2 (result i32) + local.get $root + local.set $root|12 + local.get $fl + local.set $fl|13 + local.get $slMap + i32.ctz + local.set $sl|14 + local.get $root|12 + local.get $fl|13 + i32.const 4 + i32.shl + local.get $sl|14 + i32.add + i32.const 2 + i32.shl + i32.add + i32.load $0 offset=96 + br $~lib/rt/tlsf/GETHEAD|inlined.2 + end + local.set $head + end + else + block $~lib/rt/tlsf/GETHEAD|inlined.3 (result i32) + local.get $root + local.set $root|15 + local.get $fl + local.set $fl|16 + local.get $slMap + i32.ctz + local.set $sl|17 + local.get $root|15 + local.get $fl|16 + i32.const 4 + i32.shl + local.get $sl|17 + i32.add + i32.const 2 + i32.shl + i32.add + i32.load $0 offset=96 + br $~lib/rt/tlsf/GETHEAD|inlined.3 + end + local.set $head + end + local.get $head + return + ) + (func $~lib/rt/tlsf/growMemory (param $root i32) (param $size i32) + (local $pagesBefore i32) + (local $root|3 i32) + (local $pagesNeeded i32) + (local $5 i32) + (local $6 i32) + (local $pagesWanted i32) + (local $pagesAfter i32) + i32.const 0 + drop + local.get $size + i32.const 256 + i32.ge_u + if + local.get $size + call $~lib/rt/tlsf/roundSize + local.set $size + end + memory.size $0 + local.set $pagesBefore + local.get $size + i32.const 4 + local.get $pagesBefore + i32.const 16 + i32.shl + i32.const 4 + i32.sub + block $~lib/rt/tlsf/GETTAIL|inlined.1 (result i32) + local.get $root + local.set $root|3 + local.get $root|3 + i32.load $0 offset=1568 + br $~lib/rt/tlsf/GETTAIL|inlined.1 + end + i32.ne + i32.shl + i32.add + local.set $size + local.get $size + i32.const 65535 + i32.add + i32.const 65535 + i32.const -1 + i32.xor + i32.and + i32.const 16 + i32.shr_u + local.set $pagesNeeded + local.get $pagesBefore + local.tee $5 + local.get $pagesNeeded + local.tee $6 + local.get $5 + local.get $6 + i32.gt_s + select + local.set $pagesWanted + local.get $pagesWanted + memory.grow $0 + i32.const 0 + i32.lt_s + if + local.get $pagesNeeded + memory.grow $0 + i32.const 0 + i32.lt_s + if + unreachable + end + end + i32.const 1 + drop + call $rt/grow-handler/handler + memory.size $0 + local.set $pagesAfter + local.get $root + local.get $pagesBefore + i32.const 16 + i32.shl + local.get $pagesAfter + i64.extend_i32_s + i64.const 16 + i64.shl + call $~lib/rt/tlsf/addMemory + drop + ) + (func $~lib/rt/tlsf/prepareBlock (param $root i32) (param $block i32) (param $size i32) + (local $blockInfo i32) + (local $remaining i32) + (local $spare i32) + (local $block|6 i32) + (local $block|7 i32) + local.get $block + call $~lib/rt/common/BLOCK#get:mmInfo + local.set $blockInfo + i32.const 1 + drop + local.get $size + i32.const 4 + i32.add + i32.const 15 + i32.and + i32.eqz + i32.eqz + if + i32.const 0 + i32.const 544 + i32.const 361 + i32.const 14 + call $~lib/builtins/abort + unreachable + end + local.get $blockInfo + i32.const 3 + i32.const -1 + i32.xor + i32.and + local.get $size + i32.sub + local.set $remaining + local.get $remaining + i32.const 4 + i32.const 12 + i32.add + i32.ge_u + if + local.get $block + local.get $size + local.get $blockInfo + i32.const 2 + i32.and + i32.or + call $~lib/rt/common/BLOCK#set:mmInfo + local.get $block + i32.const 4 + i32.add + local.get $size + i32.add + local.set $spare + local.get $spare + local.get $remaining + i32.const 4 + i32.sub + i32.const 1 + i32.or + call $~lib/rt/common/BLOCK#set:mmInfo + local.get $root + local.get $spare + call $~lib/rt/tlsf/insertBlock + else + local.get $block + local.get $blockInfo + i32.const 1 + i32.const -1 + i32.xor + i32.and + call $~lib/rt/common/BLOCK#set:mmInfo + block $~lib/rt/tlsf/GETRIGHT|inlined.3 (result i32) + local.get $block + local.set $block|7 + local.get $block|7 + i32.const 4 + i32.add + local.get $block|7 + call $~lib/rt/common/BLOCK#get:mmInfo + i32.const 3 + i32.const -1 + i32.xor + i32.and + i32.add + br $~lib/rt/tlsf/GETRIGHT|inlined.3 + end + block $~lib/rt/tlsf/GETRIGHT|inlined.2 (result i32) + local.get $block + local.set $block|6 + local.get $block|6 + i32.const 4 + i32.add + local.get $block|6 + call $~lib/rt/common/BLOCK#get:mmInfo + i32.const 3 + i32.const -1 + i32.xor + i32.and + i32.add + br $~lib/rt/tlsf/GETRIGHT|inlined.2 + end + call $~lib/rt/common/BLOCK#get:mmInfo + i32.const 2 + i32.const -1 + i32.xor + i32.and + call $~lib/rt/common/BLOCK#set:mmInfo + end + ) + (func $~lib/rt/tlsf/allocateBlock (param $root i32) (param $size i32) (result i32) + (local $payloadSize i32) + (local $block i32) + local.get $size + call $~lib/rt/tlsf/prepareSize + local.set $payloadSize + local.get $root + local.get $payloadSize + call $~lib/rt/tlsf/searchBlock + local.set $block + local.get $block + i32.eqz + if + local.get $root + local.get $payloadSize + call $~lib/rt/tlsf/growMemory + local.get $root + local.get $payloadSize + call $~lib/rt/tlsf/searchBlock + local.set $block + i32.const 1 + drop + local.get $block + i32.eqz + if + i32.const 0 + i32.const 544 + i32.const 503 + i32.const 16 + call $~lib/builtins/abort + unreachable + end + end + i32.const 1 + drop + local.get $block + call $~lib/rt/common/BLOCK#get:mmInfo + i32.const 3 + i32.const -1 + i32.xor + i32.and + local.get $payloadSize + i32.ge_u + i32.eqz + if + i32.const 0 + i32.const 544 + i32.const 505 + i32.const 14 + call $~lib/builtins/abort + unreachable + end + local.get $root + local.get $block + call $~lib/rt/tlsf/removeBlock + local.get $root + local.get $block + local.get $payloadSize + call $~lib/rt/tlsf/prepareBlock + i32.const 0 + drop + local.get $block + return + ) + (func $~lib/rt/tlsf/__alloc (param $size i32) (result i32) + global.get $~lib/rt/tlsf/ROOT + i32.eqz + if + call $~lib/rt/tlsf/initialize + end + global.get $~lib/rt/tlsf/ROOT + local.get $size + call $~lib/rt/tlsf/allocateBlock + i32.const 4 + i32.add + return + ) + (func $~lib/rt/itcms/Object#set:rtId (param $this i32) (param $rtId i32) + local.get $this + local.get $rtId + i32.store $0 offset=12 + ) + (func $~lib/rt/itcms/__new (param $size i32) (param $id i32) (result i32) + (local $obj i32) + (local $ptr i32) + local.get $size + i32.const 1073741804 + i32.ge_u + if + i32.const 208 + i32.const 272 + i32.const 261 + i32.const 31 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/rt/itcms/total + global.get $~lib/rt/itcms/threshold + i32.ge_u + if + call $~lib/rt/itcms/interrupt + end + i32.const 16 + local.get $size + i32.add + call $~lib/rt/tlsf/__alloc + i32.const 4 + i32.sub + local.set $obj + local.get $obj + local.get $id + call $~lib/rt/itcms/Object#set:rtId + local.get $obj + local.get $size + call $~lib/rt/itcms/Object#set:rtSize + local.get $obj + global.get $~lib/rt/itcms/fromSpace + global.get $~lib/rt/itcms/white + call $~lib/rt/itcms/Object#linkTo + global.get $~lib/rt/itcms/total + local.get $obj + call $~lib/rt/itcms/Object#get:size + i32.add + global.set $~lib/rt/itcms/total + local.get $obj + i32.const 20 + i32.add + local.set $ptr + local.get $ptr + i32.const 0 + local.get $size + memory.fill $0 + local.get $ptr + return + ) + (func $~lib/rt/itcms/Object#get:rtSize (param $this i32) (result i32) + local.get $this + i32.load $0 offset=16 + ) + (func $~lib/rt/itcms/__renew (param $oldPtr i32) (param $size i32) (result i32) + (local $oldObj i32) + (local $newPtr i32) + (local $4 i32) + (local $5 i32) + local.get $oldPtr + i32.const 20 + i32.sub + local.set $oldObj + local.get $size + local.get $oldObj + call $~lib/rt/common/BLOCK#get:mmInfo + i32.const 3 + i32.const -1 + i32.xor + i32.and + i32.const 16 + i32.sub + i32.le_u + if + local.get $oldObj + local.get $size + call $~lib/rt/itcms/Object#set:rtSize + local.get $oldPtr + return + end + local.get $size + local.get $oldObj + call $~lib/rt/itcms/Object#get:rtId + call $~lib/rt/itcms/__new + local.set $newPtr + local.get $newPtr + local.get $oldPtr + local.get $size + local.tee $4 + local.get $oldObj + call $~lib/rt/itcms/Object#get:rtSize + local.tee $5 + local.get $4 + local.get $5 + i32.lt_u + select + memory.copy $0 $0 + local.get $newPtr + return + ) + (func $~lib/rt/itcms/__link (param $parentPtr i32) (param $childPtr i32) (param $expectMultiple i32) + (local $child i32) + (local $parent i32) + (local $parentColor i32) + local.get $childPtr + i32.eqz + if + return + end + i32.const 1 + drop + local.get $parentPtr + i32.eqz + if + i32.const 0 + i32.const 272 + i32.const 295 + i32.const 14 + call $~lib/builtins/abort + unreachable + end + local.get $childPtr + i32.const 20 + i32.sub + local.set $child + local.get $child + call $~lib/rt/itcms/Object#get:color + global.get $~lib/rt/itcms/white + i32.eq + if + local.get $parentPtr + i32.const 20 + i32.sub + local.set $parent + local.get $parent + call $~lib/rt/itcms/Object#get:color + local.set $parentColor + local.get $parentColor + global.get $~lib/rt/itcms/white + i32.eqz + i32.eq + if + local.get $expectMultiple + if + local.get $parent + call $~lib/rt/itcms/Object#makeGray + else + local.get $child + call $~lib/rt/itcms/Object#makeGray + end + else + local.get $parentColor + i32.const 3 + i32.eq + if (result i32) + global.get $~lib/rt/itcms/state + i32.const 1 + i32.eq + else + i32.const 0 + end + if + local.get $child + call $~lib/rt/itcms/Object#makeGray + end + end + end + ) + (func $~lib/array/Array#get:dataStart (param $this i32) (result i32) + local.get $this + i32.load $0 offset=4 + ) + (func $~lib/array/Array#set:length_ (param $this i32) (param $length_ i32) + local.get $this + local.get $length_ + i32.store $0 offset=12 + ) + (func $~lib/rt/__visit_globals (param $0 i32) + (local $1 i32) + global.get $rt/grow-handler/leak + local.tee $1 + if + local.get $1 + local.get $0 + call $~lib/rt/itcms/__visit + end + i32.const 400 + local.get $0 + call $~lib/rt/itcms/__visit + i32.const 112 + local.get $0 + call $~lib/rt/itcms/__visit + i32.const 208 + local.get $0 + call $~lib/rt/itcms/__visit + ) + (func $~lib/arraybuffer/ArrayBufferView~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 $0 + local.tee $2 + if + local.get $2 + local.get $1 + call $~lib/rt/itcms/__visit + end + ) + (func $~lib/object/Object~visit (param $0 i32) (param $1 i32) + nop + ) + (func $~lib/array/Array#get:buffer (param $this i32) (result i32) + local.get $this + i32.load $0 + ) + (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/rt/__visit_members (param $0 i32) (param $1 i32) + block $invalid + block $~lib/array/Array + 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 $0 + br_table $~lib/object/Object $~lib/arraybuffer/ArrayBuffer $~lib/string/String $~lib/arraybuffer/ArrayBufferView $~lib/array/Array $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/array/Array~visit + return + end + unreachable + ) + (func $~start + memory.size $0 + i32.const 16 + i32.shl + global.get $~lib/memory/__heap_base + i32.sub + i32.const 1 + i32.shr_u + global.set $~lib/rt/itcms/threshold + i32.const 320 + call $~lib/rt/itcms/initLazy + global.set $~lib/rt/itcms/pinSpace + i32.const 352 + call $~lib/rt/itcms/initLazy + global.set $~lib/rt/itcms/toSpace + i32.const 496 + call $~lib/rt/itcms/initLazy + global.set $~lib/rt/itcms/fromSpace + ) + (func $~stack_check + global.get $~lib/memory/__stack_pointer + global.get $~lib/memory/__data_end + i32.lt_s + if + i32.const 33408 + i32.const 33456 + i32.const 1 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + ) + (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 $0 + local.get $array + local.set $14 + global.get $~lib/memory/__stack_pointer + local.get $14 + i32.store $0 + 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 112 + i32.const 160 + 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 $0 + 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 $0 + local.get $array + local.get $newData + i32.store $0 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 $0 offset=8 + end + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + ) + (func $~lib/array/Array#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 $0 + local.get $this + local.set $4 + global.get $~lib/memory/__stack_pointer + local.get $4 + i32.store $0 + local.get $4 + call $~lib/array/Array#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 0 + drop + local.get $this + local.set $4 + global.get $~lib/memory/__stack_pointer + local.get $4 + i32.store $0 + local.get $4 + call $~lib/array/Array#get:dataStart + local.get $oldLen + i32.const 2 + i32.shl + i32.add + local.get $value + i32.store $0 + local.get $this + local.set $4 + global.get $~lib/memory/__stack_pointer + local.get $4 + i32.store $0 + local.get $4 + local.get $len + call $~lib/array/Array#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 $rt/grow-handler/stress + (local $i 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 $0 + i32.const 0 + local.set $i + loop $for-loop|0 + local.get $i + i32.const 65536 + i32.lt_s + if + global.get $rt/grow-handler/leak + local.set $1 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store $0 + local.get $1 + local.get $i + call $~lib/array/Array#push + drop + local.get $i + i32.const 1 + i32.add + local.set $i + br $for-loop|0 + end + end + 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 $0 + i32.const 0 + drop + local.get $this + local.set $2 + global.get $~lib/memory/__stack_pointer + local.get $2 + i32.store $0 + 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 + ) +) diff --git a/tests/compiler/rt/grow-handler.js b/tests/compiler/rt/grow-handler.js new file mode 100644 index 0000000000..11668221b1 --- /dev/null +++ b/tests/compiler/rt/grow-handler.js @@ -0,0 +1,12 @@ +let growCount = 0; + +export function preInstantiate(imports) { + imports.grow = { + handler() { growCount++; } + }; +} + +export function postInstantiate({exports}) { + exports.stress(); + if (!growCount) throw new Error("did not detect growth on large allocation"); +} \ No newline at end of file diff --git a/tests/compiler/rt/grow-handler.json b/tests/compiler/rt/grow-handler.json new file mode 100644 index 0000000000..3675c01e3c --- /dev/null +++ b/tests/compiler/rt/grow-handler.json @@ -0,0 +1,5 @@ +{ + "asc_flags": [ + "-u", "ASC_RT_GROW_HANDLER=rt/grow-handler/handler" + ] +} \ No newline at end of file diff --git a/tests/compiler/rt/grow-handler.release.wat b/tests/compiler/rt/grow-handler.release.wat new file mode 100644 index 0000000000..d5b6104229 --- /dev/null +++ b/tests/compiler/rt/grow-handler.release.wat @@ -0,0 +1,1896 @@ +(module + (type $none_=>_none (func)) + (type $i32_=>_none (func (param i32))) + (type $i32_i32_=>_none (func (param i32 i32))) + (type $i32_i32_i32_i32_=>_none (func (param i32 i32 i32 i32))) + (type $i32_i32_i64_=>_none (func (param i32 i32 i64))) + (type $none_=>_i32 (func (result i32))) + (type $i32_i32_=>_i32 (func (param i32 i32) (result i32))) + (import "env" "abort" (func $~lib/builtins/abort (param i32 i32 i32 i32))) + (import "grow" "handler" (func $rt/grow-handler/handler)) + (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)) + (global $~lib/rt/itcms/visitCount (mut i32) (i32.const 0)) + (global $~lib/rt/itcms/pinSpace (mut i32) (i32.const 0)) + (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/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 34408)) + (memory $0 1) + (data $0 (i32.const 1036) "\1c") + (data $0.1 (i32.const 1048) "\01") + (data $1 (i32.const 1068) ",") + (data $1.1 (i32.const 1080) "\04\00\00\00\10\00\00\00 \04\00\00 \04") + (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\1a\00\00\00~\00l\00i\00b\00/\00a\00r\00r\00a\00y\00.\00t\00s") + (data $4 (i32.const 1212) "<") + (data $4.1 (i32.const 1224) "\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 1276) "<") + (data $5.1 (i32.const 1288) "\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 1404) "<") + (data $8.1 (i32.const 1416) "\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 1468) ",") + (data $9.1 (i32.const 1480) "\02\00\00\00\14\00\00\00~\00l\00i\00b\00/\00r\00t\00.\00t\00s") + (data $11 (i32.const 1548) "<") + (data $11.1 (i32.const 1560) "\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 1616) "\05\00\00\00 \00\00\00 \00\00\00 \00\00\00\00\00\00\00\02\t") + (export "stress" (func $rt/grow-handler/stress)) + (export "memory" (memory $0)) + (start $~start) + (func $~lib/rt/itcms/visitRoots + (local $0 i32) + (local $1 i32) + i32.const 1088 + call $byn-split-outlined-A$~lib/rt/itcms/__visit + i32.const 1424 + call $byn-split-outlined-A$~lib/rt/itcms/__visit + i32.const 1136 + call $byn-split-outlined-A$~lib/rt/itcms/__visit + i32.const 1232 + call $byn-split-outlined-A$~lib/rt/itcms/__visit + global.get $~lib/rt/itcms/pinSpace + local.tee $1 + i32.load $0 offset=4 + i32.const -4 + i32.and + local.set $0 + loop $while-continue|0 + local.get $0 + local.get $1 + i32.ne + if + local.get $0 + i32.load $0 offset=4 + i32.const 3 + i32.and + i32.const 3 + i32.ne + if + i32.const 0 + i32.const 1296 + i32.const 160 + i32.const 16 + call $~lib/builtins/abort + unreachable + end + local.get $0 + i32.const 20 + i32.add + call $~lib/rt/__visit_members + local.get $0 + i32.load $0 offset=4 + i32.const -4 + i32.and + local.set $0 + br $while-continue|0 + end + end + ) + (func $~lib/rt/itcms/Object#makeGray (param $0 i32) + (local $1 i32) + (local $2 i32) + (local $3 i32) + local.get $0 + global.get $~lib/rt/itcms/iter + i32.eq + if + local.get $0 + i32.load $0 offset=8 + local.tee $1 + i32.eqz + if + i32.const 0 + i32.const 1296 + i32.const 148 + i32.const 30 + call $~lib/builtins/abort + unreachable + end + local.get $1 + global.set $~lib/rt/itcms/iter + end + block $__inlined_func$~lib/rt/itcms/Object#unlink + local.get $0 + i32.load $0 offset=4 + i32.const -4 + i32.and + local.tee $1 + i32.eqz + if + local.get $0 + i32.load $0 offset=8 + i32.eqz + local.get $0 + i32.const 34408 + i32.lt_u + i32.and + i32.eqz + if + i32.const 0 + i32.const 1296 + i32.const 128 + i32.const 18 + call $~lib/builtins/abort + unreachable + end + br $__inlined_func$~lib/rt/itcms/Object#unlink + end + local.get $0 + i32.load $0 offset=8 + local.tee $2 + i32.eqz + if + i32.const 0 + i32.const 1296 + i32.const 132 + i32.const 16 + call $~lib/builtins/abort + unreachable + end + local.get $1 + local.get $2 + i32.store $0 offset=8 + local.get $2 + local.get $1 + local.get $2 + i32.load $0 offset=4 + i32.const 3 + i32.and + i32.or + i32.store $0 offset=4 + end + global.get $~lib/rt/itcms/toSpace + local.set $2 + local.get $0 + i32.load $0 offset=12 + local.tee $1 + i32.const 2 + i32.le_u + if (result i32) + i32.const 1 + else + local.get $1 + i32.const 1616 + i32.load $0 + i32.gt_u + if + i32.const 1424 + i32.const 1488 + i32.const 21 + i32.const 28 + call $~lib/builtins/abort + unreachable + end + local.get $1 + i32.const 2 + i32.shl + i32.const 1620 + i32.add + i32.load $0 + i32.const 32 + i32.and + end + local.set $3 + local.get $2 + i32.load $0 offset=8 + local.set $1 + local.get $0 + global.get $~lib/rt/itcms/white + i32.eqz + i32.const 2 + local.get $3 + select + local.get $2 + i32.or + i32.store $0 offset=4 + local.get $0 + local.get $1 + i32.store $0 offset=8 + local.get $1 + local.get $0 + local.get $1 + i32.load $0 offset=4 + i32.const 3 + i32.and + i32.or + i32.store $0 offset=4 + local.get $2 + local.get $0 + i32.store $0 offset=8 + ) + (func $~lib/rt/tlsf/removeBlock (param $0 i32) (param $1 i32) + (local $2 i32) + (local $3 i32) + (local $4 i32) + (local $5 i32) + local.get $1 + i32.load $0 + local.tee $2 + i32.const 1 + i32.and + i32.eqz + if + i32.const 0 + i32.const 1568 + i32.const 268 + i32.const 14 + call $~lib/builtins/abort + unreachable + end + local.get $2 + i32.const -4 + i32.and + local.tee $2 + i32.const 12 + i32.lt_u + if + i32.const 0 + i32.const 1568 + i32.const 270 + i32.const 14 + call $~lib/builtins/abort + unreachable + end + local.get $2 + i32.const 256 + i32.lt_u + if (result i32) + local.get $2 + i32.const 4 + i32.shr_u + else + i32.const 31 + i32.const 1073741820 + local.get $2 + local.get $2 + i32.const 1073741820 + i32.ge_u + select + local.tee $2 + i32.clz + i32.sub + local.tee $4 + i32.const 7 + i32.sub + local.set $3 + local.get $2 + local.get $4 + i32.const 4 + i32.sub + i32.shr_u + i32.const 16 + i32.xor + end + local.tee $2 + i32.const 16 + i32.lt_u + local.get $3 + i32.const 23 + i32.lt_u + i32.and + i32.eqz + if + i32.const 0 + i32.const 1568 + i32.const 284 + i32.const 14 + call $~lib/builtins/abort + unreachable + end + local.get $1 + i32.load $0 offset=8 + local.set $5 + local.get $1 + i32.load $0 offset=4 + local.tee $4 + if + local.get $4 + local.get $5 + i32.store $0 offset=8 + end + local.get $5 + if + local.get $5 + local.get $4 + i32.store $0 offset=4 + end + local.get $1 + local.get $0 + local.get $3 + i32.const 4 + i32.shl + local.get $2 + i32.add + i32.const 2 + i32.shl + i32.add + i32.load $0 offset=96 + i32.eq + if + local.get $0 + local.get $3 + i32.const 4 + i32.shl + local.get $2 + i32.add + i32.const 2 + i32.shl + i32.add + local.get $5 + i32.store $0 offset=96 + local.get $5 + i32.eqz + if + local.get $0 + local.get $3 + i32.const 2 + i32.shl + i32.add + local.tee $1 + i32.load $0 offset=4 + i32.const -2 + local.get $2 + i32.rotl + i32.and + local.set $2 + local.get $1 + local.get $2 + i32.store $0 offset=4 + local.get $2 + i32.eqz + if + local.get $0 + local.get $0 + i32.load $0 + i32.const -2 + local.get $3 + i32.rotl + i32.and + i32.store $0 + end + end + end + ) + (func $~lib/rt/tlsf/insertBlock (param $0 i32) (param $1 i32) + (local $2 i32) + (local $3 i32) + (local $4 i32) + (local $5 i32) + (local $6 i32) + local.get $1 + i32.eqz + if + i32.const 0 + i32.const 1568 + i32.const 201 + i32.const 14 + call $~lib/builtins/abort + unreachable + end + local.get $1 + i32.load $0 + local.tee $3 + i32.const 1 + i32.and + i32.eqz + if + i32.const 0 + i32.const 1568 + i32.const 203 + i32.const 14 + call $~lib/builtins/abort + unreachable + end + local.get $1 + i32.const 4 + i32.add + local.get $1 + i32.load $0 + i32.const -4 + i32.and + i32.add + local.tee $4 + i32.load $0 + local.tee $2 + i32.const 1 + i32.and + if + local.get $0 + local.get $4 + call $~lib/rt/tlsf/removeBlock + local.get $1 + local.get $3 + i32.const 4 + i32.add + local.get $2 + i32.const -4 + i32.and + i32.add + local.tee $3 + i32.store $0 + local.get $1 + i32.const 4 + i32.add + local.get $1 + i32.load $0 + i32.const -4 + i32.and + i32.add + local.tee $4 + i32.load $0 + local.set $2 + end + local.get $3 + i32.const 2 + i32.and + if + local.get $1 + i32.const 4 + i32.sub + i32.load $0 + local.tee $1 + i32.load $0 + local.tee $6 + i32.const 1 + i32.and + i32.eqz + if + i32.const 0 + i32.const 1568 + i32.const 221 + i32.const 16 + call $~lib/builtins/abort + unreachable + end + local.get $0 + local.get $1 + call $~lib/rt/tlsf/removeBlock + local.get $1 + local.get $6 + i32.const 4 + i32.add + local.get $3 + i32.const -4 + i32.and + i32.add + local.tee $3 + i32.store $0 + end + local.get $4 + local.get $2 + i32.const 2 + i32.or + i32.store $0 + local.get $3 + i32.const -4 + i32.and + local.tee $2 + i32.const 12 + i32.lt_u + if + i32.const 0 + i32.const 1568 + i32.const 233 + i32.const 14 + call $~lib/builtins/abort + unreachable + end + local.get $4 + local.get $1 + i32.const 4 + i32.add + local.get $2 + i32.add + i32.ne + if + i32.const 0 + i32.const 1568 + i32.const 234 + i32.const 14 + call $~lib/builtins/abort + unreachable + end + local.get $4 + i32.const 4 + i32.sub + local.get $1 + i32.store $0 + local.get $2 + i32.const 256 + i32.lt_u + if (result i32) + local.get $2 + i32.const 4 + i32.shr_u + else + i32.const 31 + i32.const 1073741820 + local.get $2 + local.get $2 + i32.const 1073741820 + i32.ge_u + select + local.tee $2 + i32.clz + i32.sub + local.tee $3 + i32.const 7 + i32.sub + local.set $5 + local.get $2 + local.get $3 + i32.const 4 + i32.sub + i32.shr_u + i32.const 16 + i32.xor + end + local.tee $2 + i32.const 16 + i32.lt_u + local.get $5 + i32.const 23 + i32.lt_u + i32.and + i32.eqz + if + i32.const 0 + i32.const 1568 + i32.const 251 + i32.const 14 + call $~lib/builtins/abort + unreachable + end + local.get $0 + local.get $5 + i32.const 4 + i32.shl + local.get $2 + i32.add + i32.const 2 + i32.shl + i32.add + i32.load $0 offset=96 + local.set $3 + local.get $1 + i32.const 0 + i32.store $0 offset=4 + local.get $1 + local.get $3 + i32.store $0 offset=8 + local.get $3 + if + local.get $3 + local.get $1 + i32.store $0 offset=4 + end + local.get $0 + local.get $5 + i32.const 4 + i32.shl + local.get $2 + i32.add + i32.const 2 + i32.shl + i32.add + local.get $1 + i32.store $0 offset=96 + local.get $0 + local.get $0 + i32.load $0 + i32.const 1 + local.get $5 + i32.shl + i32.or + i32.store $0 + local.get $0 + local.get $5 + i32.const 2 + i32.shl + i32.add + local.tee $0 + local.get $0 + i32.load $0 offset=4 + i32.const 1 + local.get $2 + i32.shl + i32.or + i32.store $0 offset=4 + ) + (func $~lib/rt/tlsf/addMemory (param $0 i32) (param $1 i32) (param $2 i64) + (local $3 i32) + (local $4 i32) + local.get $2 + local.get $1 + i64.extend_i32_u + i64.lt_u + if + i32.const 0 + i32.const 1568 + i32.const 382 + i32.const 14 + call $~lib/builtins/abort + unreachable + end + local.get $1 + i32.const 19 + i32.add + i32.const -16 + i32.and + i32.const 4 + i32.sub + local.set $1 + local.get $0 + i32.load $0 offset=1568 + local.tee $4 + if + local.get $4 + i32.const 4 + i32.add + local.get $1 + i32.gt_u + if + i32.const 0 + i32.const 1568 + i32.const 389 + i32.const 16 + call $~lib/builtins/abort + unreachable + end + local.get $1 + i32.const 16 + i32.sub + local.get $4 + i32.eq + if + local.get $4 + i32.load $0 + local.set $3 + local.get $1 + i32.const 16 + i32.sub + local.set $1 + end + else + local.get $0 + i32.const 1572 + i32.add + local.get $1 + i32.gt_u + if + i32.const 0 + i32.const 1568 + i32.const 402 + i32.const 5 + call $~lib/builtins/abort + unreachable + end + end + local.get $2 + i32.wrap_i64 + i32.const -16 + i32.and + local.get $1 + i32.sub + local.tee $4 + i32.const 20 + i32.lt_u + if + return + end + local.get $1 + local.get $3 + i32.const 2 + i32.and + local.get $4 + i32.const 8 + i32.sub + local.tee $3 + i32.const 1 + i32.or + i32.or + i32.store $0 + local.get $1 + i32.const 0 + i32.store $0 offset=4 + local.get $1 + i32.const 0 + i32.store $0 offset=8 + local.get $1 + i32.const 4 + i32.add + local.get $3 + i32.add + local.tee $3 + i32.const 2 + i32.store $0 + local.get $0 + local.get $3 + i32.store $0 offset=1568 + local.get $0 + local.get $1 + call $~lib/rt/tlsf/insertBlock + ) + (func $~lib/rt/tlsf/initialize + (local $0 i32) + (local $1 i32) + memory.size $0 + local.tee $1 + i32.const 0 + i32.le_s + if + i32.const 1 + local.get $1 + i32.sub + memory.grow $0 + i32.const 0 + i32.lt_s + if + unreachable + end + call $rt/grow-handler/handler + end + i32.const 34416 + i32.const 0 + i32.store $0 + i32.const 35984 + i32.const 0 + i32.store $0 + loop $for-loop|0 + local.get $0 + i32.const 23 + i32.lt_u + if + local.get $0 + i32.const 2 + i32.shl + i32.const 34416 + i32.add + i32.const 0 + i32.store $0 offset=4 + i32.const 0 + local.set $1 + loop $for-loop|1 + local.get $1 + i32.const 16 + i32.lt_u + if + local.get $0 + i32.const 4 + i32.shl + local.get $1 + i32.add + i32.const 2 + i32.shl + i32.const 34416 + i32.add + i32.const 0 + i32.store $0 offset=96 + local.get $1 + i32.const 1 + i32.add + local.set $1 + br $for-loop|1 + end + end + local.get $0 + i32.const 1 + i32.add + local.set $0 + br $for-loop|0 + end + end + i32.const 34416 + i32.const 35988 + memory.size $0 + i64.extend_i32_s + i64.const 16 + i64.shl + call $~lib/rt/tlsf/addMemory + i32.const 34416 + global.set $~lib/rt/tlsf/ROOT + ) + (func $~lib/rt/itcms/step (result i32) + (local $0 i32) + (local $1 i32) + (local $2 i32) + block $break|0 + block $case2|0 + block $case1|0 + block $case0|0 + global.get $~lib/rt/itcms/state + br_table $case0|0 $case1|0 $case2|0 $break|0 + end + i32.const 1 + global.set $~lib/rt/itcms/state + i32.const 0 + global.set $~lib/rt/itcms/visitCount + call $~lib/rt/itcms/visitRoots + global.get $~lib/rt/itcms/toSpace + global.set $~lib/rt/itcms/iter + global.get $~lib/rt/itcms/visitCount + return + end + global.get $~lib/rt/itcms/white + i32.eqz + local.set $1 + global.get $~lib/rt/itcms/iter + i32.load $0 offset=4 + i32.const -4 + i32.and + local.set $0 + loop $while-continue|1 + local.get $0 + global.get $~lib/rt/itcms/toSpace + i32.ne + if + local.get $0 + global.set $~lib/rt/itcms/iter + local.get $1 + local.get $0 + i32.load $0 offset=4 + i32.const 3 + i32.and + i32.ne + if + local.get $0 + local.get $0 + i32.load $0 offset=4 + i32.const -4 + i32.and + local.get $1 + i32.or + i32.store $0 offset=4 + i32.const 0 + global.set $~lib/rt/itcms/visitCount + local.get $0 + i32.const 20 + i32.add + call $~lib/rt/__visit_members + global.get $~lib/rt/itcms/visitCount + return + end + local.get $0 + i32.load $0 offset=4 + i32.const -4 + i32.and + local.set $0 + br $while-continue|1 + end + end + i32.const 0 + global.set $~lib/rt/itcms/visitCount + call $~lib/rt/itcms/visitRoots + global.get $~lib/rt/itcms/toSpace + global.get $~lib/rt/itcms/iter + i32.load $0 offset=4 + i32.const -4 + i32.and + i32.eq + if + global.get $~lib/memory/__stack_pointer + local.set $0 + loop $while-continue|0 + local.get $0 + i32.const 34408 + i32.lt_u + if + local.get $0 + i32.load $0 + local.tee $2 + if + local.get $2 + call $byn-split-outlined-A$~lib/rt/itcms/__visit + end + local.get $0 + i32.const 4 + i32.add + local.set $0 + br $while-continue|0 + end + end + global.get $~lib/rt/itcms/iter + i32.load $0 offset=4 + i32.const -4 + i32.and + local.set $0 + loop $while-continue|2 + local.get $0 + global.get $~lib/rt/itcms/toSpace + i32.ne + if + local.get $1 + local.get $0 + i32.load $0 offset=4 + i32.const 3 + i32.and + i32.ne + if + local.get $0 + local.get $0 + i32.load $0 offset=4 + i32.const -4 + i32.and + local.get $1 + i32.or + i32.store $0 offset=4 + local.get $0 + i32.const 20 + i32.add + call $~lib/rt/__visit_members + end + local.get $0 + i32.load $0 offset=4 + i32.const -4 + i32.and + local.set $0 + br $while-continue|2 + end + end + global.get $~lib/rt/itcms/fromSpace + local.set $0 + global.get $~lib/rt/itcms/toSpace + global.set $~lib/rt/itcms/fromSpace + local.get $0 + global.set $~lib/rt/itcms/toSpace + local.get $1 + global.set $~lib/rt/itcms/white + local.get $0 + i32.load $0 offset=4 + i32.const -4 + i32.and + global.set $~lib/rt/itcms/iter + i32.const 2 + global.set $~lib/rt/itcms/state + end + global.get $~lib/rt/itcms/visitCount + return + end + global.get $~lib/rt/itcms/iter + local.tee $0 + global.get $~lib/rt/itcms/toSpace + i32.ne + if + local.get $0 + i32.load $0 offset=4 + local.tee $1 + i32.const -4 + i32.and + global.set $~lib/rt/itcms/iter + global.get $~lib/rt/itcms/white + i32.eqz + local.get $1 + i32.const 3 + i32.and + i32.ne + if + i32.const 0 + i32.const 1296 + i32.const 229 + i32.const 20 + call $~lib/builtins/abort + unreachable + end + local.get $0 + i32.const 34408 + i32.lt_u + if + local.get $0 + i32.const 0 + i32.store $0 offset=4 + local.get $0 + i32.const 0 + i32.store $0 offset=8 + else + global.get $~lib/rt/itcms/total + local.get $0 + i32.load $0 + i32.const -4 + i32.and + i32.const 4 + i32.add + i32.sub + global.set $~lib/rt/itcms/total + local.get $0 + i32.const 4 + i32.add + local.tee $0 + i32.const 34408 + i32.ge_u + if + global.get $~lib/rt/tlsf/ROOT + i32.eqz + if + call $~lib/rt/tlsf/initialize + end + global.get $~lib/rt/tlsf/ROOT + local.set $1 + local.get $0 + i32.const 4 + i32.sub + local.set $2 + local.get $0 + i32.const 15 + i32.and + i32.const 1 + local.get $0 + select + if (result i32) + i32.const 1 + else + local.get $2 + i32.load $0 + i32.const 1 + i32.and + end + if + i32.const 0 + i32.const 1568 + i32.const 566 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $2 + local.get $2 + i32.load $0 + i32.const 1 + i32.or + i32.store $0 + local.get $1 + local.get $2 + call $~lib/rt/tlsf/insertBlock + end + end + i32.const 10 + return + end + global.get $~lib/rt/itcms/toSpace + local.tee $0 + local.get $0 + i32.store $0 offset=4 + local.get $0 + local.get $0 + i32.store $0 offset=8 + i32.const 0 + global.set $~lib/rt/itcms/state + end + i32.const 0 + ) + (func $~lib/rt/tlsf/searchBlock (param $0 i32) (param $1 i32) (result i32) + (local $2 i32) + (local $3 i32) + local.get $1 + i32.const 256 + i32.lt_u + if (result i32) + local.get $1 + i32.const 4 + i32.shr_u + else + i32.const 31 + local.get $1 + i32.const 1 + i32.const 27 + local.get $1 + i32.clz + i32.sub + i32.shl + i32.add + i32.const 1 + i32.sub + local.get $1 + local.get $1 + i32.const 536870910 + i32.lt_u + select + local.tee $1 + i32.clz + i32.sub + local.tee $3 + i32.const 7 + i32.sub + local.set $2 + local.get $1 + local.get $3 + i32.const 4 + i32.sub + i32.shr_u + i32.const 16 + i32.xor + end + local.tee $1 + i32.const 16 + i32.lt_u + local.get $2 + i32.const 23 + i32.lt_u + i32.and + i32.eqz + if + i32.const 0 + i32.const 1568 + i32.const 334 + i32.const 14 + call $~lib/builtins/abort + unreachable + end + local.get $0 + local.get $2 + i32.const 2 + i32.shl + i32.add + i32.load $0 offset=4 + i32.const -1 + local.get $1 + i32.shl + i32.and + local.tee $1 + if (result i32) + local.get $0 + local.get $1 + i32.ctz + local.get $2 + i32.const 4 + i32.shl + i32.add + i32.const 2 + i32.shl + i32.add + i32.load $0 offset=96 + else + local.get $0 + i32.load $0 + i32.const -1 + local.get $2 + i32.const 1 + i32.add + i32.shl + i32.and + local.tee $1 + if (result i32) + local.get $0 + local.get $1 + i32.ctz + local.tee $1 + i32.const 2 + i32.shl + i32.add + i32.load $0 offset=4 + local.tee $2 + i32.eqz + if + i32.const 0 + i32.const 1568 + i32.const 347 + i32.const 18 + call $~lib/builtins/abort + unreachable + end + local.get $0 + local.get $2 + i32.ctz + local.get $1 + i32.const 4 + i32.shl + i32.add + i32.const 2 + i32.shl + i32.add + i32.load $0 offset=96 + else + i32.const 0 + end + end + ) + (func $~lib/rt/__visit_members (param $0 i32) + (local $1 i32) + block $invalid + block $~lib/array/Array + 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 $0 + br_table $~lib/object/Object $~lib/arraybuffer/ArrayBuffer $~lib/string/String $~lib/arraybuffer/ArrayBufferView $~lib/array/Array $invalid + end + return + end + return + end + return + end + local.get $0 + i32.load $0 + local.tee $0 + if + local.get $0 + call $byn-split-outlined-A$~lib/rt/itcms/__visit + end + 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 1640 + i32.lt_s + if + i32.const 34432 + i32.const 34480 + i32.const 1 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + local.tee $1 + i32.const 0 + i32.store $0 + local.get $1 + local.get $0 + i32.store $0 + local.get $0 + i32.load $0 + local.tee $0 + if + local.get $0 + call $byn-split-outlined-A$~lib/rt/itcms/__visit + end + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + return + end + unreachable + ) + (func $~start + memory.size $0 + i32.const 16 + i32.shl + i32.const 34408 + i32.sub + i32.const 1 + i32.shr_u + global.set $~lib/rt/itcms/threshold + i32.const 1348 + i32.const 1344 + i32.store $0 + i32.const 1352 + i32.const 1344 + i32.store $0 + i32.const 1344 + global.set $~lib/rt/itcms/pinSpace + i32.const 1380 + i32.const 1376 + i32.store $0 + i32.const 1384 + i32.const 1376 + i32.store $0 + i32.const 1376 + global.set $~lib/rt/itcms/toSpace + i32.const 1524 + i32.const 1520 + i32.store $0 + i32.const 1528 + i32.const 1520 + i32.store $0 + i32.const 1520 + global.set $~lib/rt/itcms/fromSpace + ) + (func $~lib/array/ensureCapacity (param $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 4 + i32.sub + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 1640 + i32.lt_s + if + i32.const 34432 + i32.const 34480 + i32.const 1 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + local.tee $1 + i32.const 0 + i32.store $0 + local.get $1 + i32.const 1088 + i32.store $0 + local.get $0 + i32.const 1096 + i32.load $0 + local.tee $1 + i32.const 2 + i32.shr_u + i32.gt_u + if + local.get $0 + i32.const 268435455 + i32.gt_u + if + i32.const 1136 + i32.const 1184 + i32.const 19 + i32.const 48 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + i32.const 1088 + i32.store $0 + block $__inlined_func$~lib/rt/itcms/__renew + i32.const 1073741820 + local.get $1 + i32.const 1 + i32.shl + local.tee $1 + local.get $1 + i32.const 1073741820 + i32.ge_u + select + local.tee $1 + i32.const 8 + local.get $0 + local.get $0 + i32.const 8 + i32.le_u + select + i32.const 2 + i32.shl + local.tee $0 + local.get $0 + local.get $1 + i32.lt_u + select + local.tee $2 + i32.const 1088 + i32.load $0 + local.tee $1 + i32.const 20 + i32.sub + local.tee $5 + i32.load $0 + i32.const -4 + i32.and + i32.const 16 + i32.sub + i32.le_u + if + local.get $5 + local.get $2 + i32.store $0 offset=16 + local.get $1 + local.set $0 + br $__inlined_func$~lib/rt/itcms/__renew + end + local.get $5 + i32.load $0 offset=12 + local.set $6 + local.get $2 + i32.const 1073741804 + i32.ge_u + if + i32.const 1232 + i32.const 1296 + i32.const 261 + i32.const 31 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/rt/itcms/total + global.get $~lib/rt/itcms/threshold + i32.ge_u + if + block $__inlined_func$~lib/rt/itcms/interrupt + i32.const 2048 + local.set $0 + loop $do-loop|0 + local.get $0 + call $~lib/rt/itcms/step + i32.sub + local.set $0 + global.get $~lib/rt/itcms/state + i32.eqz + if + global.get $~lib/rt/itcms/total + i64.extend_i32_u + i64.const 200 + i64.mul + i64.const 100 + i64.div_u + i32.wrap_i64 + i32.const 1024 + i32.add + global.set $~lib/rt/itcms/threshold + br $__inlined_func$~lib/rt/itcms/interrupt + end + local.get $0 + i32.const 0 + i32.gt_s + br_if $do-loop|0 + end + global.get $~lib/rt/itcms/total + local.tee $0 + local.get $0 + global.get $~lib/rt/itcms/threshold + i32.sub + i32.const 1024 + i32.lt_u + i32.const 10 + i32.shl + i32.add + global.set $~lib/rt/itcms/threshold + end + end + global.get $~lib/rt/tlsf/ROOT + i32.eqz + if + call $~lib/rt/tlsf/initialize + end + global.get $~lib/rt/tlsf/ROOT + local.set $3 + local.get $2 + i32.const 16 + i32.add + local.tee $0 + i32.const 1073741820 + i32.gt_u + if + i32.const 1232 + i32.const 1568 + i32.const 462 + i32.const 29 + call $~lib/builtins/abort + unreachable + end + local.get $3 + i32.const 12 + local.get $0 + i32.const 19 + i32.add + i32.const -16 + i32.and + i32.const 4 + i32.sub + local.get $0 + i32.const 12 + i32.le_u + select + local.tee $7 + call $~lib/rt/tlsf/searchBlock + local.tee $0 + i32.eqz + if + memory.size $0 + local.tee $0 + local.get $7 + i32.const 256 + i32.ge_u + if (result i32) + local.get $7 + i32.const 1 + i32.const 27 + local.get $7 + i32.clz + i32.sub + i32.shl + i32.add + i32.const 1 + i32.sub + local.get $7 + local.get $7 + i32.const 536870910 + i32.lt_u + select + else + local.get $7 + end + i32.const 4 + local.get $3 + i32.load $0 offset=1568 + local.get $0 + i32.const 16 + i32.shl + i32.const 4 + i32.sub + i32.ne + i32.shl + i32.add + i32.const 65535 + i32.add + i32.const -65536 + i32.and + i32.const 16 + i32.shr_u + local.tee $4 + local.get $0 + local.get $4 + i32.gt_s + select + memory.grow $0 + i32.const 0 + i32.lt_s + if + local.get $4 + memory.grow $0 + i32.const 0 + i32.lt_s + if + unreachable + end + end + call $rt/grow-handler/handler + local.get $3 + local.get $0 + i32.const 16 + i32.shl + memory.size $0 + i64.extend_i32_s + i64.const 16 + i64.shl + call $~lib/rt/tlsf/addMemory + local.get $3 + local.get $7 + call $~lib/rt/tlsf/searchBlock + local.tee $0 + i32.eqz + if + i32.const 0 + i32.const 1568 + i32.const 503 + i32.const 16 + call $~lib/builtins/abort + unreachable + end + end + local.get $7 + local.get $0 + i32.load $0 + i32.const -4 + i32.and + i32.gt_u + if + i32.const 0 + i32.const 1568 + i32.const 505 + i32.const 14 + call $~lib/builtins/abort + unreachable + end + local.get $3 + local.get $0 + call $~lib/rt/tlsf/removeBlock + local.get $0 + i32.load $0 + local.set $4 + local.get $7 + i32.const 4 + i32.add + i32.const 15 + i32.and + if + i32.const 0 + i32.const 1568 + i32.const 361 + i32.const 14 + call $~lib/builtins/abort + unreachable + end + local.get $4 + i32.const -4 + i32.and + local.get $7 + i32.sub + local.tee $8 + i32.const 16 + i32.ge_u + if + local.get $0 + local.get $7 + local.get $4 + i32.const 2 + i32.and + i32.or + i32.store $0 + local.get $0 + i32.const 4 + i32.add + local.get $7 + i32.add + local.tee $4 + local.get $8 + i32.const 4 + i32.sub + i32.const 1 + i32.or + i32.store $0 + local.get $3 + local.get $4 + call $~lib/rt/tlsf/insertBlock + else + local.get $0 + local.get $4 + i32.const -2 + i32.and + i32.store $0 + local.get $0 + i32.const 4 + i32.add + local.get $0 + i32.load $0 + i32.const -4 + i32.and + i32.add + local.tee $3 + local.get $3 + i32.load $0 + i32.const -3 + i32.and + i32.store $0 + end + local.get $0 + local.get $6 + i32.store $0 offset=12 + local.get $0 + local.get $2 + i32.store $0 offset=16 + global.get $~lib/rt/itcms/fromSpace + local.tee $3 + i32.load $0 offset=8 + local.set $4 + local.get $0 + local.get $3 + global.get $~lib/rt/itcms/white + i32.or + i32.store $0 offset=4 + local.get $0 + local.get $4 + i32.store $0 offset=8 + local.get $4 + local.get $0 + local.get $4 + i32.load $0 offset=4 + i32.const 3 + i32.and + i32.or + i32.store $0 offset=4 + local.get $3 + local.get $0 + i32.store $0 offset=8 + global.get $~lib/rt/itcms/total + local.get $0 + i32.load $0 + i32.const -4 + i32.and + i32.const 4 + i32.add + i32.add + global.set $~lib/rt/itcms/total + local.get $0 + i32.const 20 + i32.add + local.tee $0 + i32.const 0 + local.get $2 + memory.fill $0 + local.get $0 + local.get $1 + local.get $2 + local.get $5 + i32.load $0 offset=16 + local.tee $3 + local.get $2 + local.get $3 + i32.lt_u + select + memory.copy $0 $0 + end + local.get $0 + local.get $1 + i32.ne + if + i32.const 1088 + local.get $0 + i32.store $0 + i32.const 1092 + local.get $0 + i32.store $0 + local.get $0 + if + global.get $~lib/rt/itcms/white + local.get $0 + i32.const 20 + i32.sub + local.tee $0 + i32.load $0 offset=4 + i32.const 3 + i32.and + i32.eq + if + i32.const 1072 + i32.load $0 + i32.const 3 + i32.and + local.tee $1 + global.get $~lib/rt/itcms/white + i32.eqz + i32.eq + if + local.get $0 + call $~lib/rt/itcms/Object#makeGray + else + global.get $~lib/rt/itcms/state + i32.const 1 + i32.eq + local.get $1 + i32.const 3 + i32.eq + i32.and + if + local.get $0 + call $~lib/rt/itcms/Object#makeGray + end + end + end + end + end + i32.const 1096 + local.get $2 + i32.store $0 + end + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + ) + (func $rt/grow-handler/stress + (local $0 i32) + (local $1 i32) + (local $2 i32) + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.sub + global.set $~lib/memory/__stack_pointer + block $folding-inner0 + global.get $~lib/memory/__stack_pointer + i32.const 1640 + i32.lt_s + br_if $folding-inner0 + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store $0 + loop $for-loop|0 + local.get $0 + i32.const 65536 + i32.lt_s + if + global.get $~lib/memory/__stack_pointer + local.tee $1 + i32.const 1088 + i32.store $0 + local.get $1 + i32.const 4 + i32.sub + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 1640 + i32.lt_s + br_if $folding-inner0 + global.get $~lib/memory/__stack_pointer + local.tee $1 + i32.const 0 + i32.store $0 + local.get $1 + i32.const 1088 + i32.store $0 + i32.const 1100 + i32.load $0 + local.tee $1 + i32.const 1 + i32.add + local.tee $2 + call $~lib/array/ensureCapacity + global.get $~lib/memory/__stack_pointer + i32.const 1088 + i32.store $0 + i32.const 1092 + i32.load $0 + local.get $1 + i32.const 2 + i32.shl + i32.add + local.get $0 + i32.store $0 + global.get $~lib/memory/__stack_pointer + i32.const 1088 + i32.store $0 + i32.const 1100 + local.get $2 + i32.store $0 + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $0 + i32.const 1 + i32.add + local.set $0 + br $for-loop|0 + end + end + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + return + end + i32.const 34432 + i32.const 34480 + i32.const 1 + i32.const 1 + call $~lib/builtins/abort + unreachable + ) + (func $byn-split-outlined-A$~lib/rt/itcms/__visit (param $0 i32) + global.get $~lib/rt/itcms/white + local.get $0 + i32.const 20 + i32.sub + local.tee $0 + i32.load $0 offset=4 + i32.const 3 + i32.and + i32.eq + if + local.get $0 + call $~lib/rt/itcms/Object#makeGray + global.get $~lib/rt/itcms/visitCount + i32.const 1 + i32.add + global.set $~lib/rt/itcms/visitCount + end + ) +) diff --git a/tests/compiler/rt/grow-handler.ts b/tests/compiler/rt/grow-handler.ts new file mode 100644 index 0000000000..af12f7b747 --- /dev/null +++ b/tests/compiler/rt/grow-handler.ts @@ -0,0 +1,7 @@ +@external("grow", "handler") +declare function handler(): void; + +let leak: i32[] = []; +export function stress(): void { + for (let i = 0; i < 65536; i++) leak.push(i); +} \ No newline at end of file diff --git a/tests/compiler/rt/issue-2719.debug.wat b/tests/compiler/rt/issue-2719.debug.wat index e42ecb6b4c..db8c932505 100644 --- a/tests/compiler/rt/issue-2719.debug.wat +++ b/tests/compiler/rt/issue-2719.debug.wat @@ -1224,18 +1224,18 @@ local.get $pagesNeeded local.get $pagesBefore i32.gt_s - if (result i32) + if local.get $pagesNeeded local.get $pagesBefore i32.sub memory.grow $0 i32.const 0 i32.lt_s - else + if + unreachable + end i32.const 0 - end - if - unreachable + drop end local.get $rootOffset local.set $root @@ -1356,7 +1356,7 @@ if i32.const 0 i32.const 368 - i32.const 562 + i32.const 566 i32.const 3 call $~lib/builtins/abort unreachable @@ -1685,7 +1685,7 @@ if i32.const 32 i32.const 368 - i32.const 461 + i32.const 462 i32.const 29 call $~lib/builtins/abort unreachable @@ -1981,6 +1981,8 @@ unreachable end end + i32.const 0 + drop memory.size $0 local.set $pagesAfter local.get $root @@ -2130,7 +2132,7 @@ if i32.const 0 i32.const 368 - i32.const 499 + i32.const 503 i32.const 16 call $~lib/builtins/abort unreachable @@ -2150,7 +2152,7 @@ if i32.const 0 i32.const 368 - i32.const 501 + i32.const 505 i32.const 14 call $~lib/builtins/abort unreachable diff --git a/tests/compiler/rt/issue-2719.release.wat b/tests/compiler/rt/issue-2719.release.wat index 19e5c96b2c..e03ec6388b 100644 --- a/tests/compiler/rt/issue-2719.release.wat +++ b/tests/compiler/rt/issue-2719.release.wat @@ -731,18 +731,16 @@ local.tee $1 i32.const 0 i32.le_s - if (result i32) + if i32.const 1 local.get $1 i32.sub memory.grow $0 i32.const 0 i32.lt_s - else - i32.const 0 - end - if - unreachable + if + unreachable + end end i32.const 34304 i32.const 0 @@ -1040,7 +1038,7 @@ if i32.const 0 i32.const 1392 - i32.const 562 + i32.const 566 i32.const 3 call $~lib/builtins/abort unreachable @@ -1275,7 +1273,7 @@ if i32.const 1056 i32.const 1392 - i32.const 461 + i32.const 462 i32.const 29 call $~lib/builtins/abort unreachable @@ -1373,7 +1371,7 @@ if i32.const 0 i32.const 1392 - i32.const 499 + i32.const 503 i32.const 16 call $~lib/builtins/abort unreachable @@ -1388,7 +1386,7 @@ if i32.const 0 i32.const 1392 - i32.const 501 + i32.const 505 i32.const 14 call $~lib/builtins/abort unreachable diff --git a/tests/compiler/rt/runtime-incremental-export.debug.wat b/tests/compiler/rt/runtime-incremental-export.debug.wat index 1c5c21375c..a2b0ab3bb0 100644 --- a/tests/compiler/rt/runtime-incremental-export.debug.wat +++ b/tests/compiler/rt/runtime-incremental-export.debug.wat @@ -1230,18 +1230,18 @@ local.get $pagesNeeded local.get $pagesBefore i32.gt_s - if (result i32) + if local.get $pagesNeeded local.get $pagesBefore i32.sub memory.grow $0 i32.const 0 i32.lt_s - else + if + unreachable + end i32.const 0 - end - if - unreachable + drop end local.get $rootOffset local.set $root @@ -1362,7 +1362,7 @@ if i32.const 0 i32.const 368 - i32.const 562 + i32.const 566 i32.const 3 call $~lib/builtins/abort unreachable @@ -1691,7 +1691,7 @@ if i32.const 32 i32.const 368 - i32.const 461 + i32.const 462 i32.const 29 call $~lib/builtins/abort unreachable @@ -1987,6 +1987,8 @@ unreachable end end + i32.const 0 + drop memory.size $0 local.set $pagesAfter local.get $root @@ -2136,7 +2138,7 @@ if i32.const 0 i32.const 368 - i32.const 499 + i32.const 503 i32.const 16 call $~lib/builtins/abort unreachable @@ -2156,7 +2158,7 @@ if i32.const 0 i32.const 368 - i32.const 501 + i32.const 505 i32.const 14 call $~lib/builtins/abort unreachable diff --git a/tests/compiler/rt/runtime-incremental-export.release.wat b/tests/compiler/rt/runtime-incremental-export.release.wat index 8ac160e12a..473f971e6d 100644 --- a/tests/compiler/rt/runtime-incremental-export.release.wat +++ b/tests/compiler/rt/runtime-incremental-export.release.wat @@ -746,18 +746,16 @@ local.tee $1 i32.const 0 i32.le_s - if (result i32) + if i32.const 1 local.get $1 i32.sub memory.grow $0 i32.const 0 i32.lt_s - else - i32.const 0 - end - if - unreachable + if + unreachable + end end i32.const 34368 i32.const 0 @@ -1055,7 +1053,7 @@ if i32.const 0 i32.const 1392 - i32.const 562 + i32.const 566 i32.const 3 call $~lib/builtins/abort unreachable @@ -1290,7 +1288,7 @@ if i32.const 1056 i32.const 1392 - i32.const 461 + i32.const 462 i32.const 29 call $~lib/builtins/abort unreachable @@ -1388,7 +1386,7 @@ if i32.const 0 i32.const 1392 - i32.const 499 + i32.const 503 i32.const 16 call $~lib/builtins/abort unreachable @@ -1403,7 +1401,7 @@ if i32.const 0 i32.const 1392 - i32.const 501 + i32.const 505 i32.const 14 call $~lib/builtins/abort unreachable diff --git a/tests/compiler/rt/runtime-minimal-export.debug.wat b/tests/compiler/rt/runtime-minimal-export.debug.wat index c667c5ca2c..d92fe473b6 100644 --- a/tests/compiler/rt/runtime-minimal-export.debug.wat +++ b/tests/compiler/rt/runtime-minimal-export.debug.wat @@ -886,18 +886,18 @@ local.get $pagesNeeded local.get $pagesBefore i32.gt_s - if (result i32) + if local.get $pagesNeeded local.get $pagesBefore i32.sub memory.grow $0 i32.const 0 i32.lt_s - else + if + unreachable + end i32.const 0 - end - if - unreachable + drop end local.get $rootOffset local.set $root @@ -1016,7 +1016,7 @@ if i32.const 32 i32.const 160 - i32.const 461 + i32.const 462 i32.const 29 call $~lib/builtins/abort unreachable @@ -1312,6 +1312,8 @@ unreachable end end + i32.const 0 + drop memory.size $0 local.set $pagesAfter local.get $root @@ -1461,7 +1463,7 @@ if i32.const 0 i32.const 160 - i32.const 499 + i32.const 503 i32.const 16 call $~lib/builtins/abort unreachable @@ -1481,7 +1483,7 @@ if i32.const 0 i32.const 160 - i32.const 501 + i32.const 505 i32.const 14 call $~lib/builtins/abort unreachable @@ -1792,7 +1794,7 @@ if i32.const 0 i32.const 160 - i32.const 562 + i32.const 566 i32.const 3 call $~lib/builtins/abort unreachable diff --git a/tests/compiler/rt/runtime-minimal-export.release.wat b/tests/compiler/rt/runtime-minimal-export.release.wat index 5c5459a0d3..4ff15c4375 100644 --- a/tests/compiler/rt/runtime-minimal-export.release.wat +++ b/tests/compiler/rt/runtime-minimal-export.release.wat @@ -553,18 +553,16 @@ local.tee $1 i32.const 0 i32.le_s - if (result i32) + if i32.const 1 local.get $1 i32.sub memory.grow $0 i32.const 0 i32.lt_s - else - i32.const 0 - end - if - unreachable + if + unreachable + end end i32.const 1488 i32.const 0 @@ -785,7 +783,7 @@ if i32.const 1056 i32.const 1184 - i32.const 461 + i32.const 462 i32.const 29 call $~lib/builtins/abort unreachable @@ -883,7 +881,7 @@ if i32.const 0 i32.const 1184 - i32.const 499 + i32.const 503 i32.const 16 call $~lib/builtins/abort unreachable @@ -898,7 +896,7 @@ if i32.const 0 i32.const 1184 - i32.const 501 + i32.const 505 i32.const 14 call $~lib/builtins/abort unreachable @@ -1345,7 +1343,7 @@ if i32.const 0 i32.const 1184 - i32.const 562 + i32.const 566 i32.const 3 call $~lib/builtins/abort unreachable diff --git a/tests/compiler/rt/runtime-stub-export.debug.wat b/tests/compiler/rt/runtime-stub-export.debug.wat index 42a8a1c554..425a29af9b 100644 --- a/tests/compiler/rt/runtime-stub-export.debug.wat +++ b/tests/compiler/rt/runtime-stub-export.debug.wat @@ -80,6 +80,8 @@ unreachable end end + i32.const 0 + drop end local.get $newOffset global.set $~lib/rt/stub/offset @@ -100,7 +102,7 @@ if i32.const 32 i32.const 96 - i32.const 33 + i32.const 34 i32.const 29 call $~lib/builtins/abort unreachable @@ -167,7 +169,7 @@ if i32.const 32 i32.const 96 - i32.const 86 + i32.const 87 i32.const 30 call $~lib/builtins/abort unreachable diff --git a/tests/compiler/rt/runtime-stub-export.release.wat b/tests/compiler/rt/runtime-stub-export.release.wat index 368b597871..b537d7301a 100644 --- a/tests/compiler/rt/runtime-stub-export.release.wat +++ b/tests/compiler/rt/runtime-stub-export.release.wat @@ -33,7 +33,7 @@ if i32.const 1056 i32.const 1120 - i32.const 86 + i32.const 87 i32.const 30 call $~lib/builtins/abort unreachable @@ -47,7 +47,7 @@ if i32.const 1056 i32.const 1120 - i32.const 33 + i32.const 34 i32.const 29 call $~lib/builtins/abort unreachable diff --git a/tests/compiler/simd.debug.wat b/tests/compiler/simd.debug.wat index bb810b7e42..b024933e1a 100644 --- a/tests/compiler/simd.debug.wat +++ b/tests/compiler/simd.debug.wat @@ -1263,18 +1263,18 @@ local.get $pagesNeeded local.get $pagesBefore i32.gt_s - if (result i32) + if local.get $pagesNeeded local.get $pagesBefore i32.sub memory.grow $0 i32.const 0 i32.lt_s - else + if + unreachable + end i32.const 0 - end - if - unreachable + drop end local.get $rootOffset local.set $root @@ -1395,7 +1395,7 @@ if i32.const 0 i32.const 416 - i32.const 562 + i32.const 566 i32.const 3 call $~lib/builtins/abort unreachable @@ -1724,7 +1724,7 @@ if i32.const 80 i32.const 416 - i32.const 461 + i32.const 462 i32.const 29 call $~lib/builtins/abort unreachable @@ -2020,6 +2020,8 @@ unreachable end end + i32.const 0 + drop memory.size $0 local.set $pagesAfter local.get $root @@ -2169,7 +2171,7 @@ if i32.const 0 i32.const 416 - i32.const 499 + i32.const 503 i32.const 16 call $~lib/builtins/abort unreachable @@ -2189,7 +2191,7 @@ if i32.const 0 i32.const 416 - i32.const 501 + i32.const 505 i32.const 14 call $~lib/builtins/abort unreachable diff --git a/tests/compiler/simd.release.wat b/tests/compiler/simd.release.wat index deba7d8f6d..d2845892b0 100644 --- a/tests/compiler/simd.release.wat +++ b/tests/compiler/simd.release.wat @@ -762,18 +762,16 @@ local.tee $1 i32.const 0 i32.le_s - if (result i32) + if i32.const 1 local.get $1 i32.sub memory.grow $0 i32.const 0 i32.lt_s - else - i32.const 0 - end - if - unreachable + if + unreachable + end end i32.const 34384 i32.const 0 @@ -872,7 +870,7 @@ if i32.const 0 i32.const 1440 - i32.const 562 + i32.const 566 i32.const 3 call $~lib/builtins/abort unreachable @@ -1244,7 +1242,7 @@ if i32.const 1104 i32.const 1440 - i32.const 461 + i32.const 462 i32.const 29 call $~lib/builtins/abort unreachable @@ -1342,7 +1340,7 @@ if i32.const 0 i32.const 1440 - i32.const 499 + i32.const 503 i32.const 16 call $~lib/builtins/abort unreachable @@ -1357,7 +1355,7 @@ if i32.const 0 i32.const 1440 - i32.const 501 + i32.const 505 i32.const 14 call $~lib/builtins/abort unreachable diff --git a/tests/compiler/std/array-literal.debug.wat b/tests/compiler/std/array-literal.debug.wat index fd50847553..58e4e2e3a7 100644 --- a/tests/compiler/std/array-literal.debug.wat +++ b/tests/compiler/std/array-literal.debug.wat @@ -1259,18 +1259,18 @@ local.get $pagesNeeded local.get $pagesBefore i32.gt_s - if (result i32) + if local.get $pagesNeeded local.get $pagesBefore i32.sub memory.grow $0 i32.const 0 i32.lt_s - else + if + unreachable + end i32.const 0 - end - if - unreachable + drop end local.get $rootOffset local.set $root @@ -1391,7 +1391,7 @@ if i32.const 0 i32.const 720 - i32.const 562 + i32.const 566 i32.const 3 call $~lib/builtins/abort unreachable @@ -1720,7 +1720,7 @@ if i32.const 448 i32.const 720 - i32.const 461 + i32.const 462 i32.const 29 call $~lib/builtins/abort unreachable @@ -2016,6 +2016,8 @@ unreachable end end + i32.const 0 + drop memory.size $0 local.set $pagesAfter local.get $root @@ -2165,7 +2167,7 @@ if i32.const 0 i32.const 720 - i32.const 499 + i32.const 503 i32.const 16 call $~lib/builtins/abort unreachable @@ -2185,7 +2187,7 @@ if i32.const 0 i32.const 720 - i32.const 501 + i32.const 505 i32.const 14 call $~lib/builtins/abort unreachable diff --git a/tests/compiler/std/array-literal.release.wat b/tests/compiler/std/array-literal.release.wat index 4455e67b59..12878ed9c7 100644 --- a/tests/compiler/std/array-literal.release.wat +++ b/tests/compiler/std/array-literal.release.wat @@ -792,18 +792,16 @@ local.tee $1 i32.const 0 i32.le_s - if (result i32) + if i32.const 1 local.get $1 i32.sub memory.grow $0 i32.const 0 i32.lt_s - else - i32.const 0 - end - if - unreachable + if + unreachable + end end i32.const 34656 i32.const 0 @@ -1101,7 +1099,7 @@ if i32.const 0 i32.const 1744 - i32.const 562 + i32.const 566 i32.const 3 call $~lib/builtins/abort unreachable @@ -1336,7 +1334,7 @@ if i32.const 1472 i32.const 1744 - i32.const 461 + i32.const 462 i32.const 29 call $~lib/builtins/abort unreachable @@ -1434,7 +1432,7 @@ if i32.const 0 i32.const 1744 - i32.const 499 + i32.const 503 i32.const 16 call $~lib/builtins/abort unreachable @@ -1449,7 +1447,7 @@ if i32.const 0 i32.const 1744 - i32.const 501 + i32.const 505 i32.const 14 call $~lib/builtins/abort unreachable diff --git a/tests/compiler/std/array.debug.wat b/tests/compiler/std/array.debug.wat index 1cf71a8daa..8f5e2cecae 100644 --- a/tests/compiler/std/array.debug.wat +++ b/tests/compiler/std/array.debug.wat @@ -1568,18 +1568,18 @@ local.get $pagesNeeded local.get $pagesBefore i32.gt_s - if (result i32) + if local.get $pagesNeeded local.get $pagesBefore i32.sub memory.grow $0 i32.const 0 i32.lt_s - else + if + unreachable + end i32.const 0 - end - if - unreachable + drop end local.get $rootOffset local.set $root @@ -1700,7 +1700,7 @@ if i32.const 0 i32.const 464 - i32.const 562 + i32.const 566 i32.const 3 call $~lib/builtins/abort unreachable @@ -2029,7 +2029,7 @@ if i32.const 128 i32.const 464 - i32.const 461 + i32.const 462 i32.const 29 call $~lib/builtins/abort unreachable @@ -2325,6 +2325,8 @@ unreachable end end + i32.const 0 + drop memory.size $0 local.set $pagesAfter local.get $root @@ -2474,7 +2476,7 @@ if i32.const 0 i32.const 464 - i32.const 499 + i32.const 503 i32.const 16 call $~lib/builtins/abort unreachable @@ -2494,7 +2496,7 @@ if i32.const 0 i32.const 464 - i32.const 501 + i32.const 505 i32.const 14 call $~lib/builtins/abort unreachable diff --git a/tests/compiler/std/array.release.wat b/tests/compiler/std/array.release.wat index 80194460d7..e9ab2071ee 100644 --- a/tests/compiler/std/array.release.wat +++ b/tests/compiler/std/array.release.wat @@ -1387,18 +1387,16 @@ local.tee $1 i32.const 0 i32.le_s - if (result i32) + if i32.const 1 local.get $1 i32.sub memory.grow $0 i32.const 0 i32.lt_s - else - i32.const 0 - end - if - unreachable + if + unreachable + end end i32.const 48960 i32.const 0 @@ -1497,7 +1495,7 @@ if i32.const 0 i32.const 1488 - i32.const 562 + i32.const 566 i32.const 3 call $~lib/builtins/abort unreachable @@ -1869,7 +1867,7 @@ if i32.const 1152 i32.const 1488 - i32.const 461 + i32.const 462 i32.const 29 call $~lib/builtins/abort unreachable @@ -1967,7 +1965,7 @@ if i32.const 0 i32.const 1488 - i32.const 499 + i32.const 503 i32.const 16 call $~lib/builtins/abort unreachable @@ -1982,7 +1980,7 @@ if i32.const 0 i32.const 1488 - i32.const 501 + i32.const 505 i32.const 14 call $~lib/builtins/abort unreachable diff --git a/tests/compiler/std/arraybuffer.debug.wat b/tests/compiler/std/arraybuffer.debug.wat index 8a91cfb438..ea0b9e4a92 100644 --- a/tests/compiler/std/arraybuffer.debug.wat +++ b/tests/compiler/std/arraybuffer.debug.wat @@ -1232,18 +1232,18 @@ local.get $pagesNeeded local.get $pagesBefore i32.gt_s - if (result i32) + if local.get $pagesNeeded local.get $pagesBefore i32.sub memory.grow $0 i32.const 0 i32.lt_s - else + if + unreachable + end i32.const 0 - end - if - unreachable + drop end local.get $rootOffset local.set $root @@ -1364,7 +1364,7 @@ if i32.const 0 i32.const 480 - i32.const 562 + i32.const 566 i32.const 3 call $~lib/builtins/abort unreachable @@ -1693,7 +1693,7 @@ if i32.const 144 i32.const 480 - i32.const 461 + i32.const 462 i32.const 29 call $~lib/builtins/abort unreachable @@ -1989,6 +1989,8 @@ unreachable end end + i32.const 0 + drop memory.size $0 local.set $pagesAfter local.get $root @@ -2138,7 +2140,7 @@ if i32.const 0 i32.const 480 - i32.const 499 + i32.const 503 i32.const 16 call $~lib/builtins/abort unreachable @@ -2158,7 +2160,7 @@ if i32.const 0 i32.const 480 - i32.const 501 + i32.const 505 i32.const 14 call $~lib/builtins/abort unreachable diff --git a/tests/compiler/std/arraybuffer.release.wat b/tests/compiler/std/arraybuffer.release.wat index deba42487f..04e564ed02 100644 --- a/tests/compiler/std/arraybuffer.release.wat +++ b/tests/compiler/std/arraybuffer.release.wat @@ -743,18 +743,16 @@ local.tee $1 i32.const 0 i32.le_s - if (result i32) + if i32.const 1 local.get $1 i32.sub memory.grow $0 i32.const 0 i32.lt_s - else - i32.const 0 - end - if - unreachable + if + unreachable + end end i32.const 34560 i32.const 0 @@ -1052,7 +1050,7 @@ if i32.const 0 i32.const 1504 - i32.const 562 + i32.const 566 i32.const 3 call $~lib/builtins/abort unreachable @@ -1287,7 +1285,7 @@ if i32.const 1168 i32.const 1504 - i32.const 461 + i32.const 462 i32.const 29 call $~lib/builtins/abort unreachable @@ -1385,7 +1383,7 @@ if i32.const 0 i32.const 1504 - i32.const 499 + i32.const 503 i32.const 16 call $~lib/builtins/abort unreachable @@ -1400,7 +1398,7 @@ if i32.const 0 i32.const 1504 - i32.const 501 + i32.const 505 i32.const 14 call $~lib/builtins/abort unreachable diff --git a/tests/compiler/std/dataview.debug.wat b/tests/compiler/std/dataview.debug.wat index 1fd092614d..12db81bff5 100644 --- a/tests/compiler/std/dataview.debug.wat +++ b/tests/compiler/std/dataview.debug.wat @@ -1239,18 +1239,18 @@ local.get $pagesNeeded local.get $pagesBefore i32.gt_s - if (result i32) + if local.get $pagesNeeded local.get $pagesBefore i32.sub memory.grow $0 i32.const 0 i32.lt_s - else + if + unreachable + end i32.const 0 - end - if - unreachable + drop end local.get $rootOffset local.set $root @@ -1371,7 +1371,7 @@ if i32.const 0 i32.const 480 - i32.const 562 + i32.const 566 i32.const 3 call $~lib/builtins/abort unreachable @@ -1700,7 +1700,7 @@ if i32.const 144 i32.const 480 - i32.const 461 + i32.const 462 i32.const 29 call $~lib/builtins/abort unreachable @@ -1996,6 +1996,8 @@ unreachable end end + i32.const 0 + drop memory.size $0 local.set $pagesAfter local.get $root @@ -2145,7 +2147,7 @@ if i32.const 0 i32.const 480 - i32.const 499 + i32.const 503 i32.const 16 call $~lib/builtins/abort unreachable @@ -2165,7 +2167,7 @@ if i32.const 0 i32.const 480 - i32.const 501 + i32.const 505 i32.const 14 call $~lib/builtins/abort unreachable diff --git a/tests/compiler/std/dataview.release.wat b/tests/compiler/std/dataview.release.wat index b660db363b..c4336feb7a 100644 --- a/tests/compiler/std/dataview.release.wat +++ b/tests/compiler/std/dataview.release.wat @@ -751,18 +751,16 @@ local.tee $1 i32.const 0 i32.le_s - if (result i32) + if i32.const 1 local.get $1 i32.sub memory.grow $0 i32.const 0 i32.lt_s - else - i32.const 0 - end - if - unreachable + if + unreachable + end end i32.const 34544 i32.const 0 @@ -1060,7 +1058,7 @@ if i32.const 0 i32.const 1504 - i32.const 562 + i32.const 566 i32.const 3 call $~lib/builtins/abort unreachable @@ -1295,7 +1293,7 @@ if i32.const 1168 i32.const 1504 - i32.const 461 + i32.const 462 i32.const 29 call $~lib/builtins/abort unreachable @@ -1393,7 +1391,7 @@ if i32.const 0 i32.const 1504 - i32.const 499 + i32.const 503 i32.const 16 call $~lib/builtins/abort unreachable @@ -1408,7 +1406,7 @@ if i32.const 0 i32.const 1504 - i32.const 501 + i32.const 505 i32.const 14 call $~lib/builtins/abort unreachable diff --git a/tests/compiler/std/date.debug.wat b/tests/compiler/std/date.debug.wat index 3557776ad2..aba3d93842 100644 --- a/tests/compiler/std/date.debug.wat +++ b/tests/compiler/std/date.debug.wat @@ -1616,18 +1616,18 @@ local.get $pagesNeeded local.get $pagesBefore i32.gt_s - if (result i32) + if local.get $pagesNeeded local.get $pagesBefore i32.sub memory.grow $0 i32.const 0 i32.lt_s - else + if + unreachable + end i32.const 0 - end - if - unreachable + drop end local.get $rootOffset local.set $root @@ -1748,7 +1748,7 @@ if i32.const 0 i32.const 512 - i32.const 562 + i32.const 566 i32.const 3 call $~lib/builtins/abort unreachable @@ -2077,7 +2077,7 @@ if i32.const 176 i32.const 512 - i32.const 461 + i32.const 462 i32.const 29 call $~lib/builtins/abort unreachable @@ -2373,6 +2373,8 @@ unreachable end end + i32.const 0 + drop memory.size $0 local.set $pagesAfter local.get $root @@ -2522,7 +2524,7 @@ if i32.const 0 i32.const 512 - i32.const 499 + i32.const 503 i32.const 16 call $~lib/builtins/abort unreachable @@ -2542,7 +2544,7 @@ if i32.const 0 i32.const 512 - i32.const 501 + i32.const 505 i32.const 14 call $~lib/builtins/abort unreachable diff --git a/tests/compiler/std/date.release.wat b/tests/compiler/std/date.release.wat index ecc147d17d..ec35df4098 100644 --- a/tests/compiler/std/date.release.wat +++ b/tests/compiler/std/date.release.wat @@ -1117,18 +1117,16 @@ local.tee $1 i32.const 0 i32.le_s - if (result i32) + if i32.const 1 local.get $1 i32.sub memory.grow $0 i32.const 0 i32.lt_s - else - i32.const 0 - end - if - unreachable + if + unreachable + end end i32.const 40608 i32.const 0 @@ -1426,7 +1424,7 @@ if i32.const 0 i32.const 1536 - i32.const 562 + i32.const 566 i32.const 3 call $~lib/builtins/abort unreachable @@ -1661,7 +1659,7 @@ if i32.const 1200 i32.const 1536 - i32.const 461 + i32.const 462 i32.const 29 call $~lib/builtins/abort unreachable @@ -1759,7 +1757,7 @@ if i32.const 0 i32.const 1536 - i32.const 499 + i32.const 503 i32.const 16 call $~lib/builtins/abort unreachable @@ -1774,7 +1772,7 @@ if i32.const 0 i32.const 1536 - i32.const 501 + i32.const 505 i32.const 14 call $~lib/builtins/abort unreachable diff --git a/tests/compiler/std/map.debug.wat b/tests/compiler/std/map.debug.wat index f8b67fdf6a..70da16110b 100644 --- a/tests/compiler/std/map.debug.wat +++ b/tests/compiler/std/map.debug.wat @@ -1255,18 +1255,18 @@ local.get $pagesNeeded local.get $pagesBefore i32.gt_s - if (result i32) + if local.get $pagesNeeded local.get $pagesBefore i32.sub memory.grow $0 i32.const 0 i32.lt_s - else + if + unreachable + end i32.const 0 - end - if - unreachable + drop end local.get $rootOffset local.set $root @@ -1387,7 +1387,7 @@ if i32.const 0 i32.const 368 - i32.const 562 + i32.const 566 i32.const 3 call $~lib/builtins/abort unreachable @@ -1716,7 +1716,7 @@ if i32.const 32 i32.const 368 - i32.const 461 + i32.const 462 i32.const 29 call $~lib/builtins/abort unreachable @@ -2012,6 +2012,8 @@ unreachable end end + i32.const 0 + drop memory.size $0 local.set $pagesAfter local.get $root @@ -2161,7 +2163,7 @@ if i32.const 0 i32.const 368 - i32.const 499 + i32.const 503 i32.const 16 call $~lib/builtins/abort unreachable @@ -2181,7 +2183,7 @@ if i32.const 0 i32.const 368 - i32.const 501 + i32.const 505 i32.const 14 call $~lib/builtins/abort unreachable diff --git a/tests/compiler/std/map.release.wat b/tests/compiler/std/map.release.wat index 65fa89cce5..229e843f6d 100644 --- a/tests/compiler/std/map.release.wat +++ b/tests/compiler/std/map.release.wat @@ -763,18 +763,16 @@ local.tee $1 i32.const 0 i32.le_s - if (result i32) + if i32.const 1 local.get $1 i32.sub memory.grow $0 i32.const 0 i32.lt_s - else - i32.const 0 - end - if - unreachable + if + unreachable + end end i32.const 34672 i32.const 0 @@ -1072,7 +1070,7 @@ if i32.const 0 i32.const 1392 - i32.const 562 + i32.const 566 i32.const 3 call $~lib/builtins/abort unreachable @@ -1307,7 +1305,7 @@ if i32.const 1056 i32.const 1392 - i32.const 461 + i32.const 462 i32.const 29 call $~lib/builtins/abort unreachable @@ -1405,7 +1403,7 @@ if i32.const 0 i32.const 1392 - i32.const 499 + i32.const 503 i32.const 16 call $~lib/builtins/abort unreachable @@ -1420,7 +1418,7 @@ if i32.const 0 i32.const 1392 - i32.const 501 + i32.const 505 i32.const 14 call $~lib/builtins/abort unreachable diff --git a/tests/compiler/std/new.debug.wat b/tests/compiler/std/new.debug.wat index e8912548ca..6bd99b7849 100644 --- a/tests/compiler/std/new.debug.wat +++ b/tests/compiler/std/new.debug.wat @@ -1241,18 +1241,18 @@ local.get $pagesNeeded local.get $pagesBefore i32.gt_s - if (result i32) + if local.get $pagesNeeded local.get $pagesBefore i32.sub memory.grow $0 i32.const 0 i32.lt_s - else + if + unreachable + end i32.const 0 - end - if - unreachable + drop end local.get $rootOffset local.set $root @@ -1373,7 +1373,7 @@ if i32.const 0 i32.const 368 - i32.const 562 + i32.const 566 i32.const 3 call $~lib/builtins/abort unreachable @@ -1702,7 +1702,7 @@ if i32.const 32 i32.const 368 - i32.const 461 + i32.const 462 i32.const 29 call $~lib/builtins/abort unreachable @@ -1998,6 +1998,8 @@ unreachable end end + i32.const 0 + drop memory.size $0 local.set $pagesAfter local.get $root @@ -2147,7 +2149,7 @@ if i32.const 0 i32.const 368 - i32.const 499 + i32.const 503 i32.const 16 call $~lib/builtins/abort unreachable @@ -2167,7 +2169,7 @@ if i32.const 0 i32.const 368 - i32.const 501 + i32.const 505 i32.const 14 call $~lib/builtins/abort unreachable diff --git a/tests/compiler/std/new.release.wat b/tests/compiler/std/new.release.wat index f42da5d035..60633b50b5 100644 --- a/tests/compiler/std/new.release.wat +++ b/tests/compiler/std/new.release.wat @@ -736,18 +736,16 @@ local.tee $1 i32.const 0 i32.le_s - if (result i32) + if i32.const 1 local.get $1 i32.sub memory.grow $0 i32.const 0 i32.lt_s - else - i32.const 0 - end - if - unreachable + if + unreachable + end end i32.const 34240 i32.const 0 @@ -1045,7 +1043,7 @@ if i32.const 0 i32.const 1392 - i32.const 562 + i32.const 566 i32.const 3 call $~lib/builtins/abort unreachable @@ -1245,7 +1243,7 @@ if i32.const 0 i32.const 1392 - i32.const 499 + i32.const 503 i32.const 16 call $~lib/builtins/abort unreachable @@ -1260,7 +1258,7 @@ if i32.const 0 i32.const 1392 - i32.const 501 + i32.const 505 i32.const 14 call $~lib/builtins/abort unreachable diff --git a/tests/compiler/std/object.debug.wat b/tests/compiler/std/object.debug.wat index c22fafeb2d..9f6e787a15 100644 --- a/tests/compiler/std/object.debug.wat +++ b/tests/compiler/std/object.debug.wat @@ -325,6 +325,8 @@ unreachable end end + i32.const 0 + drop end local.get $newOffset global.set $~lib/rt/stub/offset @@ -345,7 +347,7 @@ if i32.const 208 i32.const 272 - i32.const 33 + i32.const 34 i32.const 29 call $~lib/builtins/abort unreachable @@ -412,7 +414,7 @@ if i32.const 208 i32.const 272 - i32.const 86 + i32.const 87 i32.const 30 call $~lib/builtins/abort unreachable diff --git a/tests/compiler/std/operator-overloading.debug.wat b/tests/compiler/std/operator-overloading.debug.wat index b262deed12..aff1a10ab8 100644 --- a/tests/compiler/std/operator-overloading.debug.wat +++ b/tests/compiler/std/operator-overloading.debug.wat @@ -1297,18 +1297,18 @@ local.get $pagesNeeded local.get $pagesBefore i32.gt_s - if (result i32) + if local.get $pagesNeeded local.get $pagesBefore i32.sub memory.grow $0 i32.const 0 i32.lt_s - else + if + unreachable + end i32.const 0 - end - if - unreachable + drop end local.get $rootOffset local.set $root @@ -1429,7 +1429,7 @@ if i32.const 0 i32.const 368 - i32.const 562 + i32.const 566 i32.const 3 call $~lib/builtins/abort unreachable @@ -1758,7 +1758,7 @@ if i32.const 32 i32.const 368 - i32.const 461 + i32.const 462 i32.const 29 call $~lib/builtins/abort unreachable @@ -2054,6 +2054,8 @@ unreachable end end + i32.const 0 + drop memory.size $0 local.set $pagesAfter local.get $root @@ -2203,7 +2205,7 @@ if i32.const 0 i32.const 368 - i32.const 499 + i32.const 503 i32.const 16 call $~lib/builtins/abort unreachable @@ -2223,7 +2225,7 @@ if i32.const 0 i32.const 368 - i32.const 501 + i32.const 505 i32.const 14 call $~lib/builtins/abort unreachable diff --git a/tests/compiler/std/operator-overloading.release.wat b/tests/compiler/std/operator-overloading.release.wat index 5e5f9130c8..4bd20aaed1 100644 --- a/tests/compiler/std/operator-overloading.release.wat +++ b/tests/compiler/std/operator-overloading.release.wat @@ -669,18 +669,16 @@ local.tee $1 i32.const 0 i32.le_s - if (result i32) + if i32.const 1 local.get $1 i32.sub memory.grow $0 i32.const 0 i32.lt_s - else - i32.const 0 - end - if - unreachable + if + unreachable + end end i32.const 34400 i32.const 0 @@ -978,7 +976,7 @@ if i32.const 0 i32.const 1392 - i32.const 562 + i32.const 566 i32.const 3 call $~lib/builtins/abort unreachable @@ -1178,7 +1176,7 @@ if i32.const 0 i32.const 1392 - i32.const 499 + i32.const 503 i32.const 16 call $~lib/builtins/abort unreachable @@ -1193,7 +1191,7 @@ if i32.const 0 i32.const 1392 - i32.const 501 + i32.const 505 i32.const 14 call $~lib/builtins/abort unreachable diff --git a/tests/compiler/std/set.debug.wat b/tests/compiler/std/set.debug.wat index 0bba1a96ff..1a7e669aae 100644 --- a/tests/compiler/std/set.debug.wat +++ b/tests/compiler/std/set.debug.wat @@ -1250,18 +1250,18 @@ local.get $pagesNeeded local.get $pagesBefore i32.gt_s - if (result i32) + if local.get $pagesNeeded local.get $pagesBefore i32.sub memory.grow $0 i32.const 0 i32.lt_s - else + if + unreachable + end i32.const 0 - end - if - unreachable + drop end local.get $rootOffset local.set $root @@ -1382,7 +1382,7 @@ if i32.const 0 i32.const 368 - i32.const 562 + i32.const 566 i32.const 3 call $~lib/builtins/abort unreachable @@ -1711,7 +1711,7 @@ if i32.const 32 i32.const 368 - i32.const 461 + i32.const 462 i32.const 29 call $~lib/builtins/abort unreachable @@ -2007,6 +2007,8 @@ unreachable end end + i32.const 0 + drop memory.size $0 local.set $pagesAfter local.get $root @@ -2156,7 +2158,7 @@ if i32.const 0 i32.const 368 - i32.const 499 + i32.const 503 i32.const 16 call $~lib/builtins/abort unreachable @@ -2176,7 +2178,7 @@ if i32.const 0 i32.const 368 - i32.const 501 + i32.const 505 i32.const 14 call $~lib/builtins/abort unreachable diff --git a/tests/compiler/std/set.release.wat b/tests/compiler/std/set.release.wat index 19b518d3f0..17511a6fef 100644 --- a/tests/compiler/std/set.release.wat +++ b/tests/compiler/std/set.release.wat @@ -754,18 +754,16 @@ local.tee $1 i32.const 0 i32.le_s - if (result i32) + if i32.const 1 local.get $1 i32.sub memory.grow $0 i32.const 0 i32.lt_s - else - i32.const 0 - end - if - unreachable + if + unreachable + end end i32.const 34528 i32.const 0 @@ -1063,7 +1061,7 @@ if i32.const 0 i32.const 1392 - i32.const 562 + i32.const 566 i32.const 3 call $~lib/builtins/abort unreachable @@ -1298,7 +1296,7 @@ if i32.const 1056 i32.const 1392 - i32.const 461 + i32.const 462 i32.const 29 call $~lib/builtins/abort unreachable @@ -1396,7 +1394,7 @@ if i32.const 0 i32.const 1392 - i32.const 499 + i32.const 503 i32.const 16 call $~lib/builtins/abort unreachable @@ -1411,7 +1409,7 @@ if i32.const 0 i32.const 1392 - i32.const 501 + i32.const 505 i32.const 14 call $~lib/builtins/abort unreachable diff --git a/tests/compiler/std/static-array.debug.wat b/tests/compiler/std/static-array.debug.wat index 1da1570de1..11e5c3942a 100644 --- a/tests/compiler/std/static-array.debug.wat +++ b/tests/compiler/std/static-array.debug.wat @@ -1266,18 +1266,18 @@ local.get $pagesNeeded local.get $pagesBefore i32.gt_s - if (result i32) + if local.get $pagesNeeded local.get $pagesBefore i32.sub memory.grow $0 i32.const 0 i32.lt_s - else + if + unreachable + end i32.const 0 - end - if - unreachable + drop end local.get $rootOffset local.set $root @@ -1398,7 +1398,7 @@ if i32.const 0 i32.const 880 - i32.const 562 + i32.const 566 i32.const 3 call $~lib/builtins/abort unreachable @@ -1727,7 +1727,7 @@ if i32.const 608 i32.const 880 - i32.const 461 + i32.const 462 i32.const 29 call $~lib/builtins/abort unreachable @@ -2023,6 +2023,8 @@ unreachable end end + i32.const 0 + drop memory.size $0 local.set $pagesAfter local.get $root @@ -2172,7 +2174,7 @@ if i32.const 0 i32.const 880 - i32.const 499 + i32.const 503 i32.const 16 call $~lib/builtins/abort unreachable @@ -2192,7 +2194,7 @@ if i32.const 0 i32.const 880 - i32.const 501 + i32.const 505 i32.const 14 call $~lib/builtins/abort unreachable diff --git a/tests/compiler/std/static-array.release.wat b/tests/compiler/std/static-array.release.wat index 9f31ef8c98..285ba44c2d 100644 --- a/tests/compiler/std/static-array.release.wat +++ b/tests/compiler/std/static-array.release.wat @@ -766,18 +766,16 @@ local.tee $1 i32.const 0 i32.le_s - if (result i32) + if i32.const 1 local.get $1 i32.sub memory.grow $0 i32.const 0 i32.lt_s - else - i32.const 0 - end - if - unreachable + if + unreachable + end end i32.const 34768 i32.const 0 @@ -1075,7 +1073,7 @@ if i32.const 0 i32.const 1904 - i32.const 562 + i32.const 566 i32.const 3 call $~lib/builtins/abort unreachable @@ -1555,7 +1553,7 @@ if i32.const 1632 i32.const 1904 - i32.const 461 + i32.const 462 i32.const 29 call $~lib/builtins/abort unreachable @@ -1653,7 +1651,7 @@ if i32.const 0 i32.const 1904 - i32.const 499 + i32.const 503 i32.const 16 call $~lib/builtins/abort unreachable @@ -1668,7 +1666,7 @@ if i32.const 0 i32.const 1904 - i32.const 501 + i32.const 505 i32.const 14 call $~lib/builtins/abort unreachable diff --git a/tests/compiler/std/staticarray.debug.wat b/tests/compiler/std/staticarray.debug.wat index 3f0be58115..ca0853f1f5 100644 --- a/tests/compiler/std/staticarray.debug.wat +++ b/tests/compiler/std/staticarray.debug.wat @@ -1332,18 +1332,18 @@ local.get $pagesNeeded local.get $pagesBefore i32.gt_s - if (result i32) + if local.get $pagesNeeded local.get $pagesBefore i32.sub memory.grow $0 i32.const 0 i32.lt_s - else + if + unreachable + end i32.const 0 - end - if - unreachable + drop end local.get $rootOffset local.set $root @@ -1464,7 +1464,7 @@ if i32.const 0 i32.const 592 - i32.const 562 + i32.const 566 i32.const 3 call $~lib/builtins/abort unreachable @@ -1793,7 +1793,7 @@ if i32.const 320 i32.const 592 - i32.const 461 + i32.const 462 i32.const 29 call $~lib/builtins/abort unreachable @@ -2089,6 +2089,8 @@ unreachable end end + i32.const 0 + drop memory.size $0 local.set $pagesAfter local.get $root @@ -2238,7 +2240,7 @@ if i32.const 0 i32.const 592 - i32.const 499 + i32.const 503 i32.const 16 call $~lib/builtins/abort unreachable @@ -2258,7 +2260,7 @@ if i32.const 0 i32.const 592 - i32.const 501 + i32.const 505 i32.const 14 call $~lib/builtins/abort unreachable diff --git a/tests/compiler/std/staticarray.release.wat b/tests/compiler/std/staticarray.release.wat index 0b492e20cc..282b1c9deb 100644 --- a/tests/compiler/std/staticarray.release.wat +++ b/tests/compiler/std/staticarray.release.wat @@ -890,18 +890,16 @@ local.tee $1 i32.const 0 i32.le_s - if (result i32) + if i32.const 1 local.get $1 i32.sub memory.grow $0 i32.const 0 i32.lt_s - else - i32.const 0 - end - if - unreachable + if + unreachable + end end i32.const 36736 i32.const 0 @@ -1000,7 +998,7 @@ if i32.const 0 i32.const 1616 - i32.const 562 + i32.const 566 i32.const 3 call $~lib/builtins/abort unreachable @@ -1372,7 +1370,7 @@ if i32.const 1344 i32.const 1616 - i32.const 461 + i32.const 462 i32.const 29 call $~lib/builtins/abort unreachable @@ -1470,7 +1468,7 @@ if i32.const 0 i32.const 1616 - i32.const 499 + i32.const 503 i32.const 16 call $~lib/builtins/abort unreachable @@ -1485,7 +1483,7 @@ if i32.const 0 i32.const 1616 - i32.const 501 + i32.const 505 i32.const 14 call $~lib/builtins/abort unreachable diff --git a/tests/compiler/std/string-casemapping.debug.wat b/tests/compiler/std/string-casemapping.debug.wat index ee2b866fe8..59c1dcfbbb 100644 --- a/tests/compiler/std/string-casemapping.debug.wat +++ b/tests/compiler/std/string-casemapping.debug.wat @@ -1418,18 +1418,18 @@ local.get $pagesNeeded local.get $pagesBefore i32.gt_s - if (result i32) + if local.get $pagesNeeded local.get $pagesBefore i32.sub memory.grow $0 i32.const 0 i32.lt_s - else + if + unreachable + end i32.const 0 - end - if - unreachable + drop end local.get $rootOffset local.set $root @@ -1550,7 +1550,7 @@ if i32.const 0 i32.const 400 - i32.const 562 + i32.const 566 i32.const 3 call $~lib/builtins/abort unreachable @@ -1879,7 +1879,7 @@ if i32.const 64 i32.const 400 - i32.const 461 + i32.const 462 i32.const 29 call $~lib/builtins/abort unreachable @@ -2175,6 +2175,8 @@ unreachable end end + i32.const 0 + drop memory.size $0 local.set $pagesAfter local.get $root @@ -2324,7 +2326,7 @@ if i32.const 0 i32.const 400 - i32.const 499 + i32.const 503 i32.const 16 call $~lib/builtins/abort unreachable @@ -2344,7 +2346,7 @@ if i32.const 0 i32.const 400 - i32.const 501 + i32.const 505 i32.const 14 call $~lib/builtins/abort unreachable diff --git a/tests/compiler/std/string-casemapping.release.wat b/tests/compiler/std/string-casemapping.release.wat index f4ffed5598..6dcdd592b6 100644 --- a/tests/compiler/std/string-casemapping.release.wat +++ b/tests/compiler/std/string-casemapping.release.wat @@ -1185,18 +1185,16 @@ local.tee $1 i32.const 0 i32.le_s - if (result i32) + if i32.const 1 local.get $1 i32.sub memory.grow $0 i32.const 0 i32.lt_s - else - i32.const 0 - end - if - unreachable + if + unreachable + end end i32.const 53856 i32.const 0 @@ -1494,7 +1492,7 @@ if i32.const 0 i32.const 1424 - i32.const 562 + i32.const 566 i32.const 3 call $~lib/builtins/abort unreachable @@ -1729,7 +1727,7 @@ if i32.const 1088 i32.const 1424 - i32.const 461 + i32.const 462 i32.const 29 call $~lib/builtins/abort unreachable @@ -1827,7 +1825,7 @@ if i32.const 0 i32.const 1424 - i32.const 499 + i32.const 503 i32.const 16 call $~lib/builtins/abort unreachable @@ -1842,7 +1840,7 @@ if i32.const 0 i32.const 1424 - i32.const 501 + i32.const 505 i32.const 14 call $~lib/builtins/abort unreachable diff --git a/tests/compiler/std/string-encoding.debug.wat b/tests/compiler/std/string-encoding.debug.wat index 05b49de702..25947c3218 100644 --- a/tests/compiler/std/string-encoding.debug.wat +++ b/tests/compiler/std/string-encoding.debug.wat @@ -1257,18 +1257,18 @@ local.get $pagesNeeded local.get $pagesBefore i32.gt_s - if (result i32) + if local.get $pagesNeeded local.get $pagesBefore i32.sub memory.grow $0 i32.const 0 i32.lt_s - else + if + unreachable + end i32.const 0 - end - if - unreachable + drop end local.get $rootOffset local.set $root @@ -1389,7 +1389,7 @@ if i32.const 0 i32.const 464 - i32.const 562 + i32.const 566 i32.const 3 call $~lib/builtins/abort unreachable @@ -1718,7 +1718,7 @@ if i32.const 128 i32.const 464 - i32.const 461 + i32.const 462 i32.const 29 call $~lib/builtins/abort unreachable @@ -2014,6 +2014,8 @@ unreachable end end + i32.const 0 + drop memory.size $0 local.set $pagesAfter local.get $root @@ -2163,7 +2165,7 @@ if i32.const 0 i32.const 464 - i32.const 499 + i32.const 503 i32.const 16 call $~lib/builtins/abort unreachable @@ -2183,7 +2185,7 @@ if i32.const 0 i32.const 464 - i32.const 501 + i32.const 505 i32.const 14 call $~lib/builtins/abort unreachable diff --git a/tests/compiler/std/string-encoding.release.wat b/tests/compiler/std/string-encoding.release.wat index e6c6135966..7b28a114af 100644 --- a/tests/compiler/std/string-encoding.release.wat +++ b/tests/compiler/std/string-encoding.release.wat @@ -772,18 +772,16 @@ local.tee $1 i32.const 0 i32.le_s - if (result i32) + if i32.const 1 local.get $1 i32.sub memory.grow $0 i32.const 0 i32.lt_s - else - i32.const 0 - end - if - unreachable + if + unreachable + end end i32.const 55584 i32.const 0 @@ -1081,7 +1079,7 @@ if i32.const 0 i32.const 1488 - i32.const 562 + i32.const 566 i32.const 3 call $~lib/builtins/abort unreachable @@ -1316,7 +1314,7 @@ if i32.const 1152 i32.const 1488 - i32.const 461 + i32.const 462 i32.const 29 call $~lib/builtins/abort unreachable @@ -1414,7 +1412,7 @@ if i32.const 0 i32.const 1488 - i32.const 499 + i32.const 503 i32.const 16 call $~lib/builtins/abort unreachable @@ -1429,7 +1427,7 @@ if i32.const 0 i32.const 1488 - i32.const 501 + i32.const 505 i32.const 14 call $~lib/builtins/abort unreachable diff --git a/tests/compiler/std/string.debug.wat b/tests/compiler/std/string.debug.wat index 5e90c52111..6da4323046 100644 --- a/tests/compiler/std/string.debug.wat +++ b/tests/compiler/std/string.debug.wat @@ -1848,18 +1848,18 @@ local.get $pagesNeeded local.get $pagesBefore i32.gt_s - if (result i32) + if local.get $pagesNeeded local.get $pagesBefore i32.sub memory.grow $0 i32.const 0 i32.lt_s - else + if + unreachable + end i32.const 0 - end - if - unreachable + drop end local.get $rootOffset local.set $root @@ -1980,7 +1980,7 @@ if i32.const 0 i32.const 624 - i32.const 562 + i32.const 566 i32.const 3 call $~lib/builtins/abort unreachable @@ -2309,7 +2309,7 @@ if i32.const 352 i32.const 624 - i32.const 461 + i32.const 462 i32.const 29 call $~lib/builtins/abort unreachable @@ -2605,6 +2605,8 @@ unreachable end end + i32.const 0 + drop memory.size $0 local.set $pagesAfter local.get $root @@ -2754,7 +2756,7 @@ if i32.const 0 i32.const 624 - i32.const 499 + i32.const 503 i32.const 16 call $~lib/builtins/abort unreachable @@ -2774,7 +2776,7 @@ if i32.const 0 i32.const 624 - i32.const 501 + i32.const 505 i32.const 14 call $~lib/builtins/abort unreachable diff --git a/tests/compiler/std/string.release.wat b/tests/compiler/std/string.release.wat index 15345f5036..6a9a83bb45 100644 --- a/tests/compiler/std/string.release.wat +++ b/tests/compiler/std/string.release.wat @@ -1764,18 +1764,16 @@ local.tee $1 i32.const 0 i32.le_s - if (result i32) + if i32.const 1 local.get $1 i32.sub memory.grow $0 i32.const 0 i32.lt_s - else - i32.const 0 - end - if - unreachable + if + unreachable + end end i32.const 59216 i32.const 0 @@ -2073,7 +2071,7 @@ if i32.const 0 i32.const 1648 - i32.const 562 + i32.const 566 i32.const 3 call $~lib/builtins/abort unreachable @@ -2308,7 +2306,7 @@ if i32.const 1376 i32.const 1648 - i32.const 461 + i32.const 462 i32.const 29 call $~lib/builtins/abort unreachable @@ -2406,7 +2404,7 @@ if i32.const 0 i32.const 1648 - i32.const 499 + i32.const 503 i32.const 16 call $~lib/builtins/abort unreachable @@ -2421,7 +2419,7 @@ if i32.const 0 i32.const 1648 - i32.const 501 + i32.const 505 i32.const 14 call $~lib/builtins/abort unreachable diff --git a/tests/compiler/std/symbol.debug.wat b/tests/compiler/std/symbol.debug.wat index 5fdd3c6a22..648fe21bf4 100644 --- a/tests/compiler/std/symbol.debug.wat +++ b/tests/compiler/std/symbol.debug.wat @@ -1286,18 +1286,18 @@ local.get $pagesNeeded local.get $pagesBefore i32.gt_s - if (result i32) + if local.get $pagesNeeded local.get $pagesBefore i32.sub memory.grow $0 i32.const 0 i32.lt_s - else + if + unreachable + end i32.const 0 - end - if - unreachable + drop end local.get $rootOffset local.set $root @@ -1418,7 +1418,7 @@ if i32.const 0 i32.const 448 - i32.const 562 + i32.const 566 i32.const 3 call $~lib/builtins/abort unreachable @@ -1747,7 +1747,7 @@ if i32.const 112 i32.const 448 - i32.const 461 + i32.const 462 i32.const 29 call $~lib/builtins/abort unreachable @@ -2043,6 +2043,8 @@ unreachable end end + i32.const 0 + drop memory.size $0 local.set $pagesAfter local.get $root @@ -2192,7 +2194,7 @@ if i32.const 0 i32.const 448 - i32.const 499 + i32.const 503 i32.const 16 call $~lib/builtins/abort unreachable @@ -2212,7 +2214,7 @@ if i32.const 0 i32.const 448 - i32.const 501 + i32.const 505 i32.const 14 call $~lib/builtins/abort unreachable diff --git a/tests/compiler/std/symbol.release.wat b/tests/compiler/std/symbol.release.wat index 1c79687c29..e897bc66ba 100644 --- a/tests/compiler/std/symbol.release.wat +++ b/tests/compiler/std/symbol.release.wat @@ -835,18 +835,16 @@ local.tee $1 i32.const 0 i32.le_s - if (result i32) + if i32.const 1 local.get $1 i32.sub memory.grow $0 i32.const 0 i32.lt_s - else - i32.const 0 - end - if - unreachable + if + unreachable + end end i32.const 35520 i32.const 0 @@ -1144,7 +1142,7 @@ if i32.const 0 i32.const 1472 - i32.const 562 + i32.const 566 i32.const 3 call $~lib/builtins/abort unreachable @@ -1379,7 +1377,7 @@ if i32.const 1136 i32.const 1472 - i32.const 461 + i32.const 462 i32.const 29 call $~lib/builtins/abort unreachable @@ -1477,7 +1475,7 @@ if i32.const 0 i32.const 1472 - i32.const 499 + i32.const 503 i32.const 16 call $~lib/builtins/abort unreachable @@ -1492,7 +1490,7 @@ if i32.const 0 i32.const 1472 - i32.const 501 + i32.const 505 i32.const 14 call $~lib/builtins/abort unreachable diff --git a/tests/compiler/std/typedarray.debug.wat b/tests/compiler/std/typedarray.debug.wat index aa7cf73198..69a7690fb7 100644 --- a/tests/compiler/std/typedarray.debug.wat +++ b/tests/compiler/std/typedarray.debug.wat @@ -1596,18 +1596,18 @@ local.get $pagesNeeded local.get $pagesBefore i32.gt_s - if (result i32) + if local.get $pagesNeeded local.get $pagesBefore i32.sub memory.grow $0 i32.const 0 i32.lt_s - else + if + unreachable + end i32.const 0 - end - if - unreachable + drop end local.get $rootOffset local.set $root @@ -1728,7 +1728,7 @@ if i32.const 0 i32.const 480 - i32.const 562 + i32.const 566 i32.const 3 call $~lib/builtins/abort unreachable @@ -2057,7 +2057,7 @@ if i32.const 144 i32.const 480 - i32.const 461 + i32.const 462 i32.const 29 call $~lib/builtins/abort unreachable @@ -2353,6 +2353,8 @@ unreachable end end + i32.const 0 + drop memory.size $0 local.set $pagesAfter local.get $root @@ -2502,7 +2504,7 @@ if i32.const 0 i32.const 480 - i32.const 499 + i32.const 503 i32.const 16 call $~lib/builtins/abort unreachable @@ -2522,7 +2524,7 @@ if i32.const 0 i32.const 480 - i32.const 501 + i32.const 505 i32.const 14 call $~lib/builtins/abort unreachable diff --git a/tests/compiler/std/typedarray.release.wat b/tests/compiler/std/typedarray.release.wat index 8ec89852f3..1b3f195665 100644 --- a/tests/compiler/std/typedarray.release.wat +++ b/tests/compiler/std/typedarray.release.wat @@ -1396,18 +1396,16 @@ local.tee $1 i32.const 0 i32.le_s - if (result i32) + if i32.const 1 local.get $1 i32.sub memory.grow $0 i32.const 0 i32.lt_s - else - i32.const 0 - end - if - unreachable + if + unreachable + end end i32.const 49088 i32.const 0 @@ -1506,7 +1504,7 @@ if i32.const 0 i32.const 1504 - i32.const 562 + i32.const 566 i32.const 3 call $~lib/builtins/abort unreachable @@ -1878,7 +1876,7 @@ if i32.const 1168 i32.const 1504 - i32.const 461 + i32.const 462 i32.const 29 call $~lib/builtins/abort unreachable @@ -1976,7 +1974,7 @@ if i32.const 0 i32.const 1504 - i32.const 499 + i32.const 503 i32.const 16 call $~lib/builtins/abort unreachable @@ -1991,7 +1989,7 @@ if i32.const 0 i32.const 1504 - i32.const 501 + i32.const 505 i32.const 14 call $~lib/builtins/abort unreachable diff --git a/tests/compiler/std/uri.debug.wat b/tests/compiler/std/uri.debug.wat index 0a61dbfdb2..e64d1c3be9 100644 --- a/tests/compiler/std/uri.debug.wat +++ b/tests/compiler/std/uri.debug.wat @@ -1300,18 +1300,18 @@ local.get $pagesNeeded local.get $pagesBefore i32.gt_s - if (result i32) + if local.get $pagesNeeded local.get $pagesBefore i32.sub memory.grow $0 i32.const 0 i32.lt_s - else + if + unreachable + end i32.const 0 - end - if - unreachable + drop end local.get $rootOffset local.set $root @@ -1432,7 +1432,7 @@ if i32.const 0 i32.const 496 - i32.const 562 + i32.const 566 i32.const 3 call $~lib/builtins/abort unreachable @@ -1761,7 +1761,7 @@ if i32.const 160 i32.const 496 - i32.const 461 + i32.const 462 i32.const 29 call $~lib/builtins/abort unreachable @@ -2057,6 +2057,8 @@ unreachable end end + i32.const 0 + drop memory.size $0 local.set $pagesAfter local.get $root @@ -2206,7 +2208,7 @@ if i32.const 0 i32.const 496 - i32.const 499 + i32.const 503 i32.const 16 call $~lib/builtins/abort unreachable @@ -2226,7 +2228,7 @@ if i32.const 0 i32.const 496 - i32.const 501 + i32.const 505 i32.const 14 call $~lib/builtins/abort unreachable diff --git a/tests/compiler/std/uri.release.wat b/tests/compiler/std/uri.release.wat index f72e4f3bee..d363f9e467 100644 --- a/tests/compiler/std/uri.release.wat +++ b/tests/compiler/std/uri.release.wat @@ -852,18 +852,16 @@ local.tee $1 i32.const 0 i32.le_s - if (result i32) + if i32.const 1 local.get $1 i32.sub memory.grow $0 i32.const 0 i32.lt_s - else - i32.const 0 - end - if - unreachable + if + unreachable + end end i32.const 37136 i32.const 0 @@ -1161,7 +1159,7 @@ if i32.const 0 i32.const 1520 - i32.const 562 + i32.const 566 i32.const 3 call $~lib/builtins/abort unreachable @@ -1396,7 +1394,7 @@ if i32.const 1184 i32.const 1520 - i32.const 461 + i32.const 462 i32.const 29 call $~lib/builtins/abort unreachable @@ -1494,7 +1492,7 @@ if i32.const 0 i32.const 1520 - i32.const 499 + i32.const 503 i32.const 16 call $~lib/builtins/abort unreachable @@ -1509,7 +1507,7 @@ if i32.const 0 i32.const 1520 - i32.const 501 + i32.const 505 i32.const 14 call $~lib/builtins/abort unreachable diff --git a/tests/compiler/super-inline.debug.wat b/tests/compiler/super-inline.debug.wat index a82a1ae02d..33f85fb95f 100644 --- a/tests/compiler/super-inline.debug.wat +++ b/tests/compiler/super-inline.debug.wat @@ -1225,18 +1225,18 @@ local.get $pagesNeeded local.get $pagesBefore i32.gt_s - if (result i32) + if local.get $pagesNeeded local.get $pagesBefore i32.sub memory.grow $0 i32.const 0 i32.lt_s - else + if + unreachable + end i32.const 0 - end - if - unreachable + drop end local.get $rootOffset local.set $root @@ -1357,7 +1357,7 @@ if i32.const 0 i32.const 368 - i32.const 562 + i32.const 566 i32.const 3 call $~lib/builtins/abort unreachable @@ -1686,7 +1686,7 @@ if i32.const 32 i32.const 368 - i32.const 461 + i32.const 462 i32.const 29 call $~lib/builtins/abort unreachable @@ -1982,6 +1982,8 @@ unreachable end end + i32.const 0 + drop memory.size $0 local.set $pagesAfter local.get $root @@ -2131,7 +2133,7 @@ if i32.const 0 i32.const 368 - i32.const 499 + i32.const 503 i32.const 16 call $~lib/builtins/abort unreachable @@ -2151,7 +2153,7 @@ if i32.const 0 i32.const 368 - i32.const 501 + i32.const 505 i32.const 14 call $~lib/builtins/abort unreachable diff --git a/tests/compiler/super-inline.release.wat b/tests/compiler/super-inline.release.wat index ba821f9359..79cb61566c 100644 --- a/tests/compiler/super-inline.release.wat +++ b/tests/compiler/super-inline.release.wat @@ -743,18 +743,16 @@ local.tee $1 i32.const 0 i32.le_s - if (result i32) + if i32.const 1 local.get $1 i32.sub memory.grow $0 i32.const 0 i32.lt_s - else - i32.const 0 - end - if - unreachable + if + unreachable + end end i32.const 34240 i32.const 0 @@ -1052,7 +1050,7 @@ if i32.const 0 i32.const 1392 - i32.const 562 + i32.const 566 i32.const 3 call $~lib/builtins/abort unreachable @@ -1252,7 +1250,7 @@ if i32.const 0 i32.const 1392 - i32.const 499 + i32.const 503 i32.const 16 call $~lib/builtins/abort unreachable @@ -1267,7 +1265,7 @@ if i32.const 0 i32.const 1392 - i32.const 501 + i32.const 505 i32.const 14 call $~lib/builtins/abort unreachable diff --git a/tests/compiler/templateliteral.debug.wat b/tests/compiler/templateliteral.debug.wat index d725adb848..5467a84375 100644 --- a/tests/compiler/templateliteral.debug.wat +++ b/tests/compiler/templateliteral.debug.wat @@ -1406,18 +1406,18 @@ local.get $pagesNeeded local.get $pagesBefore i32.gt_s - if (result i32) + if local.get $pagesNeeded local.get $pagesBefore i32.sub memory.grow $0 i32.const 0 i32.lt_s - else + if + unreachable + end i32.const 0 - end - if - unreachable + drop end local.get $rootOffset local.set $root @@ -1538,7 +1538,7 @@ if i32.const 0 i32.const 528 - i32.const 562 + i32.const 566 i32.const 3 call $~lib/builtins/abort unreachable @@ -1867,7 +1867,7 @@ if i32.const 192 i32.const 528 - i32.const 461 + i32.const 462 i32.const 29 call $~lib/builtins/abort unreachable @@ -2163,6 +2163,8 @@ unreachable end end + i32.const 0 + drop memory.size $0 local.set $pagesAfter local.get $root @@ -2312,7 +2314,7 @@ if i32.const 0 i32.const 528 - i32.const 499 + i32.const 503 i32.const 16 call $~lib/builtins/abort unreachable @@ -2332,7 +2334,7 @@ if i32.const 0 i32.const 528 - i32.const 501 + i32.const 505 i32.const 14 call $~lib/builtins/abort unreachable diff --git a/tests/compiler/templateliteral.release.wat b/tests/compiler/templateliteral.release.wat index 0048219b20..ec59d80065 100644 --- a/tests/compiler/templateliteral.release.wat +++ b/tests/compiler/templateliteral.release.wat @@ -832,18 +832,16 @@ local.tee $1 i32.const 0 i32.le_s - if (result i32) + if i32.const 1 local.get $1 i32.sub memory.grow $0 i32.const 0 i32.lt_s - else - i32.const 0 - end - if - unreachable + if + unreachable + end end i32.const 38464 i32.const 0 @@ -1141,7 +1139,7 @@ if i32.const 0 i32.const 1552 - i32.const 562 + i32.const 566 i32.const 3 call $~lib/builtins/abort unreachable @@ -1376,7 +1374,7 @@ if i32.const 1216 i32.const 1552 - i32.const 461 + i32.const 462 i32.const 29 call $~lib/builtins/abort unreachable @@ -1474,7 +1472,7 @@ if i32.const 0 i32.const 1552 - i32.const 499 + i32.const 503 i32.const 16 call $~lib/builtins/abort unreachable @@ -1489,7 +1487,7 @@ if i32.const 0 i32.const 1552 - i32.const 501 + i32.const 505 i32.const 14 call $~lib/builtins/abort unreachable diff --git a/tests/compiler/throw.debug.wat b/tests/compiler/throw.debug.wat index e18fa212c9..97b9738d89 100644 --- a/tests/compiler/throw.debug.wat +++ b/tests/compiler/throw.debug.wat @@ -1337,18 +1337,18 @@ local.get $pagesNeeded local.get $pagesBefore i32.gt_s - if (result i32) + if local.get $pagesNeeded local.get $pagesBefore i32.sub memory.grow $0 i32.const 0 i32.lt_s - else + if + unreachable + end i32.const 0 - end - if - unreachable + drop end local.get $rootOffset local.set $root @@ -1469,7 +1469,7 @@ if i32.const 0 i32.const 608 - i32.const 562 + i32.const 566 i32.const 3 call $~lib/builtins/abort unreachable diff --git a/tests/compiler/throw.release.wat b/tests/compiler/throw.release.wat index 66c340701c..98432c027f 100644 --- a/tests/compiler/throw.release.wat +++ b/tests/compiler/throw.release.wat @@ -845,18 +845,16 @@ local.tee $0 i32.const 0 i32.le_s - if (result i32) + if i32.const 1 local.get $0 i32.sub memory.grow $0 i32.const 0 i32.lt_s - else - i32.const 0 - end - if - unreachable + if + unreachable + end end i32.const 34528 i32.const 0 @@ -1028,7 +1026,7 @@ if i32.const 0 i32.const 1632 - i32.const 562 + i32.const 566 i32.const 3 call $~lib/builtins/abort unreachable diff --git a/tests/compiler/typeof.debug.wat b/tests/compiler/typeof.debug.wat index 53a934fd4e..f1fb925df1 100644 --- a/tests/compiler/typeof.debug.wat +++ b/tests/compiler/typeof.debug.wat @@ -1364,18 +1364,18 @@ local.get $pagesNeeded local.get $pagesBefore i32.gt_s - if (result i32) + if local.get $pagesNeeded local.get $pagesBefore i32.sub memory.grow $0 i32.const 0 i32.lt_s - else + if + unreachable + end i32.const 0 - end - if - unreachable + drop end local.get $rootOffset local.set $root @@ -1496,7 +1496,7 @@ if i32.const 0 i32.const 672 - i32.const 562 + i32.const 566 i32.const 3 call $~lib/builtins/abort unreachable @@ -1825,7 +1825,7 @@ if i32.const 336 i32.const 672 - i32.const 461 + i32.const 462 i32.const 29 call $~lib/builtins/abort unreachable @@ -2121,6 +2121,8 @@ unreachable end end + i32.const 0 + drop memory.size $0 local.set $pagesAfter local.get $root @@ -2270,7 +2272,7 @@ if i32.const 0 i32.const 672 - i32.const 499 + i32.const 503 i32.const 16 call $~lib/builtins/abort unreachable @@ -2290,7 +2292,7 @@ if i32.const 0 i32.const 672 - i32.const 501 + i32.const 505 i32.const 14 call $~lib/builtins/abort unreachable diff --git a/tests/compiler/typeof.release.wat b/tests/compiler/typeof.release.wat index 34f7c56d60..3ab550d972 100644 --- a/tests/compiler/typeof.release.wat +++ b/tests/compiler/typeof.release.wat @@ -759,18 +759,16 @@ local.tee $1 i32.const 0 i32.le_s - if (result i32) + if i32.const 1 local.get $1 i32.sub memory.grow $0 i32.const 0 i32.lt_s - else - i32.const 0 - end - if - unreachable + if + unreachable + end end i32.const 34592 i32.const 0 @@ -1068,7 +1066,7 @@ if i32.const 0 i32.const 1696 - i32.const 562 + i32.const 566 i32.const 3 call $~lib/builtins/abort unreachable @@ -1268,7 +1266,7 @@ if i32.const 0 i32.const 1696 - i32.const 499 + i32.const 503 i32.const 16 call $~lib/builtins/abort unreachable @@ -1283,7 +1281,7 @@ if i32.const 0 i32.const 1696 - i32.const 501 + i32.const 505 i32.const 14 call $~lib/builtins/abort unreachable diff --git a/tests/compiler/while.debug.wat b/tests/compiler/while.debug.wat index 27f83c7032..1f0f7942d5 100644 --- a/tests/compiler/while.debug.wat +++ b/tests/compiler/while.debug.wat @@ -1647,18 +1647,18 @@ local.get $pagesNeeded local.get $pagesBefore i32.gt_s - if (result i32) + if local.get $pagesNeeded local.get $pagesBefore i32.sub memory.grow $0 i32.const 0 i32.lt_s - else + if + unreachable + end i32.const 0 - end - if - unreachable + drop end local.get $rootOffset local.set $root @@ -1779,7 +1779,7 @@ if i32.const 0 i32.const 416 - i32.const 562 + i32.const 566 i32.const 3 call $~lib/builtins/abort unreachable @@ -2108,7 +2108,7 @@ if i32.const 80 i32.const 416 - i32.const 461 + i32.const 462 i32.const 29 call $~lib/builtins/abort unreachable @@ -2404,6 +2404,8 @@ unreachable end end + i32.const 0 + drop memory.size $0 local.set $pagesAfter local.get $root @@ -2553,7 +2555,7 @@ if i32.const 0 i32.const 416 - i32.const 499 + i32.const 503 i32.const 16 call $~lib/builtins/abort unreachable @@ -2573,7 +2575,7 @@ if i32.const 0 i32.const 416 - i32.const 501 + i32.const 505 i32.const 14 call $~lib/builtins/abort unreachable diff --git a/tests/compiler/while.release.wat b/tests/compiler/while.release.wat index b6ef7b8ce6..554c5b8d11 100644 --- a/tests/compiler/while.release.wat +++ b/tests/compiler/while.release.wat @@ -731,18 +731,16 @@ local.tee $1 i32.const 0 i32.le_s - if (result i32) + if i32.const 1 local.get $1 i32.sub memory.grow $0 i32.const 0 i32.lt_s - else - i32.const 0 - end - if - unreachable + if + unreachable + end end i32.const 34288 i32.const 0 @@ -1040,7 +1038,7 @@ if i32.const 0 i32.const 1440 - i32.const 562 + i32.const 566 i32.const 3 call $~lib/builtins/abort unreachable @@ -1240,7 +1238,7 @@ if i32.const 0 i32.const 1440 - i32.const 499 + i32.const 503 i32.const 16 call $~lib/builtins/abort unreachable @@ -1255,7 +1253,7 @@ if i32.const 0 i32.const 1440 - i32.const 501 + i32.const 505 i32.const 14 call $~lib/builtins/abort unreachable From de40b299888c077fac9a2fc27b7082c2a825cb23 Mon Sep 17 00:00:00 2001 From: CountBleck Date: Wed, 2 Aug 2023 18:35:16 +0530 Subject: [PATCH 2/2] Skip fixture comparisons and remaining tests if compilation failed If the test is supposed to compile, but compilation fails instead, there's no point in diffing fixtures (unless you like a wall of red in your terminal). It also turns out that execution never reaches the diffing section, since writing the non-existent debug Wasm binary fails. --- tests/compiler.js | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/tests/compiler.js b/tests/compiler.js index 863787a533..8e3764912b 100644 --- a/tests/compiler.js +++ b/tests/compiler.js @@ -321,6 +321,10 @@ async function runTest(basename) { } compareStderr.end(SUCCESS); return prepareResult(SUCCESS); + } else if (error) { + // Don't bother comparing fixtures or doing anything else if the + // compilation failed. + return prepareResult(FAILURE, "compile failed"); } const afterCompileResult = afterCompile("debug");