summaryrefslogtreecommitdiff
path: root/deps/v8/test/mjsunit
diff options
context:
space:
mode:
authorBenjamin <bencoe@gmail.com>2019-02-27 10:05:58 -0800
committerbcoe <bencoe@google.com>2019-03-05 09:48:20 -0800
commitc78788a0219cc950be7159e65b9e8db01e9c1a7a (patch)
treea16c6c0a78673129bc8f81072dc4422d7872d0a4 /deps/v8/test/mjsunit
parentd4fdec6b6593659cb38e1db9c8083d4fde9bcacb (diff)
downloadandroid-node-v8-c78788a0219cc950be7159e65b9e8db01e9c1a7a.tar.gz
android-node-v8-c78788a0219cc950be7159e65b9e8db01e9c1a7a.tar.bz2
android-node-v8-c78788a0219cc950be7159e65b9e8db01e9c1a7a.zip
deps: v8, backport 2d08967
Original commit message: [coverage] Extend SourceRangeAstVisitor for throw statements The SourceRangeAstVisitor has custom logic for blocks ending with a statement that has a continuation range. In these cases, the trailing continuation is removed which makes the reported coverage ranges a bit nicer. throw Error('foo') consists of an ExpressionStatement, with a Throw expression stored within the statement. The source range itself is stored with the Throw, not the statement. We now properly extract the correct AST node for trailing throw statements. R=jgruber@chromium.org, neis@chromium.org, yangguo@chromium.org Bug: v8:8691 Change-Id: Ibcbab79fbe54719a8993045040349c863b139011 Reviewed-on: https://chromium-review.googlesource.com/c/1480632 Commit-Queue: Georg Neis <neis@chromium.org> Reviewed-by: Georg Neis <neis@chromium.org> Reviewed-by: Jakob Gruber <jgruber@chromium.org> Cr-Commit-Position: refs/heads/master@{#59936} Refs: https://github.com/v8/v8/commit/2d08967d4a4b9a43aa2b11781421e09bff3b89ad PR-URL: https://github.com/nodejs/node/pull/26413 Reviewed-By: Ruben Bridgewater <ruben@bridgewater.de> Reviewed-By: Colin Ihrig <cjihrig@gmail.com> Reviewed-By: Gus Caplan <me@gus.host> Reviewed-By: James M Snell <jasnell@gmail.com>
Diffstat (limited to 'deps/v8/test/mjsunit')
-rw-r--r--deps/v8/test/mjsunit/code-coverage-block.js51
1 files changed, 44 insertions, 7 deletions
diff --git a/deps/v8/test/mjsunit/code-coverage-block.js b/deps/v8/test/mjsunit/code-coverage-block.js
index 1291a50d97..6df2ca5a56 100644
--- a/deps/v8/test/mjsunit/code-coverage-block.js
+++ b/deps/v8/test/mjsunit/code-coverage-block.js
@@ -353,11 +353,11 @@ TestCoverage(
[{"start":0,"end":849,"count":1},
{"start":1,"end":801,"count":1},
{"start":67,"end":87,"count":0},
- {"start":219,"end":222,"count":0},
+ {"start":221,"end":222,"count":0},
{"start":254,"end":274,"count":0},
- {"start":369,"end":372,"count":0},
+ {"start":371,"end":372,"count":0},
{"start":403,"end":404,"count":0},
- {"start":513,"end":554,"count":0}]
+ {"start":553,"end":554,"count":0}]
);
TestCoverage("try/catch/finally statements with early return",
@@ -374,10 +374,10 @@ TestCoverage("try/catch/finally statements with early return",
`,
[{"start":0,"end":449,"count":1},
{"start":1,"end":151,"count":1},
- {"start":67,"end":70,"count":0},
+ {"start":69,"end":70,"count":0},
{"start":91,"end":150,"count":0},
{"start":201,"end":401,"count":1},
- {"start":267,"end":270,"count":0},
+ {"start":269,"end":270,"count":0},
{"start":321,"end":400,"count":0}]
);
@@ -409,7 +409,7 @@ TestCoverage(
`,
[{"start":0,"end":1099,"count":1},
{"start":1,"end":151,"count":1},
- {"start":67,"end":70,"count":0},
+ {"start":69,"end":70,"count":0},
{"start":91,"end":150,"count":0},
{"start":201,"end":351,"count":1},
{"start":286,"end":350,"count":0},
@@ -417,7 +417,7 @@ TestCoverage(
{"start":603,"end":700,"count":0},
{"start":561,"end":568,"count":0}, // TODO(jgruber): Sorting.
{"start":751,"end":1051,"count":1},
- {"start":817,"end":820,"count":0},
+ {"start":819,"end":820,"count":0},
{"start":861,"end":1050,"count":0}]
);
@@ -1004,4 +1004,41 @@ c(true); d(true); // 1650
{"start":1403,"end":1503,"count":0}]
);
+TestCoverage(
+"https://crbug.com/927464",
+`
+!function f() { // 0000
+ function unused() { nop(); } // 0050
+ nop(); // 0100
+}(); // 0150
+`,
+[{"start":0,"end":199,"count":1},
+ {"start":1,"end":151,"count":1},
+ {"start":52,"end":80,"count":0}]
+);
+
+TestCoverage(
+"https://crbug.com/v8/8691",
+`
+function f(shouldThrow) { // 0000
+ if (shouldThrow) { // 0050
+ throw Error('threw') // 0100
+ } // 0150
+} // 0200
+try { // 0250
+ f(true) // 0300
+} catch (err) { // 0350
+ // 0400
+} // 0450
+try { // 0500
+ f(false) // 0550
+} catch (err) {} // 0600
+`,
+[{"start":0,"end":649,"count":1},
+ {"start":351,"end":352,"count":0},
+ {"start":602,"end":616,"count":0},
+ {"start":0,"end":201,"count":2},
+ {"start":69,"end":153,"count":1}]
+);
+
%DebugToggleBlockCoverage(false);