js/src/jit-test/tests/debug/Debugger-debuggees-19.js

changeset 0
6474c204b198
     1.1 --- /dev/null	Thu Jan 01 00:00:00 1970 +0000
     1.2 +++ b/js/src/jit-test/tests/debug/Debugger-debuggees-19.js	Wed Dec 31 06:09:35 2014 +0100
     1.3 @@ -0,0 +1,48 @@
     1.4 +// removeAllDebuggees removes all the debuggees.
     1.5 +
     1.6 +var dbg = new Debugger;
     1.7 +
     1.8 +// If we eval in a debuggee, log which debuggee it was.
     1.9 +var log;
    1.10 +dbg.onEnterFrame = function (frame) {
    1.11 +  log += 'e';
    1.12 +  log += frame.environment.object.label;
    1.13 +};
    1.14 +
    1.15 +var g1 = newGlobal();
    1.16 +log = '';
    1.17 +g1.eval('Math');
    1.18 +assertEq(log, '');              // not yet a debuggee
    1.19 +
    1.20 +var g1w = dbg.addDebuggee(g1);
    1.21 +assertEq(g1w instanceof Debugger.Object, true);
    1.22 +g1w.label = 'g1';
    1.23 +log = '';
    1.24 +g1.eval('Math');                // now a debuggee
    1.25 +assertEq(log, 'eg1');
    1.26 +
    1.27 +var g2 = newGlobal();
    1.28 +log = '';
    1.29 +g1.eval('Math');                // debuggee
    1.30 +g2.eval('Math');                // not a debuggee
    1.31 +assertEq(log, 'eg1');
    1.32 +
    1.33 +var g2w = dbg.addDebuggee(g2);
    1.34 +assertEq(g2w instanceof Debugger.Object, true);
    1.35 +g2w.label = 'g2';
    1.36 +log = '';
    1.37 +g1.eval('Math');                // debuggee
    1.38 +g2.eval('this');                // debuggee
    1.39 +assertEq(log, 'eg1eg2');
    1.40 +
    1.41 +var a1 = dbg.getDebuggees();
    1.42 +assertEq(a1.length, 2);
    1.43 +
    1.44 +assertEq(dbg.removeAllDebuggees(), undefined);
    1.45 +var a2 = dbg.getDebuggees();
    1.46 +assertEq(a2.length, 0);
    1.47 +
    1.48 +log = '';
    1.49 +g1.eval('Math');                // no longer a debuggee
    1.50 +g2.eval('this');                // no longer a debuggee
    1.51 +assertEq(log, '');

mercurial