CONSOLE MESSAGE: [object Window]
CONSOLE MESSAGE: [object Console]
CONSOLE MESSAGE: string
CONSOLE MESSAGE: [object Window]
CONSOLE MESSAGE: [object Console]
CONSOLE MESSAGE: string
Checking pause locations when stepping in and over statements that make use of Internal scripts.


== Running test suite: Debugger.stepping.internal
-- Running test case: Debugger.stepping.internal.ConsoleLog.StepOver
EXPRESSION: setTimeout(entryConsoleLog)
STEPS: over, over, over, over, resume
PAUSED (debugger-statement)
PAUSE AT entryConsoleLog:8:5
      4    <script src="../resources/log-pause-location.js"></script>
      5    <script>
      6    function entryConsoleLog() {
 ->   7        |debugger;
      8        console.log(window);
      9        console.log(console);
     10        console.log("string");

ACTION: step-over
PAUSE AT entryConsoleLog:9:5
      5    <script>
      6    function entryConsoleLog() {
      7        debugger;
 ->   8        |console.log(window);
      9        console.log(console);
     10        console.log("string");
     11    }

ACTION: step-over
PAUSE AT entryConsoleLog:10:5
      6    function entryConsoleLog() {
      7        debugger;
      8        console.log(window);
 ->   9        |console.log(console);
     10        console.log("string");
     11    }
     12    

ACTION: step-over
PAUSE AT entryConsoleLog:11:5
      7        debugger;
      8        console.log(window);
      9        console.log(console);
 ->  10        |console.log("string");
     11    }
     12    
     13    // ---------

ACTION: step-over
PAUSE AT entryConsoleLog:12:2
      8        console.log(window);
      9        console.log(console);
     10        console.log("string");
 ->  11    }|
     12    
     13    // ---------
     14    

ACTION: resume
RESUMED
PASS: Should have used all steps.

-- Running test case: Debugger.stepping.internal.ConsoleLog.StepIn
EXPRESSION: setTimeout(entryConsoleLog)
STEPS: over, in, in, in, resume
PAUSED (debugger-statement)
PAUSE AT entryConsoleLog:8:5
      4    <script src="../resources/log-pause-location.js"></script>
      5    <script>
      6    function entryConsoleLog() {
 ->   7        |debugger;
      8        console.log(window);
      9        console.log(console);
     10        console.log("string");

ACTION: step-over
PAUSE AT entryConsoleLog:9:5
      5    <script>
      6    function entryConsoleLog() {
      7        debugger;
 ->   8        |console.log(window);
      9        console.log(console);
     10        console.log("string");
     11    }

ACTION: step-in
PAUSE AT entryConsoleLog:10:5
      6    function entryConsoleLog() {
      7        debugger;
      8        console.log(window);
 ->   9        |console.log(console);
     10        console.log("string");
     11    }
     12    

ACTION: step-in
PAUSE AT entryConsoleLog:11:5
      7        debugger;
      8        console.log(window);
      9        console.log(console);
 ->  10        |console.log("string");
     11    }
     12    
     13    // ---------

ACTION: step-in
PAUSE AT entryConsoleLog:12:2
      8        console.log(window);
      9        console.log(console);
     10        console.log("string");
 ->  11    }|
     12    
     13    // ---------
     14    

ACTION: resume
RESUMED
PASS: Should have used all steps.

