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

Thu, 22 Jan 2015 13:21:57 +0100

author
Michael Schloh von Bennewitz <michael@schloh.com>
date
Thu, 22 Jan 2015 13:21:57 +0100
branch
TOR_BUG_9701
changeset 15
b8a032363ba2
permissions
-rw-r--r--

Incorporate requested changes from Mozilla in review:
https://bugzilla.mozilla.org/show_bug.cgi?id=1123480#c6

     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