| // |jit-test| --ion-pgo=off; |
| |
| // This script check that when we enable / disable the code coverage collection, |
| // then we have different results for the getOffsetsCoverage methods. |
| |
| var g = newGlobal(); |
| var dbg = Debugger(g); |
| var coverageInfo = []; |
| var num = 20; |
| function loop(i) { |
| var n = 0; |
| for (n = 0; n < i; n++) |
| debugger; |
| } |
| g.eval(loop.toSource()); |
| |
| dbg.onDebuggerStatement = function (f) { |
| // Collect coverage info each time we hit a debugger statement. |
| coverageInfo.push(f.callee.script.getOffsetsCoverage()); |
| }; |
| |
| coverageInfo = []; |
| dbg.collectCoverageInfo = false; |
| g.eval("loop(" + num + ");"); |
| assertEq(coverageInfo.length, num); |
| assertEq(coverageInfo[0], null); |
| assertEq(coverageInfo[num - 1], null); |
| |
| coverageInfo = []; |
| dbg.collectCoverageInfo = true; |
| g.eval("loop(" + num + ");"); |
| assertEq(coverageInfo.length, num); |
| assertEq(!coverageInfo[0], false); |
| assertEq(!coverageInfo[num - 1], false); |
| |
| coverageInfo = []; |
| dbg.collectCoverageInfo = false; |
| g.eval("loop(" + num + ");"); |
| assertEq(coverageInfo.length, num); |
| assertEq(coverageInfo[0], null); |
| assertEq(coverageInfo[num - 1], null); |