michael@0: // Test removing hooks during dispatch. michael@0: michael@0: var g = newGlobal(); michael@0: var log = ''; michael@0: michael@0: function addDebug(n) { michael@0: for (var i = 0; i < n; i++) { michael@0: var dbg = new Debugger(g); michael@0: dbg.num = i; michael@0: dbg.onDebuggerStatement = function (stack) { michael@0: log += this.num + ', '; michael@0: this.enabled = false; michael@0: this.onDebuggerStatement = undefined; michael@0: gc(); michael@0: }; michael@0: } michael@0: dbg = null; michael@0: } michael@0: michael@0: addDebug(10); michael@0: g.eval("debugger;"); michael@0: assertEq(log, '0, 1, 2, 3, 4, 5, 6, 7, 8, 9, ');