// 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'); }