Test case details

Preparation Code

<script>   var i, values = [],       sum = 0;     /* I think 1000 is a more realistic value than 10000.   */     for (i = 0; i < 1000; i++) {    values[i] = i;   }       /* if the sum is bigger than 1000 it will be set to 0   ** ´cause the value should not be bigger on on the beginning   ** of a test as at the beginning of another test before.   */     function add(val) {    sum == 1000 ? (sum = 0) : (sum += val);   } </script>

Test cases

Test #1

values.forEach(add);

Test #2

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

Test #3

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

Test #4

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

Test #5

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

Test #6

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

Test #7

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

Test #8

for (var len = values.length - 1, i = 0; i != len; i++) {  sum += values[i]; }

Test #9

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

Test #10

var i = values.length; while (--i >= 0) {  sum += values[i]; }

Test #11

var i = values.length + 0; while (i-- != -1) {  sum += values[i]; }

Test #12

var i = values.length; while (--i >= 0) {  add.call(values, values[i], i, values); }

Test #13

var i = values.length; while (i-- >= 0) {  add.call(values, values[i], i, values); }

Test #14

var l = values.length; var i = 0; while (i++ <= l) {  sum += values[i]; }

Test #15

var l = values.length - 1,     i = 0; while (i++ != l) {  sum += values[i]; }

Test #16

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

Test #17

var i = values.length; while (i) {  sum += values[--i]; }

Test #18

for(var i=values.length;i;){     sum+=values[--i]; }

Test #19

var i = values.length; while (--i + 1) {  sum += values[i]; }