Welcome! Please see the About page for a little more info on how this works.

0 votes
in ClojureScript by

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.

3 Answers

0 votes
by

Comment made by: mfikes

The problem with using {{defrecord}} for {{JSValue}} appears to be rooted in the need for some core functions that are not yet available when bootstrapping.

The attached patch takes a less aggressive approach and simply makes {{JSValue}} be {{Serializable}}, along with testing this aspect under Clojure.

0 votes
by

Comment made by: mfikes

CLJS-2813.patch added to Patch Tender (i)

0 votes
by
Reference: https://clojure.atlassian.net/browse/CLJS-2813 (reported by mfikes)
...