sanex3339 9 years ago
parent
commit
7662823cd4
4 changed files with 12 additions and 6 deletions
  1. 3 1
      dist/src/NodeUtils.js
  2. 2 2
      dist/src/Obfuscator.js
  3. 5 1
      src/NodeUtils.ts
  4. 2 2
      src/Obfuscator.ts

+ 3 - 1
dist/src/NodeUtils.js

@@ -79,14 +79,16 @@ class NodeUtils {
         return node.type === NodeType_1.NodeType.VariableDeclarator;
     }
     static parentize(node) {
+        let isRootNode = true;
         estraverse.replace(node, {
             enter: (node, parentNode) => {
                 Object.defineProperty(node, 'parentNode', {
                     configurable: true,
                     enumerable: true,
-                    value: parentNode || node,
+                    value: isRootNode ? NodeUtils.getProgramNode([node]) : parentNode || node,
                     writable: true
                 });
+                isRootNode = false;
             }
         });
     }

+ 2 - 2
dist/src/Obfuscator.js

@@ -54,14 +54,14 @@ class Obfuscator {
     afterObfuscation(astTree) {
         this.nodes.forEach((node) => {
             if (node.getAppendState() === AppendState_1.AppendState.AfterObfuscation) {
-                node.appendNode(NodeUtils_1.NodeUtils.getBlockScopeOfNode(astTree));
+                node.appendNode(astTree);
             }
         });
     }
     beforeObfuscation(astTree) {
         this.nodes.forEach((node) => {
             if (node.getAppendState() === AppendState_1.AppendState.BeforeObfuscation) {
-                node.appendNode(NodeUtils_1.NodeUtils.getBlockScopeOfNode(astTree));
+                node.appendNode(astTree);
             }
         });
     }

+ 5 - 1
src/NodeUtils.ts

@@ -188,14 +188,18 @@ export class NodeUtils {
      * @param node
      */
     public static parentize (node: INode): void {
+        let isRootNode: boolean = true;
+
         estraverse.replace(node, {
             enter: (node: INode, parentNode: INode): any => {
                 Object.defineProperty(node, 'parentNode', {
                     configurable: true,
                     enumerable: true,
-                    value: parentNode || node,
+                    value: isRootNode ? NodeUtils.getProgramNode([node]) : parentNode || node,
                     writable: true
                 });
+
+                isRootNode = false;
             }
         });
     }

+ 2 - 2
src/Obfuscator.ts

@@ -101,7 +101,7 @@ export class Obfuscator {
     private afterObfuscation (astTree: INode): void {
         this.nodes.forEach((node: ICustomNode) => {
             if (node.getAppendState() === AppendState.AfterObfuscation) {
-                node.appendNode(NodeUtils.getBlockScopeOfNode(astTree));
+                node.appendNode(astTree);
             }
         });
     }
@@ -112,7 +112,7 @@ export class Obfuscator {
     private beforeObfuscation (astTree: INode): void {
         this.nodes.forEach((node: ICustomNode) => {
             if (node.getAppendState() === AppendState.BeforeObfuscation) {
-                node.appendNode(NodeUtils.getBlockScopeOfNode(astTree));
+                node.appendNode(astTree);
             }
         });
     };