michael@0: // removeAllDebuggees removes all the debuggees. michael@0: michael@0: var dbg = new Debugger; michael@0: michael@0: // If we eval in a debuggee, log which debuggee it was. michael@0: var log; michael@0: dbg.onEnterFrame = function (frame) { michael@0: log += 'e'; michael@0: log += frame.environment.object.label; michael@0: }; michael@0: michael@0: var g1 = newGlobal(); michael@0: log = ''; michael@0: g1.eval('Math'); michael@0: assertEq(log, ''); // not yet a debuggee michael@0: michael@0: var g1w = dbg.addDebuggee(g1); michael@0: assertEq(g1w instanceof Debugger.Object, true); michael@0: g1w.label = 'g1'; michael@0: log = ''; michael@0: g1.eval('Math'); // now a debuggee michael@0: assertEq(log, 'eg1'); michael@0: michael@0: var g2 = newGlobal(); michael@0: log = ''; michael@0: g1.eval('Math'); // debuggee michael@0: g2.eval('Math'); // not a debuggee michael@0: assertEq(log, 'eg1'); michael@0: michael@0: var g2w = dbg.addDebuggee(g2); michael@0: assertEq(g2w instanceof Debugger.Object, true); michael@0: g2w.label = 'g2'; michael@0: log = ''; michael@0: g1.eval('Math'); // debuggee michael@0: g2.eval('this'); // debuggee michael@0: assertEq(log, 'eg1eg2'); michael@0: michael@0: var a1 = dbg.getDebuggees(); michael@0: assertEq(a1.length, 2); michael@0: michael@0: assertEq(dbg.removeAllDebuggees(), undefined); michael@0: var a2 = dbg.getDebuggees(); michael@0: assertEq(a2.length, 0); michael@0: michael@0: log = ''; michael@0: g1.eval('Math'); // no longer a debuggee michael@0: g2.eval('this'); // no longer a debuggee michael@0: assertEq(log, '');