summaryrefslogtreecommitdiffstats
path: root/js/src/jit-test/tests/debug/resumption-05.js
blob: 9c3f7cd54a390f45d3fe298be7a079863020059c (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
28
29
30
31
32
33
34
35
// null resumption value means terminate the debuggee

var g = newGlobal({newCompartment: true});
g.debuggeeGlobal = this;
g.eval("(" + function () { 
        var dbg = new Debugger(debuggeeGlobal);
        dbg.onDebuggerStatement = function (frame) {
            if (frame.callee === null) {
                // The first debugger statement below.
                debuggeeGlobal.log += "1";
                var cv = frame.eval("f();");
                assertEq(cv, null);
                debuggeeGlobal.log += "2";
            } else {
                // The second debugger statement.
                debuggeeGlobal.log += "3";
                assertEq(frame.callee.name, "f");
                return null;
            }
        };
    } + ")()");

var log = "";
debugger;

function f() {
    log += "4";
    try {
        debugger;  // the debugger terminates us here
    } finally {
        log += "5";  // this should not execute
    }
}

assertEq(log, "1432");