| // Basic getOffsetLocation test, using Error.lineNumber as the gold standard. |
| |
| var g = newGlobal(); |
| var dbg = Debugger(g); |
| var hits; |
| dbg.onDebuggerStatement = function (frame) { |
| var knownLine = frame.eval("line").return; |
| assertEq(frame.script.getOffsetLocation(frame.offset).lineNumber, knownLine); |
| hits++; |
| }; |
| |
| hits = 0; |
| g.eval("var line = new Error().lineNumber; debugger;"); |
| assertEq(hits, 1); |
| |
| hits = 0; |
| g.eval("var s = 2 + 2;\n" + |
| "s += 2;\n" + |
| "line = new Error().lineNumber; debugger;\n" + |
| "s += 2;\n" + |
| "s += 2;\n" + |
| "line = new Error().lineNumber; debugger;\n" + |
| "s += 2;\n" + |
| "assertEq(s, 12);\n"); |
| assertEq(hits, 2); |