michael@0: // When the debugger is triggered from different stack frames that happen to michael@0: // occupy the same memory, it delivers different Debugger.Frame objects. michael@0: michael@0: var g = newGlobal(); michael@0: var dbg = Debugger(g); michael@0: var hits; michael@0: var a = []; michael@0: dbg.onDebuggerStatement = function (frame) { michael@0: for (var i = 0; i < a.length; i++) michael@0: assertEq(a[i] === frame, false); michael@0: a.push(frame); michael@0: hits++; michael@0: }; michael@0: michael@0: g.eval("function f() { debugger; }"); michael@0: g.eval("function h() { debugger; f(); }"); michael@0: hits = 0; michael@0: g.eval("for (var i = 0; i < 4; i++) h();"); michael@0: assertEq(hits, 8);