Deep Obfuscation is an advanced form of Name Mangling that pushes identifier reuse further to make the final code harder to follow.
What it does
Instead of only shortening names, Deep Obfuscation tries to make more identifiers share the same short names when that can be done safely. This increases ambiguity for anyone trying to trace logic manually.
Example
Without Deep Obfuscation:
function a(b, c) {
function(d, e) {
}
}
With Deep Obfuscation enabled:
function a(a, b) {
function(a, b) {
}
}
Use it when: you already want Name Mangling, but you need a stronger result and are comfortable testing the output more carefully before release.