michael@0: // When the debugger is triggered twice from the same stack frame, the same michael@0: // Debugger.Frame object is passed to the hook both times. michael@0: michael@0: var g = newGlobal(); michael@0: var hits, frame; michael@0: var dbg = Debugger(g); michael@0: dbg.onDebuggerStatement = function (f) { michael@0: if (hits++ == 0) michael@0: frame = f; michael@0: else michael@0: assertEq(f, frame); michael@0: }; michael@0: michael@0: hits = 0; michael@0: g.evaluate("debugger; debugger;"); michael@0: assertEq(hits, 2); michael@0: michael@0: hits = 0; michael@0: g.evaluate("function f() { debugger; debugger; } f();"); michael@0: assertEq(hits, 2); michael@0: michael@0: hits = 0; michael@0: g.evaluate("eval('debugger; debugger;');"); michael@0: assertEq(hits, 2);