| Index: src/interpreter/interpreter.cc | 
| diff --git a/src/interpreter/interpreter.cc b/src/interpreter/interpreter.cc | 
| index b65c779a7da84bc219f07c3ab741c5706f049524..bb731b455bf4afa740027200449273555cdb45bf 100644 | 
| --- a/src/interpreter/interpreter.cc | 
| +++ b/src/interpreter/interpreter.cc | 
| @@ -1057,12 +1057,23 @@ void Interpreter::DoCompareOpWithFeedback(Token::Value compare_op, | 
| __ Bind(&lhs_is_not_number); | 
| { | 
| Node* lhs_instance_type = __ LoadInstanceType(lhs); | 
| -        Node* lhs_type = | 
| +        if (Token::IsOrderedRelationalCompareOp(compare_op)) { | 
| +          Label lhs_is_not_oddball(assembler); | 
| +          __ GotoUnless( | 
| +              __ Word32Equal(lhs_instance_type, __ Int32Constant(ODDBALL_TYPE)), | 
| +              &lhs_is_not_oddball); | 
| + | 
| +          var_type_feedback.Bind( | 
| +              __ Int32Constant(CompareOperationFeedback::kNumberOrOddball)); | 
| +          __ Goto(&gather_rhs_type); | 
| + | 
| +          __ Bind(&lhs_is_not_oddball); | 
| +        } | 
| + | 
| +        var_type_feedback.Bind( | 
| __ Select(__ IsStringInstanceType(lhs_instance_type), | 
| __ Int32Constant(CompareOperationFeedback::kString), | 
| -                      __ Int32Constant(CompareOperationFeedback::kAny)); | 
| - | 
| -        var_type_feedback.Bind(lhs_type); | 
| +                      __ Int32Constant(CompareOperationFeedback::kAny))); | 
| __ Goto(&gather_rhs_type); | 
| } | 
| } | 
| @@ -1092,12 +1103,25 @@ void Interpreter::DoCompareOpWithFeedback(Token::Value compare_op, | 
| __ Bind(&rhs_is_not_number); | 
| { | 
| Node* rhs_instance_type = __ LoadInstanceType(rhs); | 
| -          Node* rhs_type = | 
| +          if (Token::IsOrderedRelationalCompareOp(compare_op)) { | 
| +            Label rhs_is_not_oddball(assembler); | 
| +            __ GotoUnless(__ Word32Equal(rhs_instance_type, | 
| +                                         __ Int32Constant(ODDBALL_TYPE)), | 
| +                          &rhs_is_not_oddball); | 
| + | 
| +            var_type_feedback.Bind(__ Word32Or( | 
| +                var_type_feedback.value(), | 
| +                __ Int32Constant(CompareOperationFeedback::kNumberOrOddball))); | 
| +            __ Goto(&update_feedback); | 
| + | 
| +            __ Bind(&rhs_is_not_oddball); | 
| +          } | 
| + | 
| +          var_type_feedback.Bind(__ Word32Or( | 
| +              var_type_feedback.value(), | 
| __ Select(__ IsStringInstanceType(rhs_instance_type), | 
| __ Int32Constant(CompareOperationFeedback::kString), | 
| -                        __ Int32Constant(CompareOperationFeedback::kAny)); | 
| -          var_type_feedback.Bind( | 
| -              __ Word32Or(var_type_feedback.value(), rhs_type)); | 
| +                        __ Int32Constant(CompareOperationFeedback::kAny)))); | 
| __ Goto(&update_feedback); | 
| } | 
| } | 
|  |