|
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