...specifically, anything that is otherwise covered by cljs.core/base-type:
Extending protocols to any of these is impolite (pollution of shared prototypes, esp. after Google Closure compilation), and leads to undefined behaviour, e.g.:
(defprotocol P (m [this]))
(m [this] "hi"))
ClojureScript:cljs.user> (m true)
ClojureScript:cljs.user> (m false)
"Error evaluating:" (m false) :as "cljs.user.m.call(null,false)"
The warning should suggest the symbol that should be used to name the intended type, e.g. number instead of js/Number.