Index: src/objects-inl.h |
diff --git a/src/objects-inl.h b/src/objects-inl.h |
index deb33653f7844c70ae9d848f5a59e62cbbe43989..929ad11bfe0466141aa7dd150de8e5fd09ae1f78 100644 |
--- a/src/objects-inl.h |
+++ b/src/objects-inl.h |
@@ -4422,6 +4422,17 @@ void Map::set_transitions(TransitionArray* transition_array, |
// When there is another reference to the array somewhere (e.g. a handle), |
// not zapping turns from a waste of memory into a source of crashes. |
if (HasTransitionArray()) { |
+#ifdef DEBUG |
+ for (int i = 0; i < transitions()->number_of_transitions(); i++) { |
+ Map* target = transitions()->GetTarget(i); |
+ if (target->instance_descriptors() == instance_descriptors()) { |
+ Name* key = transitions()->GetKey(i); |
+ int new_target_index = transition_array->Search(key); |
+ ASSERT(new_target_index != TransitionArray::kNotFound); |
+ ASSERT(transition_array->GetTarget(new_target_index) == target); |
+ } |
+ } |
+#endif |
ASSERT(transitions() != transition_array); |
ZapTransitions(); |
} |