setExpectedFailuresForSelfTest(3); // Keep "JSMPromise" separate so "Promise" still refers to native Promises. let JSMPromise = ChromeUtils.import("resource://gre/modules/Promise.jsm", {}) .Promise; function test() { Promise.reject(new Error("Promise rejection.")); JSMPromise.reject(new Error("Promise.jsm rejection.")); (async () => { throw new Error("Synchronous rejection from async function."); })(); // The following rejections are caught, so they won't result in failures. Promise.reject(new Error("Promise rejection.")).catch(() => {}); JSMPromise.reject(new Error("Promise.jsm rejection.")).catch(() => {}); (async () => { throw new Error("Synchronous rejection from async function."); })().catch(() => {}); }