I'd like to know more about how it picks variable names. Running it on non-obfuscated code is amusing. It occasionally comes up with better names for my variables than the ones I had picked.
I tried to de-obfuscate some HTML5 games that I made and the result was bad, marginally better than some naive JS beautifiers.<p>Yes, we all know that it's pointless to obfuscate client side code, but this serves as a simple deterrent. I've had games copied/pasted on some Chinese website and this seems to avoid that.<p>I used this [0] to obfuscate, which is free and open-source. You can also try it online here [1] if you don't feel like installing the Node.js package just for playing with it.<p>disclosure: I built the web interface [1] to the obfuscator, which is also open source.<p>[0]: <a href="https://github.com/javascript-obfuscator/javascript-obfuscator" rel="nofollow">https://github.com/javascript-obfuscator/javascript-obfuscat...</a>
[1]: <a href="https://javascriptobfuscator.herokuapp.com/" rel="nofollow">https://javascriptobfuscator.herokuapp.com/</a>
I'm a big fan of JSNice - it's easily the best JS beautifier I've used. It's twice saved my bacon, really helping to make sense of some horrible, buggy third-party code.