File tree Expand file tree Collapse file tree 2 files changed +29
-2
lines changed Expand file tree Collapse file tree 2 files changed +29
-2
lines changed Original file line number Diff line number Diff line change 366366 (patch-renames :renames )
367367 (patch-renames :rename-macros )))
368368
369+ (defn- self-require? [deps opts]
370+ (and (true ? (:def-emits-var opts)) (some #{ana/*cljs-ns*} deps)))
371+
369372(defn- load-deps
370373 ([bound-vars ana-env lib deps cb]
371374 (load-deps bound-vars ana-env lib deps nil nil cb))
372375 ([bound-vars ana-env lib deps reload opts cb]
373376 (when (:verbose opts)
374377 (debug-prn " Loading dependencies for" lib))
375- (binding [ana/*cljs-dep-set* (vary-meta (conj (:*cljs-dep-set* bound-vars) lib)
376- update-in [:dep-path ] conj lib)]
378+ (binding [ana/*cljs-dep-set* (let [lib (if (self-require? deps opts)
379+ 'cljs.user
380+ lib)]
381+ (vary-meta (conj (:*cljs-dep-set* bound-vars) lib)
382+ update-in [:dep-path ] conj lib))]
377383 (let [bound-vars (assoc bound-vars :*cljs-dep-set* ana/*cljs-dep-set*)]
378384 (if-not (every? #(not (contains? ana/*cljs-dep-set* %)) deps)
379385 (cb (wrap-error
Original file line number Diff line number Diff line change 12981298 (.-message error)))
12991299 (inc! l)))))))
13001300
1301+ (deftest test-self-host-self-require
1302+ (async done
1303+ (let [st (cljs/empty-state )
1304+ l (latch 1 done)
1305+ load (fn [{:keys [name macros]} cb]
1306+ (cb {:lang :clj
1307+ :source " (ns foo.core)" }))]
1308+ (binding [ana/*cljs-dep-set* (with-meta #{} {:dep-path []})]
1309+ (cljs.js/eval-str st " (ns foo.core)" nil
1310+ {:eval node-eval}
1311+ (fn [{:keys [error value] :as m}]
1312+ (is (nil? error))
1313+ (cljs.js/eval-str st " (require 'foo.core :reload)" nil
1314+ {:load load
1315+ :eval node-eval
1316+ :def-emits-var true
1317+ :ns 'foo.core}
1318+ (fn [{:keys [error value] :as m}]
1319+ (is (nil? error))
1320+ (inc! l)))))))))
1321+
13011322(defn -main [& args]
13021323 (run-tests ))
13031324
You can’t perform that action at this time.
0 commit comments