Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(1)

Side by Side Diff: test/debugger/debug/debug-scopes-suspended-generators.js

Issue 2654423004: [async-functions] support await expressions in finally statements (Closed)
Patch Set: I'd like to build with -Wunused-variables locally, but how!? Created 3 years, 10 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
OLDNEW
1 // Copyright 2016 the V8 project authors. All rights reserved. 1 // Copyright 2016 the V8 project authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be 2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file. 3 // found in the LICENSE file.
4 4
5 // Flags: --ignition 5 // Flags: --ignition
6 // The functions used for testing backtraces. They are at the top to make the 6 // The functions used for testing backtraces. They are at the top to make the
7 // testing of source line/column easier. 7 // testing of source line/column easier.
8 8
9 var Debug = debug.Debug; 9 var Debug = debug.Debug;
10 10
(...skipping 89 matching lines...) Expand 10 before | Expand all | Expand 10 after
100 } 100 }
101 101
102 // Simple empty closure scope. 102 // Simple empty closure scope.
103 103
104 function *gen1() { 104 function *gen1() {
105 yield 1; 105 yield 1;
106 return 2; 106 return 2;
107 } 107 }
108 108
109 var g = gen1(); 109 var g = gen1();
110 CheckScopeChain([debug.ScopeType.Closure, 110 CheckScopeChain([debug.ScopeType.Script,
111 debug.ScopeType.Script,
112 debug.ScopeType.Global], g); 111 debug.ScopeType.Global], g);
113 CheckScopeContent({}, 0, g);
114 112
115 // Closure scope with a parameter. 113 // Closure scope with a parameter.
116 114
117 function *gen2(a) { 115 function *gen2(a) {
118 yield a; 116 yield a;
119 return 2; 117 return 2;
120 } 118 }
121 119
122 g = gen2(42); 120 g = gen2(42);
123 CheckScopeChain([debug.ScopeType.Closure, 121 CheckScopeChain([debug.ScopeType.Closure,
(...skipping 59 matching lines...) Expand 10 before | Expand all | Expand 10 after
183 with({}) { 181 with({}) {
184 yield 1; 182 yield 1;
185 } 183 }
186 yield 2; 184 yield 2;
187 return 3; 185 return 3;
188 } 186 }
189 187
190 g = gen6(); 188 g = gen6();
191 g.next(); 189 g.next();
192 CheckScopeChain([debug.ScopeType.With, 190 CheckScopeChain([debug.ScopeType.With,
193 debug.ScopeType.Closure,
194 debug.ScopeType.Script,
195 debug.ScopeType.Global], g);
196 CheckScopeContent({}, 0, g);
197
198 g.next();
199 CheckScopeChain([debug.ScopeType.Closure,
200 debug.ScopeType.Script, 191 debug.ScopeType.Script,
201 debug.ScopeType.Global], g); 192 debug.ScopeType.Global], g);
202 193
194 g.next();
195 CheckScopeChain([debug.ScopeType.Script,
196 debug.ScopeType.Global], g);
197
203 // Nested empty with blocks. 198 // Nested empty with blocks.
204 199
205 function *gen7() { 200 function *gen7() {
206 with({}) { 201 with({}) {
207 with({}) { 202 with({}) {
208 yield 1; 203 yield 1;
209 } 204 }
210 yield 2; 205 yield 2;
211 } 206 }
212 return 3; 207 return 3;
213 } 208 }
214 209
215 g = gen7(); 210 g = gen7();
216 g.next(); 211 g.next();
217 CheckScopeChain([debug.ScopeType.With, 212 CheckScopeChain([debug.ScopeType.With,
218 debug.ScopeType.With, 213 debug.ScopeType.With,
219 debug.ScopeType.Closure,
220 debug.ScopeType.Script, 214 debug.ScopeType.Script,
221 debug.ScopeType.Global], g); 215 debug.ScopeType.Global], g);
222 CheckScopeContent({}, 0, g); 216 CheckScopeContent({}, 0, g);
223 217
224 // Nested with blocks using in-place object literals. 218 // Nested with blocks using in-place object literals.
225 219
226 function *gen8() { 220 function *gen8() {
227 with({a: 1,b: 2}) { 221 with({a: 1,b: 2}) {
228 with({a: 2,b: 1}) { 222 with({a: 2,b: 1}) {
229 yield a; 223 yield a;
230 } 224 }
231 yield a; 225 yield a;
232 } 226 }
233 return 3; 227 return 3;
234 } 228 }
235 229
236 g = gen8(); 230 g = gen8();
237 g.next(); 231 g.next();
238 CheckScopeChain([debug.ScopeType.With, 232 CheckScopeChain([debug.ScopeType.With,
239 debug.ScopeType.With, 233 debug.ScopeType.With,
240 debug.ScopeType.Closure,
241 debug.ScopeType.Script, 234 debug.ScopeType.Script,
242 debug.ScopeType.Global], g); 235 debug.ScopeType.Global], g);
243 CheckScopeContent({a: 2, b: 1}, 0, g); 236 CheckScopeContent({a: 2, b: 1}, 0, g);
244 237
245 g.next(); 238 g.next();
246 CheckScopeContent({a: 1, b: 2}, 0, g); 239 CheckScopeContent({a: 1, b: 2}, 0, g);
247 240
248 // Catch block. 241 // Catch block.
249 242
250 function *gen9() { 243 function *gen9() {
251 try { 244 try {
252 throw 42; 245 throw 42;
253 } catch (e) { 246 } catch (e) {
254 yield e; 247 yield e;
255 } 248 }
256 return 3; 249 return 3;
257 } 250 }
258 251
259 g = gen9(); 252 g = gen9();
260 g.next(); 253 g.next();
261 CheckScopeChain([debug.ScopeType.Catch, 254 CheckScopeChain([debug.ScopeType.Catch,
262 debug.ScopeType.Closure,
263 debug.ScopeType.Script, 255 debug.ScopeType.Script,
264 debug.ScopeType.Global], g); 256 debug.ScopeType.Global], g);
265 CheckScopeContent({e: 42}, 0, g); 257 CheckScopeContent({e: 42}, 0, g);
266 258
267 // For statement with block scope. 259 // For statement with block scope.
268 260
269 function *gen10() { 261 function *gen10() {
270 for (let i = 0; i < 42; i++) yield i; 262 for (let i = 0; i < 42; i++) yield i;
271 return 3; 263 return 3;
272 } 264 }
(...skipping 37 matching lines...) Expand 10 before | Expand all | Expand 10 after
310 302
311 // Set a variable in an empty scope. 303 // Set a variable in an empty scope.
312 304
313 function *gen13() { 305 function *gen13() {
314 yield 1; 306 yield 1;
315 return 2; 307 return 2;
316 } 308 }
317 309
318 var g = gen13(); 310 var g = gen13();
319 assertThrows(() => Debug.generatorScope(g, 0).setVariableValue("a", 42)); 311 assertThrows(() => Debug.generatorScope(g, 0).setVariableValue("a", 42));
320 CheckScopeContent({}, 0, g);
321 312
322 // Set a variable in a simple scope. 313 // Set a variable in a simple scope.
323 314
324 function *gen14() { 315 function *gen14() {
325 var a = 0; 316 var a = 0;
326 yield 1; 317 yield 1;
327 yield a; 318 yield a;
328 return 2; 319 return 2;
329 } 320 }
330 321
(...skipping 96 matching lines...) Expand 10 before | Expand all | Expand 10 after
427 yield e; 418 yield e;
428 yield e; 419 yield e;
429 } 420 }
430 return 3; 421 return 3;
431 } 422 }
432 423
433 g = gen17(); 424 g = gen17();
434 g.next(); 425 g.next();
435 426
436 CheckScopeChain([debug.ScopeType.Catch, 427 CheckScopeChain([debug.ScopeType.Catch,
437 debug.ScopeType.Closure,
438 debug.ScopeType.Script, 428 debug.ScopeType.Script,
439 debug.ScopeType.Global], g); 429 debug.ScopeType.Global], g);
440 CheckScopeContent({e: 42}, 0, g); 430 CheckScopeContent({e: 42}, 0, g);
441 CheckScopeContent({xxxyyxxyx: 42284, 431 CheckScopeContent({xxxyyxxyx: 42284,
442 printProtocolMessages : printProtocolMessages, 432 printProtocolMessages : printProtocolMessages,
443 activeWrapper : activeWrapper, 433 activeWrapper : activeWrapper,
444 DebugWrapper : DebugWrapper 434 DebugWrapper : DebugWrapper
445 }, 2, g); 435 }, 1, g);
446 436
447 Debug.generatorScope(g, 0).setVariableValue("e", 1); 437 Debug.generatorScope(g, 0).setVariableValue("e", 1);
448 CheckScopeContent({e: 1}, 0, g); 438 CheckScopeContent({e: 1}, 0, g);
449 439
450 assertEquals(1, g.next().value); 440 assertEquals(1, g.next().value);
451 441
452 // Script scope. 442 // Script scope.
453 Debug.generatorScope(g, 2).setVariableValue("xxxyyxxyx", 42); 443 Debug.generatorScope(g, 1).setVariableValue("xxxyyxxyx", 42);
454 assertEquals(42, xxxyyxxyx); 444 assertEquals(42, xxxyyxxyx);
455 445
456 // Global scope. 446 // Global scope.
457 assertThrows(() => Debug.generatorScope(g, 3).setVariableValue("yyzyzzyz", 42)); 447 assertThrows(() => Debug.generatorScope(g, 2).setVariableValue("yyzyzzyz", 42));
458 assertEquals(4829, yyzyzzyz); 448 assertEquals(4829, yyzyzzyz);
OLDNEW
« no previous file with comments | « test/cctest/interpreter/bytecode_expectations/ThisFunction.golden ('k') | test/mjsunit/es8/async-function-try-finally.js » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698