Some code has different semantics when compiled in advanced mode.
Clojurescript tries to minimize those cases, but examples are usage of aget or forgotten externs files.
There exits closure compiler options to generate names based on original expressions, even with advanced optimizations.
However, there exists no clojurescript compiler option for that.
Add a :debug compiler option to clojurescript, which can be set to true to turn the following closure compiler options on:
- generatePseudoNames true
- anonymousFunctionNaming AnonymousFunctionNamingPolicy/UNMAPPED
Attached patch implements this, as a result the compiled test suite is indeed quite readable.