tor-browser

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

testDirectProxyKeys10.js (851B)


      1 load(libdir + "asserts.js");
      2 
      3 // Allow [[GetOwnPropertyDescriptor]] to spoof enumerability of target object's
      4 // properties. Note that this also tests that the getOwnPropertyDescriptor is
      5 // called by Object.keys(), as expected.
      6 
      7 var target = {};
      8 var handler = {
      9    getOwnPropertyDescriptor : function (target, P) {
     10        var targetDesc = Object.getOwnPropertyDescriptor(target, P);
     11        // Lie about enumerability
     12        targetDesc.enumerable = !targetDesc.enumerable;
     13        return targetDesc;
     14    }
     15 };
     16 
     17 for (let p of [new Proxy(target, handler), Proxy.revocable(target, handler).proxy]) {
     18    Object.defineProperty(target, "foo", { configurable: true, enumerable: false });
     19    assertDeepEq(Object.keys(p), ["foo"]);
     20 
     21    Object.defineProperty(target, "foo", {configurable: true, enumerable: true});
     22    assertDeepEq(Object.keys(p), []);
     23 }