tor-browser

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

non-function-getters.js (720B)


      1 with ({}) {}
      2 
      3 function makeObjWithFunctionGetter(n) {
      4  var o = {};
      5  Object.defineProperty(o, "x", {
      6    get() { return n; }
      7  });
      8 
      9  return o;
     10 }
     11 
     12 function makeObjWithProxyGetter() {
     13  var inner = () => "proxy";
     14  var proxy = new Proxy(inner, {});
     15 
     16  var o = {};
     17  Object.defineProperty(o, "x", {
     18    get: proxy
     19  });
     20  return o;
     21 }
     22 
     23 function makeObjWithBoundGetter() {
     24  var inner = () => "bound";;
     25  var bound = inner.bind({});
     26 
     27  var o = {};
     28  Object.defineProperty(o, "x", {
     29    get: bound
     30  });
     31  return o;
     32 }
     33 
     34 function foo(o) { return o.x; }
     35 
     36 for (var i = 0; i < 100; i++) {
     37  foo(makeObjWithFunctionGetter(i));
     38 }
     39 
     40 assertEq(foo(makeObjWithProxyGetter()), "proxy");
     41 assertEq(foo(makeObjWithBoundGetter()), "bound");