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

Issue 1928203002: [es8] More spec compliant syntactic tail calls implementation. (Closed)

Created:
4 years, 7 months ago by Igor Sheludko
Modified:
4 years, 7 months ago
Reviewers:
rossberg
CC:
v8-reviews_googlegroups.com
Base URL:
https://chromium.googlesource.com/v8/v8.git@master
Target Ref:
refs/pending/heads/master
Project:
v8
Visibility:
Public.

Description

[es8] More spec compliant syntactic tail calls implementation. Unlike previous implementation where the 'continue' keyword was a feature of a return statement the keyword is now recognized as a part of expression. Error reporting was significantly improved. --harmony-explicit-tailcalls option is now orthogonal to --harmony-tailcalls so we can test both modes at the same time. This CL also adds %GetExceptionDetails(exception) that fetches hidden |start_pos| and |end_pos| values from the exception object. BUG=v8:4915 LOG=N Committed: https://crrev.com/1350eb3dc9421ff274d29bc9e3b08deb59b71c6b Cr-Commit-Position: refs/heads/master@{#36024}

Patch Set 1 : #

Total comments: 6

Patch Set 2 : Addressing comments, adding tests #

Patch Set 3 : Moar tests #

Total comments: 4

Patch Set 4 : Rebasing #

Patch Set 5 : Adding more tests #

Patch Set 6 : Some STC tests ported for PTC #

Unified diffs Side-by-side diffs Delta from patch set Stats (+871 lines, -758 lines) Patch
M src/messages.h View 1 2 3 2 chunks +6 lines, -4 lines 0 comments Download
M src/parsing/expression-classifier.h View 6 chunks +25 lines, -1 line 0 comments Download
M src/parsing/parser.h View 1 2 3 2 chunks +3 lines, -0 lines 0 comments Download
M src/parsing/parser.cc View 1 2 3 11 chunks +40 lines, -41 lines 0 comments Download
M src/parsing/parser-base.h View 1 2 3 32 chunks +154 lines, -57 lines 0 comments Download
M src/parsing/preparser.h View 1 2 3 1 chunk +1 line, -0 lines 0 comments Download
M src/parsing/preparser.cc View 1 2 3 5 chunks +17 lines, -24 lines 0 comments Download
M src/runtime/runtime.h View 1 2 3 1 chunk +1 line, -0 lines 0 comments Download
M src/runtime/runtime-test.cc View 1 2 3 2 chunks +26 lines, -0 lines 0 comments Download
A + test/message/syntactic-tail-call-in-binop-lhs.js View 1 chunk +1 line, -4 lines 0 comments Download
A test/message/syntactic-tail-call-in-binop-lhs.out View 1 chunk +4 lines, -0 lines 0 comments Download
A + test/message/syntactic-tail-call-in-binop-rhs.js View 1 chunk +1 line, -4 lines 0 comments Download
A test/message/syntactic-tail-call-in-binop-rhs.out View 1 chunk +4 lines, -0 lines 0 comments Download
A + test/message/syntactic-tail-call-in-comma.js View 1 chunk +1 line, -4 lines 0 comments Download
A test/message/syntactic-tail-call-in-comma.out View 1 chunk +4 lines, -0 lines 0 comments Download
A + test/message/syntactic-tail-call-in-extends.js View 1 1 chunk +1 line, -8 lines 0 comments Download
A test/message/syntactic-tail-call-in-extends.out View 1 1 chunk +4 lines, -0 lines 0 comments Download
M test/message/syntactic-tail-call-in-for-in.js View 1 chunk +1 line, -1 line 0 comments Download
M test/message/syntactic-tail-call-in-for-in.out View 1 chunk +4 lines, -4 lines 0 comments Download
M test/message/syntactic-tail-call-in-for-of.js View 1 chunk +1 line, -1 line 0 comments Download
M test/message/syntactic-tail-call-in-for-of.out View 1 chunk +4 lines, -4 lines 0 comments Download
A + test/message/syntactic-tail-call-in-logical-and.js View 1 chunk +1 line, -4 lines 0 comments Download
A test/message/syntactic-tail-call-in-logical-and.out View 1 chunk +4 lines, -0 lines 0 comments Download
A + test/message/syntactic-tail-call-in-logical-or.js View 1 chunk +1 line, -4 lines 0 comments Download
A test/message/syntactic-tail-call-in-logical-or.out View 1 chunk +4 lines, -0 lines 0 comments Download
A + test/message/syntactic-tail-call-in-subclass.js View 1 2 1 chunk +5 lines, -7 lines 0 comments Download
A test/message/syntactic-tail-call-in-subclass.out View 1 2 1 chunk +4 lines, -0 lines 0 comments Download
M test/message/syntactic-tail-call-in-try.js View 1 chunk +1 line, -1 line 0 comments Download
M test/message/syntactic-tail-call-in-try.out View 1 chunk +4 lines, -4 lines 0 comments Download
M test/message/syntactic-tail-call-in-try-catch-finally.js View 1 chunk +1 line, -1 line 0 comments Download
M test/message/syntactic-tail-call-in-try-catch-finally.out View 1 chunk +4 lines, -4 lines 0 comments Download
M test/message/syntactic-tail-call-in-try-try-catch-finally.js View 1 chunk +1 line, -1 line 0 comments Download
M test/message/syntactic-tail-call-in-try-try-catch-finally.out View 1 chunk +4 lines, -4 lines 0 comments Download
A + test/message/syntactic-tail-call-inside-member-expr.js View 1 chunk +1 line, -4 lines 0 comments Download
A test/message/syntactic-tail-call-inside-member-expr.out View 1 chunk +4 lines, -0 lines 0 comments Download
A + test/message/syntactic-tail-call-of-identifier.js View 1 chunk +2 lines, -9 lines 0 comments Download
A test/message/syntactic-tail-call-of-identifier.out View 1 chunk +4 lines, -0 lines 0 comments Download
A + test/message/syntactic-tail-call-of-new.js View 1 chunk +1 line, -4 lines 0 comments Download
A test/message/syntactic-tail-call-of-new.out View 1 chunk +4 lines, -0 lines 0 comments Download
A + test/message/syntactic-tail-call-without-return.js View 1 chunk +1 line, -4 lines 0 comments Download
A test/message/syntactic-tail-call-without-return.out View 1 chunk +4 lines, -0 lines 0 comments Download
M test/mjsunit/es6/tail-call.js View 1 2 3 4 5 3 chunks +74 lines, -0 lines 0 comments Download
M test/mjsunit/es7/syntactic-tail-call.js View 1 1 chunk +0 lines, -423 lines 0 comments Download
D test/mjsunit/es7/syntactic-tail-call-simple.js View 1 1 chunk +0 lines, -121 lines 0 comments Download
A + test/mjsunit/es8/syntactic-tail-call.js View 1 2 3 4 4 chunks +71 lines, -7 lines 0 comments Download
A test/mjsunit/es8/syntactic-tail-call-parsing.js View 1 2 3 4 1 chunk +369 lines, -0 lines 0 comments Download
A + test/mjsunit/es8/syntactic-tail-call-simple.js View 1 0 chunks +-1 lines, --1 lines 0 comments Download

Messages

Total messages: 44 (26 generated)
commit-bot: I haz the power
Dry run: CQ is trying da patch. Follow status at https://chromium-cq-status.appspot.com/patch-status/1928203002/1 View timeline at https://chromium-cq-status.appspot.com/patch-timeline/1928203002/1
4 years, 7 months ago (2016-04-29 00:43:35 UTC) #2
commit-bot: I haz the power
Dry run: Try jobs failed on following builders: v8_linux64_asan_rel_ng on tryserver.v8 (JOB_FAILED, http://build.chromium.org/p/tryserver.v8/builders/v8_linux64_asan_rel_ng/builds/923) v8_linux64_avx2_rel_ng on ...
4 years, 7 months ago (2016-04-29 00:46:06 UTC) #4
commit-bot: I haz the power
Dry run: CQ is trying da patch. Follow status at https://chromium-cq-status.appspot.com/patch-status/1928203002/80001 View timeline at https://chromium-cq-status.appspot.com/patch-timeline/1928203002/80001
4 years, 7 months ago (2016-04-29 10:46:57 UTC) #10
Igor Sheludko
PTAL
4 years, 7 months ago (2016-04-29 10:47:06 UTC) #12
commit-bot: I haz the power
Dry run: This issue passed the CQ dry run.
4 years, 7 months ago (2016-04-29 11:12:10 UTC) #14
rossberg
Changes look okay, but I think the CL needs more quite a few more tests, ...
4 years, 7 months ago (2016-05-02 10:59:40 UTC) #16
commit-bot: I haz the power
Dry run: CQ is trying da patch. Follow status at https://chromium-cq-status.appspot.com/patch-status/1928203002/140001 View timeline at https://chromium-cq-status.appspot.com/patch-timeline/1928203002/140001
4 years, 7 months ago (2016-05-04 10:04:57 UTC) #19
commit-bot: I haz the power
Dry run: Try jobs failed on following builders: v8_android_arm_compile_rel on tryserver.v8 (JOB_FAILED, http://build.chromium.org/p/tryserver.v8/builders/v8_android_arm_compile_rel/builds/17152) v8_linux64_rel_ng on ...
4 years, 7 months ago (2016-05-04 10:06:08 UTC) #21
commit-bot: I haz the power
Dry run: CQ is trying da patch. Follow status at https://chromium-cq-status.appspot.com/patch-status/1928203002/180001 View timeline at https://chromium-cq-status.appspot.com/patch-timeline/1928203002/180001
4 years, 7 months ago (2016-05-04 10:28:27 UTC) #27
Igor Sheludko
Addressed comments, more tests added and more bugs fixed. PTAL https://codereview.chromium.org/1928203002/diff/80001/src/parsing/parser-base.h File src/parsing/parser-base.h (right): https://codereview.chromium.org/1928203002/diff/80001/src/parsing/parser-base.h#newcode789 ...
4 years, 7 months ago (2016-05-04 10:28:55 UTC) #28
rossberg
https://codereview.chromium.org/1928203002/diff/140001/test/mjsunit/es8/syntactic-tail-call-parsing.js File test/mjsunit/es8/syntactic-tail-call-parsing.js (right): https://codereview.chromium.org/1928203002/diff/140001/test/mjsunit/es8/syntactic-tail-call-parsing.js#newcode287 test/mjsunit/es8/syntactic-tail-call-parsing.js:287: `()=>{ return continue do { x ? foo() : ...
4 years, 7 months ago (2016-05-04 10:45:30 UTC) #29
commit-bot: I haz the power
Dry run: This issue passed the CQ dry run.
4 years, 7 months ago (2016-05-04 10:54:49 UTC) #31
Igor Sheludko
https://codereview.chromium.org/1928203002/diff/140001/test/mjsunit/es8/syntactic-tail-call-parsing.js File test/mjsunit/es8/syntactic-tail-call-parsing.js (right): https://codereview.chromium.org/1928203002/diff/140001/test/mjsunit/es8/syntactic-tail-call-parsing.js#newcode287 test/mjsunit/es8/syntactic-tail-call-parsing.js:287: `()=>{ return continue do { x ? foo() : ...
4 years, 7 months ago (2016-05-04 11:50:14 UTC) #33
rossberg
Thanks, lgtm
4 years, 7 months ago (2016-05-04 12:09:28 UTC) #34
commit-bot: I haz the power
CQ is trying da patch. Follow status at https://chromium-cq-status.appspot.com/patch-status/1928203002/220001 View timeline at https://chromium-cq-status.appspot.com/patch-timeline/1928203002/220001
4 years, 7 months ago (2016-05-04 12:10:21 UTC) #36
commit-bot: I haz the power
CQ is trying da patch. Follow status at https://chromium-cq-status.appspot.com/patch-status/1928203002/240001 View timeline at https://chromium-cq-status.appspot.com/patch-timeline/1928203002/240001
4 years, 7 months ago (2016-05-04 13:14:59 UTC) #40
commit-bot: I haz the power
Committed patchset #6 (id:240001)
4 years, 7 months ago (2016-05-04 13:42:58 UTC) #42
commit-bot: I haz the power
4 years, 7 months ago (2016-05-04 13:44:51 UTC) #44
Message was sent while issue was closed.
Patchset 6 (id:??) landed as
https://crrev.com/1350eb3dc9421ff274d29bc9e3b08deb59b71c6b
Cr-Commit-Position: refs/heads/master@{#36024}

Powered by Google App Engine
This is Rietveld 408576698