summaryrefslogtreecommitdiffstats
path: root/js/src/jit-test/tests/debug/Frame-onStep-16.js
blob: 2acf76951d1f6a81c74d5bebda1b171962719abb (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
// Stepping through a function with a return statement should pause on
// the closing brace of the function.

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

function test(fnStr) {
  log = '';
  g.eval(fnStr);

  dbg.onDebuggerStatement = function(frame) {
        frame.onStep = function() {
      let {lineNumber, isEntryPoint} = frame.script.getOffsetLocation(frame.offset);
      if (isEntryPoint) {
        log += lineNumber + ' ';
      }
    };
  };

  g.eval("f(23);");
}

test("function f(x) {\n" +    // 1
     "    debugger;\n" +      // 2
     "    return 23 + x;\n" + // 3
     "}\n");                  // 4
assertEq(log, '3 4 ');

test("function f(x) {\n" +    // 1
     "    debugger;\n" +      // 2
     "    return;\n" +        // 3
     "}\n");                  // 4
assertEq(log, '3 4 ');