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
es-discuss@mozilla.org
https://mail.mozilla.org/listinfo/es-discuss

Reply via email to