Test case details

Preparation Code

o1 = [];     o2 = [];     o3 = [];         for (var i = 0; i < 100; i++) {       o1.push(i)       o2.push(i)       o3.push(i)     }     Object.freeze(o2);     Object.seal(o3);         function doAnything(x) { }

Test cases

Test #1

for(var key in o1) { doAnything(o1[key]) }

Test #2

for(var key in o2) { doAnything(o2[key]) }

Test #3

for(var key in o3) { doAnything(o3[key]) }

Test #4

for (var i = 0; i < o2.length; i++) {   doAnything(o2[i]); }

Test #5

for (var i = 0; i < o1.length; i++) {   doAnything(o1[i]); }