gc-08.js (544B)
1 // Debuggers with enabled onExceptionUnwind hooks should not be GC'd even if 2 // they are otherwise unreachable. 3 4 load(libdir + "asserts.js"); 5 6 var g = newGlobal({newCompartment: true}); 7 var actual = 0; 8 var expected = 0; 9 10 function f() { 11 for (var i = 0; i < 20; i++) { 12 var dbg = new Debugger(g); 13 dbg.num = i; 14 dbg.onExceptionUnwind = function (stack, exc) { actual += this.num; }; 15 expected += i; 16 } 17 } 18 19 f(); 20 gc(); 21 assertThrowsValue(function () { g.eval("throw 'fit';"); }, "fit"); 22 assertEq(actual, expected);