فهرست منبع

Fix bug #360: No Global variable renaming after 2 import declarations

Dmitry Zamotkin 5 سال پیش
والد
کامیت
7a720af367

تفاوت فایلی نمایش داده نمی شود زیرا این فایل بسیار بزرگ است
+ 0 - 0
dist/index.browser.js


تفاوت فایلی نمایش داده نمی شود زیرا این فایل بسیار بزرگ است
+ 0 - 0
dist/index.cli.js


تفاوت فایلی نمایش داده نمی شود زیرا این فایل بسیار بزرگ است
+ 0 - 0
dist/index.js


+ 0 - 1
src/node-transformers/obfuscating-transformers/ImportDeclarationTransformer.ts

@@ -142,7 +142,6 @@ export class ImportDeclarationTransformer extends AbstractNodeTransformer {
                 .replace(replaceableIdentifier.name, lexicalScopeNode);
                 .replace(replaceableIdentifier.name, lexicalScopeNode);
 
 
             replaceableIdentifier.name = newReplaceableIdentifier.name;
             replaceableIdentifier.name = newReplaceableIdentifier.name;
-            NodeMetadata.set(replaceableIdentifier, { renamedIdentifier: true });
         });
         });
     }
     }
 
 

+ 3 - 0
test/functional-tests/issues/fixtures/issue360.js

@@ -0,0 +1,3 @@
+import ok1 from 'lib1';
+import ok2 from 'lib2';
+let test = null;

+ 33 - 0
test/functional-tests/issues/issue360.spec.ts

@@ -0,0 +1,33 @@
+import { assert } from 'chai';
+import { NO_ADDITIONAL_NODES_PRESET } from '../../../src/options/presets/NoCustomNodes';
+import { readFileAsString } from '../../helpers/readFileAsString';
+import { JavaScriptObfuscator } from '../../../src/JavaScriptObfuscatorFacade';
+
+//
+// https://github.com/javascript-obfuscator/javascript-obfuscator/issues/360
+//
+describe('Issue #360', () => {
+    describe('Correct renaming globals after two imports', () => {
+        const codeResult: string = 'import c from\'lib1\';import d from\'lib2\';let e=null;';
+
+        let obfuscatedCode: string;
+
+        before(() => {
+            const code: string = readFileAsString(__dirname + '/fixtures/issue360.js');
+
+            obfuscatedCode = JavaScriptObfuscator.obfuscate(
+                code,
+                {
+                    ...NO_ADDITIONAL_NODES_PRESET,
+                    compact: true,
+                    renameGlobals: true,
+                    identifierNamesGenerator: 'mangled'
+                }
+            ).getObfuscatedCode();
+        });
+
+        it('should return correct result', () => {
+            assert.equal(obfuscatedCode, codeResult);
+        });
+    });
+});

+ 1 - 0
test/index.spec.ts

@@ -51,6 +51,7 @@ import './functional-tests/custom-nodes/string-array-nodes/StringArrayRotateFunc
 import './functional-tests/custom-nodes/string-array-nodes/StringArrayNode.spec';
 import './functional-tests/custom-nodes/string-array-nodes/StringArrayNode.spec';
 import './functional-tests/issues/issue321.spec';
 import './functional-tests/issues/issue321.spec';
 import './functional-tests/issues/issue355.spec';
 import './functional-tests/issues/issue355.spec';
+import './functional-tests/issues/issue360.spec';
 import './functional-tests/issues/issue419.spec';
 import './functional-tests/issues/issue419.spec';
 import './functional-tests/issues/issue424.spec';
 import './functional-tests/issues/issue424.spec';
 import './functional-tests/issues/issue437.spec';
 import './functional-tests/issues/issue437.spec';

برخی فایل ها در این مقایسه diff نمایش داده نمی شوند زیرا تعداد فایل ها بسیار زیاد است