tor-browser

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

onExceptionUnwind-01.js (711B)


      1 // Basic onExceptionUnwind hook test.
      2 
      3 load(libdir + "asserts.js");
      4 
      5 var g = newGlobal({newCompartment: true});
      6 var dbg = Debugger(g);
      7 var hit = false;
      8 dbg.onExceptionUnwind = function (frame, exc) {
      9    // onExceptionUnwind is called multiple times as the stack is unwound.
     10    // Only check the first hit.
     11    assertEq(arguments.length, 2);
     12    assertEq(frame instanceof Debugger.Frame, true);
     13    if (!hit) {
     14        assertEq(exc, 101);
     15        assertEq(frame.type, "call");
     16        assertEq(frame.callee.name, "f");
     17        assertEq(frame.older.type, "eval");
     18        hit = true;
     19    }
     20 };
     21 
     22 g.eval("function f() { throw 101; }");
     23 assertThrowsValue(function () { g.eval("f();"); }, 101);
     24 assertEq(hit, true);