On 2015/02/10 14:32:11, arv wrote:
On 2015/02/10 11:31:49, marja wrote:
> post-commit comments:
>
> https://codereview.chromium.org/722793005/diff/100001/src/parser.cc
> File src/parser.cc (right):
>
>

https://codereview.chromium.org/722793005/diff/100001/src/parser.cc#newcode3897
> src/parser.cc:3897: ClassLiteral* Parser::ParseClassLiteral(const
AstRawString*
> name,
> Is there a reason why ParseClassLiteral is not in ParserBase, but both in
Parser
> and PreParser (so that there are 2 versions of it)? Is something missing in
the
> PreParser? Is there some mess in the code that makes it hard?
>
> All other Expression parsing is unified (so, implemented only once, in
> ParserBase), so this is moving the situation backwards...

ClassExpression needs to set up an inner name binding, similar to how
FunctionExpression sets up a binding. The difference between the two is this
code. Another difference is that Parser creates a DefaultConstructor if
needed.

It seems like the PreParser might be able to handle that after all. Let me
look
into it a bit more.

One more thing that is making this less than optimal is that in Parser we use
Expression* like a Maybe type and use NULL as missin. For PreParser we don't
have a way to have these null expressions so we need to use an extra out
parameter.

https://codereview.chromium.org/722793005/

--
--
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