[GH-ISSUE #553] Support with in source files #88

Open
opened 2026-03-03 13:52:53 +03:00 by kerem · 5 comments
Owner

Originally created by @nahidul292 on GitHub (Jul 31, 2025).
Original GitHub issue: https://github.com/jehna/humanify/issues/553

Note

Processing file 1/1
C:\Users\nahid\AppData\Roaming\npm\node_modules\humanifyjs\node_modules@babel\parser\lib\index.js:367
const error = new SyntaxError();
^

SyntaxError: unknown: 'with' in strict mode. (5:4)

3 | }, SaEgNw7) {
4 | while (Mf8M0u + riQMkU + UcqOgo !== -31) {

5 | with (l06tYa.MC3rfnZ || l06tYa) switch (Mf8M0u + riQMkU + UcqOgo) {
| ^
6 | case l06tYa.iwnVDF.YS7M2nl + 134:
7 | AVRd8A([BpOfWz.qK79DR] = SaEgNw7, BpOfWz.Lva9T_S = function* Mf8M0u(riQMkU, UcqOgo, l06tYa, SaEgNw7 = {
8 | dd37r0: {}
at constructor (C:\Users\nahid\AppData\Roaming\npm\node_modules\humanifyjs\node_modules@babel\parser\lib\index.js:367:19)
at Parser.raise (C:\Users\nahid\AppData\Roaming\npm\node_modules\humanifyjs\node_modules@babel\parser\lib\index.js:6627:19)
at Parser.parseWithStatement (C:\Users\nahid\AppData\Roaming\npm\node_modules\humanifyjs\node_modules@babel\parser\lib\index.js:13244:12)
at Parser.parseStatementContent (C:\Users\nahid\AppData\Roaming\npm\node_modules\humanifyjs\node_modules@babel\parser\lib\index.js:12856:21)
at Parser.parseStatementLike (C:\Users\nahid\AppData\Roaming\npm\node_modules\humanifyjs\node_modules@babel\parser\lib\index.js:12767:17)
at Parser.parseStatementListItem (C:\Users\nahid\AppData\Roaming\npm\node_modules\humanifyjs\node_modules@babel\parser\lib\index.js:12747:17)
at Parser.parseBlockOrModuleBlockBody (C:\Users\nahid\AppData\Roaming\npm\node_modules\humanifyjs\node_modules@babel\parser\lib\index.js:13316:61)
at Parser.parseBlockBody (C:\Users\nahid\AppData\Roaming\npm\node_modules\humanifyjs\node_modules@babel\parser\lib\index.js:13309:10)
at Parser.parseBlock (C:\Users\nahid\AppData\Roaming\npm\node_modules\humanifyjs\node_modules@babel\parser\lib\index.js:13297:10)
at Parser.parseStatementContent (C:\Users\nahid\AppData\Roaming\npm\node_modules\humanifyjs\node_modules@babel\parser\lib\index.js:12858:21)
at Parser.parseStatementLike (C:\Users\nahid\AppData\Roaming\npm\node_modules\humanifyjs\node_modules@babel\parser\lib\index.js:12767:17)
at Parser.parseStatement (C:\Users\nahid\AppData\Roaming\npm\node_modules\humanifyjs\node_modules@babel\parser\lib\index.js:12760:17)
at C:\Users\nahid\AppData\Roaming\npm\node_modules\humanifyjs\node_modules@babel\parser\lib\index.js:13238:68
at Parser.withSmartMixTopicForbiddingContext (C:\Users\nahid\AppData\Roaming\npm\node_modules\humanifyjs\node_modules@babel\parser\lib\index.js:12404:14)
at Parser.parseWhileStatement (C:\Users\nahid\AppData\Roaming\npm\node_modules\humanifyjs\node_modules@babel\parser\lib\index.js:13238:22)
at Parser.parseStatementContent (C:\Users\nahid\AppData\Roaming\npm\node_modules\humanifyjs\node_modules@babel\parser\lib\index.js:12854:21)
at Parser.parseStatementLike (C:\Users\nahid\AppData\Roaming\npm\node_modules\humanifyjs\node_modules@babel\parser\lib\index.js:12767:17)
at Parser.parseStatementListItem (C:\Users\nahid\AppData\Roaming\npm\node_modules\humanifyjs\node_modules@babel\parser\lib\index.js:12747:17)
at Parser.parseBlockOrModuleBlockBody (C:\Users\nahid\AppData\Roaming\npm\node_modules\humanifyjs\node_modules@babel\parser\lib\index.js:13316:61)
at Parser.parseBlockBody (C:\Users\nahid\AppData\Roaming\npm\node_modules\humanifyjs\node_modules@babel\parser\lib\index.js:13309:10)
at Parser.parseBlock (C:\Users\nahid\AppData\Roaming\npm\node_modules\humanifyjs\node_modules@babel\parser\lib\index.js:13297:10)
at Parser.parseFunctionBody (C:\Users\nahid\AppData\Roaming\npm\node_modules\humanifyjs\node_modules@babel\parser\lib\index.js:12101:24)
at Parser.parseFunctionBodyAndFinish (C:\Users\nahid\AppData\Roaming\npm\node_modules\humanifyjs\node_modules@babel\parser\lib\index.js:12087:10)
at C:\Users\nahid\AppData\Roaming\npm\node_modules\humanifyjs\node_modules@babel\parser\lib\index.js:13445:12
at Parser.withSmartMixTopicForbiddingContext (C:\Users\nahid\AppData\Roaming\npm\node_modules\humanifyjs\node_modules@babel\parser\lib\index.js:12404:14)
at Parser.parseFunction (C:\Users\nahid\AppData\Roaming\npm\node_modules\humanifyjs\node_modules@babel\parser\lib\index.js:13444:10)
at Parser.parseFunctionStatement (C:\Users\nahid\AppData\Roaming\npm\node_modules\humanifyjs\node_modules@babel\parser\lib\index.js:13125:17)
at Parser.parseStatementContent (C:\Users\nahid\AppData\Roaming\npm\node_modules\humanifyjs\node_modules@babel\parser\lib\index.js:12791:21)
at Parser.parseStatementLike (C:\Users\nahid\AppData\Roaming\npm\node_modules\humanifyjs\node_modules@babel\parser\lib\index.js:12767:17)
at Parser.parseModuleItem (C:\Users\nahid\AppData\Roaming\npm\node_modules\humanifyjs\node_modules@babel\parser\lib\index.js:12744:17)
at Parser.parseBlockOrModuleBlockBody (C:\Users\nahid\AppData\Roaming\npm\node_modules\humanifyjs\node_modules@babel\parser\lib\index.js:13316:36)
at Parser.parseBlockBody (C:\Users\nahid\AppData\Roaming\npm\node_modules\humanifyjs\node_modules@babel\parser\lib\index.js:13309:10)
at Parser.parseProgram (C:\Users\nahid\AppData\Roaming\npm\node_modules\humanifyjs\node_modules@babel\parser\lib\index.js:12625:10)
at Parser.parseTopLevel (C:\Users\nahid\AppData\Roaming\npm\node_modules\humanifyjs\node_modules@babel\parser\lib\index.js:12615:25)
at Parser.parse (C:\Users\nahid\AppData\Roaming\npm\node_modules\humanifyjs\node_modules@babel\parser\lib\index.js:14492:10)
at parse (C:\Users\nahid\AppData\Roaming\npm\node_modules\humanifyjs\node_modules@babel\parser\lib\index.js:14526:38)
at parser (C:\Users\nahid\AppData\Roaming\npm\node_modules\humanifyjs\node_modules@babel\core\lib\parser\index.js:41:34)
at parser.next ()
at normalizeFile (C:\Users\nahid\AppData\Roaming\npm\node_modules\humanifyjs\node_modules@babel\core\lib\transformation\normalize-file.js:64:37)
at normalizeFile.next ()
at run (C:\Users\nahid\AppData\Roaming\npm\node_modules\humanifyjs\node_modules@babel\core\lib\transformation\index.js:22:50)
at run.next ()
at transform (C:\Users\nahid\AppData\Roaming\npm\node_modules\humanifyjs\node_modules@babel\core\lib\transform.js:22:33)
at transform.next ()
at step (C:\Users\nahid\AppData\Roaming\npm\node_modules\humanifyjs\node_modules\gensync\index.js:261:32)
at C:\Users\nahid\AppData\Roaming\npm\node_modules\humanifyjs\node_modules\gensync\index.js:273:13
at async.call.result.err.err (C:\Users\nahid\AppData\Roaming\npm\node_modules\humanifyjs\node_modules\gensync\index.js:223:11)
at C:\Users\nahid\AppData\Roaming\npm\node_modules\humanifyjs\node_modules\gensync\index.js:189:28
at C:\Users\nahid\AppData\Roaming\npm\node_modules\humanifyjs\node_modules@babel\core\lib\gensync-utils\async.js:67:7
at C:\Users\nahid\AppData\Roaming\npm\node_modules\humanifyjs\node_modules\gensync\index.js:113:33 {
code: 'BABEL_PARSE_ERROR',
reasonCode: 'StrictWith',
loc: Position { line: 5, column: 4, index: 128 },
pos: 128,
syntaxPlugin: undefined
}

Originally created by @nahidul292 on GitHub (Jul 31, 2025). Original GitHub issue: https://github.com/jehna/humanify/issues/553 > [!NOTE] > Processing file 1/1 C:\Users\nahid\AppData\Roaming\npm\node_modules\humanifyjs\node_modules\@babel\parser\lib\index.js:367 const error = new SyntaxError(); ^ SyntaxError: unknown: 'with' in strict mode. (5:4) 3 | }, SaEgNw7) { 4 | while (Mf8M0u + riQMkU + UcqOgo !== -31) { > 5 | with (l06tYa.MC3rfnZ || l06tYa) switch (Mf8M0u + riQMkU + UcqOgo) { | ^ 6 | case l06tYa.iwnVDF.YS7M2nl + 134: 7 | AVRd8A([BpOfWz.qK79DR] = SaEgNw7, BpOfWz.Lva9T_S = function* Mf8M0u(riQMkU, UcqOgo, l06tYa, SaEgNw7 = { 8 | dd37r0: {} at constructor (C:\Users\nahid\AppData\Roaming\npm\node_modules\humanifyjs\node_modules\@babel\parser\lib\index.js:367:19) at Parser.raise (C:\Users\nahid\AppData\Roaming\npm\node_modules\humanifyjs\node_modules\@babel\parser\lib\index.js:6627:19) at Parser.parseWithStatement (C:\Users\nahid\AppData\Roaming\npm\node_modules\humanifyjs\node_modules\@babel\parser\lib\index.js:13244:12) at Parser.parseStatementContent (C:\Users\nahid\AppData\Roaming\npm\node_modules\humanifyjs\node_modules\@babel\parser\lib\index.js:12856:21) at Parser.parseStatementLike (C:\Users\nahid\AppData\Roaming\npm\node_modules\humanifyjs\node_modules\@babel\parser\lib\index.js:12767:17) at Parser.parseStatementListItem (C:\Users\nahid\AppData\Roaming\npm\node_modules\humanifyjs\node_modules\@babel\parser\lib\index.js:12747:17) at Parser.parseBlockOrModuleBlockBody (C:\Users\nahid\AppData\Roaming\npm\node_modules\humanifyjs\node_modules\@babel\parser\lib\index.js:13316:61) at Parser.parseBlockBody (C:\Users\nahid\AppData\Roaming\npm\node_modules\humanifyjs\node_modules\@babel\parser\lib\index.js:13309:10) at Parser.parseBlock (C:\Users\nahid\AppData\Roaming\npm\node_modules\humanifyjs\node_modules\@babel\parser\lib\index.js:13297:10) at Parser.parseStatementContent (C:\Users\nahid\AppData\Roaming\npm\node_modules\humanifyjs\node_modules\@babel\parser\lib\index.js:12858:21) at Parser.parseStatementLike (C:\Users\nahid\AppData\Roaming\npm\node_modules\humanifyjs\node_modules\@babel\parser\lib\index.js:12767:17) at Parser.parseStatement (C:\Users\nahid\AppData\Roaming\npm\node_modules\humanifyjs\node_modules\@babel\parser\lib\index.js:12760:17) at C:\Users\nahid\AppData\Roaming\npm\node_modules\humanifyjs\node_modules\@babel\parser\lib\index.js:13238:68 at Parser.withSmartMixTopicForbiddingContext (C:\Users\nahid\AppData\Roaming\npm\node_modules\humanifyjs\node_modules\@babel\parser\lib\index.js:12404:14) at Parser.parseWhileStatement (C:\Users\nahid\AppData\Roaming\npm\node_modules\humanifyjs\node_modules\@babel\parser\lib\index.js:13238:22) at Parser.parseStatementContent (C:\Users\nahid\AppData\Roaming\npm\node_modules\humanifyjs\node_modules\@babel\parser\lib\index.js:12854:21) at Parser.parseStatementLike (C:\Users\nahid\AppData\Roaming\npm\node_modules\humanifyjs\node_modules\@babel\parser\lib\index.js:12767:17) at Parser.parseStatementListItem (C:\Users\nahid\AppData\Roaming\npm\node_modules\humanifyjs\node_modules\@babel\parser\lib\index.js:12747:17) at Parser.parseBlockOrModuleBlockBody (C:\Users\nahid\AppData\Roaming\npm\node_modules\humanifyjs\node_modules\@babel\parser\lib\index.js:13316:61) at Parser.parseBlockBody (C:\Users\nahid\AppData\Roaming\npm\node_modules\humanifyjs\node_modules\@babel\parser\lib\index.js:13309:10) at Parser.parseBlock (C:\Users\nahid\AppData\Roaming\npm\node_modules\humanifyjs\node_modules\@babel\parser\lib\index.js:13297:10) at Parser.parseFunctionBody (C:\Users\nahid\AppData\Roaming\npm\node_modules\humanifyjs\node_modules\@babel\parser\lib\index.js:12101:24) at Parser.parseFunctionBodyAndFinish (C:\Users\nahid\AppData\Roaming\npm\node_modules\humanifyjs\node_modules\@babel\parser\lib\index.js:12087:10) at C:\Users\nahid\AppData\Roaming\npm\node_modules\humanifyjs\node_modules\@babel\parser\lib\index.js:13445:12 at Parser.withSmartMixTopicForbiddingContext (C:\Users\nahid\AppData\Roaming\npm\node_modules\humanifyjs\node_modules\@babel\parser\lib\index.js:12404:14) at Parser.parseFunction (C:\Users\nahid\AppData\Roaming\npm\node_modules\humanifyjs\node_modules\@babel\parser\lib\index.js:13444:10) at Parser.parseFunctionStatement (C:\Users\nahid\AppData\Roaming\npm\node_modules\humanifyjs\node_modules\@babel\parser\lib\index.js:13125:17) at Parser.parseStatementContent (C:\Users\nahid\AppData\Roaming\npm\node_modules\humanifyjs\node_modules\@babel\parser\lib\index.js:12791:21) at Parser.parseStatementLike (C:\Users\nahid\AppData\Roaming\npm\node_modules\humanifyjs\node_modules\@babel\parser\lib\index.js:12767:17) at Parser.parseModuleItem (C:\Users\nahid\AppData\Roaming\npm\node_modules\humanifyjs\node_modules\@babel\parser\lib\index.js:12744:17) at Parser.parseBlockOrModuleBlockBody (C:\Users\nahid\AppData\Roaming\npm\node_modules\humanifyjs\node_modules\@babel\parser\lib\index.js:13316:36) at Parser.parseBlockBody (C:\Users\nahid\AppData\Roaming\npm\node_modules\humanifyjs\node_modules\@babel\parser\lib\index.js:13309:10) at Parser.parseProgram (C:\Users\nahid\AppData\Roaming\npm\node_modules\humanifyjs\node_modules\@babel\parser\lib\index.js:12625:10) at Parser.parseTopLevel (C:\Users\nahid\AppData\Roaming\npm\node_modules\humanifyjs\node_modules\@babel\parser\lib\index.js:12615:25) at Parser.parse (C:\Users\nahid\AppData\Roaming\npm\node_modules\humanifyjs\node_modules\@babel\parser\lib\index.js:14492:10) at parse (C:\Users\nahid\AppData\Roaming\npm\node_modules\humanifyjs\node_modules\@babel\parser\lib\index.js:14526:38) at parser (C:\Users\nahid\AppData\Roaming\npm\node_modules\humanifyjs\node_modules\@babel\core\lib\parser\index.js:41:34) at parser.next (<anonymous>) at normalizeFile (C:\Users\nahid\AppData\Roaming\npm\node_modules\humanifyjs\node_modules\@babel\core\lib\transformation\normalize-file.js:64:37) at normalizeFile.next (<anonymous>) at run (C:\Users\nahid\AppData\Roaming\npm\node_modules\humanifyjs\node_modules\@babel\core\lib\transformation\index.js:22:50) at run.next (<anonymous>) at transform (C:\Users\nahid\AppData\Roaming\npm\node_modules\humanifyjs\node_modules\@babel\core\lib\transform.js:22:33) at transform.next (<anonymous>) at step (C:\Users\nahid\AppData\Roaming\npm\node_modules\humanifyjs\node_modules\gensync\index.js:261:32) at C:\Users\nahid\AppData\Roaming\npm\node_modules\humanifyjs\node_modules\gensync\index.js:273:13 at async.call.result.err.err (C:\Users\nahid\AppData\Roaming\npm\node_modules\humanifyjs\node_modules\gensync\index.js:223:11) at C:\Users\nahid\AppData\Roaming\npm\node_modules\humanifyjs\node_modules\gensync\index.js:189:28 at C:\Users\nahid\AppData\Roaming\npm\node_modules\humanifyjs\node_modules\@babel\core\lib\gensync-utils\async.js:67:7 at C:\Users\nahid\AppData\Roaming\npm\node_modules\humanifyjs\node_modules\gensync\index.js:113:33 { code: 'BABEL_PARSE_ERROR', reasonCode: 'StrictWith', loc: Position { line: 5, column: 4, index: 128 }, pos: 128, syntaxPlugin: undefined }
Author
Owner

@brianjenkins94 commented on GitHub (Jul 31, 2025):

Are you trying to process a file that uses the with keyword?

<!-- gh-comment-id:3141271000 --> @brianjenkins94 commented on GitHub (Jul 31, 2025): Are you trying to process a file that uses the `with` keyword?
Author
Owner

@nahidul292 commented on GitHub (Jul 31, 2025):

Are you trying to process a file that uses the with keyword?

Yes, I am
Is there any workaround to deobfuscate such files? @brianjenkins94

<!-- gh-comment-id:3141285398 --> @nahidul292 commented on GitHub (Jul 31, 2025): > Are you trying to process a file that uses the `with` keyword? Yes, I am Is there any workaround to deobfuscate such files? @brianjenkins94
Author
Owner

@brianjenkins94 commented on GitHub (Jul 31, 2025):

You would need to add a non-strict sourceType here: https://github.com/jehna/humanify/blob/main/src/babel-utils.ts#L11

<!-- gh-comment-id:3141336413 --> @brianjenkins94 commented on GitHub (Jul 31, 2025): You would need to add a non-strict [`sourceType`](https://babeljs.io/docs/options#sourcetype) here: https://github.com/jehna/humanify/blob/main/src/babel-utils.ts#L11
Author
Owner

@nahidul292 commented on GitHub (Jul 31, 2025):

You would need to add a non-strict sourceType here: https://github.com/jehna/humanify/blob/main/src/babel-utils.ts#L11

I apologize would you mind to share a bit more details?

<!-- gh-comment-id:3141392038 --> @nahidul292 commented on GitHub (Jul 31, 2025): > You would need to add a non-strict [`sourceType`](https://babeljs.io/docs/options#sourcetype) here: https://github.com/jehna/humanify/blob/main/src/babel-utils.ts#L11 I apologize would you mind to share a bit more details?
Author
Owner

@0xdevalias commented on GitHub (Aug 4, 2025):

SyntaxError: unknown: 'with' in strict mode. (5:4)

You would need to add a non-strict sourceType here: main/src/babel-utils.ts#L11

It's using Babel's transform:

Which takes these options:

The sourceType option in particular seems to mention strict mode, and defaults to module, which enforces strict mode; so maybe try the most appropriate of the others?:

  • https://babeljs.io/docs/options#sourcetype
    • sourceType

      Type: "script" | "module" | "commonjs" | "unambiguous"

      Default: "module"

      • "script" - Parse the file using the ECMAScript Script grammar. No import/export statements allowed, and files are not in strict mode.
      • "module" - Parse the file using the ECMAScript Module grammar. Files are automatically strict, and import/export statements are allowed.
      • "commonjs" - Parse the file as it will be run in a CommonJS environment. This option is recommended when transforming .cjs sources. See Parser docs for syntax differences between "script" and "commonjs".
      • "unambiguous" - Consider the file a "module" if import/export statements are present, or else consider it a "script".
<!-- gh-comment-id:3149026349 --> @0xdevalias commented on GitHub (Aug 4, 2025): > `SyntaxError: unknown: 'with' in strict mode. (5:4)` - https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Statements/with - > Note: Use of the `with` statement is not recommended, as it may be the source of confusing bugs and compatibility issues, makes optimization impossible, **and is forbidden in strict mode.** > You would need to add a non-strict [`sourceType`](https://babeljs.io/docs/options#sourcetype) here: [`main`/src/babel-utils.ts#L11](https://github.com/jehna/humanify/blob/main/src/babel-utils.ts?rgh-link-date=2025-07-31T21%3A05%3A36.000Z#L11) It's using Babel's `transform`: - https://babeljs.io/docs/babel-core#transform Which takes these options: - https://babeljs.io/docs/options The `sourceType` option in particular seems to mention strict mode, and defaults to `module`, which enforces strict mode; so maybe try the most appropriate of the others?: - https://babeljs.io/docs/options#sourcetype - > `sourceType` > > Type: `"script" | "module" | "commonjs" | "unambiguous"` > > Default: "module" > > - `"script"` - Parse the file using the ECMAScript Script grammar. No `import`/`export` statements allowed, and **files are not in strict mode.** > - `"module"` - Parse the file using the ECMAScript Module grammar. **Files are automatically strict**, and `import`/`export` statements are allowed. > - `"commonjs"` - Parse the file as it will be run in a CommonJS environment. This option is recommended when transforming `.cjs` sources. See [Parser docs](https://babeljs.io/docs/babel-parser#options) for syntax differences between `"script"` and `"commonjs"`. > - `"unambiguous"` - Consider the file a "module" if `import`/`export` statements are present, or else consider it a "script".
Sign in to join this conversation.
No milestone
No project
No assignees
1 participant
Notifications
Due date
The due date is invalid or out of range. Please use the format "yyyy-mm-dd".

No due date set.

Dependencies

No dependencies set.

Reference
starred/humanify#88
No description provided.