Index: src/objects-printer.cc |
diff --git a/src/objects-printer.cc b/src/objects-printer.cc |
index 6e80515253c885ed672cf57a789b04825d60b092..aac79a65a86a6f9a410ea52754d44ef4e1f893e4 100644 |
--- a/src/objects-printer.cc |
+++ b/src/objects-printer.cc |
@@ -315,12 +315,25 @@ void JSObject::PrintProperties(FILE* out) { |
descs->GetCallbacksObject(i)->ShortPrint(out); |
PrintF(out, " (callback)\n"); |
break; |
- case ELEMENTS_TRANSITION: |
+ case ELEMENTS_TRANSITION: { |
PrintF(out, "(elements transition to "); |
- PrintElementsKind(out, |
- Map::cast(descs->GetValue(i))->elements_kind()); |
+ Object* descriptor_contents = descs->GetValue(i); |
+ if (descriptor_contents->IsMap()) { |
+ Map* map = Map::cast(descriptor_contents); |
+ PrintElementsKind(out, map->elements_kind()); |
+ } else { |
+ FixedArray* map_array = FixedArray::cast(descriptor_contents); |
+ for (int i = 0; i < map_array->length(); ++i) { |
+ Map* map = Map::cast(map_array->get(i)); |
+ if (i != 0) { |
+ PrintF(out, ", "); |
+ } |
+ PrintElementsKind(out, map->elements_kind()); |
+ } |
+ } |
PrintF(out, ")\n"); |
break; |
+ } |
case MAP_TRANSITION: |
PrintF(out, "(map transition)\n"); |
break; |