__proto__ security

Allen Wirfs-Brock allen at wirfs-brock.com
Mon Feb 13 09:55:29 PST 2012

Let's try to get this back to concrete issues that I can incorporate into a specification.

The current draft is at http://wiki.ecmascript.org/lib/exe/fetch.php?id=strawman%3Amagic_proto_property&cache=cache&media=harmony:draft_proto_spec_rev2.pdf 

Gavin and Oliver seem to really want to use an accessor for  Object.prototype.__proto__

Brendan has expressed a willingness to accepting under specify some the Object.prototype.__proto__ property in ways that we normally wouldn't for mandatory parts of the specification.  

I could accommodate these two perspective by changing the first paragraph of the draft B.3.1.1 to read:

The __proto__ property of the Object prototype property initially has the attributes {[[Enumerable]]: false, [[Configurable]]: true}.  The state of other attributes and whether it is an accessor or data property is implementation defined.

This would allow implementations to use either a data property or a access property for Object.prototype.__proto__.  However, the internal method extensions are still needed in order to define the semantics in a manner that allows either implementation approach to be used.

Finally, an alternative to extending [[Get]] and [[Put]] would be to extend the GetValue abstraction operation (8.7.1) and the Simple Assignment evaluation semantics (11.13.1).

[[DefineOwnProperty]] and [[Delete]] still need to be extended but, independent of any of the above, these two can probably be made over-riding implementations on Object.prototype rather than extending the default implementations used by all objects.


-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://mail.mozilla.org/pipermail/es-discuss/attachments/20120213/233b4feb/attachment.html>

More information about the es-discuss mailing list