Chromium Code Reviews| Index: src/v8conversions.h |
| diff --git a/src/v8conversions.h b/src/v8conversions.h |
| index 3a7b5242ab79af659b15e99b0a6d53f967cd91d1..f3d0992d62b2ccb030b54f260cce604d0ec20ec5 100644 |
| --- a/src/v8conversions.h |
| +++ b/src/v8conversions.h |
| @@ -60,10 +60,15 @@ inline size_t NumberToSize(Isolate* isolate, |
| Object* number) { |
| SealHandleScope shs(isolate); |
| if (number->IsSmi()) { |
| + int value = Smi::cast(number)->value(); |
| + CHECK(value >= 0 |
|
Jakob Kummerow
2013/11/14 10:17:48
Not that it makes a big difference, but it's suffi
Dmitry Lomov (no reviews)
2013/11/14 10:22:58
Great suggestion, this is by far the commonest cas
|
| + && static_cast<unsigned>(value) <= std::numeric_limits<size_t>::max()); |
| return Smi::cast(number)->value(); |
| } else { |
| ASSERT(number->IsHeapNumber()); |
| double value = HeapNumber::cast(number)->value(); |
| + CHECK(value >= 0 && |
| + value <= std::numeric_limits<size_t>::max()); |
|
Jakob Kummerow
2013/11/14 10:17:48
nit: I'd align "value" with "value".
|
| return static_cast<size_t>(value); |
| } |
| } |