|
@@ -60,14 +60,16 @@ export class MangledIdentifierNamesGenerator extends AbstractIdentifierNamesGene
|
|
}
|
|
}
|
|
|
|
|
|
/**
|
|
/**
|
|
- * We can only ignore limited nameLength, it has no sense here
|
|
|
|
|
|
+ * Generates next name based on a global previous mangled name
|
|
|
|
+ * We can ignore nameLength parameter here, it hasn't sense with this generator
|
|
|
|
+ *
|
|
* @param {number} nameLength
|
|
* @param {number} nameLength
|
|
* @returns {string}
|
|
* @returns {string}
|
|
*/
|
|
*/
|
|
public generateNext (nameLength?: number): string {
|
|
public generateNext (nameLength?: number): string {
|
|
const identifierName: string = this.generateNewMangledName(this.previousMangledName);
|
|
const identifierName: string = this.generateNewMangledName(this.previousMangledName);
|
|
|
|
|
|
- this.previousMangledName = identifierName;
|
|
|
|
|
|
+ this.updatePreviousMangledName(identifierName);
|
|
this.preserveName(identifierName);
|
|
this.preserveName(identifierName);
|
|
|
|
|
|
return identifierName;
|
|
return identifierName;
|
|
@@ -84,7 +86,7 @@ export class MangledIdentifierNamesGenerator extends AbstractIdentifierNamesGene
|
|
const identifierName: string = this.generateNewMangledName(this.previousMangledName);
|
|
const identifierName: string = this.generateNewMangledName(this.previousMangledName);
|
|
const identifierNameWithPrefix: string = `${prefix}${identifierName}`;
|
|
const identifierNameWithPrefix: string = `${prefix}${identifierName}`;
|
|
|
|
|
|
- this.previousMangledName = identifierName;
|
|
|
|
|
|
+ this.updatePreviousMangledName(identifierName);
|
|
|
|
|
|
if (!this.isValidIdentifierName(identifierNameWithPrefix)) {
|
|
if (!this.isValidIdentifierName(identifierNameWithPrefix)) {
|
|
return this.generateForGlobalScope(nameLength);
|
|
return this.generateForGlobalScope(nameLength);
|
|
@@ -116,6 +118,7 @@ export class MangledIdentifierNamesGenerator extends AbstractIdentifierNamesGene
|
|
|
|
|
|
MangledIdentifierNamesGenerator.lastMangledNameInScopeMap.set(lexicalScopeNode, identifierName);
|
|
MangledIdentifierNamesGenerator.lastMangledNameInScopeMap.set(lexicalScopeNode, identifierName);
|
|
|
|
|
|
|
|
+ this.updatePreviousMangledName(identifierName);
|
|
this.preserveNameForLexicalScope(identifierName, lexicalScopeNode);
|
|
this.preserveNameForLexicalScope(identifierName, lexicalScopeNode);
|
|
|
|
|
|
return identifierName;
|
|
return identifierName;
|
|
@@ -137,6 +140,13 @@ export class MangledIdentifierNamesGenerator extends AbstractIdentifierNamesGene
|
|
return MangledIdentifierNamesGenerator.nameSequence;
|
|
return MangledIdentifierNamesGenerator.nameSequence;
|
|
}
|
|
}
|
|
|
|
|
|
|
|
+ /**
|
|
|
|
+ * @param {string} name
|
|
|
|
+ */
|
|
|
|
+ protected updatePreviousMangledName (name: string): void {
|
|
|
|
+ this.previousMangledName = name;
|
|
|
|
+ }
|
|
|
|
+
|
|
/**
|
|
/**
|
|
* @param {string} previousMangledName
|
|
* @param {string} previousMangledName
|
|
* @returns {string}
|
|
* @returns {string}
|