Skip to content

Commit da91c84

Browse files
author
dnolen
committed
CLJS-2571: cljs.main: -e affects *1, *2, *3
also remove stray util/debug-prn
1 parent 95ab741 commit da91c84

2 files changed

Lines changed: 14 additions & 3 deletions

File tree

src/main/clojure/cljs/cli.clj

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -328,7 +328,6 @@ present"
328328
(repl/evaluate-form renv (ana-api/empty-env) "<cljs repl>"
329329
`(~(symbol (name main) "-main") ~@args))))
330330
(finally
331-
(util/debug-prn "Tearing down")
332331
(repl/tear-down renv)))))))))
333332

334333
(defn- main-opt

src/main/clojure/cljs/repl.cljc

Lines changed: 14 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -636,6 +636,18 @@
636636
(set! *e e#)
637637
(throw e#))))))
638638

639+
(defn- init-wrap-fn [form]
640+
(cond
641+
(and (seq? form)
642+
(#{'ns 'require 'require-macros
643+
'use 'use-macros 'import 'refer-clojure} (first form)))
644+
identity
645+
646+
('#{*1 *2 *3 *e} form) (fn [x] `(cljs.core.pr-str ~x))
647+
:else
648+
(fn [x]
649+
`(cljs.core.pr-str ~x))))
650+
639651
(defn eval-cljs
640652
"Given a REPL evaluation environment, an analysis environment, and a
641653
form, evaluate the form and return the result. The result is always the value
@@ -788,9 +800,9 @@
788800
(doseq [form (:forms init)]
789801
(eval-cljs renv (ana/empty-env) form))
790802
:eval-forms
791-
(binding [*repl-opts* (merge *repl-opts* {:def-emits-var true})]
803+
(binding [*repl-opts* (merge *repl-opts* {:def-emits-var true :wrap init-wrap-fn})]
792804
(doseq [form (:forms init)]
793-
(let [value (eval-cljs renv (ana/empty-env) form)]
805+
(let [value (eval-cljs renv (ana/empty-env) form *repl-opts*)]
794806
(when-not (repl-nil? value)
795807
(println value)))))
796808
:init-script

0 commit comments

Comments
 (0)