function shouldBe(actual, expected) | |
{ | |
if (actual !== expected) | |
throw new Error('bad value: ' + actual); | |
} | |
var keys = [ | |
"Cappuccino", | |
-0.0, | |
Symbol("Cocoa"), | |
42, | |
-42, | |
null, | |
undefined, | |
420.5, | |
0xffffffff, | |
0x80000000, | |
-1, | |
-2147483648, | |
{}, | |
[], | |
false, | |
true, | |
NaN, | |
]; | |
let i = 0; | |
let map = new Map(); | |
for (let key of keys) | |
map.set(key, i++); | |
function test(map, key) | |
{ | |
return map.get(key) + map.get(key); | |
} | |
noInline(test); | |
for (let i = 0; i < 1e4; ++i) { | |
let j = 0; | |
for (let key of keys) { | |
let result = j + j; | |
j++ | |
shouldBe(test(map, key), result); | |
} | |
} | |
shouldBe(test(map, 0.0), 2); |