michael@0: // Forward to the target if the trap is not defined michael@0: var target = {}; michael@0: Object.defineProperty(target, 'foo', { michael@0: value: 'bar', michael@0: writable: true, michael@0: enumerable: false, michael@0: configurable: true michael@0: }); michael@0: var desc = Object.getOwnPropertyDescriptor(Proxy(target, {}), 'foo'); michael@0: assertEq(desc.value, 'bar'); michael@0: assertEq(desc.writable, true); michael@0: assertEq(desc.enumerable, false); michael@0: assertEq(desc.configurable, true); michael@0: michael@0: var proto = {}; michael@0: Object.defineProperty(proto, 'foo', { michael@0: value: 'bar', michael@0: writable: true, michael@0: enumerable: false, michael@0: configurable: true michael@0: }); michael@0: var target = Object.create(proto); michael@0: assertEq(Object.getOwnPropertyDescriptor(Proxy(target, {}), 'foo'), undefined);