| Index: src/compiler/representation-change.cc | 
| diff --git a/src/compiler/representation-change.cc b/src/compiler/representation-change.cc | 
| index c564b9957b2c2769b6675a46bf30ab476432a5a0..1ebcd1a6796ca20ddb3a927f9398c3c83f017d32 100644 | 
| --- a/src/compiler/representation-change.cc | 
| +++ b/src/compiler/representation-change.cc | 
| @@ -291,17 +291,9 @@ Node* RepresentationChanger::GetTaggedPointerRepresentationFor( | 
| case IrOpcode::kHeapConstant: | 
| return node;  // No change necessary. | 
| case IrOpcode::kInt32Constant: | 
| -      if (output_type->Is(Type::Boolean())) { | 
| -        return OpParameter<int32_t>(node) == 0 ? jsgraph()->FalseConstant() | 
| -                                               : jsgraph()->TrueConstant(); | 
| -      } else { | 
| -        return TypeError(node, output_rep, output_type, | 
| -                         MachineRepresentation::kTaggedPointer); | 
| -      } | 
| case IrOpcode::kFloat64Constant: | 
| case IrOpcode::kFloat32Constant: | 
| -      return TypeError(node, output_rep, output_type, | 
| -                       MachineRepresentation::kTaggedPointer); | 
| +      UNREACHABLE(); | 
| default: | 
| break; | 
| } | 
| @@ -324,23 +316,10 @@ Node* RepresentationChanger::GetTaggedRepresentationFor( | 
| case IrOpcode::kHeapConstant: | 
| return node;  // No change necessary. | 
| case IrOpcode::kInt32Constant: | 
| -      if (output_type->Is(Type::Signed32())) { | 
| -        int32_t value = OpParameter<int32_t>(node); | 
| -        return jsgraph()->Constant(value); | 
| -      } else if (output_type->Is(Type::Unsigned32())) { | 
| -        uint32_t value = static_cast<uint32_t>(OpParameter<int32_t>(node)); | 
| -        return jsgraph()->Constant(static_cast<double>(value)); | 
| -      } else if (output_type->Is(Type::Boolean())) { | 
| -        return OpParameter<int32_t>(node) == 0 ? jsgraph()->FalseConstant() | 
| -                                               : jsgraph()->TrueConstant(); | 
| -      } else { | 
| -        return TypeError(node, output_rep, output_type, | 
| -                         MachineRepresentation::kTagged); | 
| -      } | 
| case IrOpcode::kFloat64Constant: | 
| -      return jsgraph()->Constant(OpParameter<double>(node)); | 
| case IrOpcode::kFloat32Constant: | 
| -      return jsgraph()->Constant(OpParameter<float>(node)); | 
| +      UNREACHABLE(); | 
| +      break; | 
| default: | 
| break; | 
| } | 
| @@ -408,20 +387,14 @@ Node* RepresentationChanger::GetFloat32RepresentationFor( | 
| Truncation truncation) { | 
| // Eagerly fold representation changes for constants. | 
| switch (node->opcode()) { | 
| -    case IrOpcode::kFloat64Constant: | 
| case IrOpcode::kNumberConstant: | 
| return jsgraph()->Float32Constant( | 
| DoubleToFloat32(OpParameter<double>(node))); | 
| case IrOpcode::kInt32Constant: | 
| -      if (output_type->Is(Type::Unsigned32())) { | 
| -        uint32_t value = static_cast<uint32_t>(OpParameter<int32_t>(node)); | 
| -        return jsgraph()->Float32Constant(static_cast<float>(value)); | 
| -      } else { | 
| -        int32_t value = OpParameter<int32_t>(node); | 
| -        return jsgraph()->Float32Constant(static_cast<float>(value)); | 
| -      } | 
| +    case IrOpcode::kFloat64Constant: | 
| case IrOpcode::kFloat32Constant: | 
| -      return node;  // No change necessary. | 
| +      UNREACHABLE(); | 
| +      break; | 
| default: | 
| break; | 
| } | 
| @@ -479,18 +452,10 @@ Node* RepresentationChanger::GetFloat64RepresentationFor( | 
| case IrOpcode::kNumberConstant: | 
| return jsgraph()->Float64Constant(OpParameter<double>(node)); | 
| case IrOpcode::kInt32Constant: | 
| -        if (output_type->Is(Type::Signed32())) { | 
| -          int32_t value = OpParameter<int32_t>(node); | 
| -          return jsgraph()->Float64Constant(value); | 
| -        } else { | 
| -          DCHECK(output_type->Is(Type::Unsigned32())); | 
| -          uint32_t value = static_cast<uint32_t>(OpParameter<int32_t>(node)); | 
| -          return jsgraph()->Float64Constant(static_cast<double>(value)); | 
| -        } | 
| case IrOpcode::kFloat64Constant: | 
| -        return node;  // No change necessary. | 
| case IrOpcode::kFloat32Constant: | 
| -        return jsgraph()->Float64Constant(OpParameter<float>(node)); | 
| +        UNREACHABLE(); | 
| +        break; | 
| default: | 
| break; | 
| } | 
| @@ -555,19 +520,11 @@ Node* RepresentationChanger::GetWord32RepresentationFor( | 
| // Eagerly fold representation changes for constants. | 
| switch (node->opcode()) { | 
| case IrOpcode::kInt32Constant: | 
| -      return node;  // No change necessary. | 
| -    case IrOpcode::kFloat32Constant: { | 
| -      float const fv = OpParameter<float>(node); | 
| -      if (use_info.type_check() == TypeCheckKind::kNone || | 
| -          ((use_info.type_check() == TypeCheckKind::kSignedSmall || | 
| -            use_info.type_check() == TypeCheckKind::kSigned32) && | 
| -           IsInt32Double(fv))) { | 
| -        return MakeTruncatedInt32Constant(fv); | 
| -      } | 
| +    case IrOpcode::kFloat32Constant: | 
| +    case IrOpcode::kFloat64Constant: | 
| +      UNREACHABLE(); | 
| break; | 
| -    } | 
| -    case IrOpcode::kNumberConstant: | 
| -    case IrOpcode::kFloat64Constant: { | 
| +    case IrOpcode::kNumberConstant: { | 
| double const fv = OpParameter<double>(node); | 
| if (use_info.type_check() == TypeCheckKind::kNone || | 
| ((use_info.type_check() == TypeCheckKind::kSignedSmall || | 
|  |