> Regarding, "import M.*" via destructuring, it's also arguable whether we > don't need it since it "looks like a with".
I don't see any sense in which it looks like a |with|. It's both syntactically and semantically different. Syntactically, because it's a global (or module-global) declaration rather than a local statement form, and semantically, because it imports all the bindings at compile-time. > then (theoretically!) why not to have `let {} = Mod` because that is ambiguous with existing destructuring syntax > (or any other syntax, e.g. let * = Mod) because that would be dynamically evaluating the module expression and dynamically importing all the bindings, and hence tantamount to |with|. > But, IMO it just looks more complicated than import Mod.*. I agree. Part of the point of import is to create a distinct syntactic context for module expressions. Mixing this in with ordinary expressions and destructuring confuses the issue. >> (We've talked a little bit about generalizing the `require' form to be an >> expression operator that does a static module load, but I'm not sure whether >> it hangs together.) > > This is the question of allowing expression which we talked in the Narcissus > list No, it's a different issue. You were talking about export declarations. Here I was talking about allowing you to statically load a module in any expression. > (https://mail.mozilla.org/pipermail/narcissus/2011-March/000043.html ; btw, > is it worth to put the discussing on duplications on this list?). Not really. It's a pretty specific detail and we'll sort it out. It's not worth spending time discussing. > Though the other question is: why do we need `require` at all? Purely for syntactic/practical reasons. Let's not bikeshed. Dave _______________________________________________ es-discuss mailing list es-discuss@mozilla.org https://mail.mozilla.org/listinfo/es-discuss