Test case details

Preparation Code

<script> var i, values = [], sum = 0; for (i = 0; i < 10000; i++) { values[i] = i; } function add(val) { sum += val; } Array.prototype.forEach2 = function (func) { for (var i = 0, count = this.length; i < count; i++) { func.call(this, this[i]); } }; </script>

Test cases

Test #1

values.forEach(add);

Test #2

for (i = 0; i < values.length; i++) { add(values[i]); }

Test #3

var len = values.length; for (i = 0; i < len; i++) { add(values[i]); }

Test #4

for (i = values.length - 1; i >= 0; i--) { add(values[i]); }

Test #5

(function() { for (var i = 0, count = values.length; i < count; i++) { add(values[i]); } })();

Test #6

values.forEach2(add);

Test #7

for (i = 0; i < values.length; i++) { (function(i) { add(values[i]); })(i) }