File tree Expand file tree Collapse file tree 2 files changed +24
-10
lines changed Expand file tree Collapse file tree 2 files changed +24
-10
lines changed Original file line number Diff line number Diff line change 10451045 :else
10461046 (let [[x' externs'] me
10471047 info' (meta x')]
1048- (if (and (= 'Function ( :tag info')) (:ctor info'))
1048+ (if (and (:ctor info') ( = 'Function (:tag info') ))
10491049 (or
10501050 ; ; then check for "static" property
10511051 (resolve-extern (next pre) externs' top
10631063 (when-let [super (:super info')]
10641064 (resolve-extern (into [super] (next pre)) externs top
10651065 (-> ret
1066- (update :resolved conj x )
1066+ (assoc :resolved [] )
10671067 (assoc :info nil )))))
1068- (recur (next pre) externs' top
1069- (-> ret
1070- (update :resolved conj x)
1071- (assoc :info info'))))))))))
1068+
1069+ (or
1070+ ; ; If the tag isn't Function, try to resolve it
1071+ ; ; similar to the super case above
1072+ (let [tag (:tag info')]
1073+ (when (and tag (not= 'Function tag))
1074+ (resolve-extern (into [tag] (next pre)) externs top
1075+ (-> ret
1076+ (assoc :resolved [])
1077+ (assoc :info nil )))))
1078+
1079+ ; ; assume static property
1080+ (recur (next pre) externs' top
1081+ (-> ret
1082+ (update :resolved conj x)
1083+ (assoc :info info')))))))))))
10721084
10731085(defn has-extern?*
10741086 [pre externs]
Original file line number Diff line number Diff line change 4949 (is (= '[Number]
5050 (-> (ana/resolve-extern '[Number] externs) :resolved )))
5151 (is (= '[Number prototype valueOf]
52- (-> (ana/resolve-extern '[Number valueOf] externs) :resolved )))))
52+ (-> (ana/resolve-extern '[Number valueOf] externs) :resolved )))
53+ (is (= '[Console]
54+ (-> (ana/resolve-extern '[console] externs) :resolved )))
55+ (is (= '[Console prototype log]
56+ (-> (ana/resolve-extern '[console log] externs) :resolved )))))
5357
5458(comment
59+ (clojure.test/test-vars [#'test-resolve-extern])
5560
5661 (def externs (externs/externs-map ))
57-
5862 ; ; succeeds
5963 (ana/resolve-extern '[console] externs)
60-
61- ; ; this one fails
6264 (ana/resolve-extern '[console log] externs)
6365
6466 )
You can’t perform that action at this time.
0 commit comments