From 768f59296d0a0c087ffbf4b03789a0e8760b608b Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Sampo=20Kivist=C3=B6?= Date: Thu, 24 Aug 2023 02:06:20 +0300 Subject: [PATCH] perf: reduce GC pressure by hoisting script target features object (#55484) Co-authored-by: Jake Bailey <5341706+jakebailey@users.noreply.github.com> --- src/compiler/utilities.ts | 9 +++++---- 1 file changed, 5 insertions(+), 4 deletions(-) diff --git a/src/compiler/utilities.ts b/src/compiler/utilities.ts index 2edd5b0243b..9a757e7e26a 100644 --- a/src/compiler/utilities.ts +++ b/src/compiler/utilities.ts @@ -386,6 +386,7 @@ import { mapDefined, MapLike, MemberName, + memoize, MetaProperty, MethodDeclaration, MethodSignature, @@ -1281,8 +1282,8 @@ export function getInternalEmitFlags(node: Node): InternalEmitFlags { export type ScriptTargetFeatures = ReadonlyMap>; /** @internal */ -export function getScriptTargetFeatures(): ScriptTargetFeatures { - return new Map(Object.entries({ +export const getScriptTargetFeatures = /* @__PURE__ */ memoize((): ScriptTargetFeatures => + new Map(Object.entries({ Array: new Map(Object.entries({ es2015: [ "find", @@ -1675,8 +1676,8 @@ export function getScriptTargetFeatures(): ScriptTargetFeatures { "cause", ], })), - })); -} + })) +); /** @internal */ export const enum GetLiteralTextFlags {