Skip to content

Commit

Permalink
* correct doc string
Browse files Browse the repository at this point in the history
* support vars
* add test case
  • Loading branch information
swannodette committed Feb 27, 2024
1 parent fdff564 commit 15bc1af
Show file tree
Hide file tree
Showing 2 changed files with 25 additions and 6 deletions.
13 changes: 10 additions & 3 deletions src/main/cljs/cljs/core.cljs
Original file line number Diff line number Diff line change
Expand Up @@ -11886,10 +11886,17 @@ reduces them without incurring seq initialization"
x))

(defn test
"test [v] finds fn at key :test in var metadata and calls it,
presuming failure will throw exception"
"test [v] - if var, finds fn at key :test in var metadata, if function, finds
special test property. Calls it, presuming failure will throw exception.
Examples:
(test my-fn) ;; :ok
(test #'my-fn) ;; :ok"
[v]
(let [f (.-cljs$lang$test v)]
(let [f (if (instance? Var v)
(-> v meta :test)
(some-> v .-cljs$lang$test))]
(if f
(do (f) :ok)
:no-test)))
Expand Down
18 changes: 15 additions & 3 deletions src/test/cljs/cljs/core_test.cljs
Original file line number Diff line number Diff line change
Expand Up @@ -2006,7 +2006,7 @@
IDeref
(-deref [_]
(:x @a))

ISwap
(-swap! [o f]
(:x (swap! a update :x f)))
Expand All @@ -2016,7 +2016,7 @@
(:x (swap! a update :x f x y)))
(-swap! [o f x y zs]
(:x (swap! a #(apply update % :x f x y zs))))

IReset
(-reset! [o new-value]
(:x (swap! a assoc :x new-value))))]
Expand All @@ -2031,7 +2031,7 @@
(is (= 11 @c))
(is (= 0 (reset! c 0)))
(is (= 0 @c))

(is (= [0 1] (swap-vals! c inc)))
(is (= 1 @c))
(is (= [1 2] (swap-vals! c + 1)))
Expand All @@ -2042,3 +2042,15 @@
(is (= 11 @c))
(is (= [11 0] (reset-vals! c 0)))
(is (= 0 @c)))))

(defn cljs-3411-function
"this function adds two numbers"
{:test #(do
(assert (= (cljs-3411-function 2 3) 5))
(assert (= (cljs-3411-function 4 4) 8)))}
([x y] (+ x y)))

(deftest cljs-3411
(testing "cljs.core/test respects docstring"
(is (= :ok (test cljs-3411)))
(is (= :ok (test #'cljs-3411)))))

0 comments on commit 15bc1af

Please sign in to comment.