|
12 | 12 | [clojure.java.io :as io]
|
13 | 13 | [clojure.string :as string])
|
14 | 14 | (:import [com.google.javascript.jscomp
|
15 |
| - CompilerOptions SourceFile JsAst CommandLineRunner] |
| 15 | + CompilerOptions CompilerOptions$Environment SourceFile JsAst CommandLineRunner] |
16 | 16 | [com.google.javascript.jscomp.parsing Config$JsDocParsing]
|
17 | 17 | [com.google.javascript.rhino
|
18 | 18 | Node Token JSTypeExpression JSDocInfo$Visibility]
|
|
23 | 23 | (def ^:dynamic *source-file* nil)
|
24 | 24 | (def ^:dynamic *goog-ns* nil)
|
25 | 25 |
|
| 26 | +(defn default-externs [] |
| 27 | + (CommandLineRunner/getBuiltinExterns CompilerOptions$Environment/BROWSER)) |
| 28 | + |
26 | 29 | ;; ------------------------------------------------------------------------------
|
27 | 30 | ;; Externs Parsing
|
28 | 31 |
|
|
207 | 210 | (.init (list source-file) '() compiler-options))
|
208 | 211 | js-ast (JsAst. source-file)
|
209 | 212 | ^Node root (.getAstRoot js-ast closure-compiler)
|
| 213 | + ;; TODO: switch to getFirstChild + getNext in the loop |
210 | 214 | nodes (.children root)]
|
211 | 215 | (loop [nodes (cond-> nodes
|
212 | 216 | ;; handle goog.modules which won't have top-levels
|
|
229 | 233 |
|
230 | 234 | (defn externs-map*
|
231 | 235 | ([]
|
232 |
| - (externs-map* (CommandLineRunner/getDefaultExterns))) |
| 236 | + (externs-map* (default-externs))) |
233 | 237 | ([sources]
|
234 | 238 | (externs-map* sources
|
235 | 239 | '{eval {}
|
|
242 | 246 | ([sources defaults]
|
243 | 247 | (let [sources (if-not (empty? sources)
|
244 | 248 | sources
|
245 |
| - (CommandLineRunner/getDefaultExterns))] |
| 249 | + (default-externs))] |
246 | 250 | (reduce
|
247 | 251 | (fn [externs externs-file]
|
248 | 252 | (util/map-merge
|
|
376 | 380 | (fn [s]
|
377 | 381 | (let [m (-> s parse-externs index-externs)]
|
378 | 382 | (get-in m '[Window prototype console])))
|
379 |
| - (CommandLineRunner/getDefaultExterns)) |
| 383 | + (default-externs)) |
380 | 384 |
|
381 | 385 | (->
|
382 | 386 | (filter
|
383 | 387 | (fn [s]
|
384 | 388 | (= "externs.zip//webkit_dom.js" (.getName s)))
|
385 |
| - (CommandLineRunner/getDefaultExterns)) |
| 389 | + (default-externs)) |
386 | 390 | first parse-externs index-externs
|
387 | 391 | (find 'console) first meta)
|
388 | 392 |
|
389 | 393 | (->
|
390 | 394 | (filter
|
391 | 395 | (fn [s]
|
392 | 396 | (= "externs.zip//webkit_dom.js" (.getName s)))
|
393 |
| - (CommandLineRunner/getDefaultExterns)) |
| 397 | + (default-externs)) |
394 | 398 | first parse-externs index-externs
|
395 | 399 | (get-in '[Console prototype])
|
396 | 400 | (find 'log) first meta)
|
|
0 commit comments