>>>> But my primary point was just that in Rick's examples, there doesn't 
>>>> appear to be any reliance on TCP at all.  Had => supported blocks on the 
>>>> RHS as in the original arrow proposal, all the code samples would be 
>>>> simpler, simply removing the 'do'.  I believe this will generally be true 
>>>> too.

>> All of the cases that use () => do { } are doing so where they require 
>> multiple statement expressions that inherit lexical |this|.

Right.  In the original arrow syntax [1] proposal "() => { this.foo(); }" gave 
lexical this with a statement body, which covers the use cases I saw in the 
examples you shared.  The point I was trying to make here is that lexical this 
is a separate issue from TCP.  If we deem it important to address lexical this 
with a different variant of arrow, we can do that without needing to add TCP 
preserving blocks.  These can be separate concerns.

I actually think it's worth starting simple here (maximal minimalism again).  
There is a lot of value in just having shorthand for exactly what 'function' is 
used for today.  Only statement bodies, no lexical this, nothing fancy for 
nullary parameter lists.  That alone would be a huge win, and would add 
effectively no additional complexity/concept count.    

Luke

[1] 
http://wiki.ecmascript.org/doku.php?id=strawman:arrow_function_syntax&rev=1307297899



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

Reply via email to