<script>
function stepOne()
{
    var x = 1;
}

function stepTwo()
{
    alert("Test failed. The second button event still fired.");
}
</script>
<p>Test for <a href="https://bugs.webkit.org/show_bug.cgi?id=20284">Bug 20284: JavaScript can be executed even though debugger is running and at a break point</a>.</p>
<p>To test, open the Inspector and start a debugging session. Set a break point inside the stepOne() function. Now click the Step One button in the page. The breakpoint should be hit. While paused at the breakpoint click on the Step Two button. You should not see an alert dialog.</p>
<button onclick="stepOne()">Step One</button><br><br>
<button onclick="stepTwo()">Step Two</button><br><br>
