<script src="resources/loop-statements.js"></script>
<script>            
function runDoWhile()
{
    /* place breakpoint on next line and click continue */ debugger;
    do {
        statement();
        increment();
    } while (condition());
}

</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 do-while" onclick="initialize();runDoWhile()"/>
<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.
'Step over' until the debugger reaches the 'while' line. Click 'Step into' - the debugger should
enter the 'condition' function.<br>
TEST 3: 'Step over' to the end of the loop (and 'while' statement) and step over again. Debugger
should go to the beggining of the loop.<br>
