Skip to content

Commit 4a73bc8

Browse files
committed
CLJS-3306: subvecs must implement IAssociative -contains-key?
1 parent 8cb81db commit 4a73bc8

File tree

2 files changed

+14
-0
lines changed

2 files changed

+14
-0
lines changed

src/main/cljs/cljs/core.cljs

+4
Original file line numberDiff line numberDiff line change
@@ -5943,6 +5943,10 @@ reduces them without incurring seq initialization"
59435943
(if (number? key)
59445944
(-assoc-n coll key val)
59455945
(throw (js/Error. "Subvec's key for assoc must be a number."))))
5946+
(-contains-key? [coll key]
5947+
(if (integer? key)
5948+
(and (<= 0 key) (< key (- end start)))
5949+
false))
59465950

59475951
IFind
59485952
(-find [coll n]

src/test/cljs/cljs/core_test.cljs

+10
Original file line numberDiff line numberDiff line change
@@ -1844,3 +1844,13 @@
18441844
(is (false? (contains? nonempty-extended :c)))
18451845
(is (true? (contains? nonempty-extended :y)))
18461846
(is (false? (contains? nonempty-extended :z)))))
1847+
1848+
(deftest test-cljs-3306
1849+
(let [sv (subvec [0 1 2 3 4] 2 4)]
1850+
(is (true? (contains? sv 0)))
1851+
(is (false? (contains? sv 0.5)))
1852+
(is (true? (contains? sv 1)))
1853+
(is (false? (contains? sv 1.5)))
1854+
(is (false? (contains? sv :kw))))
1855+
(let [sv (subvec [0 1 2 3 4] 2 2)]
1856+
(is (false? (contains? sv 0)))))

0 commit comments

Comments
 (0)