Merge pull request #5641 from ahocevar/listenermap-property
De-randomize the listener map property
This commit is contained in:
+5
-14
@@ -52,15 +52,6 @@ ol.events.KeyCode = {
|
|||||||
};
|
};
|
||||||
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Property name on an event target for the listener map associated with the
|
|
||||||
* event target.
|
|
||||||
* @const {string}
|
|
||||||
* @private
|
|
||||||
*/
|
|
||||||
ol.events.LISTENER_MAP_PROP_ = 'olm_' + ((Math.random() * 1e4) | 0);
|
|
||||||
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @param {ol.EventsKey} listenerObj Listener object.
|
* @param {ol.EventsKey} listenerObj Listener object.
|
||||||
* @return {ol.EventsListenerFunctionType} Bound listener.
|
* @return {ol.EventsListenerFunctionType} Bound listener.
|
||||||
@@ -114,7 +105,7 @@ ol.events.findListener_ = function(listeners, listener, opt_this,
|
|||||||
* @return {Array.<ol.EventsKey>|undefined} Listeners.
|
* @return {Array.<ol.EventsKey>|undefined} Listeners.
|
||||||
*/
|
*/
|
||||||
ol.events.getListeners = function(target, type) {
|
ol.events.getListeners = function(target, type) {
|
||||||
var listenerMap = target[ol.events.LISTENER_MAP_PROP_];
|
var listenerMap = target.ol_lm;
|
||||||
return listenerMap ? listenerMap[type] : undefined;
|
return listenerMap ? listenerMap[type] : undefined;
|
||||||
};
|
};
|
||||||
|
|
||||||
@@ -128,9 +119,9 @@ ol.events.getListeners = function(target, type) {
|
|||||||
* @private
|
* @private
|
||||||
*/
|
*/
|
||||||
ol.events.getListenerMap_ = function(target) {
|
ol.events.getListenerMap_ = function(target) {
|
||||||
var listenerMap = target[ol.events.LISTENER_MAP_PROP_];
|
var listenerMap = target.ol_lm;
|
||||||
if (!listenerMap) {
|
if (!listenerMap) {
|
||||||
listenerMap = target[ol.events.LISTENER_MAP_PROP_] = {};
|
listenerMap = target.ol_lm = {};
|
||||||
}
|
}
|
||||||
return listenerMap;
|
return listenerMap;
|
||||||
};
|
};
|
||||||
@@ -152,11 +143,11 @@ ol.events.removeListeners_ = function(target, type) {
|
|||||||
ol.object.clear(listeners[i]);
|
ol.object.clear(listeners[i]);
|
||||||
}
|
}
|
||||||
listeners.length = 0;
|
listeners.length = 0;
|
||||||
var listenerMap = target[ol.events.LISTENER_MAP_PROP_];
|
var listenerMap = target.ol_lm;
|
||||||
if (listenerMap) {
|
if (listenerMap) {
|
||||||
delete listenerMap[type];
|
delete listenerMap[type];
|
||||||
if (Object.keys(listenerMap).length === 0) {
|
if (Object.keys(listenerMap).length === 0) {
|
||||||
delete target[ol.events.LISTENER_MAP_PROP_];
|
delete target.ol_lm;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -192,7 +192,7 @@ describe('ol.events', function() {
|
|||||||
ol.events.unlistenAll(target);
|
ol.events.unlistenAll(target);
|
||||||
expect(ol.events.getListeners(target, 'foo')).to.be(undefined);
|
expect(ol.events.getListeners(target, 'foo')).to.be(undefined);
|
||||||
expect(ol.events.getListeners(target, 'bar')).to.be(undefined);
|
expect(ol.events.getListeners(target, 'bar')).to.be(undefined);
|
||||||
expect(ol.events.LISTENER_MAP_PROP_ in target).to.be(false);
|
expect('ol_lm' in target).to.be(false);
|
||||||
expect(keys).to.eql([{}, {}]);
|
expect(keys).to.eql([{}, {}]);
|
||||||
});
|
});
|
||||||
});
|
});
|
||||||
|
|||||||
Reference in New Issue
Block a user