Index: src/interpreter/interpreter.cc |
diff --git a/src/interpreter/interpreter.cc b/src/interpreter/interpreter.cc |
index 775fbca5e56ceb7e30e1e5959233e0b870cac095..5de68769036f43095b6ac6f6db9db18a07c51a1c 100644 |
--- a/src/interpreter/interpreter.cc |
+++ b/src/interpreter/interpreter.cc |
@@ -467,8 +467,7 @@ void Interpreter::DoLoadLookupSlot(Runtime::FunctionId function_id, |
Node* index = __ BytecodeOperandIdx(0); |
Node* name = __ LoadConstantPoolEntry(index); |
Node* context = __ GetContext(); |
- Node* result_pair = __ CallRuntime(function_id, context, context, name); |
- Node* result = __ Projection(0, result_pair); |
+ Node* result = __ CallRuntime(function_id, context, name); |
__ SetAccumulator(result); |
__ Dispatch(); |
} |
@@ -488,7 +487,7 @@ void Interpreter::DoLdaLookupSlot(InterpreterAssembler* assembler) { |
// Lookup the object with the name in constant pool entry |name_index| |
// dynamically without causing a NoReferenceError. |
void Interpreter::DoLdaLookupSlotInsideTypeof(InterpreterAssembler* assembler) { |
- DoLoadLookupSlot(Runtime::kLoadLookupSlotNoReferenceError, assembler); |
+ DoLoadLookupSlot(Runtime::kLoadLookupSlotInsideTypeof, assembler); |
} |
@@ -516,9 +515,10 @@ void Interpreter::DoStoreLookupSlot(LanguageMode language_mode, |
Node* index = __ BytecodeOperandIdx(0); |
Node* name = __ LoadConstantPoolEntry(index); |
Node* context = __ GetContext(); |
- Node* language_mode_node = __ NumberConstant(language_mode); |
- Node* result = __ CallRuntime(Runtime::kStoreLookupSlot, context, value, |
- context, name, language_mode_node); |
+ Node* result = __ CallRuntime(is_strict(language_mode) |
+ ? Runtime::kStoreLookupSlot_Strict |
+ : Runtime::kStoreLookupSlot_Sloppy, |
+ context, name, value); |
__ SetAccumulator(result); |
__ Dispatch(); |
} |
@@ -1027,8 +1027,7 @@ void Interpreter::DoDeletePropertySloppy(InterpreterAssembler* assembler) { |
void Interpreter::DoDeleteLookupSlot(InterpreterAssembler* assembler) { |
Node* name = __ GetAccumulator(); |
Node* context = __ GetContext(); |
- Node* result = |
- __ CallRuntime(Runtime::kDeleteLookupSlot, context, context, name); |
+ Node* result = __ CallRuntime(Runtime::kDeleteLookupSlot, context, name); |
__ SetAccumulator(result); |
__ Dispatch(); |
} |