Index: src/compiler.cc |
diff --git a/src/compiler.cc b/src/compiler.cc |
index 304807bc626d36356a86d3cc7e13ac4ba721822a..de6c255c1960bb793d953e6cd37d6393e8b54e97 100644 |
--- a/src/compiler.cc |
+++ b/src/compiler.cc |
@@ -851,8 +851,14 @@ class InterpreterActivationsFinder : public ThreadVisitor, |
JavaScriptFrameIterator it(isolate, top); |
for (; !it.done(); it.Advance()) { |
JavaScriptFrame* frame = it.frame(); |
- if (!frame->is_interpreted()) continue; |
- if (frame->function()->shared() == shared_) { |
+ if (FLAG_turbo_from_bytecode && FLAG_ignition_osr && |
+ frame->is_optimized() && frame->function()->shared() == shared_) { |
+ // If we are able to optimize functions directly from bytecode, then |
+ // there might be optimized OSR code active on the stack that is not |
+ // reachable through a function. We count this as an activation. |
+ has_activations_ = true; |
+ } |
+ if (frame->is_interpreted() && frame->function()->shared() == shared_) { |
has_activations_ = true; |
activation_pc_address = frame->pc_address(); |
} |