On Mar 6, 2009, at 12:41 PM, Garrett Smith wrote:
On Fri, Mar 6, 2009 at 9:48 AM, Brendan Eich <[email protected]>
wrote:
No, sorry -- no time. What's your point? If you see something worth
My point? If you had read the source code, then you might have reason
for waiting to hear from the objective-j folks to make a decision on
[[Writable]] name. What could the reason be?
I am waiting to hear from them. Are you reading what I'm writing? Yeesh.
No decision is being rushed here, but the point against mutable named-
function name property (both "named" and "name" are necessary in that
phrase) on which Mark and I agree stands independently of other
arguments. It might lose (I hope not), but it's fair to make now,
independently from any other correspondence on this topic. It is an
apple to any countervailing orange.
Now, I like apples better than oranges, perhaps Mark does too, but the
isolation argument that Mark emphasized is not just a matter of taste.
Just as an apple may be objectively more healthy to the average or
majority-demographic constitutional type, immutable function name may
be measurably more secure, or more efficient (both, I'd argue).
The utility of mutable name for anonymous functions is not at issue if
we do not define name at all on such functions -- this is the proposal
Allen and I were converging on. You can set name on such anonymous,
expressed functions to whatever value you like, delete it, shadow it
via .prototype/construction, etc.
The only issue remaining in this anonymous function case is whether
toString picks up the assigned name. For anonymous functions only,
this could be done without breaking the isolation property that
allowing mutation of the name initialized from the declared name of a
non-anonymous function would break. In fact it would seem independent:
anonymous function referenced by variable f:
* name can be set;
* if set to a value converting to the string "g", then f.toString()
returns "function g(...) {...}" (modulo whitespace).
named function expression or declaration, name is f:
* name cannot be set, deleted, or configured;
* f.toString() always returns a string starting "function f(...".
Does this help?
...
http://groups.google.com/group/comp.lang.javascript/msg/6d266c0ddc64f9ec?dmode=source&output=gplain
Good stuff.
Off topic, too. If the goal is to hear from the Objective-J folks, let
them speak on the particular issue of mutable function name property.
General hype just adds noise and makes me grumpy. Let's talk about the
specific costs and benefits of function name property as proposed. And
yeah, I'd love to hear more about the Objective-J use-case.
/be
_______________________________________________
Es-discuss mailing list
[email protected]
https://mail.mozilla.org/listinfo/es-discuss