michael@0: /* michael@0: * Any copyright is dedicated to the Public Domain. michael@0: * http://creativecommons.org/licenses/publicdomain/ michael@0: */ michael@0: michael@0: //----------------------------------------------------------------------------- michael@0: var BUGNUMBER = 722260; michael@0: var summary = 'All NaNs must be treated as identical keys for Set'; michael@0: michael@0: print(BUGNUMBER + ": " + summary); michael@0: michael@0: /************** michael@0: * BEGIN TEST * michael@0: **************/ michael@0: michael@0: /* Avoid constant-folding that would happen were |undefined| to be used. */ michael@0: var key = -/a/g.missingProperty; michael@0: michael@0: var s = new Set(); michael@0: s.add(key, 17); michael@0: assertEq(s.has(key), true); michael@0: assertEq(s.has(-key), true); michael@0: assertEq(s.has(NaN), true); michael@0: michael@0: s.delete(-key); michael@0: assertEq(s.has(key), false); michael@0: assertEq(s.has(-key), false); michael@0: assertEq(s.has(NaN), false); michael@0: michael@0: s.add(-key, 17); michael@0: assertEq(s.has(key), true); michael@0: assertEq(s.has(-key), true); michael@0: assertEq(s.has(NaN), true); michael@0: michael@0: s.delete(NaN); michael@0: assertEq(s.has(key), false); michael@0: assertEq(s.has(-key), false); michael@0: assertEq(s.has(NaN), false); michael@0: michael@0: s.add(NaN, 17); michael@0: assertEq(s.has(key), true); michael@0: assertEq(s.has(-key), true); michael@0: assertEq(s.has(NaN), true); michael@0: michael@0: s.delete(key); michael@0: assertEq(s.has(key), false); michael@0: assertEq(s.has(-key), false); michael@0: assertEq(s.has(NaN), false); michael@0: michael@0: michael@0: /******************************************************************************/ michael@0: michael@0: if (typeof reportCompare === "function") michael@0: reportCompare(true, true); michael@0: michael@0: print("Tests complete");