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); |
} |
} |