| Index: src/parser.cc
|
| diff --git a/src/parser.cc b/src/parser.cc
|
| index cf84bfab3758b3be6e81fd490f388c5a3aed1c5a..d8dc27b8249b037cf093a817717acc8fae6caad3 100644
|
| --- a/src/parser.cc
|
| +++ b/src/parser.cc
|
| @@ -1303,7 +1303,10 @@ VariableProxy* Parser::Declare(Handle<String> name,
|
| // to the corresponding activation frame at runtime if necessary.
|
| // For instance declarations inside an eval scope need to be added
|
| // to the calling function context.
|
| - if (top_scope_->is_function_scope()) {
|
| + // Similarly, strict mode eval scope does not leak variable declarations to
|
| + // the caller's scope so we declare all locals, too.
|
| + if (top_scope_->is_function_scope() ||
|
| + top_scope_->is_strict_mode_eval_scope()) {
|
| // Declare the variable in the function scope.
|
| var = top_scope_->LocalLookup(name);
|
| if (var == NULL) {
|
|
|