From 2f7e0dc5dd777b599d52cd479a750d42910da5ef Mon Sep 17 00:00:00 2001 From: Armando Aguirre Date: Mon, 16 Apr 2018 13:36:03 -0700 Subject: [PATCH] Refactored getSupportedExtension to only copy array when necessary --- src/compiler/core.ts | 13 +++++++------ 1 file changed, 7 insertions(+), 6 deletions(-) diff --git a/src/compiler/core.ts b/src/compiler/core.ts index 78e308761c8..2ca3b89db3b 100644 --- a/src/compiler/core.ts +++ b/src/compiler/core.ts @@ -2668,15 +2668,16 @@ namespace ts { export function getSupportedExtensions(options?: CompilerOptions, extraFileExtensions?: ReadonlyArray): ReadonlyArray { const needJsExtensions = options && options.allowJs; - let extensions: string[] = needJsExtensions ? [...allSupportedExtensions] : [...supportedTypeScriptExtensions]; - if (extraFileExtensions) { - extensions = [ - ...extensions, - ...extraFileExtensions.filter(x => x.scriptKind === ScriptKind.Deferred || needJsExtensions && isJavaScriptLike(x.scriptKind)).map(x => x.extension), - ]; + if (!extraFileExtensions || extraFileExtensions.length === 0) { + return needJsExtensions ? allSupportedExtensions : supportedTypeScriptExtensions; } + const extensions = [ + ...needJsExtensions ? allSupportedExtensions : supportedTypeScriptExtensions, + ...extraFileExtensions.filter(x => x.scriptKind === ScriptKind.Deferred || needJsExtensions && isJavaScriptLike(x.scriptKind)).map(x => x.extension) + ]; + return deduplicate(extensions, equateStringsCaseSensitive, compareStringsCaseSensitive); }