tor-browser

The Tor Browser
git clone https://git.dasho.dev/tor-browser.git
Log | Files | Refs | README | LICENSE

Frame-onStack-02.js (845B)


      1 // Debugger.Frame.prototype.onStack is false for frames that have thrown or been thrown through
      2 
      3 load(libdir + "asserts.js");
      4 
      5 var g = newGlobal({newCompartment: true});
      6 g.debuggeeGlobal = this;
      7 g.eval("var finalCheck;");
      8 g.eval("(" + function () {
      9        var a = [];
     10        var dbg = Debugger(debuggeeGlobal);
     11        dbg.onDebuggerStatement = function (frame) {
     12            a.push(frame);
     13            for (var i = 0; i < a.length; i++)
     14                assertEq(a[i].onStack, true);
     15        };
     16        finalCheck = function (n) {
     17            assertEq(a.length, n);
     18            for (var i = 0; i < n; i++)
     19                assertEq(a[i].onStack, false);
     20        };
     21    } + ")()");
     22 
     23 function f(n) {
     24    debugger;
     25    if (--n > 0)
     26        f(n);
     27    else
     28        throw "fit";
     29 }
     30 
     31 assertThrowsValue(function () { f(10); }, "fit");
     32 g.finalCheck(10);