Commit 38e56036 authored by Frank Tang's avatar Frank Tang Committed by V8 LUCI CQ

[Temporal] Add PlainTime.prototype.toZonedDateTime

Spec Text: https://tc39.es/proposal-temporal/#sec-temporal.plaintime.prototype.tozoneddatetime

Bug: v8:11544
Change-Id: I147b1d21b4728520c5667a30548ec77f71d7445a
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3554456Reviewed-by: 's avatarAdam Klein <adamk@chromium.org>
Commit-Queue: Frank Tang <ftang@chromium.org>
Cr-Commit-Position: refs/heads/main@{#80730}
parent 22a16bda
......@@ -70,8 +70,6 @@ TO_BE_IMPLEMENTED(TemporalPlainTimePrototypeRound)
TO_BE_IMPLEMENTED(TemporalPlainTimePrototypeEquals)
/* Temporal #sec-temporal.plaintime.prototype.toplaindatetime */
TO_BE_IMPLEMENTED(TemporalPlainTimePrototypeToPlainDateTime)
/* Temporal #sec-temporal.plaintime.prototype.tozoneddatetime */
TO_BE_IMPLEMENTED(TemporalPlainTimePrototypeToZonedDateTime)
/* Temporal #sec-temporal.plaintime.prototype.tolocalestring */
TO_BE_IMPLEMENTED(TemporalPlainTimePrototypeToLocaleString)
/* Temporal #sec-temporal.plaintime.prototype.tostring */
......@@ -440,6 +438,7 @@ TEMPORAL_GET_SMI(PlainTime, Millisecond, iso_millisecond)
TEMPORAL_GET_SMI(PlainTime, Microsecond, iso_microsecond)
TEMPORAL_GET_SMI(PlainTime, Nanosecond, iso_nanosecond)
TEMPORAL_METHOD2(PlainTime, From)
TEMPORAL_PROTOTYPE_METHOD1(PlainTime, ToZonedDateTime, toZonedDateTime)
TEMPORAL_PROTOTYPE_METHOD0(PlainTime, GetISOFields, getISOFields)
TEMPORAL_VALUE_OF(PlainTime)
TEMPORAL_PROTOTYPE_METHOD0(PlainTime, ToJSON, toJSON)
......
......@@ -2496,20 +2496,22 @@ MaybeHandle<JSTemporalPlainTime> ToTemporalTime(Isolate* isolate,
// #sec-temporal-totemporaldurationrecord
Maybe<DurationRecord> ToTemporalDurationRecord(
Isolate* isolate, Handle<Object> temporal_duration_like,
Isolate* isolate, Handle<Object> temporal_duration_like_obj,
const char* method_name) {
TEMPORAL_ENTER_FUNC();
// 1. If Type(temporalDurationLike) is not Object, then
if (!temporal_duration_like->IsJSReceiver()) {
if (!temporal_duration_like_obj->IsJSReceiver()) {
// a. Let string be ? ToString(temporalDurationLike).
Handle<String> string;
ASSIGN_RETURN_ON_EXCEPTION_VALUE(
isolate, string, Object::ToString(isolate, temporal_duration_like),
isolate, string, Object::ToString(isolate, temporal_duration_like_obj),
Nothing<DurationRecord>());
// b. Let result be ? ParseTemporalDurationString(string).
return ParseTemporalDurationString(isolate, string);
}
Handle<JSReceiver> temporal_duration_like =
Handle<JSReceiver>::cast(temporal_duration_like_obj);
// 2. If temporalDurationLike has an [[InitializedTemporalDuration]] internal
// slot, then
if (temporal_duration_like->IsJSTemporalDuration()) {
......@@ -2555,8 +2557,7 @@ Maybe<DurationRecord> ToTemporalDurationRecord(
// b. Let val be ? Get(temporalDurationLike, prop).
ASSIGN_RETURN_ON_EXCEPTION_VALUE(
isolate, val,
Object::GetPropertyOrElement(isolate, temporal_duration_like,
row.first),
JSReceiver::GetProperty(isolate, temporal_duration_like, row.first),
Nothing<DurationRecord>());
// c. If val is undefined, then
if (val->IsUndefined()) {
......@@ -3852,10 +3853,10 @@ MaybeHandle<JSReceiver> DefaultMergeFields(
if (!new_keys_has_month_or_month_code) {
// a. Let month be ? Get(fields, "month").
Handle<Object> month;
ASSIGN_RETURN_ON_EXCEPTION(isolate, month,
JSReceiver::GetPropertyOrElement(
isolate, fields, factory->month_string()),
JSReceiver);
ASSIGN_RETURN_ON_EXCEPTION(
isolate, month,
JSReceiver::GetProperty(isolate, fields, factory->month_string()),
JSReceiver);
// b. If month is not undefined, then
if (!month->IsUndefined()) {
// i. Perform ! CreateDataPropertyOrThrow(merged, "month", month).
......@@ -3868,8 +3869,7 @@ MaybeHandle<JSReceiver> DefaultMergeFields(
Handle<Object> month_code;
ASSIGN_RETURN_ON_EXCEPTION(
isolate, month_code,
JSReceiver::GetPropertyOrElement(isolate, fields,
factory->monthCode_string()),
JSReceiver::GetProperty(isolate, fields, factory->monthCode_string()),
JSReceiver);
// d. If monthCode is not undefined, then
if (!month_code->IsUndefined()) {
......@@ -4250,7 +4250,7 @@ Maybe<TimeRecord> ToTemporalTimeRecord(Isolate* isolate,
// b. Let value be ? Get(temporalTimeLike, property).
ASSIGN_RETURN_ON_EXCEPTION_VALUE(
isolate, value,
Object::GetPropertyOrElement(isolate, temporal_time_like, row.first),
JSReceiver::GetProperty(isolate, temporal_time_like, row.first),
Nothing<TimeRecord>());
// c. If value is not undefined, then
if (!value->IsUndefined()) {
......@@ -5674,15 +5674,15 @@ Maybe<DateRecordCommon> ISOMonthDayFromFields(Isolate* isolate,
Nothing<DateRecordCommon>());
// 4. Let month be ! Get(fields, "month").
Handle<Object> month_obj =
Object::GetPropertyOrElement(isolate, fields, factory->month_string())
JSReceiver::GetProperty(isolate, fields, factory->month_string())
.ToHandleChecked();
// 5. Let monthCode be ! Get(fields, "monthCode").
Handle<Object> month_code_obj =
Object::GetPropertyOrElement(isolate, fields, factory->monthCode_string())
JSReceiver::GetProperty(isolate, fields, factory->monthCode_string())
.ToHandleChecked();
// 6. Let year be ! Get(fields, "year").
Handle<Object> year_obj =
Object::GetPropertyOrElement(isolate, fields, factory->year_string())
JSReceiver::GetProperty(isolate, fields, factory->year_string())
.ToHandleChecked();
// 7. If month is not undefined, and monthCode and year are both undefined,
// then
......@@ -5700,7 +5700,7 @@ Maybe<DateRecordCommon> ISOMonthDayFromFields(Isolate* isolate,
// 9. Let day be ! Get(fields, "day").
Handle<Object> day_obj =
Object::GetPropertyOrElement(isolate, fields, factory->day_string())
JSReceiver::GetProperty(isolate, fields, factory->day_string())
.ToHandleChecked();
// 10. If day is undefined, throw a TypeError exception.
if (day_obj->IsUndefined(isolate)) {
......@@ -6108,11 +6108,11 @@ Maybe<int32_t> ResolveISOMonth(Isolate* isolate, Handle<JSReceiver> fields) {
Factory* factory = isolate->factory();
// 1. Let month be ! Get(fields, "month").
Handle<Object> month_obj =
Object::GetPropertyOrElement(isolate, fields, factory->month_string())
JSReceiver::GetProperty(isolate, fields, factory->month_string())
.ToHandleChecked();
// 2. Let monthCode be ! Get(fields, "monthCode").
Handle<Object> month_code_obj =
Object::GetPropertyOrElement(isolate, fields, factory->monthCode_string())
JSReceiver::GetProperty(isolate, fields, factory->monthCode_string())
.ToHandleChecked();
// 3. If monthCode is undefined, then
if (month_code_obj->IsUndefined(isolate)) {
......@@ -6203,7 +6203,7 @@ Maybe<DateRecordCommon> ISODateFromFields(Isolate* isolate,
// 4. Let year be ! Get(fields, "year").
Handle<Object> year_obj =
Object::GetPropertyOrElement(isolate, fields, factory->year_string())
JSReceiver::GetProperty(isolate, fields, factory->year_string())
.ToHandleChecked();
// 5. If year is undefined, throw a TypeError exception.
if (year_obj->IsUndefined(isolate)) {
......@@ -6223,7 +6223,7 @@ Maybe<DateRecordCommon> ISODateFromFields(Isolate* isolate,
// 7. Let day be ! Get(fields, "day").
Handle<Object> day_obj =
Object::GetPropertyOrElement(isolate, fields, factory->day_string())
JSReceiver::GetProperty(isolate, fields, factory->day_string())
.ToHandleChecked();
// 8. If day is undefined, throw a TypeError exception.
if (day_obj->IsUndefined(isolate)) {
......@@ -6491,7 +6491,7 @@ Maybe<DateRecordCommon> ISOYearMonthFromFields(Isolate* isolate,
// 4. Let year be ! Get(fields, "year").
Handle<Object> year_obj =
Object::GetPropertyOrElement(isolate, fields, factory->year_string())
JSReceiver::GetProperty(isolate, fields, factory->year_string())
.ToHandleChecked();
// 5. If year is undefined, throw a TypeError exception.
if (year_obj->IsUndefined(isolate)) {
......@@ -8872,20 +8872,19 @@ MaybeHandle<JSTemporalPlainMonthDay> ToTemporalMonthDay(
Handle<Object> month;
ASSIGN_RETURN_ON_EXCEPTION_VALUE(
isolate, month,
Object::GetPropertyOrElement(isolate, fields, factory->month_string()),
JSReceiver::GetProperty(isolate, fields, factory->month_string()),
Handle<JSTemporalPlainMonthDay>());
// g. Let monthCode be ? Get(fields, "monthCode").
Handle<Object> month_code;
ASSIGN_RETURN_ON_EXCEPTION_VALUE(
isolate, month_code,
Object::GetPropertyOrElement(isolate, fields,
factory->monthCode_string()),
JSReceiver::GetProperty(isolate, fields, factory->monthCode_string()),
Handle<JSTemporalPlainMonthDay>());
// h. Let year be ? Get(fields, "year").
Handle<Object> year;
ASSIGN_RETURN_ON_EXCEPTION_VALUE(
isolate, year,
Object::GetPropertyOrElement(isolate, fields, factory->year_string()),
JSReceiver::GetProperty(isolate, fields, factory->year_string()),
Handle<JSTemporalPlainMonthDay>());
// i. If calendarAbsent is true, and month is not undefined, and monthCode
// is undefined and year is undefined, then
......@@ -9347,6 +9346,92 @@ MaybeHandle<JSTemporalPlainTime> JSTemporalPlainTime::Constructor(
{hour, minute, second, millisecond, microsecond, nanosecond});
}
// #sec-temporal.plaintime.prototype.tozoneddatetime
MaybeHandle<JSTemporalZonedDateTime> JSTemporalPlainTime::ToZonedDateTime(
Isolate* isolate, Handle<JSTemporalPlainTime> temporal_time,
Handle<Object> item_obj) {
const char* method_name = "Temporal.PlainTime.prototype.toZonedDateTime";
Factory* factory = isolate->factory();
// 1. Let temporalTime be the this value.
// 2. Perform ? RequireInternalSlot(temporalTime,
// [[InitializedTemporalTime]]).
// 3. If Type(item) is not Object, then
if (!item_obj->IsJSReceiver()) {
// a. Throw a TypeError exception.
THROW_NEW_ERROR(isolate, NEW_TEMPORAL_INVALID_ARG_TYPE_ERROR(),
JSTemporalZonedDateTime);
}
Handle<JSReceiver> item = Handle<JSReceiver>::cast(item_obj);
// 4. Let temporalDateLike be ? Get(item, "plainDate").
Handle<Object> temporal_date_like;
ASSIGN_RETURN_ON_EXCEPTION(
isolate, temporal_date_like,
JSReceiver::GetProperty(isolate, item, factory->plainDate_string()),
JSTemporalZonedDateTime);
// 5. If temporalDateLike is undefined, then
if (temporal_date_like->IsUndefined()) {
// a. Throw a TypeError exception.
THROW_NEW_ERROR(isolate, NEW_TEMPORAL_INVALID_ARG_TYPE_ERROR(),
JSTemporalZonedDateTime);
}
// 6. Let temporalDate be ? ToTemporalDate(temporalDateLike).
Handle<JSTemporalPlainDate> temporal_date;
ASSIGN_RETURN_ON_EXCEPTION(
isolate, temporal_date,
ToTemporalDate(isolate, temporal_date_like, method_name),
JSTemporalZonedDateTime);
// 7. Let temporalTimeZoneLike be ? Get(item, "timeZone").
Handle<Object> temporal_time_zone_like;
ASSIGN_RETURN_ON_EXCEPTION(
isolate, temporal_time_zone_like,
JSReceiver::GetProperty(isolate, item, factory->timeZone_string()),
JSTemporalZonedDateTime);
// 8. If temporalTimeZoneLike is undefined, then
if (temporal_time_zone_like->IsUndefined()) {
// a. Throw a TypeError exception.
THROW_NEW_ERROR(isolate, NEW_TEMPORAL_INVALID_ARG_TYPE_ERROR(),
JSTemporalZonedDateTime);
}
// 9. Let timeZone be ? ToTemporalTimeZone(temporalTimeZoneLike).
Handle<JSReceiver> time_zone;
ASSIGN_RETURN_ON_EXCEPTION(isolate, time_zone,
temporal::ToTemporalTimeZone(
isolate, temporal_time_zone_like, method_name),
JSTemporalZonedDateTime);
// 10. Let temporalDateTime be ?
// CreateTemporalDateTime(temporalDate.[[ISOYear]], temporalDate.[[ISOMonth]],
// temporalDate.[[ISODay]], temporalTime.[[ISOHour]],
// temporalTime.[[ISOMinute]], temporalTime.[[ISOSecond]],
// temporalTime.[[ISOMillisecond]], temporalTime.[[ISOMicrosecond]],
// temporalTime.[[ISONanosecond]], temporalDate.[[Calendar]]).
Handle<JSReceiver> calendar(temporal_date->calendar(), isolate);
Handle<JSTemporalPlainDateTime> temporal_date_time;
ASSIGN_RETURN_ON_EXCEPTION(
isolate, temporal_date_time,
temporal::CreateTemporalDateTime(
isolate,
{{temporal_date->iso_year(), temporal_date->iso_month(),
temporal_date->iso_day()},
{temporal_time->iso_hour(), temporal_time->iso_minute(),
temporal_time->iso_second(), temporal_time->iso_millisecond(),
temporal_time->iso_microsecond(), temporal_time->iso_nanosecond()}},
calendar),
JSTemporalZonedDateTime);
// 11. Let instant be ? BuiltinTimeZoneGetInstantFor(timeZone,
// temporalDateTime, "compatible").
Handle<JSTemporalInstant> instant;
ASSIGN_RETURN_ON_EXCEPTION(
isolate, instant,
BuiltinTimeZoneGetInstantFor(isolate, time_zone, temporal_date_time,
Disambiguation::kCompatible, method_name),
JSTemporalZonedDateTime);
// 12. Return ? CreateTemporalZonedDateTime(instant.[[Nanoseconds]], timeZone,
// temporalDate.[[Calendar]]).
return CreateTemporalZonedDateTime(
isolate, Handle<BigInt>(instant->nanoseconds(), isolate), time_zone,
calendar);
}
// #sec-temporal.now.plaintimeiso
MaybeHandle<JSTemporalPlainTime> JSTemporalPlainTime::NowISO(
Isolate* isolate, Handle<Object> temporal_time_zone_like) {
......@@ -10008,7 +10093,7 @@ MaybeHandle<JSTemporalZonedDateTime> JSTemporalInstant::ToZonedDateTime(
Handle<Object> calendar_like;
ASSIGN_RETURN_ON_EXCEPTION(
isolate, calendar_like,
Object::GetPropertyOrElement(isolate, item, factory->calendar_string()),
JSReceiver::GetProperty(isolate, item, factory->calendar_string()),
JSTemporalZonedDateTime);
// 5. If calendarLike is undefined, then
if (calendar_like->IsUndefined()) {
......@@ -10027,7 +10112,7 @@ MaybeHandle<JSTemporalZonedDateTime> JSTemporalInstant::ToZonedDateTime(
Handle<Object> temporal_time_zone_like;
ASSIGN_RETURN_ON_EXCEPTION(
isolate, temporal_time_zone_like,
Object::GetPropertyOrElement(isolate, item, factory->timeZone_string()),
JSReceiver::GetProperty(isolate, item, factory->timeZone_string()),
JSTemporalZonedDateTime);
// 8. If temporalTimeZoneLike is undefined, then
if (calendar_like->IsUndefined()) {
......@@ -10063,7 +10148,7 @@ MaybeHandle<JSTemporalZonedDateTime> JSTemporalInstant::ToZonedDateTimeISO(
Handle<Object> time_zone_property;
ASSIGN_RETURN_ON_EXCEPTION(
isolate, time_zone_property,
Object::GetPropertyOrElement(isolate, item, factory->timeZone_string()),
JSReceiver::GetProperty(isolate, item, factory->timeZone_string()),
JSTemporalZonedDateTime);
// b. If timeZoneProperty is not undefined, then
if (!time_zone_property->IsUndefined()) {
......
......@@ -451,6 +451,11 @@ class JSTemporalPlainTime
V8_WARN_UNUSED_RESULT static MaybeHandle<JSTemporalPlainTime> From(
Isolate* isolate, Handle<Object> item, Handle<Object> options);
// #sec-temporal.plaintime.prototype.tozoneddatetime
V8_WARN_UNUSED_RESULT static MaybeHandle<JSTemporalZonedDateTime>
ToZonedDateTime(Isolate* isolate, Handle<JSTemporalPlainTime> plain_time,
Handle<Object> item);
// #sec-temporal.plaintime.prototype.getisofields
V8_WARN_UNUSED_RESULT static MaybeHandle<JSReceiver> GetISOFields(
Isolate* isolate, Handle<JSTemporalPlainTime> plain_time);
......
......@@ -1170,26 +1170,7 @@
'built-ins/Temporal/PlainTime/prototype/toString/smallestunit-undefined': [FAIL],
'built-ins/Temporal/PlainTime/prototype/toString/smallestunit-valid-units': [FAIL],
'built-ins/Temporal/PlainTime/prototype/toString/smallestunit-wrong-type': [FAIL],
'built-ins/Temporal/PlainTime/prototype/toZonedDateTime/argument-plaindatetime': [FAIL],
'built-ins/Temporal/PlainTime/prototype/toZonedDateTime/argument-primitive': [FAIL],
'built-ins/Temporal/PlainTime/prototype/toZonedDateTime/argument-string-with-utc-designator': [FAIL],
'built-ins/Temporal/PlainTime/prototype/toZonedDateTime/argument-zoneddatetime-timezone-getoffsetnanosecondsfor-non-integer': [FAIL],
'built-ins/Temporal/PlainTime/prototype/toZonedDateTime/argument-zoneddatetime-timezone-getoffsetnanosecondsfor-not-callable': [FAIL],
'built-ins/Temporal/PlainTime/prototype/toZonedDateTime/argument-zoneddatetime-timezone-getoffsetnanosecondsfor-out-of-range': [FAIL],
'built-ins/Temporal/PlainTime/prototype/toZonedDateTime/argument-zoneddatetime-timezone-getoffsetnanosecondsfor-wrong-type': [FAIL],
'built-ins/Temporal/PlainTime/prototype/toZonedDateTime/basic': [FAIL],
'built-ins/Temporal/PlainTime/prototype/toZonedDateTime/branding': [FAIL],
'built-ins/Temporal/PlainTime/prototype/toZonedDateTime/calendar-datefromfields-called-with-options-undefined': [FAIL],
'built-ins/Temporal/PlainTime/prototype/toZonedDateTime/calendar-fields-iterable': [FAIL],
'built-ins/Temporal/PlainTime/prototype/toZonedDateTime/calendar-temporal-object': [FAIL],
'built-ins/Temporal/PlainTime/prototype/toZonedDateTime/infinity-throws-rangeerror': [FAIL],
'built-ins/Temporal/PlainTime/prototype/toZonedDateTime/plaindate-infinity-throws-rangeerror': [FAIL],
'built-ins/Temporal/PlainTime/prototype/toZonedDateTime/timezone-getoffsetnanosecondsfor-non-integer': [FAIL],
'built-ins/Temporal/PlainTime/prototype/toZonedDateTime/timezone-getoffsetnanosecondsfor-not-callable': [FAIL],
'built-ins/Temporal/PlainTime/prototype/toZonedDateTime/timezone-getoffsetnanosecondsfor-out-of-range': [FAIL],
'built-ins/Temporal/PlainTime/prototype/toZonedDateTime/timezone-getoffsetnanosecondsfor-wrong-type': [FAIL],
'built-ins/Temporal/PlainTime/prototype/toZonedDateTime/timezone-getpossibleinstantsfor-iterable': [SKIP],
'built-ins/Temporal/PlainTime/prototype/toZonedDateTime/timezone-string-datetime': [FAIL],
'built-ins/Temporal/PlainTime/prototype/toZonedDateTime/timezone-string-multiple-offsets': [FAIL],
'built-ins/Temporal/PlainTime/prototype/until/argument-string-with-utc-designator': [FAIL],
'built-ins/Temporal/PlainTime/prototype/until/argument-zoneddatetime-balance-negative-time-units': [FAIL],
......@@ -1714,7 +1695,6 @@
'intl402/Temporal/PlainTime/prototype/toLocaleString/resolved-time-zone': [FAIL],
'intl402/Temporal/PlainTime/prototype/toLocaleString/timezone-getoffsetnanosecondsfor-not-callable': [FAIL],
'intl402/Temporal/PlainTime/prototype/toPlainDateTime/infinity-throws-rangeerror': [FAIL],
'intl402/Temporal/PlainTime/prototype/toZonedDateTime/plaindate-infinity-throws-rangeerror': [FAIL],
'intl402/Temporal/PlainYearMonth/compare/infinity-throws-rangeerror': [FAIL],
'intl402/Temporal/PlainYearMonth/prototype/equals/infinity-throws-rangeerror': [FAIL],
'intl402/Temporal/PlainYearMonth/prototype/since/infinity-throws-rangeerror': [FAIL],
......@@ -1903,7 +1883,6 @@
'built-ins/Temporal/PlainTime/prototype/toString/roundingmode-halfExpand': [FAIL],
'built-ins/Temporal/PlainTime/prototype/toString/roundingmode-trunc': [FAIL],
'built-ins/Temporal/PlainTime/prototype/toString/smallestunit-fractionalseconddigits': [FAIL],
'built-ins/Temporal/PlainTime/prototype/toZonedDateTime/year-zero': [FAIL],
'built-ins/Temporal/PlainTime/prototype/until/argument-cast': [FAIL],
'built-ins/Temporal/PlainTime/prototype/until/argument-string-no-implicit-midnight': [FAIL],
'built-ins/Temporal/PlainTime/prototype/until/argument-string-time-designator-required-for-disambiguation': [FAIL],
......@@ -2068,7 +2047,6 @@
'built-ins/Temporal/PlainDateTime/prototype/with/string-throws': [FAIL],
'built-ins/Temporal/PlainDateTime/prototype/with/timezone-throws': [FAIL],
'built-ins/Temporal/PlainTime/prototype/toPlainDateTime/argument-string-invalid': [FAIL],
'built-ins/Temporal/PlainTime/prototype/toZonedDateTime/argument-string-invalid': [FAIL],
'built-ins/Temporal/ZonedDateTime/prototype/withPlainDate/argument-string-invalid': [FAIL],
'built-ins/Temporal/Duration/compare/options-wrong-type': [FAIL],
......@@ -2332,11 +2310,7 @@
'built-ins/Temporal/PlainTime/prototype/toPlainDateTime/argument-propertybag-calendar-wrong-type': [FAIL],
'built-ins/Temporal/PlainTime/prototype/toPlainDateTime/argument-wrong-type': [FAIL],
'built-ins/Temporal/PlainTime/prototype/toPlainDateTime/limits': [FAIL],
'built-ins/Temporal/PlainTime/prototype/toZonedDateTime/argument-number': [FAIL],
'built-ins/Temporal/PlainTime/prototype/toZonedDateTime/argument-propertybag-calendar-number': [FAIL],
'built-ins/Temporal/PlainTime/prototype/toZonedDateTime/argument-propertybag-calendar-wrong-type': [FAIL],
'built-ins/Temporal/PlainTime/prototype/toZonedDateTime/argument-wrong-type': [FAIL],
'built-ins/Temporal/PlainTime/prototype/toZonedDateTime/timezone-wrong-type': [FAIL],
'built-ins/Temporal/PlainTime/prototype/until/argument-number': [FAIL],
'built-ins/Temporal/PlainTime/prototype/until/argument-wrong-type': [FAIL],
'built-ins/Temporal/PlainTime/prototype/until/plaintime-propertybag-no-time-units': [FAIL],
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment