Prechádzať zdrojové kódy

Merge pull request #962 from javascript-obfuscator/private-identifiers-support

Updated `@javascript-obfuscator/escodegen` with fixed generation of private property names
Timofey Kachalov 3 rokov pred
rodič
commit
64fb5859a8

+ 5 - 1
CHANGELOG.md

@@ -1,9 +1,13 @@
 Change Log
 
+v2.18.1
+---
+* Updated `@javascript-obfuscator/escodegen` with fixed generation of private property names
+
 v2.18.0
 ---
 * Added support of `es2022` features: private identifiers and class properties
-* Dropped support for `node@15`. 
+* Dropped support for `node@15`
 * Increased minimum supported `node` versions: `^12.22.0 || ^14.17.0 || >=16.0.0`
 
 v2.17.0

Rozdielové dáta súboru neboli zobrazené, pretože súbor je príliš veľký
+ 0 - 0
dist/index.browser.js


Rozdielové dáta súboru neboli zobrazené, pretože súbor je príliš veľký
+ 0 - 0
dist/index.cli.js


Rozdielové dáta súboru neboli zobrazené, pretože súbor je príliš veľký
+ 0 - 0
dist/index.js


+ 1 - 1
package.json

@@ -21,7 +21,7 @@
   },
   "types": "index.d.ts",
   "dependencies": {
-    "@javascript-obfuscator/escodegen": "2.2.0",
+    "@javascript-obfuscator/escodegen": "2.2.1",
     "@javascript-obfuscator/estraverse": "5.3.0",
     "@nuxtjs/opencollective": "0.3.2",
     "acorn": "8.4.1",

+ 29 - 0
test/functional-tests/javascript-obfuscator/JavaScriptObfuscator.spec.ts

@@ -968,6 +968,35 @@ describe('JavaScriptObfuscator', () => {
             });
         });
 
+        describe('Private identifiers support', () => {
+            const regExp: RegExp = new RegExp(
+                'class Foo *{ *' +
+                    '#bar *= *0x1; *' +
+                    '\\[\'method\'] *\\(\\) *{ *' +
+                        'this\.#bar *= *0x2;' +
+                    '} *' +
+                '}'
+            );
+
+            let obfuscatedCode: string;
+
+            beforeEach(() => {
+                const code: string = readFileAsString(__dirname + '/fixtures/private-identifier.js');
+
+                obfuscatedCode = JavaScriptObfuscator.obfuscate(
+                    code,
+                    {
+                        ...NO_ADDITIONAL_NODES_PRESET,
+                        renameProperties: true
+                    }
+                ).getObfuscatedCode();
+            });
+
+            it('should support private identifiers', () => {
+                assert.match(obfuscatedCode, regExp);
+            });
+        });
+
         describe('mangled identifier names generator', () => {
             const regExp: RegExp = /var c *= *0x1/;
 

+ 7 - 0
test/functional-tests/javascript-obfuscator/fixtures/private-identifier.js

@@ -0,0 +1,7 @@
+class Foo {
+    #bar = 1;
+
+    method() {
+        this.#bar = 2;
+    }
+}

+ 4 - 4
yarn.lock

@@ -465,10 +465,10 @@
   resolved "https://registry.npmjs.org/@istanbuljs/schema/-/schema-0.1.2.tgz"
   integrity sha512-tsAQNx32a8CoFhjhijUIhI4kccIAgmGhy8LZMZgGfmXcpMbPRUqn5LWmgRttILi6yeGmBJd2xsPkFMs0PzgPCw==
 
-"@javascript-obfuscator/[email protected].0":
-  version "2.2.0"
-  resolved "https://registry.yarnpkg.com/@javascript-obfuscator/escodegen/-/escodegen-2.2.0.tgz#c09fc83a9e3ff7b5555e37b9ac23947221dc8257"
-  integrity sha512-vyBqXZqAHWe40dA5tVsXC85KJ0eWgTwPrxZdOtaHH0di7tkb8G8x8MEQs0HbbDdONN7M5M45fyVpEF5aR1++Dw==
+"@javascript-obfuscator/[email protected].1":
+  version "2.2.1"
+  resolved "https://registry.yarnpkg.com/@javascript-obfuscator/escodegen/-/escodegen-2.2.1.tgz#a87932d93e9a50d2b47942c15d6c0f1300db6179"
+  integrity sha512-QNqNXSTd5cbA2eImhI0aK52DxWMqX8ahWnd0B+icYmK/dS+7dXl+yvomJog3lHpZvshr0ItkHeZxSyYmvWhfrg==
   dependencies:
     "@javascript-obfuscator/estraverse" "^5.3.0"
     esprima "^4.0.1"

Niektoré súbory nie sú zobrazené, pretože je v týchto rozdielových dátach zmenené mnoho súborov