Index: src/hydrogen.cc |
diff --git a/src/hydrogen.cc b/src/hydrogen.cc |
index 0019b6d578c803af9f19376d253cfc8945165ef6..48043e62f815a351c1e189ca0b1e46d449a40703 100644 |
--- a/src/hydrogen.cc |
+++ b/src/hydrogen.cc |
@@ -5291,8 +5291,11 @@ |
DCHECK(!HasStackOverflow()); |
DCHECK(current_block() != NULL); |
DCHECK(current_block()->HasPredecessor()); |
- Handle<SharedFunctionInfo> shared_info = Compiler::GetSharedFunctionInfo( |
- expr, current_info()->script(), top_info()); |
+ Handle<SharedFunctionInfo> shared_info = expr->shared_info(); |
+ if (shared_info.is_null()) { |
+ shared_info = |
+ Compiler::BuildFunctionInfo(expr, current_info()->script(), top_info()); |
+ } |
// We also have a stack overflow if the recursive compilation did. |
if (HasStackOverflow()) return; |
HFunctionLiteral* instr = |
@@ -11666,7 +11669,7 @@ |
switch (variable->location()) { |
case Variable::UNALLOCATED: { |
globals_.Add(variable->name(), zone()); |
- Handle<SharedFunctionInfo> function = Compiler::GetSharedFunctionInfo( |
+ Handle<SharedFunctionInfo> function = Compiler::BuildFunctionInfo( |
declaration->fun(), current_info()->script(), top_info()); |
// Check for stack-overflow exception. |
if (function.is_null()) return SetStackOverflow(); |