js/src/jit-test/tests/debug/Frame-onPop-multiple-03.js

Wed, 31 Dec 2014 06:09:35 +0100

author
Michael Schloh von Bennewitz <michael@schloh.com>
date
Wed, 31 Dec 2014 06:09:35 +0100
changeset 0
6474c204b198
permissions
-rw-r--r--

Cloned upstream origin tor-browser at tor-browser-31.3.0esr-4.5-1-build1
revision ID fc1c9ff7c1b2defdbc039f12214767608f46423f for hacking purpose.

     1 // One Debugger's onPop handler can disable another Debugger.
     2 var g = newGlobal();
     3 var dbg1 = new Debugger(g);
     4 var dbg2 = new Debugger(g);
     6 var log;
     7 var frames = [];
     8 var firstPop = true;
    10 function handleEnter(frame) {
    11     log += '(';
    12     frames.push(frame);
    13     frame.debugger = this;
    14     frame.onPop = function handlePop(completion) {
    15         log += ')';
    16         assertEq(completion.return, 42);
    17         if (firstPop) {
    18             // We can't say which frame's onPop handler will get called first.
    19             if (this == frames[0])
    20                 frames[1].debugger.enabled = false;
    21             else
    22                 frames[0].debugger.enabled = false;
    23         } else {
    24             assertEq("second pop handler was called",
    25                      "second pop handler should not be called");
    26         }
    27         firstPop = false;
    28     };
    29 };
    31 dbg1.onEnterFrame = handleEnter;
    32 dbg2.onEnterFrame = handleEnter;
    34 log = '';
    35 assertEq(g.eval('40 + 2'), 42);
    36 assertEq(log, '(()');

mercurial