summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--fxjs/cjs_publicmethods.cpp2
-rw-r--r--fxjs/cjs_publicmethods_embeddertest.cpp8
2 files changed, 9 insertions, 1 deletions
diff --git a/fxjs/cjs_publicmethods.cpp b/fxjs/cjs_publicmethods.cpp
index ea4ea713d8..375eb6fd88 100644
--- a/fxjs/cjs_publicmethods.cpp
+++ b/fxjs/cjs_publicmethods.cpp
@@ -559,7 +559,7 @@ double CJS_PublicMethods::MakeRegularDate(const WideString& value,
} else if (remaining == 1 || format[i + 2] != c) {
switch (c) {
case 'y':
- nYear = ParseStringInteger(value, j, &nSkip, 4);
+ nYear = ParseStringInteger(value, j, &nSkip, 2);
i += 2;
j += nSkip;
break;
diff --git a/fxjs/cjs_publicmethods_embeddertest.cpp b/fxjs/cjs_publicmethods_embeddertest.cpp
index 90efee9078..9413aa6a46 100644
--- a/fxjs/cjs_publicmethods_embeddertest.cpp
+++ b/fxjs/cjs_publicmethods_embeddertest.cpp
@@ -99,6 +99,14 @@ TEST_F(CJS_PublicMethodsEmbedderTest, MakeRegularDate) {
date = RoundDownDate(date);
EXPECT_DOUBLE_EQ(1107216000000.0, date);
EXPECT_FALSE(bWrongFormat);
+
+ // 2005 in a different format. https://crbug.com/436572
+ bWrongFormat = false;
+ date =
+ CJS_PublicMethods::MakeRegularDate(L"050201", L"yymmdd", &bWrongFormat);
+ date = RoundDownDate(date);
+ EXPECT_DOUBLE_EQ(1107216000000.0, date);
+ EXPECT_FALSE(bWrongFormat);
}
TEST_F(CJS_PublicMethodsEmbedderTest, MakeFormatDate) {