| Index: third_party/WebKit/Source/devtools/front_end/profiler/BottomUpProfileDataGrid.js
|
| diff --git a/third_party/WebKit/Source/devtools/front_end/profiler/BottomUpProfileDataGrid.js b/third_party/WebKit/Source/devtools/front_end/profiler/BottomUpProfileDataGrid.js
|
| index 8ee806e39a38cd93ad2738f7e37916e31928b340..d1ba3779ff4b8f5e935dab8e23d0e7caae8f024a 100644
|
| --- a/third_party/WebKit/Source/devtools/front_end/profiler/BottomUpProfileDataGrid.js
|
| +++ b/third_party/WebKit/Source/devtools/front_end/profiler/BottomUpProfileDataGrid.js
|
| @@ -65,7 +65,7 @@ WebInspector.BottomUpProfileDataGridNode.prototype = {
|
| },
|
|
|
| /**
|
| - * @param {number} aCallUID
|
| + * @param {string} aCallUID
|
| */
|
| _exclude: function(aCallUID)
|
| {
|
| @@ -80,7 +80,7 @@ WebInspector.BottomUpProfileDataGridNode.prototype = {
|
| while (index--)
|
| children[index]._exclude(aCallUID);
|
|
|
| - var child = this.childrenByCallUID[aCallUID];
|
| + var child = this.childrenByCallUID.get(aCallUID);
|
|
|
| if (child)
|
| this.merge(child, true);
|
| @@ -187,7 +187,8 @@ WebInspector.BottomUpProfileDataGridTree = function(formatter, searchableView, r
|
| // Iterate each node in pre-order.
|
| var profileNodeUIDs = 0;
|
| var profileNodeGroups = [[], [rootProfileNode]];
|
| - var visitedProfileNodesForCallUID = {};
|
| + /** @type {!Map<string, !Set<number>>} */
|
| + var visitedProfileNodesForCallUID = new Map();
|
|
|
| this._remainingNodeInfos = [];
|
|
|
| @@ -204,25 +205,25 @@ WebInspector.BottomUpProfileDataGridTree = function(formatter, searchableView, r
|
|
|
| if (profileNode.parent) {
|
| // The total time of this ancestor is accounted for if we're in any form of recursive cycle.
|
| - var visitedNodes = visitedProfileNodesForCallUID[profileNode.callUID];
|
| + var visitedNodes = visitedProfileNodesForCallUID.get(profileNode.callUID);
|
| var totalAccountedFor = false;
|
|
|
| if (!visitedNodes) {
|
| - visitedNodes = {};
|
| - visitedProfileNodesForCallUID[profileNode.callUID] = visitedNodes;
|
| + visitedNodes = new Set();
|
| + visitedProfileNodesForCallUID.set(profileNode.callUID, visitedNodes);
|
| } else {
|
| // The total time for this node has already been accounted for iff one of it's parents has already been visited.
|
| // We can do this check in this style because we are traversing the tree in pre-order.
|
| var parentCount = parentProfileNodes.length;
|
| for (var parentIndex = 0; parentIndex < parentCount; ++parentIndex) {
|
| - if (visitedNodes[parentProfileNodes[parentIndex].UID]) {
|
| + if (visitedNodes.has(parentProfileNodes[parentIndex].UID)) {
|
| totalAccountedFor = true;
|
| break;
|
| }
|
| }
|
| }
|
|
|
| - visitedNodes[profileNode.UID] = true;
|
| + visitedNodes.add(profileNode.UID);
|
|
|
| this._remainingNodeInfos.push({ ancestor: profileNode, focusNode: profileNode, totalAccountedFor: totalAccountedFor });
|
| }
|
| @@ -281,7 +282,7 @@ WebInspector.BottomUpProfileDataGridTree.prototype = {
|
| this.save();
|
|
|
| var excludedCallUID = profileDataGridNode.callUID;
|
| - var excludedTopLevelChild = this.childrenByCallUID[excludedCallUID];
|
| + var excludedTopLevelChild = this.childrenByCallUID.get(excludedCallUID);
|
|
|
| // If we have a top level node that is excluded, get rid of it completely (not keeping children),
|
| // since bottom up data relies entirely on the root node.
|
|
|