De-randomize the listener map property

This commit is contained in:
Andreas Hocevar
2016-07-25 16:17:18 +02:00
parent 8f501e0de8
commit bfcfb61eff
2 changed files with 6 additions and 15 deletions

View File

@@ -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.
* @return {ol.EventsListenerFunctionType} Bound listener.
@@ -114,7 +105,7 @@ ol.events.findListener_ = function(listeners, listener, opt_this,
* @return {Array.<ol.EventsKey>|undefined} Listeners.
*/
ol.events.getListeners = function(target, type) {
var listenerMap = target[ol.events.LISTENER_MAP_PROP_];
var listenerMap = target.ol_lm;
return listenerMap ? listenerMap[type] : undefined;
};
@@ -128,9 +119,9 @@ ol.events.getListeners = function(target, type) {
* @private
*/
ol.events.getListenerMap_ = function(target) {
var listenerMap = target[ol.events.LISTENER_MAP_PROP_];
var listenerMap = target.ol_lm;
if (!listenerMap) {
listenerMap = target[ol.events.LISTENER_MAP_PROP_] = {};
listenerMap = target.ol_lm = {};
}
return listenerMap;
};
@@ -152,11 +143,11 @@ ol.events.removeListeners_ = function(target, type) {
ol.object.clear(listeners[i]);
}
listeners.length = 0;
var listenerMap = target[ol.events.LISTENER_MAP_PROP_];
var listenerMap = target.ol_lm;
if (listenerMap) {
delete listenerMap[type];
if (Object.keys(listenerMap).length === 0) {
delete target[ol.events.LISTENER_MAP_PROP_];
delete target.ol_lm;
}
}
}