| Index: src/v8conversions.h | 
| diff --git a/src/v8conversions.h b/src/v8conversions.h | 
| index 3a7b5242ab79af659b15e99b0a6d53f967cd91d1..d3da9f8bb86db798e9ca5ad017a197b7bd5240d0 100644 | 
| --- a/src/v8conversions.h | 
| +++ b/src/v8conversions.h | 
| @@ -60,10 +60,17 @@ inline size_t NumberToSize(Isolate* isolate, | 
| Object* number) { | 
| SealHandleScope shs(isolate); | 
| if (number->IsSmi()) { | 
| -    return Smi::cast(number)->value(); | 
| +    int value = Smi::cast(number)->value(); | 
| +    CHECK_GE(value, 0); | 
| +    ASSERT( | 
| +      static_cast<unsigned>(Smi::kMaxValue) | 
| +        <= std::numeric_limits<size_t>::max()); | 
| +    return static_cast<size_t>(value); | 
| } else { | 
| ASSERT(number->IsHeapNumber()); | 
| double value = HeapNumber::cast(number)->value(); | 
| +    CHECK(value >= 0 && | 
| +          value <= std::numeric_limits<size_t>::max()); | 
| return static_cast<size_t>(value); | 
| } | 
| } | 
|  |