Skip to content

Commit f875796

Browse files
authored
Merge pull request javascript-obfuscator#916 from javascript-obfuscator/es2022-features
WIP es2022 features: escodegen update
2 parents 4550424 + 744cd14 commit f875796

File tree

31 files changed

+605
-301
lines changed

31 files changed

+605
-301
lines changed

.github/workflows/ci.yml

Lines changed: 0 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -20,14 +20,10 @@ jobs:
2020
node-version: 12.x
2121
- os: ubuntu-latest,
2222
node-version: 14.x
23-
- os: ubuntu-latest,
24-
node-version: 15.x
2523
- os: ubuntu-latest,
2624
node-version: 16.x
2725
- os: windows-latest,
2826
node-version: 14.x
29-
- os: windows-latest,
30-
node-version: 15.x
3127
- os: windows-latest,
3228
node-version: 16.x
3329

.gitignore

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -11,3 +11,4 @@ npm-debug.log
1111
/tmp
1212
/test/benchmark/**/**
1313
*dockerfile
14+
/test*.js

CHANGELOG.md

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,11 @@
11
Change Log
22

3+
v2.18.0
4+
---
5+
* Added support of `es2022` features: private identifiers and class properties
6+
* Dropped support for `node@15`.
7+
* Increased minimum supported `node` versions: `^12.22.0 || ^14.17.0 || >=16.0.0`
8+
39
v2.17.0
410
---
511
* **New option**: `sourceMapSourcesMode` allows to control `sources` and `sourcesContent` fields of the source map

dist/index.browser.js

Lines changed: 1 addition & 1 deletion
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

dist/index.cli.js

Lines changed: 1 addition & 1 deletion
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

dist/index.js

Lines changed: 1 addition & 1 deletion
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

package.json

Lines changed: 8 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
{
22
"name": "javascript-obfuscator",
3-
"version": "2.17.0",
3+
"version": "2.18.0",
44
"description": "JavaScript obfuscator",
55
"keywords": [
66
"obfuscator",
@@ -12,7 +12,7 @@
1212
"js obfuscator"
1313
],
1414
"engines": {
15-
"node": ">=12"
15+
"node": "^12.22.0 || ^14.17.0 || >=16.0.0"
1616
},
1717
"main": "dist/index.js",
1818
"browser": "dist/index.browser.js",
@@ -30,7 +30,7 @@
3030
"chance": "1.1.7",
3131
"class-validator": "0.13.1",
3232
"commander": "8.0.0",
33-
"eslint-scope": "5.1.1",
33+
"eslint-scope": "6.0.0",
3434
"fast-deep-equal": "3.1.3",
3535
"inversify": "5.1.1",
3636
"js-string-escape": "1.0.1",
@@ -55,9 +55,9 @@
5555
"@types/js-string-escape": "1.0.0",
5656
"@types/md5": "2.3.1",
5757
"@types/mkdirp": "1.0.2",
58-
"@types/mocha": "8.2.3",
58+
"@types/mocha": "9.0.0",
5959
"@types/multimatch": "4.0.0",
60-
"@types/node": "16.3.3",
60+
"@types/node": "16.4.1",
6161
"@types/rimraf": "3.0.1",
6262
"@types/sinon": "10.0.2",
6363
"@types/string-template": "1.0.2",
@@ -69,7 +69,7 @@
6969
"cross-env": "7.0.3",
7070
"eslint": "7.31.0",
7171
"eslint-plugin-import": "2.23.4",
72-
"eslint-plugin-jsdoc": "35.4.5",
72+
"eslint-plugin-jsdoc": "35.5.1",
7373
"eslint-plugin-no-null": "1.0.2",
7474
"eslint-plugin-prefer-arrow": "1.2.3",
7575
"eslint-plugin-unicorn": "34.0.1",
@@ -85,8 +85,8 @@
8585
"threads": "1.6.5",
8686
"ts-loader": "9.2.3",
8787
"ts-node": "10.1.0",
88-
"typescript": "4.3.5",
89-
"webpack": "5.45.1",
88+
"typescript": "4.4.0-beta",
89+
"webpack": "5.46.0",
9090
"webpack-cli": "4.7.2",
9191
"webpack-node-externals": "3.0.0"
9292
},

src/ASTParserFacade.ts

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -91,7 +91,9 @@ export class ASTParserFacade {
9191
errorMessage: string,
9292
position: ESTree.Position | null
9393
): never {
94-
if (!position || !position.line || !position.column) {
94+
const isMissingLocationData = !position || !position.line || !position.column;
95+
96+
if (isMissingLocationData) {
9597
throw new Error(errorMessage);
9698
}
9799

src/JavaScriptObfuscator.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -66,6 +66,7 @@ export class JavaScriptObfuscator implements IJavaScriptObfuscator {
6666
NodeTransformer.BooleanLiteralTransformer,
6767
NodeTransformer.BlockStatementControlFlowTransformer,
6868
NodeTransformer.BlockStatementSimplifyTransformer,
69+
NodeTransformer.ClassFieldTransformer,
6970
NodeTransformer.CommentsTransformer,
7071
NodeTransformer.CustomCodeHelpersTransformer,
7172
NodeTransformer.DeadCodeInjectionTransformer,
@@ -79,7 +80,6 @@ export class JavaScriptObfuscator implements IJavaScriptObfuscator {
7980
NodeTransformer.RenamePropertiesTransformer,
8081
NodeTransformer.MemberExpressionTransformer,
8182
NodeTransformer.MetadataTransformer,
82-
NodeTransformer.MethodDefinitionTransformer,
8383
NodeTransformer.NumberLiteralTransformer,
8484
NodeTransformer.NumberToNumericalExpressionTransformer,
8585
NodeTransformer.ObfuscatingGuardsTransformer,

src/container/modules/node-transformers/ConvertingTransformersModule.ts

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -12,7 +12,7 @@ import { BasePropertiesExtractor } from '../../../node-transformers/converting-t
1212
import { BooleanLiteralTransformer } from '../../../node-transformers/converting-transformers/BooleanLiteralTransformer';
1313
import { ExportSpecifierTransformer } from '../../../node-transformers/converting-transformers/ExportSpecifierTransformer';
1414
import { MemberExpressionTransformer } from '../../../node-transformers/converting-transformers/MemberExpressionTransformer';
15-
import { MethodDefinitionTransformer } from '../../../node-transformers/converting-transformers/MethodDefinitionTransformer';
15+
import { ClassFieldTransformer } from '../../../node-transformers/converting-transformers/ClassFieldTransformer';
1616
import { NumberLiteralTransformer } from '../../../node-transformers/converting-transformers/NumberLiteralTransformer';
1717
import { NumberToNumericalExpressionTransformer } from '../../../node-transformers/converting-transformers/NumberToNumericalExpressionTransformer';
1818
import { ObjectExpressionKeysTransformer } from '../../../node-transformers/converting-transformers/ObjectExpressionKeysTransformer';
@@ -37,8 +37,8 @@ export const convertingTransformersModule: interfaces.ContainerModule = new Cont
3737
.whenTargetNamed(NodeTransformer.MemberExpressionTransformer);
3838

3939
bind<INodeTransformer>(ServiceIdentifiers.INodeTransformer)
40-
.to(MethodDefinitionTransformer)
41-
.whenTargetNamed(NodeTransformer.MethodDefinitionTransformer);
40+
.to(ClassFieldTransformer)
41+
.whenTargetNamed(NodeTransformer.ClassFieldTransformer);
4242

4343
bind<INodeTransformer>(ServiceIdentifiers.INodeTransformer)
4444
.to(NumberLiteralTransformer)

0 commit comments

Comments
 (0)