Can Activation Object have a [[Prototype]]?

Brendan Eich brendan at mozilla.com
Mon Dec 28 21:29:31 PST 2009


On Dec 28, 2009, at 8:48 PM, Garrett Smith wrote:

> Can Activation Object have Object.prototype for [[Prototype]]?

Absolutely not, for the reason you illustrate with the toString example.


> The only implmeentation I know of that does this is Blackberry9000. I
> called it a bug, but now I am not sure. Is this behavior disallowed by
> the specification? If so, where?

An Activation object is an internal (abstract, only for the spec, not  
detectable in the language) object. If you could detect its presence,  
e.g. by its having a [[Prototype]] internal property with non-null  
value, then the implementation would not conform. See ES3 10.1.6:

"The activation object is purely a specification mechanism. It is  
impossible for an ECMAScript program to access the activation object.  
It can access members of the activation object, but not the activation  
object itself. When the call operation is applied to a Reference value  
whose base object is an activation object, null is used as the this  
value of the call."

ES5's Clause 10 eliminates all mention of "activation objects" and  
avoids abusing objects for internal (spec-only) data types.

/be


More information about the es-discuss mailing list