]> git.kaiwu.me - njs.git/commitdiff
Date.prototype.toUTCString() format was aligned to ES9.
authorValentin Bartenev <vbart@nginx.com>
Fri, 27 Sep 2019 19:21:55 +0000 (22:21 +0300)
committerValentin Bartenev <vbart@nginx.com>
Fri, 27 Sep 2019 19:21:55 +0000 (22:21 +0300)
This closes #224 issue on GitHub.

src/njs_date.c
src/test/njs_unit_test.c

index 29f2eef566a8c15132eb91071868549a0310152f..d2bcf28645823d2d67a1679c81cb961c556d9ea1 100644 (file)
@@ -14,7 +14,9 @@
  *   FreeBSD and MacOSX timegm() cannot handle years before 1900.
  */
 
-#define NJS_ISO_DATE_TIME_LEN  sizeof("+001970-09-28T12:00:00.000Z")
+#define NJS_ISO_DATE_TIME_LEN   sizeof("+001970-09-28T12:00:00.000Z")
+
+#define NJS_HTTP_DATE_TIME_LEN  sizeof("Mon, 28 Sep 1970 12:00:00 GMT")
 
 #define NJS_DATE_TIME_LEN                                                     \
     sizeof("Mon Sep 28 1970 12:00:00 GMT+0600 (XXXXX)")
@@ -1009,7 +1011,7 @@ njs_date_prototype_to_utc_string(njs_vm_t *vm, njs_value_t *args,
 {
     double             time;
     time_t             clock;
-    u_char             buf[NJS_DATE_TIME_LEN], *p;
+    u_char             buf[NJS_HTTP_DATE_TIME_LEN], *p;
     struct tm          tm;
 
     static const char  *week[] = { "Sun", "Mon", "Tue", "Wed",
@@ -1024,9 +1026,9 @@ njs_date_prototype_to_utc_string(njs_vm_t *vm, njs_value_t *args,
         clock = time / 1000;
         gmtime_r(&clock, &tm);
 
-        p = njs_sprintf(buf, buf + NJS_DATE_TIME_LEN,
-                        "%s %s %02d %4d %02d:%02d:%02d GMT",
-                        week[tm.tm_wday], month[tm.tm_mon], tm.tm_mday,
+        p = njs_sprintf(buf, buf + NJS_HTTP_DATE_TIME_LEN,
+                        "%s, %02d %s %4d %02d:%02d:%02d GMT",
+                        week[tm.tm_wday], tm.tm_mday, month[tm.tm_mon],
                         tm.tm_year + 1900, tm.tm_hour, tm.tm_min, tm.tm_sec);
 
         return njs_string_new(vm, &vm->retval, buf, p - buf, p - buf);
index 9f156afc2ff8bba797aaa0fb7a319b334a42a030..1e972a3e852011b1cba8dd2972aee4b210f5ec62 100644 (file)
@@ -11323,7 +11323,7 @@ static njs_unit_test_t  njs_test[] =
       njs_str("18:45:00 GMT+0000") },
 
     { njs_str("var d = new Date(2011, 5, 24, 18, 45); d.toUTCString()"),
-      njs_str("Fri Jun 24 2011 18:45:00 GMT") },
+      njs_str("Fri, 24 Jun 2011 18:45:00 GMT") },
 
     { njs_str("var d = new Date(2011, 5, 24, 18, 45, 12, 625);"
                  "d.toISOString()"),
@@ -14074,7 +14074,7 @@ static njs_unit_test_t  njs_tz_test[] =
        njs_str("18:45:00 GMT+1245") },
 
      { njs_str("var d = new Date(2011, 5, 24, 18, 45); d.toUTCString()"),
-       njs_str("Fri Jun 24 2011 06:00:00 GMT") },
+       njs_str("Fri, 24 Jun 2011 06:00:00 GMT") },
 
      { njs_str("var d = new Date(2011, 5, 24, 18, 45, 12, 625);"
                   "d.toISOString()"),