diff --git a/src/generators/identifier-names-generators/AbstractIdentifierNamesGenerator.ts b/src/generators/identifier-names-generators/AbstractIdentifierNamesGenerator.ts index 5b032088..329b7f41 100644 --- a/src/generators/identifier-names-generators/AbstractIdentifierNamesGenerator.ts +++ b/src/generators/identifier-names-generators/AbstractIdentifierNamesGenerator.ts @@ -14,7 +14,7 @@ export abstract class AbstractIdentifierNamesGenerator implements IIdentifierNam /** * @type {number} */ - private static readonly maxGenerationAttempts: number = 1000; + private static readonly maxGenerationAttempts: number = 10000; /** * @type {IOptions} diff --git a/src/generators/identifier-names-generators/MangledIdentifierNamesGenerator.ts b/src/generators/identifier-names-generators/MangledIdentifierNamesGenerator.ts index de3784ba..f76c71c9 100644 --- a/src/generators/identifier-names-generators/MangledIdentifierNamesGenerator.ts +++ b/src/generators/identifier-names-generators/MangledIdentifierNamesGenerator.ts @@ -282,14 +282,25 @@ export class MangledIdentifierNamesGenerator extends AbstractIdentifierNamesGene }; let identifierName: string = previousMangledName; - let isValidIdentifierName: boolean; - let attempts: number = 0; + let isValidIdentifierName: boolean = false; + let reservedNameAttempts: number = 0; do { - this.checkGenerationAttempts(attempts); identifierName = generateNewMangledName(identifierName); + + if ( + this.preservedNamesSet.has(identifierName) || + MangledIdentifierNamesGenerator.reservedNamesSet.has(identifierName) + ) { + continue; + } + isValidIdentifierName = validationFunction?.(identifierName) ?? this.isValidIdentifierName(identifierName); - attempts++; + + if (!isValidIdentifierName) { + this.checkGenerationAttempts(reservedNameAttempts); + reservedNameAttempts++; + } } while (!isValidIdentifierName); return identifierName;