summaryrefslogtreecommitdiffstats
path: root/js/src/jit-test/tests/debug/execution-observability-05.js
blob: 1ba39f54c13a66fb21946d0f824500f2877db5b8 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
// Test that we can do debug mode OSR from the interrupt handler through an
// on->off->on cycle.

var global = this;
var hits = 0;
setInterruptCallback(function() {
  print("Interrupt!");
  hits++;
  var g = newGlobal({newCompartment: true});
  g.parent = global;
  g.eval("var dbg = new Debugger(parent); dbg.onEnterFrame = function(frame) {};");
  g.eval("dbg.removeDebuggee(parent);");
  return true;
});

function f(x) {
  if (x > 200)
    return;
  interruptIf(x == 100);
  f(x + 1);
}
f(0);
assertEq(hits, 1);