Skip to content

Releases: javascript-obfuscator/javascript-obfuscator

5.4.2 version

24 Apr 05:30

Choose a tag to compare

  • Fixed obfuscated code hanging in Bun when selfDefending is enabled. Fixes #1404

5.4.1 version

22 Mar 13:25
dd62fea

Choose a tag to compare

  • Fixed Utils.nodeRequire causing ReferenceError: require is not defined in browser build by making it lazy-evaluated
  • Fixed missing space between keywords (return, throw, typeof) and Unicode surrogate pair identifiers in compact mode. Fixes #1112
  • Fixed domainLock being case-sensitive β€” domain values are now normalized to lowercase. Fixes #1182
  • Removed source-map-support runtime dependency. Use node --enable-source-maps instead. Fixes #1149

5.4.0 version

22 Mar 09:05
84861e8

Choose a tag to compare

  • Add support for import attributes. Fixes #1256
  • Add renameProperties support for private class fields and methods (#foo, #bar()). Fixes #1220
  • Fixed reservedNames not preserving class method and property names when stringArray or deadCodeInjection is enabled. Fixes #1279
  • Fixed infinite loop / stack overflow when reservedNames patterns match all generated identifier names. Now throws a descriptive error instead. Fixes #1382
  • Fixed transformObjectKeys changing evaluation order when object expression is inside a sequence expression with preceding side effects (e.g. return aux(ys), { min }). Fixes #1246
  • Fixed destructuring patterns inside class static blocks not being renamed when renameGlobals is disabled. Fixes #1141
  • Fixed CLI --options-preset not applying preset values for options not explicitly set via command line (e.g. splitStrings from high-obfuscation preset was ignored). Fixes #1236
  • Replaced mkdirp dependency with native fs.mkdirSync({ recursive: true }). Fixes #1275. Thank you https://github.com/roli-lpci!
  • Updated reserved DOM properties list, fixing renameProperties breaking modern built-in methods like Array.prototype.at(). Fixes #1066
  • Replaced conf dependency with custom implementation using env-paths and native fs

5.3.1 version

21 Mar 17:01
7792fb0

Choose a tag to compare

  • Fixed class expression name references inside class body being incorrectly resolved to an import binding with the same name, causing broken code at runtime. Fixes #1386

5.3.0 version

04 Feb 16:28

Choose a tag to compare

  • Add Pro API support to CLI
  • Add large files upload support to Pro API

5.2.1 version

28 Jan 05:15
6864328

Choose a tag to compare

  • Fixed transformObjectKeys incorrectly hoisting object literal outside of loop when loop body is a single statement without braces, causing all iterations to share the same object reference. Fixes #1300
  • Fixed parsing error when await is used as an identifier in non-async context. Fixes #1127
  • Fixed deadCodeInjection causing SyntaxError when arguments from collected block statements was injected into class field initializers or static initialization blocks. Fixes #1166
  • Fixed transformObjectKeys with mangled identifier generator causing variable shadowing when extracted object variable name matched an existing inner scope variable. Fixes #1232

5.2.0 version

27 Jan 14:25
3848bca

Choose a tag to compare

  • Skip obfuscation of process.env.*
  • Fixed controlFlowFlattening breaking short-circuit evaluation with spread operator and conditional objects. Fixes #1372
  • Fix Annex B function hoisting: block-scoped function declarations are now correctly linked to references outside the block in non-strict mode
  • Fixed NodeUtils.cloneRecursive corrupting range property when cloning AST nodes, causing scope analysis to incorrectly resolve destructuring default parameter references

5.1.0 version

13 Dec 15:48
6866396

Choose a tag to compare

  • Add version parameter to the apiConfig to use different versions JavaScript Obfuscator Pro via API

5.0.0 version

06 Dec 20:04

Choose a tag to compare

  • Add JavaScript Obfuscator PRO support via calling its API

4.2.1 version

04 Dec 14:47
3bb9b18

Choose a tag to compare

  • Downgrade multimatch version to avoid esm errors