src/jdk/nashorn/internal/objects/DateParser.java
Print this page
*** 30,39 ****
--- 30,40 ----
import static java.lang.Character.OTHER_PUNCTUATION;
import static java.lang.Character.SPACE_SEPARATOR;
import static java.lang.Character.UPPERCASE_LETTER;
import java.util.HashMap;
+ import java.util.Locale;
/**
* JavaScript date parser. This class first tries to parse a date string
* according to the extended ISO 8601 format specified in ES5 15.9.1.15.
* If that fails, it falls back to legacy mode in which it accepts a range
*** 484,494 ****
// first read up to the key length
while (pos < limit && isAsciiLetter(string.charAt(pos))) {
pos++;
}
! final String key = string.substring(start, pos).toLowerCase();
final Name name = names.get(key);
// then advance to end of name
while (pos < length && isAsciiLetter(string.charAt(pos))) {
pos++;
}
--- 485,495 ----
// first read up to the key length
while (pos < limit && isAsciiLetter(string.charAt(pos))) {
pos++;
}
! final String key = string.substring(start, pos).toLowerCase(Locale.ENGLISH);
final Name name = names.get(key);
// then advance to end of name
while (pos < length && isAsciiLetter(string.charAt(pos))) {
pos++;
}
*** 681,691 ****
final static int TIMEZONE_ID = 2;
final static int TIME_SEPARATOR = 3;
Name(final String name, final int type, final int value) {
assert name != null;
! assert name.equals(name.toLowerCase());
this.name = name;
// use first three characters as lookup key
this.key = name.substring(0, Math.min(3, name.length()));
this.type = type;
--- 682,692 ----
final static int TIMEZONE_ID = 2;
final static int TIME_SEPARATOR = 3;
Name(final String name, final int type, final int value) {
assert name != null;
! assert name.equals(name.toLowerCase(Locale.ENGLISH));
this.name = name;
// use first three characters as lookup key
this.key = name.substring(0, Math.min(3, name.length()));
this.type = type;