LGTM

http://codereview.chromium.org/7756014/diff/1/src/ia32/full-codegen-ia32.cc
File src/ia32/full-codegen-ia32.cc (right):

http://codereview.chromium.org/7756014/diff/1/src/ia32/full-codegen-ia32.cc#newcode2162
src/ia32/full-codegen-ia32.cc:2162: // is a strict mode eval call.
How come this invariant isn't shown in the strict_mode_flag to begin
with? I.e., should strict_mode_flag be able to return anything but
kStrictMode in Harmony mode?

http://codereview.chromium.org/7756014/diff/1/src/parser.cc
File src/parser.cc (right):

http://codereview.chromium.org/7756014/diff/1/src/parser.cc#newcode1355
src/parser.cc:1355: // of var declared variables.
This checks only for a redeclaration in the same scope, right?

http://codereview.chromium.org/7756014/diff/1/src/parser.h
File src/parser.h (right):

http://codereview.chromium.org/7756014/diff/1/src/parser.h#newcode650
src/parser.h:650: // scope over a let binding of the same name.
Be more explicit (define what you mean by "over", or, prefereably, don't
say anything about hoisting - just say what the invalid syntax structure
is).
Am I understanding it correctly if the invalid case is:
A var declaration inside a nested scope/block of a scope with a
let(/const/function)-declaration of the same name. I.e., it doesn't
check for redeclaration in the same scope (that's handled inline)?

http://codereview.chromium.org/7756014/diff/1/src/scopes.cc
File src/scopes.cc (right):

http://codereview.chromium.org/7756014/diff/1/src/scopes.cc#newcode479
src/scopes.cc:479: Variable* other_var = scope->variables_.Lookup(name);
This should be able to skip the first scope, where it only finds the
decl variable itself?

http://codereview.chromium.org/7756014/diff/1/src/scopes.cc#newcode480
src/scopes.cc:480: if (other_var != NULL && other_var->mode() ==
Variable::LET) {
Is it only LET declarations that can conflict, or any non-VAR?

http://codereview.chromium.org/7756014/

--
v8-dev mailing list
[email protected]
http://groups.google.com/group/v8-dev

Reply via email to