Skip to content

Commit 1f26726

Browse files
committed
Merge branch 'master' of github.com:clojure/clojurescript
2 parents 1525386 + 69a09a3 commit 1f26726

File tree

1 file changed

+9
-2
lines changed

1 file changed

+9
-2
lines changed

src/main/clojure/cljs/closure.clj

Lines changed: 9 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -16,6 +16,7 @@
1616
[cljs.env :as env]
1717
[cljs.js-deps :as deps]
1818
[clojure.java.io :as io]
19+
[clojure.reflect]
1920
[clojure.set :as set]
2021
[clojure.string :as string]
2122
[clojure.data.json :as json]
@@ -1961,6 +1962,13 @@
19611962
(= (package-json-entries {:target :nodejs :package-json-resolution :webpack}) ["browser" "module" "main"])
19621963
(= (package-json-entries {:target :nodejs :package-json-resolution ["foo" "bar"]}) ["foo" "bar"]))
19631964

1965+
(defn- sorting-dependency-options []
1966+
(try
1967+
(util/compile-if (contains? (:flags (clojure.reflect/reflect DependencyOptions)) :abstract)
1968+
(DependencyOptions/sortOnly)
1969+
(doto (DependencyOptions.)
1970+
(.setDependencySorting true)))))
1971+
19641972
(defn convert-js-modules
19651973
"Takes a list JavaScript modules as an IJavaScript and rewrites them into a Google
19661974
Closure-compatible form. Returns list IJavaScript with the converted module
@@ -1972,8 +1980,7 @@
19721980
(.setProcessCommonJSModules true)
19731981
(.setLanguageIn (lang-key->lang-mode :ecmascript6))
19741982
(.setLanguageOut (lang-key->lang-mode (:language-out opts :ecmascript3)))
1975-
(.setDependencyOptions (doto (DependencyOptions.)
1976-
(.setDependencySorting true)))
1983+
(.setDependencyOptions (sorting-dependency-options))
19771984
(.setPackageJsonEntryNames ^List (package-json-entries opts)))
19781985
closure-compiler (doto (make-closure-compiler)
19791986
(.init externs source-files options))

0 commit comments

Comments
 (0)