| Index: src/interpreter/bytecode-generator.cc
|
| diff --git a/src/interpreter/bytecode-generator.cc b/src/interpreter/bytecode-generator.cc
|
| index 4163d0786c195317b5685a0e653ec1a290bb50dc..d43193aa6ae90b35581775da436ac6d21a2dcdf0 100644
|
| --- a/src/interpreter/bytecode-generator.cc
|
| +++ b/src/interpreter/bytecode-generator.cc
|
| @@ -574,6 +574,7 @@ Handle<BytecodeArray> BytecodeGenerator::MakeBytecode(CompilationInfo* info) {
|
| MakeBytecodeBody();
|
| }
|
|
|
| + builder()->EnsureReturn(info->literal());
|
| set_scope(nullptr);
|
| set_info(nullptr);
|
| return builder()->ToBytecodeArray();
|
| @@ -805,6 +806,7 @@ void BytecodeGenerator::VisitStatements(ZoneList<Statement*>* statements) {
|
|
|
|
|
| void BytecodeGenerator::VisitExpressionStatement(ExpressionStatement* stmt) {
|
| + builder()->SetStatementPosition(stmt);
|
| VisitForEffect(stmt->expression());
|
| }
|
|
|
| @@ -860,6 +862,7 @@ void BytecodeGenerator::VisitBreakStatement(BreakStatement* stmt) {
|
|
|
| void BytecodeGenerator::VisitReturnStatement(ReturnStatement* stmt) {
|
| VisitForAccumulatorValue(stmt->expression());
|
| + builder()->SetReturnPosition(info_->literal());
|
| execution_control()->ReturnAccumulator();
|
| }
|
|
|
| @@ -1215,6 +1218,7 @@ void BytecodeGenerator::VisitTryFinallyStatement(TryFinallyStatement* stmt) {
|
|
|
|
|
| void BytecodeGenerator::VisitDebuggerStatement(DebuggerStatement* stmt) {
|
| + builder()->SetStatementPosition(stmt);
|
| builder()->Debugger();
|
| }
|
|
|
|
|