js/src/jit-test/tests/debug/Frame-onPop-disabled.js

Sat, 03 Jan 2015 20:18:00 +0100

author
Michael Schloh von Bennewitz <michael@schloh.com>
date
Sat, 03 Jan 2015 20:18:00 +0100
branch
TOR_BUG_3246
changeset 7
129ffea94266
permissions
-rw-r--r--

Conditionally enable double key logic according to:
private browsing mode or privacy.thirdparty.isolate preference and
implement in GetCookieStringCommon and FindCookie where it counts...
With some reservations of how to convince FindCookie users to test
condition and pass a nullptr when disabling double key logic.

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