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