| Index: src/types.cc | 
| diff --git a/src/types.cc b/src/types.cc | 
| index 558ee04b15d77dea09c0edd40266b6598d7f8c61..45dcea2de7d8c84f82ab7e3903fefd671ec2668e 100644 | 
| --- a/src/types.cc | 
| +++ b/src/types.cc | 
| @@ -2,8 +2,6 @@ | 
| // Use of this source code is governed by a BSD-style license that can be | 
| // found in the LICENSE file. | 
|  | 
| -#include <math.h> | 
| - | 
| #include "src/types.h" | 
|  | 
| #include "src/ostreams.h" | 
| @@ -12,21 +10,6 @@ | 
| namespace v8 { | 
| namespace internal { | 
|  | 
| - | 
| -// ----------------------------------------------------------------------------- | 
| -// Range-related custom order on doubles. | 
| -// We want -0 to be less than +0. | 
| - | 
| -static bool dle(double x, double y) { | 
| -  return x <= y && copysign(1, x) <= copysign(1, y); | 
| -} | 
| - | 
| - | 
| -static bool deq(double x, double y) { | 
| -  return dle(x, y) && dle(y, x); | 
| -} | 
| - | 
| - | 
| // ----------------------------------------------------------------------------- | 
| // Glb and lub computation. | 
|  | 
| @@ -65,8 +48,6 @@ int TypeImpl<Config>::BitsetType::Lub(TypeImpl* type) { | 
| type->AsClass()->Bound(NULL)->AsBitset(); | 
| } else if (type->IsConstant()) { | 
| return type->AsConstant()->Bound()->AsBitset(); | 
| -  } else if (type->IsRange()) { | 
| -    return type->AsRange()->Bound()->AsBitset(); | 
| } else if (type->IsContext()) { | 
| return type->AsContext()->Bound()->AsBitset(); | 
| } else if (type->IsArray()) { | 
| @@ -97,8 +78,6 @@ int TypeImpl<Config>::BitsetType::InherentLub(TypeImpl* type) { | 
| return Lub(*type->AsClass()->Map()); | 
| } else if (type->IsConstant()) { | 
| return Lub(*type->AsConstant()->Value()); | 
| -  } else if (type->IsRange()) { | 
| -    return Lub(type->AsRange()->Min(), type->AsRange()->Max()); | 
| } else if (type->IsContext()) { | 
| return kInternal & kTaggedPtr; | 
| } else if (type->IsArray()) { | 
| @@ -134,18 +113,6 @@ int TypeImpl<Config>::BitsetType::Lub(double value) { | 
|  | 
|  | 
| template<class Config> | 
| -int TypeImpl<Config>::BitsetType::Lub(double min, double max) { | 
| -  DisallowHeapAllocation no_allocation; | 
| -  DCHECK(dle(min, max)); | 
| -  if (deq(min, max)) return BitsetType::Lub(min);  // Singleton range. | 
| -  int bitset = BitsetType::kNumber ^ SEMANTIC(BitsetType::kNaN); | 
| -  if (dle(0, min) || max < 0) bitset ^= SEMANTIC(BitsetType::kMinusZero); | 
| -  return bitset; | 
| -  // TODO(neis): Could refine this further by doing more checks on min/max. | 
| -} | 
| - | 
| - | 
| -template<class Config> | 
| int TypeImpl<Config>::BitsetType::Lub(int32_t value) { | 
| if (value >= 0x40000000) { | 
| return i::SmiValuesAre31Bits() ? kOtherUnsigned31 : kUnsignedSmall; | 
| @@ -289,12 +256,6 @@ bool TypeImpl<Config>::SlowIs(TypeImpl* that) { | 
| && *this->AsConstant()->Value() == *that->AsConstant()->Value() | 
| && this->AsConstant()->Bound()->Is(that->AsConstant()->Bound()); | 
| } | 
| -  if (that->IsRange()) { | 
| -    return this->IsRange() | 
| -        && this->AsRange()->Bound()->Is(that->AsRange()->Bound()) | 
| -        && dle(that->AsRange()->Min(), this->AsRange()->Min()) | 
| -        && dle(this->AsRange()->Max(), that->AsRange()->Max()); | 
| -  } | 
| if (that->IsContext()) { | 
| return this->IsContext() | 
| && this->AsContext()->Outer()->Equals(that->AsContext()->Outer()); | 
| @@ -427,12 +388,6 @@ bool TypeImpl<Config>::Maybe(TypeImpl* that) { | 
| template<class Config> | 
| bool TypeImpl<Config>::Contains(i::Object* value) { | 
| DisallowHeapAllocation no_allocation; | 
| -  if (this->IsRange()) { | 
| -    return value->IsNumber() && | 
| -           dle(this->AsRange()->Min(), value->Number()) && | 
| -           dle(value->Number(), this->AsRange()->Max()) && | 
| -           BitsetType::Is(BitsetType::Lub(value), this->BitsetLub()); | 
| -  } | 
| for (Iterator<i::Object> it = this->Constants(); !it.Done(); it.Advance()) { | 
| if (*it.Current() == value) return true; | 
| } | 
| @@ -465,9 +420,6 @@ typename TypeImpl<Config>::TypeHandle TypeImpl<Config>::Rebound( | 
| return ClassType::New(this->AsClass()->Map(), bound, region); | 
| } else if (this->IsConstant()) { | 
| return ConstantType::New(this->AsConstant()->Value(), bound, region); | 
| -  } else if (this->IsRange()) { | 
| -    return RangeType::New( | 
| -        this->AsRange()->Min(), this->AsRange()->Max(), bound, region); | 
| } else if (this->IsContext()) { | 
| return ContextType::New(this->AsContext()->Outer(), bound, region); | 
| } else if (this->IsArray()) { | 
| @@ -556,8 +508,8 @@ int TypeImpl<Config>::ExtendUnion( | 
| } | 
| } | 
| } else if (!type->IsBitset()) { | 
| -    DCHECK(type->IsClass() || type->IsConstant() || type->IsRange() || | 
| -           type->IsContext() || type->IsArray() || type->IsFunction()); | 
| +    DCHECK(type->IsClass() || type->IsConstant() || | 
| +           type->IsArray() || type->IsFunction() || type->IsContext()); | 
| int inherent_bound = type->InherentBitsetLub(); | 
| int old_bound = type->BitsetLub(); | 
| int other_bound = type->BoundBy(other->unhandle()) & inherent_bound; | 
| @@ -800,10 +752,6 @@ typename TypeImpl<Config>::TypeHandle TypeImpl<Config>::Convert( | 
| } else if (type->IsConstant()) { | 
| TypeHandle bound = Convert<OtherType>(type->AsConstant()->Bound(), region); | 
| return ConstantType::New(type->AsConstant()->Value(), bound, region); | 
| -  } else if (type->IsRange()) { | 
| -    TypeHandle bound = Convert<OtherType>(type->AsRange()->Bound(), region); | 
| -    return RangeType::New( | 
| -        type->AsRange()->Min(), type->AsRange()->Max(), bound, region); | 
| } else if (type->IsContext()) { | 
| TypeHandle bound = Convert<OtherType>(type->AsContext()->Bound(), region); | 
| TypeHandle outer = Convert<OtherType>(type->AsContext()->Outer(), region); | 
|  |