Can Activation Object have a [[Prototype]]?
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.
More information about the es-discuss