>> - Pro block-lambdas: A new construct that can be used in places where 
>> dynamic |this| (that normal functions are always going to have) would be a 
>> burden.
> 
> And for other purposes, such as block-like "bodies" of Array forEach, etc. 
> methods.

Right, you want lexical |this| in these cases and the dynamic |this| (of 
regular functions) gets in the way. I consider that a benefit of block-lambdas 
(in addition to them having a compact syntax and their support for break etc.).

>> - Pro arrows: little semantic change.
> 
> No semantic change, I claim. What differs apart from syntax?

Correct. I meant “less semantic change” (that with block lambdas), but “no 
semantic change” puts it better.

>> With the shorthand for methods in object literals, there is the question 
>> whether dynamic |this| is ever needed.
> 
> This does not make sense.
> 
> Object literals used for prototypes have methods but those methods must use 
> dynamic |this| because the calls use individual instances as their reference 
> bases, not the prototype.

I meant: One can already write methods (functions with dynamic |this|) in a 
very concise manner, thanks for Allen’s object literal extensions. Then you 
have to ask: Do we really need the dynamic this arrow ->, or can we make do 
with just the lexical this arrow =>.

>> - Pro ƒ: short, syntactically very similar to current semantics *and* syntax.
> 
> The florin works no better than Greek lower-case lambda. Both are already 
> legal ES3-5.1 Identifiers and cannot be retasked as keywords, especially not 
> with the name of the function in a function expression optional.

Ah, damn, I knew it was a very convincing argument. ;-)
There is still the faint hope that this isn’t actually used in practice, but 
still.

-- 
Dr. Axel Rauschmayer

a...@rauschma.de
twitter.com/rauschma

home: rauschma.de
blog: 2ality.com



_______________________________________________
es-discuss mailing list
es-discuss@mozilla.org
https://mail.mozilla.org/listinfo/es-discuss

Reply via email to