Easy to fix, can raise a ticket and submit patch if given the 'patch welcome' 
go ahead

file target is not validated
https://github.com/clojure/clojurescript/blob/master/src/clj/cljs/closure.clj#L525-L531
externs might need checking also.

Steps:
in project.clj add :preamble ["nosuchfile"] to the :compiler map

Expected:
"Could not find preamble file X in source path"

Actual:
Stacktrace gives no indication of the problem (without reading the compiler 
code)::

Compiling "resources/public/js/device_manager.js" failed.
java.lang.IllegalArgumentException: No implementation of method: :make-reader 
of protocol: #'clojure.java.io/IOFactory found for class: nil
    at clojure.core$_cache_protocol_fn.invoke(core_deftype.clj:544)
    at clojure.java.io$fn__8628$G__8610__8635.invoke(io.clj:69)
    at clojure.java.io$reader.doInvoke(io.clj:102)
    at clojure.lang.RestFn.invoke(RestFn.java:410)
    at clojure.lang.AFn.applyToHelper(AFn.java:154)
    at clojure.lang.RestFn.applyTo(RestFn.java:132)
    at clojure.core$apply.invoke(core.clj:626)
    at clojure.core$slurp.doInvoke(core.clj:6390)
    at clojure.lang.RestFn.invoke(RestFn.java:410)
    at cljs.closure$preamble_from_paths$fn__3018.invoke(closure.clj:524)
    at clojure.core$map$fn__4245.invoke(core.clj:2557)
    at clojure.lang.LazySeq.sval(LazySeq.java:40)
    at clojure.lang.LazySeq.seq(LazySeq.java:49)
    at clojure.lang.RT.seq(RT.java:484)
    at clojure.core$seq.invoke(core.clj:133)
    at clojure.core$apply.invoke(core.clj:624)
    at cljs.closure$preamble_from_paths.invoke(closure.clj:524)
    at cljs.closure$make_preamble.invoke(closure.clj:529)
    at cljs.closure$optimize.doInvoke(closure.clj:592)
    at clojure.lang.RestFn.applyTo(RestFn.java:139)
    at clojure.core$apply.invoke(core.clj:626)
    at cljs.closure$build.invoke(closure.clj:980)
    at cljs.closure$build.invoke(closure.clj:923)
    at cljsbuild.compiler$compile_cljs$fn__3200.invoke(compiler.clj:58)
    at cljsbuild.compiler$compile_cljs.invoke(compiler.clj:57)
    at cljsbuild.compiler$run_compiler.invoke(compiler.clj:159)
    at 
user$eval3326$iter__3344__3348$fn__3349$fn__3361.invoke(form-init6680721970243583147.clj:1)
    at 
user$eval3326$iter__3344__3348$fn__3349.invoke(form-init6680721970243583147.clj:1)
    at clojure.lang.LazySeq.sval(LazySeq.java:40)
    at clojure.lang.LazySeq.seq(LazySeq.java:49)
    at clojure.lang.RT.seq(RT.java:484)
    at clojure.core$seq.invoke(core.clj:133)
    at clojure.core$dorun.invoke(core.clj:2855)
    at clojure.core$doall.invoke(core.clj:2871)
    at user$eval3326.invoke(form-init6680721970243583147.clj:1)
    at clojure.lang.Compiler.eval(Compiler.java:6703)
    at clojure.lang.Compiler.eval(Compiler.java:6693)
    at clojure.lang.Compiler.load(Compiler.java:7130)
    at clojure.lang.Compiler.loadFile(Compiler.java:7086)
    at clojure.main$load_script.invoke(main.clj:274)
    at clojure.main$init_opt.invoke(main.clj:279)
    at clojure.main$initialize.invoke(main.clj:307)
    at clojure.main$null_opt.invoke(main.clj:342)
    at clojure.main$main.doInvoke(main.clj:420)
    at clojure.lang.RestFn.invoke(RestFn.java:421)
    at clojure.lang.Var.invoke(Var.java:383)
    at clojure.lang.AFn.applyToHelper(AFn.java:156)
    at clojure.lang.Var.applyTo(Var.java:700)
    at clojure.main.main(main.java:37)

-- 
Note that posts from new members are moderated - please be patient with your 
first post.
--- 
You received this message because you are subscribed to the Google Groups 
"ClojureScript" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to [email protected].
To post to this group, send email to [email protected].
Visit this group at http://groups.google.com/group/clojurescript.

Reply via email to