Index: src/objects-inl.h |
diff --git a/src/objects-inl.h b/src/objects-inl.h |
index eb1586ad0c2802b63cff7a299f3ae87c0297268d..544443866efc52a82fdb20f9b84db8540c1334fb 100644 |
--- a/src/objects-inl.h |
+++ b/src/objects-inl.h |
@@ -3351,6 +3351,9 @@ void Map::clear_instance_descriptors() { |
Object* object = READ_FIELD(this, |
kInstanceDescriptorsOrBitField3Offset); |
if (!object->IsSmi()) { |
+#ifdef DEBUG |
+ ZapInstanceDescriptors(); |
+#endif |
WRITE_FIELD( |
this, |
kInstanceDescriptorsOrBitField3Offset, |
@@ -3376,6 +3379,11 @@ void Map::set_instance_descriptors(DescriptorArray* value, |
} |
} |
ASSERT(!is_shared()); |
+#ifdef DEBUG |
+ if (value != instance_descriptors()) { |
+ ZapInstanceDescriptors(); |
+ } |
+#endif |
WRITE_FIELD(this, kInstanceDescriptorsOrBitField3Offset, value); |
CONDITIONAL_WRITE_BARRIER( |
heap, this, kInstanceDescriptorsOrBitField3Offset, value, mode); |
@@ -3448,6 +3456,11 @@ void Map::set_prototype_transitions(FixedArray* value, WriteBarrierMode mode) { |
Heap* heap = GetHeap(); |
ASSERT(value != heap->empty_fixed_array()); |
value->set(kProtoTransitionBackPointerOffset, GetBackPointer()); |
+#ifdef DEBUG |
+ if (value != prototype_transitions()) { |
+ ZapPrototypeTransitions(); |
+ } |
+#endif |
WRITE_FIELD(this, kPrototypeTransitionsOrBackPointerOffset, value); |
CONDITIONAL_WRITE_BARRIER( |
heap, this, kPrototypeTransitionsOrBackPointerOffset, value, mode); |