--- old/src/jdk.scripting.nashorn/share/classes/jdk/nashorn/internal/parser/Lexer.java 2015-12-10 13:51:16.836614862 +0100 +++ new/src/jdk.scripting.nashorn/share/classes/jdk/nashorn/internal/parser/Lexer.java 2015-12-10 13:51:16.704614863 +0100 @@ -1131,11 +1131,7 @@ */ 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 (int)value; - } - return value; + return Integer.parseInt(valueString, radix); } catch (final NumberFormatException e) { if (radix == 10) { return Double.valueOf(valueString); @@ -1782,8 +1778,6 @@ //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: