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 Map'; 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 m = new Map(); michael@0: m.set(key, 17); michael@0: assertEq(m.get(key), 17); michael@0: assertEq(m.get(-key), 17); michael@0: assertEq(m.get(NaN), 17); michael@0: michael@0: m.delete(-key); michael@0: assertEq(m.has(key), false); michael@0: assertEq(m.has(-key), false); michael@0: assertEq(m.has(NaN), false); michael@0: michael@0: m.set(-key, 17); michael@0: assertEq(m.get(key), 17); michael@0: assertEq(m.get(-key), 17); michael@0: assertEq(m.get(NaN), 17); michael@0: michael@0: m.delete(NaN); michael@0: assertEq(m.has(key), false); michael@0: assertEq(m.has(-key), false); michael@0: assertEq(m.has(NaN), false); michael@0: michael@0: m.set(NaN, 17); michael@0: assertEq(m.get(key), 17); michael@0: assertEq(m.get(-key), 17); michael@0: assertEq(m.get(NaN), 17); michael@0: michael@0: m.delete(key); michael@0: assertEq(m.has(key), false); michael@0: assertEq(m.has(-key), false); michael@0: assertEq(m.has(NaN), false); michael@0: michael@0: /******************************************************************************/ michael@0: michael@0: if (typeof reportCompare === "function") michael@0: reportCompare(true, true); michael@0: michael@0: print("Tests complete");