v8/include
littledan 0ff7b4830c 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}
2016-07-01 19:20:11 +00:00
..
libplatform [api] Assume that v8/include is in the include path for all public headers 2016-02-29 11:03:02 +00:00
OWNERS Add myself to include/OWNERS 2015-04-21 10:05:59 +00:00
v8-debug.h Add a convenience method to get the debugged context 2016-06-06 14:12:10 +00:00
v8-experimental.h [api] Assume that v8/include is in the include path for all public headers 2016-02-29 11:03:02 +00:00
v8-platform.h [Tracing] Remove deprecated AddTraceEvent 2016-03-01 21:20:48 +00:00
v8-profiler.h Use gender neutral terms 2016-06-22 15:05:18 +00:00
v8-testing.h Remove easy to remove calls to Isolate::Current() from api.cc 2015-11-30 08:16:59 +00:00
v8-util.h [API] Remove deprecated WeakCallbackData and related functions. 2016-05-06 13:18:07 +00:00
v8-version.h Update version to 5.4 2016-06-30 14:03:34 +00:00
v8.h Implement immutable prototype chains 2016-07-01 19:20:11 +00:00
v8config.h Use C++11 / gnu++11, not 0x 2016-03-22 15:24:43 +00:00