Chromium Code Reviews| Index: third_party/WebKit/Source/devtools/front_end/sdk/TargetManager.js |
| diff --git a/third_party/WebKit/Source/devtools/front_end/sdk/TargetManager.js b/third_party/WebKit/Source/devtools/front_end/sdk/TargetManager.js |
| index 7bd2427a9c7ffe9e9786ce03d5373c94363b407a..39f1e99f926e56e1a6d6ab6ff8e3fec33737aa28 100644 |
| --- a/third_party/WebKit/Source/devtools/front_end/sdk/TargetManager.js |
| +++ b/third_party/WebKit/Source/devtools/front_end/sdk/TargetManager.js |
| @@ -16,8 +16,8 @@ WebInspector.TargetManager = function() |
| /** @type {!Array.<!WebInspector.TargetManager.Observer>} */ |
| this._observers = []; |
| this._observerCapabiliesMaskSymbol = Symbol("observerCapabilitiesMask"); |
| - /** @type {!Object.<string, !Array.<{modelClass: !Function, thisObject: (!Object|undefined), listener: function(!WebInspector.Event)}>>} */ |
| - this._modelListeners = {}; |
| + /** @type {!Map<symbol, !Array<{modelClass: !Function, thisObject: (!Object|undefined), listener: function(!WebInspector.Event)}>>} */ |
|
lushnikov
2016/08/26 19:34:45
technically, this should be (symbol|string)
dgozman
2016/08/26 20:52:49
I hope we don't have strings anymore! Let's change
alph
2016/08/26 21:00:33
I'll keep it just symbol and make sure there are n
|
| + this._modelListeners = new Map(); |
| this._isSuspended = false; |
| } |
| @@ -115,7 +115,7 @@ WebInspector.TargetManager.prototype = { |
| /** |
| * @param {!Function} modelClass |
| - * @param {string} eventType |
| + * @param {symbol} eventType |
|
lushnikov
2016/08/26 19:34:45
(symbol|string) as well
alph
2016/08/26 21:00:34
ditto
|
| * @param {function(!WebInspector.Event)} listener |
| * @param {!Object=} thisObject |
| */ |
| @@ -126,20 +126,20 @@ WebInspector.TargetManager.prototype = { |
| if (model) |
| model.addEventListener(eventType, listener, thisObject); |
| } |
| - if (!this._modelListeners[eventType]) |
| - this._modelListeners[eventType] = []; |
| - this._modelListeners[eventType].push({ modelClass: modelClass, thisObject: thisObject, listener: listener }); |
| + if (!this._modelListeners.has(eventType)) |
| + this._modelListeners.set(eventType, []); |
| + this._modelListeners.get(eventType).push({ modelClass: modelClass, thisObject: thisObject, listener: listener }); |
| }, |
| /** |
| * @param {!Function} modelClass |
| - * @param {string} eventType |
| + * @param {symbol} eventType |
|
lushnikov
2016/08/26 19:34:45
ditto
alph
2016/08/26 21:00:34
ditto
|
| * @param {function(!WebInspector.Event)} listener |
| * @param {!Object=} thisObject |
| */ |
| removeModelListener: function(modelClass, eventType, listener, thisObject) |
| { |
| - if (!this._modelListeners[eventType]) |
| + if (!this._modelListeners.has(eventType)) |
| return; |
| for (var i = 0; i < this._targets.length; ++i) { |
| @@ -148,13 +148,13 @@ WebInspector.TargetManager.prototype = { |
| model.removeEventListener(eventType, listener, thisObject); |
| } |
| - var listeners = this._modelListeners[eventType]; |
| + var listeners = this._modelListeners.get(eventType); |
| for (var i = 0; i < listeners.length; ++i) { |
| if (listeners[i].modelClass === modelClass && listeners[i].listener === listener && listeners[i].thisObject === thisObject) |
| listeners.splice(i--, 1); |
| } |
| if (!listeners.length) |
| - delete this._modelListeners[eventType]; |
| + this._modelListeners.delete(eventType); |
| }, |
| /** |
| @@ -257,12 +257,12 @@ WebInspector.TargetManager.prototype = { |
| for (var i = 0; i < copy.length; ++i) |
| copy[i].targetAdded(target); |
| - for (var eventType in this._modelListeners) { |
| - var listeners = this._modelListeners[eventType]; |
| + for (var pair of this._modelListeners) { |
|
lushnikov
2016/08/26 19:34:45
nit: this probably never compiles - there are no t
alph
2016/08/26 21:00:34
yeah. it seems to treat them as having value type.
|
| + var listeners = pair[1]; |
| for (var i = 0; i < listeners.length; ++i) { |
| var model = target.model(listeners[i].modelClass); |
| if (model) |
| - model.addEventListener(eventType, listeners[i].listener, listeners[i].thisObject); |
| + model.addEventListener(pair[0], listeners[i].listener, listeners[i].thisObject); |
| } |
| } |
| @@ -293,12 +293,12 @@ WebInspector.TargetManager.prototype = { |
| for (var i = 0; i < copy.length; ++i) |
| copy[i].targetRemoved(target); |
| - for (var eventType in this._modelListeners) { |
| - var listeners = this._modelListeners[eventType]; |
| + for (var pair of this._modelListeners) { |
| + var listeners = pair[1]; |
| for (var i = 0; i < listeners.length; ++i) { |
| var model = target.model(listeners[i].modelClass); |
| if (model) |
| - model.removeEventListener(eventType, listeners[i].listener, listeners[i].thisObject); |
| + model.removeEventListener(pair[0], listeners[i].listener, listeners[i].thisObject); |
| } |
| } |
| }, |