<script>
function test()
{
    debugger;
}

var object = { test: 1 };

for (var property in object)
    test();
</script>

Test for <a href="https://bugs.webkit.org/show_bug.cgi?id=22004">Bug 22004: Can't set a breakpoint on the statement after a single line "for"</a>.
<br><br>
Start a debugging session in the Web Inspector and open this file. When the debugger breaks, select the (program) node
in the call stack, you should see the execution line on the call to test().
<br><br>
Also set a breakpoint on the call to test(), and reload. It should break before the test() function is called.
