From e6d70d85b0f6784705669d96807d91bd16703d8b Mon Sep 17 00:00:00 2001 From: dnalborczyk Date: Sat, 11 Dec 2021 00:58:54 -0500 Subject: [PATCH] refactor: use set for reserved words (#4298) --- src/utils/exportNames.ts | 2 +- src/utils/generateCodeSnippets.ts | 2 +- src/utils/reservedNames.ts | 106 ++++++++++++++---------------- src/utils/safeName.ts | 2 +- 4 files changed, 53 insertions(+), 59 deletions(-) diff --git a/src/utils/exportNames.ts b/src/utils/exportNames.ts index d36f431652d..d6f27ac6ad7 100644 --- a/src/utils/exportNames.ts +++ b/src/utils/exportNames.ts @@ -18,7 +18,7 @@ export function assignExportsToMangledNames( nameIndex += 9 * 64 ** (exportName.length - 1); exportName = toBase64(nameIndex); } - } while (RESERVED_NAMES[exportName] || exportsByName[exportName]); + } while (RESERVED_NAMES.has(exportName) || exportsByName[exportName]); } exportsByName[exportName] = variable; exportNamesByVariable.set(variable, [exportName]); diff --git a/src/utils/generateCodeSnippets.ts b/src/utils/generateCodeSnippets.ts index d6142c8e08e..38bc11f01d1 100644 --- a/src/utils/generateCodeSnippets.ts +++ b/src/utils/generateCodeSnippets.ts @@ -79,7 +79,7 @@ export function getGenerateCodeSnippets({ const isValidPropName = reservedNamesAsProps ? (name: string): boolean => validPropName.test(name) - : (name: string): boolean => !RESERVED_NAMES[name] && validPropName.test(name); + : (name: string): boolean => !RESERVED_NAMES.has(name) && validPropName.test(name); return { _, diff --git a/src/utils/reservedNames.ts b/src/utils/reservedNames.ts index 51f8e1843bb..b790e142c24 100644 --- a/src/utils/reservedNames.ts +++ b/src/utils/reservedNames.ts @@ -1,56 +1,50 @@ -export interface NameCollection { - [name: string]: true | null; - __proto__: null; -} - -export const RESERVED_NAMES: NameCollection = { - __proto__: null, - await: true, - break: true, - case: true, - catch: true, - class: true, - const: true, - continue: true, - debugger: true, - default: true, - delete: true, - do: true, - else: true, - enum: true, - eval: true, - export: true, - extends: true, - false: true, - finally: true, - for: true, - function: true, - if: true, - implements: true, - import: true, - in: true, - instanceof: true, - interface: true, - let: true, - new: true, - null: true, - package: true, - private: true, - protected: true, - public: true, - return: true, - static: true, - super: true, - switch: true, - this: true, - throw: true, - true: true, - try: true, - typeof: true, - undefined: true, - var: true, - void: true, - while: true, - with: true, - yield: true -}; +export const RESERVED_NAMES = new Set([ + 'await', + 'break', + 'case', + 'catch', + 'class', + 'const', + 'continue', + 'debugger', + 'default', + 'delete', + 'do', + 'else', + 'enum', + 'eval', + 'export', + 'extends', + 'false', + 'finally', + 'for', + 'function', + 'if', + 'implements', + 'import', + 'in', + 'instanceof', + 'interface', + 'let', + 'new', + 'null', + 'package', + 'private', + 'protected', + 'public', + 'return', + 'static', + 'super', + 'switch', + 'this', + 'throw', + 'true', + 'try', + 'typeof', + 'undefined', + 'var', + 'void', + 'while', + 'with', + 'yield' +]); diff --git a/src/utils/safeName.ts b/src/utils/safeName.ts index 94644da71ae..fb54ed965eb 100644 --- a/src/utils/safeName.ts +++ b/src/utils/safeName.ts @@ -4,7 +4,7 @@ import { RESERVED_NAMES } from './reservedNames'; export function getSafeName(baseName: string, usedNames: Set): string { let safeName = baseName; let count = 1; - while (usedNames.has(safeName) || RESERVED_NAMES[safeName]) { + while (usedNames.has(safeName) || RESERVED_NAMES.has(safeName)) { safeName = `${baseName}$${toBase64(count++)}`; } usedNames.add(safeName);