Os JITers modernos de JavaScript precisam de cache de tamanho de matriz em loop

Acho a prática de colocar em cache o @ de uma matrlength propriedade dentro de umfor loop bastante desagradável. Como em

for (var i = 0, l = myArray.length; i < l; ++i) {
    // ...
}

Aos meus olhos, pelo menos, isso prejudica muito a legibilidade em comparação com o simples

for (var i = 0; i < myArray.length; ++i) {
    // ...
}

(sem mencionar que ela vaza outra variável na função circundante devido à natureza do escopo lexical e da elevação.)

Eu gostaria de poder dizer a qualquer um que faça isso "não se incomode; os JS JITers modernos otimizam esse truque." Obviamente, não é uma otimização trivial, pois você poderia, por exemplo. modificar o array enquanto ele está sendo repetido, mas acho que, considerando todas as coisas loucas que ouvi sobre os JITers e seus truques de análise de tempo de execução, eles já teriam chegado a isso agora.

Alguém tem provas de uma maneira ou de outra?

E sim, eu também gostaria que bastasse dizer "isso é uma micro-otimização; não faça isso até você criar um perfil". Mas nem todos ouvem esse tipo de razão, especialmente quando se torna um hábito armazenar em cache o tamanho e eles acabam fazendo isso automaticamente, quase como uma opção de estil

questionAnswers(3)

yourAnswerToTheQuestion