Еще трюк. В JS нельзя задать капасити, но можно сделать так:
let arr = new Array<i32>(capacity);
arr.length = 0;
arr.push(1)
assert(arr[0] == 1)
И это зарезервирует место. Будет меньше переаллокаций. В AS это хорошо работает. В V8 кстати тоже но только для канарейки. Для текущей версии особой разницы не заметил