michael@0: // |jit-test| debug michael@0: // Debugger.Frame.prototype.live is false for frames that have thrown or been thrown through michael@0: michael@0: load(libdir + "asserts.js"); michael@0: michael@0: var g = newGlobal(); michael@0: g.debuggeeGlobal = this; michael@0: g.eval("var finalCheck;"); michael@0: g.eval("(" + function () { michael@0: var a = []; michael@0: var dbg = Debugger(debuggeeGlobal); michael@0: dbg.onDebuggerStatement = function (frame) { michael@0: a.push(frame); michael@0: for (var i = 0; i < a.length; i++) michael@0: assertEq(a[i].live, true); michael@0: }; michael@0: finalCheck = function (n) { michael@0: assertEq(a.length, n); michael@0: for (var i = 0; i < n; i++) michael@0: assertEq(a[i].live, false); michael@0: }; michael@0: } + ")()"); michael@0: michael@0: function f(n) { michael@0: debugger; michael@0: if (--n > 0) michael@0: f(n); michael@0: else michael@0: throw "fit"; michael@0: } michael@0: michael@0: assertThrowsValue(function () { f(10); }, "fit"); michael@0: g.finalCheck(10);