From b2c048f172e31e4e199050c5421a3d17ccb1f974 Mon Sep 17 00:00:00 2001 From: Alex Vandiver Date: Thu, 23 Mar 2023 20:13:03 +0000 Subject: [PATCH] emojiset: Promise reject calls want an error, not an event. This improves the error message captured, from the mildly inscrutable "Non-Error promise rejection captured with keys: currentTarget, isTrusted, target, type". --- web/src/emojisets.js | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/web/src/emojisets.js b/web/src/emojisets.js index 04d1d1d389..ca4dd6dcdc 100644 --- a/web/src/emojisets.js +++ b/web/src/emojisets.js @@ -30,7 +30,12 @@ export async function select(name) { await new Promise((resolve, reject) => { const sheet = new Image(); sheet.addEventListener("load", resolve); - sheet.addEventListener("error", reject); + sheet.addEventListener("error", () => { + // Unfortunately, the "event" we get doesn't have any + // useful information on it, as it's not the window-level + // error handler. + reject(new Error("Failed to load emojiset " + name + " from " + sheet.src)); + }); sheet.src = new_emojiset.sheet; }); if (current_emojiset) {