<script>
var myObj = {test : 1};
function getObject()
{
    return myObj;
}

function statement() {
    ;
}

function runForIn()
{
    /* place breakpoint on next line and click continue */ debugger;
    for (var property in getObject())
        statement();
}

</script>
Start a debugging session in the Web Inspector and open this file.
<br><br>
Before running the tests please perform the following:
Make sure the execution is not paused in the debugger.<br>
Click the button and when the debugger breaks, set a breakpoint on the first line in the loop
(as indicated by the comment), and click continue.<br>
The debugger should stop at the beggining of the loop.<br>
The above actions should be performed before <b>each</b> of the following tests.
<br><br>
<input type="button" value="run for-in" onclick="runForIn()"/>
<br><br>
TEST 1: Click 'continue'. Execution should continue without stopping on the loop breakpoint again.<br>
TEST 2: Click 'Step over'. Debugger should step inside the loop to the next statement line.<br>
TEST 3: Click 'Step into'. Debugger should step into 'getObject' function.<br>
TEST 4: 'Step over' to the statement line and then 'Step over' again. Debugger should pause on
the for-in loop again.<br>
