Chromium Code Reviews| OLD | NEW |
|---|---|
| (Empty) | |
| 1 Checks possible break locations. | |
| 2 | |
| 3 Running test: testEval | |
| 4 break at: | |
| 5 function testEval() { | |
| 6 #eval('// comment only'); | |
| 7 eval('// comment only\n'); | |
| 8 | |
| 9 break at: | |
| 10 // comment onl#y | |
|
kozy
2017/02/26 08:30:17
issue - will fix it in followup.
| |
| 11 | |
| 12 break at: | |
| 13 eval('// comment only'); | |
| 14 #eval('// comment only\n'); | |
| 15 } | |
| 16 | |
| 17 break at: | |
| 18 // comment only# | |
| 19 | |
| 20 | |
| 21 break at: | |
| 22 eval('// comment only\n'); | |
| 23 #} | |
| 24 | |
| 25 | |
| 26 | |
| 27 Running test: testProcedure | |
| 28 break at: | |
| 29 function testProcedure() { | |
| 30 #procedure(); | |
| 31 } | |
| 32 | |
| 33 break at: | |
| 34 function procedure() { | |
| 35 var a = #1; | |
| 36 var b = 2; | |
| 37 | |
| 38 break at: | |
| 39 var a = 1; | |
| 40 var b = #2; | |
| 41 } | |
| 42 | |
| 43 break at: | |
| 44 var b = 2; | |
| 45 #} | |
| 46 | |
| 47 | |
| 48 break at: | |
| 49 procedure(); | |
| 50 #} | |
| 51 | |
| 52 | |
| 53 | |
| 54 Running test: testIf | |
| 55 break at: | |
| 56 var a; | |
| 57 #if (true) a = true; | |
| 58 if (!a) { | |
| 59 | |
| 60 break at: | |
| 61 var a; | |
| 62 if (true) #a = true; | |
| 63 if (!a) { | |
| 64 | |
| 65 break at: | |
| 66 if (true) a = true; | |
| 67 #if (!a) { | |
| 68 a = true; | |
| 69 | |
| 70 break at: | |
| 71 } else { | |
| 72 #a = false; | |
| 73 } | |
| 74 | |
| 75 break at: | |
| 76 } | |
| 77 #if (returnTrue()) { | |
| 78 a = false; | |
| 79 | |
| 80 break at: | |
| 81 function returnTrue() { | |
| 82 #return true; | |
| 83 } | |
| 84 | |
| 85 break at: | |
| 86 return true; | |
| 87 #} | |
| 88 | |
| 89 | |
| 90 break at: | |
| 91 if (returnTrue()) { | |
| 92 #a = false; | |
| 93 } else { | |
| 94 | |
| 95 break at: | |
| 96 } | |
| 97 #} | |
| 98 | |
| 99 | |
| 100 | |
| 101 Running test: testEmptyFunction | |
| 102 break at: | |
| 103 function testEmptyFunction() { | |
| 104 #emptyFunction(); | |
| 105 } | |
| 106 | |
| 107 break at: | |
| 108 | |
| 109 function emptyFunction() {#} | |
| 110 | |
| 111 | |
| 112 break at: | |
| 113 emptyFunction(); | |
| 114 #} | |
| 115 | |
| 116 | |
| 117 | |
| 118 Running test: testCallArguments | |
| 119 break at: | |
| 120 function testCallArguments() { | |
| 121 #twoArguments(emptyFunction(), emptyFunction()); | |
| 122 } | |
| 123 | |
| 124 break at: | |
| 125 | |
| 126 function emptyFunction() {#} | |
| 127 | |
| 128 | |
| 129 break at: | |
| 130 function testCallArguments() { | |
| 131 twoArguments(emptyFunction(), #emptyFunction()); | |
| 132 } | |
| 133 | |
| 134 break at: | |
| 135 | |
| 136 function emptyFunction() {#} | |
| 137 | |
| 138 | |
| 139 break at: | |
| 140 function testCallArguments() { | |
| 141 #twoArguments(emptyFunction(), emptyFunction()); | |
| 142 } | |
| 143 | |
| 144 break at: | |
| 145 function twoArguments(a1, a2) { | |
| 146 #} | |
| 147 | |
| 148 | |
| 149 break at: | |
| 150 twoArguments(emptyFunction(), emptyFunction()); | |
| 151 #} | |
| 152 | |
| 153 | |
| 154 | |
| 155 Running test: testNested | |
| 156 break at: | |
| 157 } | |
| 158 #nested1(); | |
| 159 } | |
| 160 | |
| 161 break at: | |
| 162 } | |
| 163 #return nested2(); | |
| 164 } | |
| 165 | |
| 166 break at: | |
| 167 } | |
| 168 #nested3(); | |
| 169 return; | |
| 170 | |
| 171 break at: | |
| 172 function nested3() { | |
| 173 #} | |
| 174 nested3(); | |
| 175 | |
| 176 break at: | |
| 177 nested3(); | |
| 178 #return; | |
| 179 } | |
| 180 | |
| 181 break at: | |
| 182 return; | |
| 183 #} | |
| 184 return nested2(); | |
| 185 | |
| 186 break at: | |
| 187 return nested2(); | |
| 188 #} | |
| 189 nested1(); | |
| 190 | |
| 191 break at: | |
| 192 nested1(); | |
| 193 #} | |
| 194 | |
| 195 | |
| 196 | |
| 197 Running test: testCallAtReturn | |
| 198 break at: | |
| 199 function testCallAtReturn() { | |
| 200 #return returnCall(); | |
| 201 } | |
| 202 | |
| 203 break at: | |
| 204 function returnCall() { | |
| 205 #return return42(); | |
| 206 } | |
| 207 | |
| 208 break at: | |
| 209 function return42() { | |
| 210 #return 42; | |
| 211 } | |
| 212 | |
| 213 break at: | |
| 214 return 42; | |
| 215 #} | |
| 216 | |
| 217 | |
| 218 break at: | |
| 219 return return42(); | |
| 220 #} | |
| 221 | |
| 222 | |
| 223 break at: | |
| 224 return returnCall(); | |
| 225 #} | |
| 226 | |
| 227 | |
| 228 | |
| 229 Running test: testWith | |
| 230 break at: | |
| 231 function testWith() { | |
| 232 #with (returnObject()) { | |
| 233 foo(); | |
| 234 | |
| 235 break at: | |
| 236 function returnObject() { | |
| 237 #return ({ foo: () => 42 }); | |
| 238 } | |
| 239 | |
| 240 break at: | |
| 241 return ({ foo: () => 42 }); | |
| 242 #} | |
| 243 | |
| 244 | |
| 245 break at: | |
| 246 with (returnObject()) { | |
| 247 #foo(); | |
| 248 } | |
| 249 | |
| 250 break at: | |
| 251 function returnObject() { | |
| 252 return ({ foo: () => #42 }); | |
| 253 } | |
| 254 | |
| 255 break at: | |
| 256 function returnObject() { | |
| 257 return ({ foo: () => 42# }); | |
| 258 } | |
| 259 | |
| 260 break at: | |
| 261 } | |
| 262 #with({}) { | |
| 263 return; | |
| 264 | |
| 265 break at: | |
| 266 with({}) { | |
| 267 #return; | |
| 268 } | |
| 269 | |
| 270 break at: | |
| 271 } | |
| 272 #} | |
| 273 | |
| 274 | |
| 275 | |
| 276 Running test: testForLoop | |
| 277 break at: | |
| 278 function testForLoop() { | |
| 279 for (var i = #0; i < 1; ++i) {} | |
| 280 for (var i = 0; i < 1; ++i) i; | |
| 281 | |
| 282 break at: | |
| 283 function testForLoop() { | |
| 284 for (var i = 0; i #< 1; ++i) {} | |
| 285 for (var i = 0; i < 1; ++i) i; | |
| 286 | |
| 287 break at: | |
| 288 function testForLoop() { | |
| 289 for (var i = 0; i < 1; ++#i) {} | |
| 290 for (var i = 0; i < 1; ++i) i; | |
| 291 | |
| 292 break at: | |
| 293 function testForLoop() { | |
| 294 for (var i = 0; i #< 1; ++i) {} | |
| 295 for (var i = 0; i < 1; ++i) i; | |
| 296 | |
| 297 break at: | |
| 298 for (var i = 0; i < 1; ++i) {} | |
| 299 for (var i = #0; i < 1; ++i) i; | |
| 300 for (var i = 0; i < 0; ++i) {} | |
| 301 | |
| 302 break at: | |
| 303 for (var i = 0; i < 1; ++i) {} | |
| 304 for (var i = 0; i #< 1; ++i) i; | |
| 305 for (var i = 0; i < 0; ++i) {} | |
| 306 | |
| 307 break at: | |
| 308 for (var i = 0; i < 1; ++i) {} | |
| 309 for (var i = 0; i < 1; ++i) #i; | |
| 310 for (var i = 0; i < 0; ++i) {} | |
| 311 | |
| 312 break at: | |
| 313 for (var i = 0; i < 1; ++i) {} | |
| 314 for (var i = 0; i < 1; ++#i) i; | |
| 315 for (var i = 0; i < 0; ++i) {} | |
| 316 | |
| 317 break at: | |
| 318 for (var i = 0; i < 1; ++i) {} | |
| 319 for (var i = 0; i #< 1; ++i) i; | |
| 320 for (var i = 0; i < 0; ++i) {} | |
| 321 | |
| 322 break at: | |
| 323 for (var i = 0; i < 1; ++i) i; | |
| 324 for (var i = #0; i < 0; ++i) {} | |
| 325 } | |
| 326 | |
| 327 break at: | |
| 328 for (var i = 0; i < 1; ++i) i; | |
| 329 for (var i = 0; i #< 0; ++i) {} | |
| 330 } | |
| 331 | |
| 332 break at: | |
| 333 for (var i = 0; i < 0; ++i) {} | |
| 334 #} | |
| 335 | |
| 336 | |
| 337 | |
| 338 Running test: testForOfLoop | |
| 339 break at: | |
| 340 function testForOfLoop() { | |
| 341 for (var k of #[]) {} | |
| 342 for (var k of [1]) k; | |
| 343 | |
| 344 break at: | |
| 345 function testForOfLoop() { | |
| 346 for (var k #of []) {} | |
| 347 for (var k of [1]) k; | |
| 348 | |
| 349 break at: | |
| 350 for (var k of []) {} | |
| 351 for (var k of #[1]) k; | |
| 352 var a = []; | |
| 353 | |
| 354 break at: | |
| 355 for (var k of []) {} | |
| 356 for (var k #of [1]) k; | |
| 357 var a = []; | |
| 358 | |
| 359 break at: | |
| 360 for (var k of []) {} | |
| 361 for (var k of [1]) #k; | |
| 362 var a = []; | |
| 363 | |
| 364 break at: | |
| 365 for (var k of []) {} | |
| 366 for (var k #of [1]) k; | |
| 367 var a = []; | |
| 368 | |
| 369 break at: | |
| 370 for (var k of [1]) k; | |
| 371 var a = #[]; | |
| 372 for (var k of a) {} | |
| 373 | |
| 374 break at: | |
| 375 var a = []; | |
| 376 for (var k of #a) {} | |
| 377 } | |
| 378 | |
| 379 break at: | |
| 380 var a = []; | |
| 381 for (var k #of a) {} | |
| 382 } | |
| 383 | |
| 384 break at: | |
| 385 for (var k of a) {} | |
| 386 #} | |
| 387 | |
| 388 | |
| 389 | |
| 390 Running test: testForInLoop | |
| 391 break at: | |
| 392 function testForInLoop() { | |
| 393 var o = #{}; | |
| 394 for (var k in o) {} | |
| 395 | |
| 396 break at: | |
| 397 var o = {}; | |
| 398 for (var k in #o) {} | |
| 399 for (var k in o) k; | |
| 400 | |
| 401 break at: | |
| 402 for (var k in o) {} | |
| 403 for (var k in #o) k; | |
| 404 for (var k in { a:1 }) {} | |
| 405 | |
| 406 break at: | |
| 407 for (var k in o) k; | |
| 408 for (var k in #{ a:1 }) {} | |
| 409 for (var k in { a:1 }) k; | |
| 410 | |
| 411 break at: | |
| 412 for (var k in o) k; | |
| 413 for (var #k in { a:1 }) {} | |
| 414 for (var k in { a:1 }) k; | |
| 415 | |
| 416 break at: | |
| 417 for (var k in { a:1 }) {} | |
| 418 for (var k in #{ a:1 }) k; | |
| 419 } | |
| 420 | |
| 421 break at: | |
| 422 for (var k in { a:1 }) {} | |
| 423 for (var #k in { a:1 }) k; | |
| 424 } | |
| 425 | |
| 426 break at: | |
| 427 for (var k in { a:1 }) {} | |
| 428 for (var k in { a:1 }) #k; | |
| 429 } | |
| 430 | |
| 431 break at: | |
| 432 for (var k in { a:1 }) {} | |
| 433 for (var #k in { a:1 }) k; | |
| 434 } | |
| 435 | |
| 436 break at: | |
| 437 for (var k in { a:1 }) k; | |
| 438 #} | |
| 439 | |
| 440 | |
| 441 | |
| 442 Running test: testSimpleExpressions | |
| 443 break at: | |
| 444 function testSimpleExpressions() { | |
| 445 #1 + 2 + 3; | |
| 446 var a = 1; | |
| 447 | |
| 448 break at: | |
| 449 1 + 2 + 3; | |
| 450 var a = #1; | |
| 451 ++a; | |
| 452 | |
| 453 break at: | |
| 454 var a = 1; | |
| 455 #++a; | |
| 456 a--; | |
| 457 | |
| 458 break at: | |
| 459 ++a; | |
| 460 #a--; | |
| 461 } | |
| 462 | |
| 463 break at: | |
| 464 a--; | |
| 465 #} | |
| 466 | |
| 467 | |
| 468 | |
| 469 Running test: testGetter | |
| 470 break at: | |
| 471 function testGetter() { | |
| 472 #getterFoo(); | |
| 473 } | |
| 474 | |
| 475 break at: | |
| 476 Object.defineProperty(this, 'getterFoo', { | |
| 477 get: () => #return42 | |
| 478 }); | |
| 479 | |
| 480 break at: | |
| 481 Object.defineProperty(this, 'getterFoo', { | |
| 482 get: () => return42# | |
| 483 }); | |
| 484 | |
| 485 break at: | |
| 486 function testGetter() { | |
| 487 #getterFoo(); | |
| 488 } | |
| 489 | |
| 490 break at: | |
| 491 function return42() { | |
| 492 #return 42; | |
| 493 } | |
| 494 | |
| 495 break at: | |
| 496 return 42; | |
| 497 #} | |
| 498 | |
| 499 | |
| 500 break at: | |
| 501 getterFoo(); | |
| 502 #} | |
| 503 | |
| 504 | |
| 505 | |
| 506 Running test: testChainedCalls | |
| 507 break at: | |
| 508 function testChainedCalls() { | |
| 509 #obj.foo().boo()(); | |
| 510 } | |
| 511 | |
| 512 break at: | |
| 513 var obj = { | |
| 514 foo: () => (#{ | |
| 515 boo: () => return42 | |
| 516 | |
| 517 break at: | |
| 518 boo: () => return42 | |
| 519 })# | |
| 520 }; | |
| 521 | |
| 522 break at: | |
| 523 function testChainedCalls() { | |
| 524 obj.foo().#boo()(); | |
| 525 } | |
| 526 | |
| 527 break at: | |
| 528 foo: () => ({ | |
| 529 boo: () => #return42 | |
| 530 }) | |
| 531 | |
| 532 break at: | |
| 533 foo: () => ({ | |
| 534 boo: () => return42# | |
| 535 }) | |
| 536 | |
| 537 break at: | |
| 538 function testChainedCalls() { | |
| 539 obj.foo().boo()#(); | |
| 540 } | |
| 541 | |
| 542 break at: | |
| 543 function return42() { | |
| 544 #return 42; | |
| 545 } | |
| 546 | |
| 547 break at: | |
| 548 return 42; | |
| 549 #} | |
| 550 | |
| 551 | |
| 552 break at: | |
| 553 obj.foo().boo()(); | |
| 554 #} | |
| 555 | |
| 556 | |
| 557 | |
| 558 Running test: testChainedWithNative | |
| 559 break at: | |
| 560 function testChainedWithNative() { | |
| 561 #Array.from([1]).concat([2]).map(v => v * 2); | |
| 562 } | |
| 563 | |
| 564 break at: | |
| 565 function testChainedWithNative() { | |
| 566 Array.from([1]).concat([2]).map(v => v #* 2); | |
| 567 } | |
| 568 | |
| 569 break at: | |
| 570 function testChainedWithNative() { | |
| 571 Array.from([1]).concat([2]).map(v => v * 2#); | |
| 572 } | |
| 573 | |
| 574 break at: | |
| 575 function testChainedWithNative() { | |
| 576 Array.from([1]).concat([2]).map(v => v #* 2); | |
| 577 } | |
| 578 | |
| 579 break at: | |
| 580 function testChainedWithNative() { | |
| 581 Array.from([1]).concat([2]).map(v => v * 2#); | |
| 582 } | |
| 583 | |
| 584 break at: | |
| 585 Array.from([1]).concat([2]).map(v => v * 2); | |
| 586 #} | |
| 587 | |
| 588 | |
| 589 | |
| 590 Running test: testPromiseThen | |
| 591 break at: | |
| 592 function testPromiseThen() { | |
| 593 #return Promise.resolve().then(v => v * 2).then(v => v * 2); | |
| 594 } | |
| 595 | |
| 596 break at: | |
| 597 return Promise.resolve().then(v => v * 2).then(v => v * 2); | |
| 598 #} | |
| 599 | |
| 600 | |
| 601 | |
| 602 Running test: testSwitch | |
| 603 break at: | |
| 604 function testSwitch() { | |
| 605 for (var i = #0; i < 3; ++i) { | |
| 606 switch(i) { | |
| 607 | |
| 608 break at: | |
| 609 function testSwitch() { | |
| 610 for (var i = 0; i #< 3; ++i) { | |
| 611 switch(i) { | |
| 612 | |
| 613 break at: | |
| 614 for (var i = 0; i < 3; ++i) { | |
| 615 #switch(i) { | |
| 616 case 0: continue; | |
| 617 | |
| 618 break at: | |
| 619 switch(i) { | |
| 620 case 0: #continue; | |
| 621 case 1: return42(); break; | |
| 622 | |
| 623 break at: | |
| 624 function testSwitch() { | |
| 625 for (var i = 0; i < 3; ++#i) { | |
| 626 switch(i) { | |
| 627 | |
| 628 break at: | |
| 629 function testSwitch() { | |
| 630 for (var i = 0; i #< 3; ++i) { | |
| 631 switch(i) { | |
| 632 | |
| 633 break at: | |
| 634 for (var i = 0; i < 3; ++i) { | |
| 635 #switch(i) { | |
| 636 case 0: continue; | |
| 637 | |
| 638 break at: | |
| 639 case 0: continue; | |
| 640 case 1: #return42(); break; | |
| 641 default: return; | |
| 642 | |
| 643 break at: | |
| 644 function return42() { | |
| 645 #return 42; | |
| 646 } | |
| 647 | |
| 648 break at: | |
| 649 return 42; | |
| 650 #} | |
| 651 | |
| 652 | |
| 653 break at: | |
| 654 case 0: continue; | |
| 655 case 1: return42(); #break; | |
| 656 default: return; | |
| 657 | |
| 658 break at: | |
| 659 function testSwitch() { | |
| 660 for (var i = 0; i < 3; ++#i) { | |
| 661 switch(i) { | |
| 662 | |
| 663 break at: | |
| 664 function testSwitch() { | |
| 665 for (var i = 0; i #< 3; ++i) { | |
| 666 switch(i) { | |
| 667 | |
| 668 break at: | |
| 669 for (var i = 0; i < 3; ++i) { | |
| 670 #switch(i) { | |
| 671 case 0: continue; | |
| 672 | |
| 673 break at: | |
| 674 case 1: return42(); break; | |
| 675 default: #return; | |
| 676 } | |
| 677 | |
| 678 break at: | |
| 679 } | |
| 680 #} | |
| 681 | |
| 682 | |
| 683 | |
| 684 Running test: testGenerator | |
| 685 break at: | |
| 686 function testGenerator() { | |
| 687 var gen = #idMaker(); | |
| 688 return42(); | |
| 689 | |
| 690 break at: | |
| 691 function* idMaker() { | |
| 692 #yield 1; | |
| 693 yield 2; | |
| 694 | |
| 695 break at: | |
| 696 gen.next().value; | |
| 697 #debugger; | |
| 698 gen.next().value; | |
| 699 | |
| 700 break at: | |
| 701 debugger; | |
| 702 #gen.next().value; | |
| 703 return42(); | |
| 704 | |
| 705 break at: | |
| 706 yield 1; | |
| 707 #yield 2; | |
| 708 yield 3; | |
| 709 | |
| 710 break at: | |
| 711 yield 2; | |
| 712 #yield 3; | |
|
kozy
2017/02/26 08:30:17
this behavior is issue. I'll fix it in follow up.
| |
| 713 } | |
| 714 | |
| 715 break at: | |
| 716 yield 3; | |
| 717 #} | |
| 718 | |
| 719 | |
| 720 break at: | |
| 721 gen.next().value; | |
| 722 #} | |
| 723 | |
| 724 | |
| 725 | |
| 726 Running test: testCaughtException | |
| 727 break at: | |
| 728 try { | |
| 729 #throwException() | |
| 730 } catch (e) { | |
| 731 | |
| 732 break at: | |
| 733 function throwException() { | |
| 734 #throw new Error(); | |
| 735 } | |
| 736 | |
| 737 break at: | |
| 738 } catch (e) { | |
| 739 #return; | |
| 740 } | |
| 741 | |
| 742 break at: | |
| 743 } | |
| 744 #} | |
| 745 | |
| 746 | |
| 747 | |
| 748 Running test: testClasses | |
| 749 break at: | |
| 750 function testClasses() { | |
| 751 #class Cat { | |
| 752 constructor(name) { | |
| 753 | |
| 754 break at: | |
| 755 } | |
| 756 #class Lion extends Cat { | |
| 757 constructor(name) { | |
| 758 | |
| 759 break at: | |
| 760 } | |
| 761 #new Lion().speak(); | |
| 762 } | |
| 763 | |
| 764 break at: | |
| 765 constructor(name) { | |
| 766 #super(name); | |
| 767 } | |
| 768 | |
| 769 break at: | |
| 770 constructor(name) { | |
| 771 #this.name = name; | |
| 772 } | |
| 773 | |
| 774 break at: | |
| 775 this.name = name; | |
| 776 #} | |
| 777 | |
| 778 | |
| 779 break at: | |
| 780 super(name); | |
| 781 #} | |
| 782 | |
| 783 | |
| 784 break at: | |
| 785 } | |
| 786 new Lion().#speak(); | |
| 787 } | |
| 788 | |
| 789 break at: | |
| 790 speak() { | |
| 791 #super.speak(); | |
| 792 } | |
| 793 | |
| 794 break at: | |
| 795 speak() { | |
| 796 #} | |
| 797 } | |
| 798 | |
| 799 break at: | |
| 800 super.speak(); | |
| 801 #} | |
| 802 } | |
| 803 | |
| 804 break at: | |
| 805 new Lion().speak(); | |
| 806 #} | |
| 807 | |
| 808 | |
| 809 | |
| 810 Running test: testAsyncAwait | |
| 811 break at: | |
| 812 async function testAsyncAwait() { | |
| 813 await #asyncFoo(); | |
| 814 await awaitBoo(); | |
| 815 | |
| 816 break at: | |
| 817 async function asyncFoo() { | |
| 818 await Promise.resolve().#then(v => v * 2); | |
| 819 return42(); | |
| 820 | |
| 821 break at: | |
| 822 async function asyncFoo() { | |
| 823 await Promise.#resolve().then(v => v * 2); | |
| 824 return42(); | |
| 825 | |
| 826 break at: | |
| 827 async function asyncFoo() { | |
| 828 await Promise.resolve().#then(v => v * 2); | |
| 829 return42(); | |
| 830 | |
| 831 break at: | |
| 832 async function asyncFoo() { | |
| 833 #await Promise.resolve().then(v => v * 2); | |
| 834 return42(); | |
| 835 | |
| 836 break at: | |
| 837 function return42() { | |
| 838 #return 42; | |
| 839 } | |
| 840 | |
| 841 break at: | |
| 842 return 42; | |
| 843 #} | |
| 844 | |
| 845 | |
| 846 break at: | |
| 847 async function asyncBoo() { | |
| 848 await Promise.#resolve(); | |
| 849 | |
| 850 | |
| 851 break at: | |
| 852 async function asyncBoo() { | |
| 853 #await Promise.resolve(); | |
| 854 | |
| 855 | |
| OLD | NEW |