< prev index next >
src/jdk/nashorn/internal/parser/Lexer.java
Print this page
*** 1040,1054 ****
* @param radix Numeric base.
* @return Converted number.
*/
private static Number valueOf(final String valueString, final int radix) throws NumberFormatException {
try {
! final long value = Long.parseLong(valueString, radix);
! if(value >= MIN_INT_L && value <= MAX_INT_L) {
! return Integer.valueOf((int)value);
! }
! return Long.valueOf(value);
} catch (final NumberFormatException e) {
if (radix == 10) {
return Double.valueOf(valueString);
}
--- 1040,1050 ----
* @param radix Numeric base.
* @return Converted number.
*/
private static Number valueOf(final String valueString, final int radix) throws NumberFormatException {
try {
! return Integer.parseInt(valueString, radix);
} catch (final NumberFormatException e) {
if (radix == 10) {
return Double.valueOf(valueString);
}
*** 1653,1664 ****
//and new Color(float, float, float) will get ambiguous for cases like
//new Color(1.0, 1.5, 1.5) if we don't respect the decimal point.
//yet we don't want e.g. 1e6 to be a double unnecessarily
if (JSType.isStrictlyRepresentableAsInt(value)) {
return (int)value;
- } else if (JSType.isStrictlyRepresentableAsLong(value)) {
- return (long)value;
}
return value;
case STRING:
return source.getString(start, len); // String
case ESCSTRING:
--- 1649,1658 ----
< prev index next >