Please sign in to comment.
CLJS-1188: multi-arity fns hinder cross-module code motion
This patch makes all top level function definitions completely static, we never issue an invoke to produce a top-level function value. This is accomplished by duplicating and further enhancing the fn emission logic in cljs.compiler at the macro level. The enhancements are entirely around eliminating invokes and any property aliasing. While useful in expression contexts, at the top level both of these approaches in cljs.compiler defeat cross module code motion. - test-simple should clean builds - cljs.analyzer * remove :method info, never used * read fn information from :top-fn meta if available - cljs.closure * enhance module build reporting - cljs.core * move clojure.core/defn macro + helpers directly into macro ns * handle top level multi-arity & variadic fns - cjls.compiler-tests * include some examples
- Loading branch information...
Showing with 298 additions and 54 deletions.
Oops, something went wrong.