| Index: src/ast/ast.cc | 
| diff --git a/src/ast/ast.cc b/src/ast/ast.cc | 
| index cc22ce1f1572a05218623b4ee50dd8ea3f9f5e3b..e5a252abd8c707ae26fac9ca422db225250a84a8 100644 | 
| --- a/src/ast/ast.cc | 
| +++ b/src/ast/ast.cc | 
| @@ -222,20 +222,19 @@ void VariableProxy::BindTo(Variable* var) { | 
| } | 
|  | 
| void VariableProxy::AssignFeedbackVectorSlots(FeedbackVectorSpec* spec, | 
| -                                              LanguageMode language_mode, | 
| +                                              TypeofMode typeof_mode, | 
| FeedbackVectorSlotCache* cache) { | 
| if (UsesVariableFeedbackSlot()) { | 
| // VariableProxies that point to the same Variable within a function can | 
| // make their loads from the same IC slot. | 
| if (var()->IsUnallocated() || var()->mode() == DYNAMIC_GLOBAL) { | 
| -      ZoneHashMap::Entry* entry = cache->Get(var()); | 
| -      if (entry != NULL) { | 
| -        variable_feedback_slot_ = FeedbackVectorSlot( | 
| -            static_cast<int>(reinterpret_cast<intptr_t>(entry->value))); | 
| +      FeedbackVectorSlot slot = cache->Get(typeof_mode, var()); | 
| +      if (!slot.IsInvalid()) { | 
| +        variable_feedback_slot_ = slot; | 
| return; | 
| } | 
| -      variable_feedback_slot_ = spec->AddLoadGlobalICSlot(); | 
| -      cache->Put(var(), variable_feedback_slot_); | 
| +      variable_feedback_slot_ = spec->AddLoadGlobalICSlot(typeof_mode); | 
| +      cache->Put(typeof_mode, var(), variable_feedback_slot_); | 
| } else { | 
| variable_feedback_slot_ = spec->AddLoadICSlot(); | 
| } | 
|  |