Andreas Rossberg (2013-12-05T16:21:32.000Z)
On 5 December 2013 16:48, Kevin Smith <zenparsing at gmail.com> wrote:
> #1 is the base case because it is completely general.  Any IdentifierName
> may appear in the "as" clause.
>
>     export { x as delete, y as new, z as default }; // Perfectly fine!

I certainly wouldn't mind this simplification either.


> Of course, "default" has special meaning on the import side:
>
>     import x from "package:foo";
>
> Desugars (very beautifully) to:
>
>     import { default as x } from "package:foo";
>
> The sugaring on the import side is a clear win, but I'm not so sure about
> the sugarings on the export side.

Although the import side has this one extra syntactic special case for defaults:

  import x, {y as z, ...} from "..."

That seems really redundant. I assume mixing default import with
others will be an extremely rare case, and when really needed, can
easily be expressed as either

  import {default as x, y as z, ...} from "..."

or

  import x from "..."
  import {y as z, ...} from "..."

/Andreas
domenic at domenicdenicola.com (2013-12-10T02:17:25.012Z)
On 5 December 2013 16:48, Kevin Smith <zenparsing at gmail.com> wrote:
> \#1 is the base case because it is completely general.  Any IdentifierName
> may appear in the "as" clause.
>
> ````js
> export { x as delete, y as new, z as default }; // Perfectly fine!
> ```

I certainly wouldn't mind this simplification either.


> Of course, "default" has special meaning on the import side:
>
> ```js
> import x from "package:foo";
>
> Desugars (very beautifully) to:
>
> ```js
> import { default as x } from "package:foo";
> ````
>
> The sugaring on the import side is a clear win, but I'm not so sure about
> the sugarings on the export side.

Although the import side has this one extra syntactic special case for defaults:

```js
import x, {y as z, ...} from "..."
```

That seems really redundant. I assume mixing default import with
others will be an extremely rare case, and when really needed, can
easily be expressed as either

```js
import {default as x, y as z, ...} from "..."
```

or

```js
import x from "..."
import {y as z, ...} from "..."
```