| Index: src/arm/codegen-arm.cc
 | 
| ===================================================================
 | 
| --- src/arm/codegen-arm.cc	(revision 5270)
 | 
| +++ src/arm/codegen-arm.cc	(working copy)
 | 
| @@ -1222,7 +1222,21 @@
 | 
|      case Token::SHR:
 | 
|      case Token::SAR: {
 | 
|        ASSERT(!reversed);
 | 
| -      TypeInfo result = TypeInfo::Integer32();
 | 
| +      TypeInfo result =
 | 
| +          (op == Token::SAR) ? TypeInfo::Integer32() : TypeInfo::Number();
 | 
| +      if (!reversed) {
 | 
| +        if (op == Token::SHR) {
 | 
| +          if (int_value >= 2) {
 | 
| +            result = TypeInfo::Smi();
 | 
| +          } else if (int_value >= 1) {
 | 
| +            result = TypeInfo::Integer32();
 | 
| +          }
 | 
| +        } else {
 | 
| +          if (int_value >= 1) {
 | 
| +            result = TypeInfo::Smi();
 | 
| +          }
 | 
| +        }
 | 
| +      }
 | 
|        Register scratch = VirtualFrame::scratch0();
 | 
|        Register scratch2 = VirtualFrame::scratch1();
 | 
|        int shift_value = int_value & 0x1f;  // least significant 5 bits
 | 
| 
 |