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 1045
1045
:else
1046
1046
(let [[x' externs'] me
1047
1047
info' (meta x')]
1048
- (if (and (= 'Function ( :tag info')) (:ctor info'))
1048
+ (if (and (:ctor info') ( = 'Function (:tag info') ))
1049
1049
(or
1050
1050
; ; then check for "static" property
1051
1051
(resolve-extern (next pre) externs' top
1063
1063
(when-let [super (:super info')]
1064
1064
(resolve-extern (into [super] (next pre)) externs top
1065
1065
(-> ret
1066
- (update :resolved conj x )
1066
+ (assoc :resolved [] )
1067
1067
(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')))))))))))
1072
1084
1073
1085
(defn has-extern?*
1074
1086
[pre externs]
Original file line number Diff line number Diff line change 49
49
(is (= '[Number]
50
50
(-> (ana/resolve-extern '[Number] externs) :resolved )))
51
51
(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 )))))
53
57
54
58
(comment
59
+ (clojure.test/test-vars [#'test-resolve-extern])
55
60
56
61
(def externs (externs/externs-map ))
57
-
58
62
; ; succeeds
59
63
(ana/resolve-extern '[console] externs)
60
-
61
- ; ; this one fails
62
64
(ana/resolve-extern '[console log] externs)
63
65
64
66
)
You can’t perform that action at this time.
0 commit comments