On Sep 11, 2013, at 8:53 AM, David Bruant wrote:

> Le 11/09/2013 17:51, Allen Wirfs-Brock a écrit :
>>> 
>>> Ps: btw, wasn't "GetInheritance" supposed to be renamed "GetPrototype"?
>>> 
>>> I think we had agreement on that. Allen?
>> 
>> I'm willing to call them [[GetPrototypeOf]] and [[SetPrototypeOf]] to match 
>> the trap names. I prefer avoiding a direct connotation with the 
>> [[Prototype]] internal data property as an exotic object is not required to 
>> have one.
> Is there a precedent of such an object?

For example, Proxy instances...
Also, Imay be mistaken but I think that prior to IE9, its COM based host 
objects did not have a [[Prototype]].

More generally, ES objectness is defined behaviorally via the MOP, not by any 
required representation of internal states. We don't impose any 
representational requirements upon exotic objects, just that they expose, in an 
implementation appropriate manner, the MOP interface. 

> Why can't such objects have a [[Prototype]] to null (as is the practice in 
> userland JS)?

They don't need to because nothing in the ES6 spec. except for the the ordinary 
definition of [[GetInheritance]]/[[SetInheritance]] accesses [[Prototype]] 
directly.  All access go through those MOP calls.  So, it is totally up to the 
implementation of those MOP operations to decide on any backing store.

Allen



_______________________________________________
es-discuss mailing list
es-discuss@mozilla.org
https://mail.mozilla.org/listinfo/es-discuss

Reply via email to