1
0
Fork 0
firefox/remote/shared/test/xpcshell/head.js
Daniel Baumann 5e9a113729
Adding upstream version 140.0.
Signed-off-by: Daniel Baumann <daniel.baumann@progress-linux.org>
2025-06-25 09:37:52 +02:00

41 lines
1.1 KiB
JavaScript

const SVG_NS = "http://www.w3.org/2000/svg";
const XHTML_NS = "http://www.w3.org/1999/xhtml";
const XUL_NS = "http://www.mozilla.org/keymaster/gatekeeper/there.is.only.xul";
function trackPromise(promise) {
let isResolved = false;
let isRejected = false;
const trackedPromise = promise.then(
value => {
isResolved = true;
return value;
},
error => {
isRejected = true;
throw error;
}
);
trackedPromise.isResolved = () => isResolved;
trackedPromise.isRejected = () => isRejected;
trackedPromise.isPending = () => !isResolved && !isRejected;
return trackedPromise;
}
const hasPromiseResolved = async function (promise) {
let resolved = false;
promise.finally(() => (resolved = true)).catch(() => {});
// Make sure microtasks have time to run.
await new Promise(resolve => Services.tm.dispatchToMainThread(resolve));
return resolved;
};
const hasPromiseRejected = async function (promise) {
let rejected = false;
promise.catch(() => (rejected = true));
// Make sure microtasks have time to run.
await new Promise(resolve => Services.tm.dispatchToMainThread(resolve));
return rejected;
};