Merge pull request #10010 from ahocevar/require-type-and-listener

Require type and listener for addEventListener/removeEventListener
This commit is contained in:
Andreas Hocevar
2019-09-26 15:29:50 +02:00
committed by GitHub
2 changed files with 11 additions and 0 deletions
+6
View File
@@ -57,6 +57,9 @@ class Target extends Disposable {
* @param {import("../events.js").ListenerFunction} listener Listener. * @param {import("../events.js").ListenerFunction} listener Listener.
*/ */
addEventListener(type, listener) { addEventListener(type, listener) {
if (!type || !listener) {
return;
}
let listeners = this.listeners_[type]; let listeners = this.listeners_[type];
if (!listeners) { if (!listeners) {
listeners = this.listeners_[type] = []; listeners = this.listeners_[type] = [];
@@ -146,6 +149,9 @@ class Target extends Disposable {
* @param {import("../events.js").ListenerFunction} listener Listener. * @param {import("../events.js").ListenerFunction} listener Listener.
*/ */
removeEventListener(type, listener) { removeEventListener(type, listener) {
if (!type || !listener) {
return;
}
const listeners = this.listeners_[type]; const listeners = this.listeners_[type];
if (listeners) { if (listeners) {
const index = listeners.indexOf(listener); const index = listeners.indexOf(listener);
+5
View File
@@ -64,6 +64,11 @@ describe('ol.events.EventTarget', function() {
eventTarget.removeEventListener('foo', spy1, false); eventTarget.removeEventListener('foo', spy1, false);
expect(eventTarget.listeners_['foo']).to.have.length(1); expect(eventTarget.listeners_['foo']).to.have.length(1);
}); });
it.only('does nothing when called with undefined listener', function() {
eventTarget.addEventListener('foo', spy1);
eventTarget.removeEventListener('foo', undefined);
expect(eventTarget.listeners_['foo']).to.eql([spy1]);
});
}); });
describe('#dispatchEvent()', function() { describe('#dispatchEvent()', function() {