tor-browser

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

onEnterFrame-generator-05.js (798B)


      1 // When resuming a generator triggers one Debugger's onEnterFrame handler,
      2 // all Debuggers' Debugger.Frames become usable at once.
      3 
      4 load(libdir + "asserts.js");
      5 
      6 let g = newGlobal({newCompartment: true});
      7 g.eval(`
      8    function* f() {
      9       yield 1;
     10    }
     11 `);
     12 let dbg1 = new Debugger(g);
     13 let dbg2 = new Debugger(g);
     14 
     15 let hits = 0;
     16 let savedFrame1;
     17 let savedFrame2;
     18 dbg1.onEnterFrame = frame => {
     19    if (savedFrame1 === undefined) {
     20        savedFrame1 = frame;
     21        savedFrame2 = dbg2.getNewestFrame();
     22    } else {
     23        hits++;
     24        assertEq(savedFrame1, frame);
     25        for (let f of [savedFrame2, savedFrame1]) {
     26            assertEq(f.type, "call");
     27            assertEq(f.callee.name, "f");
     28        }
     29    }
     30 };
     31 
     32 let values = [...g.f()];
     33 assertEq(hits, 2);
     34 assertDeepEq(values, [1]);