步骤
(def foo (let [bar "baz"]
(reify Object)))
(.stringify js/JSON (clj->js foo))
或单行脚本
clj -Srepro -Sdeps '{:deps {org.clojure/clojurescript {:mvn/version
"1.10.520"}}}' -m cljs.main -re node -e '(def foo (let [bar "baz"]
(reify Object))) (.stringify js/JSON (clj->js foo))'
实际
输出了出人意料的bar
变量值,如果出错并暴露敏感数据,则可能很危险
"{\"bar\":\"baz\",\"meta529\":{\"meta\":null,\"cnt\":0,\"arr\":[],\"__hash\":-15128758,\"cljs$lang$protocol_mask$partition0$\":16647951,\"cljs$lang$protocol_mask$partition1$\":139268},\"cljs$lang$protocol_mask$partition0$\":393216,\"cljs$lang$protocol_mask$partition1$\":0}"
期望
输出中没有bar