| 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.
|
|
|