Why is "export default var a = 1;" invalid syntax?

Marius Gundersen gundersen at gmail.com
Mon Dec 15 08:01:47 PST 2014


So are all of these legal?
```js
var a = 1;
export a;

var b = 1;
export default b;

export var c = 1;
export var d = 1, e = 2, f = 3;
```
What about:
```js
var default = 1;
export default;

var b = 1;
export default b;
```
Sorry for not being very good at reading EBNF

Marius Gundersen

On Mon, Dec 15, 2014 at 4:31 PM, Dave Herman <dherman at mozilla.com> wrote:
>
> On Fri, Dec 12, 2014 at 8:19 PM, Glen Huang <curvedmark at gmail.com> wrote:
>
>> You can already do "var a = 1;export default a;”. Why not make "export
>> default var a = 1;” valid?
>>
>
> Because the former is creating an exported variable called 'default' and
> assigning its initial value to the result of evaluating an expression that
> happens to evaluate the current value of 'a'. There's nothing special about
> the fact that you used 'a' there, it's just an ordinary expression that
> happens to evaluate a variable.
>
> (For historical interest, this was why I was in favor of using the equals
> sign in the syntax, to make it clear that export default is doing an
> assignment of an initializer expression to a variable, e.g.:
>
>   export default = a;
>
> But this was unpopular and I didn't push the issue.)
>
> At a more basic level, from a "principle of least surprise" perspective, I
> would have no idea what `export default var a = 1;` was supposed to mean.
>
> Dave
>
> _______________________________________________
> es-discuss mailing list
> es-discuss at mozilla.org
> https://mail.mozilla.org/listinfo/es-discuss
>
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://mail.mozilla.org/pipermail/es-discuss/attachments/20141215/219cd69b/attachment.html>


More information about the es-discuss mailing list