Don't unmark dictionary mode maps as unstable.

R=ulan@chromium.org
BUG=

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@18983 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
This commit is contained in:
verwaest@chromium.org 2014-01-31 11:38:43 +00:00
parent 3aa29a9a49
commit c7b91cd494
2 changed files with 6 additions and 3 deletions

View File

@ -3988,8 +3988,9 @@ bool Map::is_shared() {
void Map::set_dictionary_map(bool value) { void Map::set_dictionary_map(bool value) {
if (value) mark_unstable(); uint32_t new_bit_field3 = DictionaryMap::update(bit_field3(), value);
set_bit_field3(DictionaryMap::update(bit_field3(), value)); new_bit_field3 = IsUnstable::update(new_bit_field3, value);
set_bit_field3(new_bit_field3);
} }

View File

@ -6682,7 +6682,9 @@ MaybeObject* Map::RawCopy(int instance_size) {
new_bit_field3 = EnumLengthBits::update(new_bit_field3, new_bit_field3 = EnumLengthBits::update(new_bit_field3,
kInvalidEnumCacheSentinel); kInvalidEnumCacheSentinel);
new_bit_field3 = Deprecated::update(new_bit_field3, false); new_bit_field3 = Deprecated::update(new_bit_field3, false);
new_bit_field3 = IsUnstable::update(new_bit_field3, false); if (!is_dictionary_map()) {
new_bit_field3 = IsUnstable::update(new_bit_field3, false);
}
result->set_bit_field3(new_bit_field3); result->set_bit_field3(new_bit_field3);
return result; return result;
} }