|
2029 | 2029 | (let [src (if (symbol? src)
|
2030 | 2030 | (io/resource (util/ns->relpath src))
|
2031 | 2031 | src)
|
2032 |
| - namespaces' (::namespaces @env/*compiler*) |
2033 |
| - ret |
2034 |
| - (binding [*cljs-ns* 'cljs.user |
| 2032 | + compiler-env @env/*compiler* |
| 2033 | + [ijs compiler-env'] |
| 2034 | + (binding [env/*compiler* (atom compiler-env) |
| 2035 | + *cljs-ns* 'cljs.user |
2035 | 2036 | *macro-infer*
|
2036 | 2037 | (or (when (contains? opts :macro-infer)
|
2037 | 2038 | (:macro-infer opts))
|
|
2053 | 2054 | (let [ns-name (:name ast)
|
2054 | 2055 | deps (merge (:uses ast) (:requires ast))]
|
2055 | 2056 | (.close ^Reader rdr)
|
2056 |
| - (merge |
2057 |
| - {:ns (or ns-name 'cljs.user) |
2058 |
| - :provides [ns-name] |
2059 |
| - :requires (if (= ns-name 'cljs.core) |
2060 |
| - (set (vals deps)) |
2061 |
| - (cond-> (conj (set (vals deps)) 'cljs.core) |
2062 |
| - (get-in @env/*compiler* [:opts :emit-constants]) |
2063 |
| - (conj 'constants-table))) |
2064 |
| - :file dest |
2065 |
| - :source-file src |
2066 |
| - :ast ast} |
2067 |
| - (when (and dest (.exists ^File dest)) |
2068 |
| - {:lines (with-open [reader (io/reader dest)] |
2069 |
| - (-> reader line-seq count))}))) |
2070 |
| - (recur (rest forms))))))))] |
2071 |
| - ;; TODO this _was_ a reset! of the old namespaces atom; should we capture and |
2072 |
| - ;; then restore the entirety of env/*compiler* here instead? |
2073 |
| - (when-not (false? (:restore opts)) |
2074 |
| - (swap! env/*compiler* assoc ::namespaces namespaces')) |
2075 |
| - ret)))) |
| 2057 | + [(merge |
| 2058 | + {:ns (or ns-name 'cljs.user) |
| 2059 | + :provides [ns-name] |
| 2060 | + :requires (if (= ns-name 'cljs.core) |
| 2061 | + (set (vals deps)) |
| 2062 | + (cond-> (conj (set (vals deps)) 'cljs.core) |
| 2063 | + (get-in compiler-env [:opts :emit-constants]) |
| 2064 | + (conj 'constants-table))) |
| 2065 | + :file dest |
| 2066 | + :source-file src |
| 2067 | + :ast ast} |
| 2068 | + (when (and dest (.exists ^File dest)) |
| 2069 | + {:lines (with-open [reader (io/reader dest)] |
| 2070 | + (-> reader line-seq count))})) |
| 2071 | + @env/*compiler*]) |
| 2072 | + (recur (rest forms)))) |
| 2073 | + (throw (AssertionError. (str "No ns form found in " src)))))))] |
| 2074 | + (when (false? (:restore opts)) |
| 2075 | + (swap! env/*compiler* update-in [::namespaces] merge |
| 2076 | + (get compiler-env' ::namespaces))) |
| 2077 | + ijs)))) |
2076 | 2078 |
|
2077 | 2079 | (defn cache-file
|
2078 | 2080 | "Given a ClojureScript source file returns the read/write path to the analysis
|
|
0 commit comments