Explorar o código

selfDefending test implementation

sanex3339 %!s(int64=9) %!d(string=hai) anos
pai
achega
9f439072ca

+ 10 - 7
dist/src/custom-nodes/unicode-array-nodes/UnicodeArrayCallsWrapper.js

@@ -28,26 +28,29 @@ class UnicodeArrayCallsWrapper extends Node_1.Node {
         return super.getNode();
     }
     getNodeStructure() {
-        let environmentName = Utils_1.Utils.getRandomVariableName(), keyName = Utils_1.Utils.getRandomVariableName(), selfDefendingCode = '', node;
+        let code = '', environmentName = Utils_1.Utils.getRandomVariableName(), keyName = Utils_1.Utils.getRandomVariableName(), node;
         if (this.options['selfDefending']) {
-            selfDefendingCode = `
+            code = `
                 var ${environmentName} = function(){return ${Utils_1.Utils.stringToUnicode('production')};};
                                                                       
                 if (
                     ${keyName} % ${Utils_1.Utils.getRandomInteger(this.unicodeArray.length / 8, this.unicodeArray.length / 2)} === 0 &&
                     /\\w+ *\\(\\) *{\\w+ *['|"].+['|"];? *}/.test(
                         ${environmentName}[${Utils_1.Utils.stringToUnicode('toString')}]()
-                    ) !== true && ${keyName}++
+                    ) === true || ${keyName}++
                 ) {
-                    return ${this.unicodeArrayName}[parseInt(${keyName}, 16)]
+                    return ${this.unicodeArrayName}[parseInt(${keyName}, 16)];
                 }
+                
+                return ${this.unicodeArrayName}[parseInt(${keyName}, 16)];
             `;
         }
+        else {
+            code = `return ${this.unicodeArrayName}[parseInt(${keyName}, 16)]`;
+        }
         node = esprima.parse(`
             var ${this.unicodeArrayCallsWrapperName} = function (${keyName}) {
-                ${selfDefendingCode}
-                
-                return ${this.unicodeArrayName}[parseInt(${keyName}, 16)]
+                ${code}
             };
         `);
         NodeUtils_1.NodeUtils.addXVerbatimPropertyToLiterals(node);

+ 3 - 3
dist/src/custom-nodes/unicode-array-nodes/UnicodeArrayDecodeNode.js

@@ -26,9 +26,9 @@ class UnicodeArrayDecodeNode extends Node_1.Node {
     }
     getNodeStructure() {
         const environmentName = Utils_1.Utils.getRandomVariableName(), indexVariableName = Utils_1.Utils.getRandomVariableName(), tempArrayName = Utils_1.Utils.getRandomVariableName();
-        let node, selfDefendingCode = '';
+        let code = '', node;
         if (this.options['selfDefending']) {
-            selfDefendingCode = `
+            code = `
                 var ${environmentName} = function(){return ${Utils_1.Utils.stringToUnicode('dev')};};
                                         
                 if (
@@ -67,7 +67,7 @@ class UnicodeArrayDecodeNode extends Node_1.Node {
                 var ${tempArrayName} = [];
                 
                 for (var ${indexVariableName} in ${this.unicodeArrayName}) {
-                    ${selfDefendingCode}
+                    ${code}
                 
                     ${tempArrayName}[${Utils_1.Utils.stringToUnicode('push')}](decodeURI(atob(${this.unicodeArrayName}[${indexVariableName}])));
                 }

+ 10 - 8
src/custom-nodes/unicode-array-nodes/UnicodeArrayCallsWrapper.ts

@@ -84,31 +84,33 @@ export class UnicodeArrayCallsWrapper extends Node {
      * @returns {INode}
      */
     protected getNodeStructure (): INode {
-        let environmentName: string = Utils.getRandomVariableName(),
+        let code: string = '',
+            environmentName: string = Utils.getRandomVariableName(),
             keyName: string = Utils.getRandomVariableName(),
-            selfDefendingCode: string = '',
             node: INode;
 
         if (this.options['selfDefending']) {
-            selfDefendingCode = `
+            code = `
                 var ${environmentName} = function(){return ${Utils.stringToUnicode('production')};};
                                                                       
                 if (
                     ${keyName} % ${Utils.getRandomInteger(this.unicodeArray.length / 8, this.unicodeArray.length / 2)} === 0 &&
                     /\\w+ *\\(\\) *{\\w+ *['|"].+['|"];? *}/.test(
                         ${environmentName}[${Utils.stringToUnicode('toString')}]()
-                    ) !== true && ${keyName}++
+                    ) === true || ${keyName}++
                 ) {
-                    return ${this.unicodeArrayName}[parseInt(${keyName}, 16)]
+                    return ${this.unicodeArrayName}[parseInt(${keyName}, 16)];
                 }
+                
+                return ${this.unicodeArrayName}[parseInt(${keyName}, 16)];
             `;
+        } else {
+            code = `return ${this.unicodeArrayName}[parseInt(${keyName}, 16)]`;
         }
 
         node = esprima.parse(`
             var ${this.unicodeArrayCallsWrapperName} = function (${keyName}) {
-                ${selfDefendingCode}
-                
-                return ${this.unicodeArrayName}[parseInt(${keyName}, 16)]
+                ${code}
             };
         `);
 

+ 4 - 4
src/custom-nodes/unicode-array-nodes/UnicodeArrayDecodeNode.ts

@@ -76,11 +76,11 @@ export class UnicodeArrayDecodeNode extends Node {
             indexVariableName: string = Utils.getRandomVariableName(),
             tempArrayName: string = Utils.getRandomVariableName();
 
-        let node: INode,
-            selfDefendingCode: string = '';
+        let code: string = '',
+            node: INode;
 
         if (this.options['selfDefending']) {
-            selfDefendingCode = `
+            code = `
                 var ${environmentName} = function(){return ${Utils.stringToUnicode('dev')};};
                                         
                 if (
@@ -120,7 +120,7 @@ export class UnicodeArrayDecodeNode extends Node {
                 var ${tempArrayName} = [];
                 
                 for (var ${indexVariableName} in ${this.unicodeArrayName}) {
-                    ${selfDefendingCode}
+                    ${code}
                 
                     ${tempArrayName}[${Utils.stringToUnicode('push')}](decodeURI(atob(${this.unicodeArrayName}[${indexVariableName}])));
                 }