| Index: src/hydrogen.cc | 
| diff --git a/src/hydrogen.cc b/src/hydrogen.cc | 
| index 6bc7f6982fb798f442eb5a55da8b380ac7868d0c..bb0ceada840fdbde9bdd0ae2f8adb37ffbbf90e0 100644 | 
| --- a/src/hydrogen.cc | 
| +++ b/src/hydrogen.cc | 
| @@ -5909,18 +5909,27 @@ void HOptimizedGraphBuilder::HandleGlobalVariableAssignment( | 
| Handle<GlobalObject> global(current_info()->global_object()); | 
| Handle<PropertyCell> cell(global->GetPropertyCell(&lookup)); | 
| if (cell->type()->IsConstant()) { | 
| -      IfBuilder builder(this); | 
| -      HValue* constant = Add<HConstant>(cell->type()->AsConstant()); | 
| -      if (cell->type()->AsConstant()->IsNumber()) { | 
| -        builder.If<HCompareNumericAndBranch>(value, constant, Token::EQ); | 
| +      Handle<Object> constant = cell->type()->AsConstant(); | 
| +      if (value->IsConstant()) { | 
| +        HConstant* c_value = HConstant::cast(value); | 
| +        if (!constant.is_identical_to(c_value->handle(isolate()))) { | 
| +          Add<HDeoptimize>("Constant global variable assignment", | 
| +                           Deoptimizer::EAGER); | 
| +        } | 
| } else { | 
| -        builder.If<HCompareObjectEqAndBranch>(value, constant); | 
| +        HValue* c_constant = Add<HConstant>(constant); | 
| +        IfBuilder builder(this); | 
| +        if (constant->IsNumber()) { | 
| +          builder.If<HCompareNumericAndBranch>(value, c_constant, Token::EQ); | 
| +        } else { | 
| +          builder.If<HCompareObjectEqAndBranch>(value, c_constant); | 
| +        } | 
| +        builder.Then(); | 
| +        builder.Else(); | 
| +        Add<HDeoptimize>("Constant global variable assignment", | 
| +                         Deoptimizer::EAGER); | 
| +        builder.End(); | 
| } | 
| -      builder.Then(); | 
| -      builder.Else(); | 
| -      Add<HDeoptimize>("Constant global variable assignment", | 
| -                       Deoptimizer::EAGER); | 
| -      builder.End(); | 
| } | 
| HInstruction* instr = | 
| Add<HStoreGlobalCell>(value, cell, lookup.GetPropertyDetails()); | 
|  |