Merge pull request #5641 from ahocevar/listenermap-property

De-randomize the listener map property
This commit is contained in:
Andreas Hocevar
2016-08-02 08:53:51 +02:00
committed by GitHub
2 changed files with 6 additions and 15 deletions
+5 -14
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. * @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;
} }
} }
} }
+1 -1
View File
@@ -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([{}, {}]);
}); });
}); });