blob: 2a371b092893c3951544f922db0cb50d90235453 [file] [log] [blame]
<!DOCTYPE html>
<html>
<head>
<script src="../../http/tests/inspector/resources/protocol-test.js"></script>
<script src="resources/exception.js"></script>
<script>
function test()
{
let expectPause = false;
let testIndex = 0;
let statementsWithUncaughtExceptions = [
"({}).a.b.c.d;",
"exceptionBasic();",
"exceptionDOM();",
"exceptionInHostFunction();",
"throwString();",
"throwParam({x:1});",
"throwParam(new Error('error message'));"
];
function triggerNextUncaughtException()
{
// Evaluate statement and expect to pause.
if (testIndex < statementsWithUncaughtExceptions.length) {
var statement = statementsWithUncaughtExceptions[testIndex++];
InspectorProtocol.sendCommand("Runtime.evaluate", {expression: "setTimeout(function() { " + statement + " }, 0);"});
return;
}
// Done evaluating statements to pause. Evaluate some more we do not expect to pause.
ProtocolTest.log("PASS - paused for each uncaught exception");
ProtocolTest.completeTest();
}
InspectorProtocol.sendCommand("Debugger.enable", {});
InspectorProtocol.sendCommand("Debugger.setBreakpointsActive", {active: true});
InspectorProtocol.sendCommand("Debugger.setPauseOnExceptions", {state: "uncaught"}, function(responseObject) {
InspectorProtocol.checkForError(responseObject);
expectPause = true;
triggerNextUncaughtException();
});
InspectorProtocol.eventHandler["Debugger.paused"] = function(messageObject)
{
if (!expectPause) {
ProtocolTest.log("FAIL - debugger paused when we did not expect to");
ProtocolTest.completeTest();
return;
}
ProtocolTest.log("[" + testIndex + "] Testing statement '" + statementsWithUncaughtExceptions[testIndex - 1] + "'");
ProtocolTest.log("[" + testIndex + "] Paused and about to step");
InspectorProtocol.sendCommand("Debugger.stepOver", {});
}
InspectorProtocol.eventHandler["Debugger.resumed"] = function(messageObject)
{
ProtocolTest.log("[" + testIndex + "] Resumed");
triggerNextUncaughtException();
}
}
</script>
</head>
<body onload="runTest()">
<p>Regression test for https://bugs.webkit.org/show_bug.cgi?id=133182</p>
<p>Stepping after breaking on uncaught exceptions should not crash.</p>
</body>
</html>