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

Reply via email to