michael@0: // Basic Script.prototype.getBreakpoints tests. michael@0: michael@0: var g = newGlobal(); michael@0: g.eval("var line0 = Error().lineNumber;\n" + michael@0: "function f(x) {\n" + // line0 + 1 michael@0: " if (x < 0)\n" + // line0 + 2 michael@0: " return -x;\n" + // line0 + 3 michael@0: " return x;\n" + michael@0: "}"); michael@0: michael@0: var s; michael@0: var offsets = []; michael@0: var handlers = []; michael@0: var dbg = Debugger(g); michael@0: dbg.onDebuggerStatement = function (frame) { michael@0: s = frame.eval("f").return.script; michael@0: var off; michael@0: michael@0: for (var i = 0; i < 3; i++) { michael@0: var off = s.getLineOffsets(g.line0 + 2 + i)[0]; michael@0: assertEq(typeof off, 'number'); michael@0: handlers[i] = {}; michael@0: s.setBreakpoint(off, handlers[i]); michael@0: offsets[i] = off; michael@0: } michael@0: }; michael@0: g.eval("debugger;"); michael@0: michael@0: // getBreakpoints without an offset gets all breakpoints in the script. michael@0: var bps = s.getBreakpoints(); michael@0: assertEq(bps.length, handlers.length); michael@0: for (var i = 0; i < bps.length; i++) michael@0: assertEq(bps.indexOf(handlers[i]) !== -1, true); michael@0: michael@0: // getBreakpoints with an offset finds only breakpoints at that offset. michael@0: for (var i = 0; i < offsets.length; i++) { michael@0: var bps = s.getBreakpoints(offsets[i]); michael@0: assertEq(bps.length, 1); michael@0: assertEq(bps[0], handlers[i]); michael@0: }