tor-browser

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

Script-getOffsetMetadata.js (852B)


      1 var global = newGlobal({newCompartment: true});
      2 var dbg = Debugger(global);
      3 dbg.onDebuggerStatement = function(frame) {
      4  const bps = frame.script.getPossibleBreakpoints();
      5 
      6  const stepBps = [];
      7  frame.onStep = function() {
      8    assertOffset(this);
      9  };
     10 
     11  assertOffset(frame);
     12 
     13  function assertOffset(frame) {
     14    const meta = frame.script.getOffsetMetadata(frame.offset);
     15 
     16    if (meta.isBreakpoint) {
     17      assertEq(frame.offset, bps[0].offset);
     18      const expectedData = bps.shift();
     19 
     20      assertEq(meta.lineNumber, expectedData.lineNumber);
     21      assertEq(meta.columnNumber, expectedData.columnNumber);
     22      assertEq(meta.isStepStart, expectedData.isStepStart);
     23    } else {
     24      assertEq(meta.isStepStart, false);
     25    }
     26  };
     27 };
     28 
     29 global.eval(`
     30  function a() { return "str"; }
     31  debugger;
     32 
     33  console.log("42" + a());
     34  a();
     35  a() + a();
     36 `);