Index: src/compiler.cc |
diff --git a/src/compiler.cc b/src/compiler.cc |
index 3d3a088ffd54c75624bf82d45d3cc8c4d1a9732b..07d4a5aee6adf95a91d1c35027128565b76d45f4 100644 |
--- a/src/compiler.cc |
+++ b/src/compiler.cc |
@@ -501,6 +501,7 @@ void EnsureFeedbackVector(CompilationInfo* info) { |
} |
bool UseIgnition(CompilationInfo* info) { |
+ if (info->is_debug()) return false; |
if (info->shared_info()->is_generator() && !FLAG_ignition_generators) { |
return false; |
} |
@@ -572,7 +573,7 @@ void InstallSharedScopeInfo(CompilationInfo* info, |
void InstallSharedCompilationResult(CompilationInfo* info, |
Handle<SharedFunctionInfo> shared) { |
// Assert that we are not overwriting (possibly patched) debug code. |
- DCHECK(!shared->HasDebugCode()); |
+ DCHECK(!shared->HasDebugInfo()); |
DCHECK(!info->code().is_null()); |
shared->ReplaceCode(*info->code()); |
if (info->has_bytecode_array()) { |
@@ -1326,6 +1327,11 @@ bool Compiler::EnsureDeoptimizationSupport(CompilationInfo* info) { |
DCHECK_NOT_NULL(info->literal()); |
DCHECK_NOT_NULL(info->scope()); |
Handle<SharedFunctionInfo> shared = info->shared_info(); |
+ if (shared->HasBytecodeArray() && |
+ HasInterpreterActivations(info->isolate(), *shared)) { |
+ // Do not tier up from here if we have bytecode on the stack. |
+ return false; |
+ } |
if (!shared->has_deoptimization_support()) { |
Zone zone(info->isolate()->allocator()); |
CompilationInfo unoptimized(info->parse_info(), info->closure()); |