Index: src/interpreter/bytecode-generator.cc |
diff --git a/src/interpreter/bytecode-generator.cc b/src/interpreter/bytecode-generator.cc |
index 0dabea2ed31db0db4b2b42282162ce19e958f4ab..7a4c10dd8f8c9e2fcc4c83481f202c3eaef66959 100644 |
--- a/src/interpreter/bytecode-generator.cc |
+++ b/src/interpreter/bytecode-generator.cc |
@@ -2457,12 +2457,14 @@ void BytecodeGenerator::VisitCall(Call* expr) { |
// callee value. |
if (call_type == Call::POSSIBLY_EVAL_CALL && args->length() > 0) { |
RegisterAllocationScope inner_register_scope(this); |
- register_allocator()->PrepareForConsecutiveAllocations(5); |
+ register_allocator()->PrepareForConsecutiveAllocations(6); |
Register callee_for_eval = register_allocator()->NextConsecutiveRegister(); |
Register source = register_allocator()->NextConsecutiveRegister(); |
Register function = register_allocator()->NextConsecutiveRegister(); |
Register language = register_allocator()->NextConsecutiveRegister(); |
- Register position = register_allocator()->NextConsecutiveRegister(); |
+ Register eval_scope_position = |
+ register_allocator()->NextConsecutiveRegister(); |
+ Register eval_position = register_allocator()->NextConsecutiveRegister(); |
// Set up arguments for ResolvePossiblyDirectEval by copying callee, source |
// strings and function closure, and loading language and |
@@ -2475,11 +2477,13 @@ void BytecodeGenerator::VisitCall(Call* expr) { |
.StoreAccumulatorInRegister(language) |
.LoadLiteral( |
Smi::FromInt(execution_context()->scope()->start_position())) |
- .StoreAccumulatorInRegister(position); |
+ .StoreAccumulatorInRegister(eval_scope_position) |
+ .LoadLiteral(Smi::FromInt(expr->position())) |
+ .StoreAccumulatorInRegister(eval_position); |
// Call ResolvePossiblyDirectEval and modify the callee. |
builder() |
- ->CallRuntime(Runtime::kResolvePossiblyDirectEval, callee_for_eval, 5) |
+ ->CallRuntime(Runtime::kResolvePossiblyDirectEval, callee_for_eval, 6) |
.StoreAccumulatorInRegister(callee); |
} |