Index: src/objects-printer.cc |
diff --git a/src/objects-printer.cc b/src/objects-printer.cc |
index b1118de9c476f91f9b706059c516d66b81f7f1f3..7c9b746b7e63e60143a0b1900c001d4df30cafb2 100644 |
--- a/src/objects-printer.cc |
+++ b/src/objects-printer.cc |
@@ -997,6 +997,33 @@ void TypeSwitchInfo::TypeSwitchInfoPrint(FILE* out) { |
} |
+void AllocationSiteInfo::AllocationSiteInfoPrint(FILE* out) { |
+ HeapObject::PrintHeader(out, "AllocationSiteInfo"); |
+ PrintF(out, " - payload: "); |
+ if (payload()->IsJSGlobalPropertyCell()) { |
+ JSGlobalPropertyCell* cell = JSGlobalPropertyCell::cast(payload()); |
+ Object* cell_contents = cell->value(); |
+ if (cell_contents->IsSmi()) { |
+ ElementsKind kind = static_cast<ElementsKind>( |
+ Smi::cast(cell_contents)->value()); |
+ PrintF(out, "Array allocation with ElementsKind "); |
+ PrintElementsKind(out, kind); |
+ PrintF(out, "\n"); |
+ return; |
+ } |
+ } else if (payload()->IsJSArray()) { |
+ PrintF(out, "Array literal boilerplate "); |
+ payload()->ShortPrint(out); |
+ PrintF(out, "\n"); |
+ return; |
+ } |
+ |
+ PrintF(out, "unknown payload "); |
+ payload()->ShortPrint(out); |
+ PrintF(out, "\n"); |
+} |
+ |
+ |
void Script::ScriptPrint(FILE* out) { |
HeapObject::PrintHeader(out, "Script"); |
PrintF(out, "\n - source: "); |