Index: src/objects-printer.cc |
diff --git a/src/objects-printer.cc b/src/objects-printer.cc |
index d0ea0346579bee9151feea83bc0958c54459299d..89dd06157686995d4241513fcb774e8c1b09664b 100644 |
--- a/src/objects-printer.cc |
+++ b/src/objects-printer.cc |
@@ -346,12 +346,6 @@ void JSObject::PrintElements(std::ostream& os) { // NOLINT |
} |
-void JSObject::PrintTransitions(std::ostream& os) { // NOLINT |
- if (!map()->HasTransitionArray()) return; |
- map()->transitions()->PrintTransitions(os, false); |
-} |
- |
- |
void JSObject::JSObjectPrint(std::ostream& os) { // NOLINT |
HeapObject::PrintHeader(os, "JSObject"); |
// Don't call GetElementsKind, its validation code can cause the printer to |
@@ -592,21 +586,6 @@ void Name::NamePrint(std::ostream& os) { // NOLINT |
} |
-// This method is only meant to be called from gdb for debugging purposes. |
-// Since the string can also be in two-byte encoding, non-Latin1 characters |
-// will be ignored in the output. |
-char* String::ToAsciiArray() { |
- // Static so that subsequent calls frees previously allocated space. |
- // This also means that previous results will be overwritten. |
- static char* buffer = NULL; |
- if (buffer != NULL) delete[] buffer; |
- buffer = new char[length()+1]; |
- WriteToFlat(this, reinterpret_cast<uint8_t*>(buffer), 0, length()); |
- buffer[length()] = 0; |
- return buffer; |
-} |
- |
- |
static const char* const weekdays[] = { |
"???", "Sun", "Mon", "Tue", "Wed", "Thu", "Fri", "Sat" |
}; |
@@ -1067,25 +1046,6 @@ void BreakPointInfo::BreakPointInfoPrint(std::ostream& os) { // NOLINT |
} |
-void DescriptorArray::Print() { |
- OFStream os(stdout); |
- this->PrintDescriptors(os); |
- os << std::flush; |
-} |
- |
- |
-void DescriptorArray::PrintDescriptors(std::ostream& os) { // NOLINT |
- HandleScope scope(GetIsolate()); |
- os << "Descriptor array " << number_of_descriptors() << "\n"; |
- for (int i = 0; i < number_of_descriptors(); i++) { |
- Descriptor desc; |
- Get(i, &desc); |
- os << " " << i << ": " << desc << "\n"; |
- } |
- os << "\n"; |
-} |
- |
- |
static void PrintBitMask(std::ostream& os, uint32_t value) { // NOLINT |
for (int i = 0; i < 32; i++) { |
if ((i & 7) == 0) os << " "; |
@@ -1123,6 +1083,80 @@ void LayoutDescriptor::Print(std::ostream& os) { // NOLINT |
} |
+#endif // OBJECT_PRINT |
+ |
+ |
+#if TRACE_MAPS |
+ |
+ |
+void Name::NameShortPrint() { |
+ if (this->IsString()) { |
+ PrintF("%s", String::cast(this)->ToCString().get()); |
+ } else { |
+ DCHECK(this->IsSymbol()); |
+ Symbol* s = Symbol::cast(this); |
+ if (s->name()->IsUndefined()) { |
+ PrintF("#<%s>", s->PrivateSymbolToName()); |
+ } else { |
+ PrintF("<%s>", String::cast(s->name())->ToCString().get()); |
+ } |
+ } |
+} |
+ |
+ |
+int Name::NameShortPrint(Vector<char> str) { |
+ if (this->IsString()) { |
+ return SNPrintF(str, "%s", String::cast(this)->ToCString().get()); |
+ } else { |
+ DCHECK(this->IsSymbol()); |
+ Symbol* s = Symbol::cast(this); |
+ if (s->name()->IsUndefined()) { |
+ return SNPrintF(str, "#<%s>", s->PrivateSymbolToName()); |
+ } else { |
+ return SNPrintF(str, "<%s>", String::cast(s->name())->ToCString().get()); |
+ } |
+ } |
+} |
+ |
+ |
+#endif // TRACE_MAPS |
+ |
+ |
+#ifdef DEBUG |
+// This method is only meant to be called from gdb for debugging purposes. |
+// Since the string can also be in two-byte encoding, non-Latin1 characters |
+// will be ignored in the output. |
+char* String::ToAsciiArray() { |
+ // Static so that subsequent calls frees previously allocated space. |
+ // This also means that previous results will be overwritten. |
+ static char* buffer = NULL; |
+ if (buffer != NULL) delete[] buffer; |
+ buffer = new char[length() + 1]; |
+ WriteToFlat(this, reinterpret_cast<uint8_t*>(buffer), 0, length()); |
+ buffer[length()] = 0; |
+ return buffer; |
+} |
+ |
+ |
+void DescriptorArray::Print() { |
+ OFStream os(stdout); |
+ this->PrintDescriptors(os); |
+ os << std::flush; |
+} |
+ |
+ |
+void DescriptorArray::PrintDescriptors(std::ostream& os) { // NOLINT |
+ HandleScope scope(GetIsolate()); |
+ os << "Descriptor array " << number_of_descriptors() << "\n"; |
+ for (int i = 0; i < number_of_descriptors(); i++) { |
+ Descriptor desc; |
+ Get(i, &desc); |
+ os << " " << i << ": " << desc << "\n"; |
+ } |
+ os << "\n"; |
+} |
+ |
+ |
void TransitionArray::Print() { |
OFStream os(stdout); |
this->PrintTransitions(os); |
@@ -1138,7 +1172,11 @@ void TransitionArray::PrintTransitions(std::ostream& os, |
for (int i = 0; i < number_of_transitions(); i++) { |
Name* key = GetKey(i); |
os << " "; |
+#ifdef OBJECT_PRINT |
key->NamePrint(os); |
+#else |
+ key->ShortPrint(os); |
+#endif |
os << ": "; |
if (key == GetHeap()->frozen_symbol()) { |
os << " (transition to frozen)"; |
@@ -1168,41 +1206,9 @@ void TransitionArray::PrintTransitions(std::ostream& os, |
} |
-#endif // OBJECT_PRINT |
- |
- |
-#if TRACE_MAPS |
- |
- |
-void Name::NameShortPrint() { |
- if (this->IsString()) { |
- PrintF("%s", String::cast(this)->ToCString().get()); |
- } else { |
- DCHECK(this->IsSymbol()); |
- Symbol* s = Symbol::cast(this); |
- if (s->name()->IsUndefined()) { |
- PrintF("#<%s>", s->PrivateSymbolToName()); |
- } else { |
- PrintF("<%s>", String::cast(s->name())->ToCString().get()); |
- } |
- } |
-} |
- |
- |
-int Name::NameShortPrint(Vector<char> str) { |
- if (this->IsString()) { |
- return SNPrintF(str, "%s", String::cast(this)->ToCString().get()); |
- } else { |
- DCHECK(this->IsSymbol()); |
- Symbol* s = Symbol::cast(this); |
- if (s->name()->IsUndefined()) { |
- return SNPrintF(str, "#<%s>", s->PrivateSymbolToName()); |
- } else { |
- return SNPrintF(str, "<%s>", String::cast(s->name())->ToCString().get()); |
- } |
- } |
+void JSObject::PrintTransitions(std::ostream& os) { // NOLINT |
+ if (!map()->HasTransitionArray()) return; |
+ map()->transitions()->PrintTransitions(os, false); |
} |
- |
- |
-#endif // TRACE_MAPS |
+#endif // DEBUG |
} } // namespace v8::internal |