diff -r 000000000000 -r 6474c204b198 js/src/jit-test/tests/proxy/testDirectProxyGetOwnPropertyDescriptor10.js --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/js/src/jit-test/tests/proxy/testDirectProxyGetOwnPropertyDescriptor10.js Wed Dec 31 06:09:35 2014 +0100 @@ -0,0 +1,36 @@ +// Return the descriptor returned by the trap +var target = {}; +Object.defineProperty(target, 'foo', { + value: 'bar', + writable: true, + enumerable: false, + configurable: true +}); +var desc = { + value: 'baz', + writable: false, + enumerable: true, + configurable: true +}; +var desc1 = Object.getOwnPropertyDescriptor(new Proxy(target, { + getOwnPropertyDescriptor: function (target, name) { + return desc; + } +}), 'foo'); +assertEq(desc1 == desc, false); +assertEq(desc1.value, 'baz'); +assertEq(desc1.writable, false); +assertEq(desc1.enumerable, true); +assertEq(desc1.configurable, true); + +var desc = {}; +var desc1 = Object.getOwnPropertyDescriptor(new Proxy(target, { + getOwnPropertyDescriptor: function (target, name) { + return desc; + } +}), 'foo'); +assertEq(desc1 == desc, false); +assertEq(desc1.value, undefined); +assertEq(desc1.writable, false); +assertEq(desc1.enumerable, false); +assertEq(desc1.configurable, false);