I don't miss this.
IMHO [].forEach just essentially expresses the same thing as a regular for loop, although in a more verbose and convoluted way that is also likely very inefficient because a JS compiler probably can't optimize away the function call per iteration, because of the very dynamic nature of JS. forEach probably has its use when you specifically need to call an existing function on each element, but I don't otherwise see the appeal.
https://stackoverflow.com/questions/9981607/array-foreach-ru...
We tested the normal loop vs. the clever loop. Performance-wise, the normal loop blew the doors off the clever loop.
When it comes to performance, lessons that apply to Rhino are unlikely to apply to more mainstream engines.
EDIT: That's not to say that everyone should use map and forEach all the time, just that your benchmarks are unlikely to be relevant to most JS devs outside of your specific use-case.
It seems for loops in your link can be slower because .length (a function in disguise) is repeatedly called. I do save .length when writing JS. .length calls has been hard to optimize and it can't hurt too much to cache it at the start of the loop.
Now it's good news if today's engines are able to optimize most of .forEach. The amount of optimization JS engines can do never ceases to amaze me and yes, any performance claim in JS needs to be constantly reviewed and checked at the time it is discussed.
You can't take a "probably" as gospel. Still, it was a bit lazy of me to not re-check, I guess being called out was warranted.