Title: [130256] trunk/Source/WebCore
Revision
130256
Author
tk...@chromium.org
Date
2012-10-02 23:31:31 -0700 (Tue, 02 Oct 2012)

Log Message

Introduce DateComponents::minimumYear and maximumYear
https://bugs.webkit.org/show_bug.cgi?id=98230

Reviewed by Kentaro Hara.

Share same difinitions in DateComponents.cpp and DateTimeFieldElements.cpp.

No new tests. This doesn't change any bahevior.

* platform/DateComponents.h:
(WebCore::DateComponents::minimumYear): Moved from DateComponents.cpp.
(WebCore::DateComponents::maximumYear): ditto.
* platform/DateComponents.cpp:
(WebCore): Move out static minimumYear and maximumYear.
(WebCore::DateComponents::parseYear): Use DateCompnents::minimumYear and/or maximumYear.
(WebCore::withinHTMLDateLimits): ditto.
(WebCore::DateComponents::parseWeek): ditto.
(WebCore::DateComponents::setMonthsSinceEpoch): ditto.
(WebCore::DateComponents::setMillisecondsSinceEpochForWeek): ditto.

* html/shadow/DateTimeFieldElements.cpp:
(WebCore): Remove minimumYear and maximumYear.
(WebCore::DateTimeYearFieldElement::DateTimeYearFieldElement):
Use DateComponents::minimumYear and maximumYear.

Modified Paths

Diff

Modified: trunk/Source/WebCore/ChangeLog (130255 => 130256)


--- trunk/Source/WebCore/ChangeLog	2012-10-03 06:28:44 UTC (rev 130255)
+++ trunk/Source/WebCore/ChangeLog	2012-10-03 06:31:31 UTC (rev 130256)
@@ -1,3 +1,31 @@
+2012-10-03  Kent Tamura  <tk...@chromium.org>
+
+        Introduce DateComponents::minimumYear and maximumYear
+        https://bugs.webkit.org/show_bug.cgi?id=98230
+
+        Reviewed by Kentaro Hara.
+
+        Share same difinitions in DateComponents.cpp and DateTimeFieldElements.cpp.
+
+        No new tests. This doesn't change any bahevior.
+
+        * platform/DateComponents.h:
+        (WebCore::DateComponents::minimumYear): Moved from DateComponents.cpp.
+        (WebCore::DateComponents::maximumYear): ditto.
+        * platform/DateComponents.cpp:
+        (WebCore): Move out static minimumYear and maximumYear.
+        (WebCore::DateComponents::parseYear): Use DateCompnents::minimumYear and/or maximumYear.
+        (WebCore::withinHTMLDateLimits): ditto.
+        (WebCore::DateComponents::parseWeek): ditto.
+        (WebCore::DateComponents::setMonthsSinceEpoch): ditto.
+        (WebCore::DateComponents::setMillisecondsSinceEpochForWeek): ditto.
+
+        * html/shadow/DateTimeFieldElements.cpp:
+        (WebCore): Remove minimumYear and maximumYear.
+        (WebCore::DateTimeYearFieldElement::DateTimeYearFieldElement):
+        Use DateComponents::minimumYear and maximumYear.
+
+
 2012-10-02  Arko Saha  <a...@motorola.com>
 
         Microdata: itemprop names must not override builtin properties.

Modified: trunk/Source/WebCore/html/shadow/DateTimeFieldElements.cpp (130255 => 130256)


--- trunk/Source/WebCore/html/shadow/DateTimeFieldElements.cpp	2012-10-03 06:28:44 UTC (rev 130255)
+++ trunk/Source/WebCore/html/shadow/DateTimeFieldElements.cpp	2012-10-03 06:31:31 UTC (rev 130256)
@@ -422,15 +422,8 @@
 
 // ----------------------------
 
-// HTML5 uses ISO-8601 format with year >= 1. Gregorian calendar started in
-// 1582. However, we need to support 0001-01-01 in Gregorian calendar rule.
-static const int minimumYear = 1;
-// Date in ECMAScript can't represent dates later than 275760-09-13T00:00Z.
-// So, we have the same upper limit in HTML5 dates.
-static const int maximumYear = 275760;
-
 DateTimeYearFieldElement::DateTimeYearFieldElement(Document* document, FieldOwner& fieldOwner, const String& placeholder)
-    : DateTimeNumericFieldElement(document, fieldOwner, minimumYear, maximumYear, placeholder)
+    : DateTimeNumericFieldElement(document, fieldOwner, DateComponents::minimumYear(), DateComponents::maximumYear(), placeholder)
 {
 }
 

Modified: trunk/Source/WebCore/platform/DateComponents.cpp (130255 => 130256)


--- trunk/Source/WebCore/platform/DateComponents.cpp	2012-10-03 06:28:44 UTC (rev 130255)
+++ trunk/Source/WebCore/platform/DateComponents.cpp	2012-10-03 06:31:31 UTC (rev 130256)
@@ -47,12 +47,6 @@
 // HTML5 specification defines maximum week of year is 53.
 const int DateComponents::maximumWeekNumber = 53;
 
-// HTML5 uses ISO-8601 format with year >= 1. Gregorian calendar started in
-// 1582. However, we need to support 0001-01-01 in Gregorian calendar rule.
-static const int minimumYear = 1;
-// Date in ECMAScript can't represent dates later than 275760-09-13T00:00Z.
-// So, we have the same upper limit in HTML5 dates.
-static const int maximumYear = 275760;
 static const int maximumMonthInMaximumYear = 8; // This is September, since months are 0 based.
 static const int maximumDayInMaximumMonth = 13;
 static const int maximumWeekInMaximumYear = 37; // The week of 275760-09-13
@@ -145,7 +139,7 @@
     int year;
     if (!toInt(src, length, start, digitsLength, year))
         return false;
-    if (year < minimumYear || year > maximumYear)
+    if (year < minimumYear() || year > maximumYear())
         return false;
     m_year = year;
     end = start + digitsLength;
@@ -154,18 +148,18 @@
 
 static bool withinHTMLDateLimits(int year, int month)
 {
-    if (year < minimumYear)
+    if (year < DateComponents::minimumYear())
         return false;
-    if (year < maximumYear)
+    if (year < DateComponents::maximumYear())
         return true;
     return month <= maximumMonthInMaximumYear;
 }
 
 static bool withinHTMLDateLimits(int year, int month, int monthDay)
 {
-    if (year < minimumYear)
+    if (year < DateComponents::minimumYear())
         return false;
-    if (year < maximumYear)
+    if (year < DateComponents::maximumYear())
         return true;
     if (month < maximumMonthInMaximumYear)
         return true;
@@ -174,9 +168,9 @@
 
 static bool withinHTMLDateLimits(int year, int month, int monthDay, int hour, int minute, int second, int millisecond)
 {
-    if (year < minimumYear)
+    if (year < DateComponents::minimumYear())
         return false;
-    if (year < maximumYear)
+    if (year < DateComponents::maximumYear())
         return true;
     if (month < maximumMonthInMaximumYear)
         return true;
@@ -402,7 +396,7 @@
     int week;
     if (!toInt(src, length, index, 2, week) || week < minimumWeekNumber || week > maxWeekNumberInYear())
         return false;
-    if (m_year == maximumYear && week > maximumWeekInMaximumYear)
+    if (m_year == maximumYear() && week > maximumWeekInMaximumYear)
         return false;
     m_week = week;
     end = index + 2;
@@ -598,7 +592,7 @@
     months = round(months);
     double doubleMonth = positiveFmod(months, 12);
     double doubleYear = 1970 + (months - doubleMonth) / 12;
-    if (doubleYear < minimumYear || maximumYear < doubleYear)
+    if (doubleYear < minimumYear() || maximumYear() < doubleYear)
         return false;
     int year = static_cast<int>(doubleYear);
     int month = static_cast<int>(doubleMonth);
@@ -628,7 +622,7 @@
     ms = round(ms);
 
     m_year = msToYear(ms);
-    if (m_year < minimumYear || m_year > maximumYear)
+    if (m_year < minimumYear() || m_year > maximumYear())
         return false;
 
     int yearDay = dayInYear(ms, m_year);
@@ -636,7 +630,7 @@
     if (yearDay < offset) {
         // The day belongs to the last week of the previous year.
         m_year--;
-        if (m_year <= minimumYear)
+        if (m_year <= minimumYear())
             return false;
         m_week = maxWeekNumberInYear();
     } else {
@@ -645,7 +639,7 @@
             m_year++;
             m_week = 1;
         }
-        if (m_year > maximumYear || (m_year == maximumYear && m_week > maximumWeekInMaximumYear))
+        if (m_year > maximumYear() || (m_year == maximumYear() && m_week > maximumWeekInMaximumYear))
             return false;
     }
     m_type = Week;

Modified: trunk/Source/WebCore/platform/DateComponents.h (130255 => 130256)


--- trunk/Source/WebCore/platform/DateComponents.h	2012-10-03 06:28:44 UTC (rev 130255)
+++ trunk/Source/WebCore/platform/DateComponents.h	2012-10-03 06:31:31 UTC (rev 130256)
@@ -159,6 +159,12 @@
     static inline double maximumTime() { return 86399999; } // 23:59:59.999
     static inline double maximumWeek() { return 8639999568000000.0; } // 275760-09-08, the Monday of the week including 275760-09-13.
 
+    // HTML5 uses ISO-8601 format with year >= 1. Gregorian calendar started in
+    // 1582. However, we need to support 0001-01-01 in Gregorian calendar rule.
+    static inline int minimumYear() { return 1; }
+    // Date in ECMAScript can't represent dates later than 275760-09-13T00:00Z.
+    // So, we have the same upper limit in HTML5 date/time types.
+    static inline int maximumYear() { return 275760; }
     static const int minimumWeekNumber;
     static const int maximumWeekNumber;
 
_______________________________________________
webkit-changes mailing list
webkit-changes@lists.webkit.org
http://lists.webkit.org/mailman/listinfo/webkit-changes

Reply via email to