Index: src/objects.cc |
diff --git a/src/objects.cc b/src/objects.cc |
index c0f102fb123e2093fe96f4a8d4a587b54b3c78c0..3b2db221f8e54e81282e7c4702ebde882b46d8cb 100644 |
--- a/src/objects.cc |
+++ b/src/objects.cc |
@@ -7353,6 +7353,11 @@ void Map::ClearNonLiveTransitions(Heap* heap) { |
DescriptorArray* d = DescriptorArray::cast( |
*RawField(this, Map::kInstanceDescriptorsOrBitField3Offset)); |
if (d->IsEmpty()) return; |
+ Map* elements_transition = d->elements_transition_map(); |
+ if (elements_transition != NULL && |
+ ClearBackPointer(heap, elements_transition)) { |
+ d->ClearElementsTransition(); |
+ } |
Smi* NullDescriptorDetails = |
PropertyDetails(NONE, NULL_DESCRIPTOR).AsSmi(); |
for (int i = 0; i < d->number_of_descriptors(); ++i) { |