Interesting that that matters. I wouldn’t have thought so – given that modules 
export references, not values.


> On 20 Nov 2014, at 01:54, Allen Wirfs-Brock <[email protected]> wrote:
> 
> 
> On Nov 19, 2014, at 4:42 PM, Axel Rauschmayer <[email protected]> wrote:
> 
>>>> OK, I take it the following wasn’t viable?
>>> 
>>> that’s correct.  We wanted the initialization of a function like:
>>>    export default function () {}
>>> to be hoisted, just like:
>>>    export function f() {};
>> 
>> I suspect that that will confuse people: they will expect an anonymous 
>> function to be an expression, not a declaration (even more so because the 
>> operand of `export default` is usually an expression). Does hoisting even 
>> matter if the function doesn’t have a name? Is it worth it to introduce a 
>> completely new construct (an anonymous function declaration) just for 
>> `export default`?
>> 
> 
> It can make a difference to circular modules that reference each other’s 
> default export.  Hosted function iinitialization occurs before anything in 
> the module body is evaluated.  export default expression isn’t initialized at 
> the point of the export declaration in the module body.
> 
> Allen

-- 
Dr. Axel Rauschmayer
[email protected]
rauschma.de



_______________________________________________
es-discuss mailing list
[email protected]
https://mail.mozilla.org/listinfo/es-discuss

Reply via email to