Releases: javascript-obfuscator/javascript-obfuscator
Releases · javascript-obfuscator/javascript-obfuscator
Release list
5.5.0 version
- Pro API: reworked large file uploads — fixed
413 Content Too Largefor ~4.4–4.6MB request bodies, and Blob uploads now send the raw source (blobFormat: 'raw') instead of the JSON request body, so uploads always fit the plan's file size cap
5.4.7 version
- Fixed directory obfuscation with a set
sourceMapFileNamemaking all files share and overwrite one.map. Fixes #817 - Fixed CLI
--configfailures hiding the real cause behind a genericCannot open config filemessage. Fixes #1101 - Fixed
sourceMapFileNameending in.js.map(e.g.foo.min.js.map) being mangled in the emitted//# sourceMappingURL=comment. Fixes #1312 - Fixed
URIError: URI malformedcrash whenstringArraywithbase64/rc4encoding processed a string literal containing lone surrogate code units (e.g."[^\uD800-\uDFFF]"). Fixes #1431 - Bumped the production
brace-expansiontransitive dependency to a patched version, resolvingCVE-2026-25547. Fixes #1405
5.4.6 version
- Fixed unicode (
\uXXXX,\u{XXXX}) and hex (\xXX) escape sequences of string literals being un-escaped into their literal characters during obfuscation. Fixes #345
5.4.5 version
- Fixed
controlFlowFlatteningintermittently dropping arguments of a spread call (e.g.foo(...args)) when it reused a control flow wrapper of a same-arity plain call. Fixes #1423 - Fixed
selfDefendingmaking obfuscated code run several times slower on Bun/JavaScriptCore. Fixes #1421 - Fixed dropped parentheses around an
inoperator inside an arrow body in afor-init, producing unparsable output. Fixes #1419
5.4.4 version
- Optimized scope identifiers transformer performance
- Optimized identifier renaming performance by reusing scope analysis between transformers
- Fixed
Invalid regular expressionerror when obfuscating code that uses ES2025 RegExp pattern modifiers (e.g./(?i:abc)/). Fixes #1410 - Fixed
SyntaxErrorwhen obfuscating a class that extends a boolean literal (e.g.class C extends true {}). Fixes #1131
5.4.3 version
- Fixed
controlFlowFlatteningoccasionally dropping the?.short-circuit onfoo?.(arg)calls, causingTypeError: <X> is not a function. Fixes #1408
5.4.2 version
- Fixed obfuscated code hanging in Bun when
selfDefendingis enabled. Fixes #1404
5.4.1 version
- Fixed
Utils.nodeRequirecausingReferenceError: require is not definedin 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
domainLockbeing case-sensitive — domain values are now normalized to lowercase. Fixes #1182 - Removed
source-map-supportruntime dependency. Usenode --enable-source-mapsinstead. Fixes #1149
5.4.0 version
- Add support for
import attributes. Fixes #1256 - Add
renamePropertiessupport for private class fields and methods (#foo,#bar()). Fixes #1220 - Fixed
reservedNamesnot preserving class method and property names whenstringArrayordeadCodeInjectionis enabled. Fixes #1279 - Fixed infinite loop / stack overflow when
reservedNamespatterns match all generated identifier names. Now throws a descriptive error instead. Fixes #1382 - Fixed
transformObjectKeyschanging 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
renameGlobalsis disabled. Fixes #1141 - Fixed CLI
--options-presetnot applying preset values for options not explicitly set via command line (e.g.splitStringsfromhigh-obfuscationpreset was ignored). Fixes #1236 - Replaced
mkdirpdependency with nativefs.mkdirSync({ recursive: true }). Fixes #1275. Thank you https://github.com/roli-lpci! - Updated reserved DOM properties list, fixing
renamePropertiesbreaking modern built-in methods likeArray.prototype.at(). Fixes #1066 - Replaced
confdependency with custom implementation usingenv-pathsand nativefs
5.3.1 version
- 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