|
1 function getter() { return 1; } |
|
2 function setter() { } |
|
3 function getDescriptor(name) { |
|
4 if (name != 'prop') |
|
5 throw "Unknown property: " + name; |
|
6 return { configurable: true, enumerable: true, get: getter, set: setter }; |
|
7 } |
|
8 function getNames() { return ['prop']; } |
|
9 var handler = { |
|
10 getOwnPropertyDescriptor: getDescriptor, |
|
11 getPropertyDescriptor: getDescriptor, |
|
12 getOwnPropertyNames: getNames, |
|
13 getPropertyNames: getNames, |
|
14 defineProperty: function() {}, |
|
15 delete: function() {} |
|
16 }; |
|
17 |
|
18 // Make sure that __lookup{Getter,Setter}__ works on proxies. |
|
19 var proxy = Proxy.create(handler); |
|
20 assertEq(Object.prototype.__lookupGetter__.call(proxy, 'prop'), getter); |
|
21 assertEq(Object.prototype.__lookupSetter__.call(proxy, 'prop'), setter); |