blob: 285f0fb7da5f59113315d15c24367de2820d6c04 (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
|
/* This Source Code Form is subject to the terms of the Mozilla Public
* License, v. 2.0. If a copy of the MPL was not distributed with this
* file, You can obtain one at http://mozilla.org/MPL/2.0/. */
"use strict";
const {
BreakpointActor,
} = require("resource://devtools/server/actors/breakpoint.js");
/**
* A BreakpointActorMap is a map from locations to instances of BreakpointActor.
*/
class BreakpointActorMap {
constructor(threadActor) {
this._threadActor = threadActor;
this._actors = {};
}
// Get the key in the _actors table for a given breakpoint location.
// See also duplicate code in commands.js :(
_locationKey(location) {
const { sourceUrl, sourceId, line, column } = location;
return `${sourceUrl}:${sourceId}:${line}:${column}`;
}
/**
* Return all BreakpointActors in this BreakpointActorMap.
*/
findActors() {
return Object.values(this._actors);
}
listKeys() {
return Object.keys(this._actors);
}
/**
* Return the BreakpointActor at the given location in this
* BreakpointActorMap.
*
* @param BreakpointLocation location
* The location for which the BreakpointActor should be returned.
*
* @returns BreakpointActor actor
* The BreakpointActor at the given location.
*/
getOrCreateBreakpointActor(location) {
const key = this._locationKey(location);
if (!this._actors[key]) {
this._actors[key] = new BreakpointActor(this._threadActor, location);
}
return this._actors[key];
}
get(location) {
const key = this._locationKey(location);
return this._actors[key];
}
/**
* Delete the BreakpointActor from the given location in this
* BreakpointActorMap.
*
* @param BreakpointLocation location
* The location from which the BreakpointActor should be deleted.
*/
deleteActor(location) {
const key = this._locationKey(location);
delete this._actors[key];
}
}
exports.BreakpointActorMap = BreakpointActorMap;
|