Index: src/hydrogen.cc |
diff --git a/src/hydrogen.cc b/src/hydrogen.cc |
index 38676624c618eeb3fa19fb257c75d37c3191c186..d700fd2e34c65ee621f470242e64b00b789aa9b3 100644 |
--- a/src/hydrogen.cc |
+++ b/src/hydrogen.cc |
@@ -33,6 +33,7 @@ |
#include "hashmap.h" |
#include "lithium-allocator.h" |
#include "parser.h" |
+#include "scopeinfo.h" |
#include "scopes.h" |
#include "stub-cache.h" |
@@ -4430,6 +4431,13 @@ bool HGraphBuilder::TryInline(Call* expr) { |
TraceInline(target, caller, "could not generate deoptimization info"); |
return false; |
} |
+ if (target_shared->scope_info() == SerializedScopeInfo::Empty()) { |
+ // The scope info might not have been set if a lazily compiled |
+ // function is inlined before being called for the first time. |
+ Handle<SerializedScopeInfo> target_scope_info = |
+ SerializedScopeInfo::Create(target_info.scope()); |
+ target_shared->set_scope_info(*target_scope_info); |
+ } |
target_shared->EnableDeoptimizationSupport(*target_info.code()); |
Compiler::RecordFunctionCompilation(Logger::FUNCTION_TAG, |
&target_info, |