tor-browser

The Tor Browser
git clone https://git.dasho.dev/tor-browser.git
Log | Files | Refs | README | LICENSE

gc-3.js (537B)


      1 // Test with suspended stack and promises references are lost.
      2 
      3 let s;
      4 const suspending = new WebAssembly.Suspending(() => (s = new Promise(() => {})));
      5 const ins = wasmEvalText(`(module
      6  (import "" "s" (func $imp))
      7  (func (export "f")
      8    call $imp
      9  )
     10 )`, {"": {s: suspending,}});
     11 const promising = WebAssembly.promising(ins.exports.f);
     12 let p = promising();
     13 
     14 // Check if suspending and promising promises were collected.
     15 addMarkObservers([s, p]);
     16 s = p = null;
     17 gc();
     18 assertEq(getMarks()[0], 'dead');
     19 assertEq(getMarks()[1], 'dead');