summaryrefslogtreecommitdiffstats
path: root/js/src/jit-test/tests/debug/Frame-script-02.js
blob: 3b5bf12c631b8d41664153b18989cdb76bb99e03 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
// Frame.prototype.script for call frames.

var g = newGlobal({newCompartment: true});
var dbg = new Debugger(g);

// Apply |f| to each frame that is |skip| frames up from each frame that
// executes a 'debugger' statement when evaluating |code| in the global g.
function ApplyToFrameScript(code, skip, f) {
    dbg.onDebuggerStatement = function (frame) {
        while (skip-- > 0)
            frame = frame.older;
        assertEq(frame.type, "call");
        f(frame.script);
    };
    g.eval(code);
}

ApplyToFrameScript('(function () { debugger; })();', 0,
                   function (script) {
                       assertEq(script instanceof Debugger.Script, true);
                   });

// This would be nice, once we can get host call frames:
// ApplyToFrameScript("(function () { debugger; }).call(null);", 1,
//                    function (script) {
//                        assertEq(script, null);
//                   });