(defn
assert*
"Do not call this directly, use 'assert'."
[spec x]
(if
(valid? spec x)
x
(let
[ed
(c/merge
(assoc
(explain-data* spec [] [] [] x)
:clojure.core/failure
:assertion-failed))]
(throw
(js/Error.
(str
"Spec assertion failed\n"
(with-out-str (explain-out ed))))))))