|
61 | 61 | (drop 2 opts)]
|
62 | 62 | [nil (first opts) (rest opts)])]
|
63 | 63 | (cond->
|
64 |
| - (-> (reduce (fn [template substitution] |
65 |
| - (str/replace-first template "~{}" |
66 |
| - (emit substitution (merge (assoc env :context :expr) env')))) |
67 |
| - template |
68 |
| - substitutions) |
69 |
| - (emit-return (merge env (meta expr)))) |
| 64 | + (-> (reduce (fn [template substitution] |
| 65 | + (str/replace-first template "~{}" |
| 66 | + (emit substitution (merge (assoc env :context :expr) env')))) |
| 67 | + template |
| 68 | + substitutions) |
| 69 | + (emit-return (merge env (meta expr)))) |
70 | 70 | bool? bool-expr)))
|
71 | 71 |
|
72 | 72 | (defn expr-env [env]
|
|
212 | 212 | (list operator (first args) (second args))
|
213 | 213 | (list* operator (rest args)))
|
214 | 214 | enc-env)
|
215 |
| - (if (and (= '- operator) |
216 |
| - (= 1 acount)) |
217 |
| - (str "-" (emit (first args) env)) |
218 |
| - (-> (let [substitutions {'= "===" == "===" '!= "!==" |
219 |
| - 'not= "!==" |
220 |
| - '+ "+" |
221 |
| - 'bit-or "|" |
222 |
| - 'bit-and "&" |
223 |
| - 'js-mod "%" |
224 |
| - 'js-?? "??"}] |
225 |
| - (str/join (str " " (or (substitutions operator) |
226 |
| - operator) " ") |
227 |
| - (map wrap-parens (emit-args env args)))) |
228 |
| - (emit-return enc-env) |
229 |
| - (cond-> bool? (bool-expr))))))) |
| 215 | + (cond (and (= '- operator) |
| 216 | + (= 1 acount)) |
| 217 | + (str "-" (emit (first args) env)) |
| 218 | + (and (= '/ operator) |
| 219 | + (= 1 acount)) |
| 220 | + (str "1 / " (emit (first args) env)) |
| 221 | + :else |
| 222 | + (-> (let [substitutions {'= "===" == "===" '!= "!==" |
| 223 | + 'not= "!==" |
| 224 | + '+ "+" |
| 225 | + 'bit-or "|" |
| 226 | + 'bit-and "&" |
| 227 | + 'js-mod "%" |
| 228 | + 'js-?? "??"}] |
| 229 | + (str/join (str " " (or (substitutions operator) |
| 230 | + operator) " ") |
| 231 | + (map wrap-parens (emit-args env args)))) |
| 232 | + (emit-return enc-env) |
| 233 | + (cond-> bool? (bool-expr))))))) |
230 | 234 |
|
231 | 235 | (def core-vars (atom #{}))
|
232 | 236 |
|
|
300 | 304 | (munged-name expr)))
|
301 | 305 | (some-> (maybe-core-var expr env) munge)
|
302 | 306 | (when (let [alias (get (:aliases current-ns) expr)]
|
303 |
| - alias) |
| 307 | + alias) |
304 | 308 | (str (when *repl*
|
305 | 309 | (str "globalThis." (munge *cljs-ns*) "."))
|
306 | 310 | (munged-name expr)))))
|
|
744 | 748 | true
|
745 | 749 | (emit-return (wrap-parens (apply str (interpose " && " (emit-args env more)))) env)))
|
746 | 750 |
|
747 |
| - (defmethod emit-special 'or [_type env [_ & more]] |
748 |
| - (if (empty? more) |
749 |
| - nil |
750 |
| - (emit-return (wrap-parens (apply str (interpose " || " (emit-args env more)))) env))) |
| 751 | +(defmethod emit-special 'or [_type env [_ & more]] |
| 752 | + (if (empty? more) |
| 753 | + nil |
| 754 | + (emit-return (wrap-parens (apply str (interpose " || " (emit-args env more)))) env))) |
751 | 755 |
|
752 | 756 | (defmethod emit-special 'while [_type env [_while test & body]]
|
753 | 757 | (str "while (" (emit test) ") { \n"
|
@@ -1190,30 +1194,30 @@ break;}" body)
|
1190 | 1194 | (assoc :children children))))
|
1191 | 1195 | env))
|
1192 | 1196 | (let [ret #_(format "<%s%s>%s</%s>"
|
1193 |
| - tag-name |
1194 |
| - (cc/jsx-attrs attrs env) |
1195 |
| - (let [env (expr-env env)] |
1196 |
| - (str/join "" (map #(emit % env) elts))) |
1197 |
| - tag-name) |
| 1197 | + tag-name |
| 1198 | + (cc/jsx-attrs attrs env) |
| 1199 | + (let [env (expr-env env)] |
| 1200 | + (str/join "" (map #(emit % env) elts))) |
| 1201 | + tag-name) |
1198 | 1202 | (str
|
1199 | 1203 | (if (and html? fragment?)
|
1200 |
| - "" |
1201 |
| - (str "<" |
1202 |
| - tag-name |
1203 |
| - (jsx-attrs attrs env) |
1204 |
| - ">")) |
| 1204 | + "" |
| 1205 | + (str "<" |
| 1206 | + tag-name |
| 1207 | + (jsx-attrs attrs env) |
| 1208 | + ">")) |
1205 | 1209 | (let [env (expr-env env)]
|
1206 | 1210 | (str/join "" (map #(emit % env) elts)))
|
1207 | 1211 | (if (and html? (or fragment?
|
1208 | 1212 | (void-tag? tag-name)))
|
1209 |
| - "" |
1210 |
| - (str "</" tag-name ">")))] |
| 1213 | + "" |
| 1214 | + (str "</" tag-name ">")))] |
1211 | 1215 | (when outer-html?
|
1212 | 1216 | (when need-html-import
|
1213 | 1217 | (reset! need-html-import true)))
|
1214 | 1218 | (emit-return
|
1215 | 1219 | (cond->> ret
|
1216 |
| - outer-html? |
| 1220 | + outer-html? |
1217 | 1221 | (format "%s`%s`"
|
1218 | 1222 | (if-let [t (:tag (meta expr))]
|
1219 | 1223 | (emit t (expr-env (dissoc env :jsx :html)))
|
|
0 commit comments