Test case details

Preparation Code

var map = new Map(),         obj1 = Object.create(null),         obj2 = {};         for (var i=0; i < 1000; i++) {        var key = Math.random(), val = Math.random();                map.set(key,val);        obj1[key] = val;        obj2[key] = val;     }

Test cases

Test #1

for ( key in obj1 ) {     obj1[key]; }

Test #2

for ( key in obj2 ) {     obj2[key]; }

Test #3

val = map.keys(); for ( key in val ) {     map[key]; }

Test #4

val = map.values(); for ( key of val ) {     key; }

Test #5

for ( key,val of map ) {     val; }