If you have code like 1. }, the {{JSValue}} is placed in the resulting compiler exception. Since {{JSValue}} is not serializable (it is just a plain {{deftype}}), this evidently causes an issue in environments expecting exceptions to be serializable ({{boot}} is evidently one).
Notes: Simply changing to {{defrecord}} causes unit tests to fail for some reason. Also, see CLJS-1898.