You cannot select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

80 lines
1.8 KiB
JavaScript

'use strict';
let isWebWorker = (typeof WorkerGlobalScope !== "undefined");
let isNode = (typeof process !== "undefined" && process.browser !== true);
let isBrowser = (!isNode && !isWebWorker && typeof document !== "undefined");
let environmentName = "";
if (isWebWorker) {
environmentName = "WebWorker";
} else if (isBrowser) {
environmentName = "Browser";
} else if (isNode) {
environmentName = "Node";
} else {
environmentName = "Unknown environment";
}
function supportsWebWorkers() {
return !!window.Worker;
}
if (isBrowser || isWebWorker) {
const debug = require("debug");
debug.enable("*");
}
const unhandledRejection = require("../");
let emitter = unhandledRejection();
emitter.on("unhandledRejection", (error, promise) => {
console.log(`Caught an error in <${environmentName}>! ${error.message}`)
});
const BPromise = require("bluebird");
const QPromise = require("q");
const WPromise = require("when");
const YPromise = require("yaku");
/* Workaround for stefanpenner/es6-promise#183 */
let _nativePromise = Promise;
const EPromise = require("es6-promise").Promise;
Promise = _nativePromise;
Promise.resolve().then(() => {
console.log("Throwing Native...")
throw new Error("Native")
});
BPromise.resolve().then(() => {
console.log("Throwing Bluebird...")
throw new Error("Bluebird")
});
QPromise.resolve().then(() => {
console.log("Throwing Q...")
throw new Error("Q")
});
WPromise.resolve().then(() => {
console.log("Throwing WhenJS...")
throw new Error("WhenJS")
});
YPromise.resolve().then(() => {
console.log("Throwing Yaku...")
throw new Error("Yaku")
});
/* Disabled until stefanpenner/es6-promise#70 is resolved
EPromise.resolve().then(() => {
console.log("Throwing es6-promise...")
throw new Error("es6-promise")
});
*/
if (isBrowser && supportsWebWorkers) {
let worker = new Worker("test.webworker.js");
}