Semi-modular ECMAScript deobfuscator
// before
if (something) doSomething()
// after
if (something) {
doSomething()
}
// before
console.log(![])
console.log(!![])
// after
console.log(false)
console.log(true)
TODO
// before
function test() {
return console.log('b'), 'a'
}
// after
function test() {
console.log('b')
return 'a'
}
// before
if (null == a) {}
// after
if (a == null) {}
// before
a && console.log('b')
// after
if (a) {
console.log('b')
}
TODO
TODO
// before
function test() {
{
console.log('a')
}
}
// after
function test() {
console.log('a')
}
// before
function test() {
var a = 1, b = 2
}
// after
function test() {
var a = 1
var b = 2
}
// before
console['log']('a')
// after
console.log('a')
// before
function a() {
return 1
}
console.log(a())
// after
console.log(1)
// before
function test() {
if (1 == 1) {
console.log('a')
}
}
// after
function test() {
console.log('a')
}
// before
console.log('a' + 'b')
// after
console.log('ab')
TODO
// before
var a = void 0
// after
var a = undefined