Skip to content

Commit b3a6f4f

Browse files
authored
Remove deprecated Closure externs pattern (#239)
* remove deprecated Closure externs pattern
1 parent 9696bac commit b3a6f4f

File tree

3 files changed

+14
-9
lines changed

3 files changed

+14
-9
lines changed

src/main/clojure/cljs/closure.clj

+3-2
Original file line numberDiff line numberDiff line change
@@ -8,7 +8,8 @@
88

99
(ns cljs.closure
1010
(:refer-clojure :exclude [compile])
11-
(:require [cljs.util :as util :refer [distinct-by]]
11+
(:require [cljs.externs :as externs]
12+
[cljs.util :as util :refer [distinct-by]]
1213
[cljs.core :as cljsm]
1314
[cljs.compiler :as comp]
1415
[cljs.analyzer :as ana]
@@ -402,7 +403,7 @@
402403
(cond->
403404
(if use-only-custom-externs
404405
all-sources
405-
(into all-sources (CommandLineRunner/getDefaultExterns)))
406+
(into all-sources (externs/default-externs)))
406407
infer-externs
407408
(conj (js-source-file nil
408409
(io/file (util/output-directory opts) "inferred_externs.js")))))))

src/main/clojure/cljs/externs.clj

+10-6
Original file line numberDiff line numberDiff line change
@@ -12,7 +12,7 @@
1212
[clojure.java.io :as io]
1313
[clojure.string :as string])
1414
(:import [com.google.javascript.jscomp
15-
CompilerOptions SourceFile JsAst CommandLineRunner]
15+
CompilerOptions CompilerOptions$Environment SourceFile JsAst CommandLineRunner]
1616
[com.google.javascript.jscomp.parsing Config$JsDocParsing]
1717
[com.google.javascript.rhino
1818
Node Token JSTypeExpression JSDocInfo$Visibility]
@@ -23,6 +23,9 @@
2323
(def ^:dynamic *source-file* nil)
2424
(def ^:dynamic *goog-ns* nil)
2525

26+
(defn default-externs []
27+
(CommandLineRunner/getBuiltinExterns CompilerOptions$Environment/BROWSER))
28+
2629
;; ------------------------------------------------------------------------------
2730
;; Externs Parsing
2831

@@ -207,6 +210,7 @@
207210
(.init (list source-file) '() compiler-options))
208211
js-ast (JsAst. source-file)
209212
^Node root (.getAstRoot js-ast closure-compiler)
213+
;; TODO: switch to getFirstChild + getNext in the loop
210214
nodes (.children root)]
211215
(loop [nodes (cond-> nodes
212216
;; handle goog.modules which won't have top-levels
@@ -229,7 +233,7 @@
229233

230234
(defn externs-map*
231235
([]
232-
(externs-map* (CommandLineRunner/getDefaultExterns)))
236+
(externs-map* (default-externs)))
233237
([sources]
234238
(externs-map* sources
235239
'{eval {}
@@ -242,7 +246,7 @@
242246
([sources defaults]
243247
(let [sources (if-not (empty? sources)
244248
sources
245-
(CommandLineRunner/getDefaultExterns))]
249+
(default-externs))]
246250
(reduce
247251
(fn [externs externs-file]
248252
(util/map-merge
@@ -376,21 +380,21 @@
376380
(fn [s]
377381
(let [m (-> s parse-externs index-externs)]
378382
(get-in m '[Window prototype console])))
379-
(CommandLineRunner/getDefaultExterns))
383+
(default-externs))
380384

381385
(->
382386
(filter
383387
(fn [s]
384388
(= "externs.zip//webkit_dom.js" (.getName s)))
385-
(CommandLineRunner/getDefaultExterns))
389+
(default-externs))
386390
first parse-externs index-externs
387391
(find 'console) first meta)
388392

389393
(->
390394
(filter
391395
(fn [s]
392396
(= "externs.zip//webkit_dom.js" (.getName s)))
393-
(CommandLineRunner/getDefaultExterns))
397+
(default-externs))
394398
first parse-externs index-externs
395399
(get-in '[Console prototype])
396400
(find 'log) first meta)

src/test/clojure/cljs/externs_parsing_tests.clj

+1-1
Original file line numberDiff line numberDiff line change
@@ -40,7 +40,7 @@
4040
(filter
4141
(fn [s]
4242
(= "externs.zip//w3c_dom2.js" (.getName s)))
43-
(CommandLineRunner/getDefaultExterns))
43+
(externs/default-externs))
4444
first externs/parse-externs externs/index-externs
4545
(find 'HTMLDocument) first meta)]
4646
(is (= 'Document (:super info)))))

0 commit comments

Comments
 (0)