diff --git a/src/standard/events.html b/src/standard/events.html index 86a51a14c9..926c31b311 100644 --- a/src/standard/events.html +++ b/src/standard/events.html @@ -80,8 +80,12 @@ * @param {string} methodName Name of handler method on `this` to call. */ listen: function(node, eventName, methodName) { - this._listen(node, eventName, - this._createEventHandler(node, eventName, methodName)); + var handler = this._recallEventHandler(this, eventName, node, methodName); + // reuse cache'd handler + if (!handler) { + handler = this._createEventHandler(node, eventName, methodName); + } + this._listen(node, eventName, handler); }, _boundListenerKey: function(eventName, methodName) { @@ -140,6 +144,7 @@ anymore. */ unlisten: function(node, eventName, methodName) { + // leave handler in map for cache purposes var handler = this._recallEventHandler(this, eventName, node, methodName); if (handler) { this._unlisten(node, eventName, handler);