On 2013/12/05 15:53:35, sof wrote:
On 2013/12/03 18:06:23, rossberg wrote:
> On 2013/12/03 17:57:17, Michael Starzinger wrote:
> > The only kind-of-spec for the "name" property on function objects is
the
> > proposal on the Harmony wiki (please correct me if there is a more
precise
> > specification that I am missing).
> >
> > http://wiki.ecmascript.org/doku.php?id=harmony:function_name_property
> >
> > This proposal actually specs the property to be writable (even for
strict
> > functions). So while I agree that having different attributes for
strict
and
> > non-strict functions is weird, I am not sure this fix is going into
the
right
> > direction.
> >
> > Adding Andreas as a reviewer for his opinion on the matter.
>
> Actually, in ES6, .name will be non-writable but configurable (that is
already
> spec'ed in the draft). Could you modify the CL to do that?
Done. (Apologies for not following up right away, other issues demanded my
attention.)
As you can see, this exposes a couple of issues:
- the interaction with a function also having "name" on its proto chain
and
implemented
by a callback accessor, makes for quite interesting behavior if you
delete
the property
and then attempt to assign or redefine it. Spent quite some time making
object-observe.js
also handle such a property, but it became too ad-hoc, that I ended up
blacklisting
it. Not ideal.
- redefining "name" runs into unusual interactions upon re-definition,
see
regress-1530.js
A bug uncovered?
Yeah, these sounds like bugs. Can you reproduce both issues with ordinary JS
code? If so, can you please file them as bug reports?
These issues make me somewhat reluctant to land this change for now. We
should
probably understand and fix the issues first.
Another thought: ES6 also makes .length configurable. And for consistency,
we
should probably apply the same change to the (non-official) .caller and
.arguments properties. It would be best to do that all in the same CL.
(Sorry
for not pointing this out earlier.)
https://codereview.chromium.org/99203006/
--
--
v8-dev mailing list
[email protected]
http://groups.google.com/group/v8-dev
---
You received this message because you are subscribed to the Google Groups "v8-dev" group.
To unsubscribe from this group and stop receiving emails from it, send an email
to [email protected].
For more options, visit https://groups.google.com/groups/opt_out.