Skip to content

Commit 980d1fa

Browse files
author
dnolen
committed
remove another gratuitous ensure, fix tests
1 parent 284872f commit 980d1fa

File tree

2 files changed

+32
-30
lines changed

2 files changed

+32
-30
lines changed

src/main/clojure/cljs/compiler.cljc

Lines changed: 19 additions & 20 deletions
Original file line numberDiff line numberDiff line change
@@ -177,26 +177,25 @@
177177
(defmulti emit* :op)
178178

179179
(defn emit [ast]
180-
(ensure
181-
(when *source-map-data*
182-
(let [{:keys [env]} ast]
183-
(when (:line env)
184-
(let [{:keys [line column]} env]
185-
(swap! *source-map-data*
186-
(fn [m]
187-
(let [minfo (cond-> {:gcol (:gen-col m)
188-
:gline (:gen-line m)}
189-
(#{:var :local :js-var} (:op ast))
190-
(assoc :name (str (-> ast :info :name))))]
191-
; Dec the line/column numbers for 0-indexing.
192-
; tools.reader uses 1-indexed sources, chrome
193-
; expects 0-indexed source maps.
194-
(update-in m [:source-map (dec line)]
195-
(fnil (fn [line]
196-
(update-in line [(if column (dec column) 0)]
197-
(fnil (fn [column] (conj column minfo)) [])))
198-
(sorted-map))))))))))
199-
(emit* ast)))
180+
(when *source-map-data*
181+
(let [{:keys [env]} ast]
182+
(when (:line env)
183+
(let [{:keys [line column]} env]
184+
(swap! *source-map-data*
185+
(fn [m]
186+
(let [minfo (cond-> {:gcol (:gen-col m)
187+
:gline (:gen-line m)}
188+
(#{:var :local :js-var} (:op ast))
189+
(assoc :name (str (-> ast :info :name))))]
190+
; Dec the line/column numbers for 0-indexing.
191+
; tools.reader uses 1-indexed sources, chrome
192+
; expects 0-indexed source maps.
193+
(update-in m [:source-map (dec line)]
194+
(fnil (fn [line]
195+
(update-in line [(if column (dec column) 0)]
196+
(fnil (fn [column] (conj column minfo)) [])))
197+
(sorted-map))))))))))
198+
(emit* ast))
200199

201200
(defn emits [& xs]
202201
(doseq [^Object x xs]

src/test/clojure/cljs/compiler_tests.clj

Lines changed: 13 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -26,6 +26,9 @@
2626
([env form name opts]
2727
(env/ensure (ana/analyze env form name opts))))
2828

29+
(defn emit [ast]
30+
(env/ensure (comp/emit ast)))
31+
2932
(def aenv (assoc-in (ana/empty-env) [:ns :name] 'cljs.user))
3033
(def cenv (env/default-compiler-env))
3134

@@ -69,14 +72,14 @@
6972

7073
(deftest test-js-negative-infinity
7174
(is (= (with-out-str
72-
(comp/emit
75+
(emit
7376
(analyze (assoc aenv :context :expr) 'js/-Infinity)))
7477
"-Infinity")))
7578

7679
(deftest test-cljs-2352
7780
(are [form result]
7881
(= (with-out-str
79-
(comp/emit
82+
(emit
8083
(analyze (assoc aenv :context :expr) form)))
8184
result)
8285
Double/NaN "NaN"
@@ -108,13 +111,13 @@
108111
(env/ensure
109112
(comp/emit-comment "/* multiline comments */" nil))))
110113
(check-docs (with-out-str
111-
(comp/emit
114+
(emit
112115
(analyze aenv
113116
'(defn foo "foo is */ like this /*/" [] (+ 1 1))))))))
114117

115118
(comment
116119
(env/with-compiler-env cenv
117-
(comp/emit
120+
(emit
118121
(analyze aenv
119122
'(defn foo ([a]) ([a b])))))
120123
)
@@ -141,7 +144,7 @@
141144
(ana/analyze-file (File. "src/main/cljs/cljs/core.cljs"))
142145
(let [warnings (-> (capture-warnings
143146
(with-out-str
144-
(comp/emit
147+
(emit
145148
(analyze aenv
146149
'(let [{:keys [a] :or {b 2}} {:a 1}] [a b]))))))]
147150
(is (= (ffirst warnings) :undeclared-var))
@@ -163,7 +166,7 @@
163166
(capture-warnings
164167
(env/with-compiler-env (atom cenv-with-foo)
165168
(with-out-str
166-
(comp/emit
169+
(emit
167170
(analyze aenv-with-foo form))))))
168171

169172
'(cljs.user/foo nil)
@@ -222,7 +225,7 @@
222225
(capture-warnings
223226
(env/with-compiler-env cenv
224227
(with-out-str
225-
(comp/emit
228+
(emit
226229
(comp/with-core-cljs
227230
opts
228231
(fn [] (analyze aenv test-cljs-1925-code nil opts)))))))))))
@@ -233,7 +236,7 @@
233236
(capture-warnings
234237
(env/with-compiler-env cenv
235238
(with-out-str
236-
(comp/emit
239+
(emit
237240
(comp/with-core-cljs
238241
opts
239242
(fn [] (analyze aenv specify-test-code nil opts))))))))))))
@@ -286,7 +289,7 @@
286289
(comment
287290
(binding [ana/*cljs-static-fns* true]
288291
(env/with-compiler-env cenv
289-
(comp/emit
292+
(emit
290293
(analyze aenv
291294
'(defn incme []
292295
(let [incme (fn [a queue & args])]
@@ -298,7 +301,7 @@
298301

299302
(binding [ana/*cljs-static-fns* true]
300303
(env/with-compiler-env cenv
301-
(comp/emit
304+
(emit
302305
(analyze aenv
303306
'(defn foo [x]
304307
(if ^boolean (goog.array/isEmpty x)

0 commit comments

Comments
 (0)