Commit 8516c9be authored by Frank Tang's avatar Frank Tang

[Temporal] Add Plain(Date|YearMonth|MonthDay).prototype.with

Spec Text:
https://tc39.es/proposal-temporal/#sec-temporal.plaindate.prototype.with
https://tc39.es/proposal-temporal/#sec-temporal.plainyearmonth.prototype.with
https://tc39.es/proposal-temporal/#sec-temporal.plainmonthday.prototype.with

Bug: v8:11544
Change-Id: I311d6246646ce18503804352bc95a374af3d8c6e
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3565014Reviewed-by: 's avatarAdam Klein <adamk@chromium.org>
Commit-Queue: Frank Tang <ftang@chromium.org>
Cr-Commit-Position: refs/heads/main@{#80708}
parent a663b1ff
...@@ -44,8 +44,6 @@ TO_BE_IMPLEMENTED(TemporalPlainDateCompare) ...@@ -44,8 +44,6 @@ TO_BE_IMPLEMENTED(TemporalPlainDateCompare)
TO_BE_IMPLEMENTED(TemporalPlainDatePrototypeAdd) TO_BE_IMPLEMENTED(TemporalPlainDatePrototypeAdd)
/* Temporal #sec-temporal.plaindate.prototype.substract */ /* Temporal #sec-temporal.plaindate.prototype.substract */
TO_BE_IMPLEMENTED(TemporalPlainDatePrototypeSubtract) TO_BE_IMPLEMENTED(TemporalPlainDatePrototypeSubtract)
/* Temporal #sec-temporal.plaindate.prototype.with */
TO_BE_IMPLEMENTED(TemporalPlainDatePrototypeWith)
/* Temporal #sec-temporal.plaindate.prototype.until */ /* Temporal #sec-temporal.plaindate.prototype.until */
TO_BE_IMPLEMENTED(TemporalPlainDatePrototypeUntil) TO_BE_IMPLEMENTED(TemporalPlainDatePrototypeUntil)
/* Temporal #sec-temporal.plaindate.prototype.since */ /* Temporal #sec-temporal.plaindate.prototype.since */
...@@ -192,8 +190,6 @@ TO_BE_IMPLEMENTED(TemporalInstantPrototypeToJSON) ...@@ -192,8 +190,6 @@ TO_BE_IMPLEMENTED(TemporalInstantPrototypeToJSON)
/* Temporal.PlainYearMonth */ /* Temporal.PlainYearMonth */
/* Temporal #sec-temporal.plainyearmonth.compare */ /* Temporal #sec-temporal.plainyearmonth.compare */
TO_BE_IMPLEMENTED(TemporalPlainYearMonthCompare) TO_BE_IMPLEMENTED(TemporalPlainYearMonthCompare)
/* Temporal #sec-temporal.plainyearmonth.prototype.with */
TO_BE_IMPLEMENTED(TemporalPlainYearMonthPrototypeWith)
/* Temporal #sec-temporal.plainyearmonth.prototype.add */ /* Temporal #sec-temporal.plainyearmonth.prototype.add */
TO_BE_IMPLEMENTED(TemporalPlainYearMonthPrototypeAdd) TO_BE_IMPLEMENTED(TemporalPlainYearMonthPrototypeAdd)
/* Temporal #sec-temporal.plainyearmonth.prototype.subtract */ /* Temporal #sec-temporal.plainyearmonth.prototype.subtract */
...@@ -210,8 +206,6 @@ TO_BE_IMPLEMENTED(TemporalPlainYearMonthPrototypeToPlainDate) ...@@ -210,8 +206,6 @@ TO_BE_IMPLEMENTED(TemporalPlainYearMonthPrototypeToPlainDate)
/* Temporal.PlainMonthDay */ /* Temporal.PlainMonthDay */
/* There is no compare for PlainMonthDay. See /* There is no compare for PlainMonthDay. See
* https://github.com/tc39/proposal-temporal/issues/1547 */ * https://github.com/tc39/proposal-temporal/issues/1547 */
/* Temporal #sec-temporal.plainmonthday.prototype.with */
TO_BE_IMPLEMENTED(TemporalPlainMonthDayPrototypeWith)
/* Temporal #sec-temporal.plainmonthday.prototype.equals */ /* Temporal #sec-temporal.plainmonthday.prototype.equals */
TO_BE_IMPLEMENTED(TemporalPlainMonthDayPrototypeEquals) TO_BE_IMPLEMENTED(TemporalPlainMonthDayPrototypeEquals)
/* Temporal #sec-temporal.plainmonthday.prototype.toplaindate */ /* Temporal #sec-temporal.plainmonthday.prototype.toplaindate */
...@@ -418,6 +412,7 @@ TEMPORAL_GET_BY_INVOKE_CALENDAR_METHOD(PlainDate, InLeapYear, inLeapYear) ...@@ -418,6 +412,7 @@ TEMPORAL_GET_BY_INVOKE_CALENDAR_METHOD(PlainDate, InLeapYear, inLeapYear)
TEMPORAL_PROTOTYPE_METHOD0(PlainDate, ToPlainYearMonth, toPlainYearMonth) TEMPORAL_PROTOTYPE_METHOD0(PlainDate, ToPlainYearMonth, toPlainYearMonth)
TEMPORAL_PROTOTYPE_METHOD0(PlainDate, ToPlainMonthDay, toPlainMonthDay) TEMPORAL_PROTOTYPE_METHOD0(PlainDate, ToPlainMonthDay, toPlainMonthDay)
TEMPORAL_PROTOTYPE_METHOD1(PlainDate, WithCalendar, withCalendar) TEMPORAL_PROTOTYPE_METHOD1(PlainDate, WithCalendar, withCalendar)
TEMPORAL_PROTOTYPE_METHOD2(PlainDate, With, with)
TEMPORAL_PROTOTYPE_METHOD0(PlainDate, GetISOFields, getISOFields) TEMPORAL_PROTOTYPE_METHOD0(PlainDate, GetISOFields, getISOFields)
TEMPORAL_PROTOTYPE_METHOD1(PlainDate, ToPlainDateTime, toPlainDateTime) TEMPORAL_PROTOTYPE_METHOD1(PlainDate, ToPlainDateTime, toPlainDateTime)
TEMPORAL_VALUE_OF(PlainDate) TEMPORAL_VALUE_OF(PlainDate)
...@@ -517,6 +512,7 @@ TEMPORAL_GET_BY_INVOKE_CALENDAR_METHOD(PlainYearMonth, MonthsInYear, ...@@ -517,6 +512,7 @@ TEMPORAL_GET_BY_INVOKE_CALENDAR_METHOD(PlainYearMonth, MonthsInYear,
monthsInYear) monthsInYear)
TEMPORAL_GET_BY_INVOKE_CALENDAR_METHOD(PlainYearMonth, InLeapYear, inLeapYear) TEMPORAL_GET_BY_INVOKE_CALENDAR_METHOD(PlainYearMonth, InLeapYear, inLeapYear)
TEMPORAL_METHOD2(PlainYearMonth, From) TEMPORAL_METHOD2(PlainYearMonth, From)
TEMPORAL_PROTOTYPE_METHOD2(PlainYearMonth, With, with)
TEMPORAL_PROTOTYPE_METHOD0(PlainYearMonth, GetISOFields, getISOFields) TEMPORAL_PROTOTYPE_METHOD0(PlainYearMonth, GetISOFields, getISOFields)
TEMPORAL_VALUE_OF(PlainYearMonth) TEMPORAL_VALUE_OF(PlainYearMonth)
TEMPORAL_PROTOTYPE_METHOD2(PlainYearMonth, ToLocaleString, toLocaleString) TEMPORAL_PROTOTYPE_METHOD2(PlainYearMonth, ToLocaleString, toLocaleString)
...@@ -538,6 +534,7 @@ TEMPORAL_GET(PlainMonthDay, Calendar, calendar) ...@@ -538,6 +534,7 @@ TEMPORAL_GET(PlainMonthDay, Calendar, calendar)
TEMPORAL_GET_BY_FORWARD_CALENDAR(PlainMonthDay, MonthCode, monthCode) TEMPORAL_GET_BY_FORWARD_CALENDAR(PlainMonthDay, MonthCode, monthCode)
TEMPORAL_GET_BY_FORWARD_CALENDAR(PlainMonthDay, Day, day) TEMPORAL_GET_BY_FORWARD_CALENDAR(PlainMonthDay, Day, day)
TEMPORAL_METHOD2(PlainMonthDay, From) TEMPORAL_METHOD2(PlainMonthDay, From)
TEMPORAL_PROTOTYPE_METHOD2(PlainMonthDay, With, with)
TEMPORAL_PROTOTYPE_METHOD0(PlainMonthDay, GetISOFields, getISOFields) TEMPORAL_PROTOTYPE_METHOD0(PlainMonthDay, GetISOFields, getISOFields)
TEMPORAL_VALUE_OF(PlainMonthDay) TEMPORAL_VALUE_OF(PlainMonthDay)
TEMPORAL_PROTOTYPE_METHOD0(PlainMonthDay, ToJSON, toJSON) TEMPORAL_PROTOTYPE_METHOD0(PlainMonthDay, ToJSON, toJSON)
......
...@@ -1895,6 +1895,16 @@ V8_WARN_UNUSED_RESULT MaybeHandle<JSObject> PrepareTemporalFields( ...@@ -1895,6 +1895,16 @@ V8_WARN_UNUSED_RESULT MaybeHandle<JSObject> PrepareTemporalFields(
false); false);
} }
// #sec-temporal-preparepartialtemporalfields
V8_WARN_UNUSED_RESULT MaybeHandle<JSObject> PreparePartialTemporalFields(
Isolate* isolate, Handle<JSReceiver> fields,
Handle<FixedArray> field_names) {
TEMPORAL_ENTER_FUNC();
return PrepareTemporalFieldsOrPartial(isolate, fields, field_names,
RequiredFields::kNone, true);
}
// Template for DateFromFields, YearMonthFromFields, and MonthDayFromFields // Template for DateFromFields, YearMonthFromFields, and MonthDayFromFields
template <typename T> template <typename T>
MaybeHandle<T> FromFields(Isolate* isolate, Handle<JSReceiver> calendar, MaybeHandle<T> FromFields(Isolate* isolate, Handle<JSReceiver> calendar,
...@@ -7784,6 +7794,157 @@ MaybeHandle<JSTemporalPlainDateTime> JSTemporalPlainDate::ToPlainDateTime( ...@@ -7784,6 +7794,157 @@ MaybeHandle<JSTemporalPlainDateTime> JSTemporalPlainDate::ToPlainDateTime(
Handle<JSReceiver>(temporal_date->calendar(), isolate)); Handle<JSReceiver>(temporal_date->calendar(), isolate));
} }
namespace {
// #sec-temporal-rejectobjectwithcalendarortimezone
Maybe<bool> RejectObjectWithCalendarOrTimeZone(Isolate* isolate,
Handle<JSReceiver> object) {
TEMPORAL_ENTER_FUNC();
Factory* factory = isolate->factory();
// 1. Assert: Type(object) is Object.
// 2. If object has an [[InitializedTemporalDate]],
// [[InitializedTemporalDateTime]], [[InitializedTemporalMonthDay]],
// [[InitializedTemporalTime]], [[InitializedTemporalYearMonth]], or
// [[InitializedTemporalZonedDateTime]] internal slot, then
if (object->IsJSTemporalPlainDate() || object->IsJSTemporalPlainDateTime() ||
object->IsJSTemporalPlainMonthDay() || object->IsJSTemporalPlainTime() ||
object->IsJSTemporalPlainYearMonth() ||
object->IsJSTemporalZonedDateTime()) {
// a. Throw a TypeError exception.
THROW_NEW_ERROR_RETURN_VALUE(isolate, NEW_TEMPORAL_INVALID_ARG_TYPE_ERROR(),
Nothing<bool>());
}
// 3. Let calendarProperty be ? Get(object, "calendar").
Handle<Object> calendar_property;
ASSIGN_RETURN_ON_EXCEPTION_VALUE(
isolate, calendar_property,
JSReceiver::GetProperty(isolate, object, factory->calendar_string()),
Nothing<bool>());
// 4. If calendarProperty is not undefined, then
if (!calendar_property->IsUndefined()) {
// a. Throw a TypeError exception.
THROW_NEW_ERROR_RETURN_VALUE(isolate, NEW_TEMPORAL_INVALID_ARG_TYPE_ERROR(),
Nothing<bool>());
}
// 5. Let timeZoneProperty be ? Get(object, "timeZone").
Handle<Object> time_zone_property;
ASSIGN_RETURN_ON_EXCEPTION_VALUE(
isolate, time_zone_property,
JSReceiver::GetProperty(isolate, object, factory->timeZone_string()),
Nothing<bool>());
// 6. If timeZoneProperty is not undefined, then
if (!time_zone_property->IsUndefined()) {
// a. Throw a TypeError exception.
THROW_NEW_ERROR_RETURN_VALUE(isolate, NEW_TEMPORAL_INVALID_ARG_TYPE_ERROR(),
Nothing<bool>());
}
return Just(true);
}
// #sec-temporal-calendarmergefields
MaybeHandle<JSReceiver> CalendarMergeFields(
Isolate* isolate, Handle<JSReceiver> calendar, Handle<JSReceiver> fields,
Handle<JSReceiver> additional_fields) {
// 1. Let mergeFields be ? GetMethod(calendar, "mergeFields").
Handle<Object> merge_fields;
ASSIGN_RETURN_ON_EXCEPTION(
isolate, merge_fields,
Object::GetMethod(calendar, isolate->factory()->mergeFields_string()),
JSReceiver);
// 2. If mergeFields is undefined, then
if (merge_fields->IsUndefined()) {
// a. Return ? DefaultMergeFields(fields, additionalFields).
return DefaultMergeFields(isolate, fields, additional_fields);
}
// 3. Return ? Call(mergeFields, calendar, « fields, additionalFields »).
Handle<Object> argv[] = {fields, additional_fields};
Handle<Object> result;
ASSIGN_RETURN_ON_EXCEPTION(
isolate, result,
Execution::Call(isolate, merge_fields, calendar, 2, argv), JSReceiver);
// 4. If Type(result) is not Object, throw a TypeError exception.
if (!result->IsJSReceiver()) {
THROW_NEW_ERROR(isolate, NEW_TEMPORAL_INVALID_ARG_TYPE_ERROR(),
JSTemporalDuration);
}
return Handle<JSReceiver>::cast(result);
}
} // namespace
// Common code shared by Temporal.Plain(Date|YearMonth|MonthDay).prototype.with
template <typename T,
MaybeHandle<T> (*from_fields_func)(
Isolate*, Handle<JSReceiver>, Handle<JSReceiver>, Handle<Object>)>
MaybeHandle<T> PlainDateOrYearMonthOrMonthDayWith(
Isolate* isolate, Handle<T> temporal, Handle<Object> temporal_like_obj,
Handle<Object> options_obj, Handle<FixedArray> field_names,
const char* method_name) {
// 1. Let temporalDate be the this value.
// 2. Perform ? RequireInternalSlot(temporalDate,
// [[InitializedTemporalXXX]]).
// 3. If Type(temporalXXXLike) is not Object, then
if (!temporal_like_obj->IsJSReceiver()) {
// a. Throw a TypeError exception.
THROW_NEW_ERROR(isolate, NEW_TEMPORAL_INVALID_ARG_TYPE_ERROR(), T);
}
Handle<JSReceiver> temporal_like =
Handle<JSReceiver>::cast(temporal_like_obj);
// 4. Perform ? RejectObjectWithCalendarOrTimeZone(temporalXXXLike).
MAYBE_RETURN(RejectObjectWithCalendarOrTimeZone(isolate, temporal_like),
Handle<T>());
// 5. Let calendar be temporalXXX.[[Calendar]].
Handle<JSReceiver> calendar(temporal->calendar(), isolate);
// 6. Let fieldNames be ? CalendarFields(calendar, fieldNames).
ASSIGN_RETURN_ON_EXCEPTION(isolate, field_names,
CalendarFields(isolate, calendar, field_names), T);
// 7. Let partialDate be ? PreparePartialTemporalFields(temporalXXXLike,
// fieldNames).
Handle<JSReceiver> partial_date;
ASSIGN_RETURN_ON_EXCEPTION(
isolate, partial_date,
PreparePartialTemporalFields(isolate, temporal_like, field_names), T);
// 8. Set options to ? GetOptionsObject(options).
Handle<JSReceiver> options;
ASSIGN_RETURN_ON_EXCEPTION(
isolate, options, GetOptionsObject(isolate, options_obj, method_name), T);
// 9. Let fields be ? PrepareTemporalFields(temporalXXX, fieldNames, «»).
Handle<JSReceiver> fields;
ASSIGN_RETURN_ON_EXCEPTION(
isolate, fields,
PrepareTemporalFields(isolate, temporal, field_names,
RequiredFields::kNone),
T);
// 10. Set fields to ? CalendarMergeFields(calendar, fields, partialDate).
ASSIGN_RETURN_ON_EXCEPTION(
isolate, fields,
CalendarMergeFields(isolate, calendar, fields, partial_date), T);
// 11. Set fields to ? PrepareTemporalFields(fields, fieldNames, «»).
ASSIGN_RETURN_ON_EXCEPTION(
isolate, fields,
PrepareTemporalFields(isolate, temporal, field_names,
RequiredFields::kNone),
T);
// 12. Return ? XxxFromFields(calendar, fields, options).
return from_fields_func(isolate, calendar, fields, options);
}
// #sec-temporal.plaindate.prototype.with
MaybeHandle<JSTemporalPlainDate> JSTemporalPlainDate::With(
Isolate* isolate, Handle<JSTemporalPlainDate> temporal_date,
Handle<Object> temporal_date_like_obj, Handle<Object> options_obj) {
// 6. Let fieldNames be ? CalendarFields(calendar, « "day", "month",
// "monthCode", "year" »).
Handle<FixedArray> field_names = DayMonthMonthCodeYearInFixedArray(isolate);
return PlainDateOrYearMonthOrMonthDayWith<JSTemporalPlainDate,
DateFromFields>(
isolate, temporal_date, temporal_date_like_obj, options_obj, field_names,
"Temporal.PlainDate.prototype.with");
}
// #sec-temporal.now.plaindate // #sec-temporal.now.plaindate
MaybeHandle<JSTemporalPlainDate> JSTemporalPlainDate::Now( MaybeHandle<JSTemporalPlainDate> JSTemporalPlainDate::Now(
Isolate* isolate, Handle<Object> calendar_like, Isolate* isolate, Handle<Object> calendar_like,
...@@ -8720,6 +8881,19 @@ MaybeHandle<JSTemporalPlainMonthDay> JSTemporalPlainMonthDay::From( ...@@ -8720,6 +8881,19 @@ MaybeHandle<JSTemporalPlainMonthDay> JSTemporalPlainMonthDay::From(
return ToTemporalMonthDay(isolate, item, options, method_name); return ToTemporalMonthDay(isolate, item, options, method_name);
} }
// #sec-temporal.plainmonthday.prototype.with
MaybeHandle<JSTemporalPlainMonthDay> JSTemporalPlainMonthDay::With(
Isolate* isolate, Handle<JSTemporalPlainMonthDay> temporal_month_day,
Handle<Object> temporal_month_day_like_obj, Handle<Object> options_obj) {
// 6. Let fieldNames be ? CalendarFields(calendar, « "day", "month",
// "monthCode", "year" »).
Handle<FixedArray> field_names = DayMonthMonthCodeYearInFixedArray(isolate);
return PlainDateOrYearMonthOrMonthDayWith<JSTemporalPlainMonthDay,
MonthDayFromFields>(
isolate, temporal_month_day, temporal_month_day_like_obj, options_obj,
field_names, "Temporal.PlainMonthDay.prototype.with");
}
// #sec-temporal.plainmonthday.prototype.getisofields // #sec-temporal.plainmonthday.prototype.getisofields
MaybeHandle<JSReceiver> JSTemporalPlainMonthDay::GetISOFields( MaybeHandle<JSReceiver> JSTemporalPlainMonthDay::GetISOFields(
Isolate* isolate, Handle<JSTemporalPlainMonthDay> month_day) { Isolate* isolate, Handle<JSTemporalPlainMonthDay> month_day) {
...@@ -8963,6 +9137,19 @@ MaybeHandle<JSTemporalPlainYearMonth> JSTemporalPlainYearMonth::From( ...@@ -8963,6 +9137,19 @@ MaybeHandle<JSTemporalPlainYearMonth> JSTemporalPlainYearMonth::From(
return ToTemporalYearMonth(isolate, item, options, method_name); return ToTemporalYearMonth(isolate, item, options, method_name);
} }
// #sec-temporal.plainyearmonth.prototype.with
MaybeHandle<JSTemporalPlainYearMonth> JSTemporalPlainYearMonth::With(
Isolate* isolate, Handle<JSTemporalPlainYearMonth> temporal_year_month,
Handle<Object> temporal_year_month_like_obj, Handle<Object> options_obj) {
// 6. Let fieldNames be ? CalendarFields(calendar, « "month", "monthCode",
// "year" »).
Handle<FixedArray> field_names = MonthMonthCodeYearInFixedArray(isolate);
return PlainDateOrYearMonthOrMonthDayWith<JSTemporalPlainYearMonth,
YearMonthFromFields>(
isolate, temporal_year_month, temporal_year_month_like_obj, options_obj,
field_names, "Temporal.PlainYearMonth.prototype.with");
}
// #sec-temporal.plainyearmonth.prototype.getisofields // #sec-temporal.plainyearmonth.prototype.getisofields
MaybeHandle<JSReceiver> JSTemporalPlainYearMonth::GetISOFields( MaybeHandle<JSReceiver> JSTemporalPlainYearMonth::GetISOFields(
Isolate* isolate, Handle<JSTemporalPlainYearMonth> year_month) { Isolate* isolate, Handle<JSTemporalPlainYearMonth> year_month) {
......
...@@ -265,6 +265,12 @@ class JSTemporalPlainDate ...@@ -265,6 +265,12 @@ class JSTemporalPlainDate
V8_WARN_UNUSED_RESULT static MaybeHandle<JSTemporalPlainDateTime> V8_WARN_UNUSED_RESULT static MaybeHandle<JSTemporalPlainDateTime>
ToPlainDateTime(Isolate* isolate, Handle<JSTemporalPlainDate> plain_date, ToPlainDateTime(Isolate* isolate, Handle<JSTemporalPlainDate> plain_date,
Handle<Object> temporal_time); Handle<Object> temporal_time);
// #sec-temporal.plaindate.prototype.with
V8_WARN_UNUSED_RESULT static MaybeHandle<JSTemporalPlainDate> With(
Isolate* isolate, Handle<JSTemporalPlainDate> plain_date,
Handle<Object> temporal_duration_like, Handle<Object> options);
// #sec-temporal.plaindate.from // #sec-temporal.plaindate.from
V8_WARN_UNUSED_RESULT static MaybeHandle<JSTemporalPlainDate> From( V8_WARN_UNUSED_RESULT static MaybeHandle<JSTemporalPlainDate> From(
Isolate* isolate, Handle<Object> item, Handle<Object> options); Isolate* isolate, Handle<Object> item, Handle<Object> options);
...@@ -394,6 +400,11 @@ class JSTemporalPlainMonthDay ...@@ -394,6 +400,11 @@ class JSTemporalPlainMonthDay
V8_WARN_UNUSED_RESULT static MaybeHandle<JSTemporalPlainMonthDay> From( V8_WARN_UNUSED_RESULT static MaybeHandle<JSTemporalPlainMonthDay> From(
Isolate* isolate, Handle<Object> item, Handle<Object> options); Isolate* isolate, Handle<Object> item, Handle<Object> options);
// #sec-temporal.plainmonthday.prototype.with
V8_WARN_UNUSED_RESULT static MaybeHandle<JSTemporalPlainMonthDay> With(
Isolate* isolate, Handle<JSTemporalPlainMonthDay> month_day,
Handle<Object> temporal_month_day_like, Handle<Object> options);
// #sec-temporal.plainmonthday.prototype.getisofields // #sec-temporal.plainmonthday.prototype.getisofields
V8_WARN_UNUSED_RESULT static MaybeHandle<JSReceiver> GetISOFields( V8_WARN_UNUSED_RESULT static MaybeHandle<JSReceiver> GetISOFields(
Isolate* isolate, Handle<JSTemporalPlainMonthDay> month_day); Isolate* isolate, Handle<JSTemporalPlainMonthDay> month_day);
...@@ -472,6 +483,11 @@ class JSTemporalPlainYearMonth ...@@ -472,6 +483,11 @@ class JSTemporalPlainYearMonth
V8_WARN_UNUSED_RESULT static MaybeHandle<JSTemporalPlainYearMonth> From( V8_WARN_UNUSED_RESULT static MaybeHandle<JSTemporalPlainYearMonth> From(
Isolate* isolate, Handle<Object> item, Handle<Object> options); Isolate* isolate, Handle<Object> item, Handle<Object> options);
// #sec-temporal.plainyearmonth.prototype.with
V8_WARN_UNUSED_RESULT static MaybeHandle<JSTemporalPlainYearMonth> With(
Isolate* isolate, Handle<JSTemporalPlainYearMonth> year_month,
Handle<Object> temporal_year_month_like, Handle<Object> options);
// #sec-temporal.plainyearmonth.prototype.getisofields // #sec-temporal.plainyearmonth.prototype.getisofields
V8_WARN_UNUSED_RESULT static MaybeHandle<JSReceiver> GetISOFields( V8_WARN_UNUSED_RESULT static MaybeHandle<JSReceiver> GetISOFields(
Isolate* isolate, Handle<JSTemporalPlainYearMonth> year_month); Isolate* isolate, Handle<JSTemporalPlainYearMonth> year_month);
......
...@@ -838,15 +838,9 @@ ...@@ -838,15 +838,9 @@
'built-ins/Temporal/PlainDate/prototype/until/weeks-months': [FAIL], 'built-ins/Temporal/PlainDate/prototype/until/weeks-months': [FAIL],
'built-ins/Temporal/PlainDate/prototype/weekOfYear/basic': [FAIL], 'built-ins/Temporal/PlainDate/prototype/weekOfYear/basic': [FAIL],
'built-ins/Temporal/PlainDate/prototype/with/basic': [FAIL], 'built-ins/Temporal/PlainDate/prototype/with/basic': [FAIL],
'built-ins/Temporal/PlainDate/prototype/with/branding': [FAIL],
'built-ins/Temporal/PlainDate/prototype/with/calendar-fields-iterable': [FAIL],
'built-ins/Temporal/PlainDate/prototype/with/calendar-merge-fields-returns-primitive': [FAIL],
'built-ins/Temporal/PlainDate/prototype/with/copies-merge-fields-object': [FAIL], 'built-ins/Temporal/PlainDate/prototype/with/copies-merge-fields-object': [FAIL],
'built-ins/Temporal/PlainDate/prototype/with/infinity-throws-rangeerror': [FAIL],
'built-ins/Temporal/PlainDate/prototype/with/options-invalid': [FAIL],
'built-ins/Temporal/PlainDate/prototype/with/options-undefined': [FAIL], 'built-ins/Temporal/PlainDate/prototype/with/options-undefined': [FAIL],
'built-ins/Temporal/PlainDate/prototype/with/order-of-operations': [FAIL], 'built-ins/Temporal/PlainDate/prototype/with/order-of-operations': [FAIL],
'built-ins/Temporal/PlainDate/prototype/with/overflow-invalid-string': [FAIL],
'built-ins/Temporal/PlainDate/prototype/with/overflow-undefined': [FAIL], 'built-ins/Temporal/PlainDate/prototype/with/overflow-undefined': [FAIL],
'built-ins/Temporal/PlainDate/prototype/with/overflow-wrong-type': [FAIL], 'built-ins/Temporal/PlainDate/prototype/with/overflow-wrong-type': [FAIL],
'built-ins/Temporal/PlainDate/prototype/with/plaindatelike-invalid': [FAIL], 'built-ins/Temporal/PlainDate/prototype/with/plaindatelike-invalid': [FAIL],
...@@ -1070,16 +1064,10 @@ ...@@ -1070,16 +1064,10 @@
'built-ins/Temporal/PlainMonthDay/prototype/toPlainDate/infinity-throws-rangeerror': [FAIL], 'built-ins/Temporal/PlainMonthDay/prototype/toPlainDate/infinity-throws-rangeerror': [FAIL],
'built-ins/Temporal/PlainMonthDay/prototype/toPlainDate/limits': [FAIL], 'built-ins/Temporal/PlainMonthDay/prototype/toPlainDate/limits': [FAIL],
'built-ins/Temporal/PlainMonthDay/prototype/with/basic': [FAIL], 'built-ins/Temporal/PlainMonthDay/prototype/with/basic': [FAIL],
'built-ins/Temporal/PlainMonthDay/prototype/with/branding': [FAIL],
'built-ins/Temporal/PlainMonthDay/prototype/with/calendar-arguments': [FAIL], 'built-ins/Temporal/PlainMonthDay/prototype/with/calendar-arguments': [FAIL],
'built-ins/Temporal/PlainMonthDay/prototype/with/calendar-fields-iterable': [FAIL],
'built-ins/Temporal/PlainMonthDay/prototype/with/calendar-merge-fields-returns-primitive': [FAIL],
'built-ins/Temporal/PlainMonthDay/prototype/with/copies-merge-fields-object': [FAIL], 'built-ins/Temporal/PlainMonthDay/prototype/with/copies-merge-fields-object': [FAIL],
'built-ins/Temporal/PlainMonthDay/prototype/with/infinity-throws-rangeerror': [FAIL],
'built-ins/Temporal/PlainMonthDay/prototype/with/options-invalid': [FAIL],
'built-ins/Temporal/PlainMonthDay/prototype/with/options-undefined': [FAIL], 'built-ins/Temporal/PlainMonthDay/prototype/with/options-undefined': [FAIL],
'built-ins/Temporal/PlainMonthDay/prototype/with/order-of-operations': [FAIL], 'built-ins/Temporal/PlainMonthDay/prototype/with/order-of-operations': [FAIL],
'built-ins/Temporal/PlainMonthDay/prototype/with/overflow-invalid-string': [FAIL],
'built-ins/Temporal/PlainMonthDay/prototype/with/overflow-undefined': [FAIL], 'built-ins/Temporal/PlainMonthDay/prototype/with/overflow-undefined': [FAIL],
'built-ins/Temporal/PlainMonthDay/prototype/with/overflow-wrong-type': [FAIL], 'built-ins/Temporal/PlainMonthDay/prototype/with/overflow-wrong-type': [FAIL],
'built-ins/Temporal/PlainMonthDay/prototype/with/subclassing-ignored': [FAIL], 'built-ins/Temporal/PlainMonthDay/prototype/with/subclassing-ignored': [FAIL],
...@@ -1371,15 +1359,10 @@ ...@@ -1371,15 +1359,10 @@
'built-ins/Temporal/PlainYearMonth/prototype/until/smallestunit-plurals-accepted': [FAIL], 'built-ins/Temporal/PlainYearMonth/prototype/until/smallestunit-plurals-accepted': [FAIL],
'built-ins/Temporal/PlainYearMonth/prototype/until/smallestunit-undefined': [FAIL], 'built-ins/Temporal/PlainYearMonth/prototype/until/smallestunit-undefined': [FAIL],
'built-ins/Temporal/PlainYearMonth/prototype/until/smallestunit-wrong-type': [FAIL], 'built-ins/Temporal/PlainYearMonth/prototype/until/smallestunit-wrong-type': [FAIL],
'built-ins/Temporal/PlainYearMonth/prototype/with/branding': [FAIL],
'built-ins/Temporal/PlainYearMonth/prototype/with/calendar-arguments': [FAIL], 'built-ins/Temporal/PlainYearMonth/prototype/with/calendar-arguments': [FAIL],
'built-ins/Temporal/PlainYearMonth/prototype/with/calendar-fields-iterable': [FAIL],
'built-ins/Temporal/PlainYearMonth/prototype/with/calendar-merge-fields-returns-primitive': [FAIL],
'built-ins/Temporal/PlainYearMonth/prototype/with/copies-merge-fields-object': [FAIL], 'built-ins/Temporal/PlainYearMonth/prototype/with/copies-merge-fields-object': [FAIL],
'built-ins/Temporal/PlainYearMonth/prototype/with/infinity-throws-rangeerror': [FAIL],
'built-ins/Temporal/PlainYearMonth/prototype/with/options-undefined': [FAIL], 'built-ins/Temporal/PlainYearMonth/prototype/with/options-undefined': [FAIL],
'built-ins/Temporal/PlainYearMonth/prototype/with/order-of-operations': [FAIL], 'built-ins/Temporal/PlainYearMonth/prototype/with/order-of-operations': [FAIL],
'built-ins/Temporal/PlainYearMonth/prototype/with/overflow-invalid-string': [FAIL],
'built-ins/Temporal/PlainYearMonth/prototype/with/overflow-undefined': [FAIL], 'built-ins/Temporal/PlainYearMonth/prototype/with/overflow-undefined': [FAIL],
'built-ins/Temporal/PlainYearMonth/prototype/with/overflow-wrong-type': [FAIL], 'built-ins/Temporal/PlainYearMonth/prototype/with/overflow-wrong-type': [FAIL],
'built-ins/Temporal/PlainYearMonth/prototype/with/subclassing-ignored': [FAIL], 'built-ins/Temporal/PlainYearMonth/prototype/with/subclassing-ignored': [FAIL],
...@@ -1832,7 +1815,6 @@ ...@@ -1832,7 +1815,6 @@
'built-ins/Temporal/PlainDate/prototype/toPlainDateTime/argument-string-no-implicit-midnight': [FAIL], 'built-ins/Temporal/PlainDate/prototype/toPlainDateTime/argument-string-no-implicit-midnight': [FAIL],
'built-ins/Temporal/PlainDate/prototype/toPlainDateTime/argument-string-time-designator-required-for-disambiguation': [FAIL], 'built-ins/Temporal/PlainDate/prototype/toPlainDateTime/argument-string-time-designator-required-for-disambiguation': [FAIL],
'built-ins/Temporal/PlainDate/prototype/toPlainDateTime/argument-string-with-time-designator': [FAIL], 'built-ins/Temporal/PlainDate/prototype/toPlainDateTime/argument-string-with-time-designator': [FAIL],
'built-ins/Temporal/PlainDate/prototype/toPlainDateTime/year-zero': [FAIL],
'built-ins/Temporal/PlainDate/prototype/toPlainYearMonth/limits': [FAIL], 'built-ins/Temporal/PlainDate/prototype/toPlainYearMonth/limits': [FAIL],
'built-ins/Temporal/PlainDate/prototype/toZonedDateTime/argument-string-no-implicit-midnight': [FAIL], 'built-ins/Temporal/PlainDate/prototype/toZonedDateTime/argument-string-no-implicit-midnight': [FAIL],
'built-ins/Temporal/PlainDate/prototype/toZonedDateTime/argument-string-time-designator-required-for-disambiguation': [FAIL], 'built-ins/Temporal/PlainDate/prototype/toZonedDateTime/argument-string-time-designator-required-for-disambiguation': [FAIL],
...@@ -1862,7 +1844,6 @@ ...@@ -1862,7 +1844,6 @@
'built-ins/Temporal/PlainDateTime/prototype/withPlainTime/argument-string-no-implicit-midnight': [FAIL], 'built-ins/Temporal/PlainDateTime/prototype/withPlainTime/argument-string-no-implicit-midnight': [FAIL],
'built-ins/Temporal/PlainDateTime/prototype/withPlainTime/argument-string-time-designator-required-for-disambiguation': [FAIL], 'built-ins/Temporal/PlainDateTime/prototype/withPlainTime/argument-string-time-designator-required-for-disambiguation': [FAIL],
'built-ins/Temporal/PlainDateTime/prototype/withPlainTime/argument-string-with-time-designator': [FAIL], 'built-ins/Temporal/PlainDateTime/prototype/withPlainTime/argument-string-with-time-designator': [FAIL],
'built-ins/Temporal/PlainDateTime/prototype/withPlainTime/year-zero': [FAIL],
'built-ins/Temporal/PlainMonthDay/prototype/equals/year-zero': [FAIL], 'built-ins/Temporal/PlainMonthDay/prototype/equals/year-zero': [FAIL],
'built-ins/Temporal/PlainMonthDay/prototype/with/copy-properties-not-undefined': [FAIL], 'built-ins/Temporal/PlainMonthDay/prototype/with/copy-properties-not-undefined': [FAIL],
'built-ins/Temporal/PlainTime/compare/argument-cast': [FAIL], 'built-ins/Temporal/PlainTime/compare/argument-cast': [FAIL],
...@@ -2013,12 +1994,8 @@ ...@@ -2013,12 +1994,8 @@
'built-ins/Temporal/PlainYearMonth/prototype/until/roundingmode-halfExpand': [FAIL], 'built-ins/Temporal/PlainYearMonth/prototype/until/roundingmode-halfExpand': [FAIL],
'built-ins/Temporal/PlainYearMonth/prototype/until/roundingmode-trunc': [FAIL], 'built-ins/Temporal/PlainYearMonth/prototype/until/roundingmode-trunc': [FAIL],
'built-ins/Temporal/PlainYearMonth/prototype/until/year-zero': [FAIL], 'built-ins/Temporal/PlainYearMonth/prototype/until/year-zero': [FAIL],
'built-ins/Temporal/PlainYearMonth/prototype/with/argument-calendar-field': [FAIL],
'built-ins/Temporal/PlainYearMonth/prototype/with/argument-missing-fields': [FAIL],
'built-ins/Temporal/PlainYearMonth/prototype/with/argument-timezone-field': [FAIL],
'built-ins/Temporal/PlainYearMonth/prototype/with/basic': [FAIL], 'built-ins/Temporal/PlainYearMonth/prototype/with/basic': [FAIL],
'built-ins/Temporal/PlainYearMonth/prototype/with/copy-properties-not-undefined': [FAIL], 'built-ins/Temporal/PlainYearMonth/prototype/with/copy-properties-not-undefined': [FAIL],
'built-ins/Temporal/PlainYearMonth/prototype/with/options-wrong-type': [FAIL],
'built-ins/Temporal/ZonedDateTime/compare/argument-propertybag-offset-not-agreeing-with-timezone': [FAIL], 'built-ins/Temporal/ZonedDateTime/compare/argument-propertybag-offset-not-agreeing-with-timezone': [FAIL],
'built-ins/Temporal/ZonedDateTime/compare/year-zero': [FAIL], 'built-ins/Temporal/ZonedDateTime/compare/year-zero': [FAIL],
'built-ins/Temporal/ZonedDateTime/from/argument-propertybag-offset-not-agreeing-with-timezone': [FAIL], 'built-ins/Temporal/ZonedDateTime/from/argument-propertybag-offset-not-agreeing-with-timezone': [FAIL],
...@@ -2140,7 +2117,6 @@ ...@@ -2140,7 +2117,6 @@
'built-ins/Temporal/PlainDate/prototype/since/options-wrong-type': [FAIL], 'built-ins/Temporal/PlainDate/prototype/since/options-wrong-type': [FAIL],
'built-ins/Temporal/PlainDate/prototype/subtract/options-wrong-type': [FAIL], 'built-ins/Temporal/PlainDate/prototype/subtract/options-wrong-type': [FAIL],
'built-ins/Temporal/PlainDate/prototype/until/options-wrong-type': [FAIL], 'built-ins/Temporal/PlainDate/prototype/until/options-wrong-type': [FAIL],
'built-ins/Temporal/PlainDate/prototype/with/options-wrong-type': [FAIL],
'built-ins/Temporal/PlainDateTime/compare/calendar-ignored': [FAIL], 'built-ins/Temporal/PlainDateTime/compare/calendar-ignored': [FAIL],
'built-ins/Temporal/PlainDateTime/prototype/add/options-wrong-type': [FAIL], 'built-ins/Temporal/PlainDateTime/prototype/add/options-wrong-type': [FAIL],
'built-ins/Temporal/PlainDateTime/prototype/equals/calendar-checked': [FAIL], 'built-ins/Temporal/PlainDateTime/prototype/equals/calendar-checked': [FAIL],
...@@ -2216,7 +2192,6 @@ ...@@ -2216,7 +2192,6 @@
'built-ins/Temporal/PlainDateTime/prototype/withPlainDate/argument-plaindate-calendar-noniso': [FAIL], 'built-ins/Temporal/PlainDateTime/prototype/withPlainDate/argument-plaindate-calendar-noniso': [FAIL],
'built-ins/Temporal/PlainDateTime/prototype/withPlainDate/argument-plaindate-calendar-same-id': [FAIL], 'built-ins/Temporal/PlainDateTime/prototype/withPlainDate/argument-plaindate-calendar-same-id': [FAIL],
'built-ins/Temporal/PlainDateTime/prototype/withPlainDate/argument-plaindate-calendar-same-object': [FAIL], 'built-ins/Temporal/PlainDateTime/prototype/withPlainDate/argument-plaindate-calendar-same-object': [FAIL],
'built-ins/Temporal/PlainMonthDay/prototype/with/options-wrong-type': [FAIL],
'built-ins/Temporal/PlainTime/prototype/round/options-wrong-type': [FAIL], 'built-ins/Temporal/PlainTime/prototype/round/options-wrong-type': [FAIL],
'built-ins/Temporal/PlainTime/prototype/round/roundto-invalid-string': [FAIL], 'built-ins/Temporal/PlainTime/prototype/round/roundto-invalid-string': [FAIL],
'built-ins/Temporal/PlainTime/prototype/since/options-wrong-type': [FAIL], 'built-ins/Temporal/PlainTime/prototype/since/options-wrong-type': [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