File tree Expand file tree Collapse file tree 2 files changed +21
-19
lines changed Expand file tree Collapse file tree 2 files changed +21
-19
lines changed Original file line number Diff line number Diff line change 10331033 " Given a foreign js property list, return a resolved js property list and the
10341034 extern var info"
10351035 ([pre externs]
1036- (let [pre (if-some [me (find
1037- (get-in externs '[Window prototype])
1038- (first pre))]
1039- (if-some [tag (-> me first meta :tag )]
1040- (into [tag 'prototype] (next pre))
1041- pre)
1042- pre)]
1043- (resolve-extern pre externs externs {:resolved [] :info nil })))
1036+ (resolve-extern pre externs externs {:resolved [] :info nil }))
10441037 ([pre externs top ret]
10451038 (cond
10461039 (empty? pre) ret
10541047 info' (meta x')]
10551048 (if (and (= 'Function (:tag info')) (:ctor info'))
10561049 (or
1050+ ; ; then check for "static" property
1051+ (resolve-extern (next pre) externs' top
1052+ (-> ret
1053+ (update :resolved conj x)
1054+ (assoc :info info')))
1055+
10571056 ; ; first look for a property on the prototype
10581057 (resolve-extern (into '[prototype] (next pre)) externs' top
1059- (-> ret
1060- (update :resolved conj 'prototype)
1061- (assoc :info nil )))
1062- ; ; then check for "static" property
1063- (resolve-extern (next pre) externs' top
10641058 (-> ret
10651059 (update :resolved conj x)
1066- (assoc :info info')))
1060+ (assoc :info nil )))
1061+
10671062 ; ; finally check the super class if there is one
10681063 (when-let [super (:super info')]
10691064 (resolve-extern (into [super] (next pre)) externs top
Original file line number Diff line number Diff line change 4444 (is (true ? (ana/has-extern? '[baz] externs)))
4545 (is (false ? (ana/has-extern? '[Baz] externs)))))
4646
47+ (deftest test-resolve-extern
48+ (let [externs (externs/externs-map )]
49+ (is (= '[Number]
50+ (-> (ana/resolve-extern '[Number] externs) :resolved )))
51+ (is (= '[Number prototype valueOf]
52+ (-> (ana/resolve-extern '[Number valueOf] externs) :resolved )))))
53+
4754(comment
4855
49- (clojure.test/test-vars [#'test-resolve-extern] )
56+ (def externs ( externs/externs-map ) )
5057
51- ; ; working
52- (externs/info externs '[baz])
53- (externs/info externs '[Foo gozMethod])
58+ ; ; succeeds
59+ (ana/resolve-extern '[console] externs)
5460
55- (ana/has-extern? '[Foo] externs)
61+ ; ; this one fails
62+ (ana/resolve-extern '[console log] externs)
5663
5764 )
5865
You can’t perform that action at this time.
0 commit comments