Four things:
1) The export grammar on the wiki allows:
export *;
Which I take to mean "export every local binding". What's the
justification? I don't think I've ever seen a ES5 "module" that didn't
have some local, non-exported state or function.
2) The grammar also allows:
export * from Path.To.Module;
which is fine. But I think it would also be convenient to provide the
following:
export * from "SomeModule.js";
In particular, this form would be useful in "package main" files, where you
are combining the interface of several sub-modules into a single package
interface. Using only the allowed forms, we would need something like:
import "SomeModule.js" as SomeModule;
export * from SomeModule;
3) I really like the module syntax (except for import *), and I would like
to see convergence on the syntax for importing to a module instance:
import "SomeModule.js" as SomeModule; // or
module SomeModule = "SomeModule.js";
I personally like the former, but has there been any agreement on either
one? Until there's a decision, we can't proceed with bleeding-edge
transcompilation. : )
4) Just a comment: the main argument in favor of "import *" is
convenience. But it's nearly as convenient to import to a module instance:
import "A.js" as A;
A.x();
A.y();
This is indeed what Node.js programmers are used to and I don't believe
there has been any gnashing of teeth over it. In my opinion, being able to
statically analyze a module in isolation outweighs the additional
convenience of import *.
Thanks for your time!
Kevin
_______________________________________________
es-discuss mailing list
[email protected]
https://mail.mozilla.org/listinfo/es-discuss