使用ClojureScript 1.10.238,如果您在一个用{{cljs.spec.test.alpha/instrument}}规格化的函数上调用{{.apply}}并传入超过21个参数,则会收到有关无效参数数的错误。这种情况在ClojureScript 1.9.954中并不会出现。
`
(require '[cljs.spec.alpha :as s] '[cljs.spec.test.alpha :as stest])
(defn my-fun [& args] (prn :args args))
(s/fdef my-fun :args (s/cat :args (s/* any?)))
(.apply my-fun nil (into-array (range 22)))
;; :args (0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21)
(stest/instrument)
(.apply my-fun nil (into-array (range 22)))
;; 错误:无效的参数数:22
;; 在Function.G__10112 [as call] (.../cljs/core.js:6798:7)
;; 在Function.cljs.core.MetaIFn.apply (.../cljs/core.js:6829:24)
;; 在repl:1:96
`
常规{{apply}}按预期工作。