| 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 a1da615178ecb87ce8b5af32963428e89eb3c461..8d103ed13b5e03f4d1e3476e25670eaa688ea9d1 100644
|
| --- a/src/full-codegen/ia32/full-codegen-ia32.cc
|
| +++ b/src/full-codegen/ia32/full-codegen-ia32.cc
|
| @@ -288,37 +288,35 @@ void FullCodeGenerator::Generate() {
|
| __ CallRuntime(Runtime::kTraceEnter);
|
| }
|
|
|
| - // Visit the declarations and body unless there is an illegal
|
| - // redeclaration.
|
| - if (scope()->HasIllegalRedeclaration()) {
|
| - EmitIllegalRedeclaration();
|
| - } else {
|
| - PrepareForBailoutForId(BailoutId::FunctionEntry(), NO_REGISTERS);
|
| - { Comment cmnt(masm_, "[ Declarations");
|
| - 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;
|
| - ExternalReference stack_limit
|
| - = ExternalReference::address_of_stack_limit(isolate());
|
| - __ cmp(esp, Operand::StaticVariable(stack_limit));
|
| - __ j(above_equal, &ok, Label::kNear);
|
| - __ call(isolate()->builtins()->StackCheck(), RelocInfo::CODE_TARGET);
|
| - __ bind(&ok);
|
| - }
|
| -
|
| - { Comment cmnt(masm_, "[ Body");
|
| - DCHECK(loop_depth() == 0);
|
| - VisitStatements(literal()->body());
|
| - DCHECK(loop_depth() == 0);
|
| - }
|
| + // Visit the declarations and body.
|
| + PrepareForBailoutForId(BailoutId::FunctionEntry(), NO_REGISTERS);
|
| + {
|
| + Comment cmnt(masm_, "[ Declarations");
|
| + 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;
|
| + ExternalReference stack_limit =
|
| + ExternalReference::address_of_stack_limit(isolate());
|
| + __ cmp(esp, Operand::StaticVariable(stack_limit));
|
| + __ j(above_equal, &ok, Label::kNear);
|
| + __ call(isolate()->builtins()->StackCheck(), RelocInfo::CODE_TARGET);
|
| + __ bind(&ok);
|
| + }
|
| +
|
| + {
|
| + Comment cmnt(masm_, "[ Body");
|
| + DCHECK(loop_depth() == 0);
|
| + VisitStatements(literal()->body());
|
| + DCHECK(loop_depth() == 0);
|
| }
|
|
|
| // Always emit a 'return undefined' in case control fell off the end of
|
|
|