With “rules”, I don’t mean rules in the sense of the language spec, but rather rules for teaching the language to newcomers.
On Apr 29, 2012, at 10:28 , Brendan Eich wrote: > Axel Rauschmayer wrote: >> I am not saying that the transition from the old rules to the new rules will >> be entirely painless, but if the new rules are simple, that pain is worth >> it, IMHO. > > There are no new rules. Some functions ignore |this| or bind it rather than > using it. These differences in kind do not change due to arrows. > >> Library code might need to go to extra lengths to help normal developers >> with the transition (error messages, different behavior, tool functions, >> etc.) and – to be explicit – might need a predicate such as >> `isArrowFunction` (which should only ever be used under the hood and thus >> would not increase confusion for library*users*). > > There's no point in such a misnamed predicate. Today we have functions that > ignore or bind |this|, as well as those that use |this| passed by the caller. > Code requires and assumes one kind or another and does not test (and most > programmers wouldn't cover all cases, and shouldn't have to). > > Part of an API, an essential part of the contract, is any function > parameter's |this| binding. Arrows make it easier to use callbacks wanting > lexical |this| or not using |this| at all. This covers a large cohort. Code > invoking the arrow is not going to test well or at all and do something > helpful, or unhelpful such as throwing an exception. > > /be > -- Dr. Axel Rauschmayer [email protected] home: rauschma.de twitter: twitter.com/rauschma blog: 2ality.com
_______________________________________________ es-discuss mailing list [email protected] https://mail.mozilla.org/listinfo/es-discuss

