Thu, 22 Jan 2015 13:21:57 +0100
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, '(()');