λ clj -Srepro -Sdeps '{:deps {org.clojure/clojurescript {:mvn/version "1.10.879"}}}' -M -m cljs.main --repl-env node -e '(defn destr [& {:keys [a b] :as opts}] [a b opts]) (destr {:a 1})'
#'cljs.user/destr
[nil nil {{:a 1} nil}]
对比之下。
λ clj -Srepro -Sdeps '{:deps {org.clojure/clojurescript {:mvn/version "1.10.891"}}}' -M -m cljs.main --repl-env node -e '(defn destr [& {:keys [a b] :as opts}] [a b opts]) (destr {:a 1})'
#'cljs.user/destr
(node:62287) [DEP0097] DeprecationWarning: Using a domain property in MakeCallback is deprecated. Use the async_context variant of MakeCallback or the AsyncResource class instead. (Triggered by calling emit on process.)
(Use `node --trace-deprecation ...` to show where the warning was created)
Execution error (ExceptionInfo) at cljs.repl/evaluate-form (repl.cljc:577).
Execution error (Error) at (<cljs repl>:1).
No value supplied for key: {:a 1}
(Node.js弃用警告与此无关。)
1.10.891 与 Clojure 1.10.2 及更早版本行为相同,因此我认为这不是错误,但如果这种更改是故意的,可能在发行说明中提及可能更好。