Map-get.js (1116B)
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), m); 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);