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

[Temporal] Add compare/equals to YearMonth and MonthDay

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

Bug: v8:11544
Change-Id: Ia03946e0e183ec9b0a8130515607c29a32a8b265
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3673418Reviewed-by: 's avatarAdam Klein <adamk@chromium.org>
Commit-Queue: Frank Tang <ftang@chromium.org>
Cr-Commit-Position: refs/heads/main@{#80986}
parent dc88fb92
......@@ -110,8 +110,6 @@ TO_BE_IMPLEMENTED(TemporalInstantPrototypeToString)
TO_BE_IMPLEMENTED(TemporalInstantPrototypeToJSON)
/* Temporal.PlainYearMonth */
/* Temporal #sec-temporal.plainyearmonth.compare */
TO_BE_IMPLEMENTED(TemporalPlainYearMonthCompare)
/* Temporal #sec-temporal.plainyearmonth.prototype.add */
TO_BE_IMPLEMENTED(TemporalPlainYearMonthPrototypeAdd)
/* Temporal #sec-temporal.plainyearmonth.prototype.subtract */
......@@ -120,14 +118,6 @@ TO_BE_IMPLEMENTED(TemporalPlainYearMonthPrototypeSubtract)
TO_BE_IMPLEMENTED(TemporalPlainYearMonthPrototypeUntil)
/* Temporal #sec-temporal.plainyearmonth.prototype.since */
TO_BE_IMPLEMENTED(TemporalPlainYearMonthPrototypeSince)
/* Temporal #sec-temporal.plainyearmonth.prototype.equals */
TO_BE_IMPLEMENTED(TemporalPlainYearMonthPrototypeEquals)
/* Temporal.PlainMonthDay */
/* There is no compare for PlainMonthDay. See
* https://github.com/tc39/proposal-temporal/issues/1547 */
/* Temporal #sec-temporal.plainmonthday.prototype.equals */
TO_BE_IMPLEMENTED(TemporalPlainMonthDayPrototypeEquals)
/* Temporal.Calendar */
/* Temporal #sec-temporal.calendar.prototype.weekofyear */
......@@ -464,6 +454,8 @@ TEMPORAL_GET_BY_INVOKE_CALENDAR_METHOD(PlainYearMonth, MonthsInYear,
monthsInYear)
TEMPORAL_GET_BY_INVOKE_CALENDAR_METHOD(PlainYearMonth, InLeapYear, inLeapYear)
TEMPORAL_METHOD2(PlainYearMonth, From)
TEMPORAL_METHOD2(PlainYearMonth, Compare)
TEMPORAL_PROTOTYPE_METHOD1(PlainYearMonth, Equals, equals)
TEMPORAL_PROTOTYPE_METHOD2(PlainYearMonth, With, with)
TEMPORAL_PROTOTYPE_METHOD1(PlainYearMonth, ToPlainDate, toPlainDate)
TEMPORAL_PROTOTYPE_METHOD0(PlainYearMonth, GetISOFields, getISOFields)
......@@ -487,6 +479,7 @@ TEMPORAL_GET(PlainMonthDay, Calendar, calendar)
TEMPORAL_GET_BY_FORWARD_CALENDAR(PlainMonthDay, MonthCode, monthCode)
TEMPORAL_GET_BY_FORWARD_CALENDAR(PlainMonthDay, Day, day)
TEMPORAL_METHOD2(PlainMonthDay, From)
TEMPORAL_PROTOTYPE_METHOD1(PlainMonthDay, Equals, equals)
TEMPORAL_PROTOTYPE_METHOD2(PlainMonthDay, With, with)
TEMPORAL_PROTOTYPE_METHOD1(PlainMonthDay, ToPlainDate, toPlainDate)
TEMPORAL_PROTOTYPE_METHOD0(PlainMonthDay, GetISOFields, getISOFields)
......
......@@ -9732,15 +9732,17 @@ Maybe<DateRecord> ParseTemporalMonthDayString(Isolate* isolate,
// #sec-temporal-totemporalmonthday
MaybeHandle<JSTemporalPlainMonthDay> ToTemporalMonthDay(
Isolate* isolate, Handle<Object> item_obj, Handle<JSReceiver> options,
Isolate* isolate, Handle<Object> item_obj, Handle<Object> options,
const char* method_name) {
TEMPORAL_ENTER_FUNC();
Factory* factory = isolate->factory();
// 1. If options is not present, set options to ! OrdinaryObjectCreate(null).
// 2. Let referenceISOYear be 1972 (the first leap year after the Unix epoch).
// 2. Assert: Type(options) is Object or Undefined.
DCHECK(options->IsJSReceiver() || options->IsUndefined());
// 3. Let referenceISOYear be 1972 (the first leap year after the Unix epoch).
constexpr int32_t kReferenceIsoYear = 1972;
// 3. If Type(item) is Object, then
// 4. If Type(item) is Object, then
if (item_obj->IsJSReceiver()) {
Handle<JSReceiver> item = Handle<JSReceiver>::cast(item_obj);
// a. If item has an [[InitializedTemporalMonthDay]] internal slot, then
......@@ -9895,6 +9897,13 @@ MaybeHandle<JSTemporalPlainMonthDay> ToTemporalMonthDay(
canonical_month_day_options);
}
MaybeHandle<JSTemporalPlainMonthDay> ToTemporalMonthDay(
Isolate* isolate, Handle<Object> item_obj, const char* method_name) {
// 1. If options is not present, set options to undefined.
return ToTemporalMonthDay(isolate, item_obj,
isolate->factory()->undefined_value(), method_name);
}
} // namespace
// #sec-temporal.plainmonthday.from
......@@ -9927,6 +9936,35 @@ MaybeHandle<JSTemporalPlainMonthDay> JSTemporalPlainMonthDay::From(
return ToTemporalMonthDay(isolate, item, options, method_name);
}
// #sec-temporal.plainyearmonth.prototype.equals
MaybeHandle<Oddball> JSTemporalPlainMonthDay::Equals(
Isolate* isolate, Handle<JSTemporalPlainMonthDay> month_day,
Handle<Object> other_obj) {
// 1. Let monthDay be the this value.
// 2. Perform ? RequireInternalSlot(monthDay,
// [[InitializedTemporalMonthDay]]).
// 3. Set other to ? ToTemporalMonthDay(other).
Handle<JSTemporalPlainMonthDay> other;
ASSIGN_RETURN_ON_EXCEPTION(
isolate, other,
ToTemporalMonthDay(isolate, other_obj,
"Temporal.PlainMonthDay.prototype.equals"),
Oddball);
// 4. If monthDay.[[ISOMonth]] ≠ other.[[ISOMonth]], return false.
if (month_day->iso_month() != other->iso_month())
return isolate->factory()->false_value();
// 5. If monthDay.[[ISODay]] ≠ other.[[ISODay]], return false.
if (month_day->iso_day() != other->iso_day())
return isolate->factory()->false_value();
// 6. If monthDay.[[ISOYear]] ≠ other.[[ISOYear]], return false.
if (month_day->iso_year() != other->iso_year())
return isolate->factory()->false_value();
// 7. Return ? CalendarEquals(monthDay.[[Calendar]], other.[[Calendar]]).
return CalendarEquals(isolate,
Handle<JSReceiver>(month_day->calendar(), isolate),
Handle<JSReceiver>(other->calendar(), isolate));
}
// #sec-temporal.plainmonthday.prototype.with
MaybeHandle<JSTemporalPlainMonthDay> JSTemporalPlainMonthDay::With(
Isolate* isolate, Handle<JSTemporalPlainMonthDay> temporal_month_day,
......@@ -10192,13 +10230,13 @@ Maybe<DateRecord> ParseTemporalYearMonthString(Isolate* isolate,
// #sec-temporal-totemporalyearmonth
MaybeHandle<JSTemporalPlainYearMonth> ToTemporalYearMonth(
Isolate* isolate, Handle<Object> item_obj, Handle<JSReceiver> options,
Isolate* isolate, Handle<Object> item_obj, Handle<Object> options,
const char* method_name) {
TEMPORAL_ENTER_FUNC();
Factory* factory = isolate->factory();
// 1. If options is not present, set options to ! OrdinaryObjectCreate(null).
// 2. Assert: Type(options) is Object.
// 2. Assert: Type(options) is Object or Undefined.
DCHECK(options->IsJSReceiver() || options->IsUndefined());
// 3. If Type(item) is Object, then
if (item_obj->IsJSReceiver()) {
Handle<JSReceiver> item = Handle<JSReceiver>::cast(item_obj);
......@@ -10271,6 +10309,13 @@ MaybeHandle<JSTemporalPlainYearMonth> ToTemporalYearMonth(
canonical_year_month_options);
}
MaybeHandle<JSTemporalPlainYearMonth> ToTemporalYearMonth(
Isolate* isolate, Handle<Object> item_obj, const char* method_name) {
// 1. If options is not present, set options to undefined.
return ToTemporalYearMonth(
isolate, item_obj, isolate->factory()->undefined_value(), method_name);
}
} // namespace
// #sec-temporal.plainyearmonth.from
......@@ -10301,6 +10346,56 @@ MaybeHandle<JSTemporalPlainYearMonth> JSTemporalPlainYearMonth::From(
return ToTemporalYearMonth(isolate, item, options, method_name);
}
// #sec-temporal.plainyearmonth.compare
MaybeHandle<Smi> JSTemporalPlainYearMonth::Compare(Isolate* isolate,
Handle<Object> one_obj,
Handle<Object> two_obj) {
const char* method_name = "Temporal.PlainYearMonth.compare";
// 1. Set one to ? ToTemporalYearMonth(one).
Handle<JSTemporalPlainYearMonth> one;
ASSIGN_RETURN_ON_EXCEPTION(
isolate, one, ToTemporalYearMonth(isolate, one_obj, method_name), Smi);
// 2. Set two to ? ToTemporalYearMonth(two).
Handle<JSTemporalPlainYearMonth> two;
ASSIGN_RETURN_ON_EXCEPTION(
isolate, two, ToTemporalYearMonth(isolate, two_obj, method_name), Smi);
// 3. Return 𝔽(! CompareISODate(one.[[ISOYear]], one.[[ISOMonth]],
// one.[[ISODay]], two.[[ISOYear]], two.[[ISOMonth]], two.[[ISODay]])).
return handle(Smi::FromInt(CompareISODate(
{one->iso_year(), one->iso_month(), one->iso_day()},
{two->iso_year(), two->iso_month(), two->iso_day()})),
isolate);
}
// #sec-temporal.plainyearmonth.prototype.equals
MaybeHandle<Oddball> JSTemporalPlainYearMonth::Equals(
Isolate* isolate, Handle<JSTemporalPlainYearMonth> year_month,
Handle<Object> other_obj) {
// 1. Let yearMonth be the this value.
// 2. Perform ? RequireInternalSlot(yearMonth,
// [[InitializedTemporalYearMonth]]).
// 3. Set other to ? ToTemporalYearMonth(other).
Handle<JSTemporalPlainYearMonth> other;
ASSIGN_RETURN_ON_EXCEPTION(
isolate, other,
ToTemporalYearMonth(isolate, other_obj,
"Temporal.PlainYearMonth.prototype.equals"),
Oddball);
// 4. If yearMonth.[[ISOYear]] ≠ other.[[ISOYear]], return false.
if (year_month->iso_year() != other->iso_year())
return isolate->factory()->false_value();
// 5. If yearMonth.[[ISOMonth]] ≠ other.[[ISOMonth]], return false.
if (year_month->iso_month() != other->iso_month())
return isolate->factory()->false_value();
// 6. If yearMonth.[[ISODay]] ≠ other.[[ISODay]], return false.
if (year_month->iso_day() != other->iso_day())
return isolate->factory()->false_value();
// 7. Return ? CalendarEquals(yearMonth.[[Calendar]], other.[[Calendar]]).
return CalendarEquals(isolate,
Handle<JSReceiver>(year_month->calendar(), isolate),
Handle<JSReceiver>(other->calendar(), isolate));
}
// #sec-temporal.plainyearmonth.prototype.with
MaybeHandle<JSTemporalPlainYearMonth> JSTemporalPlainYearMonth::With(
Isolate* isolate, Handle<JSTemporalPlainYearMonth> temporal_year_month,
......
......@@ -502,6 +502,11 @@ class JSTemporalPlainMonthDay
V8_WARN_UNUSED_RESULT static MaybeHandle<JSTemporalPlainMonthDay> From(
Isolate* isolate, Handle<Object> item, Handle<Object> options);
// #sec-temporal.plainmonthday.prototype.equals
V8_WARN_UNUSED_RESULT static MaybeHandle<Oddball> Equals(
Isolate* isolate, Handle<JSTemporalPlainMonthDay> month_day,
Handle<Object> other);
// #sec-temporal.plainmonthday.prototype.with
V8_WARN_UNUSED_RESULT static MaybeHandle<JSTemporalPlainMonthDay> With(
Isolate* isolate, Handle<JSTemporalPlainMonthDay> month_day,
......@@ -635,6 +640,16 @@ class JSTemporalPlainYearMonth
V8_WARN_UNUSED_RESULT static MaybeHandle<JSTemporalPlainYearMonth> From(
Isolate* isolate, Handle<Object> item, Handle<Object> options);
// #sec-temporal.plainyearmonth.compare
V8_WARN_UNUSED_RESULT static MaybeHandle<Smi> Compare(Isolate* isolate,
Handle<Object> one,
Handle<Object> two);
// #sec-temporal.plainyearmonth.prototype.equals
V8_WARN_UNUSED_RESULT static MaybeHandle<Oddball> Equals(
Isolate* isolate, Handle<JSTemporalPlainYearMonth> year_month,
Handle<Object> other);
// #sec-temporal.plainyearmonth.prototype.with
V8_WARN_UNUSED_RESULT static MaybeHandle<JSTemporalPlainYearMonth> With(
Isolate* isolate, Handle<JSTemporalPlainYearMonth> year_month,
......
......@@ -834,15 +834,7 @@
'built-ins/Temporal/PlainDateTime/prototype/until/smallestunit-wrong-type': [FAIL],
'built-ins/Temporal/PlainDateTime/prototype/withPlainTime/argument-zoneddatetime-balance-negative-time-units': [FAIL],
'built-ins/Temporal/PlainMonthDay/from/calendar-monthdayfromfields-called-with-options-undefined': [FAIL],
'built-ins/Temporal/PlainMonthDay/prototype/equals/argument-string-with-utc-designator': [FAIL],
'built-ins/Temporal/PlainMonthDay/prototype/equals/argument-wrong-type': [FAIL],
'built-ins/Temporal/PlainMonthDay/prototype/equals/basic': [FAIL],
'built-ins/Temporal/PlainMonthDay/prototype/equals/branding': [FAIL],
'built-ins/Temporal/PlainMonthDay/prototype/equals/calendar-fields-iterable': [FAIL],
'built-ins/Temporal/PlainMonthDay/prototype/equals/calendar-monthdayfromfields-called-with-options-undefined': [FAIL],
'built-ins/Temporal/PlainMonthDay/prototype/equals/calendars': [FAIL],
'built-ins/Temporal/PlainMonthDay/prototype/equals/calendar-temporal-object': [FAIL],
'built-ins/Temporal/PlainMonthDay/prototype/equals/infinity-throws-rangeerror': [FAIL],
'built-ins/Temporal/PlainMonthDay/prototype/toPlainDate/limits': [FAIL],
'built-ins/Temporal/PlainMonthDay/prototype/with/basic': [FAIL],
'built-ins/Temporal/PlainMonthDay/prototype/with/calendar-arguments': [FAIL],
......@@ -938,12 +930,7 @@
'built-ins/Temporal/PlainTime/prototype/until/smallestunit-undefined': [FAIL],
'built-ins/Temporal/PlainTime/prototype/until/smallestunit-wrong-type': [FAIL],
'built-ins/Temporal/PlainTime/prototype/with/plaintimelike-invalid': [FAIL],
'built-ins/Temporal/PlainYearMonth/compare/argument-string-with-utc-designator': [FAIL],
'built-ins/Temporal/PlainYearMonth/compare/calendar-fields-iterable': [FAIL],
'built-ins/Temporal/PlainYearMonth/compare/calendar-temporal-object': [FAIL],
'built-ins/Temporal/PlainYearMonth/compare/calendar-yearmonthfromfields-called-with-options-undefined': [FAIL],
'built-ins/Temporal/PlainYearMonth/compare/infinity-throws-rangeerror': [FAIL],
'built-ins/Temporal/PlainYearMonth/compare/use-internal-slots': [FAIL],
'built-ins/Temporal/PlainYearMonth/from/calendar-yearmonthfromfields-called-with-options-undefined': [FAIL],
'built-ins/Temporal/PlainYearMonth/prototype/add/argument-not-object': [FAIL],
'built-ins/Temporal/PlainYearMonth/prototype/add/argument-string': [FAIL],
......@@ -963,13 +950,7 @@
'built-ins/Temporal/PlainYearMonth/prototype/add/overflow-undefined': [FAIL],
'built-ins/Temporal/PlainYearMonth/prototype/add/overflow-wrong-type': [FAIL],
'built-ins/Temporal/PlainYearMonth/prototype/add/subclassing-ignored': [FAIL],
'built-ins/Temporal/PlainYearMonth/prototype/equals/argument-string-with-utc-designator': [FAIL],
'built-ins/Temporal/PlainYearMonth/prototype/equals/argument-wrong-type': [FAIL],
'built-ins/Temporal/PlainYearMonth/prototype/equals/branding': [FAIL],
'built-ins/Temporal/PlainYearMonth/prototype/equals/calendar-fields-iterable': [FAIL],
'built-ins/Temporal/PlainYearMonth/prototype/equals/calendar-temporal-object': [FAIL],
'built-ins/Temporal/PlainYearMonth/prototype/equals/calendar-yearmonthfromfields-called-with-options-undefined': [FAIL],
'built-ins/Temporal/PlainYearMonth/prototype/equals/infinity-throws-rangeerror': [FAIL],
'built-ins/Temporal/PlainYearMonth/prototype/since/arguments-missing-throws': [FAIL],
'built-ins/Temporal/PlainYearMonth/prototype/since/argument-string-with-utc-designator': [FAIL],
'built-ins/Temporal/PlainYearMonth/prototype/since/branding': [FAIL],
......@@ -1327,7 +1308,6 @@
'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/equals/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],
......@@ -1337,8 +1317,6 @@
'intl402/Temporal/PlainTime/prototype/toLocaleString/options-undefined': [FAIL],
'intl402/Temporal/PlainTime/prototype/toLocaleString/resolved-time-zone': [FAIL],
'intl402/Temporal/PlainTime/prototype/toLocaleString/timezone-getoffsetnanosecondsfor-not-callable': [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],
'intl402/Temporal/PlainYearMonth/prototype/toLocaleString/locales-undefined': [FAIL],
'intl402/Temporal/PlainYearMonth/prototype/toLocaleString/options-undefined': [FAIL],
......@@ -1424,7 +1402,6 @@
'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-with-time-designator': [FAIL],
'built-ins/Temporal/PlainMonthDay/prototype/equals/year-zero': [FAIL],
'built-ins/Temporal/PlainMonthDay/prototype/with/copy-properties-not-undefined': [FAIL],
'built-ins/Temporal/PlainTime/compare/argument-string-no-implicit-midnight': [FAIL],
'built-ins/Temporal/PlainTime/compare/argument-string-time-designator-required-for-disambiguation': [FAIL],
......@@ -1503,11 +1480,6 @@
'built-ins/Temporal/PlainTime/prototype/until/roundingmode-halfExpand': [FAIL],
'built-ins/Temporal/PlainTime/prototype/until/roundingmode-trunc': [FAIL],
'built-ins/Temporal/PlainTime/prototype/until/year-zero': [FAIL],
'built-ins/Temporal/PlainYearMonth/compare/argument-cast': [FAIL],
'built-ins/Temporal/PlainYearMonth/compare/basic': [FAIL],
'built-ins/Temporal/PlainYearMonth/compare/compare-calendar': [FAIL],
'built-ins/Temporal/PlainYearMonth/compare/compare-reference-day': [FAIL],
'built-ins/Temporal/PlainYearMonth/compare/year-zero': [FAIL],
'built-ins/Temporal/PlainYearMonth/prototype/add/argument-duration-object': [FAIL],
'built-ins/Temporal/PlainYearMonth/prototype/add/argument-lower-units': [FAIL],
'built-ins/Temporal/PlainYearMonth/prototype/add/argument-object': [FAIL],
......@@ -1516,12 +1488,6 @@
'built-ins/Temporal/PlainYearMonth/prototype/add/limits': [FAIL],
'built-ins/Temporal/PlainYearMonth/prototype/add/month-length': [FAIL],
'built-ins/Temporal/PlainYearMonth/prototype/add/options-invalid': [FAIL],
'built-ins/Temporal/PlainYearMonth/prototype/equals/argument-cast': [FAIL],
'built-ins/Temporal/PlainYearMonth/prototype/equals/basic': [FAIL],
'built-ins/Temporal/PlainYearMonth/prototype/equals/compare-calendar': [FAIL],
'built-ins/Temporal/PlainYearMonth/prototype/equals/compare-reference-day': [FAIL],
'built-ins/Temporal/PlainYearMonth/prototype/equals/use-internal-slots': [FAIL],
'built-ins/Temporal/PlainYearMonth/prototype/equals/year-zero': [FAIL],
'built-ins/Temporal/PlainYearMonth/prototype/since/argument-casting': [FAIL],
'built-ins/Temporal/PlainYearMonth/prototype/since/largestunit-auto': [FAIL],
'built-ins/Temporal/PlainYearMonth/prototype/since/largestunit-months': [FAIL],
......@@ -1795,9 +1761,7 @@
'built-ins/Temporal/PlainDateTime/prototype/withPlainDate/argument-propertybag-calendar-number': [FAIL],
'built-ins/Temporal/PlainMonthDay/calendar-number': [FAIL],
'built-ins/Temporal/PlainMonthDay/from/argument-propertybag-calendar-number': [FAIL],
'built-ins/Temporal/PlainMonthDay/prototype/equals/argument-number': [FAIL],
'built-ins/Temporal/PlainMonthDay/prototype/equals/argument-propertybag-calendar-number': [FAIL],
'built-ins/Temporal/PlainMonthDay/prototype/equals/argument-propertybag-calendar-wrong-type': [FAIL],
'built-ins/Temporal/PlainTime/prototype/since/argument-number': [FAIL],
'built-ins/Temporal/PlainTime/prototype/since/argument-wrong-type': [FAIL],
'built-ins/Temporal/PlainTime/prototype/since/plaintime-propertybag-no-time-units': [FAIL],
......@@ -1808,14 +1772,9 @@
'built-ins/Temporal/PlainTime/prototype/until/argument-wrong-type': [FAIL],
'built-ins/Temporal/PlainTime/prototype/until/plaintime-propertybag-no-time-units': [FAIL],
'built-ins/Temporal/PlainYearMonth/calendar-number': [FAIL],
'built-ins/Temporal/PlainYearMonth/compare/argument-number': [FAIL],
'built-ins/Temporal/PlainYearMonth/compare/argument-propertybag-calendar-number': [FAIL],
'built-ins/Temporal/PlainYearMonth/compare/argument-propertybag-calendar-wrong-type': [FAIL],
'built-ins/Temporal/PlainYearMonth/compare/argument-wrong-type': [FAIL],
'built-ins/Temporal/PlainYearMonth/from/argument-propertybag-calendar-number': [FAIL],
'built-ins/Temporal/PlainYearMonth/prototype/equals/argument-number': [FAIL],
'built-ins/Temporal/PlainYearMonth/prototype/equals/argument-propertybag-calendar-number': [FAIL],
'built-ins/Temporal/PlainYearMonth/prototype/equals/argument-propertybag-calendar-wrong-type': [FAIL],
'built-ins/Temporal/PlainYearMonth/prototype/since/argument-number': [FAIL],
'built-ins/Temporal/PlainYearMonth/prototype/since/argument-propertybag-calendar-number': [FAIL],
'built-ins/Temporal/PlainYearMonth/prototype/since/argument-propertybag-calendar-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