From fff2a52edebbdebc7616761223fead7e396830e0 Mon Sep 17 00:00:00 2001 From: David Nolen Date: Tue, 20 May 2025 18:48:30 -0400 Subject: [PATCH 1/3] - fix up missing "sources" in advanced compiled source map --- src/main/clojure/cljs/closure.clj | 33 ++++++++++++++++--------------- 1 file changed, 17 insertions(+), 16 deletions(-) diff --git a/src/main/clojure/cljs/closure.clj b/src/main/clojure/cljs/closure.clj index b215573f6..a8d4a4757 100644 --- a/src/main/clojure/cljs/closure.clj +++ b/src/main/clojure/cljs/closure.clj @@ -1389,11 +1389,12 @@ (let [source (first sources)] (recur (next sources) - (let [{:keys [provides source-url]} source] - (if (and provides source-url) + (let [{:keys [provides]} source + url (or (:source-url source) (:url source))] + (if (and provides url) (assoc relpaths - (.getPath ^URL source-url) - (util/ns->relpath (first provides) (util/ext source-url))) + (.getPath ^URL url) + (util/ns->relpath (first provides) (util/ext url))) relpaths)) (if-let [url (:url source)] (let [path (.getPath ^URL url)] @@ -1410,19 +1411,19 @@ (spit (io/file name) (sm/encode merged - {:preamble-line-count (+ (:preamble-line-count opts 0) - (:foreign-deps-line-count opts 0)) - :lines (+ (:lineCount sm-json) - (:preamble-line-count opts 0) - (:foreign-deps-line-count opts 0) - 2) - :file name - :output-dir (util/output-directory opts) - :source-map (:source-map opts) - :source-map-path (:source-map-path opts) - :source-map-timestamp (:source-map-timestamp opts) + {:preamble-line-count (+ (:preamble-line-count opts 0) + (:foreign-deps-line-count opts 0)) + :lines (+ (:lineCount sm-json) + (:preamble-line-count opts 0) + (:foreign-deps-line-count opts 0) + 2) + :file name + :output-dir (util/output-directory opts) + :source-map (:source-map opts) + :source-map-path (:source-map-path opts) + :source-map-timestamp (:source-map-timestamp opts) :source-map-pretty-print (:source-map-pretty-print opts) - :relpaths relpaths})))))) + :relpaths relpaths})))))) (defn write-variable-maps [^Result result opts] (let [var-out (:closure-variable-map-out opts)] From 07330e6c1a129e33df4d670e80ea2ad4117a506b Mon Sep 17 00:00:00 2001 From: davidnolen Date: Tue, 27 May 2025 10:47:55 -0400 Subject: [PATCH 2/3] test wip --- src/test/cljs_build/adv_src_map/core.cljs | 3 +++ src/test/clojure/cljs/build_api_tests.clj | 21 +++++++++++++++++++++ 2 files changed, 24 insertions(+) create mode 100644 src/test/cljs_build/adv_src_map/core.cljs diff --git a/src/test/cljs_build/adv_src_map/core.cljs b/src/test/cljs_build/adv_src_map/core.cljs new file mode 100644 index 000000000..22cc32cab --- /dev/null +++ b/src/test/cljs_build/adv_src_map/core.cljs @@ -0,0 +1,3 @@ +(ns adv-src-map.core) + +(.log js/console "Hello!" (first [1 2 3])) \ No newline at end of file diff --git a/src/test/clojure/cljs/build_api_tests.clj b/src/test/clojure/cljs/build_api_tests.clj index e788c1ace..f2e768817 100644 --- a/src/test/clojure/cljs/build_api_tests.clj +++ b/src/test/clojure/cljs/build_api_tests.clj @@ -840,3 +840,24 @@ (.delete (io/file "package.json")) (test/delete-node-modules) (test/delete-out-files out)))) + +#_(deftest test-advanced-source-maps + (testing "Test that the `sources` of the final merged source map matches the + one in the original Closure Compiler generated advanced source map" + (let [out (.getPath (io/file (test/tmp-dir) "adv-src-map"))] + (test/delete-out-files out) + (test/delete-node-modules) + (let [{:keys [inputs opts]} {:inputs (str (io/file "src" "test" "cljs_build")) + :opts {:main 'cljs-3346-as-alias.core + :output-to (io/file out "main.js") + :source-map (io/file out "main.js.map") + :output-dir out + :optimizations :advanced + :closure-source-map true + :closure-warnings {:check-types :off}}} + cenv (env/default-compiler-env)] + (build/build (build/inputs (io/file inputs "adv_src_map/core.cljs")) opts cenv)) + (let [cljs-src-map (slurp (io/file out "adv_src_map/main.js.map")) + closure-src-map (slurp (io/file out "adv_src_map/main.js.map.closure"))] + ) + (test/delete-out-files out)))) \ No newline at end of file From aa718afd9c19c37ebc9e897b60ad414c435de862 Mon Sep 17 00:00:00 2001 From: davidnolen Date: Tue, 27 May 2025 11:10:56 -0400 Subject: [PATCH 3/3] test wip --- src/test/clojure/cljs/build_api_tests.clj | 22 ++++++++++++++-------- 1 file changed, 14 insertions(+), 8 deletions(-) diff --git a/src/test/clojure/cljs/build_api_tests.clj b/src/test/clojure/cljs/build_api_tests.clj index f2e768817..0edb2876a 100644 --- a/src/test/clojure/cljs/build_api_tests.clj +++ b/src/test/clojure/cljs/build_api_tests.clj @@ -849,15 +849,21 @@ (test/delete-node-modules) (let [{:keys [inputs opts]} {:inputs (str (io/file "src" "test" "cljs_build")) :opts {:main 'cljs-3346-as-alias.core - :output-to (io/file out "main.js") - :source-map (io/file out "main.js.map") + :output-to (.getPath (io/file out "main.js")) + :source-map (.getPath (io/file out "main.js.map")) :output-dir out :optimizations :advanced - :closure-source-map true - :closure-warnings {:check-types :off}}} + :closure-source-map true}} cenv (env/default-compiler-env)] (build/build (build/inputs (io/file inputs "adv_src_map/core.cljs")) opts cenv)) - (let [cljs-src-map (slurp (io/file out "adv_src_map/main.js.map")) - closure-src-map (slurp (io/file out "adv_src_map/main.js.map.closure"))] - ) - (test/delete-out-files out)))) \ No newline at end of file + (let [cljs-src-map (->> (io/file out "main.js.map") slurp json/read-str) + closure-src-map (->> (io/file out "main.js.map.closure") slurp json/read-str)] + (println (get closure-src-map "sources")) + (println (get cljs-src-map "sources"))) + (test/delete-out-files out)))) + +#_(comment + + (clojure.test/test-vars [#'test-advanced-source-maps]) + + ) \ No newline at end of file