Chromium Code Reviews| Index: src/heap-snapshot-generator.cc |
| diff --git a/src/heap-snapshot-generator.cc b/src/heap-snapshot-generator.cc |
| index cafee77b4ce10d20be74ee3df7fe290349cff63f..405ce469658b14efc31505f06574c74155c2447d 100644 |
| --- a/src/heap-snapshot-generator.cc |
| +++ b/src/heap-snapshot-generator.cc |
| @@ -155,6 +155,7 @@ const char* HeapEntry::TypeAsString() { |
| case kSynthetic: return "/synthetic/"; |
| case kConsString: return "/concatenated string/"; |
| case kSlicedString: return "/sliced string/"; |
| + case kSymbol: return "/symbol/"; |
| default: return "???"; |
| } |
| } |
| @@ -851,6 +852,8 @@ HeapEntry* V8HeapExplorer::AddEntry(HeapObject* object) { |
| return AddEntry(object, |
| HeapEntry::kString, |
| names_->GetName(String::cast(object))); |
| + } else if (object->IsSymbol()) { |
| + return AddEntry(object, HeapEntry::kSymbol, "Symbol"); |
|
Yang
2014/05/22 09:16:51
We seem to use lower case string throughout this m
yurys
2014/05/22 11:07:03
I'd rather fix those strings so that they match ac
|
| } else if (object->IsCode()) { |
| return AddEntry(object, HeapEntry::kCode, ""); |
| } else if (object->IsSharedFunctionInfo()) { |
| @@ -1098,6 +1101,8 @@ bool V8HeapExplorer::ExtractReferencesPass1(int entry, HeapObject* obj) { |
| ExtractJSObjectReferences(entry, JSObject::cast(obj)); |
| } else if (obj->IsString()) { |
| ExtractStringReferences(entry, String::cast(obj)); |
| + } else if (obj->IsSymbol()) { |
| + ExtractSymbolReferences(entry, Symbol::cast(obj)); |
| } else if (obj->IsMap()) { |
| ExtractMapReferences(entry, Map::cast(obj)); |
| } else if (obj->IsSharedFunctionInfo()) { |
| @@ -1244,6 +1249,13 @@ void V8HeapExplorer::ExtractStringReferences(int entry, String* string) { |
| } |
| +void V8HeapExplorer::ExtractSymbolReferences(int entry, Symbol* symbol) { |
| + SetInternalReference(symbol, entry, |
| + "name", symbol->name(), |
| + Symbol::kNameOffset); |
| +} |
| + |
| + |
| void V8HeapExplorer::ExtractContextReferences(int entry, Context* context) { |
| if (context == context->declaration_context()) { |
| ScopeInfo* scope_info = context->closure()->shared()->scope_info(); |