David Herman wrote:
On Dec 5, 2012, at 7:16 PM, Kevin Smith<khs4...@gmail.com>  wrote:

1) "export" ExportSpecifierSet ("," ExportSpecifierSet)* ";"

This rule seems too permissive.  It allows strange combinations like:

     export x, { y: a.b.c, z }, { j, k }, * from "bloop";

I think it would be better to flatten it out a little bit:

     ExportDeclaration: "export" "{" ExportSpecifier ("," ExportSpecifier)* "}" 
";"
     ExportDeclaration: "export" Identifier ("," Identifier)* ";"
     ExportDeclaration: "export" "*" "from" StringLiteral ";"

Reasonable point, I'll think about that.

We do not so limit var, let, or const -- why should we limit export? Ok, it's a bit different (but then import is not, right?).

Style enforcement should not be wired into the grammar. If I want to write

  export {odd, even}, {nat: naturals};

why not?

Skipping 'as' reversal, that is a tough one! The export = ... special form does not suggest a better syntax, alas.

4) Why was this form eliminated?

     import x from "goo";  // Note lack of curlies!

In an object-oriented application, we're often going to be importing a single 
thing (the class) from external modules.  So we may see long lists like this:

     import { ClassA } from "ClassA.js";
     import { ClassB } from "ClassB.js";
     ....
     import { ClassZ } from "ClassZ.js";

Removing the curlies for this simple case would seem like a win.

Another fair point. I think it might've just been a refactoring oversight.

Cool, definitely want the plain identifier form, it's part of the binding (and destructuring) pattern language.

/be
_______________________________________________
es-discuss mailing list
es-discuss@mozilla.org
https://mail.mozilla.org/listinfo/es-discuss

Reply via email to