Index: src/interpreter/bytecode-generator.cc |
diff --git a/src/interpreter/bytecode-generator.cc b/src/interpreter/bytecode-generator.cc |
index 412c0d34356c56e3988c29f9da2418c6d2a00721..9c93da1d4770da67fca10f24d6eb914f32054ccf 100644 |
--- a/src/interpreter/bytecode-generator.cc |
+++ b/src/interpreter/bytecode-generator.cc |
@@ -1755,6 +1755,7 @@ void BytecodeGenerator::VisitArrayLiteral(ArrayLiteral* expr) { |
void BytecodeGenerator::VisitVariableProxy(VariableProxy* proxy) { |
+ builder()->SetExpressionPosition(proxy); |
VisitVariableLoad(proxy->var(), proxy->VariableFeedbackSlot()); |
} |
@@ -2199,6 +2200,7 @@ void BytecodeGenerator::VisitAssignment(Assignment* expr) { |
} |
// Store the value. |
+ builder()->SetExpressionPosition(expr); |
FeedbackVectorSlot slot = expr->AssignmentSlot(); |
switch (assign_type) { |
case VARIABLE: { |
@@ -2236,6 +2238,7 @@ void BytecodeGenerator::VisitYield(Yield* expr) { UNIMPLEMENTED(); } |
void BytecodeGenerator::VisitThrow(Throw* expr) { |
VisitForAccumulatorValue(expr->exception()); |
+ builder()->SetExpressionPosition(expr); |
builder()->Throw(); |
// Throw statments are modeled as expression instead of statments. These are |
// converted from assignment statements in Rewriter::ReWrite pass. An |
@@ -2248,6 +2251,7 @@ void BytecodeGenerator::VisitThrow(Throw* expr) { |
void BytecodeGenerator::VisitPropertyLoad(Register obj, Property* expr) { |
LhsKind property_kind = Property::GetAssignType(expr); |
FeedbackVectorSlot slot = expr->PropertyFeedbackSlot(); |
+ builder()->SetExpressionPosition(expr); |
switch (property_kind) { |
case VARIABLE: |
UNREACHABLE(); |
@@ -2756,6 +2760,7 @@ void BytecodeGenerator::VisitCountOperation(CountOperation* expr) { |
builder()->CountOperation(expr->binary_op()); |
// Store the value. |
+ builder()->SetExpressionPosition(expr); |
FeedbackVectorSlot feedback_slot = expr->CountSlot(); |
switch (assign_type) { |
case VARIABLE: { |
@@ -2815,6 +2820,7 @@ void BytecodeGenerator::VisitBinaryOperation(BinaryOperation* binop) { |
void BytecodeGenerator::VisitCompareOperation(CompareOperation* expr) { |
Register lhs = VisitForRegisterValue(expr->left()); |
VisitForAccumulatorValue(expr->right()); |
+ builder()->SetExpressionPosition(expr); |
builder()->CompareOperation(expr->op(), lhs); |
execution_result()->SetResultInAccumulator(); |
} |