Index: src/compiler.cc |
diff --git a/src/compiler.cc b/src/compiler.cc |
index 8fac53e970322fee813cdfbd3e05cb07ef7a6239..7e658c34cb7598fba57f3c087b6a0bc0fbc9e575 100644 |
--- a/src/compiler.cc |
+++ b/src/compiler.cc |
@@ -143,7 +143,9 @@ CompilationInfo::CompilationInfo(ParseInfo* parse_info, |
debug_name_(debug_name) {} |
CompilationInfo::~CompilationInfo() { |
- DisableFutureOptimization(); |
+ if (GetFlag(kDisableFutureOptimization) && has_shared_info()) { |
+ shared_info()->DisableOptimization(bailout_reason()); |
+ } |
dependencies()->Rollback(); |
delete deferred_handles_; |
} |
@@ -627,9 +629,9 @@ bool Renumber(ParseInfo* parse_info) { |
if (lit->dont_optimize_reason() != kNoReason) { |
shared_info->DisableOptimization(lit->dont_optimize_reason()); |
} |
- shared_info->set_dont_crankshaft( |
- shared_info->dont_crankshaft() || |
- (lit->flags() & AstProperties::kDontCrankshaft)); |
+ if (lit->flags() & AstProperties::kDontCrankshaft) { |
+ shared_info->set_dont_crankshaft(true); |
+ } |
} |
return true; |
} |