diff options
Diffstat (limited to 'deps/v8/src/builtins/builtins-date.cc')
-rw-r--r-- | deps/v8/src/builtins/builtins-date.cc | 19 |
1 files changed, 12 insertions, 7 deletions
diff --git a/deps/v8/src/builtins/builtins-date.cc b/deps/v8/src/builtins/builtins-date.cc index ffbeab26a3..6701db28a3 100644 --- a/deps/v8/src/builtins/builtins-date.cc +++ b/deps/v8/src/builtins/builtins-date.cc @@ -172,17 +172,20 @@ DateBuffer ToDateString(double time_val, DateCache* date_cache, const char* local_timezone = date_cache->LocalTimezone(time_ms); switch (mode) { case kDateOnly: - return FormatDate("%s %s %02d %04d", kShortWeekDays[weekday], - kShortMonths[month], day, year); + return FormatDate((year < 0) ? "%s %s %02d %05d" : "%s %s %02d %04d", + kShortWeekDays[weekday], kShortMonths[month], day, + year); case kTimeOnly: return FormatDate("%02d:%02d:%02d GMT%c%02d%02d (%s)", hour, min, sec, (timezone_offset < 0) ? '-' : '+', timezone_hour, timezone_min, local_timezone); case kDateAndTime: - return FormatDate("%s %s %02d %04d %02d:%02d:%02d GMT%c%02d%02d (%s)", - kShortWeekDays[weekday], kShortMonths[month], day, year, - hour, min, sec, (timezone_offset < 0) ? '-' : '+', - timezone_hour, timezone_min, local_timezone); + return FormatDate( + (year < 0) ? "%s %s %02d %05d %02d:%02d:%02d GMT%c%02d%02d (%s)" + : "%s %s %02d %04d %02d:%02d:%02d GMT%c%02d%02d (%s)", + kShortWeekDays[weekday], kShortMonths[month], day, year, hour, min, + sec, (timezone_offset < 0) ? '-' : '+', timezone_hour, timezone_min, + local_timezone); } UNREACHABLE(); } @@ -914,7 +917,9 @@ BUILTIN(DatePrototypeToUTCString) { int year, month, day, weekday, hour, min, sec, ms; isolate->date_cache()->BreakDownTime(time_ms, &year, &month, &day, &weekday, &hour, &min, &sec, &ms); - SNPrintF(ArrayVector(buffer), "%s, %02d %s %04d %02d:%02d:%02d GMT", + SNPrintF(ArrayVector(buffer), + (year < 0) ? "%s, %02d %s %05d %02d:%02d:%02d GMT" + : "%s, %02d %s %04d %02d:%02d:%02d GMT", kShortWeekDays[weekday], day, kShortMonths[month], year, hour, min, sec); return *isolate->factory()->NewStringFromAsciiChecked(buffer); |