- Fixed javascript-obfuscator#320
- Fixed javascript-obfuscator#319
- New option:
reservedStringsdisables transformation of string literals, which being matched by passed RegExp patterns - Fixed javascript-obfuscator#313
- Fixed javascript-obfuscator#309
- Fixed javascript-obfuscator#307
- Fixed javascript-obfuscator#303
- Fixed javascript-obfuscator#302
- Fixed javascript-obfuscator#293
- Fixed javascript-obfuscator#289
- Fixed javascript-obfuscator#288
- Browser version: Added browser version dist
- New Node API option:
inputFileNameallows to set name of the input file with source code. This name will used internally, for example, for source map generation. - #274
domainLocknow will work in SVG.
Fixed javascript-obfuscator#273 - Fixed javascript-obfuscator#271
- Fixed javascript-obfuscator#264
- Fixed javascript-obfuscator#260
- Fixed javascript-obfuscator#252
- Fixed javascript-obfuscator#247
- Correct obfuscation of object rest and spread properties
- Fixed javascript-obfuscator#243
- Internal change: switched AST parser from
esprimaonespree - Breaking change: dropped
node@4andnode@5support. - Breaking change: renamed
extensionvalue oftargetoption onbrowser-no-eval. - Breaking change: disabled generation of identifiers, which being matched by
reservedNameoption. Fixed javascript-obfuscator#216 - New CLI option:
excludeallows to exclude specific files or directories from obfuscation. - Correct obfuscation of
importandexportdeclarations. - Fixed javascript-obfuscator#231
- Fixed javascript-obfuscator#217
- Fixed javascript-obfuscator#210
- Internal: refactoring of many things.
- Fixed javascript-obfuscator#195
- Added code preview to
esprimaerror messages.
- Temporary fixed javascript-obfuscator#181
- New option:
identifiersPrefixsets prefix for all global identifiers. - New option:
transformObjectKeysenables object keys transformation and obfuscation. - New feature:
evalexpressions obfuscation. - Breaking change: Now CLI obfuscating directory recursively. Fixed javascript-obfuscator#157
- Fixed runtime errors when
deadCodeInjectionis enabled andidentifierNamesGeneratoris set tomangled. - Fixed javascript-obfuscator#171
- Fixed javascript-obfuscator#166
- Fixed javascript-obfuscator#156
- Fixed javascript-obfuscator#159
- Breaking change:
mangleoption was removed. - New option:
identifierNamesGeneratorallows to set identifier names generator (hexadecimalormangled). - Breaking change: all CLI options were renamed to
kebab-caseformat (--disableConsoleOutout->--disable-console-output). - Implemented custom
mangleoption algorithm withoutesmangle; fixed javascript-obfuscator#110 - Comments with
@licenseand@preservewords won't be removed from obfuscated code. - Fixed javascript-obfuscator#147
- Fixed javascript-obfuscator#149
- Fixed javascript-obfuscator#129
- Fixed javascript-obfuscator#125 (dead code injection and await expression)
- Fixed javascript-obfuscator#123
- Fixed javascript-obfuscator#121
- Fixed javascript-obfuscator#119
- New option:
targetallows to set target environment for obfuscated code. - Added ability to disable and enable obfuscation for specific parts of the code by adding conditional comments.
- Added obfuscation of
es2015class names. - CLI: added directory obfuscation.
- Fixed javascript-obfuscator#98
- Fixed javascript-obfuscator#94
- New option:
logenables logging of the information to the console. - New option:
renameGlobalsallows to enable obfuscation of global variable and function names with declaration.
- Fixed javascript-obfuscator#78
- Fixed javascript-obfuscator#76
- New option:
deadCodeInjection. With this option random blocks of dead code will add to the obfuscated code. - New option:
deadCodeInjectionThresholdallows to set percentage of nodes that will affected bydeadCodeInjection. - New option:
mangleenables mangling of variable names. - New CLI option:
--configallows to set config file with obfuscator options. - Breaking change:
disableConsoleOutputoption now disabled by default. - Breaking change:
escapeUnicodeSequenceoption now disabled by default. controlFlowFlatteningnow affects string literal nodes.- Increased runtime performance with
rc4stringArrayEncoding. - Added support for async functions
- Fixed javascript-obfuscator#71
- Fixed javascript-obfuscator#65
- Fixed javascript-obfuscator#60
- Fixed javascript-obfuscator#59
- Fixed javascript-obfuscator#54
- Fixed javascript-obfuscator#57
- Fixed javascript-obfuscator#58
- Fixed javascript-obfuscator#58
- Switched from
escodegentoescodegen-wallaby, fixed javascript-obfuscator#50
- Removed coverage dir from npm package
- Fixed javascript-obfuscator#37
- Breaking change: dropped
[email protected]and[email protected]support. - New option:
controlFlowFlatteningallows to enable/disable Control Flow flattening. Control flow flattening is a structure transformation of the source code that hinders program comprehension. - New option:
controlFlowFlatteningThresholdallows to set percentage of nodes that will affected bycontrolFlowFlattening. - Significantly increased obfuscation performance.
- Huge internal refactoring.
- Better
es2015support: correct obfuscation ofTemplateLiteral,ArrayPattern,AssignmentPatternnodes. - Switched from
npmtoyarninternally. - Various bug fixes.
- Increased performance
- Fixed very rare
Cannot read property 'type' of undefinederror, whenRandomGeneratorUtils.getMathRandom()returned incorrect value1.
- Increased performance
- Breaking change: dropped
[email protected]and[email protected]support. - Switched from
npmtoyarninternally.
- Transformers refactoring
- New option:
controlFlowFlatteningallows to enable/disable Control Flow flattening. Control flow flattening is a structure transformation of the source code that hinders program comprehension. - New option:
controlFlowFlatteningThresholdallows to set percentage of nodes that will affected bycontrolFlowFlattening. - Better
es2015support: correct obfuscation ofTemplateLiteral,ArrayPattern,AssignmentPatternnodes. - Obfuscation performance boost.
- Huge internal refactoring.
- Various bug fixes.
- Additional fixes for javascript-obfuscator#29
- Fixed javascript-obfuscator#29
selfDefendingoption now disabled by default.
- New option
seedsets seed for random generator. This is useful for creating repeatable results. - IE8 runtime error fix.
disableConsoleOutputoption now replacesconsole.xxxfunctions on empty function instead of infinity loop.
- Breaking options change:
unicodeArrayoption has been renamed tostringArray. - Breaking options change:
unicodeArrayThresholdoption has been renamed tostringArrayThreshold. - Breaking options change:
encodeUnicodeArrayoption has been renamed tostringArrayEncodingand now accepts following values:true|false|'base64'|'rc4'. - Breaking change: option
wrapUnicodeArrayCallswas removed and now all calls tostringArrayare always wrapped by special wrapper function. - New option
unicodeEscapeSequenceallows to enable/disable strings conversion to unicode escape sequence. - New option
domainLocklocks the obfuscated source code so it only runs on specific domains and/or sub-domains. - New option
sourceMapBaseUrlsets base url to the source map import url whensourceMapMode: 'separate'. - Custom nodes like
selfDefendingNodeorconsoleOutputNodenow inserted into deepest stack trace function call. - Fixed obfuscation of global variables and function names in some cases.
- Fixed wrong obfuscation of labels.
- Rewrite of many custom nodes.
- CLI missing polyfill fix #17
- IE error fix #14
- Obfuscator now returns an empty string instead of obfuscated code if source code is empty
- Fix of incorrect
Utils.decToHexmethod
- Breaking API change: now
obfuscate(sourceCode, options)returnsObfuscationResultobject insteadstring.ObfuscationResultobject contains two public methods:getObfuscatedCode()andgetSourceMap(). - CLI. Now any code can be obfuscated through CLI
javascript-obfuscatorcommand. SeeREADME.mdfor available options. - New option
sourceMapenables source map generation for obfuscated code. - New option
sourceMapModespecifies source map generation mode.