tor-browser

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

onEnterFrame-generator-03.js (700B)


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