From e33acfaf8ec0852f1caa56df75d9ec13972455bd Mon Sep 17 00:00:00 2001 From: =?utf8?q?Andr=C3=A9=20Bargull?= Date: Mon, 15 Apr 2024 18:27:18 +0000 Subject: [PATCH] Bug 1874684 - Part 3: Update spec step number references. r=dminor Differential Revision: https://phabricator.services.mozilla.com/D198536 --- js/src/builtin/temporal/TemporalParser.cpp | 6 +++++- js/src/builtin/temporal/TimeZone.cpp | 26 +++++++++++++------------- 2 files changed, 18 insertions(+), 14 deletions(-) diff --git a/js/src/builtin/temporal/TemporalParser.cpp b/js/src/builtin/temporal/TemporalParser.cpp index c117e63b3166..02c1bd7897e7 100644 --- a/js/src/builtin/temporal/TemporalParser.cpp +++ b/js/src/builtin/temporal/TemporalParser.cpp @@ -2168,7 +2168,7 @@ bool js::temporal::ParseTemporalDurationString(JSContext* cx, int32_t factor = parsed.sign ? parsed.sign : 1; MOZ_ASSERT(factor == -1 || factor == 1); - // Step 20. + // Steps 20-29. *result = { (years * factor) + (+0.0), (months * factor) + (+0.0), (weeks * factor) + (+0.0), (days * factor) + (+0.0), @@ -2176,9 +2176,13 @@ bool js::temporal::ParseTemporalDurationString(JSContext* cx, (seconds * factor) + (+0.0), (milliseconds * factor) + (+0.0), (microseconds * factor) + (+0.0), (nanoseconds * factor) + (+0.0), }; + + // Step 30 if (!ThrowIfInvalidDuration(cx, *result)) { return false; } + + // Step 31. return true; } diff --git a/js/src/builtin/temporal/TimeZone.cpp b/js/src/builtin/temporal/TimeZone.cpp index ca7e1b9f11d7..0442c7aa8854 100644 --- a/js/src/builtin/temporal/TimeZone.cpp +++ b/js/src/builtin/temporal/TimeZone.cpp @@ -1765,7 +1765,7 @@ static auto AddTime(const PlainTime& time, int64_t nanoseconds) { MOZ_ASSERT(IsValidTime(time)); MOZ_ASSERT(std::abs(nanoseconds) <= 2 * ToNanoseconds(TemporalUnit::Day)); - // Steps 1-7. + // Steps 1-3. return BalanceTime(time, nanoseconds); } @@ -1872,39 +1872,39 @@ bool js::temporal::DisambiguatePossibleInstants( // Step 18. if (disambiguation == TemporalDisambiguation::Earlier) { - // Step 18.a. + // Steps 18.a-b. auto earlierTime = ::AddTime(dateTime.time, -nanoseconds); MOZ_ASSERT(std::abs(earlierTime.days) <= 2, "subtracting nanoseconds is at most two days"); - // Step 18.b. + // Step 18.c. PlainDate earlierDate; if (!AddISODate(cx, dateTime.date, {0, 0, 0, double(earlierTime.days)}, TemporalOverflow::Constrain, &earlierDate)) { return false; } - // Step 18.c. + // Step 18.d. Rooted calendar(cx, CalendarValue(cx->names().iso8601)); Rooted earlierDateTime( cx, PlainDateTimeWithCalendar{{earlierDate, earlierTime.time}, calendar}); - // Step 18.d. + // Step 18.e. Rooted earlierInstants(cx, InstantVector(cx)); if (!GetPossibleInstantsFor(cx, timeZone, earlierDateTime, &earlierInstants)) { return false; } - // Step 18.e. + // Step 18.f. if (earlierInstants.empty()) { JS_ReportErrorNumberASCII(cx, GetErrorMessage, nullptr, JSMSG_TEMPORAL_TIMEZONE_INSTANT_AMBIGUOUS); return false; } - // Step 18.f. + // Step 18.g. result.set(earlierInstants[0]); return true; } @@ -1913,37 +1913,37 @@ bool js::temporal::DisambiguatePossibleInstants( MOZ_ASSERT(disambiguation == TemporalDisambiguation::Compatible || disambiguation == TemporalDisambiguation::Later); - // Step 20. + // Steps 20-21. auto laterTime = ::AddTime(dateTime.time, nanoseconds); MOZ_ASSERT(std::abs(laterTime.days) <= 2, "adding nanoseconds is at most two days"); - // Step 21. + // Step 22. PlainDate laterDate; if (!AddISODate(cx, dateTime.date, {0, 0, 0, double(laterTime.days)}, TemporalOverflow::Constrain, &laterDate)) { return false; } - // Step 22. + // Step 23. Rooted calendar(cx, CalendarValue(cx->names().iso8601)); Rooted laterDateTime( cx, PlainDateTimeWithCalendar{{laterDate, laterTime.time}, calendar}); - // Step 23. + // Step 24. Rooted laterInstants(cx, InstantVector(cx)); if (!GetPossibleInstantsFor(cx, timeZone, laterDateTime, &laterInstants)) { return false; } - // Steps 24-25. + // Steps 25-26. if (laterInstants.empty()) { JS_ReportErrorNumberASCII(cx, GetErrorMessage, nullptr, JSMSG_TEMPORAL_TIMEZONE_INSTANT_AMBIGUOUS); return false; } - // Step 26. + // Step 27. size_t last = laterInstants.length() - 1; result.set(laterInstants[last]); return true; -- 2.11.4.GIT