michael@0: // Any copyright is dedicated to the Public Domain. michael@0: // http://creativecommons.org/licenses/publicdomain/ michael@0: michael@0: //----------------------------------------------------------------------------- michael@0: var BUGNUMBER = 580200; michael@0: var summary = michael@0: 'Assertion failure enumerating own properties of proxy returning ' + michael@0: 'duplicated own property name'; michael@0: print(BUGNUMBER + ": " + summary); michael@0: michael@0: /************** michael@0: * BEGIN TEST * michael@0: **************/ michael@0: michael@0: var x = Proxy.create({ keys: function() { return ["0","0"]; } }, [1,2]); michael@0: var ax = Object.keys(x); michael@0: assertEq(ax.length, 1, "array: " + ax); michael@0: assertEq(ax[0], "0"); michael@0: michael@0: var p = Proxy.create({ keys: function() { return ["1","1"]; } }, null); michael@0: var ap = Object.keys(p); michael@0: assertEq(ap.length, 1, "array: " + ap); michael@0: assertEq(ap[0], "1"); michael@0: michael@0: var x = Proxy.create({ getOwnPropertyNames: function() { return ["0","0"]; } }, [1,2]); michael@0: var ax = Object.getOwnPropertyNames(x); michael@0: assertEq(ax.length, 1, "array: " + ax); michael@0: assertEq(ax[0], "0"); michael@0: michael@0: var p = Proxy.create({ getOwnPropertyNames: function() { return ["1","1"]; } }, null); michael@0: var ap = Object.getOwnPropertyNames(p); michael@0: assertEq(ap.length, 1, "array: " + ap); michael@0: assertEq(ap[0], "1"); michael@0: michael@0: /******************************************************************************/ michael@0: michael@0: if (typeof reportCompare === "function") michael@0: reportCompare(true, true); michael@0: michael@0: print("All tests passed!");