| // Forward to the target if the trap is not defined |
| var objAB = Object.create(null, { |
| a: { |
| enumerable: true, |
| configurable: true |
| }, |
| b: { |
| enumerable: false, |
| configurable: true |
| } |
| }); |
| |
| var objCD = Object.create(objAB, { |
| c: { |
| enumerable: true, |
| configurable: true |
| }, |
| d: { |
| enumerable: false, |
| configurable: true |
| } |
| }); |
| |
| objCD[Symbol("moon")] = "something"; |
| for (let p of [new Proxy(objCD, {}), Proxy.revocable(objCD, {}).proxy]) { |
| var names = Object.getOwnPropertyNames(p); |
| assertEq(names.length, 2); |
| assertEq(names[0], 'c'); |
| assertEq(names[1], 'd'); |
| } |