js/src/jit-test/tests/debug/Debugger-onEnterFrame-resumption-01.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.

     1 // If debugger.onEnterFrame returns {return:val}, the frame returns.
     3 var g = newGlobal();
     4 g.set = false;
     5 g.eval("function f() {\n" +
     6        "    set = true;\n" +
     7        "    return 'fail';\n" +
     8        "}\n");
     9 g.eval("function g() { return 'g ' + f(); }");
    10 g.eval("function h() { return 'h ' + g(); }");
    12 var dbg = Debugger(g);
    13 var savedFrame;
    14 dbg.onEnterFrame = function (frame) {
    15     savedFrame = frame;
    16     return {return: "pass"};
    17 };
    19 // Call g.f as a function.
    20 savedFrame = undefined;
    21 assertEq(g.f(), "pass");
    22 assertEq(savedFrame.live, false);
    23 assertEq(g.set, false);
    25 // Call g.f as a constructor.
    26 savedFrame = undefined;
    27 var r = new g.f;
    28 assertEq(typeof r, "object");
    29 assertEq(savedFrame.live, false);
    30 assertEq(g.set, false);
    32 var count = 0;
    33 dbg.onEnterFrame = function (frame) {
    34     count++;
    35     if (count == 3) {
    36         savedFrame = frame;
    37         return {return: "pass"};
    38     }
    39     return undefined;
    40 };
    41 g.set = false;
    42 savedFrame = undefined;
    43 assertEq(g.h(), "h g pass");
    44 assertEq(savedFrame.live, false);
    45 assertEq(g.set, false);

mercurial