js/src/jit-test/tests/debug/Frame-onPop-disabled.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.

michael@0 1 // An onPop handler in a disabled Debugger's frame shouldn't fire.
michael@0 2
michael@0 3 var g = newGlobal();
michael@0 4 var dbg = new Debugger(g);
michael@0 5 g.eval('function f() { debugger; }');
michael@0 6 var log;
michael@0 7 dbg.onEnterFrame = function handleEnterFrame(f) {
michael@0 8 log += '(';
michael@0 9 assertEq(f.callee.name, 'f');
michael@0 10 f.onPop = function handlePop(c) {
michael@0 11 log += ')';
michael@0 12 assertEq(dbg.enabled, true);
michael@0 13 };
michael@0 14 };
michael@0 15
michael@0 16 var enable;
michael@0 17 dbg.onDebuggerStatement = function handleDebugger(f) {
michael@0 18 dbg.enabled = enable;
michael@0 19 }
michael@0 20
michael@0 21
michael@0 22 // This should fire the onEnterFrame and onPop handlers.
michael@0 23 log = 'a';
michael@0 24 enable = true;
michael@0 25 g.f();
michael@0 26
michael@0 27 // This should fire the onEnterFrame handler, but not the onPop.
michael@0 28 log += 'b';
michael@0 29 enable = false;
michael@0 30 g.f();
michael@0 31
michael@0 32 // This should fire neither.
michael@0 33 log += 'c';
michael@0 34 dbg.enabled = false;
michael@0 35 enable = false;
michael@0 36 g.f();
michael@0 37
michael@0 38 // This should fire both again.
michael@0 39 log += 'd';
michael@0 40 dbg.enabled = true;
michael@0 41 enable = true;
michael@0 42 g.f();
michael@0 43
michael@0 44 assertEq(log, 'a()b(cd()');

mercurial