Index: src/compiler.cc |
diff --git a/src/compiler.cc b/src/compiler.cc |
index 5ed274a7a20f4ae734db91772bcdfb7d7e64e536..2072f0d980182de34b38f956db981d18472bf69d 100644 |
--- a/src/compiler.cc |
+++ b/src/compiler.cc |
@@ -231,12 +231,6 @@ bool CompilationInfo::ShouldSelfOptimize() { |
} |
-void CompilationInfo::AbortOptimization() { |
- Handle<Code> code(shared_info()->code()); |
- SetCode(code); |
-} |
- |
- |
// Determine whether to use the full compiler for all code. If the flag |
// --always-full-compiler is specified this is the case. For the virtual frame |
// based compiler the full compiler is also used if a debugger is connected, as |
@@ -322,8 +316,7 @@ OptimizingCompiler::Status OptimizingCompiler::CreateGraph() { |
// We should never arrive here if there is no code object on the |
// shared function object. |
- Handle<Code> code(info()->shared_info()->code()); |
- ASSERT(code->kind() == Code::FUNCTION); |
+ ASSERT(info()->shared_info()->code()->kind() == Code::FUNCTION); |
// We should never arrive here if optimization has been disabled on the |
// shared function info. |
@@ -333,7 +326,7 @@ OptimizingCompiler::Status OptimizingCompiler::CreateGraph() { |
// to use the Hydrogen-based optimizing compiler. We already have |
// generated code for this from the shared function object. |
if (AlwaysFullCompiler(isolate())) { |
- info()->SetCode(code); |
+ info()->AbortOptimization(); |
return SetLastStatus(BAILED_OUT); |
} |
@@ -369,8 +362,8 @@ OptimizingCompiler::Status OptimizingCompiler::CreateGraph() { |
// Take --hydrogen-filter into account. |
if (!info()->closure()->PassesHydrogenFilter()) { |
- info()->SetCode(code); |
- return SetLastStatus(BAILED_OUT); |
+ info()->AbortOptimization(); |
+ return SetLastStatus(BAILED_OUT); |
} |
// Recompile the unoptimized version of the code if the current version |
@@ -410,7 +403,7 @@ OptimizingCompiler::Status OptimizingCompiler::CreateGraph() { |
// optimizable marker in the code object and optimize anyway. This |
// is safe as long as the unoptimized code has deoptimization |
// support. |
- ASSERT(FLAG_always_opt || code->optimizable()); |
+ ASSERT(FLAG_always_opt || info()->shared_info()->code()->optimizable()); |
ASSERT(info()->shared_info()->has_deoptimization_support()); |
if (FLAG_trace_hydrogen) { |
@@ -1088,7 +1081,7 @@ void Compiler::InstallOptimizedCode(OptimizingCompiler* optimizing_compiler) { |
PrintF(" installed.\n"); |
} |
} else { |
- info->SetCode(Handle<Code>(info->shared_info()->code())); |
+ info->AbortOptimization(); |
InstallFullCode(*info); |
} |
// Optimized code is finally replacing unoptimized code. Reset the latter's |