summaryrefslogtreecommitdiffstats
path: root/js/src/jit-test/tests/debug/Frame-evalWithBindings-04.js
blob: 0de428c563b18a7a68fd4b65ac6e1977238f7da0 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
// evalWithBindings works on non-top frames.
var g = newGlobal({newCompartment: true});
var dbg = new Debugger(g);
var f1;
var hits = 0;
dbg.onDebuggerStatement = function (frame) {
    assertEq(frame.older.evalWithBindings("q + r", {r: 3}).return, 5);

    // frame.older.older is in the same function as frame, but a different activation of it
    assertEq(frame.older.older.evalWithBindings("q + r", {r: 3}).return, 6);
    hits++;
};

g.eval("function f1(q) { if (q == 1) debugger; else f2(2); }");
g.eval("function f2(arg) { var q = arg; f1(1); }");
g.f1(3);
assertEq(hits, 1);