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