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

Issue 816913003: Implement ES6 rest parameters (Closed)

Created:
6 years ago by caitp (gmail)
Modified:
5 years, 10 months ago
CC:
v8-dev
Base URL:
https://chromium.googlesource.com/v8/v8.git@master
Target Ref:
refs/pending/heads/master
Project:
v8
Visibility:
Public.

Description

Implement ES6 rest parameters LOG=Y BUG=v8:2159 R=dslomov@chromium.org, arv@chromium.org, marja@chromium.org Committed: https://crrev.com/8bb2e397745630375c3f189293cfbaf791a6403c Cr-Commit-Position: refs/heads/master@{#26645}

Patch Set 1 #

Patch Set 2 : Simplify RestParamAccessStub #

Patch Set 3 : Add ia32 port of full-codegen #

Patch Set 4 : remove unneeded labels #

Patch Set 5 : Add arm64 port of full-codegen #

Patch Set 6 : Add arm port of full-codegen #

Patch Set 7 : Add MIPS port of full-codegen #

Patch Set 8 : Add MIPS64 port of full-codegen #

Patch Set 9 : Add X87 port of full-codegen #

Patch Set 10 : Rebase to remove parsing stuff from CL #

Patch Set 11 : Remove x87 port (until language_mode() stuff is ported) #

Patch Set 12 : Remove --harmony-arrow-functions from tests #

Total comments: 4

Patch Set 13 : Fix up the typos/pointless newline #

Total comments: 2

Patch Set 14 : Use BitField::kNext instead of magic shift offset #

Patch Set 15 : #

Patch Set 16 : Disable optimization of functions with rest parameters in parser #

Total comments: 5

Patch Set 17 : nits, lazy-parsing test #

Patch Set 18 : Rebased #

Patch Set 19 : Fix turbofan issue #

Patch Set 20 : Fix typo in ARM port #

Unified diffs Side-by-side diffs Delta from patch set Stats (+663 lines, -11 lines) Patch
M src/arm/code-stubs-arm.cc View 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 1 chunk +24 lines, -0 lines 0 comments Download
M src/arm/full-codegen-arm.cc View 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 2 chunks +20 lines, -1 line 0 comments Download
M src/arm64/code-stubs-arm64.cc View 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 1 chunk +47 lines, -0 lines 0 comments Download
M src/arm64/full-codegen-arm64.cc View 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 2 chunks +20 lines, -1 line 0 comments Download
M src/bailout-reason.h View 1 2 3 4 5 6 7 8 9 1 chunk +1 line, -0 lines 0 comments Download
M src/code-stubs.h View 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 2 chunks +19 lines, -1 line 0 comments Download
M src/code-stubs.cc View 1 2 3 4 5 6 7 8 9 10 2 chunks +10 lines, -0 lines 0 comments Download
M src/compiler.h View 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 1 chunk +2 lines, -0 lines 0 comments Download
M src/compiler.cc View 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 1 chunk +5 lines, -0 lines 0 comments Download
M src/compiler/ast-graph-builder.h View 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 1 chunk +3 lines, -0 lines 0 comments Download
M src/compiler/ast-graph-builder.cc View 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 2 chunks +21 lines, -0 lines 0 comments Download
M src/compiler/linkage.cc View 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 1 chunk +1 line, -0 lines 0 comments Download
M src/factory.cc View 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 1 chunk +2 lines, -1 line 0 comments Download
M src/full-codegen.h View 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 1 chunk +1 line, -0 lines 0 comments Download
M src/hydrogen.cc View 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 1 chunk +6 lines, -0 lines 0 comments Download
M src/ia32/code-stubs-ia32.cc View 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 1 chunk +25 lines, -0 lines 0 comments Download
M src/ia32/full-codegen-ia32.cc View 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 2 chunks +21 lines, -1 line 0 comments Download
M src/mips/code-stubs-mips.cc View 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 1 chunk +27 lines, -0 lines 0 comments Download
M src/mips/full-codegen-mips.cc View 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 2 chunks +21 lines, -1 line 0 comments Download
M src/mips64/code-stubs-mips64.cc View 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 1 chunk +28 lines, -0 lines 0 comments Download
M src/mips64/full-codegen-mips64.cc View 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 2 chunks +22 lines, -1 line 0 comments Download
M src/objects.h View 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 4 chunks +13 lines, -0 lines 0 comments Download
M src/objects.cc View 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 1 chunk +1 line, -1 line 0 comments Download
M src/objects-inl.h View 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 2 chunks +10 lines, -0 lines 0 comments Download
M src/parser.cc View 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 1 chunk +5 lines, -0 lines 0 comments Download
M src/runtime/runtime.h View 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 1 chunk +2 lines, -0 lines 0 comments Download
M src/runtime/runtime-scopes.cc View 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 4 chunks +50 lines, -1 line 0 comments Download
M src/scopeinfo.cc View 1 2 3 4 5 6 7 8 9 10 2 chunks +5 lines, -1 line 0 comments Download
M src/scopes.h View 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 1 chunk +4 lines, -0 lines 0 comments Download
M src/x64/code-stubs-x64.cc View 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 1 chunk +27 lines, -0 lines 0 comments Download
M src/x64/full-codegen-x64.cc View 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 2 chunks +21 lines, -1 line 0 comments Download
A test/mjsunit/harmony/rest-params.js View 1 2 3 4 5 6 7 8 9 10 11 1 chunk +182 lines, -0 lines 0 comments Download
A test/mjsunit/harmony/rest-params-lazy-parsing.js View 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 1 chunk +17 lines, -0 lines 0 comments Download

Messages

Total messages: 82 (29 generated)
caitp (gmail)
I'm making progress on this --- It's not ready to land, but it would be ...
6 years ago (2014-12-23 19:37:24 UTC) #1
bnoordhuis
https://codereview.chromium.org/816913003/diff/1/src/x64/full-codegen-x64.cc File src/x64/full-codegen-x64.cc (right): https://codereview.chromium.org/816913003/diff/1/src/x64/full-codegen-x64.cc#newcode254 src/x64/full-codegen-x64.cc:254: int offset = num_parameters * kPointerSize; I think this ...
6 years ago (2014-12-23 21:51:16 UTC) #4
caitp (gmail)
I've written a document explaining the current issues with this CL as I see them, ...
5 years, 11 months ago (2015-01-01 14:25:20 UTC) #5
caitp (gmail)
On 2015/01/01 14:25:20, caitp wrote: > I've written a document explaining the current issues with ...
5 years, 11 months ago (2015-01-09 02:33:23 UTC) #6
marja
Sorry, I didn't get a chance to have a look at this CL yet but ...
5 years, 11 months ago (2015-01-09 15:18:48 UTC) #7
marja
On 2015/01/09 15:18:48, marja wrote: > Sorry, I didn't get a chance to have a ...
5 years, 11 months ago (2015-01-09 15:31:54 UTC) #8
caitp (gmail)
On 2015/01/09 15:31:54, marja wrote: > On 2015/01/09 15:18:48, marja wrote: > > Sorry, I ...
5 years, 11 months ago (2015-01-09 15:40:38 UTC) #9
caitp (gmail)
On 2015/01/09 15:40:38, caitp wrote: > On 2015/01/09 15:31:54, marja wrote: > > On 2015/01/09 ...
5 years, 11 months ago (2015-01-09 15:48:55 UTC) #10
arv (Not doing code reviews)
Great start. https://codereview.chromium.org/816913003/diff/80001/src/ast.h File src/ast.h (right): https://codereview.chromium.org/816913003/diff/80001/src/ast.h#newcode405 src/ast.h:405: void set_ellipsis(int location) { This is a ...
5 years, 11 months ago (2015-01-09 17:01:59 UTC) #11
caitp (gmail)
https://codereview.chromium.org/816913003/diff/80001/test/mjsunit/harmony/rest-params.js File test/mjsunit/harmony/rest-params.js (right): https://codereview.chromium.org/816913003/diff/80001/test/mjsunit/harmony/rest-params.js#newcode16 test/mjsunit/harmony/rest-params.js:16: //assertEquals(c[j++], arguments[i]); On 2015/01/09 17:01:59, arv wrote: > ? ...
5 years, 11 months ago (2015-01-09 17:10:08 UTC) #12
caitp (gmail)
On 2015/01/09 17:10:08, caitp wrote: > https://codereview.chromium.org/816913003/diff/80001/test/mjsunit/harmony/rest-params.js > File test/mjsunit/harmony/rest-params.js (right): > > https://codereview.chromium.org/816913003/diff/80001/test/mjsunit/harmony/rest-params.js#newcode16 > ...
5 years, 11 months ago (2015-01-15 18:54:57 UTC) #13
marja
I started having another look, but then I realized the arrow funcs are not split ...
5 years, 11 months ago (2015-01-15 19:41:24 UTC) #14
caitp (gmail)
https://codereview.chromium.org/816913003/diff/140001/src/preparser.h File src/preparser.h (right): https://codereview.chromium.org/816913003/diff/140001/src/preparser.h#newcode2273 src/preparser.h:2273: Consume(Token::ELLIPSIS); On 2015/01/15 19:41:24, marja wrote: > So this ...
5 years, 11 months ago (2015-01-15 19:42:44 UTC) #15
caitp (gmail)
> Add a little bit of TF support I admittedly have no idea what I'm ...
5 years, 11 months ago (2015-01-20 19:23:48 UTC) #16
caitp (gmail)
On 2015/01/20 19:23:48, caitp wrote: > > Add a little bit of TF support > ...
5 years, 11 months ago (2015-01-20 19:40:51 UTC) #17
arv (Not doing code reviews)
One thing that should make things simpler is that we should create an unmapped/strict arguments ...
5 years, 11 months ago (2015-01-20 20:08:59 UTC) #18
caitp (gmail)
https://codereview.chromium.org/816913003/diff/200001/src/ast.h File src/ast.h (right): https://codereview.chromium.org/816913003/diff/200001/src/ast.h#newcode403 src/ast.h:403: void set_ellipsis(int location) { On 2015/01/20 20:08:59, arv wrote: ...
5 years, 11 months ago (2015-01-20 20:11:07 UTC) #19
caitp (gmail)
Good things: - bailout of hydrogen if rest parameters are present - basic implementation in ...
5 years, 11 months ago (2015-01-21 04:44:58 UTC) #20
arv (Not doing code reviews)
It would also be nice to provide a test to make sure we do not ...
5 years, 11 months ago (2015-01-21 16:26:29 UTC) #21
caitp (gmail)
thanks, great comments =) https://codereview.chromium.org/816913003/diff/240001/src/code-stubs.h File src/code-stubs.h (right): https://codereview.chromium.org/816913003/diff/240001/src/code-stubs.h#newcode1618 src/code-stubs.h:1618: virtual CallInterfaceDescriptor GetCallInterfaceDescriptor() OVERRIDE { ...
5 years, 11 months ago (2015-01-21 18:17:55 UTC) #22
caitp (gmail)
So, there's only one problem left really, that I can see. The generated code seems ...
5 years, 11 months ago (2015-01-22 01:42:22 UTC) #23
caitp (gmail)
On 2015/01/22 01:42:22, caitp wrote: > So, there's only one problem left really, that I ...
5 years, 11 months ago (2015-01-22 02:02:03 UTC) #24
caitp (gmail)
On 2015/01/22 02:02:03, caitp wrote: > On 2015/01/22 01:42:22, caitp wrote: > > So, there's ...
5 years, 11 months ago (2015-01-22 02:11:10 UTC) #25
caitp (gmail)
On 2015/01/22 02:11:10, caitp wrote: > On 2015/01/22 02:02:03, caitp wrote: > > On 2015/01/22 ...
5 years, 11 months ago (2015-01-22 02:54:50 UTC) #26
caitp (gmail)
All working, except for the rest-params stress-opt test which fails (I guess the bailout doesn't ...
5 years, 11 months ago (2015-01-22 16:45:10 UTC) #27
arv (Not doing code reviews)
I have no suggestions at this time. Dmitry, care to have a look?
5 years, 11 months ago (2015-01-22 21:33:18 UTC) #28
caitp (gmail)
CC adamk@ to bug an extra person on this (no pressure, if/when you have time)
5 years, 11 months ago (2015-01-27 17:28:29 UTC) #47
caitp (gmail)
PTAL cleaned up a bit and added some ports --- still breaks on the stress ...
5 years, 10 months ago (2015-01-28 19:00:29 UTC) #48
Michael Starzinger
The TurboFan part looks OK to me, didn't look at the rest. To answer your ...
5 years, 10 months ago (2015-01-29 20:50:50 UTC) #49
arv (Not doing code reviews)
This patch is getting pretty big. Could you split the parser into its own CL. ...
5 years, 10 months ago (2015-01-30 03:53:22 UTC) #50
caitp (gmail)
On 2015/01/30 03:53:22, arv wrote: > This patch is getting pretty big. Could you split ...
5 years, 10 months ago (2015-01-30 04:11:13 UTC) #51
arv (Not doing code reviews)
On 2015/01/30 04:11:13, caitp wrote: > https://codereview.chromium.org/816913003/diff/510001/src/mips/code-stubs-mips.cc#newcode2015 > > src/mips/code-stubs-mips.cc:2015: void > > RestParamAccessStub::GenerateNew(MacroAssembler* masm) ...
5 years, 10 months ago (2015-01-30 04:23:27 UTC) #52
arv (Not doing code reviews)
This looks very solid to me. I'll try to apply to patch locally and see ...
5 years, 10 months ago (2015-02-05 22:50:58 UTC) #55
caitp (gmail)
On 2015/02/05 22:50:58, arv wrote: > This looks very solid to me. I'll try to ...
5 years, 10 months ago (2015-02-06 02:01:22 UTC) #57
Dmitry Lomov (no reviews)
Just a couple of typos, still reviewing https://codereview.chromium.org/816913003/diff/610001/src/arm64/full-codegen-arm64.cc File src/arm64/full-codegen-arm64.cc (right): https://codereview.chromium.org/816913003/diff/610001/src/arm64/full-codegen-arm64.cc#newcode248 src/arm64/full-codegen-arm64.cc:248: Comment cmnt(masm_, ...
5 years, 10 months ago (2015-02-11 00:30:50 UTC) #58
caitp (gmail)
https://codereview.chromium.org/816913003/diff/610001/src/arm64/full-codegen-arm64.cc File src/arm64/full-codegen-arm64.cc (right): https://codereview.chromium.org/816913003/diff/610001/src/arm64/full-codegen-arm64.cc#newcode248 src/arm64/full-codegen-arm64.cc:248: Comment cmnt(masm_, "[ Allocate rest parametere array"); On 2015/02/11 ...
5 years, 10 months ago (2015-02-11 21:05:54 UTC) #59
arv (Not doing code reviews)
Are there still issues with this CL? https://codereview.chromium.org/816913003/diff/630001/src/objects.h File src/objects.h (right): https://codereview.chromium.org/816913003/diff/630001/src/objects.h#newcode4338 src/objects.h:4338: class IsSimpleParameterListField ...
5 years, 10 months ago (2015-02-12 21:48:43 UTC) #60
caitp (gmail)
It still fails the 5th stress-opt run (rest parameter is undefined rather than an array). ...
5 years, 10 months ago (2015-02-12 22:12:04 UTC) #61
caitp (gmail)
PTAL --- I've added a few lines to call AbortOptimization() in compiler.cc if a scope ...
5 years, 10 months ago (2015-02-13 14:28:51 UTC) #62
caitp (gmail)
On 2015/02/13 14:28:51, caitp wrote: > PTAL --- I've added a few lines to call ...
5 years, 10 months ago (2015-02-13 14:32:57 UTC) #63
caitp (gmail)
On 2015/02/13 14:32:57, caitp wrote: > On 2015/02/13 14:28:51, caitp wrote: > > PTAL --- ...
5 years, 10 months ago (2015-02-13 15:35:54 UTC) #65
Dmitry Lomov (no reviews)
lgtm, I have one question https://codereview.chromium.org/816913003/diff/710001/src/arm64/full-codegen-arm64.cc File src/arm64/full-codegen-arm64.cc (right): https://codereview.chromium.org/816913003/diff/710001/src/arm64/full-codegen-arm64.cc#newcode285 src/arm64/full-codegen-arm64.cc:285: if (is_strict(language_mode()) || !is_simple_parameter_list()) ...
5 years, 10 months ago (2015-02-13 16:27:14 UTC) #66
caitp (gmail)
https://codereview.chromium.org/816913003/diff/710001/src/arm64/full-codegen-arm64.cc File src/arm64/full-codegen-arm64.cc (right): https://codereview.chromium.org/816913003/diff/710001/src/arm64/full-codegen-arm64.cc#newcode285 src/arm64/full-codegen-arm64.cc:285: if (is_strict(language_mode()) || !is_simple_parameter_list()) { On 2015/02/13 16:27:14, Dmitry ...
5 years, 10 months ago (2015-02-13 16:30:45 UTC) #67
Dmitry Lomov (no reviews)
https://codereview.chromium.org/816913003/diff/710001/src/arm64/full-codegen-arm64.cc File src/arm64/full-codegen-arm64.cc (right): https://codereview.chromium.org/816913003/diff/710001/src/arm64/full-codegen-arm64.cc#newcode285 src/arm64/full-codegen-arm64.cc:285: if (is_strict(language_mode()) || !is_simple_parameter_list()) { On 2015/02/13 16:30:45, caitp ...
5 years, 10 months ago (2015-02-13 16:41:09 UTC) #68
arv (Not doing code reviews)
LGTM Maybe you can add a test that triggers lazy parsing too? See https://codereview.chromium.org/923683002/diff/20001/test/mjsunit/harmony/classes-lazy-parsing.js https://codereview.chromium.org/816913003/diff/710001/src/ia32/code-stubs-ia32.cc ...
5 years, 10 months ago (2015-02-13 16:56:44 UTC) #69
arv (Not doing code reviews)
Still LGTM
5 years, 10 months ago (2015-02-13 17:49:34 UTC) #71
caitp (gmail)
On 2015/02/13 17:49:34, arv wrote: > Still LGTM had to make one fixup to make ...
5 years, 10 months ago (2015-02-13 22:17:39 UTC) #73
commit-bot: I haz the power
CQ is trying da patch. Follow status at https://chromium-cq-status.appspot.com/patch-status/816913003/770001
5 years, 10 months ago (2015-02-13 22:24:51 UTC) #75
commit-bot: I haz the power
Try jobs failed on following builders: v8_linux_arm_rel on tryserver.v8 (JOB_FAILED, http://build.chromium.org/p/tryserver.v8/builders/v8_linux_arm_rel/builds/1476)
5 years, 10 months ago (2015-02-13 22:31:58 UTC) #77
caitp (gmail)
woo typos :<
5 years, 10 months ago (2015-02-13 22:33:18 UTC) #78
commit-bot: I haz the power
CQ is trying da patch. Follow status at https://chromium-cq-status.appspot.com/patch-status/816913003/790001
5 years, 10 months ago (2015-02-13 23:37:11 UTC) #80
commit-bot: I haz the power
Committed patchset #20 (id:790001)
5 years, 10 months ago (2015-02-14 00:15:06 UTC) #81
commit-bot: I haz the power
5 years, 10 months ago (2015-02-14 00:15:28 UTC) #82
Message was sent while issue was closed.
Patchset 20 (id:??) landed as
https://crrev.com/8bb2e397745630375c3f189293cfbaf791a6403c
Cr-Commit-Position: refs/heads/master@{#26645}

Powered by Google App Engine
This is Rietveld 408576698