Chromium Code Reviews| 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..9b2d6d5bcda3a9a0334b02de36c8404b7375b01f |
| --- /dev/null |
| +++ b/third_party/WebKit/LayoutTests/inspector-protocol/debugger/step-over-caught-exception.html |
| @@ -0,0 +1,85 @@ |
| +<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, {}); |
| + else |
|
lushnikov
2016/04/19 18:35:39
nit: remove if-else
kozy
2016/04/19 18:44:17
Done.
|
| + InspectorTest.eventHandler["Debugger.paused"] = undefined; |
| + } |
| + |
| + 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> |