Welcome! Log In Create A New Profile

Advanced

[njs] Date.prototype.toUTCString() format was aligned to ES9.

Valentin Bartenev
September 28, 2019 07:56AM
details: https://hg.nginx.org/njs/rev/5c22e2f006fe
branches:
changeset: 1166:5c22e2f006fe
user: Valentin Bartenev <vbart@nginx.com>
date: Fri Sep 27 22:21:55 2019 +0300
description:
Date.prototype.toUTCString() format was aligned to ES9.

This closes #224 issue on GitHub.

diffstat:

src/njs_date.c | 12 +++++++-----
src/test/njs_unit_test.c | 4 ++--
2 files changed, 9 insertions(+), 7 deletions(-)

diffs (57 lines):

diff -r f516c8332495 -r 5c22e2f006fe src/njs_date.c
--- a/src/njs_date.c Thu Sep 19 10:19:02 2019 +0300
+++ b/src/njs_date.c Fri Sep 27 22:21:55 2019 +0300
@@ -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_
{
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_
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);
diff -r f516c8332495 -r 5c22e2f006fe src/test/njs_unit_test.c
--- a/src/test/njs_unit_test.c Thu Sep 19 10:19:02 2019 +0300
+++ b/src/test/njs_unit_test.c Fri Sep 27 22:21:55 2019 +0300
@@ -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()"),
_______________________________________________
nginx-devel mailing list
nginx-devel@nginx.org
http://mailman.nginx.org/mailman/listinfo/nginx-devel
Subject Author Views Posted

[njs] Date.prototype.toUTCString() format was aligned to ES9.

Valentin Bartenev 391 September 28, 2019 07:56AM



Sorry, you do not have permission to post/reply in this forum.

Online Users

Guests: 221
Record Number of Users: 8 on April 13, 2023
Record Number of Guests: 421 on December 02, 2018
Powered by nginx      Powered by FreeBSD      PHP Powered      Powered by MariaDB      ipv6 ready