michael@0: // -0 is treated as the same key as +0. michael@0: michael@0: var s = new Set; michael@0: s.add(-0); michael@0: assertEq(s.has(0), true); michael@0: assertEq(s.has(-0), true); michael@0: michael@0: assertEq(s.delete(0), true); michael@0: assertEq(s.has(-0), false); michael@0: assertEq(s.has(0), false); michael@0: michael@0: s.add(0); michael@0: assertEq(s.has(0), true); michael@0: assertEq(s.has(-0), true); michael@0: assertEq(s.delete(-0), true); michael@0: assertEq(s.has(-0), false); michael@0: assertEq(s.has(0), false); michael@0: michael@0: var m = new Map; michael@0: m.set(-0, 'x'); michael@0: assertEq(m.has(0), true); michael@0: assertEq(m.get(0), 'x'); michael@0: assertEq(m.has(-0), true); michael@0: assertEq(m.get(-0), 'x'); michael@0: michael@0: assertEq(m.delete(0), true); michael@0: assertEq(m.has(-0), false); michael@0: assertEq(m.get(-0), undefined); michael@0: assertEq(m.has(0), false); michael@0: assertEq(m.get(0), undefined); michael@0: michael@0: m.set(-0, 'x'); michael@0: m.set(0, 'y'); michael@0: assertEq(m.has(0), true); michael@0: assertEq(m.get(0), 'y'); michael@0: assertEq(m.has(-0), true); michael@0: assertEq(m.get(-0), 'y'); michael@0: michael@0: assertEq(m.delete(-0), true); michael@0: assertEq(m.has(0), false); michael@0: assertEq(m.get(0), undefined); michael@0: assertEq(m.has(-0), false); michael@0: assertEq(m.get(-0), undefined);