Skip to content

Commit 5215ccd

Browse files
committed
Merge branch 'master' into str-no-idx-seq
# Conflicts: # src/main/cljs/cljs/core.cljs
2 parents f748207 + 078d59d commit 5215ccd

File tree

1 file changed

+29
-21
lines changed

1 file changed

+29
-21
lines changed

src/main/cljs/cljs/core.cljs

Lines changed: 29 additions & 21 deletions
Original file line numberDiff line numberDiff line change
@@ -10543,6 +10543,14 @@ reduces them without incurring seq initialization"
1054310543
(implements? IMeta obj)
1054410544
(not (nil? (meta obj)))))
1054510545

10546+
(defn- pr-map-entry [k v]
10547+
(reify
10548+
IMapEntry
10549+
(-key [_] k)
10550+
(-val [_] v)
10551+
ISeqable
10552+
(-seq [_] (IndexedSeq. #js [k v] 0 nil))))
10553+
1054610554
(defn- pr-writer-impl
1054710555
[obj writer opts]
1054810556
(cond
@@ -10580,12 +10588,9 @@ reduces them without incurring seq initialization"
1058010588
(.map
1058110589
(js-keys obj)
1058210590
(fn [k]
10583-
(reify
10584-
IMapEntry
10585-
(-key [_]
10586-
(cond-> k (some? (.match k #"^[A-Za-z_\*\+\?!\-'][\w\*\+\?!\-']*$")) keyword))
10587-
(-val [_]
10588-
(unchecked-get obj k)))))
10591+
(pr-map-entry
10592+
(cond-> k (some? (.match k #"^[A-Za-z_\*\+\?!\-'][\w\*\+\?!\-']*$")) keyword)
10593+
(unchecked-get obj k))))
1058910594
pr-writer writer opts))
1059010595

1059110596
(array? obj)
@@ -10754,20 +10759,22 @@ reduces them without incurring seq initialization"
1075410759
(keyword nil (name named))))
1075510760

1075610761
(defn- lift-ns
10757-
"Returns [lifted-ns lifted-map] or nil if m can't be lifted."
10762+
"Returns #js [lifted-ns lifted-map] or nil if m can't be lifted."
1075810763
[m]
1075910764
(when *print-namespace-maps*
10760-
(loop [ns nil
10761-
[[k v :as entry] & entries] (seq m)
10762-
lm (empty m)]
10763-
(if entry
10764-
(when (or (keyword? k) (symbol? k))
10765-
(if ns
10766-
(when (= ns (namespace k))
10767-
(recur ns entries (assoc lm (strip-ns k) v)))
10768-
(when-let [new-ns (namespace k)]
10769-
(recur new-ns entries (assoc lm (strip-ns k) v)))))
10770-
[ns lm]))))
10765+
(let [lm #js []]
10766+
(loop [ns nil
10767+
[[k v :as entry] & entries] (seq m)]
10768+
(if entry
10769+
(when (or (keyword? k) (symbol? k))
10770+
(if ns
10771+
(when (= ns (namespace k))
10772+
(.push lm (pr-map-entry (strip-ns k) v))
10773+
(recur ns entries))
10774+
(when-let [new-ns (namespace k)]
10775+
(.push lm (pr-map-entry (strip-ns k) v))
10776+
(recur new-ns entries))))
10777+
#js [ns lm])))))
1077110778

1077210779
(defn print-prefix-map [prefix m print-one writer opts]
1077310780
(pr-sequential-writer
@@ -10780,10 +10787,11 @@ reduces them without incurring seq initialization"
1078010787
opts (seq m)))
1078110788

1078210789
(defn print-map [m print-one writer opts]
10783-
(let [[ns lift-map] (when (map? m)
10784-
(lift-ns m))]
10790+
(let [ns&lift-map (when (map? m)
10791+
(lift-ns m))
10792+
ns (some-> ns&lift-map (aget 0))]
1078510793
(if ns
10786-
(print-prefix-map (str_ "#:" ns) lift-map print-one writer opts)
10794+
(print-prefix-map (str_ "#:" ns) (aget ns&lift-map 1) print-one writer opts)
1078710795
(print-prefix-map nil m print-one writer opts))))
1078810796

1078910797
(extend-protocol IPrintWithWriter

0 commit comments

Comments
 (0)