| Index: runtime/lib/integers.cc
|
| ===================================================================
|
| --- runtime/lib/integers.cc (revision 21753)
|
| +++ runtime/lib/integers.cc (working copy)
|
| @@ -193,10 +193,10 @@
|
| // a) '+5' is not a valid integer (leading plus).
|
| if (cstr[0] != '+') {
|
| char* p_end = NULL;
|
| - const int64_t int_value = strtol(cstr, &p_end, 10);
|
| + const int64_t int_value = strtoll(cstr, &p_end, 10);
|
| if (p_end == (cstr + len)) {
|
| - if ((Smi::kMinValue <= int_value) && (int_value <= Smi::kMaxValue)) {
|
| - return Smi::New(int_value);
|
| + if ((int_value != LLONG_MIN) && (int_value != LLONG_MAX)) {
|
| + return Integer::New(int_value);
|
| }
|
| }
|
| }
|
|
|