Index: src/full-codegen/ia32/full-codegen-ia32.cc |
diff --git a/src/full-codegen/ia32/full-codegen-ia32.cc b/src/full-codegen/ia32/full-codegen-ia32.cc |
index 6652c92e9fd2f0a9dbdf1d48bab44a3ae11031bb..00dd821a7552ac053b9dbd4fa3909c6da3eea5a4 100644 |
--- a/src/full-codegen/ia32/full-codegen-ia32.cc |
+++ b/src/full-codegen/ia32/full-codegen-ia32.cc |
@@ -350,6 +350,11 @@ void FullCodeGenerator::Generate() { |
VisitDeclarations(scope()->declarations()); |
} |
+ // Assert that the declarations do not use ICs. Otherwise the debugger |
+ // won't be able to redirect a PC at an IC to the correct IC in newly |
+ // recompiled code. |
+ DCHECK_EQ(0, ic_total_count_); |
+ |
{ Comment cmnt(masm_, "[ Stack check"); |
PrepareForBailoutForId(BailoutId::Declarations(), NO_REGISTERS); |
Label ok; |
@@ -2649,6 +2654,9 @@ void FullCodeGenerator::EmitVariableAssignment(Variable* var, Token::Value op, |
__ bind(&assign); |
EmitStoreToStackLocalOrContextSlot(var, location); |
+ printf("let "); |
mvstanton
2015/07/30 13:44:07
This should go, right?
Yang
2015/07/30 13:45:58
Correct. Thanks for catching this!
|
+ var->name()->Print(); |
+ |
} else if (var->mode() == CONST && op != Token::INIT_CONST) { |
// Assignment to const variable needs a write barrier. |
DCHECK(!var->IsLookupSlot()); |
@@ -2663,6 +2671,9 @@ void FullCodeGenerator::EmitVariableAssignment(Variable* var, Token::Value op, |
__ bind(&const_error); |
__ CallRuntime(Runtime::kThrowConstAssignError, 0); |
+ printf("con "); |
+ var->name()->Print(); |
+ |
} else if (var->is_this() && op == Token::INIT_CONST) { |
// Initializing assignment to const {this} needs a write barrier. |
DCHECK(var->IsStackAllocated() || var->IsContextSlot()); |