Chromium Code Reviews| Index: src/lookup.cc |
| diff --git a/src/lookup.cc b/src/lookup.cc |
| index 1cbff613def4d48aed00f521eb007863fbe8c18a..c6421b997d66f9bc6ac975ef25ea449165b63cbe 100644 |
| --- a/src/lookup.cc |
| +++ b/src/lookup.cc |
| @@ -368,10 +368,18 @@ void LookupIterator::TransitionToAccessorProperty( |
| Handle<Map> old_map(receiver->map(), isolate_); |
| Handle<Map> new_map = Map::TransitionToAccessorProperty( |
| old_map, name_, component, accessor, attributes); |
| + bool simple_transition = new_map->GetBackPointer() == receiver->map(); |
| JSObject::MigrateToMap(receiver, new_map); |
| - ReloadPropertyInformation(); |
| + if (simple_transition) { |
| + int number = new_map->LastAdded(); |
|
jochen (gone - plz use gerrit)
2016/03/04 09:58:03
why's LastAdded not return uint32_t?
|
| + number_ = static_cast<uint32_t>(number); |
| + property_details_ = new_map->GetLastDescriptorDetails(); |
| + state_ = ACCESSOR; |
| + return; |
| + } |
| + ReloadPropertyInformation(); |
| if (!new_map->is_dictionary_map()) return; |
| } |