tor-browser

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

Frame-onPop-generators-04.js (753B)


      1 // Terminating a generator from the onPop callback for its initial yield
      2 // leaves the Frame in a sane but inactive state.
      3 
      4 load(libdir + "asserts.js");
      5 
      6 let g = newGlobal({newCompartment: true});
      7 g.eval("function* f(x) { yield x; }");
      8 let dbg = new Debugger;
      9 let gw = dbg.addDebuggee(g);
     10 
     11 let genFrame = null;
     12 dbg.onDebuggerStatement = frame => {
     13    dbg.onEnterFrame = frame => {
     14        if (frame.callee == gw.getOwnPropertyDescriptor("f").value) {
     15            genFrame = frame;
     16            frame.onPop = completion => null;
     17        }
     18    };
     19    assertEq(frame.eval("f(0);"), null);
     20 };
     21 
     22 g.eval("debugger;");
     23 
     24 assertEq(genFrame instanceof Debugger.Frame, true);
     25 assertEq(genFrame.onStack, false);
     26 assertThrowsInstanceOf(() => genFrame.callee, Error);