Skip to content

Commit c3899ac

Browse files
spinningtopsofdoomdnolen
spinningtopsofdoom
authored and
dnolen
committed
LJS-1590: split, split-lines differs from Clojure on empty string
Only discard training if split generates more than one element
1 parent c31e91f commit c3899ac

File tree

2 files changed

+7
-1
lines changed

2 files changed

+7
-1
lines changed

src/main/cljs/clojure/string.cljs

+1-1
Original file line numberDiff line numberDiff line change
@@ -119,7 +119,7 @@
119119

120120
(defn- discard-trailing-if-needed
121121
[limit v]
122-
(if (== 0 limit)
122+
(if (and (== 0 limit) (< 1 (count v)))
123123
(pop-last-while-empty v)
124124
v))
125125

src/test/cljs/cljs/core_test.cljs

+6
Original file line numberDiff line numberDiff line change
@@ -3132,6 +3132,12 @@
31323132
(is (= (hash-set Infinity -Infinity 0 1 2 3 4 5 6 7 8)
31333133
(set (keys (zipmap [Infinity -Infinity 0 1 2 3 4 5 6 7 8] (repeat nil)))))))
31343134

3135+
(deftest test-cljs-1590
3136+
(is (= [""] (s/split "" #"\n")))
3137+
(is (= [] (s/split "\n\n\n" #"\n")))
3138+
(is (= [""] (s/split-lines "")))
3139+
(is (= [] (s/split-lines "\n\n\n"))))
3140+
31353141
(comment
31363142
;; ObjMap
31373143
;; (let [ks (map (partial str "foo") (range 500))

0 commit comments

Comments
 (0)