| Index: src/heap/object-stats.cc
|
| diff --git a/src/heap/object-stats.cc b/src/heap/object-stats.cc
|
| index 67751696e06b69c0e455df571239861a7e3463bd..9f534a20e4ccf8850dc6ea5fd25e906a4eb63eb1 100644
|
| --- a/src/heap/object-stats.cc
|
| +++ b/src/heap/object-stats.cc
|
| @@ -551,6 +551,26 @@ void ObjectStatsCollector::RecordSharedFunctionInfoDetails(
|
| RecordFixedArrayHelper(sfi, optimized_code_map, OPTIMIZED_CODE_MAP_SUB_TYPE,
|
| 0);
|
| // Optimized code map should be small, so skip accounting.
|
| + int len = optimized_code_map->length();
|
| + for (int i = SharedFunctionInfo::kEntriesStart; i < len;
|
| + i += SharedFunctionInfo::kEntryLength) {
|
| + Object* slot =
|
| + optimized_code_map->get(i + SharedFunctionInfo::kLiteralsOffset);
|
| + LiteralsArray* literals = nullptr;
|
| + if (slot->IsWeakCell()) {
|
| + WeakCell* cell = WeakCell::cast(slot);
|
| + if (!cell->cleared()) {
|
| + literals = LiteralsArray::cast(cell->value());
|
| + }
|
| + } else {
|
| + literals = LiteralsArray::cast(slot);
|
| + }
|
| + if (literals != nullptr) {
|
| + RecordFixedArrayHelper(sfi, literals, LITERALS_ARRAY_SUB_TYPE, 0);
|
| + RecordFixedArrayHelper(sfi, literals->feedback_vector(),
|
| + TYPE_FEEDBACK_VECTOR_SUB_TYPE, 0);
|
| + }
|
| + }
|
| }
|
| }
|
|
|
|
|