On Apr 1, 2012, at 1:40 AM, Dmitry Soshnikov wrote:
>
> On Apr 1, 2012, at 1:22 AM, Axel Rauschmayer wrote:
>
>>> On Apr 1, 2012, at 12:34 AM, Axel Rauschmayer wrote:
>>>
>>>>>> Ah, good. But one can use the above (pseudo-)desugaring to predict the
>>>>>> behavior of arrow functions, right? That is, there is no observable
>>>>>> difference.
>>>>>
>>>>> There is, again, the difference in terms of delegation to the target's
>>>>> [[Construct]] in case of a bound function, see the spec ("bound" per ES5,
>>>>> of course, since, as Brendan notices, it's not just a syntactic sugar,
>>>>> but a new special type of functions).
>>>>
>>>> OK. Ignoring [[Construct]] and .prototype, any other differences?
>>>
>>> Well, "ES5-bounds" also do not have `prototype' property, but delegate to
>>> the target's `prototype'. However, yes, there is the (main) difference in
>>> respect of supporting TCP (if I understand correctly, since had no time to
>>> follow the complete thread) -- return and break/continue jumps to the
>>> parent frame instead of working with the function itself.
>>
>> Arrow functions do not adhere to TCP. Everything you need to know is here:
>> http://wiki.ecmascript.org/doku.php?id=strawman:arrow_function_syntax
>
> Yes, thanks I've read it. But probably I misunderstood the description, but
> what then is the following mean?
>
> "... bind return in the Block body case so it returns from the immediately
> enclosing arrow function, and preclude breakand continue from referencing
> statements outside the immediately enclosing arrow function."
>
> Isn't it for supporting TCP? (sorry if it was already discussed and explained
> before, that's said, unfortunately hadn't time to join earlier)
>
Ah, ignore this, I skipped the last note in the Rationale section related to
TCP.
Dmitry
_______________________________________________
es-discuss mailing list
[email protected]
https://mail.mozilla.org/listinfo/es-discuss