Make JSValue be serializable

Description

If you have code like (let [#js [1] 3]), 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.

Environment

None

Assignee

David Nolen

Reporter

Mike Fikes

Labels

None

Approval

None

Patch

Code and Test

Priority

Minor
Configure