Debugger-debuggees-19.js (1307B)
1 // removeAllDebuggees removes all the debuggees. 2 3 var dbg = new Debugger; 4 5 // If we eval in a debuggee, log which debuggee it was. 6 var log; 7 dbg.onEnterFrame = function (frame) { 8 log += 'e'; 9 // frame.environment in all evals below is the global lexical env. 10 log += frame.environment.parent.object.label; 11 }; 12 13 var g1 = newGlobal({newCompartment: true}); 14 log = ''; 15 g1.eval('Math'); 16 assertEq(log, ''); // not yet a debuggee 17 18 var g1w = dbg.addDebuggee(g1); 19 assertEq(g1w instanceof Debugger.Object, true); 20 g1w.label = 'g1'; 21 log = ''; 22 g1.eval('Math'); // now a debuggee 23 assertEq(log, 'eg1'); 24 25 var g2 = newGlobal({newCompartment: true}); 26 log = ''; 27 g1.eval('Math'); // debuggee 28 g2.eval('Math'); // not a debuggee 29 assertEq(log, 'eg1'); 30 31 var g2w = dbg.addDebuggee(g2); 32 assertEq(g2w instanceof Debugger.Object, true); 33 g2w.label = 'g2'; 34 log = ''; 35 g1.eval('Math'); // debuggee 36 g2.eval('this'); // debuggee 37 assertEq(log, 'eg1eg2'); 38 39 var a1 = dbg.getDebuggees(); 40 assertEq(a1.length, 2); 41 42 assertEq(dbg.removeAllDebuggees(), undefined); 43 var a2 = dbg.getDebuggees(); 44 assertEq(a2.length, 0); 45 46 log = ''; 47 g1.eval('Math'); // no longer a debuggee 48 g2.eval('this'); // no longer a debuggee 49 assertEq(log, '');