Index: src/objects-debug.cc |
diff --git a/src/objects-debug.cc b/src/objects-debug.cc |
index 92bd97a87fcdde55ecb64f79f1469d6c99731f77..5ac554d89699b66470fe6aa10b95a2dbbd2029a6 100644 |
--- a/src/objects-debug.cc |
+++ b/src/objects-debug.cc |
@@ -1184,15 +1184,26 @@ bool DescriptorArray::IsSortedNoDuplicates(int valid_entries) { |
bool TransitionArray::IsSortedNoDuplicates(int valid_entries) { |
DCHECK(valid_entries == -1); |
Name* current_key = NULL; |
+ bool current_is_data_property = false; |
+ PropertyAttributes current_attributes = NONE; |
uint32_t current = 0; |
for (int i = 0; i < number_of_transitions(); i++) { |
Name* key = GetSortedKey(i); |
- if (key == current_key) { |
+ Map* target = GetTarget(i); |
+ PropertyDetails details = GetTargetDetails(key, target); |
+ bool is_data_property = |
+ details.type() == FIELD || details.type() == CONSTANT; |
+ PropertyAttributes attributes = details.attributes(); |
+ |
+ if ((key == current_key) && (attributes == current_attributes) && |
+ (is_data_property == current_is_data_property)) { |
OFStream os(stdout); |
PrintTransitions(os); |
return false; |
} |
current_key = key; |
+ current_is_data_property = is_data_property; |
+ current_attributes = attributes; |
uint32_t hash = GetSortedKey(i)->Hash(); |
if (hash < current) { |
OFStream os(stdout); |