| Index: third_party/WebKit/LayoutTests/inspector-protocol/debugger/step-over-caught-exception.html
|
| diff --git a/third_party/WebKit/LayoutTests/inspector-protocol/debugger/step-over-caught-exception.html b/third_party/WebKit/LayoutTests/inspector-protocol/debugger/step-over-caught-exception.html
|
| new file mode 100644
|
| index 0000000000000000000000000000000000000000..ae5496198e60a90483bac77b90901fd4f9b6a921
|
| --- /dev/null
|
| +++ b/third_party/WebKit/LayoutTests/inspector-protocol/debugger/step-over-caught-exception.html
|
| @@ -0,0 +1,83 @@
|
| +<html>
|
| +<head>
|
| +<script type="text/javascript" src="../../http/tests/inspector-protocol/inspector-protocol-test.js"></script>
|
| +<script>
|
| +function testFunction()
|
| +{
|
| + function foo()
|
| + {
|
| + try {
|
| + throw new Error();
|
| + } catch (e) {
|
| + }
|
| + }
|
| + debugger;
|
| + foo();
|
| + console.log("completed");
|
| +}
|
| +</script>
|
| +<script>
|
| +function test()
|
| +{
|
| + InspectorTest.sendCommandOrDie("Debugger.enable", {} );
|
| + InspectorTest.sendCommandOrDie("Console.enable", {} );
|
| + step1();
|
| +
|
| + function step1()
|
| + {
|
| + InspectorTest.sendCommandOrDie("Runtime.evaluate", { "expression": "setTimeout(testFunction, 0);"} );
|
| + var commands = [ "Print", "stepOver", "stepOver", "Print", "resume" ];
|
| + InspectorTest.eventHandler["Debugger.paused"] = function(messageObject)
|
| + {
|
| + var command = commands.shift();
|
| + if (command === "Print") {
|
| + var callFrames = messageObject.params.callFrames;
|
| + for (var callFrame of callFrames)
|
| + InspectorTest.log(callFrame.functionName + ":" + callFrame.location.lineNumber);
|
| + command = commands.shift();
|
| + }
|
| + if (command)
|
| + InspectorTest.sendCommandOrDie("Debugger." + command, {});
|
| + }
|
| +
|
| + InspectorTest.eventHandler["Console.messageAdded"] = function(messageObject)
|
| + {
|
| + if (messageObject.params.message.text === "completed") {
|
| + if (commands.length)
|
| + InspectorTest.log("[FAIL]: execution was resumed too earlier.")
|
| + step2();
|
| + }
|
| + }
|
| + }
|
| +
|
| + function step2()
|
| + {
|
| + InspectorTest.sendCommandOrDie("Runtime.evaluate", { "expression": "setTimeout(testFunction, 0);"} );
|
| + var commands = [ "Print", "stepOver", "stepInto", "stepOver", "stepOver", "Print", "resume" ];
|
| + InspectorTest.eventHandler["Debugger.paused"] = function(messageObject)
|
| + {
|
| + var command = commands.shift();
|
| + if (command === "Print") {
|
| + var callFrames = messageObject.params.callFrames;
|
| + for (var callFrame of callFrames)
|
| + InspectorTest.log(callFrame.functionName + ":" + callFrame.location.lineNumber);
|
| + command = commands.shift();
|
| + }
|
| + if (command)
|
| + InspectorTest.sendCommandOrDie("Debugger." + command, {});
|
| + }
|
| +
|
| + InspectorTest.eventHandler["Console.messageAdded"] = function(messageObject)
|
| + {
|
| + if (messageObject.params.message.text === "completed") {
|
| + if (commands.length)
|
| + InspectorTest.log("[FAIL]: execution was resumed too earlier.")
|
| + InspectorTest.completeTest();
|
| + }
|
| + }
|
| + }
|
| +}
|
| +</script>
|
| +</head>
|
| +<body onLoad="runTest();"></body>
|
| +</html>
|
|
|