/js/src/jit-test/tests/debug/gc-03.js
http://github.com/zpao/v8monkey · JavaScript · 24 lines · 18 code · 4 blank · 2 comment · 0 complexity · 9828807cf1d0fd6b6a66dfc71cb4012e MD5 · raw file
- // Storing a property on a Debugger.Object protects it from GC as long as the
- // referent is alive.
- var g = newGlobal('new-compartment');
- var N = g.N = 3;
- var dbg = Debugger(g);
- var i = 0;
- dbg.onDebuggerStatement = function (frame) {
- frame.arguments[0].id = i++;
- };
- g.eval("function f(x) { debugger; }");
- g.eval("var arr = [], j; for (j = 0; j < N; j++) arr[j] = {};");
- g.eval("for (j = 0; j < N; j++) f(arr[j]);");
- assertEq(i, N);
- gc(); gc();
- i = 0;
- dbg.onDebuggerStatement = function (frame) {
- assertEq(frame.arguments[0].id, i++)
- }
- g.eval("for (j = 0; j < N; j++) f(arr[j]);");
- assertEq(i, N);