js/src/jit-test/tests/debug/Frame-identity-04.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 // Test that on-stack Debugger.Frames are not GC'd even if they are only reachable
     2 // from the js::Debugger::frames table.
     4 var g = newGlobal();
     5 g.eval("function f(n) { if (n) f(n - 1); debugger; }");
     6 var dbg = new Debugger(g);
     7 var hits = 0;
     8 dbg.onDebuggerStatement = function (frame) {
     9     if (hits === 0) {
    10         for (; frame; frame = frame.older)
    11             frame.seen = true;
    12     } else {
    13         for (; frame; frame = frame.older)
    14             assertEq(frame.seen, true);
    15     }
    16     gc();
    17     hits++;
    18 };
    19 g.f(20);
    20 assertEq(hits, 21);

mercurial