Wed, 31 Dec 2014 06:09:35 +0100
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, '(()');