Is it spec-compliant to forbid setPrototypeOf(Object.prototype, foo)?

T.J. Crowder tj.crowder at
Thu Feb 2 12:31:13 UTC 2017

On Thu, Feb 2, 2017 at 12:19 PM, Michał Wadas <michalwadas at> wrote:

> Right now this code:
> Object.setPrototypeOf(Object.prototype, Object.create(null))
> throws in both Chrome and Firefox. I couldn't find any mention of special
> [[SetPrototypeOf]] of %ObjectPrototype%, did I miss something?
Yes. :-) You missed that `Object.prototype` is an immutable prototype
exotic object:


...which does indeed have a special [[SetPrototypeOf]] which (indirectly)
returns false if you try to change the [[Prototype].
`Object.setPrototypeOf` throws when [[SetPrototypeOf]] returns false:

-- T.J.
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <>

More information about the es-discuss mailing list