| Index: src/interpreter/bytecode-array-builder.cc
|
| diff --git a/src/interpreter/bytecode-array-builder.cc b/src/interpreter/bytecode-array-builder.cc
|
| index 7f22ccbb4b7eb00efcecdecc0b6e0f38c59bf9fc..33c8317519df8ca5ae42018e653e803fd3cd58a0 100644
|
| --- a/src/interpreter/bytecode-array-builder.cc
|
| +++ b/src/interpreter/bytecode-array-builder.cc
|
| @@ -461,14 +461,22 @@ BytecodeArrayBuilder& BytecodeArrayBuilder::StoreGlobal(
|
| BytecodeArrayBuilder& BytecodeArrayBuilder::LoadContextSlot(Register context,
|
| int slot_index,
|
| int depth) {
|
| - OutputLdaContextSlot(context, slot_index, depth);
|
| + if (context.is_current_context() && depth == 0) {
|
| + OutputLdaLocalContextSlot(slot_index);
|
| + } else {
|
| + OutputLdaContextSlot(context, slot_index, depth);
|
| + }
|
| return *this;
|
| }
|
|
|
| BytecodeArrayBuilder& BytecodeArrayBuilder::StoreContextSlot(Register context,
|
| int slot_index,
|
| int depth) {
|
| - OutputStaContextSlot(context, slot_index, depth);
|
| + if (context.is_current_context() && depth == 0) {
|
| + OutputStaLocalContextSlot(slot_index);
|
| + } else {
|
| + OutputStaContextSlot(context, slot_index, depth);
|
| + }
|
| return *this;
|
| }
|
|
|
|
|