| Index: src/interpreter/bytecode-generator.cc
|
| diff --git a/src/interpreter/bytecode-generator.cc b/src/interpreter/bytecode-generator.cc
|
| index 27158cd8bfa6d281bd420b119d0805561ca2b84e..43ab0e3abe0e0103ac6fde664fcd89138360f67c 100644
|
| --- a/src/interpreter/bytecode-generator.cc
|
| +++ b/src/interpreter/bytecode-generator.cc
|
| @@ -1967,7 +1967,19 @@ void BytecodeGenerator::VisitVariableLoad(Variable* variable,
|
| break;
|
| }
|
| case VariableLocation::LOOKUP: {
|
| - builder()->LoadLookupSlot(variable->name(), typeof_mode);
|
| + switch (variable->mode()) {
|
| + case DYNAMIC_LOCAL: {
|
| + Variable* local_variable = variable->local_if_not_shadowed();
|
| + int depth =
|
| + execution_context()->ContextChainDepth(local_variable->scope());
|
| + builder()->LoadLookupContextSlot(variable->name(), typeof_mode,
|
| + local_variable->index(), depth);
|
| + BuildHoleCheckForVariableLoad(variable);
|
| + break;
|
| + }
|
| + default:
|
| + builder()->LoadLookupSlot(variable->name(), typeof_mode);
|
| + }
|
| break;
|
| }
|
| case VariableLocation::MODULE: {
|
|
|