One more question, I've seen things like this a couple of times: (instance? cljs.core.Delay x)
and (set! cljs.core.ExceptionInfo.prototype (js/Error.)) Here the JS FQN doesn't use the js/ alias. Is that because instance? and set! are considered interop forms, or can fully qualified JS objects be referred to anywhere without the alias? On 10 June 2014 01:37, Colin Fleming <colin.mailingl...@gmail.com> wrote: > Great, thanks. > > > On 10 June 2014 01:33, David Nolen <dnolen.li...@gmail.com> wrote: > >> That is correct. >> >> On Mon, Jun 9, 2014 at 9:31 AM, Colin Fleming >> <colin.mailingl...@gmail.com> wrote: >> > Oh, one other question - does :refer-clojure in CLJS refer both macros >> and >> > functions in the same declaration? i.e. I could do something like: >> > >> > (ns foo >> > (:refer-clojure :only [defn reduce])) >> > >> > >> > On 10 June 2014 01:27, Colin Fleming <colin.mailingl...@gmail.com> >> wrote: >> >> >> >> Thanks David. I think I'll implement this the way it should work then, >> and >> >> users will see an unresolved symbol warning if they use the incorrect >> forms. >> >> As things get fancier I can provide some explanation and an intention >> to >> >> migrate the incorrect forms to the correct ones. >> >> >> >> Hopefully this should be done sometime this week. It's looking pretty >> nice >> >> :-) >> >> >> >> >> >> On 10 June 2014 00:21, David Nolen <dnolen.li...@gmail.com> wrote: >> >>> >> >>> On Sun, Jun 8, 2014 at 5:55 AM, Colin Fleming >> >>> <colin.mailingl...@gmail.com> wrote: >> >>> > >> >>> > Hi all, >> >>> > >> >>> > I'm working on CLJS symbol resolution for Cursive. There are a lot >> of >> >>> > corners where it's hard to figure out from the doc how they should >> work - >> >>> > I've looked through the code but I'm not sure I've got it all right. >> >>> > >> >>> > I've seen several times in the group here that / should only be used >> >>> > for CLJS namespaces, never for JS properties. So (Array/isArray >> ...) should >> >>> > be (js/Array.isArray ...) instead. Is this correct? ClojureScript: >> Up and >> >>> > running states that / can be used for JS module objects, which I >> take to >> >>> > mean root-level objects - their example is (Raphael/color....) from >> the >> >>> > Raphael JS library. Their discussion of the differences in >> this-binding is >> >>> > confusing since it seems that / should be used for JS but only in >> the case >> >>> > of top-level objects. >> >>> >> >>> This is correct. / in ClojureScript should only be used for >> >>> namespaces. Any place this isn't the case that isn't one of the >> >>> exceptional cases in ClojureScript should be considered an oversight. >> >>> >> >>> > confirm-ns in analyzer.clj contains a list of namespaces which >> should >> >>> > not warn, i.e. which are implicitly required, as I understand it >> (cljs.core, >> >>> > goog, Math, goog.string). CLJS itself contains examples like >> (Math/floor...) >> >>> > - does this mean that JS module objects are considered namespaces? >> Is this >> >>> > true of provide'd Google Closure namespaces (e.g. goog.string, >> which is also >> >>> > used like this in the CLJS source)? >> >>> >> >>> It's probably worth making an exception for Math for code portability >> >>> reasons. The others are proper namespaces. ClojureScript doesn't know >> >>> anything about "JS Modules". If a JS library is not required as a >> >>> namespace then it should be accessed in the standard way, no /. >> >>> >> >>> > Using e.g. :include-macros, it's possible to have the same alias >> refer >> >>> > both to a CLJS and CLJ namespace simultaneously. I'm assuming that >> in this >> >>> > case, if a symbol name were to conflict, that the macro form would >> take >> >>> > precedence in the head of a list (since macroexpansion happens >> before >> >>> > evaluation) but the CLJS form would take precedence everywhere >> else. Is this >> >>> > correct? >> >>> >> >>> That's correct and it's actually something we take advantage of to do >> >>> inlining arithmetic functions etc. >> >>> >> >>> > I'm assuming that my-namespace.cljs does not implicitly refer macros >> >>> > from my-namespace.clj - is this correct? >> >>> >> >>> That is correct. >> >>> >> >>> David >> >>> >> >>> -- >> >>> 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 clojurescript+unsubscr...@googlegroups.com. >> >>> To post to this group, send email to clojurescript@googlegroups.com. >> >>> Visit this group at http://groups.google.com/group/clojurescript. >> >> >> >> >> > >> > -- >> > 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 clojurescript+unsubscr...@googlegroups.com. >> > To post to this group, send email to clojurescript@googlegroups.com. >> > Visit this group at http://groups.google.com/group/clojurescript. >> >> -- >> 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 clojurescript+unsubscr...@googlegroups.com. >> To post to this group, send email to clojurescript@googlegroups.com. >> Visit this group at http://groups.google.com/group/clojurescript. >> > > -- 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 clojurescript+unsubscr...@googlegroups.com. To post to this group, send email to clojurescript@googlegroups.com. Visit this group at http://groups.google.com/group/clojurescript.