[arch-commits] Commit in js60/trunk (PKGBUILD bug1415202.patch)
Jan Steffens
heftig at archlinux.org
Wed Aug 1 15:20:02 UTC 2018
Date: Wednesday, August 1, 2018 @ 15:20:01
Author: heftig
Revision: 330414
Patch for failing test
Added:
js60/trunk/bug1415202.patch
Modified:
js60/trunk/PKGBUILD
------------------+
PKGBUILD | 10 ++--
bug1415202.patch | 129 +++++++++++++++++++++++++++++++++++++++++++++++++++++
2 files changed, 134 insertions(+), 5 deletions(-)
Modified: PKGBUILD
===================================================================
--- PKGBUILD 2018-08-01 14:39:55 UTC (rev 330413)
+++ PKGBUILD 2018-08-01 15:20:01 UTC (rev 330414)
@@ -13,9 +13,11 @@
makedepends=(python2 zip autoconf2.13 mercurial)
_repo=https://hg.mozilla.org/mozilla-unified
source=("hg+$_repo#tag=FIREFOX_${pkgver//./_}esr_RELEASE"
+ bug1415202.patch
mozjs60-fix-soname.patch
mozjs52-include-configure-script.patch)
sha256sums=('SKIP'
+ '9f316ab46d1c45b0051b43579e80d0d622c58d74230877a53b170c56e6aa0193'
'c792837930defe27355941080e9b80ec1d45003c097e4707860acc13d43bc519'
'd91a89acd88bfc747a255050757a0c17139bf5c3508c2e1c3c6bb2056786a344')
@@ -23,6 +25,9 @@
cd mozilla-unified
mkdir obj
+ # https://bugzilla.mozilla.org/show_bug.cgi?id=1479687
+ patch -Np1 -i ../bug1415202.patch
+
# https://salsa.debian.org/gnome-team/mozjs52/tree/debian/master/debian/patches
patch -Np1 -i ../mozjs60-fix-soname.patch
patch -Np1 -i ../mozjs52-include-configure-script.patch
@@ -60,11 +65,6 @@
local jstests_extra_args=(
--format=none
--exclude-random
-
- # non262/Date/time-zone-2038-pst.js:43:5 Error: Assertion failed:
- # got "Sat Mar 31 2040 00:00:00 GMT-0700 (PST)",
- # expected "Sat Mar 31 2040 00:00:00 GMT-0700 (PDT)"
- --exclude non262/Date/time-zone-2038-pst.js
) jittest_extra_args=(
--format=none
--timeout 300
Added: bug1415202.patch
===================================================================
--- bug1415202.patch (rev 0)
+++ bug1415202.patch 2018-08-01 15:20:01 UTC (rev 330414)
@@ -0,0 +1,129 @@
+# HG changeset patch
+# User André Bargull <andre.bargull at gmail.com>
+# Date 1510140221 28800
+# Wed Nov 08 03:23:41 2017 -0800
+# Node ID 8bf5e7460a7c5ba3430b501d1659c469a862a929
+# Parent 60fd4a5b01ec70ded9ddfd560fd5be191b1c74b9
+Bug 1415202: Always use the equivalent year to determine the time zone offset and name. r=Waldo
+
+diff --git a/js/src/jsdate.cpp b/js/src/jsdate.cpp
+--- a/js/src/jsdate.cpp
++++ b/js/src/jsdate.cpp
+@@ -2636,22 +2636,26 @@ ToPRMJTime(double localTime, double utcT
+
+ return prtm;
+ }
+
+ static size_t
+ FormatTime(char* buf, int buflen, const char* fmt, double utcTime, double localTime)
+ {
+ PRMJTime prtm = ToPRMJTime(localTime, utcTime);
+- int eqivalentYear = IsRepresentableAsTime32(utcTime)
+- ? prtm.tm_year
+- : EquivalentYearForDST(prtm.tm_year);
++
++ // If an equivalent year was used to compute the date/time components, use
++ // the same equivalent year to determine the time zone name and offset in
++ // PRMJ_FormatTime(...).
++ int timeZoneYear = IsRepresentableAsTime32(utcTime)
++ ? prtm.tm_year
++ : EquivalentYearForDST(prtm.tm_year);
+ int offsetInSeconds = (int) floor((localTime - utcTime) / msPerSecond);
+
+- return PRMJ_FormatTime(buf, buflen, fmt, &prtm, eqivalentYear, offsetInSeconds);
++ return PRMJ_FormatTime(buf, buflen, fmt, &prtm, timeZoneYear, offsetInSeconds);
+ }
+
+ enum class FormatSpec {
+ DateTime,
+ Date,
+ Time
+ };
+
+diff --git a/js/src/vm/Time.cpp b/js/src/vm/Time.cpp
+--- a/js/src/vm/Time.cpp
++++ b/js/src/vm/Time.cpp
+@@ -257,17 +257,17 @@ PRMJ_InvalidParameterHandler(const wchar
+ {
+ /* empty */
+ }
+ #endif
+
+ /* Format a time value into a buffer. Same semantics as strftime() */
+ size_t
+ PRMJ_FormatTime(char* buf, int buflen, const char* fmt, const PRMJTime* prtm,
+- int equivalentYear, int offsetInSeconds)
++ int timeZoneYear, int offsetInSeconds)
+ {
+ size_t result = 0;
+ #if defined(XP_UNIX) || defined(XP_WIN)
+ struct tm a;
+ #ifdef XP_WIN
+ _invalid_parameter_handler oldHandler;
+ #ifndef __MINGW32__
+ int oldReportMode;
+@@ -290,39 +290,33 @@ PRMJ_FormatTime(char* buf, int buflen, c
+ */
+ #if defined(HAVE_LOCALTIME_R) && defined(HAVE_TM_ZONE_TM_GMTOFF)
+ char emptyTimeZoneId[] = "";
+ {
+ /*
+ * Fill out |td| to the time represented by |prtm|, leaving the
+ * timezone fields zeroed out. localtime_r will then fill in the
+ * timezone fields for that local time according to the system's
+- * timezone parameters.
++ * timezone parameters. Use |timeZoneYear| for the year to ensure the
++ * time zone name matches the time zone offset used by the caller.
+ */
+ struct tm td;
+ memset(&td, 0, sizeof(td));
+ td.tm_sec = prtm->tm_sec;
+ td.tm_min = prtm->tm_min;
+ td.tm_hour = prtm->tm_hour;
+ td.tm_mday = prtm->tm_mday;
+ td.tm_mon = prtm->tm_mon;
+ td.tm_wday = prtm->tm_wday;
+- td.tm_year = prtm->tm_year - 1900;
++ td.tm_year = timeZoneYear - 1900;
+ td.tm_yday = prtm->tm_yday;
+ td.tm_isdst = prtm->tm_isdst;
+
+ time_t t = mktime(&td);
+
+- // If |prtm| cannot be represented in |time_t| the year is probably
+- // out of range, try again with the DST equivalent year.
+- if (t == static_cast<time_t>(-1)) {
+- td.tm_year = equivalentYear - 1900;
+- t = mktime(&td);
+- }
+-
+ // If either mktime or localtime_r failed, fill in the fallback time
+ // zone offset |offsetInSeconds| and set the time zone identifier to
+ // the empty string.
+ if (t != static_cast<time_t>(-1) && localtime_r(&t, &td)) {
+ a.tm_gmtoff = td.tm_gmtoff;
+ a.tm_zone = td.tm_zone;
+ } else {
+ a.tm_gmtoff = offsetInSeconds;
+diff --git a/js/src/vm/Time.h b/js/src/vm/Time.h
+--- a/js/src/vm/Time.h
++++ b/js/src/vm/Time.h
+@@ -50,17 +50,17 @@ PRMJ_NowShutdown();
+ #else
+ inline void
+ PRMJ_NowShutdown() {}
+ #endif
+
+ /* Format a time value into a buffer. Same semantics as strftime() */
+ extern size_t
+ PRMJ_FormatTime(char* buf, int buflen, const char* fmt, const PRMJTime* tm,
+- int equivalentYear, int offsetInSeconds);
++ int timeZoneYear, int offsetInSeconds);
+
+
+ /**
+ * Requesting the number of cycles from the CPU.
+ *
+ * `rdtsc`, or Read TimeStamp Cycle, is an instruction provided by
+ * x86-compatible CPUs that lets processes request the number of
+ * cycles spent by the CPU executing instructions since the CPU was
More information about the arch-commits
mailing list