OLD | NEW |
---|---|
1 /* | 1 /* |
2 * Copyright (C) 2011 Google Inc. All rights reserved. | 2 * Copyright (C) 2011 Google Inc. All rights reserved. |
3 * | 3 * |
4 * Redistribution and use in source and binary forms, with or without | 4 * Redistribution and use in source and binary forms, with or without |
5 * modification, are permitted provided that the following conditions are | 5 * modification, are permitted provided that the following conditions are |
6 * met: | 6 * met: |
7 * | 7 * |
8 * * Redistributions of source code must retain the above copyright | 8 * * Redistributions of source code must retain the above copyright |
9 * notice, this list of conditions and the following disclaimer. | 9 * notice, this list of conditions and the following disclaimer. |
10 * * Redistributions in binary form must reproduce the above | 10 * * Redistributions in binary form must reproduce the above |
(...skipping 465 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
476 */ | 476 */ |
477 WebInspector.BreakpointManager.Breakpoint = function(breakpointManager, projectI d, path, sourceFileId, lineNumber, columnNumber, condition, enabled) | 477 WebInspector.BreakpointManager.Breakpoint = function(breakpointManager, projectI d, path, sourceFileId, lineNumber, columnNumber, condition, enabled) |
478 { | 478 { |
479 this._breakpointManager = breakpointManager; | 479 this._breakpointManager = breakpointManager; |
480 this._projectId = projectId; | 480 this._projectId = projectId; |
481 this._path = path; | 481 this._path = path; |
482 this._lineNumber = lineNumber; | 482 this._lineNumber = lineNumber; |
483 this._columnNumber = columnNumber; | 483 this._columnNumber = columnNumber; |
484 this._sourceFileId = sourceFileId; | 484 this._sourceFileId = sourceFileId; |
485 | 485 |
486 /** @type {!Object.<string, number>} */ | 486 /** @type {!Map<string, number>} */ |
487 this._numberOfDebuggerLocationForUILocation = {}; | 487 this._numberOfDebuggerLocationForUILocation = new Map(); |
488 | 488 |
489 // Force breakpoint update. | 489 // Force breakpoint update. |
490 /** @type {string} */ this._condition; | 490 /** @type {string} */ this._condition; |
491 /** @type {boolean} */ this._enabled; | 491 /** @type {boolean} */ this._enabled; |
492 /** @type {boolean} */ this._isRemoved; | 492 /** @type {boolean} */ this._isRemoved; |
493 /** @type {!WebInspector.UILocation|undefined} */ this._fakePrimaryLocation; | 493 /** @type {!WebInspector.UILocation|undefined} */ this._fakePrimaryLocation; |
494 | 494 |
495 this._currentState = null; | 495 this._currentState = null; |
496 /** @type {!Map.<!WebInspector.Target, !WebInspector.BreakpointManager.Targe tBreakpoint>}*/ | 496 /** @type {!Map.<!WebInspector.Target, !WebInspector.BreakpointManager.Targe tBreakpoint>}*/ |
497 this._targetBreakpoints = new Map(); | 497 this._targetBreakpoints = new Map(); |
(...skipping 75 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
573 * @param {!WebInspector.UILocation} newUILocation | 573 * @param {!WebInspector.UILocation} newUILocation |
574 */ | 574 */ |
575 _replaceUILocation: function(oldUILocation, newUILocation) | 575 _replaceUILocation: function(oldUILocation, newUILocation) |
576 { | 576 { |
577 if (this._isRemoved) | 577 if (this._isRemoved) |
578 return; | 578 return; |
579 | 579 |
580 this._removeUILocation(oldUILocation, true); | 580 this._removeUILocation(oldUILocation, true); |
581 this._removeFakeBreakpointAtPrimaryLocation(); | 581 this._removeFakeBreakpointAtPrimaryLocation(); |
582 | 582 |
583 if (!this._numberOfDebuggerLocationForUILocation[newUILocation.id()]) | 583 var current = (this._numberOfDebuggerLocationForUILocation.get(newUILoca tion.id()) || 0) + 1; |
584 this._numberOfDebuggerLocationForUILocation[newUILocation.id()] = 0; | 584 this._numberOfDebuggerLocationForUILocation.set(newUILocation.id(), curr ent); |
585 | 585 if (current === 1) |
586 if (++this._numberOfDebuggerLocationForUILocation[newUILocation.id()] == = 1) | |
587 this._breakpointManager._uiLocationAdded(this, newUILocation); | 586 this._breakpointManager._uiLocationAdded(this, newUILocation); |
588 }, | 587 }, |
589 | 588 |
590 /** | 589 /** |
591 * @param {?WebInspector.UILocation} uiLocation | 590 * @param {?WebInspector.UILocation} uiLocation |
592 * @param {boolean=} muteCreationFakeBreakpoint | 591 * @param {boolean=} muteCreationFakeBreakpoint |
593 */ | 592 */ |
594 _removeUILocation: function(uiLocation, muteCreationFakeBreakpoint) | 593 _removeUILocation: function(uiLocation, muteCreationFakeBreakpoint) |
595 { | 594 { |
596 if (!uiLocation || --this._numberOfDebuggerLocationForUILocation[uiLocat ion.id()] !== 0) | 595 if (!uiLocation || !this._numberOfDebuggerLocationForUILocation.has(uiLo cation.id())) |
596 return; | |
597 var current = (this._numberOfDebuggerLocationForUILocation.get(uiLocatio n.id()) || 0) - 1; | |
lushnikov
2016/07/20 03:02:50
you can drop || 0
kozy
2016/07/20 17:55:18
I can, but then I'll need to add type cast.
| |
598 this._numberOfDebuggerLocationForUILocation.set(uiLocation.id(), current ); | |
599 if (current !== 0) | |
597 return; | 600 return; |
598 | 601 |
599 delete this._numberOfDebuggerLocationForUILocation[uiLocation.id()]; | 602 this._numberOfDebuggerLocationForUILocation.delete(uiLocation.id()); |
600 this._breakpointManager._uiLocationRemoved(this, uiLocation); | 603 this._breakpointManager._uiLocationRemoved(this, uiLocation); |
601 if (!muteCreationFakeBreakpoint) | 604 if (!muteCreationFakeBreakpoint) |
602 this._fakeBreakpointAtPrimaryLocation(); | 605 this._fakeBreakpointAtPrimaryLocation(); |
603 }, | 606 }, |
604 | 607 |
605 /** | 608 /** |
606 * @return {boolean} | 609 * @return {boolean} |
607 */ | 610 */ |
608 enabled: function() | 611 enabled: function() |
609 { | 612 { |
(...skipping 77 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
687 /** | 690 /** |
688 * @return {string} | 691 * @return {string} |
689 */ | 692 */ |
690 _breakpointStorageId: function() | 693 _breakpointStorageId: function() |
691 { | 694 { |
692 return WebInspector.BreakpointManager._breakpointStorageId(this._sourceF ileId, this._lineNumber, this._columnNumber); | 695 return WebInspector.BreakpointManager._breakpointStorageId(this._sourceF ileId, this._lineNumber, this._columnNumber); |
693 }, | 696 }, |
694 | 697 |
695 _fakeBreakpointAtPrimaryLocation: function() | 698 _fakeBreakpointAtPrimaryLocation: function() |
696 { | 699 { |
697 if (this._isRemoved || !Object.isEmpty(this._numberOfDebuggerLocationFor UILocation) || this._fakePrimaryLocation) | 700 if (this._isRemoved || this._numberOfDebuggerLocationForUILocation.size || this._fakePrimaryLocation) |
698 return; | 701 return; |
699 | 702 |
700 var uiSourceCode = this._breakpointManager._workspace.uiSourceCode(this. _projectId, this._path); | 703 var uiSourceCode = this._breakpointManager._workspace.uiSourceCode(this. _projectId, this._path); |
701 if (!uiSourceCode) | 704 if (!uiSourceCode) |
702 return; | 705 return; |
703 | 706 |
704 this._fakePrimaryLocation = uiSourceCode.uiLocation(this._lineNumber, th is._columnNumber); | 707 this._fakePrimaryLocation = uiSourceCode.uiLocation(this._lineNumber, th is._columnNumber); |
705 if (this._fakePrimaryLocation) | 708 if (this._fakePrimaryLocation) |
706 this._breakpointManager._uiLocationAdded(this, this._fakePrimaryLoca tion); | 709 this._breakpointManager._uiLocationAdded(this, this._fakePrimaryLoca tion); |
707 }, | 710 }, |
(...skipping 26 matching lines...) Expand all Loading... | |
734 WebInspector.BreakpointManager.TargetBreakpoint = function(debuggerModel, breakp oint, networkMapping, debuggerWorkspaceBinding) | 737 WebInspector.BreakpointManager.TargetBreakpoint = function(debuggerModel, breakp oint, networkMapping, debuggerWorkspaceBinding) |
735 { | 738 { |
736 WebInspector.SDKObject.call(this, debuggerModel.target()); | 739 WebInspector.SDKObject.call(this, debuggerModel.target()); |
737 this._debuggerModel = debuggerModel; | 740 this._debuggerModel = debuggerModel; |
738 this._breakpoint = breakpoint; | 741 this._breakpoint = breakpoint; |
739 this._networkMapping = networkMapping; | 742 this._networkMapping = networkMapping; |
740 this._debuggerWorkspaceBinding = debuggerWorkspaceBinding; | 743 this._debuggerWorkspaceBinding = debuggerWorkspaceBinding; |
741 | 744 |
742 this._liveLocations = new WebInspector.LiveLocationPool(); | 745 this._liveLocations = new WebInspector.LiveLocationPool(); |
743 | 746 |
744 /** @type {!Object.<string, !WebInspector.UILocation>} */ | 747 /** @type {!Map<string, !WebInspector.UILocation>} */ |
745 this._uiLocations = {}; | 748 this._uiLocations = new Map(); |
746 this._debuggerModel.addEventListener(WebInspector.DebuggerModel.Events.Debug gerWasDisabled, this._cleanUpAfterDebuggerIsGone, this); | 749 this._debuggerModel.addEventListener(WebInspector.DebuggerModel.Events.Debug gerWasDisabled, this._cleanUpAfterDebuggerIsGone, this); |
747 this._debuggerModel.addEventListener(WebInspector.DebuggerModel.Events.Debug gerWasEnabled, this._scheduleUpdateInDebugger, this); | 750 this._debuggerModel.addEventListener(WebInspector.DebuggerModel.Events.Debug gerWasEnabled, this._scheduleUpdateInDebugger, this); |
748 this._hasPendingUpdate = false; | 751 this._hasPendingUpdate = false; |
749 this._isUpdating = false; | 752 this._isUpdating = false; |
750 this._cancelCallback = false; | 753 this._cancelCallback = false; |
751 this._currentState = null; | 754 this._currentState = null; |
752 if (this._debuggerModel.debuggerEnabled()) | 755 if (this._debuggerModel.debuggerEnabled()) |
753 this._scheduleUpdateInDebugger(); | 756 this._scheduleUpdateInDebugger(); |
754 } | 757 } |
755 | 758 |
756 WebInspector.BreakpointManager.TargetBreakpoint.prototype = { | 759 WebInspector.BreakpointManager.TargetBreakpoint.prototype = { |
757 | 760 |
758 _resetLocations: function() | 761 _resetLocations: function() |
759 { | 762 { |
760 var uiLocations = Object.values(this._uiLocations); | 763 for (var uiLocation of this._uiLocations.values()) |
761 for (var i = 0; i < uiLocations.length; ++i) | 764 this._breakpoint._removeUILocation(uiLocation); |
762 this._breakpoint._removeUILocation(uiLocations[i]); | |
763 | 765 |
764 this._uiLocations = {}; | 766 this._uiLocations.clear(); |
765 this._liveLocations.disposeAll(); | 767 this._liveLocations.disposeAll(); |
766 }, | 768 }, |
767 | 769 |
768 _scheduleUpdateInDebugger: function() | 770 _scheduleUpdateInDebugger: function() |
769 { | 771 { |
770 if (this._isUpdating) { | 772 if (this._isUpdating) { |
771 this._hasPendingUpdate = true; | 773 this._hasPendingUpdate = true; |
772 return; | 774 return; |
773 } | 775 } |
774 | 776 |
(...skipping 140 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
915 | 917 |
916 /** | 918 /** |
917 * @param {!WebInspector.DebuggerModel.Location} location | 919 * @param {!WebInspector.DebuggerModel.Location} location |
918 * @param {!WebInspector.LiveLocation} liveLocation | 920 * @param {!WebInspector.LiveLocation} liveLocation |
919 */ | 921 */ |
920 _locationUpdated: function(location, liveLocation) | 922 _locationUpdated: function(location, liveLocation) |
921 { | 923 { |
922 var uiLocation = liveLocation.uiLocation(); | 924 var uiLocation = liveLocation.uiLocation(); |
923 if (!uiLocation) | 925 if (!uiLocation) |
924 return; | 926 return; |
925 var oldUILocation = this._uiLocations[location.id()] || null; | 927 var oldUILocation = this._uiLocations.get(location.id()) || null; |
926 this._uiLocations[location.id()] = uiLocation; | 928 this._uiLocations.set(location.id(), uiLocation); |
927 this._breakpoint._replaceUILocation(oldUILocation, uiLocation); | 929 this._breakpoint._replaceUILocation(oldUILocation, uiLocation); |
928 }, | 930 }, |
929 | 931 |
930 /** | 932 /** |
931 * @param {!WebInspector.DebuggerModel.Location} location | 933 * @param {!WebInspector.DebuggerModel.Location} location |
932 * @return {boolean} | 934 * @return {boolean} |
933 */ | 935 */ |
934 _addResolvedLocation: function(location) | 936 _addResolvedLocation: function(location) |
935 { | 937 { |
936 var uiLocation = this._debuggerWorkspaceBinding.rawLocationToUILocation( location); | 938 var uiLocation = this._debuggerWorkspaceBinding.rawLocationToUILocation( location); |
(...skipping 144 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
1081 { | 1083 { |
1082 this.sourceFileId = breakpoint._sourceFileId; | 1084 this.sourceFileId = breakpoint._sourceFileId; |
1083 this.lineNumber = breakpoint.lineNumber(); | 1085 this.lineNumber = breakpoint.lineNumber(); |
1084 this.columnNumber = breakpoint.columnNumber(); | 1086 this.columnNumber = breakpoint.columnNumber(); |
1085 this.condition = breakpoint.condition(); | 1087 this.condition = breakpoint.condition(); |
1086 this.enabled = breakpoint.enabled(); | 1088 this.enabled = breakpoint.enabled(); |
1087 } | 1089 } |
1088 | 1090 |
1089 /** @type {!WebInspector.BreakpointManager} */ | 1091 /** @type {!WebInspector.BreakpointManager} */ |
1090 WebInspector.breakpointManager; | 1092 WebInspector.breakpointManager; |
OLD | NEW |