| Index: src/objects.cc
 | 
| diff --git a/src/objects.cc b/src/objects.cc
 | 
| index 81eec5e3df5cf87ec111ee876bc222f5881f2c63..3a4b9c9d34d938cd79838fd6f0af37e264753c46 100644
 | 
| --- a/src/objects.cc
 | 
| +++ b/src/objects.cc
 | 
| @@ -6584,8 +6584,7 @@ Handle<Map> Map::ShareDescriptor(Handle<Map> map,
 | 
|      if (old_size == 0) {
 | 
|        descriptors = DescriptorArray::Allocate(map->GetIsolate(), 0, 1);
 | 
|      } else {
 | 
| -      EnsureDescriptorSlack(
 | 
| -          map, SlackForArraySize(old_size, kMaxNumberOfDescriptors));
 | 
| +      EnsureDescriptorSlack(map, old_size < 4 ? 1 : old_size / 2);
 | 
|        descriptors = handle(map->instance_descriptors());
 | 
|      }
 | 
|    }
 | 
| @@ -6610,11 +6609,8 @@ void Map::ConnectTransition(Handle<Map> parent, Handle<Map> child,
 | 
|      DCHECK(child->is_prototype_map());
 | 
|    } else {
 | 
|      Handle<TransitionArray> transitions =
 | 
| -        TransitionArray::Insert(parent, name, child, flag);
 | 
| -    if (!parent->HasTransitionArray() ||
 | 
| -        *transitions != parent->transitions()) {
 | 
| -      parent->set_transitions(*transitions);
 | 
| -    }
 | 
| +        TransitionArray::CopyInsert(parent, name, child, flag);
 | 
| +    parent->set_transitions(*transitions);
 | 
|      child->SetBackPointer(*parent);
 | 
|    }
 | 
|  }
 | 
| 
 |