Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(222)

Side by Side Diff: third_party/WebKit/Source/devtools/front_end/sdk/ProfileTreeModel.js

Issue 2466123002: DevTools: reformat front-end code to match chromium style. (Closed)
Patch Set: all done Created 4 years, 1 month ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
OLDNEW
1 // Copyright 2016 The Chromium Authors. All rights reserved. 1 // Copyright 2016 The Chromium Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be 2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file. 3 // found in the LICENSE file.
4
5 /** 4 /**
6 * @constructor 5 * @unrestricted
7 * @param {!RuntimeAgent.CallFrame} callFrame
8 */ 6 */
9 WebInspector.ProfileNode = function(callFrame) 7 WebInspector.ProfileNode = class {
10 { 8 /**
9 * @param {!RuntimeAgent.CallFrame} callFrame
10 */
11 constructor(callFrame) {
11 /** @type {!RuntimeAgent.CallFrame} */ 12 /** @type {!RuntimeAgent.CallFrame} */
12 this.callFrame = callFrame; 13 this.callFrame = callFrame;
13 /** @type {string} */ 14 /** @type {string} */
14 this.callUID = `${this.callFrame.functionName}@${this.callFrame.scriptId}:${ this.callFrame.lineNumber}`; 15 this.callUID = `${this.callFrame.functionName}@${this.callFrame.scriptId}:${ this.callFrame.lineNumber}`;
15 /** @type {number} */ 16 /** @type {number} */
16 this.self = 0; 17 this.self = 0;
17 /** @type {number} */ 18 /** @type {number} */
18 this.total = 0; 19 this.total = 0;
19 /** @type {number} */ 20 /** @type {number} */
20 this.id = 0; 21 this.id = 0;
21 /** @type {?WebInspector.ProfileNode} */ 22 /** @type {?WebInspector.ProfileNode} */
22 this.parent = null; 23 this.parent = null;
23 /** @type {!Array<!WebInspector.ProfileNode>} */ 24 /** @type {!Array<!WebInspector.ProfileNode>} */
24 this.children = []; 25 this.children = [];
25 }; 26 }
26 27
27 WebInspector.ProfileNode.prototype = { 28 /**
28 /** 29 * @return {string}
29 * @return {string} 30 */
30 */ 31 get functionName() {
31 get functionName() 32 return this.callFrame.functionName;
32 { 33 }
33 return this.callFrame.functionName;
34 },
35 34
36 /** 35 /**
37 * @return {string} 36 * @return {string}
38 */ 37 */
39 get scriptId() 38 get scriptId() {
40 { 39 return this.callFrame.scriptId;
41 return this.callFrame.scriptId; 40 }
42 },
43 41
44 /** 42 /**
45 * @return {string} 43 * @return {string}
46 */ 44 */
47 get url() 45 get url() {
48 { 46 return this.callFrame.url;
49 return this.callFrame.url; 47 }
50 },
51 48
52 /** 49 /**
53 * @return {number} 50 * @return {number}
54 */ 51 */
55 get lineNumber() 52 get lineNumber() {
56 { 53 return this.callFrame.lineNumber;
57 return this.callFrame.lineNumber; 54 }
58 },
59 55
60 /** 56 /**
61 * @return {number} 57 * @return {number}
62 */ 58 */
63 get columnNumber() 59 get columnNumber() {
64 { 60 return this.callFrame.columnNumber;
65 return this.callFrame.columnNumber; 61 }
66 }
67 }; 62 };
68 63
69 /** 64 /**
70 * @constructor 65 * @unrestricted
71 */ 66 */
72 WebInspector.ProfileTreeModel = function() 67 WebInspector.ProfileTreeModel = class {
73 { 68 /**
69 * @param {!WebInspector.ProfileNode} root
70 * @protected
71 */
72 initialize(root) {
73 this.root = root;
74 this._assignDepthsAndParents();
75 this.total = this._calculateTotals(this.root);
76 }
77
78 _assignDepthsAndParents() {
79 var root = this.root;
80 root.depth = -1;
81 root.parent = null;
82 this.maxDepth = 0;
83 var nodesToTraverse = [root];
84 while (nodesToTraverse.length) {
85 var parent = nodesToTraverse.pop();
86 var depth = parent.depth + 1;
87 if (depth > this.maxDepth)
88 this.maxDepth = depth;
89 var children = parent.children;
90 var length = children.length;
91 for (var i = 0; i < length; ++i) {
92 var child = children[i];
93 child.depth = depth;
94 child.parent = parent;
95 if (child.children.length)
96 nodesToTraverse.push(child);
97 }
98 }
99 }
100
101 /**
102 * @param {!WebInspector.ProfileNode} root
103 * @return {number}
104 */
105 _calculateTotals(root) {
106 var nodesToTraverse = [root];
107 var dfsList = [];
108 while (nodesToTraverse.length) {
109 var node = nodesToTraverse.pop();
110 node.total = node.self;
111 dfsList.push(node);
112 nodesToTraverse.push(...node.children);
113 }
114 while (dfsList.length > 1) {
115 var node = dfsList.pop();
116 node.parent.total += node.total;
117 }
118 return root.total;
119 }
74 }; 120 };
75
76 WebInspector.ProfileTreeModel.prototype = {
77 /**
78 * @param {!WebInspector.ProfileNode} root
79 * @protected
80 */
81 initialize: function(root)
82 {
83 this.root = root;
84 this._assignDepthsAndParents();
85 this.total = this._calculateTotals(this.root);
86 },
87
88 _assignDepthsAndParents: function()
89 {
90 var root = this.root;
91 root.depth = -1;
92 root.parent = null;
93 this.maxDepth = 0;
94 var nodesToTraverse = [root];
95 while (nodesToTraverse.length) {
96 var parent = nodesToTraverse.pop();
97 var depth = parent.depth + 1;
98 if (depth > this.maxDepth)
99 this.maxDepth = depth;
100 var children = parent.children;
101 var length = children.length;
102 for (var i = 0; i < length; ++i) {
103 var child = children[i];
104 child.depth = depth;
105 child.parent = parent;
106 if (child.children.length)
107 nodesToTraverse.push(child);
108 }
109 }
110 },
111
112 /**
113 * @param {!WebInspector.ProfileNode} root
114 * @return {number}
115 */
116 _calculateTotals: function(root)
117 {
118 var nodesToTraverse = [root];
119 var dfsList = [];
120 while (nodesToTraverse.length) {
121 var node = nodesToTraverse.pop();
122 node.total = node.self;
123 dfsList.push(node);
124 nodesToTraverse.push(...node.children);
125 }
126 while (dfsList.length > 1) {
127 var node = dfsList.pop();
128 node.parent.total += node.total;
129 }
130 return root.total;
131 }
132 };
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698