table-pre-barrier.js (638B)
1 const Module = WebAssembly.Module; 2 const Instance = WebAssembly.Instance; 3 const Table = WebAssembly.Table; 4 5 var i42 = new Instance(new Module(wasmTextToBinary(`(module (func (result i32) (i32.const 42)) (export "f" (func 0)))`))); 6 var i13 = new Instance(new Module(wasmTextToBinary(`(module (func (result i32) (i32.const 13)) (export "f" (func 0)))`))); 7 var t = new Table({element:"anyfunc", initial:1}); 8 t.set(0, i42.exports.f); 9 10 assertEq(t.get(0)(), 42); 11 12 verifyprebarriers(); 13 t.set(0, i13.exports.f); 14 verifyprebarriers(); 15 16 assertEq(t.get(0)(), 13); 17 18 verifyprebarriers(); 19 t.set(0, null); 20 verifyprebarriers(); 21 22 assertEq(t.get(0), null);