From 8e131e055e0d101fd564b744e5d6fdf0e8bb7e87 Mon Sep 17 00:00:00 2001 From: Daniel Rosenwasser Date: Wed, 6 Sep 2017 14:15:46 -0700 Subject: [PATCH] Pre-allocate the appropriate number of elements in calls to 'map' and 'sameMap'. --- src/compiler/core.ts | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/src/compiler/core.ts b/src/compiler/core.ts index 20f757c3df8..3293e9cef22 100644 --- a/src/compiler/core.ts +++ b/src/compiler/core.ts @@ -379,9 +379,9 @@ namespace ts { export function map(array: ReadonlyArray, f: (x: T, i: number) => U): U[] { let result: U[]; if (array) { - result = []; + result = Array(array.length); for (let i = 0; i < array.length; i++) { - result.push(f(array[i], i)); + result[i] = f(array[i], i); } } return result; @@ -395,14 +395,14 @@ namespace ts { if (array) { for (let i = 0; i < array.length; i++) { if (result) { - result.push(f(array[i], i)); + result[i] = f(array[i], i); } else { const item = array[i]; const mapped = f(item, i); if (item !== mapped) { - result = array.slice(0, i); - result.push(mapped); + result = array.slice(); + result[i] = mapped; } } }