// Debugger.Script instances with live referents stay alive.

var N = 4;
var g = newGlobal();
var dbg = new Debugger(g);
var i;
dbg.onDebuggerStatement = function (frame) {
    assertEq(frame.script instanceof Debugger.Script, true);
    frame.script.id = i;
};

g.eval('var arr = [];')
for (i = 0; i < N; i++)  // loop to defeat conservative GC
    g.eval("arr.push(function () { debugger }); arr[arr.length - 1]();");

gc();

var hits;
dbg.onDebuggerStatement = function (frame) {
    hits++;
    assertEq(frame.script.id, i);
};
hits = 0;
for (i = 0; i < N; i++)
    g.arr[i]();
assertEq(hits, N);
