Checking pause locations when stepping in, out, and over switch statements. == Running test suite: Debugger.stepping.switch -- Running test case: Debugger.stepping.SwitchHitCase EXPRESSION: setTimeout(entrySwitchHitCase) STEPS: over, in, in, over, over, over, resume PAUSED (debugger-statement) PAUSE AT entrySwitchHitCase:29:5 25 } 26 27 function entrySwitchHitCase() { -> 28 |debugger; 29 switcher(1); 30 } 31 ACTION: step-over PAUSE AT entrySwitchHitCase:30:5 26 27 function entrySwitchHitCase() { 28 debugger; -> 29 |switcher(1); 30 } 31 32 function entrySwitchFallthrough() { ACTION: step-in PAUSE AT switcher:12:13 8 } 9 10 function switcher(value) { -> 11 switch (|value) { 12 case 1: 13 a(); 14 break; ACTION: step-in PAUSE AT switcher:14:9 10 function switcher(value) { 11 switch (value) { 12 case 1: -> 13 |a(); 14 break; 15 case 2: 16 a(); ACTION: step-over PAUSE AT switcher:15:9 11 switch (value) { 12 case 1: 13 a(); -> 14 |break; 15 case 2: 16 a(); 17 // fallthrough ACTION: step-over PAUSE AT switcher:26:2 22 a(); 23 break; 24 } -> 25 }| 26 27 function entrySwitchHitCase() { 28 debugger; ACTION: step-over PAUSE AT entrySwitchHitCase:31:2 27 function entrySwitchHitCase() { 28 debugger; 29 switcher(1); -> 30 }| 31 32 function entrySwitchFallthrough() { 33 debugger; ACTION: resume RESUMED PASS: Should have used all steps. -- Running test case: Debugger.stepping.SwitchFallthrough EXPRESSION: setTimeout(entrySwitchFallthrough) STEPS: over, in, in, over, over, over, over, resume PAUSED (debugger-statement) PAUSE AT entrySwitchFallthrough:34:5 30 } 31 32 function entrySwitchFallthrough() { -> 33 |debugger; 34 switcher(2); 35 } 36 ACTION: step-over PAUSE AT entrySwitchFallthrough:35:5 31 32 function entrySwitchFallthrough() { 33 debugger; -> 34 |switcher(2); 35 } 36 37 function entrySwitchDefault() { ACTION: step-in PAUSE AT switcher:12:13 8 } 9 10 function switcher(value) { -> 11 switch (|value) { 12 case 1: 13 a(); 14 break; ACTION: step-in PAUSE AT switcher:17:9 13 a(); 14 break; 15 case 2: -> 16 |a(); 17 // fallthrough 18 case 3: 19 a(); ACTION: step-over PAUSE AT switcher:20:9 16 a(); 17 // fallthrough 18 case 3: -> 19 |a(); 20 break; 21 default: 22 a(); ACTION: step-over PAUSE AT switcher:21:9 17 // fallthrough 18 case 3: 19 a(); -> 20 |break; 21 default: 22 a(); 23 break; ACTION: step-over PAUSE AT switcher:26:2 22 a(); 23 break; 24 } -> 25 }| 26 27 function entrySwitchHitCase() { 28 debugger; ACTION: step-over PAUSE AT entrySwitchFallthrough:36:2 32 function entrySwitchFallthrough() { 33 debugger; 34 switcher(2); -> 35 }| 36 37 function entrySwitchDefault() { 38 debugger; ACTION: resume RESUMED PASS: Should have used all steps. -- Running test case: Debugger.stepping.SwitchDefault EXPRESSION: setTimeout(entrySwitchDefault) STEPS: over, in, over, over, over, over, resume PAUSED (debugger-statement) PAUSE AT entrySwitchDefault:39:5 35 } 36 37 function entrySwitchDefault() { -> 38 |debugger; 39 switcher(4); 40 } 41 ACTION: step-over PAUSE AT entrySwitchDefault:40:5 36 37 function entrySwitchDefault() { 38 debugger; -> 39 |switcher(4); 40 } 41 42 function entrySwitchNoCase() { ACTION: step-in PAUSE AT switcher:12:13 8 } 9 10 function switcher(value) { -> 11 switch (|value) { 12 case 1: 13 a(); 14 break; ACTION: step-over PAUSE AT switcher:23:9 19 a(); 20 break; 21 default: -> 22 |a(); 23 break; 24 } 25 } ACTION: step-over PAUSE AT switcher:24:9 20 break; 21 default: 22 a(); -> 23 |break; 24 } 25 } 26 ACTION: step-over PAUSE AT switcher:26:2 22 a(); 23 break; 24 } -> 25 }| 26 27 function entrySwitchHitCase() { 28 debugger; ACTION: step-over PAUSE AT entrySwitchDefault:41:2 37 function entrySwitchDefault() { 38 debugger; 39 switcher(4); -> 40 }| 41 42 function entrySwitchNoCase() { 43 debugger; ACTION: resume RESUMED PASS: Should have used all steps. -- Running test case: Debugger.stepping.SwitchStepOut EXPRESSION: setTimeout(entrySwitchHitCase) STEPS: over, in, in, out, resume PAUSED (debugger-statement) PAUSE AT entrySwitchHitCase:29:5 25 } 26 27 function entrySwitchHitCase() { -> 28 |debugger; 29 switcher(1); 30 } 31 ACTION: step-over PAUSE AT entrySwitchHitCase:30:5 26 27 function entrySwitchHitCase() { 28 debugger; -> 29 |switcher(1); 30 } 31 32 function entrySwitchFallthrough() { ACTION: step-in PAUSE AT switcher:12:13 8 } 9 10 function switcher(value) { -> 11 switch (|value) { 12 case 1: 13 a(); 14 break; ACTION: step-in PAUSE AT switcher:14:9 10 function switcher(value) { 11 switch (value) { 12 case 1: -> 13 |a(); 14 break; 15 case 2: 16 a(); ACTION: step-out PAUSE AT entrySwitchHitCase:31:2 27 function entrySwitchHitCase() { 28 debugger; 29 switcher(1); -> 30 }| 31 32 function entrySwitchFallthrough() { 33 debugger; ACTION: resume RESUMED PASS: Should have used all steps. -- Running test case: Debugger.stepping.SwitchNoCaseStepIn EXPRESSION: setTimeout(entrySwitchNoCase) STEPS: over, in, in, in, resume PAUSED (debugger-statement) PAUSE AT entrySwitchNoCase:44:5 40 } 41 42 function entrySwitchNoCase() { -> 43 |debugger; 44 switch (a()) { 45 case 2: 46 a(); ACTION: step-over PAUSE AT entrySwitchNoCase:45:13 41 42 function entrySwitchNoCase() { 43 debugger; -> 44 switch (|a()) { 45 case 2: 46 a(); 47 break; ACTION: step-in PAUSE AT a:8:5 4 5