diff --git a/src/module.ts b/src/module.ts index 6ebe246108..72e6b12aaa 100644 --- a/src/module.ts +++ b/src/module.ts @@ -1462,7 +1462,7 @@ export class Module { value: ExpressionRef = 0 ): ExpressionRef { var numNames = names.length; - var strs = new Array(numNames); + var strs = new Array(numNames); for (let i = 0; i < numNames; ++i) { strs[i] = this.allocStringCached(names[i]); } @@ -1560,7 +1560,7 @@ export class Module { // catchBodies: ExpressionRef[] // ): ExpressionRef { // var numCatchEvents = catchEvents.length; - // var strs = new Array(numCatchEvents); + // var strs = new Array(numCatchEvents); // for (let i = 0; i < numCatchEvents; ++i) { // strs[i] = this.allocStringCached(catchEvents[i]); // } @@ -2022,7 +2022,7 @@ export class Module { ): void { var cStr = this.allocStringCached(name); var numNames = funcs.length; - var names = new Array(numNames); + var names = new Array(numNames); for (let i = 0; i < numNames; ++i) { names[i] = this.allocStringCached(funcs[i]); } @@ -2045,7 +2045,7 @@ export class Module { offset: ExpressionRef ): void { var numNames = funcs.length; - var names = new Array(numNames); + var names = new Array(numNames); for (let i = 0; i < numNames; ++i) { names[i] = this.allocStringCached(funcs[i]); } @@ -2177,7 +2177,7 @@ export class Module { runPasses(passes: string[], func: FunctionRef = 0): void { var numNames = passes.length; - var cStrs = new Array(numNames); + var cStrs = new Array(numNames); for (let i = 0; i < numNames; ++i) { cStrs[i] = allocString(passes[i]); } @@ -2329,6 +2329,9 @@ export class Module { if (optimizeLevel >= 3 || shrinkLevel >= 1) { passes.push("code-folding"); } + if (optimizeLevel > 1 && (this.getFeatures() & FeatureFlags.GC) != 0) { + passes.push("heap2local"); + } // precompute works best after global optimizations if (optimizeLevel >= 2 || shrinkLevel >= 1) { passes.push("precompute-propagate");