| OLD | NEW | 
|---|
| 1 // Copyright 2012 the V8 project authors. All rights reserved. | 1 // Copyright 2012 the V8 project authors. All rights reserved. | 
| 2 // Use of this source code is governed by a BSD-style license that can be | 2 // Use of this source code is governed by a BSD-style license that can be | 
| 3 // found in the LICENSE file. | 3 // found in the LICENSE file. | 
| 4 | 4 | 
| 5 #include "src/v8.h" | 5 #include "src/v8.h" | 
| 6 | 6 | 
| 7 #include "src/ast.h" | 7 #include "src/ast.h" | 
| 8 #include "src/ast-numbering.h" | 8 #include "src/ast-numbering.h" | 
| 9 #include "src/code-factory.h" | 9 #include "src/code-factory.h" | 
| 10 #include "src/codegen.h" | 10 #include "src/codegen.h" | 
| (...skipping 420 matching lines...) Expand 10 before | Expand all | Expand 10 after  Loading... | 
| 431   RecordStatementPosition(masm_, fun->end_position() - 1); | 431   RecordStatementPosition(masm_, fun->end_position() - 1); | 
| 432 } | 432 } | 
| 433 | 433 | 
| 434 | 434 | 
| 435 void FullCodeGenerator::SetStatementPosition( | 435 void FullCodeGenerator::SetStatementPosition( | 
| 436     Statement* stmt, FullCodeGenerator::InsertBreak insert_break) { | 436     Statement* stmt, FullCodeGenerator::InsertBreak insert_break) { | 
| 437   if (stmt->position() == RelocInfo::kNoPosition) return; | 437   if (stmt->position() == RelocInfo::kNoPosition) return; | 
| 438   bool recorded = RecordStatementPosition(masm_, stmt->position()); | 438   bool recorded = RecordStatementPosition(masm_, stmt->position()); | 
| 439   if (recorded && insert_break == INSERT_BREAK && info_->is_debug() && | 439   if (recorded && insert_break == INSERT_BREAK && info_->is_debug() && | 
| 440       !stmt->IsDebuggerStatement()) { | 440       !stmt->IsDebuggerStatement()) { | 
|  | 441     masm_->RecordDebugBreakSlot(); | 
| 441     DebugCodegen::GenerateSlot(masm_); | 442     DebugCodegen::GenerateSlot(masm_); | 
| 442   } | 443   } | 
| 443 } | 444 } | 
| 444 | 445 | 
| 445 | 446 | 
| 446 void FullCodeGenerator::SetExpressionPosition( | 447 void FullCodeGenerator::SetExpressionPosition( | 
| 447     Expression* expr, FullCodeGenerator::InsertBreak insert_break) { | 448     Expression* expr, FullCodeGenerator::InsertBreak insert_break) { | 
| 448   if (expr->position() == RelocInfo::kNoPosition) return; | 449   if (expr->position() == RelocInfo::kNoPosition) return; | 
| 449   bool recorded = RecordPosition(masm_, expr->position()); | 450   bool recorded = RecordPosition(masm_, expr->position()); | 
| 450   if (recorded && insert_break == INSERT_BREAK && info_->is_debug()) { | 451   if (recorded && insert_break == INSERT_BREAK && info_->is_debug()) { | 
|  | 452     masm_->RecordDebugBreakSlot(); | 
| 451     DebugCodegen::GenerateSlot(masm_); | 453     DebugCodegen::GenerateSlot(masm_); | 
| 452   } | 454   } | 
| 453 } | 455 } | 
| 454 | 456 | 
| 455 | 457 | 
| 456 void FullCodeGenerator::SetExpressionAsStatementPosition(Expression* expr) { | 458 void FullCodeGenerator::SetExpressionAsStatementPosition(Expression* expr) { | 
| 457   if (expr->position() == RelocInfo::kNoPosition) return; | 459   if (expr->position() == RelocInfo::kNoPosition) return; | 
| 458   bool recorded = RecordStatementPosition(masm_, expr->position()); | 460   bool recorded = RecordStatementPosition(masm_, expr->position()); | 
| 459   if (recorded && info_->is_debug()) DebugCodegen::GenerateSlot(masm_); | 461   if (recorded && info_->is_debug()) { | 
|  | 462     masm_->RecordDebugBreakSlot(); | 
|  | 463     DebugCodegen::GenerateSlot(masm_); | 
|  | 464   } | 
| 460 } | 465 } | 
| 461 | 466 | 
| 462 | 467 | 
|  | 468 void FullCodeGenerator::SetCallPosition(Expression* expr, int argc) { | 
|  | 469   if (expr->position() == RelocInfo::kNoPosition) return; | 
|  | 470   RecordPosition(masm_, expr->position()); | 
|  | 471   if (info_->is_debug()) { | 
|  | 472     // Always emit a debug break slot for a call. | 
|  | 473     masm_->RecordDebugBreakSlotForCall(argc); | 
|  | 474     DebugCodegen::GenerateSlot(masm_); | 
|  | 475   } | 
|  | 476 } | 
|  | 477 | 
|  | 478 | 
| 463 void FullCodeGenerator::VisitSuperPropertyReference( | 479 void FullCodeGenerator::VisitSuperPropertyReference( | 
| 464     SuperPropertyReference* super) { | 480     SuperPropertyReference* super) { | 
| 465   __ CallRuntime(Runtime::kThrowUnsupportedSuperError, 0); | 481   __ CallRuntime(Runtime::kThrowUnsupportedSuperError, 0); | 
| 466 } | 482 } | 
| 467 | 483 | 
| 468 | 484 | 
| 469 void FullCodeGenerator::VisitSuperCallReference(SuperCallReference* super) { | 485 void FullCodeGenerator::VisitSuperCallReference(SuperCallReference* super) { | 
| 470   __ CallRuntime(Runtime::kThrowUnsupportedSuperError, 0); | 486   __ CallRuntime(Runtime::kThrowUnsupportedSuperError, 0); | 
| 471 } | 487 } | 
| 472 | 488 | 
| (...skipping 961 matching lines...) Expand 10 before | Expand all | Expand 10 after  Loading... | 
| 1434   codegen_->PrepareForBailoutForId(exit_id_, NO_REGISTERS); | 1450   codegen_->PrepareForBailoutForId(exit_id_, NO_REGISTERS); | 
| 1435   codegen_->scope_ = saved_scope_; | 1451   codegen_->scope_ = saved_scope_; | 
| 1436 } | 1452 } | 
| 1437 | 1453 | 
| 1438 | 1454 | 
| 1439 #undef __ | 1455 #undef __ | 
| 1440 | 1456 | 
| 1441 | 1457 | 
| 1442 }  // namespace internal | 1458 }  // namespace internal | 
| 1443 }  // namespace v8 | 1459 }  // namespace v8 | 
| OLD | NEW | 
|---|