| Index: src/full-codegen.cc
|
| diff --git a/src/full-codegen.cc b/src/full-codegen.cc
|
| index 8ca40ccacd568033cee8b9cafd8a56a055ed0485..5cc4881549144433b40794db177012d084a32c7b 100644
|
| --- a/src/full-codegen.cc
|
| +++ b/src/full-codegen.cc
|
| @@ -433,6 +433,7 @@ void FullCodeGenerator::SetStatementPosition(
|
| bool recorded = RecordStatementPosition(masm_, stmt->position());
|
| if (recorded && insert_break == INSERT_BREAK && info_->is_debug() &&
|
| !stmt->IsDebuggerStatement()) {
|
| + masm_->RecordDebugBreakSlot();
|
| DebugCodegen::GenerateSlot(masm_);
|
| }
|
| }
|
| @@ -443,6 +444,7 @@ void FullCodeGenerator::SetExpressionPosition(
|
| if (expr->position() == RelocInfo::kNoPosition) return;
|
| bool recorded = RecordPosition(masm_, expr->position());
|
| if (recorded && insert_break == INSERT_BREAK && info_->is_debug()) {
|
| + masm_->RecordDebugBreakSlot();
|
| DebugCodegen::GenerateSlot(masm_);
|
| }
|
| }
|
| @@ -451,7 +453,32 @@ void FullCodeGenerator::SetExpressionPosition(
|
| void FullCodeGenerator::SetExpressionAsStatementPosition(Expression* expr) {
|
| if (expr->position() == RelocInfo::kNoPosition) return;
|
| bool recorded = RecordStatementPosition(masm_, expr->position());
|
| - if (recorded && info_->is_debug()) DebugCodegen::GenerateSlot(masm_);
|
| + if (recorded && info_->is_debug()) {
|
| + masm_->RecordDebugBreakSlot();
|
| + DebugCodegen::GenerateSlot(masm_);
|
| + }
|
| +}
|
| +
|
| +
|
| +void FullCodeGenerator::SetCallPosition(Expression* expr, int argc) {
|
| + if (expr->position() == RelocInfo::kNoPosition) return;
|
| + RecordPosition(masm_, expr->position());
|
| + if (info_->is_debug()) {
|
| + // Always emit a debug break slot before a call.
|
| + masm_->RecordDebugBreakSlotForCall(argc);
|
| + DebugCodegen::GenerateSlot(masm_);
|
| + }
|
| +}
|
| +
|
| +
|
| +void FullCodeGenerator::SetConstructCallPosition(Expression* expr) {
|
| + if (expr->position() == RelocInfo::kNoPosition) return;
|
| + RecordPosition(masm_, expr->position());
|
| + if (info_->is_debug()) {
|
| + // Always emit a debug break slot before a construct call.
|
| + masm_->RecordDebugBreakSlotForConstructCall();
|
| + DebugCodegen::GenerateSlot(masm_);
|
| + }
|
| }
|
|
|
|
|
|
|