ClojureScript Dos and Donts: clj->js

Macros work on Clojure forms - they do not introspect vars.

The best way is to wrap button-default and button-warning in a clj->js so that it happens once, at def-time.

I’ve experimented with this optimization a bit with the hiccup compiler I’m building - it will shallowly convert map literals to JS objects, but will wait until runtime to convert vars.