arguments.callee in Harmony

P T Withington ptw at pobox.com
Thu Sep 24 15:59:17 PDT 2009


On 2009-09-24, at 17:56, Charles Jolley wrote:

> I've been told that I could name the functions.  e.g.:
>
> ClassB = ClassA.extend({
>  foo:  function foo() {
>    // ..code
>  }
> });
>
> Somehow that should solve my problem, though I can't really work out  
> how.  But regardless, asking developers to name each method twice in  
> the declaration is also error prone and fragile.

OpenLaszlo have a similar scheme (http://bit.ly/1E6xig), but have a  
pre-processor that lets the developer write in something closer to  
'real' classes (based on ActionScript 3 and what was proposed for es4,  
before we were so rudely interrupted).  Because of the pre-processor  
we could just re-write our uses of arguments.callee to use named  
function expressions -- for platforms that implement the named  
function expressions correctly.

My biggest concern therefore is not that arguments.callee is going  
away, but that named function expressions have been mis-implemented so  
many times before (e.g., early versions of webkit and JScript to this  
day: http://bit.ly/19QxUO).


More information about the es-discuss mailing list