File tree 3 files changed +17
-10
lines changed
3 files changed +17
-10
lines changed Original file line number Diff line number Diff line change 1964
1964
([^Reader rdr] (forms-seq* rdr nil ))
1965
1965
([^Reader rdr filename]
1966
1966
{:pre [(instance? Reader rdr)]}
1967
- (let [pbr (readers/indexing-push-back-reader
1967
+ (let [opts (when (and filename (= (util/ext filename) " cljc" ))
1968
+ {:read-cond :allow :features #{:cljs }})
1969
+ pbr (readers/indexing-push-back-reader
1968
1970
(PushbackReader. rdr) 1 filename)
1969
1971
data-readers tags/*cljs-data-readers*
1970
1972
forms-seq_
1977
1979
(apply merge
1978
1980
((juxt :requires :require-macros )
1979
1981
(get-namespace *cljs-ns*)))]
1980
- (reader/read pbr nil eof-sentinel))]
1982
+ (reader/read pbr nil eof-sentinel opts nil ))]
1981
1983
(if (identical? form eof-sentinel)
1982
1984
(.close rdr)
1983
1985
(cons form (forms-seq_ ))))))]
2161
2163
(util/debug-prn " Analyzing" (str res)))
2162
2164
(let [env (assoc (empty-env ) :build-options opts)
2163
2165
ns (with-open [rdr (io/reader res)]
2164
- (loop [ns nil forms (seq (forms-seq* rdr))]
2166
+ (loop [ns nil forms (seq (forms-seq* rdr ( util/path res) ))]
2165
2167
(if forms
2166
2168
(let [form (first forms)
2167
2169
env (assoc env :ns (get-namespace *cljs-ns*))
Original file line number Diff line number Diff line change 1013
1013
:gen-line 0 }))]
1014
1014
(emitln (compiled-by-string opts))
1015
1015
(with-open [rdr (io/reader src)]
1016
- (loop [forms (ana/forms-seq* rdr)
1016
+ (loop [forms (ana/forms-seq* rdr ( util/path src) )
1017
1017
ns-name nil
1018
1018
deps nil ]
1019
1019
(if (seq forms)
Original file line number Diff line number Diff line change 105
105
(defn ^String filename [^File f]
106
106
(.getName f))
107
107
108
- (defn ^String path [^URL url]
109
- (.getPath url))
108
+ (defn ^String path [x]
109
+ {:pre [(or (file? x) (url? x))]}
110
+ (cond
111
+ (file? x) (.getAbsolutePath ^File x)
112
+ (url? x) (.getPath ^URL x)))
110
113
111
114
(defn ^String ext
112
- " Given a file or url return the file extension."
113
- [f]
115
+ " Given a file, url or string return the file extension."
116
+ [x]
117
+ {:pre [(or (file? x) (url? x) (string? x))]}
114
118
(let [s (cond
115
- (file? f) (filename f)
116
- (url? f) (path f))]
119
+ (file? x) (filename x)
120
+ (url? x) (path x)
121
+ (string? x) x)]
117
122
(last (string/split s #"\. " ))))
118
123
119
124
(defn ^String get-name
You can’t perform that action at this time.
0 commit comments