Comments addressed + rebased on top of latest patch for
https://codereview.chromium.org/1139773005/


https://codereview.chromium.org/1146683002/diff/1/src/parser.h
File src/parser.h (right):

https://codereview.chromium.org/1146683002/diff/1/src/parser.h#newcode1015
src/parser.h:1015: Scope* TemporaryDeclarationScope() const {
On 2015/05/18 16:17:19, rossberg wrote:
Nit: is there a strong reason to say "Temporary" here?

Yes, it is a declaration scope for temporary variables (as opposed to
declaration scope for the variables pattern matcher declares, which is
controlled by DeclarationDescriptor and ultimately by whether this is a
lexical declaration or not). However I inlined into CreateTempVar.

https://codereview.chromium.org/1146683002/diff/1/src/pattern-rewriter.cc
File src/pattern-rewriter.cc (right):

https://codereview.chromium.org/1146683002/diff/1/src/pattern-rewriter.cc#newcode210
src/pattern-rewriter.cc:210: Variable*
Parser::PatternRewriter::CreateTemp(Expression* value) {
On 2015/05/18 14:36:20, arv wrote:
CreateTempVar maybe?

Done.

https://codereview.chromium.org/1146683002/diff/1/src/pattern-rewriter.cc#newcode245
src/pattern-rewriter.cc:245: DCHECK(node->op() == Token::ASSIGN);
On 2015/05/18 14:36:20, arv wrote:
Maybe add a comment explaining the desugaring

   let {<pattern> = init} = <current_value>

becomes

   temp = <current_value>
   <pattern> = temp === undefined ? init : temp

Done.

https://codereview.chromium.org/1146683002/diff/1/src/preparser.h
File src/preparser.h (right):

https://codereview.chromium.org/1146683002/diff/1/src/preparser.h#newcode2909
src/preparser.h:2909: classifier->RecordBindingPatternError(
On 2015/05/18 14:36:20, arv wrote:
Just curious... Is the reason why you are not doing a
RecordAssignmentPatternError here because assignment patterns are n ot
yet
implemented?

Yes.

https://codereview.chromium.org/1146683002/diff/1/test/cctest/test-parsing.cc
File test/cctest/test-parsing.cc (right):

https://codereview.chromium.org/1146683002/diff/1/test/cctest/test-parsing.cc#newcode6366
test/cctest/test-parsing.cc:6366: "x",
On 2015/05/18 14:36:20, arv wrote:
this is a duplicate of the next line

Done.

https://codereview.chromium.org/1146683002/diff/1/test/cctest/test-parsing.cc#newcode6392
test/cctest/test-parsing.cc:6392: "{var: x = 42}",
On 2015/05/18 16:17:19, rossberg wrote:
Add a test with computed property names.

I want to cover computed property names in a separate CL; this CL is
about intializers.

https://codereview.chromium.org/1146683002/diff/1/test/cctest/test-parsing.cc#newcode6460
test/cctest/test-parsing.cc:6460: "{x : x += a}",
On 2015/05/18 16:17:19, rossberg wrote:
Add a test with method syntax, e.g. "{m() {} = 0}".

Done.

https://codereview.chromium.org/1146683002/diff/1/test/mjsunit/harmony/destructuring.js
File test/mjsunit/harmony/destructuring.js (right):

https://codereview.chromium.org/1146683002/diff/1/test/mjsunit/harmony/destructuring.js#newcode54
test/mjsunit/harmony/destructuring.js:54:
On 2015/05/18 14:36:20, arv wrote:
-1 newline

Done.

https://codereview.chromium.org/1146683002/diff/1/test/mjsunit/harmony/destructuring.js#newcode57
test/mjsunit/harmony/destructuring.js:57: for(var {z = 3} = {}; z != 0;
z--) {
On 2015/05/18 14:36:20, arv wrote:
ws

Done.

https://codereview.chromium.org/1146683002/diff/1/test/mjsunit/harmony/destructuring.js#newcode62
test/mjsunit/harmony/destructuring.js:62:
On 2015/05/18 16:17:20, rossberg wrote:
Nit: newline

Done.

https://codereview.chromium.org/1146683002/diff/1/test/mjsunit/harmony/destructuring.js#newcode66
test/mjsunit/harmony/destructuring.js:66: var o = { get x() {
On 2015/05/18 16:17:19, rossberg wrote:
Can we modify this test (and below) such that it also checks the order
of the
calls?

Done.

https://codereview.chromium.org/1146683002/diff/1/test/mjsunit/harmony/destructuring.js#newcode220
test/mjsunit/harmony/destructuring.js:220: (function
TestTDZInIntializers() {
On 2015/05/18 16:17:19, rossberg wrote:
Add tests like

let {x, y = eval("x")} = {x:42}
let {x = () => y, y} = {y:42}; x() === 42
let {x = () => eval("y"), y} = {y:42}; x() === 42

Done.

https://codereview.chromium.org/1146683002/diff/1/test/mjsunit/harmony/destructuring.js#newcode254
test/mjsunit/harmony/destructuring.js:254:
On 2015/05/18 14:36:20, arv wrote:
Did you want to add tests for

let {x, x} = {x: 1};

and some more variants of that:

let {x, x = 2} = {x: 1};
let {x = (function() { x = 2; })()} = {};  // error
let {x = (function() { x = 2; })()} = {x: 1};  // no error

Done.

https://codereview.chromium.org/1146683002/

--
--
v8-dev mailing list
[email protected]
http://groups.google.com/group/v8-dev
--- You received this message because you are subscribed to the Google Groups "v8-dev" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to [email protected].
For more options, visit https://groups.google.com/d/optout.

Reply via email to