On 2009-05-04, at 17:39EDT, Brendan Eich wrote:

On May 4, 2009, at 2:00 PM, P T Withington wrote:

On 2009-05-04, at 14:46EDT, Brendan Eich wrote:

On May 4, 2009, at 10:45 AM, P T Withington wrote:

Assuming we're allowed to speculate on futures here...

I was thinking about improving debug-ability by adding descriptive names to function expressions thusly,

var myFun = function "my description here" (...) { ... };

Is this better for your purposes than

var myFun = function (...) { ... };
myFun.prettyName = "my description here";

Just that it's shorter and easier to type. It would be a shorthand notation for setting the .name property of the function object created. I wouldn't expect the function to be referenceable by the name, but I'd want Function.toString to display it (as a string literal).

As Michael Haufe and Mike Wilson point out, this might leave some wanting to call the function by that name within its own body. I'm interested in why you wouldn't care about that use case -- because you can guarantee that myFun never varies?

An intrinsic name for toString and reflection is a fine thing, but people tend to expect functions with names to be callable in some scope. There's the rub.

My real use case is passing an anonymous (non-recursive) function as an argument. I don't actually know what identifier my function will be bound to when it is called. If I need a recursive function _and_ a pretty name, presumably I could use either your proposal or:

  let x = function "pretty name" () { ... x() ... }

I see that people might expect to be able to say:

  "pretty name"()

but I wasn't asking for that. (OTOH, there is precedent for using string literals for attribute names that are not valid identifiers.)

I'm adding strawman and harmony pages to the wiki based on existing discussions, so I'll roll up the function name proposal thread and add this item. Thanks.

Thanks!
_______________________________________________
es-discuss mailing list
[email protected]
https://mail.mozilla.org/listinfo/es-discuss

Reply via email to