On Tuesday, March 27, 2012 at 9:54 PM, Luke Hoban wrote:
>
> > > > > 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.
>
Thanks for the clarification, always appreciated.
Rick
>
> 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