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

     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