|
1 // Map.prototype.get and .has basically work |
|
2 var m = new Map; |
|
3 |
|
4 function rope() { |
|
5 var s = "s"; |
|
6 for (var i = 0; i < 16; i++) |
|
7 s += s; |
|
8 return s; |
|
9 } |
|
10 |
|
11 var keys = [undefined, null, true, false, |
|
12 0, 1, 65535, 65536, 2147483647, 2147483648, 4294967295, 4294967296, |
|
13 -1, -65536, -2147483648, |
|
14 0.5, Math.sqrt(81), Math.PI, |
|
15 Number.MAX_VALUE, -Number.MAX_VALUE, Number.MIN_VALUE, -Number.MIN_VALUE, |
|
16 NaN, Infinity, -Infinity, |
|
17 "", "\0", "a", "ab", "abcdefg", rope(), |
|
18 {}, [], /a*b/, Object.prototype, Object]; |
|
19 |
|
20 for (var i = 0; i < keys.length; i++) { |
|
21 // without being set |
|
22 var key = keys[i]; |
|
23 assertEq(m.has(key), false); |
|
24 assertEq(m.get(key), undefined); |
|
25 |
|
26 // after being set |
|
27 var v = {}; |
|
28 assertEq(m.set(key, v), undefined); |
|
29 assertEq(m.has(key), true); |
|
30 assertEq(m.get(key), v); |
|
31 |
|
32 // after being deleted |
|
33 assertEq(m.delete(key), true); |
|
34 assertEq(m.has(key), false); |
|
35 assertEq(m.get(key), undefined); |
|
36 |
|
37 m.set(key, v); |
|
38 } |
|
39 |
|
40 for (var i = 0; i < keys.length; i++) |
|
41 assertEq(m.has(keys[i]), true); |