Index: src/debug/debug-coverage.cc |
diff --git a/src/debug/debug-coverage.cc b/src/debug/debug-coverage.cc |
index c30c017c7d66bc1488bfa7edc4904520959dc040..26a61bc5e486769505614d0db5776c9be2772ed4 100644 |
--- a/src/debug/debug-coverage.cc |
+++ b/src/debug/debug-coverage.cc |
@@ -121,7 +121,7 @@ |
// Create and add new script data. |
Handle<Script> script_handle(script, isolate); |
- result->emplace_back(script_handle); |
+ result->emplace_back(isolate, script_handle); |
std::vector<CoverageFunction>* functions = &result->back().functions; |
std::vector<SharedFunctionInfo*> sorted; |
@@ -135,18 +135,11 @@ |
std::sort(sorted.begin(), sorted.end(), CompareSharedFunctionInfo); |
} |
- // Stack to track nested functions, referring function by index. |
- std::vector<size_t> nesting; |
- |
// Use sorted list to reconstruct function nesting. |
for (SharedFunctionInfo* info : sorted) { |
int start = StartPosition(info); |
int end = info->end_position(); |
uint32_t count = counter_map.Get(info); |
- // Find the correct outer function based on start position. |
- while (!nesting.empty() && functions->at(nesting.back()).end <= start) { |
- nesting.pop_back(); |
- } |
if (count != 0) { |
switch (collectionMode) { |
case v8::debug::Coverage::kPreciseCount: |
@@ -159,18 +152,10 @@ |
count = 1; |
break; |
} |
- } else if (nesting.empty() || functions->at(nesting.back()).count == 0) { |
- // Only include a function range if it has a non-0 count, or |
- // if it is directly nested inside a function with non-0 count. |
- continue; |
} |
Handle<String> name(info->DebugName(), isolate); |
- nesting.push_back(functions->size()); |
functions->emplace_back(start, end, count, name); |
} |
- |
- // Remove entries for scripts that have no coverage. |
- if (functions->empty()) result->pop_back(); |
} |
return result; |
} |