michael@0: // Disabling a Debugger object causes events to stop being delivered to it michael@0: // immediately, even if we're in the middle of dispatching. michael@0: michael@0: var g = newGlobal(); michael@0: var log; michael@0: michael@0: var arr = []; michael@0: for (var i = 0; i < 4; i++) { michael@0: arr[i] = new Debugger(g); michael@0: arr[i].num = i; michael@0: arr[i].onDebuggerStatement = function () { michael@0: log += this.num; michael@0: // Disable them all. michael@0: for (var j = 0; j < arr.length; j++) michael@0: arr[j].enabled = false; michael@0: }; michael@0: } michael@0: michael@0: log = ''; michael@0: g.eval("debugger; debugger;"); michael@0: assertEq(log, '0');