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

Unified Diff: third_party/WebKit/Source/devtools/front_end/bindings/BreakpointManager.js

Issue 2505413002: [DevTools] Prepare JavaScriptSourceFrame for multiple breakpoints per line (Closed)
Patch Set: 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 side-by-side diff with in-line comments
Download patch
Index: third_party/WebKit/Source/devtools/front_end/bindings/BreakpointManager.js
diff --git a/third_party/WebKit/Source/devtools/front_end/bindings/BreakpointManager.js b/third_party/WebKit/Source/devtools/front_end/bindings/BreakpointManager.js
index b6aaac23ce13d43d4815236a1a51420a74877208..206fc32b52a1f2bdbcb1ebba838e0f5af359cae3 100644
--- a/third_party/WebKit/Source/devtools/front_end/bindings/BreakpointManager.js
+++ b/third_party/WebKit/Source/devtools/front_end/bindings/BreakpointManager.js
@@ -346,20 +346,29 @@ Bindings.BreakpointManager = class extends Common.Object {
*/
breakpointLocationsForUISourceCode(uiSourceCode) {
var uiSourceCodeBreakpoints = this._breakpointsForUISourceCode.get(uiSourceCode);
- var lineNumbers = uiSourceCodeBreakpoints ? uiSourceCodeBreakpoints.keysArray() : [];
+ if (!uiSourceCodeBreakpoints)
+ return [];
var result = [];
- for (var i = 0; i < lineNumbers.length; ++i) {
- var lineBreakpoints = uiSourceCodeBreakpoints.get(lineNumbers[i]);
- var columnNumbers = lineBreakpoints.keysArray();
- for (var j = 0; j < columnNumbers.length; ++j) {
- var columnBreakpoints = lineBreakpoints.get(columnNumbers[j]);
- var lineNumber = parseInt(lineNumbers[i], 10);
- var columnNumber = parseInt(columnNumbers[j], 10);
- for (var k = 0; k < columnBreakpoints.length; ++k) {
- var breakpoint = columnBreakpoints[k];
- var uiLocation = uiSourceCode.uiLocation(lineNumber, columnNumber);
- result.push({breakpoint: breakpoint, uiLocation: uiLocation});
- }
+ for (var lineNumber of uiSourceCodeBreakpoints.keysArray())
+ result = result.concat(this.breakpointLocationsForLine(uiSourceCode, lineNumber));
+ return result;
+ }
+
+ /**
+ * @param {!Workspace.UISourceCode} uiSourceCode
+ * @param {number} lineNumber
+ * @return {!Array<!{breakpoint: !Bindings.BreakpointManager.Breakpoint, uiLocation: !Workspace.UILocation}>}
+ */
+ breakpointLocationsForLine(uiSourceCode, lineNumber) {
+ var uiSourceCodeBreakpoints = this._breakpointsForUISourceCode.get(uiSourceCode);
+ if (!uiSourceCodeBreakpoints || !uiSourceCodeBreakpoints.has(lineNumber))
+ return [];
+ var columnBreakpoints = uiSourceCodeBreakpoints.get(lineNumber);
+ var result = [];
+ for (var columnNumber of columnBreakpoints.keysArray()) {
+ for (var breakpoint of columnBreakpoints.get(columnNumber)) {
+ var uiLocation = uiSourceCode.uiLocation(lineNumber, columnNumber);
+ result.push({breakpoint: breakpoint, uiLocation: uiLocation});
}
}
return result;

Powered by Google App Engine
This is Rietveld 408576698