mirror of
https://github.com/javascript-obfuscator/javascript-obfuscator
synced 2026-08-09 12:42:29 +00:00
Few optimisations
This commit is contained in:
Vendored
+1
-1
File diff suppressed because one or more lines are too long
@@ -63,14 +63,18 @@ export class TransformersRunner implements ITransformersRunner {
|
||||
}
|
||||
|
||||
if (visitor.enter) {
|
||||
enterVisitors.push(visitor);
|
||||
enterVisitors.push({ enter: visitor.enter });
|
||||
}
|
||||
|
||||
if (visitor.leave) {
|
||||
leaveVisitors.push(visitor);
|
||||
leaveVisitors.push({ leave: visitor.leave });
|
||||
}
|
||||
}
|
||||
|
||||
if (!enterVisitors.length && !leaveVisitors.length) {
|
||||
return astTree;
|
||||
}
|
||||
|
||||
estraverse.replace(astTree, {
|
||||
enter: this.mergeVisitorsForDirection(enterVisitors, VisitorDirection.Enter),
|
||||
leave: this.mergeVisitorsForDirection(leaveVisitors, VisitorDirection.Leave)
|
||||
|
||||
+6
-2
@@ -39,9 +39,9 @@ export class DeadCodeInjectionTransformer extends AbstractNodeTransformer {
|
||||
private static readonly minCollectedBlockStatementsCount: number = 5;
|
||||
|
||||
/**
|
||||
* @type {WeakSet <BlockStatement>}
|
||||
* @type {Set <BlockStatement>}
|
||||
*/
|
||||
private readonly deadCodeInjectionRootAstHostNodeSet: WeakSet <ESTree.BlockStatement> = new WeakSet();
|
||||
private readonly deadCodeInjectionRootAstHostNodeSet: Set <ESTree.BlockStatement> = new Set();
|
||||
|
||||
/**
|
||||
* @type {ESTree.BlockStatement[]}
|
||||
@@ -135,6 +135,10 @@ export class DeadCodeInjectionTransformer extends AbstractNodeTransformer {
|
||||
};
|
||||
|
||||
case TransformationStage.Finalizing:
|
||||
if (!this.deadCodeInjectionRootAstHostNodeSet.size) {
|
||||
return null;
|
||||
}
|
||||
|
||||
return {
|
||||
enter: (node: ESTree.Node, parentNode: ESTree.Node | null) => {
|
||||
if (parentNode && this.isDeadCodeInjectionRootAstHostNode(node)) {
|
||||
|
||||
@@ -20,9 +20,9 @@ import { NodeUtils } from '../../node/NodeUtils';
|
||||
@injectable()
|
||||
export class EvalCallExpressionTransformer extends AbstractNodeTransformer {
|
||||
/**
|
||||
* @type {WeakSet <FunctionExpression>}
|
||||
* @type {Set <FunctionExpression>}
|
||||
*/
|
||||
private readonly evalRootAstHostNodeSet: WeakSet <ESTree.FunctionExpression> = new WeakSet();
|
||||
private readonly evalRootAstHostNodeSet: Set <ESTree.FunctionExpression> = new Set();
|
||||
|
||||
/**
|
||||
* @param {IRandomGenerator} randomGenerator
|
||||
@@ -97,6 +97,10 @@ export class EvalCallExpressionTransformer extends AbstractNodeTransformer {
|
||||
};
|
||||
|
||||
case TransformationStage.Finalizing:
|
||||
if (!this.evalRootAstHostNodeSet.size) {
|
||||
return null;
|
||||
}
|
||||
|
||||
return {
|
||||
leave: (node: ESTree.Node, parentNode: ESTree.Node | null) => {
|
||||
if (parentNode && this.isEvalRootAstHostNode(node)) {
|
||||
|
||||
Reference in New Issue
Block a user