Moved ScopeThroughIdentifiersTransformer to the obfuscation transformers

This commit is contained in:
sanex
2020-08-18 14:09:13 +03:00
parent 0f2f0c2c34
commit 3970513a64
7 changed files with 11 additions and 17 deletions
@@ -6,15 +6,10 @@ import { INodeTransformer } from '../../../interfaces/node-transformers/INodeTra
import { NodeTransformer } from '../../../enums/node-transformers/NodeTransformer';
import { DeadCodeInjectionTransformer } from '../../../node-transformers/dead-code-injection-transformers/DeadCodeInjectionTransformer';
import { ScopeThroughIdentifiersTransformer } from '../../../node-transformers/dead-code-injection-transformers/ScopeThroughIdentifiersTransformer';
export const deadCodeInjectionTransformersModule: interfaces.ContainerModule = new ContainerModule((bind: interfaces.Bind) => {
// dead code injection
bind<INodeTransformer>(ServiceIdentifiers.INodeTransformer)
.to(DeadCodeInjectionTransformer)
.whenTargetNamed(NodeTransformer.DeadCodeInjectionTransformer);
bind<INodeTransformer>(ServiceIdentifiers.INodeTransformer)
.to(ScopeThroughIdentifiersTransformer)
.whenTargetNamed(NodeTransformer.ScopeThroughIdentifiersTransformer);
});
@@ -17,6 +17,7 @@ import { LiteralTransformer } from '../../../node-transformers/obfuscating-trans
import { NumberLiteralObfuscatingReplacer } from '../../../node-transformers/obfuscating-transformers/obfuscating-replacers/literal-obfuscating-replacers/NumberLiteralObfuscatingReplacer';
import { StringLiteralObfuscatingReplacer } from '../../../node-transformers/obfuscating-transformers/obfuscating-replacers/literal-obfuscating-replacers/StringLiteralObfuscatingReplacer';
import { ScopeIdentifiersTransformer } from '../../../node-transformers/obfuscating-transformers/ScopeIdentifiersTransformer';
import { ScopeThroughIdentifiersTransformer } from '../../../node-transformers/obfuscating-transformers/ScopeThroughIdentifiersTransformer';
export const obfuscatingTransformersModule: interfaces.ContainerModule = new ContainerModule((bind: interfaces.Bind) => {
// obfuscating transformers
@@ -32,6 +33,10 @@ export const obfuscatingTransformersModule: interfaces.ContainerModule = new Con
.to(ScopeIdentifiersTransformer)
.whenTargetNamed(NodeTransformer.ScopeIdentifiersTransformer);
bind<INodeTransformer>(ServiceIdentifiers.INodeTransformer)
.to(ScopeThroughIdentifiersTransformer)
.whenTargetNamed(NodeTransformer.ScopeThroughIdentifiersTransformer);
// literal obfuscating replacers
bind<IObfuscatingReplacer>(ServiceIdentifiers.IObfuscatingReplacer)
.to(BooleanLiteralObfuscatingReplacer)
@@ -363,12 +363,6 @@ export class DeadCodeInjectionTransformer extends AbstractNodeTransformer {
NodeUtils.parentizeAst(hostNode);
NodeUtils.parentizeNode(hostNode, hostNode);
this.transformersRunner.transform(
hostNode,
DeadCodeInjectionTransformer.transformersToRenameBlockScopeIdentifiers,
NodeTransformationStage.DeadCodeInjection
);
this.transformersRunner.transform(
hostNode,
DeadCodeInjectionTransformer.transformersToRenameBlockScopeIdentifiers,
@@ -21,7 +21,7 @@ import { AbstractNodeTransformer } from '../AbstractNodeTransformer';
import { NodeGuards } from '../../node/NodeGuards';
/**
* Renames all through identifiers for Dead Code Injection
* Renames all through identifiers. Now used directly from Dead Code Injection transformer
*/
@injectable()
export class ScopeThroughIdentifiersTransformer extends AbstractNodeTransformer {
@@ -62,7 +62,7 @@ export class ScopeThroughIdentifiersTransformer extends AbstractNodeTransformer
*/
public getVisitor (nodeTransformationStage: NodeTransformationStage): IVisitor | null {
switch (nodeTransformationStage) {
case NodeTransformationStage.DeadCodeInjection:
case NodeTransformationStage.Obfuscating:
return {
enter: (node: ESTree.Node, parentNode: ESTree.Node | null): ESTree.Node | undefined => {
if (parentNode && NodeGuards.isProgramNode(node)) {