Closed mfikes closed 2 years ago
If you specify options to t/writer with :checked-arrays enabled, this code will trigger.
t/writer
:checked-arrays
Here is a working example without the compiler flag:
$ clj -Srepro -Sdeps '{:deps {org.clojure/clojurescript {:mvn/version "1.10.520"} com.cognitect/transit-cljs {:mvn/version "0.8.256"} com.cognitect/transit-js {:mvn/version "0.8.861"}}}' -m cljs.main -re node -r ClojureScript 1.10.520 cljs.user=> (require '[cognitect.transit :as t]) nil cljs.user=> (t/write (t/writer :json {:transform t/write-meta}) ^:foo [1 2]) "[\"~#with-meta\",[[1,2],[\"^ \",\"~:foo\",true]]]"
And here is an example with the flag enabled at the :warn level:
:warn
$ clj -Srepro -Sdeps '{:deps {org.clojure/clojurescript {:mvn/version "1.10.520"} com.cognitect/transit-cljs {:mvn/version "0.8.256"} com.cognitect/transit-js {:mvn/version "0.8.861"}}}' -m cljs.main -co '{:checked-arrays :warn}' -re node -r ClojureScript 1.10.520 cljs.user=> (require '[cognitect.transit :as t]) nil cljs.user=> (t/write (t/writer :json {:transform t/write-meta}) ^:foo [1 2]) Error: Assert failed: (or (array? array) (goog/isArrayLike array)) at Function.cljs.core.checked_aget.cljs$core$IFn$_invoke$arity$2 (/private/var/folders/yw/77skdn6s2099kb4_43vvrg1c0000gn/T/out5495452781688741529186887019006156/cljs/core.js:524:8) at cljs$core$checked_aget (/private/var/folders/yw/77skdn6s2099kb4_43vvrg1c0000gn/T/out5495452781688741529186887019006156/cljs/core.js:490:31) at cognitect$transit$opts_merge (/private/var/folders/yw/77skdn6s2099kb4_43vvrg1c0000gn/T/out5495452781688741529186887019006156/cognitect/transit.js:132:37) at Function.cognitect.transit.writer.cljs$core$IFn$_invoke$arity$2 (/private/var/folders/yw/77skdn6s2099kb4_43vvrg1c0000gn/T/out5495452781688741529186887019006156/cognitect/transit.js:906:97) at cognitect$transit$writer (/private/var/folders/yw/77skdn6s2099kb4_43vvrg1c0000gn/T/out5495452781688741529186887019006156/cognitect/transit.js:883:33) at repl:1:148 at repl:9:3 at repl:14:4 at ContextifyScript.Script.runInThisContext (vm.js:50:33) at Object.runInThisContext (vm.js:139:38) Error: Assert failed: (or (array? array) (goog/isArrayLike array)) at Function.cljs.core.checked_aset.cljs$core$IFn$_invoke$arity$3 (/private/var/folders/yw/77skdn6s2099kb4_43vvrg1c0000gn/T/out5495452781688741529186887019006156/cljs/core.js:601:8) at cljs$core$checked_aset (/private/var/folders/yw/77skdn6s2099kb4_43vvrg1c0000gn/T/out5495452781688741529186887019006156/cljs/core.js:567:31) at cognitect$transit$opts_merge (/private/var/folders/yw/77skdn6s2099kb4_43vvrg1c0000gn/T/out5495452781688741529186887019006156/cognitect/transit.js:133:24) at Function.cognitect.transit.writer.cljs$core$IFn$_invoke$arity$2 (/private/var/folders/yw/77skdn6s2099kb4_43vvrg1c0000gn/T/out5495452781688741529186887019006156/cognitect/transit.js:906:97) at cognitect$transit$writer (/private/var/folders/yw/77skdn6s2099kb4_43vvrg1c0000gn/T/out5495452781688741529186887019006156/cognitect/transit.js:883:33) at repl:1:148 at repl:9:3 at repl:14:4 at ContextifyScript.Script.runInThisContext (vm.js:50:33) at Object.runInThisContext (vm.js:139:38) "[\"~#with-meta\",[[1,2],[\"^ \",\"~:foo\",true]]]"
Fixed in master.
If you specify options to
t/writer
with:checked-arrays
enabled, this code will trigger.Here is a working example without the compiler flag:
And here is an example with the flag enabled at the
:warn
level: