Bedingte Kommentare
Mit speziellen Kommentaren können Sie die Obfuskierung für bestimmte Teile Ihres Codes gezielt deaktivieren.
Das ist nützlich, wenn bestimmte Konfigurationsblöcke oder Versions-Strings in der Ausgabe lesbar bleiben sollen, ohne dass Sie für den Rest der Datei auf die Obfuskierung verzichten müssen.
Der Obfuscator liest diese Kommentare aus seiner Eingabe. Erhalten Sie sie daher in allen Build-Schritten, die vor der Obfuskierung laufen; ein Minifier, der vorher Kommentare entfernt, löscht auch diese.
Was „disable“ tatsächlich überspringt
Ein deaktivierter Bereich überspringt nur direkte Transformationen der Knoten darin, also die Obfuskierung einer Deklaration an der Stelle, an der sie deklariert wird. Kind-Transformationen werden weiterhin angewendet. Eine Referenz innerhalb eines deaktivierten Blocks auf einen Bezeichner, der an seiner Deklaration an anderer Stelle umbenannt wurde, wird daher trotzdem umbenannt:
Wenn ein Name überall, wo er vorkommt, lesbar bleiben soll, reicht es nicht, einen Block zu deaktivieren; halten Sie auch seine Deklaration aus obfuskierten Bereichen heraus oder verwenden Sie reservedNames.
Unter vmObfuscation wirkt disable nur auf ganze Funktionen. Eine Funktion innerhalb eines deaktivierten Bereichs wird nicht virtualisiert. Ein deaktivierter Bereich, der innerhalb einer virtualisierten Funktion verschachtelt ist, wird trotzdem in Bytecode kompiliert, zusammen mit dem restlichen Rumpf dieser Funktion; die lesbare Form bleibt nicht erhalten. Nur Code, der auf der obersten Ebene (außerhalb jeder virtualisierten Funktion) deaktiviert ist, bleibt in der Ausgabe unverändert.
