tor-browser

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

Script-getOffsetsCoverage-02.js (1159B)


      1 // |jit-test| --ion-pruning=off; skip-if: isLcovEnabled()
      2 
      3 // This script check that when we enable / disable the code coverage collection,
      4 // then we have different results for the getOffsetsCoverage methods.
      5 
      6 var g = newGlobal({newCompartment: true});
      7 var dbg = Debugger(g);
      8 var coverageInfo = [];
      9 var num = 20;
     10 function loop(i) {
     11  var n = 0;
     12  for (n = 0; n < i; n++)
     13    debugger;
     14 }
     15 g.eval(loop.toString());
     16 
     17 dbg.onDebuggerStatement = function (f) {
     18  // Collect coverage info each time we hit a debugger statement.
     19  coverageInfo.push(f.callee.script.getOffsetsCoverage());
     20 };
     21 
     22 coverageInfo = [];
     23 dbg.collectCoverageInfo = false;
     24 g.eval("loop(" + num + ");");
     25 assertEq(coverageInfo.length, num);
     26 assertEq(coverageInfo[0], null);
     27 assertEq(coverageInfo[num - 1], null);
     28 
     29 coverageInfo = [];
     30 dbg.collectCoverageInfo = true;
     31 g.eval("loop(" + num + ");");
     32 assertEq(coverageInfo.length, num);
     33 assertEq(!coverageInfo[0], false);
     34 assertEq(!coverageInfo[num - 1], false);
     35 
     36 coverageInfo = [];
     37 dbg.collectCoverageInfo = false;
     38 g.eval("loop(" + num + ");");
     39 assertEq(coverageInfo.length, num);
     40 assertEq(coverageInfo[0], null);
     41 assertEq(coverageInfo[num - 1], null);