js/src/jit-test/tests/basic/testProxyConstructors.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 // |jit-test| error: ExitCleanly
     3 assertEq((new (Proxy.createFunction({},
     4                                     function(){ this.x = 1 },
     5                                     function(){ this.x = 2 }))).x, 2);
     6 try {
     7     x = Proxy.createFunction((function () {}), Uint16Array, wrap)
     8     new(wrap(x))
     9     throw "Should not be reached"
    10 }
    11 catch (e) {
    12     assertEq(String(e.message).indexOf('is not a constructor') === -1, false);
    13 }
    14 // proxies can return the callee
    15 var x = Proxy.createFunction({}, function (q) { return q; });
    16 assertEq(new x(x), x);
    17 try {
    18     var x = (Proxy.createFunction({}, "".indexOf));
    19     new x;
    20     throw "Should not be reached"
    21 }
    22 catch (e) {
    23     assertEq(String(e.message).indexOf('is not a constructor') === -1, false);
    24 }
    25 throw "ExitCleanly"

mercurial