arguments.callee in Harmony

Yehuda Katz wycats at
Thu Sep 24 16:31:32 PDT 2009

What I'd like to know is what the rationale for removing arguments.callee
from strict mode is. Is it a performance problem? If so, have implementors
tried other solutions at compile-time before agitating for the removal of a
language feature?
The argument that this is simply a strict mode change falls flat when we're
also told that Harmony will be built on ES5 strict mode. As far as I'm
concerned, anything missing in strict mode is effectively being removed from
the language.

-- Yehuda

On Thu, Sep 24, 2009 at 4:26 PM, Brendan Eich <brendan at> wrote:

> On Sep 24, 2009, at 4:06 PM, Charles Jolley wrote:
>  I'm curious, why not just give anonymous functions a default name like
>> "callee".  Or perhaps have "callee" defined in a function scope to represent
>> the function?  That seems to be exactly the same as the above; it just makes
>> it easier for developers.  Is there a perf issue here?
> No, there's simply a backward compatibility problem. Anonymous functions do
> not inject any such name on the scope chain (in any object, new or expected,
> on the scope chain). Changing the language to inject callee (even in an ES5
> declarative envirnment frame) is not backward compatible and probably will
> break some content out there that uses callee in an outer scope to mean
> something else.
> /be
> _______________________________________________
> es-discuss mailing list
> es-discuss at

Yehuda Katz
Developer | Engine Yard
(ph) 718.877.1325
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <>

More information about the es-discuss mailing list