js/src/jit-test/tests/debug/Object-proto.js

Thu, 15 Jan 2015 15:59:08 +0100

author
Michael Schloh von Bennewitz <michael@schloh.com>
date
Thu, 15 Jan 2015 15:59:08 +0100
branch
TOR_BUG_9701
changeset 10
ac0c01689b40
permissions
-rw-r--r--

Implement a real Private Browsing Mode condition by changing the API/ABI;
This solves Tor bug #9701, complying with disk avoidance documented in
https://www.torproject.org/projects/torbrowser/design/#disk-avoidance.

     1 // Debugger.Object.prototype.proto
     2 var g = newGlobal();
     3 var dbgeval = function () {
     4         var dbg = new Debugger(g);
     5         var hits = 0;
     6         g.eval("function f() { debugger; }");
     7         var lastval;
     8         dbg.onDebuggerStatement = function (frame) { lastval = frame.arguments[0]; };
     9         return function dbgeval(s) {
    10             g.eval("f(" + s + ");");
    11             return lastval;
    12         };
    13     }();
    15 var Op = dbgeval("Object.prototype");
    16 assertEq(Op.proto, null);
    17 assertEq(dbgeval("({})").proto, Op);
    19 var Ap = dbgeval("[]").proto;
    20 assertEq(Ap, dbgeval("Array.prototype"));
    21 assertEq(Ap.proto, Op);
    23 assertEq(dbgeval("Object").proto, dbgeval("Function.prototype"));

mercurial