tor-browser

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

freeze-proxy.js (818B)


      1 var called = [];
      2 var proxy = new Proxy({a: 1, get b() {}}, {
      3    getOwnPropertyDescriptor(target, P) {
      4        called.push("getOwnPropertyDescriptor");
      5        return Object.getOwnPropertyDescriptor(target, P);
      6    },
      7    defineProperty(target, P, desc) {
      8        called.push("defineProperty");
      9        if (P == "a") {
     10            assertEq(Object.getOwnPropertyNames(desc).length, 2);
     11            assertEq(desc.configurable, false);
     12            assertEq(desc.writable, false);
     13        } else {
     14            assertEq(Object.getOwnPropertyNames(desc).length, 1);
     15            assertEq(desc.configurable, false);
     16        }
     17        return Object.defineProperty(target, P, desc);
     18    }
     19 });
     20 
     21 Object.freeze(proxy);
     22 assertEq(called.toString(), "getOwnPropertyDescriptor,defineProperty,getOwnPropertyDescriptor,defineProperty");