key-equality-0.js (927B)
1 // -0 is treated as the same key as +0. 2 3 var s = new Set; 4 s.add(-0); 5 assertEq(s.has(0), true); 6 assertEq(s.has(-0), true); 7 8 assertEq(s.delete(0), true); 9 assertEq(s.has(-0), false); 10 assertEq(s.has(0), false); 11 12 s.add(0); 13 assertEq(s.has(0), true); 14 assertEq(s.has(-0), true); 15 assertEq(s.delete(-0), true); 16 assertEq(s.has(-0), false); 17 assertEq(s.has(0), false); 18 19 var m = new Map; 20 m.set(-0, 'x'); 21 assertEq(m.has(0), true); 22 assertEq(m.get(0), 'x'); 23 assertEq(m.has(-0), true); 24 assertEq(m.get(-0), 'x'); 25 26 assertEq(m.delete(0), true); 27 assertEq(m.has(-0), false); 28 assertEq(m.get(-0), undefined); 29 assertEq(m.has(0), false); 30 assertEq(m.get(0), undefined); 31 32 m.set(-0, 'x'); 33 m.set(0, 'y'); 34 assertEq(m.has(0), true); 35 assertEq(m.get(0), 'y'); 36 assertEq(m.has(-0), true); 37 assertEq(m.get(-0), 'y'); 38 39 assertEq(m.delete(-0), true); 40 assertEq(m.has(0), false); 41 assertEq(m.get(0), undefined); 42 assertEq(m.has(-0), false); 43 assertEq(m.get(-0), undefined);