소스 검색

ObfuscatingTransformer's optimisations

sanex3339 8 년 전
부모
커밋
3a841cab56

+ 19 - 16
dist/index.js

@@ -5615,11 +5615,11 @@ var CatchClauseTransformer = function (_AbstractNodeTransfor) {
                 enter: function enter(node, parentNode) {
                     if (Node_1.Node.isReplaceableIdentifierNode(node, parentNode)) {
                         var newIdentifier = _this3.identifierReplacer.replace(node.name, nodeIdentifier);
-                        if (node.name === newIdentifier.name) {
-                            return node;
+                        var newIdentifierName = newIdentifier.name;
+                        if (node.name !== newIdentifierName) {
+                            node.name = newIdentifierName;
+                            node.obfuscatedNode = true;
                         }
-                        newIdentifier.obfuscatedNode = true;
-                        return newIdentifier;
                     }
                 }
             });
@@ -5724,11 +5724,12 @@ var FunctionDeclarationTransformer = function (_AbstractNodeTransfor) {
                 enter: function enter(node, parentNode) {
                     if (Node_1.Node.isReplaceableIdentifierNode(node, parentNode)) {
                         var newIdentifier = _this4.identifierReplacer.replace(node.name, nodeIdentifier);
-                        if (node.name === newIdentifier.name) {
+                        var newIdentifierName = newIdentifier.name;
+                        if (node.name !== newIdentifierName) {
+                            node.name = newIdentifierName;
+                        } else {
                             storedReplaceableIdentifiers.push(node);
-                            return node;
                         }
-                        return newIdentifier;
                     }
                 }
             });
@@ -5828,15 +5829,15 @@ var FunctionTransformer = function (_AbstractNodeTransfor) {
                 enter: function enter(node, parentNode) {
                     if (Node_1.Node.isReplaceableIdentifierNode(node, parentNode)) {
                         var newIdentifier = _this4.identifierReplacer.replace(node.name, nodeIdentifier);
-                        if (node.name === newIdentifier.name) {
-                            return node;
+                        var newIdentifierName = newIdentifier.name;
+                        if (node.name !== newIdentifierName) {
+                            node.name = newIdentifierName;
+                            node.obfuscatedNode = true;
                         }
-                        newIdentifier.obfuscatedNode = true;
-                        return newIdentifier;
                     }
                 }
             };
-            functionNode.params = functionNode.params.map(function (paramsNode) {
+            functionNode.params.forEach(function (paramsNode) {
                 return estraverse.replace(paramsNode, replaceVisitor);
             });
             estraverse.replace(functionNode.body, replaceVisitor);
@@ -5917,7 +5918,8 @@ var LabeledStatementTransformer = function (_AbstractNodeTransfor) {
             estraverse.replace(labeledStatementNode, {
                 enter: function enter(node, parentNode) {
                     if (Node_1.Node.isLabelIdentifierNode(node, parentNode)) {
-                        return _this3.identifierReplacer.replace(node.name, nodeIdentifier);
+                        var newIdentifier = _this3.identifierReplacer.replace(node.name, nodeIdentifier);
+                        node.name = newIdentifier.name;
                     }
                 }
             });
@@ -6181,11 +6183,12 @@ var VariableDeclarationTransformer = function (_AbstractNodeTransfor) {
                 enter: function enter(node, parentNode) {
                     if (!node.obfuscatedNode && Node_1.Node.isReplaceableIdentifierNode(node, parentNode)) {
                         var newIdentifier = _this5.identifierReplacer.replace(node.name, nodeIdentifier);
-                        if (node.name === newIdentifier.name) {
+                        var newIdentifierName = newIdentifier.name;
+                        if (node.name !== newIdentifierName) {
+                            node.name = newIdentifierName;
+                        } else {
                             storedReplaceableIdentifiers.push(node);
-                            return node;
                         }
-                        return newIdentifier;
                     }
                 }
             });

+ 4 - 6
src/node-transformers/obfuscating-transformers/CatchClauseTransformer.ts

@@ -89,14 +89,12 @@ export class CatchClauseTransformer extends AbstractNodeTransformer {
             enter: (node: ESTree.Node, parentNode: ESTree.Node): any => {
                 if (Node.isReplaceableIdentifierNode(node, parentNode)) {
                     const newIdentifier: ESTree.Identifier = this.identifierReplacer.replace(node.name, nodeIdentifier);
+                    const newIdentifierName: string = newIdentifier.name;
 
-                    if (node.name === newIdentifier.name) {
-                        return node;
+                    if (node.name !== newIdentifierName) {
+                        node.name = newIdentifierName;
+                        node.obfuscatedNode = true;
                     }
-
-                    newIdentifier.obfuscatedNode = true;
-
-                    return newIdentifier;
                 }
             }
         });

+ 4 - 5
src/node-transformers/obfuscating-transformers/FunctionDeclarationTransformer.ts

@@ -124,14 +124,13 @@ export class FunctionDeclarationTransformer extends AbstractNodeTransformer {
             enter: (node: ESTree.Node, parentNode: ESTree.Node): any => {
                 if (Node.isReplaceableIdentifierNode(node, parentNode)) {
                     const newIdentifier: ESTree.Identifier = this.identifierReplacer.replace(node.name, nodeIdentifier);
+                    const newIdentifierName: string = newIdentifier.name;
 
-                    if (node.name === newIdentifier.name) {
+                    if (node.name !== newIdentifierName) {
+                        node.name = newIdentifierName;
+                    } else {
                         storedReplaceableIdentifiers.push(node);
-
-                        return node;
                     }
-
-                    return newIdentifier;
                 }
             }
         });

+ 5 - 9
src/node-transformers/obfuscating-transformers/FunctionTransformer.ts

@@ -110,21 +110,17 @@ export class FunctionTransformer extends AbstractNodeTransformer {
             enter: (node: ESTree.Node, parentNode: ESTree.Node): any => {
                 if (Node.isReplaceableIdentifierNode(node, parentNode)) {
                     const newIdentifier: ESTree.Identifier = this.identifierReplacer.replace(node.name, nodeIdentifier);
+                    const newIdentifierName: string = newIdentifier.name;
 
-                    if (node.name === newIdentifier.name) {
-                        return node;
+                    if (node.name !== newIdentifierName) {
+                        node.name = newIdentifierName;
+                        node.obfuscatedNode = true;
                     }
-
-                    newIdentifier.obfuscatedNode = true;
-
-                    return newIdentifier;
                 }
             }
         };
 
-        functionNode.params = functionNode.params.map((paramsNode: ESTree.Node) =>
-            <ESTree.Pattern>estraverse.replace(paramsNode, replaceVisitor)
-        );
+        functionNode.params.forEach((paramsNode: ESTree.Node) => estraverse.replace(paramsNode, replaceVisitor));
 
         estraverse.replace(functionNode.body, replaceVisitor);
     }

+ 3 - 1
src/node-transformers/obfuscating-transformers/LabeledStatementTransformer.ts

@@ -94,7 +94,9 @@ export class LabeledStatementTransformer extends AbstractNodeTransformer {
         estraverse.replace(labeledStatementNode, {
             enter: (node: ESTree.Node, parentNode: ESTree.Node): any => {
                 if (Node.isLabelIdentifierNode(node, parentNode)) {
-                    return this.identifierReplacer.replace(node.name, nodeIdentifier);
+                    const newIdentifier: ESTree.Identifier = this.identifierReplacer.replace(node.name, nodeIdentifier);
+
+                    node.name = newIdentifier.name;
                 }
             }
         });

+ 4 - 5
src/node-transformers/obfuscating-transformers/VariableDeclarationTransformer.ts

@@ -138,14 +138,13 @@ export class VariableDeclarationTransformer extends AbstractNodeTransformer {
             enter: (node: ESTree.Node, parentNode: ESTree.Node): any => {
                 if (!node.obfuscatedNode && Node.isReplaceableIdentifierNode(node, parentNode)) {
                     const newIdentifier: ESTree.Identifier = this.identifierReplacer.replace(node.name, nodeIdentifier);
+                    const newIdentifierName: string = newIdentifier.name;
 
-                    if (node.name === newIdentifier.name) {
+                    if (node.name !== newIdentifierName) {
+                        node.name = newIdentifierName;
+                    } else {
                         storedReplaceableIdentifiers.push(node);
-
-                        return node;
                     }
-
-                    return newIdentifier;
                 }
             }
         });