[Temporal] Add since/until to PlainDateTime and ZonedDateTime

Also add AOs: DifferenceTemporalPlainDateTime, DifferenceTemporalZonedDateTime,

Spec Text:
https://tc39.es/proposal-temporal/#sec-temporal.plaindatetime.prototype.since
https://tc39.es/proposal-temporal/#sec-temporal.plaindatetime.prototype.until
https://tc39.es/proposal-temporal/#sec-temporal.zoneddatetime.prototype.since
https://tc39.es/proposal-temporal/#sec-temporal.zoneddatetime.prototype.until
https://tc39.es/proposal-temporal/#sec-temporal-differencetemporalplaindatetime
https://tc39.es/proposal-temporal/#sec-temporal-differencetemporalzoneddatetime

split from cl/3750098

Bug: v8:11544
Change-Id: I326d91a897fcd7e39de2fb2bfecfc5bfd920eb44
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3827313
Reviewed-by: Adam Klein <adamk@chromium.org>
Commit-Queue: Frank Tang <ftang@chromium.org>
Cr-Commit-Position: refs/heads/main@{#82447}
This commit is contained in:
Frank Tang 2022-08-12 15:42:34 -07:00 committed by V8 LUCI CQ
parent 6587dec02d
commit 5bc20acb0f
4 changed files with 346 additions and 234 deletions

View File

@ -38,18 +38,6 @@ namespace internal {
JSTemporal##T::NowISO(isolate, args.atOrUndefined(isolate, 1))); \
}
/* Temporal.PlaneDateTime */
/* Temporal #sec-temporal.plaindatetime.prototype.until */
TO_BE_IMPLEMENTED(TemporalPlainDateTimePrototypeUntil)
/* Temporal #sec-temporal.plaindatetime.prototype.since */
TO_BE_IMPLEMENTED(TemporalPlainDateTimePrototypeSince)
/* Temporal.ZonedDateTime */
/* Temporal #sec-temporal.zoneddatetime.prototype.until */
TO_BE_IMPLEMENTED(TemporalZonedDateTimePrototypeUntil)
/* Temporal #sec-temporal.zoneddatetime.prototype.since */
TO_BE_IMPLEMENTED(TemporalZonedDateTimePrototypeSince)
/* Temporal.Calendar */
/* Temporal #sec-temporal.calendar.prototype.weekofyear */
TO_BE_IMPLEMENTED(TemporalCalendarPrototypeWeekOfYear)
@ -358,12 +346,14 @@ TEMPORAL_PROTOTYPE_METHOD1(PlainDateTime, WithPlainDate, withPlainDate)
TEMPORAL_PROTOTYPE_METHOD2(PlainDateTime, With, with)
TEMPORAL_PROTOTYPE_METHOD2(PlainDateTime, Add, add)
TEMPORAL_PROTOTYPE_METHOD1(PlainDateTime, Round, round)
TEMPORAL_PROTOTYPE_METHOD2(PlainDateTime, Since, since)
TEMPORAL_PROTOTYPE_METHOD2(PlainDateTime, Subtract, subtract)
TEMPORAL_PROTOTYPE_METHOD0(PlainDateTime, ToPlainDate, toPlainDate)
TEMPORAL_PROTOTYPE_METHOD0(PlainDateTime, ToPlainTime, toPlainTime)
TEMPORAL_PROTOTYPE_METHOD0(PlainDateTime, ToJSON, toJSON)
TEMPORAL_PROTOTYPE_METHOD2(PlainDateTime, ToLocaleString, toLocaleString)
TEMPORAL_PROTOTYPE_METHOD1(PlainDateTime, ToString, toString)
TEMPORAL_PROTOTYPE_METHOD2(PlainDateTime, Until, until)
TEMPORAL_VALUE_OF(PlainDateTime)
// PlainYearMonth
@ -527,6 +517,7 @@ TEMPORAL_PROTOTYPE_METHOD2(ZonedDateTime, Subtract, subtract)
TEMPORAL_PROTOTYPE_METHOD0(ZonedDateTime, GetISOFields, getISOFields)
TEMPORAL_PROTOTYPE_METHOD0(ZonedDateTime, OffsetNanoseconds, offsetNanoseconds)
TEMPORAL_PROTOTYPE_METHOD0(ZonedDateTime, Offset, offset)
TEMPORAL_PROTOTYPE_METHOD2(ZonedDateTime, Since, since)
TEMPORAL_PROTOTYPE_METHOD0(ZonedDateTime, StartOfDay, startOfDay)
TEMPORAL_PROTOTYPE_METHOD0(ZonedDateTime, ToInstant, toInstant)
TEMPORAL_PROTOTYPE_METHOD0(ZonedDateTime, ToJSON, toJSON)
@ -535,6 +526,7 @@ TEMPORAL_PROTOTYPE_METHOD0(ZonedDateTime, ToPlainTime, toPlainTime)
TEMPORAL_PROTOTYPE_METHOD0(ZonedDateTime, ToPlainDateTime, toPlainDateTime)
TEMPORAL_PROTOTYPE_METHOD2(ZonedDateTime, ToLocaleString, toLocaleString)
TEMPORAL_PROTOTYPE_METHOD1(ZonedDateTime, ToString, toString)
TEMPORAL_PROTOTYPE_METHOD2(ZonedDateTime, Until, until)
TEMPORAL_VALUE_OF(ZonedDateTime)
// Duration

View File

@ -12963,6 +12963,141 @@ MaybeHandle<JSTemporalPlainDateTime> JSTemporalPlainDateTime::Subtract(
options, "Temporal.PlainDateTime.prototype.subtract");
}
namespace {
// #sec-temporal-differencetemporalplaindatetime
MaybeHandle<JSTemporalDuration> DifferenceTemporalPlainDateTime(
Isolate* isolate, TimePreposition operation,
Handle<JSTemporalPlainDateTime> date_time, Handle<Object> other_obj,
Handle<Object> options, const char* method_name) {
TEMPORAL_ENTER_FUNC();
// 1. If operation is since, let sign be -1. Otherwise, let sign be 1.
double sign = operation == TimePreposition::kSince ? -1 : 1;
// 2. Set other to ? ToTemporalDateTime(other).
Handle<JSTemporalPlainDateTime> other;
ASSIGN_RETURN_ON_EXCEPTION(
isolate, other, ToTemporalDateTime(isolate, other_obj, method_name),
JSTemporalDuration);
// 3. If ? CalendarEquals(dateTime.[[Calendar]], other.[[Calendar]]) is false,
// throw a RangeError exception.
bool calendar_equals;
MAYBE_ASSIGN_RETURN_ON_EXCEPTION_VALUE(
isolate, calendar_equals,
CalendarEqualsBool(isolate, handle(date_time->calendar(), isolate),
handle(other->calendar(), isolate)),
Handle<JSTemporalDuration>());
if (!calendar_equals) {
THROW_NEW_ERROR(isolate, NEW_TEMPORAL_INVALID_ARG_RANGE_ERROR(),
JSTemporalDuration);
}
// 4. Let settings be ? GetDifferenceSettings(operation, options, datetime, «
// », "nanosecond", "day").
DifferenceSettings settings;
MAYBE_ASSIGN_RETURN_ON_EXCEPTION_VALUE(
isolate, settings,
GetDifferenceSettings(isolate, operation, options, UnitGroup::kDateTime,
DisallowedUnitsInDifferenceSettings::kNone,
Unit::kNanosecond, Unit::kDay, method_name),
Handle<JSTemporalDuration>());
// 5. Let diff be ? DifferenceISODateTime(dateTime.[[ISOYear]],
// dateTime.[[ISOMonth]], dateTime.[[ISODay]], dateTime.[[ISOHour]],
// dateTime.[[ISOMinute]], dateTime.[[ISOSecond]],
// dateTime.[[ISOMillisecond]], dateTime.[[ISOMicrosecond]],
// dateTime.[[ISONanosecond]], other.[[ISOYear]], other.[[ISOMonth]],
// other.[[ISODay]], other.[[ISOHour]], other.[[ISOMinute]],
// other.[[ISOSecond]], other.[[ISOMillisecond]], other.[[ISOMicrosecond]],
// other.[[ISONanosecond]], dateTime.[[Calendar]], settings.[[LargestUnit]],
// settings.[[Options]]).
DurationRecord diff;
MAYBE_ASSIGN_RETURN_ON_EXCEPTION_VALUE(
isolate, diff,
DifferenceISODateTime(
isolate,
{{date_time->iso_year(), date_time->iso_month(),
date_time->iso_day()},
{date_time->iso_hour(), date_time->iso_minute(),
date_time->iso_second(), date_time->iso_millisecond(),
date_time->iso_microsecond(), date_time->iso_nanosecond()}},
{{other->iso_year(), other->iso_month(), other->iso_day()},
{other->iso_hour(), other->iso_minute(), other->iso_second(),
other->iso_millisecond(), other->iso_microsecond(),
other->iso_nanosecond()}},
handle(date_time->calendar(), isolate), settings.largest_unit,
settings.options, method_name),
Handle<JSTemporalDuration>());
// 6. Let relativeTo be ! CreateTemporalDate(dateTime.[[ISOYear]],
// dateTime.[[ISOMonth]], dateTime.[[ISODay]], dateTime.[[Calendar]]).
Handle<JSTemporalPlainDate> relative_to;
ASSIGN_RETURN_ON_EXCEPTION_VALUE(
isolate, relative_to,
CreateTemporalDate(
isolate,
{date_time->iso_year(), date_time->iso_month(), date_time->iso_day()},
handle(date_time->calendar(), isolate)),
Handle<JSTemporalDuration>());
// 7. Let roundResult be (? RoundDuration(diff.[[Years]], diff.[[Months]],
// diff.[[Weeks]], diff.[[Days]], diff.[[Hours]], diff.[[Minutes]],
// diff.[[Seconds]], diff.[[Milliseconds]], diff.[[Microseconds]],
// diff.[[Nanoseconds]], settings.[[RoundingIncrement]],
// settings.[[SmallestUnit]], settings.[[RoundingMode]],
// relativeTo)).[[DurationRecord]].
DurationRecordWithRemainder round_result;
MAYBE_ASSIGN_RETURN_ON_EXCEPTION_VALUE(
isolate, round_result,
RoundDuration(isolate, diff, settings.rounding_increment,
settings.smallest_unit, settings.rounding_mode, relative_to,
method_name),
Handle<JSTemporalDuration>());
// 8. Let result be ? BalanceDuration(roundResult.[[Days]],
// roundResult.[[Hours]], roundResult.[[Minutes]], roundResult.[[Seconds]],
// roundResult.[[Milliseconds]], roundResult.[[Microseconds]],
// roundResult.[[Nanoseconds]], settings.[[LargestUnit]]).
MAYBE_ASSIGN_RETURN_ON_EXCEPTION_VALUE(
isolate, round_result.record.time_duration,
BalanceDuration(isolate, settings.largest_unit,
round_result.record.time_duration, method_name),
Handle<JSTemporalDuration>());
// 9. Return ! CreateTemporalDuration(sign × roundResult.[[Years]], sign ×
// roundResult.[[Months]], sign × roundResult.[[Weeks]], sign ×
// result.[[Days]], sign × result.[[Hours]], sign × result.[[Minutes]], sign ×
// result.[[Seconds]], sign × result.[[Milliseconds]], sign ×
// result.[[Microseconds]], sign × result.[[Nanoseconds]]).
return CreateTemporalDuration(
isolate, {sign * round_result.record.years,
sign * round_result.record.months,
sign * round_result.record.weeks,
{sign * round_result.record.time_duration.days,
sign * round_result.record.time_duration.hours,
sign * round_result.record.time_duration.minutes,
sign * round_result.record.time_duration.seconds,
sign * round_result.record.time_duration.milliseconds,
sign * round_result.record.time_duration.microseconds,
sign * round_result.record.time_duration.nanoseconds}})
.ToHandleChecked();
}
} // namespace
// #sec-temporal.plaindatetime.prototype.until
MaybeHandle<JSTemporalDuration> JSTemporalPlainDateTime::Until(
Isolate* isolate, Handle<JSTemporalPlainDateTime> handle,
Handle<Object> other, Handle<Object> options) {
TEMPORAL_ENTER_FUNC();
return DifferenceTemporalPlainDateTime(
isolate, TimePreposition::kUntil, handle, other, options,
"Temporal.PlainDateTime.prototype.until");
}
// #sec-temporal.plaindatetime.prototype.since
MaybeHandle<JSTemporalDuration> JSTemporalPlainDateTime::Since(
Isolate* isolate, Handle<JSTemporalPlainDateTime> handle,
Handle<Object> other, Handle<Object> options) {
TEMPORAL_ENTER_FUNC();
return DifferenceTemporalPlainDateTime(
isolate, TimePreposition::kSince, handle, other, options,
"Temporal.PlainDateTime.prototype.since");
}
// #sec-temporal.plaindatetime.prototype.getisofields
MaybeHandle<JSReceiver> JSTemporalPlainDateTime::GetISOFields(
Isolate* isolate, Handle<JSTemporalPlainDateTime> date_time) {
@ -16907,6 +17042,191 @@ MaybeHandle<JSTemporalZonedDateTime> JSTemporalZonedDateTime::Subtract(
options, "Temporal.ZonedDateTime.prototype.subtract");
}
namespace {
Handle<BigInt> DifferenceInstant(Isolate* isolate, Handle<BigInt> ns1,
Handle<BigInt> ns2, double rounding_increment,
Unit smallest_unit,
RoundingMode rounding_mode);
// #sec-temporal-differencetemporalzoneddatetime
MaybeHandle<JSTemporalDuration> DifferenceTemporalZonedDateTime(
Isolate* isolate, TimePreposition operation,
Handle<JSTemporalZonedDateTime> zoned_date_time, Handle<Object> other_obj,
Handle<Object> options, const char* method_name) {
TEMPORAL_ENTER_FUNC();
// 1. If operation is since, let sign be -1. Otherwise, let sign be 1.
double sign = operation == TimePreposition::kSince ? -1 : 1;
// 2. Set other to ? ToTemporalZonedDateTime(other).
Handle<JSTemporalZonedDateTime> other;
ASSIGN_RETURN_ON_EXCEPTION(
isolate, other, ToTemporalZonedDateTime(isolate, other_obj, method_name),
JSTemporalDuration);
// 3. If ? CalendarEquals(zonedDateTime.[[Calendar]], other.[[Calendar]]) is
// false, then
bool calendar_equals;
MAYBE_ASSIGN_RETURN_ON_EXCEPTION_VALUE(
isolate, calendar_equals,
CalendarEqualsBool(isolate, handle(zoned_date_time->calendar(), isolate),
handle(other->calendar(), isolate)),
Handle<JSTemporalDuration>());
if (!calendar_equals) {
// a. Throw a RangeError exception.
THROW_NEW_ERROR(isolate, NEW_TEMPORAL_INVALID_ARG_RANGE_ERROR(),
JSTemporalDuration);
}
// 4. Let settings be ? GetDifferenceSettings(operation, options, datetime, «
// », "nanosecond", "hour").
DifferenceSettings settings;
MAYBE_ASSIGN_RETURN_ON_EXCEPTION_VALUE(
isolate, settings,
GetDifferenceSettings(isolate, operation, options, UnitGroup::kDateTime,
DisallowedUnitsInDifferenceSettings::kNone,
Unit::kNanosecond, Unit::kHour, method_name),
Handle<JSTemporalDuration>());
// 5. If settings.[[LargestUnit]] is not one of "year", "month", "week", or
// "day", then
if (settings.largest_unit != Unit::kYear &&
settings.largest_unit != Unit::kMonth &&
settings.largest_unit != Unit::kWeek &&
settings.largest_unit != Unit::kDay) {
// a. Let differenceNs be ! DifferenceInstant(zonedDateTime.[[Nanoseconds]],
// other.[[Nanoseconds]], settings.[[RoundingIncrement]],
// settings.[[SmallestUnit]], settings.[[RoundingMode]]).
Handle<BigInt> difference_ns = DifferenceInstant(
isolate, handle(zoned_date_time->nanoseconds(), isolate),
handle(other->nanoseconds(), isolate), settings.rounding_increment,
settings.smallest_unit, settings.rounding_mode);
// b. Assert: The following steps cannot fail due to overflow in the Number
// domain because abs(differenceNs) ≤ 2 × nsMaxInstant. c. Let balanceResult
// be ! BalanceDuration(0, 0, 0, 0, 0, 0, differenceNs,
// settings.[[LargestUnit]]).
TimeDurationRecord balance_result =
BalanceDuration(isolate, settings.largest_unit, difference_ns,
method_name)
.ToChecked();
// d. Return ! CreateTemporalDuration(0, 0, 0, 0, sign ×
// balanceResult.[[Hours]], sign × balanceResult.[[Minutes]], sign ×
// balanceResult.[[Seconds]], sign × balanceResult.[[Milliseconds]], sign ×
// balanceResult.[[Microseconds]], sign × balanceResult.[[Nanoseconds]]).
return CreateTemporalDuration(
isolate,
{0,
0,
0,
{0, sign * balance_result.hours, sign * balance_result.minutes,
sign * balance_result.seconds,
sign * balance_result.milliseconds,
sign * balance_result.microseconds,
sign * balance_result.nanoseconds}})
.ToHandleChecked();
}
// 6. If ? TimeZoneEquals(zonedDateTime.[[TimeZone]], other.[[TimeZone]]) is
// false, then
bool equals;
MAYBE_ASSIGN_RETURN_ON_EXCEPTION_VALUE(
isolate, equals,
TimeZoneEquals(isolate, handle(zoned_date_time->time_zone(), isolate),
handle(other->time_zone(), isolate)),
Handle<JSTemporalDuration>());
if (!equals) {
// a. Throw a RangeError exception.
THROW_NEW_ERROR(isolate, NEW_TEMPORAL_INVALID_ARG_RANGE_ERROR(),
JSTemporalDuration);
}
// 7. Let untilOptions be ? MergeLargestUnitOption(settings.[[Options]],
// settings.[[LargestUnit]]).
Handle<JSObject> until_options;
ASSIGN_RETURN_ON_EXCEPTION(
isolate, until_options,
MergeLargestUnitOption(isolate, settings.options, settings.largest_unit),
JSTemporalDuration);
// 8. Let difference be ?
// DifferenceZonedDateTime(zonedDateTime.[[Nanoseconds]],
// other.[[Nanoseconds]], zonedDateTime.[[TimeZone]],
// zonedDateTime.[[Calendar]], settings.[[LargestUnit]], untilOptions).
DurationRecord difference;
MAYBE_ASSIGN_RETURN_ON_EXCEPTION_VALUE(
isolate, difference,
DifferenceZonedDateTime(
isolate, handle(zoned_date_time->nanoseconds(), isolate),
handle(other->nanoseconds(), isolate),
handle(zoned_date_time->time_zone(), isolate),
handle(zoned_date_time->calendar(), isolate), settings.largest_unit,
until_options, method_name),
Handle<JSTemporalDuration>());
// 9. Let roundResult be (? RoundDuration(difference.[[Years]],
// difference.[[Months]], difference.[[Weeks]], difference.[[Days]],
// difference.[[Hours]], difference.[[Minutes]], difference.[[Seconds]],
// difference.[[Milliseconds]], difference.[[Microseconds]],
// difference.[[Nanoseconds]], settings.[[RoundingIncrement]],
// settings.[[SmallestUnit]], settings.[[RoundingMode]],
// zonedDateTime)).[[DurationRecord]].
DurationRecordWithRemainder round_result;
MAYBE_ASSIGN_RETURN_ON_EXCEPTION_VALUE(
isolate, round_result,
RoundDuration(isolate, difference, settings.rounding_increment,
settings.smallest_unit, settings.rounding_mode,
zoned_date_time, method_name),
Handle<JSTemporalDuration>());
// 10. Let result be ? AdjustRoundedDurationDays(roundResult.[[Years]],
// roundResult.[[Months]], roundResult.[[Weeks]], roundResult.[[Days]],
// roundResult.[[Hours]], roundResult.[[Minutes]], roundResult.[[Seconds]],
// roundResult.[[Milliseconds]], roundResult.[[Microseconds]],
// roundResult.[[Nanoseconds]], settings.[[RoundingIncrement]],
// settings.[[SmallestUnit]], settings.[[RoundingMode]], zonedDateTime).
DurationRecord result;
MAYBE_ASSIGN_RETURN_ON_EXCEPTION_VALUE(
isolate, result,
AdjustRoundedDurationDays(isolate, round_result.record,
settings.rounding_increment,
settings.smallest_unit, settings.rounding_mode,
zoned_date_time, method_name),
Handle<JSTemporalDuration>());
// 11. Return ! CreateTemporalDuration(sign × result.[[Years]], sign ×
// result.[[Months]], sign × result.[[Weeks]], sign × result.[[Days]], sign ×
// result.[[Hours]], sign × result.[[Minutes]], sign × result.[[Seconds]],
// sign × result.[[Milliseconds]], sign × result.[[Microseconds]], sign ×
// result.[[Nanoseconds]]).
return CreateTemporalDuration(isolate,
{sign * result.years,
sign * result.months,
sign * result.weeks,
{sign * result.time_duration.days,
sign * result.time_duration.hours,
sign * result.time_duration.minutes,
sign * result.time_duration.seconds,
sign * result.time_duration.milliseconds,
sign * result.time_duration.microseconds,
sign * result.time_duration.nanoseconds}})
.ToHandleChecked();
}
} // namespace
// #sec-temporal.zoneddatetime.prototype.until
MaybeHandle<JSTemporalDuration> JSTemporalZonedDateTime::Until(
Isolate* isolate, Handle<JSTemporalZonedDateTime> handle,
Handle<Object> other, Handle<Object> options) {
TEMPORAL_ENTER_FUNC();
return DifferenceTemporalZonedDateTime(
isolate, TimePreposition::kUntil, handle, other, options,
"Temporal.ZonedDateTime.prototype.until");
}
// #sec-temporal.zoneddatetime.prototype.since
MaybeHandle<JSTemporalDuration> JSTemporalZonedDateTime::Since(
Isolate* isolate, Handle<JSTemporalZonedDateTime> handle,
Handle<Object> other, Handle<Object> options) {
TEMPORAL_ENTER_FUNC();
return DifferenceTemporalZonedDateTime(
isolate, TimePreposition::kSince, handle, other, options,
"Temporal.ZonedDateTime.prototype.since");
}
// #sec-temporal.zoneddatetime.prototype.getisofields
MaybeHandle<JSReceiver> JSTemporalZonedDateTime::GetISOFields(
Isolate* isolate, Handle<JSTemporalZonedDateTime> zoned_date_time) {

View File

@ -531,6 +531,16 @@ class JSTemporalPlainDateTime
Isolate* isolate, Handle<JSTemporalPlainDateTime> date_time,
Handle<Object> round_to);
// #sec-temporal.plaindatetime.prototype.until
V8_WARN_UNUSED_RESULT static MaybeHandle<JSTemporalDuration> Until(
Isolate* isolate, Handle<JSTemporalPlainDateTime> date_time,
Handle<Object> other, Handle<Object> options);
// #sec-temporal.plaindatetime.prototype.since
V8_WARN_UNUSED_RESULT static MaybeHandle<JSTemporalDuration> Since(
Isolate* isolate, Handle<JSTemporalPlainDateTime> date_time,
Handle<Object> other, Handle<Object> options);
// #sec-temporal.plaindatetime.prototype.add
V8_WARN_UNUSED_RESULT static MaybeHandle<JSTemporalPlainDateTime> Add(
Isolate* isolate, Handle<JSTemporalPlainDateTime> date_time,
@ -943,6 +953,16 @@ class JSTemporalZonedDateTime
Isolate* isolate, Handle<JSTemporalZonedDateTime> zoned_date_time,
Handle<Object> round_to);
// #sec-temporal.zoneddatetime.prototype.until
V8_WARN_UNUSED_RESULT static MaybeHandle<JSTemporalDuration> Until(
Isolate* isolate, Handle<JSTemporalZonedDateTime> date_time,
Handle<Object> other, Handle<Object> options);
// #sec-temporal.zoneddatetime.prototype.since
V8_WARN_UNUSED_RESULT static MaybeHandle<JSTemporalDuration> Since(
Isolate* isolate, Handle<JSTemporalZonedDateTime> date_time,
Handle<Object> other, Handle<Object> options);
// #sec-temporal.zoneddatetime.prototype.add
V8_WARN_UNUSED_RESULT static MaybeHandle<JSTemporalZonedDateTime> Add(
Isolate* isolate, Handle<JSTemporalZonedDateTime> zoned_date_time,

View File

@ -489,83 +489,20 @@
'built-ins/Temporal/PlainDate/prototype/toZonedDateTime/timezone-string-multiple-offsets': [FAIL],
'built-ins/Temporal/PlainDate/prototype/weekOfYear/basic': [FAIL],
'built-ins/Temporal/PlainDateTime/prototype/add/argument-string-negative-fractional-units': [FAIL],
'built-ins/Temporal/PlainDateTime/prototype/since/argument-plaindate': [FAIL],
'built-ins/Temporal/PlainDateTime/prototype/since/argument-string-with-utc-designator': [FAIL],
'built-ins/Temporal/PlainDateTime/prototype/since/argument-zoneddatetime-balance-negative-time-units': [FAIL],
'built-ins/Temporal/PlainDateTime/prototype/since/argument-zoneddatetime-negative-epochnanoseconds': [FAIL],
'built-ins/Temporal/PlainDateTime/prototype/since/argument-zoneddatetime-timezone-getoffsetnanosecondsfor-non-integer': [FAIL],
'built-ins/Temporal/PlainDateTime/prototype/since/argument-zoneddatetime-timezone-getoffsetnanosecondsfor-not-callable': [FAIL],
'built-ins/Temporal/PlainDateTime/prototype/since/argument-zoneddatetime-timezone-getoffsetnanosecondsfor-out-of-range': [FAIL],
'built-ins/Temporal/PlainDateTime/prototype/since/argument-zoneddatetime-timezone-getoffsetnanosecondsfor-wrong-type': [FAIL],
'built-ins/Temporal/PlainDateTime/prototype/since/balance-negative-duration': [FAIL],
'built-ins/Temporal/PlainDateTime/prototype/since/balance-negative-time-units': [FAIL],
'built-ins/Temporal/PlainDateTime/prototype/since/branding': [FAIL],
'built-ins/Temporal/PlainDateTime/prototype/since/calendar-dateadd-called-with-plaindate-instance': [FAIL],
'built-ins/Temporal/PlainDateTime/prototype/since/calendar-dateuntil-called-with-copy-of-options': [FAIL],
'built-ins/Temporal/PlainDateTime/prototype/since/calendar-dateuntil-called-with-plaindate-calendar': [FAIL],
'built-ins/Temporal/PlainDateTime/prototype/since/calendar-dateuntil-called-with-singular-largestunit': [FAIL],
'built-ins/Temporal/PlainDateTime/prototype/since/calendar-fields-iterable': [FAIL],
'built-ins/Temporal/PlainDateTime/prototype/since/calendar-temporal-object': [FAIL],
'built-ins/Temporal/PlainDateTime/prototype/since/infinity-throws-rangeerror': [FAIL],
'built-ins/Temporal/PlainDateTime/prototype/since/largestunit': [FAIL],
'built-ins/Temporal/PlainDateTime/prototype/since/largestunit-invalid-string': [FAIL],
'built-ins/Temporal/PlainDateTime/prototype/since/largestunit-plurals-accepted': [FAIL],
'built-ins/Temporal/PlainDateTime/prototype/since/largestunit-undefined': [FAIL],
'built-ins/Temporal/PlainDateTime/prototype/since/largestunit-wrong-type': [FAIL],
'built-ins/Temporal/PlainDateTime/prototype/since/options-undefined': [FAIL],
'built-ins/Temporal/PlainDateTime/prototype/since/read-time-fields-before-datefromfields': [FAIL],
'built-ins/Temporal/PlainDateTime/prototype/since/roundingincrement-nan': [FAIL],
'built-ins/Temporal/PlainDateTime/prototype/since/roundingincrement-non-integer': [FAIL],
'built-ins/Temporal/PlainDateTime/prototype/since/roundingincrement-out-of-range': [FAIL],
'built-ins/Temporal/PlainDateTime/prototype/since/roundingincrement-undefined': [FAIL],
'built-ins/Temporal/PlainDateTime/prototype/since/roundingincrement-wrong-type': [FAIL],
'built-ins/Temporal/PlainDateTime/prototype/since/roundingmode-invalid-string': [FAIL],
'built-ins/Temporal/PlainDateTime/prototype/since/roundingmode-undefined': [FAIL],
'built-ins/Temporal/PlainDateTime/prototype/since/roundingmode-wrong-type': [FAIL],
'built-ins/Temporal/PlainDateTime/prototype/since/round-negative-duration': [FAIL],
'built-ins/Temporal/PlainDateTime/prototype/since/smallestunit-invalid-string': [FAIL],
'built-ins/Temporal/PlainDateTime/prototype/since/smallestunit-plurals-accepted': [FAIL],
'built-ins/Temporal/PlainDateTime/prototype/since/smallestunit-undefined': [FAIL],
'built-ins/Temporal/PlainDateTime/prototype/since/smallestunit-wrong-type': [FAIL],
'built-ins/Temporal/PlainDateTime/prototype/toPlainDate/limits': [FAIL],
'built-ins/Temporal/PlainDateTime/prototype/toZonedDateTime/timezone-string-multiple-offsets': [FAIL],
'built-ins/Temporal/PlainDateTime/prototype/until/argument-plaindate': [FAIL],
'built-ins/Temporal/PlainDateTime/prototype/until/argument-string-with-utc-designator': [FAIL],
'built-ins/Temporal/PlainDateTime/prototype/until/argument-zoneddatetime-balance-negative-time-units': [FAIL],
'built-ins/Temporal/PlainDateTime/prototype/until/argument-zoneddatetime-negative-epochnanoseconds': [FAIL],
'built-ins/Temporal/PlainDateTime/prototype/until/argument-zoneddatetime-timezone-getoffsetnanosecondsfor-non-integer': [FAIL],
'built-ins/Temporal/PlainDateTime/prototype/until/argument-zoneddatetime-timezone-getoffsetnanosecondsfor-not-callable': [FAIL],
'built-ins/Temporal/PlainDateTime/prototype/until/argument-zoneddatetime-timezone-getoffsetnanosecondsfor-out-of-range': [FAIL],
'built-ins/Temporal/PlainDateTime/prototype/until/argument-zoneddatetime-timezone-getoffsetnanosecondsfor-wrong-type': [FAIL],
'built-ins/Temporal/PlainDateTime/prototype/until/balance': [FAIL],
'built-ins/Temporal/PlainDateTime/prototype/until/balance-negative-duration': [FAIL],
'built-ins/Temporal/PlainDateTime/prototype/until/balance-negative-time-units': [FAIL],
'built-ins/Temporal/PlainDateTime/prototype/until/branding': [FAIL],
'built-ins/Temporal/PlainDateTime/prototype/until/calendar-dateadd-called-with-plaindate-instance': [FAIL],
'built-ins/Temporal/PlainDateTime/prototype/until/calendar-dateuntil-called-with-copy-of-options': [FAIL],
'built-ins/Temporal/PlainDateTime/prototype/until/calendar-dateuntil-called-with-plaindate-calendar': [FAIL],
'built-ins/Temporal/PlainDateTime/prototype/until/calendar-dateuntil-called-with-singular-largestunit': [FAIL],
'built-ins/Temporal/PlainDateTime/prototype/until/calendar-fields-iterable': [FAIL],
'built-ins/Temporal/PlainDateTime/prototype/until/calendar-temporal-object': [FAIL],
'built-ins/Temporal/PlainDateTime/prototype/until/infinity-throws-rangeerror': [FAIL],
'built-ins/Temporal/PlainDateTime/prototype/until/largestunit-invalid-string': [FAIL],
'built-ins/Temporal/PlainDateTime/prototype/until/largestunit-plurals-accepted': [FAIL],
'built-ins/Temporal/PlainDateTime/prototype/until/largestunit-wrong-type': [FAIL],
'built-ins/Temporal/PlainDateTime/prototype/until/options-undefined': [FAIL],
'built-ins/Temporal/PlainDateTime/prototype/until/read-time-fields-before-datefromfields': [FAIL],
'built-ins/Temporal/PlainDateTime/prototype/until/roundingincrement-nan': [FAIL],
'built-ins/Temporal/PlainDateTime/prototype/until/roundingincrement-non-integer': [FAIL],
'built-ins/Temporal/PlainDateTime/prototype/until/roundingincrement-out-of-range': [FAIL],
'built-ins/Temporal/PlainDateTime/prototype/until/roundingincrement-undefined': [FAIL],
'built-ins/Temporal/PlainDateTime/prototype/until/roundingincrement-wrong-type': [FAIL],
'built-ins/Temporal/PlainDateTime/prototype/until/roundingmode-invalid-string': [FAIL],
'built-ins/Temporal/PlainDateTime/prototype/until/roundingmode-undefined': [FAIL],
'built-ins/Temporal/PlainDateTime/prototype/until/roundingmode-wrong-type': [FAIL],
'built-ins/Temporal/PlainDateTime/prototype/until/round-negative-duration': [FAIL],
'built-ins/Temporal/PlainDateTime/prototype/until/smallestunit-invalid-string': [FAIL],
'built-ins/Temporal/PlainDateTime/prototype/until/smallestunit-plurals-accepted': [FAIL],
'built-ins/Temporal/PlainDateTime/prototype/until/smallestunit-undefined': [FAIL],
'built-ins/Temporal/PlainDateTime/prototype/until/smallestunit-wrong-type': [FAIL],
'built-ins/Temporal/PlainMonthDay/from/calendar-monthdayfromfields-called-with-options-undefined': [FAIL],
'built-ins/Temporal/PlainMonthDay/prototype/equals/calendar-monthdayfromfields-called-with-options-undefined': [FAIL],
'built-ins/Temporal/PlainMonthDay/prototype/toPlainDate/limits': [FAIL],
@ -595,81 +532,12 @@
'built-ins/Temporal/ZonedDateTime/prototype/equals/zoneddatetime-string': [FAIL],
'built-ins/Temporal/ZonedDateTime/prototype/equals/zoneddatetime-string-multiple-offsets': [FAIL],
'built-ins/Temporal/ZonedDateTime/prototype/hoursInDay/timezone-getpossibleinstantsfor-iterable': [SKIP],
'built-ins/Temporal/ZonedDateTime/prototype/since/argument-propertybag-timezone-getoffsetnanosecondsfor-not-callable': [FAIL],
'built-ins/Temporal/ZonedDateTime/prototype/since/balance-negative-time-units': [FAIL],
'built-ins/Temporal/ZonedDateTime/prototype/since/branding': [FAIL],
'built-ins/Temporal/ZonedDateTime/prototype/since/calendar-dateadd-called-with-options-undefined': [FAIL],
'built-ins/Temporal/ZonedDateTime/prototype/since/calendar-dateuntil-called-with-copy-of-options': [FAIL],
'built-ins/Temporal/ZonedDateTime/prototype/since/calendar-dateuntil-called-with-singular-largestunit': [FAIL],
'built-ins/Temporal/ZonedDateTime/prototype/since/calendar-fields-iterable': [FAIL],
'built-ins/Temporal/ZonedDateTime/prototype/since/calendar-temporal-object': [FAIL],
'built-ins/Temporal/ZonedDateTime/prototype/since/infinity-throws-rangeerror': [FAIL],
'built-ins/Temporal/ZonedDateTime/prototype/since/largestunit': [FAIL],
'built-ins/Temporal/ZonedDateTime/prototype/since/largestunit-invalid-string': [FAIL],
'built-ins/Temporal/ZonedDateTime/prototype/since/largestunit-plurals-accepted': [SKIP],
'built-ins/Temporal/ZonedDateTime/prototype/since/largestunit-undefined': [SKIP],
'built-ins/Temporal/ZonedDateTime/prototype/since/largestunit-wrong-type': [FAIL],
'built-ins/Temporal/ZonedDateTime/prototype/since/negative-epochnanoseconds': [FAIL],
'built-ins/Temporal/ZonedDateTime/prototype/since/options-undefined': [SKIP],
'built-ins/Temporal/ZonedDateTime/prototype/since/read-time-fields-before-datefromfields': [FAIL],
'built-ins/Temporal/ZonedDateTime/prototype/since/roundingincrement-nan': [FAIL],
'built-ins/Temporal/ZonedDateTime/prototype/since/roundingincrement-non-integer': [SKIP],
'built-ins/Temporal/ZonedDateTime/prototype/since/roundingincrement-out-of-range': [FAIL],
'built-ins/Temporal/ZonedDateTime/prototype/since/roundingincrement-undefined': [SKIP],
'built-ins/Temporal/ZonedDateTime/prototype/since/roundingincrement-wrong-type': [SKIP],
'built-ins/Temporal/ZonedDateTime/prototype/since/roundingmode-invalid-string': [FAIL],
'built-ins/Temporal/ZonedDateTime/prototype/since/roundingmode-undefined': [SKIP],
'built-ins/Temporal/ZonedDateTime/prototype/since/roundingmode-wrong-type': [SKIP],
'built-ins/Temporal/ZonedDateTime/prototype/since/smallestunit-invalid-string': [FAIL],
'built-ins/Temporal/ZonedDateTime/prototype/since/smallestunit-plurals-accepted': [FAIL],
'built-ins/Temporal/ZonedDateTime/prototype/since/smallestunit-undefined': [SKIP],
'built-ins/Temporal/ZonedDateTime/prototype/since/smallestunit-wrong-type': [SKIP],
'built-ins/Temporal/ZonedDateTime/prototype/since/sub-minute-offset': [FAIL],
'built-ins/Temporal/ZonedDateTime/prototype/since/timezone-getoffsetnanosecondsfor-non-integer': [FAIL],
'built-ins/Temporal/ZonedDateTime/prototype/since/timezone-getoffsetnanosecondsfor-not-callable': [FAIL],
'built-ins/Temporal/ZonedDateTime/prototype/since/timezone-getoffsetnanosecondsfor-out-of-range': [FAIL],
'built-ins/Temporal/ZonedDateTime/prototype/since/timezone-getoffsetnanosecondsfor-wrong-type': [FAIL],
'built-ins/Temporal/ZonedDateTime/prototype/since/timezone-getpossibleinstantsfor-iterable': [FAIL],
'built-ins/Temporal/ZonedDateTime/prototype/since/timezone-string-datetime': [FAIL],
'built-ins/Temporal/ZonedDateTime/prototype/since/timezone-string-multiple-offsets': [FAIL],
'built-ins/Temporal/ZonedDateTime/prototype/since/zoneddatetime-string': [FAIL],
'built-ins/Temporal/ZonedDateTime/prototype/since/zoneddatetime-string-multiple-offsets': [FAIL],
'built-ins/Temporal/ZonedDateTime/prototype/until/argument-propertybag-timezone-getoffsetnanosecondsfor-not-callable': [FAIL],
'built-ins/Temporal/ZonedDateTime/prototype/until/balance-negative-time-units': [FAIL],
'built-ins/Temporal/ZonedDateTime/prototype/until/branding': [FAIL],
'built-ins/Temporal/ZonedDateTime/prototype/until/calendar-dateadd-called-with-options-undefined': [FAIL],
'built-ins/Temporal/ZonedDateTime/prototype/until/calendar-dateuntil-called-with-copy-of-options': [FAIL],
'built-ins/Temporal/ZonedDateTime/prototype/until/calendar-dateuntil-called-with-singular-largestunit': [FAIL],
'built-ins/Temporal/ZonedDateTime/prototype/until/calendar-fields-iterable': [FAIL],
'built-ins/Temporal/ZonedDateTime/prototype/until/calendar-temporal-object': [FAIL],
'built-ins/Temporal/ZonedDateTime/prototype/until/infinity-throws-rangeerror': [FAIL],
'built-ins/Temporal/ZonedDateTime/prototype/until/largestunit-invalid-string': [FAIL],
'built-ins/Temporal/ZonedDateTime/prototype/until/largestunit-plurals-accepted': [SKIP],
'built-ins/Temporal/ZonedDateTime/prototype/until/largestunit-undefined': [SKIP],
'built-ins/Temporal/ZonedDateTime/prototype/until/largestunit-wrong-type': [FAIL],
'built-ins/Temporal/ZonedDateTime/prototype/until/negative-epochnanoseconds': [FAIL],
'built-ins/Temporal/ZonedDateTime/prototype/until/options-undefined': [SKIP],
'built-ins/Temporal/ZonedDateTime/prototype/until/read-time-fields-before-datefromfields': [FAIL],
'built-ins/Temporal/ZonedDateTime/prototype/until/roundingincrement-nan': [FAIL],
'built-ins/Temporal/ZonedDateTime/prototype/until/roundingincrement-non-integer': [SKIP],
'built-ins/Temporal/ZonedDateTime/prototype/until/roundingincrement-out-of-range': [FAIL],
'built-ins/Temporal/ZonedDateTime/prototype/until/roundingincrement-undefined': [SKIP],
'built-ins/Temporal/ZonedDateTime/prototype/until/roundingincrement-wrong-type': [SKIP],
'built-ins/Temporal/ZonedDateTime/prototype/until/roundingmode-invalid-string': [FAIL],
'built-ins/Temporal/ZonedDateTime/prototype/until/roundingmode-undefined': [SKIP],
'built-ins/Temporal/ZonedDateTime/prototype/until/roundingmode-wrong-type': [SKIP],
'built-ins/Temporal/ZonedDateTime/prototype/until/smallestunit-invalid-string': [FAIL],
'built-ins/Temporal/ZonedDateTime/prototype/until/smallestunit-plurals-accepted': [FAIL],
'built-ins/Temporal/ZonedDateTime/prototype/until/smallestunit-undefined': [SKIP],
'built-ins/Temporal/ZonedDateTime/prototype/until/smallestunit-wrong-type': [SKIP],
'built-ins/Temporal/ZonedDateTime/prototype/until/sub-minute-offset': [FAIL],
'built-ins/Temporal/ZonedDateTime/prototype/until/timezone-getoffsetnanosecondsfor-non-integer': [FAIL],
'built-ins/Temporal/ZonedDateTime/prototype/until/timezone-getoffsetnanosecondsfor-not-callable': [FAIL],
'built-ins/Temporal/ZonedDateTime/prototype/until/timezone-getoffsetnanosecondsfor-out-of-range': [FAIL],
'built-ins/Temporal/ZonedDateTime/prototype/until/timezone-getoffsetnanosecondsfor-wrong-type': [FAIL],
'built-ins/Temporal/ZonedDateTime/prototype/until/timezone-getpossibleinstantsfor-iterable': [FAIL],
'built-ins/Temporal/ZonedDateTime/prototype/until/timezone-string-datetime': [FAIL],
'built-ins/Temporal/ZonedDateTime/prototype/until/timezone-string-multiple-offsets': [FAIL],
'built-ins/Temporal/ZonedDateTime/prototype/until/zoneddatetime-string': [FAIL],
'built-ins/Temporal/ZonedDateTime/prototype/until/zoneddatetime-string-multiple-offsets': [FAIL],
'built-ins/Temporal/ZonedDateTime/prototype/withTimeZone/timezone-string-multiple-offsets': [FAIL],
@ -689,13 +557,11 @@
'intl402/Temporal/PlainDate/prototype/toLocaleString/options-undefined': [FAIL],
'intl402/Temporal/PlainDate/prototype/toLocaleString/resolved-time-zone': [FAIL],
'intl402/Temporal/PlainDate/prototype/toLocaleString/timezone-getoffsetnanosecondsfor-not-callable': [FAIL],
'intl402/Temporal/PlainDateTime/prototype/since/infinity-throws-rangeerror': [FAIL],
'intl402/Temporal/PlainDateTime/prototype/toLocaleString/locales-undefined': [FAIL],
'intl402/Temporal/PlainDateTime/prototype/toLocaleString/options-conflict': [FAIL],
'intl402/Temporal/PlainDateTime/prototype/toLocaleString/options-undefined': [FAIL],
'intl402/Temporal/PlainDateTime/prototype/toLocaleString/resolved-time-zone': [FAIL],
'intl402/Temporal/PlainDateTime/prototype/toLocaleString/timezone-getoffsetnanosecondsfor-not-callable': [FAIL],
'intl402/Temporal/PlainDateTime/prototype/until/infinity-throws-rangeerror': [FAIL],
'intl402/Temporal/PlainMonthDay/prototype/toLocaleString/locales-undefined': [FAIL],
'intl402/Temporal/PlainMonthDay/prototype/toLocaleString/options-undefined': [FAIL],
'intl402/Temporal/PlainMonthDay/prototype/toLocaleString/resolved-time-zone': [FAIL],
@ -709,90 +575,48 @@
'intl402/Temporal/PlainYearMonth/prototype/toLocaleString/options-undefined': [FAIL],
'intl402/Temporal/PlainYearMonth/prototype/toLocaleString/resolved-time-zone': [FAIL],
'intl402/Temporal/PlainYearMonth/prototype/toLocaleString/timezone-getoffsetnanosecondsfor-not-callable': [FAIL],
'intl402/Temporal/ZonedDateTime/prototype/since/infinity-throws-rangeerror': [FAIL],
'intl402/Temporal/ZonedDateTime/prototype/toLocaleString/locales-undefined': [FAIL],
'intl402/Temporal/ZonedDateTime/prototype/toLocaleString/options-conflict': [FAIL],
'intl402/Temporal/ZonedDateTime/prototype/toLocaleString/options-undefined': [FAIL],
'intl402/Temporal/ZonedDateTime/prototype/until/infinity-throws-rangeerror': [FAIL],
'intl402/Temporal/Duration/prototype/round/relativeto-string-datetime': [FAIL],
'intl402/Temporal/Duration/prototype/total/relativeto-string-datetime': [FAIL],
'intl402/Temporal/ZonedDateTime/prototype/since/timezone-string-datetime': [FAIL],
'intl402/Temporal/ZonedDateTime/prototype/until/timezone-string-datetime': [FAIL],
'intl402/Temporal/PlainYearMonth/from/argument-object': [FAIL],
'built-ins/Temporal/Calendar/prototype/weekOfYear/year-zero': [FAIL],
'built-ins/Temporal/Duration/prototype/total/calendar-possibly-required': [FAIL],
'built-ins/Temporal/PlainDate/prototype/toPlainDateTime/argument-string-no-implicit-midnight': [FAIL],
'built-ins/Temporal/PlainDate/prototype/toPlainYearMonth/limits': [FAIL],
'built-ins/Temporal/PlainDate/prototype/toZonedDateTime/argument-string-no-implicit-midnight': [FAIL],
'built-ins/Temporal/PlainDateTime/prototype/since/largestunit-smallestunit-mismatch': [FAIL],
'built-ins/Temporal/PlainDateTime/prototype/since/year-zero': [FAIL],
'built-ins/Temporal/PlainDateTime/prototype/until/largestunit-smallestunit-mismatch': [FAIL],
'built-ins/Temporal/PlainDateTime/prototype/until/year-zero': [FAIL],
'built-ins/Temporal/PlainDateTime/prototype/withPlainTime/argument-string-no-implicit-midnight': [FAIL],
'built-ins/Temporal/PlainTime/compare/argument-string-no-implicit-midnight': [FAIL],
'built-ins/Temporal/PlainTime/from/argument-string-no-implicit-midnight': [FAIL],
'built-ins/Temporal/PlainTime/prototype/since/argument-string-no-implicit-midnight': [FAIL],
'built-ins/Temporal/PlainTime/prototype/until/argument-string-no-implicit-midnight': [FAIL],
'built-ins/Temporal/ZonedDateTime/prototype/since/argument-propertybag-offset-not-agreeing-with-timezone': [FAIL],
'built-ins/Temporal/ZonedDateTime/prototype/since/largestunit-smallestunit-mismatch': [FAIL],
'built-ins/Temporal/ZonedDateTime/prototype/since/year-zero': [FAIL],
'built-ins/Temporal/ZonedDateTime/prototype/until/argument-propertybag-offset-not-agreeing-with-timezone': [FAIL],
'built-ins/Temporal/ZonedDateTime/prototype/until/largestunit-smallestunit-mismatch': [FAIL],
'built-ins/Temporal/ZonedDateTime/prototype/until/year-zero': [FAIL],
'built-ins/Temporal/ZonedDateTime/prototype/withPlainTime/argument-string-no-implicit-midnight': [FAIL],
'built-ins/Temporal/Calendar/prototype/weekOfYear/argument-string-invalid': [FAIL],
'built-ins/Temporal/PlainDateTime/datetime-math': [FAIL],
'built-ins/Temporal/PlainDateTime/prototype/until/casts-argument': [FAIL],
'built-ins/Temporal/PlainDateTime/prototype/until/different-calendars-throws': [FAIL],
'built-ins/Temporal/PlainDateTime/prototype/until/inverse': [FAIL],
'built-ins/Temporal/PlainDateTime/prototype/until/no-unnecessary-units': [FAIL],
'built-ins/Temporal/PlainDateTime/prototype/until/returns-days': [FAIL],
'built-ins/Temporal/PlainDateTime/prototype/until/subseconds': [FAIL],
'built-ins/Temporal/PlainDateTime/prototype/until/units-changed': [FAIL],
'built-ins/Temporal/PlainDateTime/prototype/until/weeks-months-mutually-exclusive': [FAIL],
'built-ins/Temporal/PlainDateTime/prototype/weekOfYear/basic': [FAIL],
'built-ins/Temporal/Instant/prototype/round/rounding-direction': [FAIL],
'built-ins/Temporal/Instant/prototype/toString/rounding-direction': [FAIL],
'built-ins/Temporal/PlainDateTime/prototype/since/argument-object': [FAIL],
'built-ins/Temporal/PlainDateTime/prototype/since/argument-string': [FAIL],
'built-ins/Temporal/PlainDateTime/prototype/since/different-calendars-throws': [FAIL],
'built-ins/Temporal/PlainDateTime/prototype/since/no-unnecessary-units': [FAIL],
'built-ins/Temporal/PlainDateTime/prototype/since/options-empty': [FAIL],
'built-ins/Temporal/PlainDateTime/prototype/since/options-invalid': [FAIL],
'built-ins/Temporal/PlainDateTime/prototype/since/options-wrong-type': [FAIL],
'built-ins/Temporal/PlainDateTime/prototype/since/returns-days': [FAIL],
'built-ins/Temporal/PlainDateTime/prototype/since/roundingincrement-basic': [FAIL],
'built-ins/Temporal/PlainDateTime/prototype/since/roundingincrement-cleanly-divides': [FAIL],
'built-ins/Temporal/PlainDateTime/prototype/since/roundingincrement-does-not-divide': [FAIL],
'built-ins/Temporal/PlainDateTime/prototype/since/roundingmode-ceil-basic': [FAIL],
'built-ins/Temporal/PlainDateTime/prototype/since/roundingmode-floor-basic': [FAIL],
'built-ins/Temporal/PlainDateTime/prototype/since/roundingmode-halfexpand-basic': [FAIL],
'built-ins/Temporal/PlainDateTime/prototype/since/roundingmode-halfexpand-default-changes': [FAIL],
'built-ins/Temporal/PlainDateTime/prototype/since/roundingmode-trunc-basic': [FAIL],
'built-ins/Temporal/PlainDateTime/prototype/since/roundingmode-trunc-is-default': [FAIL],
'built-ins/Temporal/PlainDateTime/prototype/since/round-relative-to-receiver': [FAIL],
'built-ins/Temporal/PlainDateTime/prototype/since/subseconds': [FAIL],
'built-ins/Temporal/PlainDateTime/prototype/since/weeks-months-mutually-exclusive': [FAIL],
'built-ins/Temporal/PlainDateTime/prototype/until/argument-object': [FAIL],
'built-ins/Temporal/PlainDateTime/prototype/until/argument-string': [FAIL],
'built-ins/Temporal/PlainDateTime/prototype/until/options-empty': [FAIL],
'built-ins/Temporal/PlainDateTime/prototype/until/options-invalid': [FAIL],
'built-ins/Temporal/PlainDateTime/prototype/until/options-wrong-type': [FAIL],
'built-ins/Temporal/PlainDateTime/prototype/until/roundingincrement-basic': [FAIL],
'built-ins/Temporal/PlainDateTime/prototype/until/roundingincrement-cleanly-divides': [FAIL],
'built-ins/Temporal/PlainDateTime/prototype/until/roundingincrement-does-not-divide': [FAIL],
'built-ins/Temporal/PlainDateTime/prototype/until/roundingmode-ceil-basic': [FAIL],
'built-ins/Temporal/PlainDateTime/prototype/until/roundingmode-floor-basic': [FAIL],
'built-ins/Temporal/PlainDateTime/prototype/until/roundingmode-halfexpand-basic': [FAIL],
'built-ins/Temporal/PlainDateTime/prototype/until/roundingmode-halfexpand-default-changes': [FAIL],
'built-ins/Temporal/PlainDateTime/prototype/until/roundingmode-trunc-basic': [FAIL],
'built-ins/Temporal/PlainDateTime/prototype/until/roundingmode-trunc-is-default': [FAIL],
'built-ins/Temporal/PlainDateTime/prototype/until/round-relative-to-receiver': [FAIL],
'built-ins/Temporal/ZonedDateTime/prototype/since/options-wrong-type': [FAIL],
'built-ins/Temporal/ZonedDateTime/prototype/toString/rounding-direction': [FAIL],
'built-ins/Temporal/ZonedDateTime/prototype/until/options-wrong-type': [FAIL],
'intl402/Temporal/PlainDateTime/prototype/withPlainDate/argument-string-calendar': [FAIL],
'built-ins/Temporal/Calendar/from/calendar-number': [FAIL],
@ -837,16 +661,10 @@
'built-ins/Temporal/PlainDateTime/prototype/add/limits': [FAIL],
'built-ins/Temporal/PlainDateTime/prototype/equals/argument-propertybag-calendar-number': [FAIL],
'built-ins/Temporal/PlainDateTime/prototype/round/limits': [FAIL],
'built-ins/Temporal/PlainDateTime/prototype/since/argument-number': [FAIL],
'built-ins/Temporal/PlainDateTime/prototype/since/argument-propertybag-calendar-number': [FAIL],
'built-ins/Temporal/PlainDateTime/prototype/since/argument-propertybag-calendar-wrong-type': [FAIL],
'built-ins/Temporal/PlainDateTime/prototype/since/argument-wrong-type': [FAIL],
'built-ins/Temporal/PlainDateTime/prototype/subtract/limits': [FAIL],
'built-ins/Temporal/PlainDateTime/prototype/toZonedDateTime/invalid-instant': [FAIL],
'built-ins/Temporal/PlainDateTime/prototype/until/argument-number': [FAIL],
'built-ins/Temporal/PlainDateTime/prototype/until/argument-propertybag-calendar-number': [FAIL],
'built-ins/Temporal/PlainDateTime/prototype/until/argument-propertybag-calendar-wrong-type': [FAIL],
'built-ins/Temporal/PlainDateTime/prototype/until/argument-wrong-type': [FAIL],
'built-ins/Temporal/PlainDateTime/prototype/withCalendar/calendar-number': [FAIL],
'built-ins/Temporal/PlainDateTime/prototype/withPlainDate/argument-propertybag-calendar-number': [FAIL],
'built-ins/Temporal/PlainMonthDay/calendar-number': [FAIL],
@ -870,13 +688,7 @@
'built-ins/Temporal/ZonedDateTime/from/argument-propertybag-calendar-number': [FAIL],
'built-ins/Temporal/ZonedDateTime/prototype/equals/argument-propertybag-calendar-number': [FAIL],
'built-ins/Temporal/ZonedDateTime/prototype/since/argument-propertybag-calendar-number': [FAIL],
'built-ins/Temporal/ZonedDateTime/prototype/since/argument-propertybag-calendar-wrong-type': [FAIL],
'built-ins/Temporal/ZonedDateTime/prototype/since/argument-wrong-type': [FAIL],
'built-ins/Temporal/ZonedDateTime/prototype/since/timezone-wrong-type': [FAIL],
'built-ins/Temporal/ZonedDateTime/prototype/until/argument-propertybag-calendar-number': [FAIL],
'built-ins/Temporal/ZonedDateTime/prototype/until/argument-propertybag-calendar-wrong-type': [FAIL],
'built-ins/Temporal/ZonedDateTime/prototype/until/argument-wrong-type': [FAIL],
'built-ins/Temporal/ZonedDateTime/prototype/until/timezone-wrong-type': [FAIL],
'built-ins/Temporal/ZonedDateTime/prototype/withCalendar/calendar-number': [FAIL],
'built-ins/Temporal/ZonedDateTime/prototype/withPlainDate/argument-propertybag-calendar-number': [FAIL],
'built-ins/Temporal/ZonedDateTime/timezone-string-multiple-offsets': [FAIL],
@ -896,30 +708,10 @@
'built-ins/Temporal/Instant/from/argument-string': [FAIL],
'built-ins/Temporal/Instant/prototype/add/argument-string-negative-fractional-units': [FAIL],
'built-ins/Temporal/Instant/prototype/subtract/argument-string-negative-fractional-units': [FAIL],
'built-ins/Temporal/PlainDateTime/prototype/since/argument-propertybag-calendar-leap-second': [FAIL],
'built-ins/Temporal/PlainDateTime/prototype/since/argument-propertybag-calendar-year-zero': [FAIL],
'built-ins/Temporal/PlainDateTime/prototype/since/argument-string-time-separators': [FAIL],
'built-ins/Temporal/PlainDateTime/prototype/since/leap-second': [FAIL],
'built-ins/Temporal/PlainDateTime/prototype/subtract/argument-string-negative-fractional-units': [FAIL],
'built-ins/Temporal/PlainDateTime/prototype/until/argument-propertybag-calendar-leap-second': [FAIL],
'built-ins/Temporal/PlainDateTime/prototype/until/argument-propertybag-calendar-year-zero': [FAIL],
'built-ins/Temporal/PlainDateTime/prototype/until/argument-string-time-separators': [FAIL],
'built-ins/Temporal/PlainDateTime/prototype/until/leap-second': [FAIL],
'built-ins/Temporal/PlainTime/prototype/subtract/argument-string-negative-fractional-units': [FAIL],
'built-ins/Temporal/ZonedDateTime/prototype/add/argument-string-negative-fractional-units': [FAIL],
'built-ins/Temporal/ZonedDateTime/prototype/since/argument-propertybag-calendar-leap-second': [FAIL],
'built-ins/Temporal/ZonedDateTime/prototype/since/argument-propertybag-calendar-year-zero': [FAIL],
'built-ins/Temporal/ZonedDateTime/prototype/since/argument-string-time-separators': [FAIL],
'built-ins/Temporal/ZonedDateTime/prototype/since/leap-second': [FAIL],
'built-ins/Temporal/ZonedDateTime/prototype/since/timezone-string-leap-second': [FAIL],
'built-ins/Temporal/ZonedDateTime/prototype/since/timezone-string-year-zero': [FAIL],
'built-ins/Temporal/ZonedDateTime/prototype/subtract/argument-string-negative-fractional-units': [FAIL],
'built-ins/Temporal/ZonedDateTime/prototype/until/argument-propertybag-calendar-leap-second': [FAIL],
'built-ins/Temporal/ZonedDateTime/prototype/until/argument-propertybag-calendar-year-zero': [FAIL],
'built-ins/Temporal/ZonedDateTime/prototype/until/argument-string-time-separators': [FAIL],
'built-ins/Temporal/ZonedDateTime/prototype/until/leap-second': [FAIL],
'built-ins/Temporal/ZonedDateTime/prototype/until/timezone-string-leap-second': [FAIL],
'built-ins/Temporal/ZonedDateTime/prototype/until/timezone-string-year-zero': [FAIL],
'intl402/Temporal/Calendar/prototype/dateFromFields/order-of-operations': [FAIL],
'intl402/Temporal/Calendar/prototype/monthDayFromFields/order-of-operations': [FAIL],
'intl402/Temporal/Calendar/prototype/yearMonthFromFields/order-of-operations': [FAIL],
@ -1032,10 +824,8 @@
'built-ins/Temporal/Duration/prototype/total/relativeto-zoneddatetime-with-fractional-days-different-sign': [FAIL],
'built-ins/Temporal/Duration/prototype/total/relativeto-zoneddatetime-with-fractional-days': [FAIL],
'built-ins/Temporal/Instant/compare/argument-string-with-offset-not-valid-epoch-nanoseconds': [FAIL],
'built-ins/Temporal/PlainDateTime/prototype/since/balance-infinite-nanoseconds-duration': [FAIL],
'built-ins/Temporal/PlainDateTime/prototype/toZonedDateTime/disambiguate-empty-possible-instants-with-datetime-near-limits': [FAIL],
'built-ins/Temporal/PlainDateTime/prototype/toZonedDateTime/plain-date-time-near-limits': [FAIL],
'built-ins/Temporal/PlainDateTime/prototype/until/balance-infinite-nanoseconds-duration': [FAIL],
'built-ins/Temporal/PlainTime/prototype/add/argument-string-duration-too-large': [FAIL],
'built-ins/Temporal/PlainTime/prototype/subtract/argument-string-duration-too-large': [FAIL],
'built-ins/Temporal/TimeZone/prototype/getPossibleInstantsFor/fixed-offset-near-date-time-limits': [FAIL],
@ -1050,23 +840,13 @@
'built-ins/Temporal/Instant/prototype/subtract/minimum-maximum-instant': [FAIL],
'built-ins/Temporal/Instant/prototype/toString/fractionalseconddigits-non-integer': [FAIL],
'built-ins/Temporal/PlainDate/prototype/toString/calendar-tostring': [FAIL],
'built-ins/Temporal/PlainDateTime/prototype/since/argument-propertybag-calendar-string': [FAIL],
'built-ins/Temporal/PlainDateTime/prototype/toString/calendar-tostring': [FAIL],
'built-ins/Temporal/PlainDateTime/prototype/toString/fractionalseconddigits-non-integer': [FAIL],
'built-ins/Temporal/PlainDateTime/prototype/until/argument-propertybag-calendar-string': [FAIL],
'built-ins/Temporal/PlainMonthDay/refisoyear-out-of-range': [FAIL],
'built-ins/Temporal/PlainTime/prototype/toString/fractionalseconddigits-non-integer': [FAIL],
'built-ins/Temporal/ZonedDateTime/prototype/round/smallest-unit-day-daylength-zero-or-negative': [FAIL],
'built-ins/Temporal/ZonedDateTime/prototype/since/argument-propertybag-calendar-string': [FAIL],
'built-ins/Temporal/ZonedDateTime/prototype/since/argument-propertybag-invalid-offset-string': [FAIL],
'built-ins/Temporal/ZonedDateTime/prototype/since/options-object': [FAIL],
'built-ins/Temporal/ZonedDateTime/prototype/since/timezone-string': [FAIL],
'built-ins/Temporal/ZonedDateTime/prototype/toString/calendar-tostring': [FAIL],
'built-ins/Temporal/ZonedDateTime/prototype/toString/fractionalseconddigits-non-integer': [FAIL],
'built-ins/Temporal/ZonedDateTime/prototype/until/argument-propertybag-calendar-string': [FAIL],
'built-ins/Temporal/ZonedDateTime/prototype/until/argument-propertybag-invalid-offset-string': [FAIL],
'built-ins/Temporal/ZonedDateTime/prototype/until/options-object': [FAIL],
'built-ins/Temporal/ZonedDateTime/prototype/until/timezone-string': [FAIL],
'intl402/Temporal/TimeZone/from/etc-timezone': [FAIL],
'intl402/Temporal/TimeZone/from/iana-legacy-names': [FAIL],
'intl402/Temporal/TimeZone/prototype/getNextTransition/transition-at-instant-boundaries': [FAIL],
@ -1092,9 +872,7 @@
'staging/Temporal/ZonedDateTime/old/dst-properties': [FAIL],
'staging/Temporal/ZonedDateTime/old/equals': [FAIL],
'staging/Temporal/ZonedDateTime/old/property-bags': [FAIL],
'staging/Temporal/ZonedDateTime/old/reversibility-of-differences': [FAIL],
'staging/Temporal/ZonedDateTime/old/round': [FAIL],
'staging/Temporal/ZonedDateTime/old/since': [FAIL],
'staging/Temporal/ZonedDateTime/old/string-parsing': [FAIL],
'staging/Temporal/ZonedDateTime/old/toPlainMonthDay': [FAIL],
'staging/Temporal/ZonedDateTime/old/toPlainYearMonth': [FAIL],
@ -1348,6 +1126,8 @@
'staging/Temporal/ZonedDateTime/old/compare': [FAIL],
'staging/Temporal/ZonedDateTime/old/date-time-hours-overflow': [FAIL],
'staging/Temporal/ZonedDateTime/old/order-of-operations': [FAIL],
'staging/Temporal/ZonedDateTime/old/reversibility-of-differences': [FAIL],
'staging/Temporal/ZonedDateTime/old/since': [FAIL],
'staging/Temporal/ZonedDateTime/old/subtract': [FAIL],
'staging/Temporal/ZonedDateTime/old/toInstant': [FAIL],
'staging/Temporal/ZonedDateTime/old/toPlainDate': [FAIL],