Skip to content

Commit

Permalink
cljs.js wip
Browse files Browse the repository at this point in the history
  • Loading branch information
swannodette committed Jul 18, 2015
1 parent bb7f13b commit a3abd60
Show file tree
Hide file tree
Showing 2 changed files with 18 additions and 14 deletions.
26 changes: 13 additions & 13 deletions src/main/cljs/cljs/js.cljs
Expand Up @@ -172,23 +172,23 @@
;; Eval

(defn eval* [env bound-vars form opts cb]
(let [ana-env (ana/empty-env)]
(binding [*eval-fn* (:*eval-fn* bound-vars)
ana/*cljs-ns* (:*cljs-ns* bound-vars)
*ns* (:*ns* bound-vars)
r/*data-readers* (:*data-readers* bound-vars)
env/*compiler* env]
(binding [env/*compiler* env
*eval-fn* (:*eval-fn* bound-vars)
ana/*cljs-ns* (:*cljs-ns* bound-vars)
*ns* (:*ns* bound-vars)
r/*data-readers* (:*data-readers* bound-vars)]
(let [ana-env (assoc (ana/empty-env)
:ns (ana/get-namespace ana/*cljs-ns*))]
(cb (*eval-fn*
(with-out-str
(comp/emit (ana/analyze ana-env form nil opts))))))))

(defn eval
([env form cb] (eval env form nil cb))
([env form opts cb]
(env/with-compiler-env env
(eval* env
{:*cljs-ns* (or (:ns env) 'cljs.user)
:*ns* (create-ns ana/*cljs-ns*)
:*data-readers* tags/*cljs-data-readers*
:*eval-fn* (or (:js-eval opts) js/eval)}
form opts cb))))
(eval* env
{:*cljs-ns* 'cljs.user
:*ns* (create-ns 'cljs.user)
:*data-readers* tags/*cljs-data-readers*
:*eval-fn* (or (:js-eval opts) js/eval)}
form opts cb)))
6 changes: 5 additions & 1 deletion src/main/clojure/cljs/analyzer.cljc
Expand Up @@ -407,7 +407,11 @@
default-namespaces)))))

(defn get-namespace [key]
(get-in @env/*compiler* [::namespaces key]))
(let [ns (get-in @env/*compiler* [::namespaces key])]
(if-not (nil? ns)
ns
(when (= 'cljs.user key)
{:name 'cljs.user}))))

#?(:clj
(defmacro no-warn [& body]
Expand Down

0 comments on commit a3abd60

Please sign in to comment.