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

View File

@@ -57,6 +57,9 @@ class Target extends Disposable {
* @param {import("../events.js").ListenerFunction} listener Listener.
*/
addEventListener(type, listener) {
if (!type || !listener) {
return;
}
let listeners = this.listeners_[type];
if (!listeners) {
listeners = this.listeners_[type] = [];
@@ -146,6 +149,9 @@ class Target extends Disposable {
* @param {import("../events.js").ListenerFunction} listener Listener.
*/
removeEventListener(type, listener) {
if (!type || !listener) {
return;
}
const listeners = this.listeners_[type];
if (listeners) {
const index = listeners.indexOf(listener);

View File

@@ -64,6 +64,11 @@ describe('ol.events.EventTarget', function() {
eventTarget.removeEventListener('foo', spy1, false);
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() {