From 8384628875b1d3bbf5f574e8d7e191e37ac9e50a Mon Sep 17 00:00:00 2001 From: Robert Wagner Date: Tue, 1 Oct 2019 18:53:03 -0400 Subject: [PATCH] Simplify Evented code (#339) --- src/js/evented.js | 27 +++++++++------------------ 1 file changed, 9 insertions(+), 18 deletions(-) diff --git a/src/js/evented.js b/src/js/evented.js index c29343c7..9e9b2f81 100644 --- a/src/js/evented.js +++ b/src/js/evented.js @@ -26,14 +26,11 @@ export class Evented { if (isUndefined(handler)) { delete this.bindings[event]; } else { - let i = 0; - while (i < this.bindings[event].length) { - if (this.bindings[event][i].handler === handler) { - this.bindings[event].splice(i, 1); - } else { - ++i; + this.bindings[event].forEach((binding, index) => { + if (binding.handler === handler) { + this.bindings[event].splice(index, 1); } - } + }); } return this; @@ -41,23 +38,17 @@ export class Evented { trigger(event, ...args) { if (!isUndefined(this.bindings) && this.bindings[event]) { - let i = 0; - while (i < this.bindings[event].length) { - const { handler, ctx, once } = this.bindings[event][i]; + this.bindings[event].forEach((binding, index) => { + const { ctx, handler, once } = binding; - let context = ctx; - if (isUndefined(context)) { - context = this; - } + const context = ctx || this; handler.apply(context, args); if (once) { - this.bindings[event].splice(i, 1); - } else { - ++i; + this.bindings[event].splice(index, 1); } - } + }); } return this;