Skip to content
This repository has been archived by the owner on Mar 29, 2024. It is now read-only.

Add immutable prototype chains to ObjectTemplate #58

Closed
pinepain opened this issue Sep 4, 2017 · 0 comments
Closed

Add immutable prototype chains to ObjectTemplate #58

pinepain opened this issue Sep 4, 2017 · 0 comments
Assignees
Milestone

Comments

@pinepain
Copy link
Member

pinepain commented Sep 4, 2017

v8/v8@0ff7b48#diff-3dd7a0f46b1e5c1cc67921449e7180ac

Implement immutable prototype chains

This patch implements "immutable prototype exotic objects" from the ECMAScript
spec, which are objects whose __proto__ cannot be changed, but are not otherwise
frozen. They are introduced in order to prevent a Proxy from being introduced
to the prototype chain of the global object.

The API is extended by a SetImmutablePrototype() call in ObjectTemplate, which
can be used to vend new immutable prototype objects. Additionally, Object.prototype
is an immutable prototype object.

In the implementation, a new bit is added to Maps to say whether the prototype is
immutable, which is read by SetPrototype. Map transitions to the immutable prototype
state are not saved in the transition tree because the main use case is just for
the prototype chain of the global object, which there will be only one of per
Context, so no need to take up the extra word for a pointer in each full transition
tree.

BUG=v8:5149

Review-Url: https://codereview.chromium.org/2108203002
Cr-Commit-Position: refs/heads/master@{#37482}

Since: 5.4.3

Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.
Projects
None yet
Development

No branches or pull requests

1 participant