blob: 5f04deee874b6377c4f27d79c697c6952c2294d2 [file] [log] [blame]
Checking pause locations when stepping in, out, and over if/else control flow.
== Running test suite: Debugger.stepping.control-flow
-- Running test case: Debugger.stepping.IfSingleStatement
EXPRESSION: setTimeout(entryIfSingleStatement)
STEPS: over, over, over, over, resume
PAUSED (debugger-statement)
PAUSE AT entryIfSingleStatement:16:5
12
13
14 function entryIfSingleStatement() {
-> 15 |debugger;
16 if (truthy)
17 a();
18 if (falsey)
ACTION: step-over
PAUSE AT entryIfSingleStatement:17:9
13
14 function entryIfSingleStatement() {
15 debugger;
-> 16 if (|truthy)
17 a();
18 if (falsey)
19 a();
ACTION: step-over
PAUSE AT entryIfSingleStatement:18:9
14 function entryIfSingleStatement() {
15 debugger;
16 if (truthy)
-> 17 |a();
18 if (falsey)
19 a();
20 }
ACTION: step-over
PAUSE AT entryIfSingleStatement:19:9
15 debugger;
16 if (truthy)
17 a();
-> 18 if (|falsey)
19 a();
20 }
21
ACTION: step-over
PAUSE AT entryIfSingleStatement:21:2
17 a();
18 if (falsey)
19 a();
-> 20 }|
21
22 function entryIfMultiStatement() {
23 debugger;
ACTION: resume
RESUMED
PASS: Should have used all steps.
-- Running test case: Debugger.stepping.IfMultiStatement
EXPRESSION: setTimeout(entryIfMultiStatement)
STEPS: over, over, over, over, over, resume
PAUSED (debugger-statement)
PAUSE AT entryIfMultiStatement:24:5
20 }
21
22 function entryIfMultiStatement() {
-> 23 |debugger;
24 if (truthy) {
25 a();
26 a();
ACTION: step-over
PAUSE AT entryIfMultiStatement:25:9
21
22 function entryIfMultiStatement() {
23 debugger;
-> 24 if (|truthy) {
25 a();
26 a();
27 }
ACTION: step-over
PAUSE AT entryIfMultiStatement:26:9
22 function entryIfMultiStatement() {
23 debugger;
24 if (truthy) {
-> 25 |a();
26 a();
27 }
28 if (falsey) {
ACTION: step-over
PAUSE AT entryIfMultiStatement:27:9
23 debugger;
24 if (truthy) {
25 a();
-> 26 |a();
27 }
28 if (falsey) {
29 a();
ACTION: step-over
PAUSE AT entryIfMultiStatement:29:9
25 a();
26 a();
27 }
-> 28 if (|falsey) {
29 a();
30 a();
31 }
ACTION: step-over
PAUSE AT entryIfMultiStatement:33:2
29 a();
30 a();
31 }
-> 32 }|
33
34 function entryIfElse() {
35 debugger;
ACTION: resume
RESUMED
PASS: Should have used all steps.
-- Running test case: Debugger.stepping.IfElse1
EXPRESSION: setTimeout(entryIfElse)
STEPS: over, over, over, over, over, resume
PAUSED (debugger-statement)
PAUSE AT entryIfElse:36:5
32 }
33
34 function entryIfElse() {
-> 35 |debugger;
36 if (truthy)
37 a();
38 else
ACTION: step-over
PAUSE AT entryIfElse:37:9
33
34 function entryIfElse() {
35 debugger;
-> 36 if (|truthy)
37 a();
38 else
39 a();
ACTION: step-over
PAUSE AT entryIfElse:38:9
34 function entryIfElse() {
35 debugger;
36 if (truthy)
-> 37 |a();
38 else
39 a();
40 if (falsey)
ACTION: step-over
PAUSE AT entryIfElse:41:9
37 a();
38 else
39 a();
-> 40 if (|falsey)
41 a();
42 else
43 a();
ACTION: step-over
PAUSE AT entryIfElse:44:9
40 if (falsey)
41 a();
42 else
-> 43 |a();
44 }
45
46 function entryIfElseChain() {
ACTION: step-over
PAUSE AT entryIfElse:45:2
41 a();
42 else
43 a();
-> 44 }|
45
46 function entryIfElseChain() {
47 debugger;
ACTION: resume
RESUMED
PASS: Should have used all steps.
-- Running test case: Debugger.stepping.IfElse2
EXPRESSION: setTimeout(entryIfElseChain)
STEPS: over, over, over, over, over, over, over, resume
PAUSED (debugger-statement)
PAUSE AT entryIfElseChain:48:5
44 }
45
46 function entryIfElseChain() {
-> 47 |debugger;
48 if (falsey)
49 a();
50 else if (truthy)
ACTION: step-over
PAUSE AT entryIfElseChain:49:9
45
46 function entryIfElseChain() {
47 debugger;
-> 48 if (|falsey)
49 a();
50 else if (truthy)
51 a();
ACTION: step-over
PAUSE AT entryIfElseChain:51:14
47 debugger;
48 if (falsey)
49 a();
-> 50 else if (|truthy)
51 a();
52 else
53 a();
ACTION: step-over
PAUSE AT entryIfElseChain:52:9
48 if (falsey)
49 a();
50 else if (truthy)
-> 51 |a();
52 else
53 a();
54
ACTION: step-over
PAUSE AT entryIfElseChain:56:9
52 else
53 a();
54
-> 55 if (|falsey)
56 a();
57 else if (falsey)
58 a();
ACTION: step-over
PAUSE AT entryIfElseChain:58:14
54
55 if (falsey)
56 a();
-> 57 else if (|falsey)
58 a();
59 else
60 a();
ACTION: step-over
PAUSE AT entryIfElseChain:61:9
57 else if (falsey)
58 a();
59 else
-> 60 |a();
61 }
62
63 function entryIfWithCall() {
ACTION: step-over
PAUSE AT entryIfElseChain:62:2
58 a();
59 else
60 a();
-> 61 }|
62
63 function entryIfWithCall() {
64 debugger;
ACTION: resume
RESUMED
PASS: Should have used all steps.
-- Running test case: Debugger.stepping.IfWithCall1
EXPRESSION: setTimeout(entryIfWithCall)
STEPS: over, over, over, resume
PAUSED (debugger-statement)
PAUSE AT entryIfWithCall:65:5
61 }
62
63 function entryIfWithCall() {
-> 64 |debugger;
65 if (a() && a())
66 a();
67 }
ACTION: step-over
PAUSE AT entryIfWithCall:66:9
62
63 function entryIfWithCall() {
64 debugger;
-> 65 if (|a() && a())
66 a();
67 }
68
ACTION: step-over
PAUSE AT entryIfWithCall:67:9
63 function entryIfWithCall() {
64 debugger;
65 if (a() && a())
-> 66 |a();
67 }
68
69 function entryTernary() {
ACTION: step-over
PAUSE AT entryIfWithCall:68:2
64 debugger;
65 if (a() && a())
66 a();
-> 67 }|
68
69 function entryTernary() {
70 let t = () => truthy;
ACTION: resume
RESUMED
PASS: Should have used all steps.
-- Running test case: Debugger.stepping.IfWithCall2
EXPRESSION: setTimeout(entryIfWithCall)
STEPS: over, in, out, in, out, over, resume
PAUSED (debugger-statement)
PAUSE AT entryIfWithCall:65:5
61 }
62
63 function entryIfWithCall() {
-> 64 |debugger;
65 if (a() && a())
66 a();
67 }
ACTION: step-over
PAUSE AT entryIfWithCall:66:9
62
63 function entryIfWithCall() {
64 debugger;
-> 65 if (|a() && a())
66 a();
67 }
68
ACTION: step-in
PAUSE AT a:11:16
7 var value = 1;
8 var truthy = true;
9 var falsey = false;
-> 10 function a() { |return value; }
11 function b() { return value; }
12
13
ACTION: step-out
PAUSE AT entryIfWithCall:66:16
62
63 function entryIfWithCall() {
64 debugger;
-> 65 if (a() && |a())
66 a();
67 }
68
ACTION: step-in
PAUSE AT a:11:16
7 var value = 1;
8 var truthy = true;
9 var falsey = false;
-> 10 function a() { |return value; }
11 function b() { return value; }
12
13
ACTION: step-out
PAUSE AT entryIfWithCall:67:9
63 function entryIfWithCall() {
64 debugger;
65 if (a() && a())
-> 66 |a();
67 }
68
69 function entryTernary() {
ACTION: step-over
PAUSE AT entryIfWithCall:68:2
64 debugger;
65 if (a() && a())
66 a();
-> 67 }|
68
69 function entryTernary() {
70 let t = () => truthy;
ACTION: resume
RESUMED
PASS: Should have used all steps.
-- Running test case: Debugger.stepping.TernaryStepOver
EXPRESSION: setTimeout(entryTernary)
STEPS: over, over, over, resume
PAUSED (debugger-statement)
PAUSE AT entryTernary:73:5
69 function entryTernary() {
70 let t = () => truthy;
71 let f = () => falsey;
-> 72 |debugger;
73 let x = t() ? a() : b();
74 let y = f() ? a() : b();
75 }
ACTION: step-over
PAUSE AT entryTernary:74:5
70 let t = () => truthy;
71 let f = () => falsey;
72 debugger;
-> 73 |let x = t() ? a() : b();
74 let y = f() ? a() : b();
75 }
76
ACTION: step-over
PAUSE AT entryTernary:75:5
71 let f = () => falsey;
72 debugger;
73 let x = t() ? a() : b();
-> 74 |let y = f() ? a() : b();
75 }
76
77 function entryIfConstantBranch() {
ACTION: step-over
PAUSE AT entryTernary:76:2
72 debugger;
73 let x = t() ? a() : b();
74 let y = f() ? a() : b();
-> 75 }|
76
77 function entryIfConstantBranch() {
78 debugger;
ACTION: resume
RESUMED
PASS: Should have used all steps.
-- Running test case: Debugger.stepping.TernaryStepIn
EXPRESSION: setTimeout(entryTernary)
STEPS: over, in, out, in, out, in, out, in, out, resume
PAUSED (debugger-statement)
PAUSE AT entryTernary:73:5
69 function entryTernary() {
70 let t = () => truthy;
71 let f = () => falsey;
-> 72 |debugger;
73 let x = t() ? a() : b();
74 let y = f() ? a() : b();
75 }
ACTION: step-over
PAUSE AT entryTernary:74:5
70 let t = () => truthy;
71 let f = () => falsey;
72 debugger;
-> 73 |let x = t() ? a() : b();
74 let y = f() ? a() : b();
75 }
76
ACTION: step-in
PAUSE AT t:71:19
67 }
68
69 function entryTernary() {
-> 70 let t = () => |truthy;
71 let f = () => falsey;
72 debugger;
73 let x = t() ? a() : b();
ACTION: step-out
PAUSE AT entryTernary:74:19
70 let t = () => truthy;
71 let f = () => falsey;
72 debugger;
-> 73 let x = t() ? |a() : b();
74 let y = f() ? a() : b();
75 }
76
ACTION: step-in
PAUSE AT a:11:16
7 var value = 1;
8 var truthy = true;
9 var falsey = false;
-> 10 function a() { |return value; }
11 function b() { return value; }
12
13
ACTION: step-out
PAUSE AT entryTernary:75:5
71 let f = () => falsey;
72 debugger;
73 let x = t() ? a() : b();
-> 74 |let y = f() ? a() : b();
75 }
76
77 function entryIfConstantBranch() {
ACTION: step-in
PAUSE AT f:72:19
68
69 function entryTernary() {
70 let t = () => truthy;
-> 71 let f = () => |falsey;
72 debugger;
73 let x = t() ? a() : b();
74 let y = f() ? a() : b();
ACTION: step-out
PAUSE AT entryTernary:75:25
71 let f = () => falsey;
72 debugger;
73 let x = t() ? a() : b();
-> 74 let y = f() ? a() : |b();
75 }
76
77 function entryIfConstantBranch() {
ACTION: step-in
PAUSE AT b:12:16
8 var truthy = true;
9 var falsey = false;
10 function a() { return value; }
-> 11 function b() { |return value; }
12
13
14 function entryIfSingleStatement() {
ACTION: step-out
PAUSE AT entryTernary:76:2
72 debugger;
73 let x = t() ? a() : b();
74 let y = f() ? a() : b();
-> 75 }|
76
77 function entryIfConstantBranch() {
78 debugger;
ACTION: resume
RESUMED
PASS: Should have used all steps.
-- Running test case: Debugger.stepping.ConstantBranch
EXPRESSION: setTimeout(entryIfConstantBranch)
STEPS: over, over, over, over, over, over, resume
PAUSED (debugger-statement)
PAUSE AT entryIfConstantBranch:79:5
75 }
76
77 function entryIfConstantBranch() {
-> 78 |debugger;
79 if (true)
80 a();
81 if (false)
ACTION: step-over
PAUSE AT entryIfConstantBranch:80:9
76
77 function entryIfConstantBranch() {
78 debugger;
-> 79 if (|true)
80 a();
81 if (false)
82 a();
ACTION: step-over
PAUSE AT entryIfConstantBranch:81:9
77 function entryIfConstantBranch() {
78 debugger;
79 if (true)
-> 80 |a();
81 if (false)
82 a();
83 if (0)
ACTION: step-over
PAUSE AT entryIfConstantBranch:82:9
78 debugger;
79 if (true)
80 a();
-> 81 if (|false)
82 a();
83 if (0)
84 a();
ACTION: step-over
PAUSE AT entryIfConstantBranch:84:9
80 a();
81 if (false)
82 a();
-> 83 if (|0)
84 a();
85 if (null)
86 a();
ACTION: step-over
PAUSE AT entryIfConstantBranch:86:9
82 a();
83 if (0)
84 a();
-> 85 if (|null)
86 a();
87 }
88
ACTION: step-over
PAUSE AT entryIfConstantBranch:88:2
84 a();
85 if (null)
86 a();
-> 87 }|
88
89 function entryIfWithLogicalOperation() {
90 debugger;
ACTION: resume
RESUMED
PASS: Should have used all steps.
-- Running test case: Debugger.stepping.IfWithLogicalOperation
EXPRESSION: setTimeout(entryIfWithLogicalOperation)
STEPS: over, in, out, in, out, over, resume
PAUSED (debugger-statement)
PAUSE AT entryIfWithLogicalOperation:91:5
87 }
88
89 function entryIfWithLogicalOperation() {
-> 90 |debugger;
91 if (true && a() && a())
92 b();
93 }
ACTION: step-over
PAUSE AT entryIfWithLogicalOperation:92:9
88
89 function entryIfWithLogicalOperation() {
90 debugger;
-> 91 if (|true && a() && a())
92 b();
93 }
94
ACTION: step-in
PAUSE AT a:11:16
7 var value = 1;
8 var truthy = true;
9 var falsey = false;
-> 10 function a() { |return value; }
11 function b() { return value; }
12
13
ACTION: step-out
PAUSE AT entryIfWithLogicalOperation:92:24
88
89 function entryIfWithLogicalOperation() {
90 debugger;
-> 91 if (true && a() && |a())
92 b();
93 }
94
ACTION: step-in
PAUSE AT a:11:16
7 var value = 1;
8 var truthy = true;
9 var falsey = false;
-> 10 function a() { |return value; }
11 function b() { return value; }
12
13
ACTION: step-out
PAUSE AT entryIfWithLogicalOperation:93:9
89 function entryIfWithLogicalOperation() {
90 debugger;
91 if (true && a() && a())
-> 92 |b();
93 }
94
95 function entryIfWithBinaryOperation() {
ACTION: step-over
PAUSE AT entryIfWithLogicalOperation:94:2
90 debugger;
91 if (true && a() && a())
92 b();
-> 93 }|
94
95 function entryIfWithBinaryOperation() {
96 let i = a();
ACTION: resume
RESUMED
PASS: Should have used all steps.
-- Running test case: Debugger.stepping.IfWithBinaryOperation
EXPRESSION: setTimeout(entryIfWithBinaryOperation)
STEPS: over, in, over, resume
PAUSED (debugger-statement)
PAUSE AT entryIfWithBinaryOperation:98:5
94
95 function entryIfWithBinaryOperation() {
96 let i = a();
-> 97 |debugger;
98 if (i < 2)
99 b();
100 }
ACTION: step-over
PAUSE AT entryIfWithBinaryOperation:99:9
95 function entryIfWithBinaryOperation() {
96 let i = a();
97 debugger;
-> 98 if (|i < 2)
99 b();
100 }
101
ACTION: step-in
PAUSE AT entryIfWithBinaryOperation:100:9
96 let i = a();
97 debugger;
98 if (i < 2)
-> 99 |b();
100 }
101
102 function entryIfWithNotOperation() {
ACTION: step-over
PAUSE AT entryIfWithBinaryOperation:101:2
97 debugger;
98 if (i < 2)
99 b();
-> 100 }|
101
102 function entryIfWithNotOperation() {
103 debugger;
ACTION: resume
RESUMED
PASS: Should have used all steps.
-- Running test case: Debugger.stepping.IfWithNotOperation
EXPRESSION: setTimeout(entryIfWithNotOperation)
STEPS: over, in, over, in, over, resume
PAUSED (debugger-statement)
PAUSE AT entryIfWithNotOperation:104:5
100 }
101
102 function entryIfWithNotOperation() {
-> 103 |debugger;
104 if (!false)
105 a();
106 if (!!true)
ACTION: step-over
PAUSE AT entryIfWithNotOperation:105:9
101
102 function entryIfWithNotOperation() {
103 debugger;
-> 104 if (|!false)
105 a();
106 if (!!true)
107 a();
ACTION: step-in
PAUSE AT entryIfWithNotOperation:106:9
102 function entryIfWithNotOperation() {
103 debugger;
104 if (!false)
-> 105 |a();
106 if (!!true)
107 a();
108 }
ACTION: step-over
PAUSE AT entryIfWithNotOperation:107:9
103 debugger;
104 if (!false)
105 a();
-> 106 if (|!!true)
107 a();
108 }
109
ACTION: step-in
PAUSE AT entryIfWithNotOperation:108:9
104 if (!false)
105 a();
106 if (!!true)
-> 107 |a();
108 }
109
110 function entryIfWithCommas() {
ACTION: step-over
PAUSE AT entryIfWithNotOperation:109:2
105 a();
106 if (!!true)
107 a();
-> 108 }|
109
110 function entryIfWithCommas() {
111 debugger;
ACTION: resume
RESUMED
PASS: Should have used all steps.
-- Running test case: Debugger.stepping.IfWithCommas
EXPRESSION: setTimeout(entryIfWithCommas)
STEPS: over, next, next, next, over, resume
PAUSED (debugger-statement)
PAUSE AT entryIfWithCommas:112:5
108 }
109
110 function entryIfWithCommas() {
-> 111 |debugger;
112 if (a(), b(), a())
113 b();
114 }
ACTION: step-over
PAUSE AT entryIfWithCommas:113:9
109
110 function entryIfWithCommas() {
111 debugger;
-> 112 if (|a(), b(), a())
113 b();
114 }
115
ACTION: step-next
PAUSE AT entryIfWithCommas:113:14
109
110 function entryIfWithCommas() {
111 debugger;
-> 112 if (a(), |b(), a())
113 b();
114 }
115
ACTION: step-next
PAUSE AT entryIfWithCommas:113:19
109
110 function entryIfWithCommas() {
111 debugger;
-> 112 if (a(), b(), |a())
113 b();
114 }
115
ACTION: step-next
PAUSE AT entryIfWithCommas:114:9
110 function entryIfWithCommas() {
111 debugger;
112 if (a(), b(), a())
-> 113 |b();
114 }
115
116 function entryReturnWithCommas() {
ACTION: step-over
PAUSE AT entryIfWithCommas:115:2
111 debugger;
112 if (a(), b(), a())
113 b();
-> 114 }|
115
116 function entryReturnWithCommas() {
117 debugger;
ACTION: resume
RESUMED
PASS: Should have used all steps.
-- Running test case: Debugger.stepping.ReturnWithCommas
EXPRESSION: setTimeout(entryReturnWithCommas)
STEPS: over, next, next, next, over, resume
PAUSED (debugger-statement)
PAUSE AT entryReturnWithCommas:118:5
114 }
115
116 function entryReturnWithCommas() {
-> 117 |debugger;
118 return a(), b(), a();
119 }
120
ACTION: step-over
PAUSE AT entryReturnWithCommas:119:5
115
116 function entryReturnWithCommas() {
117 debugger;
-> 118 |return a(), b(), a();
119 }
120
121 function entryThrowWithCommas() {
ACTION: step-next
PAUSE AT entryReturnWithCommas:119:12
115
116 function entryReturnWithCommas() {
117 debugger;
-> 118 return |a(), b(), a();
119 }
120
121 function entryThrowWithCommas() {
ACTION: step-next
PAUSE AT entryReturnWithCommas:119:17
115
116 function entryReturnWithCommas() {
117 debugger;
-> 118 return a(), |b(), a();
119 }
120
121 function entryThrowWithCommas() {
ACTION: step-next
PAUSE AT entryReturnWithCommas:119:22
115
116 function entryReturnWithCommas() {
117 debugger;
-> 118 return a(), b(), |a();
119 }
120
121 function entryThrowWithCommas() {
ACTION: step-over
PAUSE AT entryReturnWithCommas:120:2
116 function entryReturnWithCommas() {
117 debugger;
118 return a(), b(), a();
-> 119 }|
120
121 function entryThrowWithCommas() {
122 debugger;
ACTION: resume
RESUMED
PASS: Should have used all steps.
-- Running test case: Debugger.stepping.ThrowWithCommas
EXPRESSION: setTimeout(entryThrowWithCommas)
STEPS: over, next, next, next, over, resume
PAUSED (debugger-statement)
PAUSE AT entryThrowWithCommas:123:5
119 }
120
121 function entryThrowWithCommas() {
-> 122 |debugger;
123 try {
124 throw a(), b(), a();
125 } catch { }
ACTION: step-over
PAUSE AT entryThrowWithCommas:125:9
121 function entryThrowWithCommas() {
122 debugger;
123 try {
-> 124 |throw a(), b(), a();
125 } catch { }
126 }
127
ACTION: step-next
PAUSE AT entryThrowWithCommas:125:15
121 function entryThrowWithCommas() {
122 debugger;
123 try {
-> 124 throw |a(), b(), a();
125 } catch { }
126 }
127
ACTION: step-next
PAUSE AT entryThrowWithCommas:125:20
121 function entryThrowWithCommas() {
122 debugger;
123 try {
-> 124 throw a(), |b(), a();
125 } catch { }
126 }
127
ACTION: step-next
PAUSE AT entryThrowWithCommas:125:25
121 function entryThrowWithCommas() {
122 debugger;
123 try {
-> 124 throw a(), b(), |a();
125 } catch { }
126 }
127
ACTION: step-over
PAUSE AT entryThrowWithCommas:127:2
123 try {
124 throw a(), b(), a();
125 } catch { }
-> 126 }|
127
128 // ---------
129
ACTION: resume
RESUMED
PASS: Should have used all steps.