Index: src/hydrogen.cc |
diff --git a/src/hydrogen.cc b/src/hydrogen.cc |
index 1b66e64adf3df41fd3734d053e0237d957f23744..158bfbe369bc8477b5ec8601315285343e8da27f 100644 |
--- a/src/hydrogen.cc |
+++ b/src/hydrogen.cc |
@@ -3228,7 +3228,7 @@ void HGraphBuilder::HandlePolymorphicStoreNamedField(Assignment* expr, |
// Finish up. Unconditionally deoptimize if we've handled all the maps we |
// know about and do not want to handle ones we've never seen. Otherwise |
// use a generic IC. |
- if (count == types->length() && FLAG_deoptimize_uncommon_cases) { |
+ if (count == types->length() && FLAG_deoptimize_uncommon_cases) { |
current_block()->FinishExit(new HDeoptimize); |
} else { |
HInstruction* instr = BuildStoreNamedGeneric(object, name, value); |
@@ -4447,13 +4447,15 @@ void HGraphBuilder::VisitCall(Call* expr) { |
} |
if (global_call) { |
+ bool known_global_function = false; |
// If there is a global property cell for the name at compile time and |
// access check is not enabled we assume that the function will not change |
// and generate optimized code for calling the function. |
- bool known_global_function = info()->has_global_object() && |
- !info()->global_object()->IsAccessCheckNeeded() && |
- expr->ComputeGlobalTarget(Handle<GlobalObject>(info()->global_object()), |
- var->name()); |
+ if (info()->has_global_object() && |
+ !info()->global_object()->IsAccessCheckNeeded()) { |
+ Handle<GlobalObject> global(info()->global_object()); |
+ known_global_function = expr->ComputeGlobalTarget(global, var->name()); |
+ } |
if (known_global_function) { |
// Push the global object instead of the global receiver because |
// code generated by the full code generator expects it. |