tor-browser

The Tor Browser
git clone https://git.dasho.dev/tor-browser.git
Log | Files | Refs | README | LICENSE

commit 45067641a270b705ec741af9b4fc653591981d5e
parent d42800c2916657189fe4ba2e80f0c3181b57fd5b
Author: André Bargull <andre.bargull@gmail.com>
Date:   Tue,  4 Nov 2025 16:00:22 +0000

Bug 1997791: Account for repeated local time in Date.prototype.toLocaleString test. r=spidermonkey-reviewers,dminor

Differential Revision: https://phabricator.services.mozilla.com/D271040

Diffstat:
Mjs/src/tests/non262/Date/15.9.5.5.js | 28++++++++++++++++++++++++++--
1 file changed, 26 insertions(+), 2 deletions(-)

diff --git a/js/src/tests/non262/Date/15.9.5.5.js b/js/src/tests/non262/Date/15.9.5.5.js @@ -50,12 +50,28 @@ expect = 0; addTestCase(); // Date.parse is accurate to the second; valueOf() to the millisecond - -status = "Math.abs(Date.parse(now.toLocaleString('en-US')) - now.valueOf()) < 1000"; -actual = Math.abs(Date.parse(now.toLocaleString('en-US')) - now.valueOf()) < 1000; +status = "Math.abs(Date.parse(now.toLocaleString('en-US')) - now.valueOf()) < 1000 + (!isRepeatedTime(now) ? 0 : msPerHour)"; +actual = Math.abs(Date.parse(now.toLocaleString('en-US')) - now.valueOf()) < 1000 + (!isRepeatedTime(now) ? 0 : msPerHour); expect = true; addTestCase(); +// Test with repeated and skipped time due to daylight saving time. +for (var date of [ + // Switch from standard time to daylight saving time for PST8PDT. + new Date(Date.parse("2025-11-02T08:00:00Z")), + new Date(Date.parse("2025-11-02T09:00:00Z")), + + // Switch from daylight saving time to standard time for PST8PDT. + new Date(Date.parse("2025-03-09T09:00:00Z")), + new Date(Date.parse("2025-03-09T10:00:00Z")), +]) { + status = "Math.abs(Date.parse(date.toLocaleString('en-US')) - date.valueOf()) < 1000 + (!isRepeatedTime(date) ? 0 : msPerHour)"; + actual = Math.abs(Date.parse(date.toLocaleString('en-US')) - date.valueOf()) < 1000 + (!isRepeatedTime(date) ? 0 : msPerHour); + expect = true; + addTestCase(); +} + // 1970 addDateTestCase(0); @@ -109,3 +125,11 @@ function addDateTestCase(date_given_in_milliseconds) addTestCase(); } + +// Repeated local time when switching from daylight saving time to standard time. +function isRepeatedTime(date) +{ + var offset1 = date.getTimezoneOffset(); + var offset2 = new Date(date.valueOf() - msPerHour).getTimezoneOffset(); + return offset1 > offset2; +}