Test case details

Preparation Code

<script> var i, values = [], sum = 0; for (i = 0; i < 10000; i++) { values[i] = i; } function add(val, index) { sum += val + index; } Array.prototype.CustomForEach = function(fn) { for (var i = 0, n = this.length; i < n; ++i) fn(this[i], i); }; Array.prototype.CustomForEachCacheRef = function(fn) { var a = this; for (var i = 0, n = a.length; i < n; ++i) fn(a[i], i); }; </script>

Test cases

Test #1

values.forEach(add);

Test #2

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

Test #3

values.CustomForEach(add);

Test #4

values.CustomForEachCacheRef(add);