I've lost count of how many times I've broken production because of ClojureScript's advanced compilation and use of the dot + dash (.-) JS property access operator.

My advice: Never use .-

#clojurescript

TIL: It seems that ^js metadata has a _global_ effect. This might bite you if you remove ^js from one function; things might break somewhere else
@rap1ds Ugh, now that you mention it, it seems obvious, but oh dear.

@Ardubal Yeah indeed, kinda obvious but at the same time unusual.

What I don't know is if there's order dependency, I mean, what happens if the compiler compiles `my-fn-2` first? Will it mangle `.-something`? Or is there separate analysis phase where the compiler first checks which names should not be mangled? 🤷

@rap1ds As far as I know, ClojureScript does more or less the same as Clojure: compile each toplevel form separately in the order given.