diff options
Diffstat (limited to 'js/src/jit-test/tests/wasm/ref-types/tables-postbarrier-grow.js')
-rw-r--r-- | js/src/jit-test/tests/wasm/ref-types/tables-postbarrier-grow.js | 21 |
1 files changed, 21 insertions, 0 deletions
diff --git a/js/src/jit-test/tests/wasm/ref-types/tables-postbarrier-grow.js b/js/src/jit-test/tests/wasm/ref-types/tables-postbarrier-grow.js new file mode 100644 index 0000000000..20086e6579 --- /dev/null +++ b/js/src/jit-test/tests/wasm/ref-types/tables-postbarrier-grow.js @@ -0,0 +1,21 @@ +// Add test for issue with a post-write barrier that doesn't remove +// store buffer entries when used on a table that may grow. + +let {set, table} = wasmEvalText(`(module + (table (export "table") 1 externref) + (func (export "set") (param externref) + i32.const 0 + local.get 0 + table.set + ) +)`).exports; + +let tenured = {}; +gc(tenured); +assertEq(isNurseryAllocated(tenured), false); +let nursery = {}; +assertEq(isNurseryAllocated(nursery), true); +set(nursery); +set(null); +assertEq(table.grow(1000), 1, 'table grows'); +gc(); |