v8/test/cctest/interpreter
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
..
bytecode_expectations Implement immutable prototype chains 2016-07-01 19:20:11 +00:00
bytecode-expectations-printer.cc Use source position table for unoptimized code. 2016-06-28 05:52:52 +00:00
bytecode-expectations-printer.h Use source position table for unoptimized code. 2016-06-28 05:52:52 +00:00
generate-bytecode-expectations.cc Provide a convenience array buffer allocator 2016-06-29 07:42:40 +00:00
interpreter-tester.cc [Interpreter] Make ignition compiler eagerly. 2016-03-24 18:38:24 +00:00
interpreter-tester.h Move of the type feedback vector to the closure. 2016-05-27 08:10:51 +00:00
source-position-matcher.cc Use source position table for unoptimized code. 2016-06-28 05:52:52 +00:00
source-position-matcher.h Use source position table for unoptimized code. 2016-06-28 05:52:52 +00:00
test-bytecode-generator.cc [Interpreter] Make lazy compilation the default. 2016-05-24 12:52:50 +00:00
test-interpreter-intrinsics.cc [turbofan] Introduce Float64Pow and NumberPow operators. 2016-06-28 10:26:10 +00:00
test-interpreter.cc [Interpreter] Add a simple dead-code elimination bytecode optimizer. 2016-06-21 15:29:24 +00:00
test-source-positions.cc [Interpreter] Add a simple dead-code elimination bytecode optimizer. 2016-06-21 15:29:24 +00:00