perf: don't create holey arrays (#32155)

Don't use `Array` constructor with the size value (ex. `new Array(5)`) - this will create a `HOLEY_ELEMENTS` array (even if this array is filled in later on!);

https://v8.dev/blog/elements-kinds
https://stackoverflow.com/questions/32054170/how-to-resize-an-array

PR Close #32155
This commit is contained in:
Miško Hevery
2019-08-15 13:42:17 -07:00
committed by Andrew Kushnir
parent c957dfc167
commit 64770571b2
32 changed files with 137 additions and 83 deletions

View File

@ -436,7 +436,7 @@ export class AstTransformer implements AstVisitor {
}
visitAll(asts: any[]): any[] {
const res = new Array(asts.length);
const res = [];
for (let i = 0; i < asts.length; ++i) {
res[i] = asts[i].visit(this);
}
@ -598,7 +598,7 @@ export class AstMemoryEfficientTransformer implements AstVisitor {
}
visitAll(asts: any[]): any[] {
const res = new Array(asts.length);
const res = [];
let modified = false;
for (let i = 0; i < asts.length; ++i) {
const original = asts[i];