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); |
} |
} |
}, |