| FazBrowse GitHub Viewer | Trending | | Home |
| Tools: [Download Repo ZIP] [Original HTTPS Page] |
1 parent 28dc54b commit 01e69f9
3 files changed
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
@@ -50,7 +50,7 @@ Andrew Paprocki <andrew@ishiboo.com> | |||
| 50 | 50 | Andrei Kashcha <anvaka@gmail.com> | |
| 51 | 51 | Anna Henningsen <anna@addaleax.net> | |
| 52 | 52 | Bangfu Tao <bangfu.tao@samsung.com> | |
| 53 | - Ben Coe <ben@npmjs.com> | ||
| 53 | + Ben Coe <bencoe@gmail.com> | ||
| 54 | 54 | Ben Newman <ben@meteor.com> | |
| 55 | 55 | Ben Noordhuis <info@bnoordhuis.nl> | |
| 56 | 56 | Benjamin Tan <demoneaux@gmail.com> | |
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
@@ -56,7 +56,18 @@ void SourceRangeAstVisitor::MaybeRemoveLastContinuationRange( | |||
| 56 | 56 | if (statements == nullptr || statements->is_empty()) return; | |
| 57 | 57 | ||
| 58 | 58 | Statement* last_statement = statements->last(); | |
| 59 | - AstNodeSourceRanges* last_range = source_range_map_->Find(last_statement); | ||
| 59 | + AstNodeSourceRanges* last_range = nullptr; | ||
| 60 | + | ||
| 61 | + if (last_statement->IsExpressionStatement() && | ||
| 62 | + last_statement->AsExpressionStatement()->expression()->IsThrow()) { | ||
| 63 | + // For ThrowStatement, source range is tied to Throw expression not | ||
| 64 | + // ExpressionStatement. | ||
| 65 | + last_range = source_range_map_->Find( | ||
| 66 | + last_statement->AsExpressionStatement()->expression()); | ||
| 67 | + } else { | ||
| 68 | + last_range = source_range_map_->Find(last_statement); | ||
| 69 | + } | ||
| 70 | + | ||
| 60 | 71 | if (last_range == nullptr) return; | |
| 61 | 72 | ||
| 62 | 73 | if (last_range->HasRange(SourceRangeKind::kContinuation)) { | |
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
@@ -353,11 +353,11 @@ TestCoverage( | |||
| 353 | 353 | [{"start":0,"end":849,"count":1}, | |
| 354 | 354 | {"start":1,"end":801,"count":1}, | |
| 355 | 355 | {"start":67,"end":87,"count":0}, | |
| 356 | - {"start":219,"end":222,"count":0}, | ||
| 356 | + {"start":221,"end":222,"count":0}, | ||
| 357 | 357 | {"start":254,"end":274,"count":0}, | |
| 358 | - {"start":369,"end":372,"count":0}, | ||
| 358 | + {"start":371,"end":372,"count":0}, | ||
| 359 | 359 | {"start":403,"end":404,"count":0}, | |
| 360 | - {"start":513,"end":554,"count":0}] | ||
| 360 | + {"start":553,"end":554,"count":0}] | ||
| 361 | 361 | ); | |
| 362 | 362 | ||
| 363 | 363 | TestCoverage("try/catch/finally statements with early return", | |
@@ -374,10 +374,10 @@ TestCoverage("try/catch/finally statements with early return", | |||
| 374 | 374 | `, | |
| 375 | 375 | [{"start":0,"end":449,"count":1}, | |
| 376 | 376 | {"start":1,"end":151,"count":1}, | |
| 377 | - {"start":67,"end":70,"count":0}, | ||
| 377 | + {"start":69,"end":70,"count":0}, | ||
| 378 | 378 | {"start":91,"end":150,"count":0}, | |
| 379 | 379 | {"start":201,"end":401,"count":1}, | |
| 380 | - {"start":267,"end":270,"count":0}, | ||
| 380 | + {"start":269,"end":270,"count":0}, | ||
| 381 | 381 | {"start":321,"end":400,"count":0}] | |
| 382 | 382 | ); | |
| 383 | 383 | ||
@@ -409,15 +409,15 @@ TestCoverage( | |||
| 409 | 409 | `, | |
| 410 | 410 | [{"start":0,"end":1099,"count":1}, | |
| 411 | 411 | {"start":1,"end":151,"count":1}, | |
| 412 | - {"start":67,"end":70,"count":0}, | ||
| 412 | + {"start":69,"end":70,"count":0}, | ||
| 413 | 413 | {"start":91,"end":150,"count":0}, | |
| 414 | 414 | {"start":201,"end":351,"count":1}, | |
| 415 | 415 | {"start":286,"end":350,"count":0}, | |
| 416 | 416 | {"start":401,"end":701,"count":1}, | |
| 417 | 417 | {"start":603,"end":700,"count":0}, | |
| 418 | 418 | {"start":561,"end":568,"count":0}, // TODO(jgruber): Sorting. | |
| 419 | 419 | {"start":751,"end":1051,"count":1}, | |
| 420 | - {"start":817,"end":820,"count":0}, | ||
| 420 | + {"start":819,"end":820,"count":0}, | ||
| 421 | 421 | {"start":861,"end":1050,"count":0}] | |
| 422 | 422 | ); | |
| 423 | 423 | ||
@@ -1004,4 +1004,41 @@ c(true); d(true); // 1650 | |||
| 1004 | 1004 | {"start":1403,"end":1503,"count":0}] | |
| 1005 | 1005 | ); | |
| 1006 | 1006 | ||
| 1007 | + TestCoverage( | ||
| 1008 | + "https://crbug.com/927464", | ||
| 1009 | + ` | ||
| 1010 | + !function f() { // 0000 | ||
| 1011 | + function unused() { nop(); } // 0050 | ||
| 1012 | + nop(); // 0100 | ||
| 1013 | + }(); // 0150 | ||
| 1014 | + `, | ||
| 1015 | + [{"start":0,"end":199,"count":1}, | ||
| 1016 | + {"start":1,"end":151,"count":1}, | ||
| 1017 | + {"start":52,"end":80,"count":0}] | ||
| 1018 | + ); | ||
| 1019 | + | ||
| 1020 | + TestCoverage( | ||
| 1021 | + "https://crbug.com/v8/8691", | ||
| 1022 | + ` | ||
| 1023 | + function f(shouldThrow) { // 0000 | ||
| 1024 | + if (shouldThrow) { // 0050 | ||
| 1025 | + throw Error('threw') // 0100 | ||
| 1026 | + } // 0150 | ||
| 1027 | + } // 0200 | ||
| 1028 | + try { // 0250 | ||
| 1029 | + f(true) // 0300 | ||
| 1030 | + } catch (err) { // 0350 | ||
| 1031 | + // 0400 | ||
| 1032 | + } // 0450 | ||
| 1033 | + try { // 0500 | ||
| 1034 | + f(false) // 0550 | ||
| 1035 | + } catch (err) {} // 0600 | ||
| 1036 | + `, | ||
| 1037 | + [{"start":0,"end":649,"count":1}, | ||
| 1038 | + {"start":351,"end":352,"count":0}, | ||
| 1039 | + {"start":602,"end":616,"count":0}, | ||
| 1040 | + {"start":0,"end":201,"count":2}, | ||
| 1041 | + {"start":69,"end":153,"count":1}] | ||
| 1042 | + ); | ||
| 1043 | + | ||
| 1007 | 1044 | %DebugToggleBlockCoverage(false); | |
| Back | FazBrowse Home | New Git URL |
0 commit comments