Skip to content

Commit 86b1e9f

Browse files
committed
CLJS-689: js/-Infinity munges to _Infinity
Special case -Infinity in :var emit Add compiler test
1 parent 82fc6f3 commit 86b1e9f

File tree

2 files changed

+10
-10
lines changed

2 files changed

+10
-10
lines changed

src/clj/cljs/compiler.clj

Lines changed: 5 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -251,7 +251,7 @@
251251
(defmethod emit* :no-op [m])
252252

253253
(defmethod emit* :var
254-
[{:keys [info env] :as arg}]
254+
[{:keys [info env form] :as arg}]
255255
(let [var-name (:name info)
256256
info (if (= (namespace var-name) "js")
257257
(name var-name)
@@ -264,7 +264,10 @@
264264
; (prevents duplicate fn-param-names)
265265
(emits (munge arg))
266266
(when-not (= :statement (:context env))
267-
(emit-wrap env (emits (munge info)))))))
267+
(emit-wrap env
268+
(emits
269+
(cond-> info
270+
(not= form 'js/-Infinity) munge)))))))
268271

269272
(defmethod emit* :var-special
270273
[{:keys [env var sym meta] :as arg}]

test/clj/cljs/compiler_tests.clj

Lines changed: 5 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -47,11 +47,8 @@
4747
[:children 0 :children 0 :name]))
4848
'cljs$user$console)))
4949

50-
(comment
51-
(c/munge
52-
(get-in
53-
(a/analyze ns-env
54-
'(defn foo []
55-
(fn bar [])))
56-
[:init :children 0 :children 0 :name]))
57-
)
50+
(deftest test-js-negative-infinity
51+
(= (with-out-str
52+
(c/emit
53+
(a/analyze (assoc ns-env :context :expr) 'js/-Infinity)))
54+
"-Infinity"))

0 commit comments

Comments
 (0)