Merge pull request #1166 from juanjoDiaz/simplify_EventTargetMixin

Simplify EventTargetMixin
This commit is contained in:
Samuel Mannehed 2018-11-26 18:42:10 +01:00 committed by GitHub
commit 2bab9a0460
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
1 changed files with 6 additions and 11 deletions

View File

@ -8,13 +8,10 @@
export default class EventTargetMixin { export default class EventTargetMixin {
constructor() { constructor() {
this._listeners = null; this._listeners = new Map();
} }
addEventListener(type, callback) { addEventListener(type, callback) {
if (!this._listeners) {
this._listeners = new Map();
}
if (!this._listeners.has(type)) { if (!this._listeners.has(type)) {
this._listeners.set(type, new Set()); this._listeners.set(type, new Set());
} }
@ -22,19 +19,17 @@ export default class EventTargetMixin {
} }
removeEventListener(type, callback) { removeEventListener(type, callback) {
if (!this._listeners || !this._listeners.has(type)) { if (this._listeners.has(type)) {
return; this._listeners.get(type).delete(callback);
} }
this._listeners.get(type).delete(callback);
} }
dispatchEvent(event) { dispatchEvent(event) {
if (!this._listeners || !this._listeners.has(event.type)) { if (!this._listeners.has(event.type)) {
return true; return true;
} }
this._listeners.get(event.type).forEach((callback) => { this._listeners.get(event.type)
callback.call(this, event); .forEach(callback => callback.call(this, event), this);
}, this);
return !event.defaultPrevented; return !event.defaultPrevented;
} }
} }