| Index: src/ia32/codegen-ia32.cc
|
| diff --git a/src/ia32/codegen-ia32.cc b/src/ia32/codegen-ia32.cc
|
| index b3ca0c41de47969f414963e62514ef150d6a1462..8caffbc46203457343d60d562913649da1c4e9be 100644
|
| --- a/src/ia32/codegen-ia32.cc
|
| +++ b/src/ia32/codegen-ia32.cc
|
| @@ -191,10 +191,8 @@ void CodeGenerator::Generate(CompilationInfo* info) {
|
| }
|
| #endif
|
|
|
| - // New scope to get automatic timing calculation.
|
| - { HistogramTimerScope codegen_timer(&Counters::code_generation);
|
| + {
|
| CodeGenState state(this);
|
| -
|
| // Entry:
|
| // Stack: receiver, arguments, return address.
|
| // ebp: caller's frame pointer
|
| @@ -369,7 +367,6 @@ void CodeGenerator::Generate(CompilationInfo* info) {
|
|
|
| // Process any deferred code using the register allocator.
|
| if (!HasStackOverflow()) {
|
| - HistogramTimerScope deferred_timer(&Counters::deferred_code_generation);
|
| JumpTarget::set_compiling_deferred_code(true);
|
| ProcessDeferred();
|
| JumpTarget::set_compiling_deferred_code(false);
|
| @@ -4925,9 +4922,12 @@ void CodeGenerator::VisitFunctionLiteral(FunctionLiteral* node) {
|
| ASSERT(!in_safe_int32_mode());
|
| // Build the function info and instantiate it.
|
| Handle<SharedFunctionInfo> function_info =
|
| - Compiler::BuildFunctionInfo(node, script(), this);
|
| + Compiler::BuildFunctionInfo(node, script());
|
| // Check for stack-overflow exception.
|
| - if (HasStackOverflow()) return;
|
| + if (function_info.is_null()) {
|
| + SetStackOverflow();
|
| + return;
|
| + }
|
| Result result = InstantiateFunction(function_info);
|
| frame()->Push(&result);
|
| }
|
|
|