Checking pause locations when stepping in, out, and over class constructors and methods. == Running test suite: Debugger.stepping.classes -- Running test case: Debugger.stepping.ClassBasicStepOver EXPRESSION: setTimeout(entryClassBasic) STEPS: over, over, over, over, over, resume PAUSED (debugger-statement) PAUSE AT entryClassBasic:58:5 54 class Child2 extends Base {}; 55 56 function entryClassBasic() { -> 57 |debugger; 58 let o = new Child; 59 o.baseMethod(); 60 o.childMethod(); ACTION: step-over PAUSE AT entryClassBasic:59:5 55 56 function entryClassBasic() { 57 debugger; -> 58 |let o = new Child; 59 o.baseMethod(); 60 o.childMethod(); 61 o.method(); ACTION: step-over PAUSE AT entryClassBasic:60:5 56 function entryClassBasic() { 57 debugger; 58 let o = new Child; -> 59 |o.baseMethod(); 60 o.childMethod(); 61 o.method(); 62 } ACTION: step-over PAUSE AT entryClassBasic:61:5 57 debugger; 58 let o = new Child; 59 o.baseMethod(); -> 60 |o.childMethod(); 61 o.method(); 62 } 63 ACTION: step-over PAUSE AT entryClassBasic:62:5 58 let o = new Child; 59 o.baseMethod(); 60 o.childMethod(); -> 61 |o.method(); 62 } 63 64 function entryClassDefaultConstructor() { ACTION: step-over PAUSE AT entryClassBasic:63:2 59 o.baseMethod(); 60 o.childMethod(); 61 o.method(); -> 62 }| 63 64 function entryClassDefaultConstructor() { 65 debugger; ACTION: resume RESUMED PASS: Should have used all steps. -- Running test case: Debugger.stepping.ClassBasicStepIn EXPRESSION: setTimeout(entryClassBasic) STEPS: over, in, in, out, over, over, in, out, in, out, in, in, out, out, resume PAUSED (debugger-statement) PAUSE AT entryClassBasic:58:5 54 class Child2 extends Base {}; 55 56 function entryClassBasic() { -> 57 |debugger; 58 let o = new Child; 59 o.baseMethod(); 60 o.childMethod(); ACTION: step-over PAUSE AT entryClassBasic:59:5 55 56 function entryClassBasic() { 57 debugger; -> 58 |let o = new Child; 59 o.baseMethod(); 60 o.childMethod(); 61 o.method(); ACTION: step-in PAUSE AT Child:35:9 31 class Child extends Base { 32 constructor() 33 { -> 34 |super(); 35 this._child = true; 36 } 37 ACTION: step-in PAUSE AT Base:18:9 14 class Base { 15 constructor() 16 { -> 17 |this._base = true; 18 } 19 20 baseMethod() ACTION: step-out PAUSE AT Child:36:9 32 constructor() 33 { 34 super(); -> 35 |this._child = true; 36 } 37 38 childMethod() ACTION: step-over PAUSE AT Child:37:6 33 { 34 super(); 35 this._child = true; -> 36 }| 37 38 childMethod() 39 { ACTION: step-over PAUSE AT entryClassBasic:60:5 56 function entryClassBasic() { 57 debugger; 58 let o = new Child; -> 59 |o.baseMethod(); 60 o.childMethod(); 61 o.method(); 62 } ACTION: step-in PAUSE AT baseMethod:23:9 19 20 baseMethod() 21 { -> 22 |a(); 23 } 24 25 method() ACTION: step-out PAUSE AT entryClassBasic:61:5 57 debugger; 58 let o = new Child; 59 o.baseMethod(); -> 60 |o.childMethod(); 61 o.method(); 62 } 63 ACTION: step-in PAUSE AT childMethod:41:9 37 38 childMethod() 39 { -> 40 |b(); 41 } 42 43 method() ACTION: step-out PAUSE AT entryClassBasic:62:5 58 let o = new Child; 59 o.baseMethod(); 60 o.childMethod(); -> 61 |o.method(); 62 } 63 64 function entryClassDefaultConstructor() { ACTION: step-in PAUSE AT method:46:9 42 43 method() 44 { -> 45 |super.method(); 46 b(); 47 } 48 ACTION: step-in PAUSE AT method:28:9 24 25 method() 26 { -> 27 |a(); 28 } 29 } 30 ACTION: step-out PAUSE AT method:47:9 43 method() 44 { 45 super.method(); -> 46 |b(); 47 } 48 49 get name() { return this._name; } ACTION: step-out PAUSE AT entryClassBasic:63:2 59 o.baseMethod(); 60 o.childMethod(); 61 o.method(); -> 62 }| 63 64 function entryClassDefaultConstructor() { 65 debugger; ACTION: resume RESUMED PASS: Should have used all steps. -- Running test case: Debugger.stepping.ClassDefaultConstructor EXPRESSION: setTimeout(entryClassDefaultConstructor) STEPS: over, in, in, out, out, resume PAUSED (debugger-statement) PAUSE AT entryClassDefaultConstructor:66:5 62 } 63 64 function entryClassDefaultConstructor() { -> 65 |debugger; 66 let o = new Child2; 67 } 68 ACTION: step-over PAUSE AT entryClassDefaultConstructor:67:5 63 64 function entryClassDefaultConstructor() { 65 debugger; -> 66 |let o = new Child2; 67 } 68 69 function entryClassGetterSetter() { ACTION: step-in PAUSE AT Child2:1:23 --- Source Unavailable --- ACTION: step-in PAUSE AT Base:18:9 14 class Base { 15 constructor() 16 { -> 17 |this._base = true; 18 } 19 20 baseMethod() ACTION: step-out PAUSE AT Child2:1:40 --- Source Unavailable --- ACTION: step-out PAUSE AT entryClassDefaultConstructor:68:2 64 function entryClassDefaultConstructor() { 65 debugger; 66 let o = new Child2; -> 67 }| 68 69 function entryClassGetterSetter() { 70 let o = new Child; ACTION: resume RESUMED PASS: Should have used all steps. -- Running test case: Debugger.stepping.ClassGetterSetter EXPRESSION: setTimeout(entryClassGetterSetter) STEPS: over, in, out, in, out, resume PAUSED (debugger-statement) PAUSE AT entryClassGetterSetter:72:5 68 69 function entryClassGetterSetter() { 70 let o = new Child; -> 71 |debugger; 72 var name = o.name; 73 o.name = "Name"; 74 } ACTION: step-over PAUSE AT entryClassGetterSetter:73:5 69 function entryClassGetterSetter() { 70 let o = new Child; 71 debugger; -> 72 |var name = o.name; 73 o.name = "Name"; 74 } 75 ACTION: step-in PAUSE AT name:50:18 46 b(); 47 } 48 -> 49 get name() { |return this._name; } 50 set name(x) { this._name = x; } 51 52 } ACTION: step-out PAUSE AT entryClassGetterSetter:74:5 70 let o = new Child; 71 debugger; 72 var name = o.name; -> 73 |o.name = "Name"; 74 } 75 76 // --------- ACTION: step-in PAUSE AT name:51:19 47 } 48 49 get name() { return this._name; } -> 50 set name(x) { |this._name = x; } 51 52 } 53 ACTION: step-out PAUSE AT entryClassGetterSetter:75:2 71 debugger; 72 var name = o.name; 73 o.name = "Name"; -> 74 }| 75 76 // --------- 77 ACTION: resume RESUMED PASS: Should have used all steps.