testDirectProxyGetInherited2.js (743B)
1 // Getting a property that's inherted from a proxy calls the proxy's get handler. 2 3 var handler = { 4 get(t, id, r) { 5 assertEq(this, handler); 6 assertEq(t, target); 7 assertEq(id, "foo"); 8 assertEq(r, obj); 9 return "bar"; 10 }, 11 getOwnPropertyDescriptor(t, id) { 12 throw "FAIL"; 13 } 14 }; 15 16 var target = {}; 17 var proto = new Proxy(target, handler); 18 var obj = Object.create(proto); 19 assertEq(obj.foo, "bar"); 20 21 // Longer proto chain: same result. 22 var origObj = obj; 23 for (var i = 0; i < 4; i++) 24 obj = Object.create(obj); 25 assertEq(obj.foo, "bar"); 26 27 // Chain of transparent proxy wrappers: same result. 28 obj = origObj; 29 for (var i = 0; i < 4; i++) 30 obj = new Proxy(obj, {}); 31 assertEq(obj.foo, "bar");