             [cljs.source-map :as sm])
   (:import [java.io File PushbackReader FileWriter]
            [java.net URL]
-           [javax.xml.bind DatatypeConverter]))
+           [javax.xml.bind DatatypeConverter]
+           [clojure.lang LineNumberingPushbackReader]))
 
 (def ^:dynamic *cljs-verbose* false)
 

      (doseq [file (comp/cljs-files-in src-dir)]
        (ana/analyze-file (str "file://" (.getAbsolutePath file)) opts)))))

(defn repl*
  [repl-env opts]
  (print "To quit, type: ")
  (prn :cljs/quit)
  (let [ups-deps (cljsc/get-upstream-deps)
        {:keys [analyze-path repl-verbose warn-on-undeclared special-fns static-fns] :as opts
         :or   {warn-on-undeclared true}}

             (loop []
               ;; try to let things flush before printing prompt
               (Thread/sleep 10)
               (prompt)
               (flush)
               (let [rdr (readers/source-logging-push-back-reader
                           (PushbackReader. (io/reader *in*))
