Improved rotateStringArray option WIP

This commit is contained in:
sanex
2020-12-27 14:14:50 +03:00
parent 2546b27c09
commit efac711ce4
24 changed files with 36811 additions and 272 deletions
@@ -26,6 +26,7 @@ import { IStringArrayStorageItemData } from '../../interfaces/storages/string-ar
import { IVisitedLexicalScopeNodesStackStorage } from '../../interfaces/storages/string-array-transformers/IVisitedLexicalScopeNodesStackStorage';
import { IVisitor } from '../../interfaces/node-transformers/IVisitor';
import { NodeTransformer } from '../../enums/node-transformers/NodeTransformer';
import { NodeTransformationStage } from '../../enums/node-transformers/NodeTransformationStage';
import { StringArrayCustomNode } from '../../enums/custom-nodes/StringArrayCustomNode';
import { StringArrayWrappersType } from '../../enums/node-transformers/string-array-transformers/StringArrayWrappersType';
@@ -49,6 +50,13 @@ export class StringArrayTransformer extends AbstractNodeTransformer {
*/
private static readonly maxShiftedIndexValue: number = 1000;
/**
* @type {NodeTransformer[]}
*/
public readonly runAfter: NodeTransformer[] = [
NodeTransformer.StringArrayRotateFunctionTransformer
];
/**
* @type {IIdentifierNamesGenerator}
@@ -158,7 +166,9 @@ export class StringArrayTransformer extends AbstractNodeTransformer {
* @param {Program} programNode
*/
public prepareNode (programNode: ESTree.Program): void {
this.stringArrayStorageAnalyzer.analyze(programNode);
if (this.options.stringArray) {
this.stringArrayStorageAnalyzer.analyze(programNode);
}
if (this.options.shuffleStringArray) {
this.stringArrayStorage.shuffleStorage();