From 3276b2637faef4af92cfeb6f102a8cb6e6c6bb29 Mon Sep 17 00:00:00 2001 From: Simon Legner Date: Sat, 6 Jan 2024 15:56:40 +0100 Subject: [PATCH] Sanity-check decaffeinate class Events --- assets/javascripts/lib/events.js | 35 ++++++++------------------------ 1 file changed, 9 insertions(+), 26 deletions(-) diff --git a/assets/javascripts/lib/events.js b/assets/javascripts/lib/events.js index 58c37291..381df7de 100644 --- a/assets/javascripts/lib/events.js +++ b/assets/javascripts/lib/events.js @@ -1,29 +1,13 @@ -// TODO: This file was created by bulk-decaffeinate. -// Sanity-check the conversion and remove this comment. -/* - * decaffeinate suggestions: - * DS101: Remove unnecessary use of Array.from - * DS102: Remove unnecessary code created because of implicit returns - * DS104: Avoid inline assignments - * DS207: Consider shorter variations of null checks - * DS208: Avoid top-level this - * Full docs: https://github.com/decaffeinate/decaffeinate/blob/main/docs/suggestions.md - */ class Events { on(event, callback) { if (event.indexOf(" ") >= 0) { - for (var name of Array.from(event.split(" "))) { + for (var name of event.split(" ")) { this.on(name, callback); } } else { - let base; - ((base = - this._callbacks != null ? this._callbacks : (this._callbacks = {}))[ - event - ] != null - ? base[event] - : (base[event] = []) - ).push(callback); + this._callbacks ||= {}; + this._callbacks[event] ||= []; + this._callbacks[event].push(callback); } return this; } @@ -31,12 +15,11 @@ class Events { off(event, callback) { let callbacks, index; if (event.indexOf(" ") >= 0) { - for (var name of Array.from(event.split(" "))) { + for (var name of event.split(" ")) { this.off(name, callback); } } else if ( - (callbacks = - this._callbacks != null ? this._callbacks[event] : undefined) && + (callbacks = this._callbacks?.[event]) && (index = callbacks.indexOf(callback)) >= 0 ) { callbacks.splice(index, 1); @@ -51,7 +34,7 @@ class Events { this.eventInProgress = { name: event, args }; const callbacks = this._callbacks?.[event]; if (callbacks) { - for (let callback of Array.from(callbacks.slice(0))) { + for (let callback of callbacks.slice(0)) { if (typeof callback === "function") { callback(...args); } @@ -59,14 +42,14 @@ class Events { } this.eventInProgress = null; if (event !== "all") { - this.trigger("all", event, ...Array.from(args)); + this.trigger("all", event, ...args); } return this; } removeEvent(event) { if (this._callbacks != null) { - for (var name of Array.from(event.split(" "))) { + for (var name of event.split(" ")) { delete this._callbacks[name]; } }