tor-browser

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

Frame-onPop-dead-frame.js (628B)


      1 // Don't crash trying to fire a dead frame's onPop handler.
      2 
      3 var g = newGlobal({newCompartment: true});
      4 g.eval('function f() { debugger; }');
      5 
      6 var log = '';
      7 
      8 // Create two Debuggers debugging the same global `g`. Both will put onPop
      9 // handlers on the same frame.
     10 var dbg1 = Debugger(g);
     11 dbg1.onDebuggerStatement = frame1 => {
     12  frame1.onPop = completion => {
     13    log += 'A';
     14    dbg2.removeDebuggee(g); // kills frame2, so frame2.onPop should not fire
     15    log += 'B';
     16  };
     17 };
     18 
     19 var dbg2 = Debugger(g);
     20 dbg2.onDebuggerStatement = frame2 => {
     21  frame2.onPop = completion => {
     22    log += 'C';
     23  };
     24 };
     25 
     26 g.f();
     27 
     28 assertEq(log, 'AB');