// firefox < 121, safari < 17.4 Promise.withResolvers = () => { let resolve!: PromiseWithResolvers["resolve"]; let reject!: PromiseWithResolvers["reject"]; const promise = new Promise((resolve_, reject_) => { resolve = resolve_; reject = reject_; }); return { promise, resolve, reject }; };