diff -r 000000000000 -r 6474c204b198 js/src/jit-test/tests/proxy/testDirectProxyGetOwnPropertyNames8.js --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/js/src/jit-test/tests/proxy/testDirectProxyGetOwnPropertyNames8.js Wed Dec 31 06:09:35 2014 +0100 @@ -0,0 +1,39 @@ +// Return the names returned by the trap +var target = {}; +Object.defineProperty(target, 'foo', { + configurable: true +}); +var names = Object.getOwnPropertyNames(new Proxy(target, { + getOwnPropertyNames : function (target) { + return [ 'bar' ]; + } +})); +assertEq(names.length, 1); +assertEq(names[0], 'bar'); + +var names = Object.getOwnPropertyNames(new Proxy(Object.create(Object.create(null, { + a: { + enumerable: true, + configurable: true + }, + b: { + enumerable: false, + configurable: true + } +}), { + c: { + enumerable: true, + configurable: true + }, + d: { + enumerable: false, + configurable: true + } +}), { + getOwnPropertyNames: function (target) { + return [ 'c', 'e' ]; + } +})); +assertEq(names.length, 2); +assertEq(names[0], 'c'); +assertEq(names[1], 'e');