|  | <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> | 
|  | <p>To test, open the DevTools (Ctrl+Shift+I) and reload the page. | 
|  | <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.</p> | 
|  | <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> |