On Apr 23, 2012, at 8:32 AM, John J Barton wrote: > > > On Mon, Apr 23, 2012 at 3:53 AM, Alex Russell <a...@dojotoolkit.org> wrote: > > The new forms we're adding (methods and arrows) have the potential to change > this radically, causing a large percentage of functions encountered by > programmers to have binding. If that binding is hard-binding, .call() and > .apply() break in the minds of users. Perhaps that's fine by you, but in > addition to being a contractual failure, it removes a form of genericness > which is unique in the language. > > Sorry if I missed reading about this but: why can't we re-bind 'this" in > bound functions when using call(), apply() ? I'm sure it will make more work > for JIT optimizers but they are very good and love this kind of problem.
Because the semantics would be difficult to implement -- jit or otherwise -- and difficult to specify otherwise :-( The more serious issue though is that of program behaviour -- if a developer has strongly bound this, it is reasonable to expect that they had some reason to do so. If you provide a mechanism that can bypass that binding you can break program abstraction, potentially allowing security bugs in the SES/Caja type language models. It would also imply being able to rebind |this| in bound functions, which would be insane. --Oliver > > jjb > _______________________________________________ > es-discuss mailing list > es-discuss@mozilla.org > https://mail.mozilla.org/listinfo/es-discuss
_______________________________________________ es-discuss mailing list es-discuss@mozilla.org https://mail.mozilla.org/listinfo/es-discuss