haikuwebkit/LayoutTests/inspector/debugger/resources/break-on-exception-tests.js

89 lines
2.2 KiB
JavaScript

TestPage.needToSanitizeUncaughtExceptionURLs = true;
var arr = [ 1, 2, 3 ];
var mapData = [[ "a", arr ]];
function doThrow() {
console.log("throwing TestError");
throw "TestError";
}
function testCatch() {
console.log("testCatch");
try {
doThrow();
} catch (e) {
console.log("catch " + e);
}
console.log("DONE");
}
function testFinally() {
console.log("testFinally");
try {
doThrow();
} finally {
console.log("finally");
}
}
function testThrowingThruNativeCode() {
console.log("testThrowingThruNativeCode");
(new Map(mapData)).forEach(doThrow);
}
function testThrowingInPromise() {
console.log("testThrowingInPromise");
new Promise(function promise(resolve, reject) {
console.log("in promise");
doThrow();
});
}
function testThrowingInPromiseWithCatch() {
console.log("testThrowingInPromiseWithCatch");
new Promise(function promise(resolve, reject) {
console.log("in promise");
doThrow();
}).catch(function promiseCatch(e) {
console.log("in promise.catch");
console.log("DONE");
});
}
function testThrowingInPromiseThen() {
console.log("testThrowingInPromiseThen");
new Promise(function promise(resolve, reject) {
console.log("in promise");
resolve();
}).then(function promiseThen(x) {
console.log("in promise.then");
doThrow();
});
}
function testThrowingInPromiseThenWithCatch() {
console.log("testThrowingInPromiseThenWithCatch");
new Promise(function promise(resolve, reject) {
console.log("in promise");
resolve();
}).then(function promiseThen(x) {
console.log("in promise.then");
doThrow();
}).catch(function promiseCatch(e) {
console.log("in promise.catch");
console.log("DONE");
});
}
function testThrowingInPromiseWithRethrowInCatch() {
console.log("testThrowingInPromiseWithRethrowInCatch");
new Promise(function promise(resolve, reject) {
console.log("in promise");
doThrow();
}).catch(function promiseCatch(e) {
console.log("in promise.catch");
throw e;
});
}