Property reconfiguring implemented.
authorishell <ishell@chromium.org>
Mon, 16 Feb 2015 15:25:33 +0000 (07:25 -0800)
committerCommit bot <commit-bot@chromium.org>
Mon, 16 Feb 2015 15:25:54 +0000 (15:25 +0000)
commit35841b505570a14793c64f86c5fe7c57542dd8b5
treec56db4c85bc72f214e16fad9cb42d5b1cfcec234
parentc5f7d2bb822f1cec021f590cf241bba5318d3ece
Property reconfiguring implemented.

Previous approach for property reconfiguration was to create a free-floating map with generalized representations of all fields. This patch does it right.

When property is reconfigured either by changing its kind (kData <-> kAccessor) or its attributes it implies creation of a new branch in transition tree. If such a branch already existed before reconfiguration then it should be merged with the old (or source) branch of the transition tree. Merging procedure includes all the heavy machinery such as property location changes (kDescriptor -> kField), field representation/field type generalization, map deprecation, etc.

Review URL: https://codereview.chromium.org/888623002

Cr-Commit-Position: refs/heads/master@{#26667}
src/lookup.cc
src/objects-inl.h
src/objects-printer.cc
src/objects.cc
src/objects.h
src/property-details.h
src/property.cc
test/cctest/cctest.gyp
test/cctest/test-migrations.cc [new file with mode: 0644]