mirror of
https://github.com/Samsung/escargot.git
synced 2026-06-22 10:01:50 +00:00
Implement Temporal.PlainDateTime.{ with * }
Signed-off-by: Seonghyun Kim <sh8281.kim@samsung.com>
This commit is contained in:
parent
f9ca29d5cb
commit
cb01142c4c
8 changed files with 165 additions and 97 deletions
|
|
@ -692,6 +692,24 @@ static Value builtinTemporalPlainDateTimeMonthCode(ExecutionState& state, Value
|
|||
return plainDateTime->monthCode(state);
|
||||
}
|
||||
|
||||
static Value builtinTemporalPlainDateTimeWith(ExecutionState& state, Value thisValue, size_t argc, Value* argv, Optional<Object*> newTarget)
|
||||
{
|
||||
RESOLVE_THIS_BINDING_TO_PLAINDATETIME2(plainDateTime, with);
|
||||
return plainDateTime->with(state, argv[0], argc > 1 ? argv[1] : Value());
|
||||
}
|
||||
|
||||
static Value builtinTemporalPlainDateTimeWithPlainTime(ExecutionState& state, Value thisValue, size_t argc, Value* argv, Optional<Object*> newTarget)
|
||||
{
|
||||
RESOLVE_THIS_BINDING_TO_PLAINDATETIME(plainDateTime, WithPlainTime);
|
||||
return plainDateTime->withPlainTime(state, argc > 0 ? argv[0] : Value());
|
||||
}
|
||||
|
||||
static Value builtinTemporalPlainDateTimeWithCalendar(ExecutionState& state, Value thisValue, size_t argc, Value* argv, Optional<Object*> newTarget)
|
||||
{
|
||||
RESOLVE_THIS_BINDING_TO_PLAINDATETIME(plainDateTime, Calendar);
|
||||
return plainDateTime->withCalendar(state, argv[0]);
|
||||
}
|
||||
|
||||
static Value builtinTemporalPlainYearMonthConstructor(ExecutionState& state, Value thisValue, size_t argc, Value* argv, Optional<Object*> newTarget)
|
||||
{
|
||||
// If NewTarget is undefined, throw a TypeError exception.
|
||||
|
|
@ -1256,6 +1274,9 @@ void GlobalObject::installTemporal(ExecutionState& state)
|
|||
m_temporalPlainDateTimePrototype->directDefineOwnProperty(state, ObjectPropertyName(strings->toJSON), ObjectPropertyDescriptor(new NativeFunctionObject(state, NativeFunctionInfo(strings->toJSON, builtinTemporalPlainDateTimeToJSON, 0, NativeFunctionInfo::Strict)), (ObjectPropertyDescriptor::PresentAttribute)(ObjectPropertyDescriptor::WritablePresent | ObjectPropertyDescriptor::ConfigurablePresent)));
|
||||
m_temporalPlainDateTimePrototype->directDefineOwnProperty(state, ObjectPropertyName(strings->toLocaleString), ObjectPropertyDescriptor(new NativeFunctionObject(state, NativeFunctionInfo(strings->toLocaleString, builtinTemporalPlainDateTimeToLocaleString, 0, NativeFunctionInfo::Strict)), (ObjectPropertyDescriptor::PresentAttribute)(ObjectPropertyDescriptor::WritablePresent | ObjectPropertyDescriptor::ConfigurablePresent)));
|
||||
m_temporalPlainDateTimePrototype->directDefineOwnProperty(state, ObjectPropertyName(strings->valueOf), ObjectPropertyDescriptor(new NativeFunctionObject(state, NativeFunctionInfo(strings->valueOf, builtinTemporalAnyInstanceValueOf, 0, NativeFunctionInfo::Strict)), (ObjectPropertyDescriptor::PresentAttribute)(ObjectPropertyDescriptor::WritablePresent | ObjectPropertyDescriptor::ConfigurablePresent)));
|
||||
m_temporalPlainDateTimePrototype->directDefineOwnProperty(state, ObjectPropertyName(strings->with), ObjectPropertyDescriptor(new NativeFunctionObject(state, NativeFunctionInfo(strings->with, builtinTemporalPlainDateTimeWith, 1, NativeFunctionInfo::Strict)), (ObjectPropertyDescriptor::PresentAttribute)(ObjectPropertyDescriptor::WritablePresent | ObjectPropertyDescriptor::ConfigurablePresent)));
|
||||
m_temporalPlainDateTimePrototype->directDefineOwnProperty(state, ObjectPropertyName(strings->lazyWithPlainTime()), ObjectPropertyDescriptor(new NativeFunctionObject(state, NativeFunctionInfo(strings->lazyWithPlainTime(), builtinTemporalPlainDateTimeWithPlainTime, 0, NativeFunctionInfo::Strict)), (ObjectPropertyDescriptor::PresentAttribute)(ObjectPropertyDescriptor::WritablePresent | ObjectPropertyDescriptor::ConfigurablePresent)));
|
||||
m_temporalPlainDateTimePrototype->directDefineOwnProperty(state, ObjectPropertyName(strings->lazyWithCalendar()), ObjectPropertyDescriptor(new NativeFunctionObject(state, NativeFunctionInfo(strings->lazyWithCalendar(), builtinTemporalPlainDateTimeWithCalendar, 1, NativeFunctionInfo::Strict)), (ObjectPropertyDescriptor::PresentAttribute)(ObjectPropertyDescriptor::WritablePresent | ObjectPropertyDescriptor::ConfigurablePresent)));
|
||||
|
||||
{
|
||||
AtomicString name(state.context(), "get calendarId");
|
||||
|
|
|
|||
|
|
@ -1015,6 +1015,7 @@ namespace Escargot {
|
|||
F(Until, "until") \
|
||||
F(WeekOfYear, "weekOfYear") \
|
||||
F(WithCalendar, "withCalendar") \
|
||||
F(WithPlainTime, "withPlainTime") \
|
||||
F(YearOfWeek, "yearOfWeek") \
|
||||
F(ZonedDateTimeISO, "zonedDateTimeISO")
|
||||
#else
|
||||
|
|
|
|||
|
|
@ -816,6 +816,18 @@ TemporalPlainMonthDayObject* Temporal::toTemporalMonthDay(ExecutionState& state,
|
|||
plainDate, mayID.value());
|
||||
}
|
||||
|
||||
ISO8601::PlainTime Temporal::toTimeRecordOrMidnight(ExecutionState& state, Value item)
|
||||
{
|
||||
// If item is undefined, return MidnightTimeRecord().
|
||||
if (item.isUndefined()) {
|
||||
return ISO8601::PlainTime();
|
||||
}
|
||||
// Let plainTime be ? ToTemporalTime(item).
|
||||
auto plainTime = toTemporalTime(state, item, Value());
|
||||
// Return plainTime.[[Time]].
|
||||
return plainTime->plainTime();
|
||||
}
|
||||
|
||||
Optional<unsigned> Temporal::getTemporalFractionalSecondDigitsOption(ExecutionState& state, Optional<Object*> resolvedOptions)
|
||||
{
|
||||
constexpr auto msg = "The value you gave for GetTemporalFractionalSecondDigitsOption is invalid";
|
||||
|
|
|
|||
|
|
@ -259,6 +259,9 @@ public:
|
|||
// https://tc39.es/proposal-temporal/#sec-temporal-totemporalmonthday
|
||||
static TemporalPlainMonthDayObject* toTemporalMonthDay(ExecutionState& state, Value item, Value options);
|
||||
|
||||
// https://tc39.es/proposal-temporal/#sec-temporal-totimerecordormidnight
|
||||
static ISO8601::PlainTime toTimeRecordOrMidnight(ExecutionState& state, Value item);
|
||||
|
||||
// https://tc39.es/proposal-temporal/#sec-temporal-gettemporalfractionalseconddigitsoption
|
||||
// NullOption means AUTO
|
||||
static Optional<unsigned> getTemporalFractionalSecondDigitsOption(ExecutionState& state, Optional<Object*> resolvedOptions);
|
||||
|
|
|
|||
|
|
@ -183,6 +183,86 @@ String* TemporalPlainDateTimeObject::toString(ExecutionState& state, Value optio
|
|||
return sb.finalize();
|
||||
}
|
||||
|
||||
ISO8601::PlainDate TemporalPlainDateTimeObject::computeISODate(ExecutionState& state)
|
||||
{
|
||||
if (!m_calendarID.isISO8601()) {
|
||||
return Temporal::computeISODate(state, m_icuCalendar);
|
||||
}
|
||||
return plainDate();
|
||||
}
|
||||
|
||||
TemporalPlainDateTimeObject* TemporalPlainDateTimeObject::with(ExecutionState& state, Value temporalDateTimeLike, Value options)
|
||||
{
|
||||
// If ? IsPartialTemporalObject(temporalDateTimeLike) is false, throw a TypeError exception.
|
||||
if (!Temporal::isPartialTemporalObject(state, temporalDateTimeLike)) {
|
||||
ErrorObject::throwBuiltinError(state, ErrorCode::TypeError, "Invalid temporalDateTimeLike");
|
||||
}
|
||||
// Let calendar be plainDateTime.[[Calendar]].
|
||||
auto calendar = m_calendarID;
|
||||
// Let fields be ISODateToFields(calendar, plainDateTime.[[ISODateTime]].[[ISODate]], date).
|
||||
CalendarFieldsRecord fields;
|
||||
auto isoDate = computeISODate(state);
|
||||
fields.year = isoDate.year();
|
||||
fields.month = isoDate.month();
|
||||
MonthCode mc;
|
||||
mc.monthNumber = isoDate.month();
|
||||
fields.monthCode = mc;
|
||||
// Set fields.[[Hour]] to plainDateTime.[[ISODateTime]].[[Time]].[[Hour]].
|
||||
// Set fields.[[Minute]] to plainDateTime.[[ISODateTime]].[[Time]].[[Minute]].
|
||||
// Set fields.[[Second]] to plainDateTime.[[ISODateTime]].[[Time]].[[Second]].
|
||||
// Set fields.[[Millisecond]] to plainDateTime.[[ISODateTime]].[[Time]].[[Millisecond]].
|
||||
// Set fields.[[Microsecond]] to plainDateTime.[[ISODateTime]].[[Time]].[[Microsecond]].
|
||||
// Set fields.[[Nanosecond]] to plainDateTime.[[ISODateTime]].[[Time]].[[Nanosecond]].
|
||||
fields.day = isoDate.day();
|
||||
fields.hour = plainTime().hour();
|
||||
fields.minute = plainTime().minute();
|
||||
fields.second = plainTime().second();
|
||||
fields.millisecond = plainTime().millisecond();
|
||||
fields.microsecond = plainTime().microsecond();
|
||||
fields.nanosecond = plainTime().nanosecond();
|
||||
// Let partialDateTime be ? PrepareCalendarFields(calendar, temporalDateTimeLike, « year, month, month-code, day », « hour, minute, second, millisecond, microsecond, nanosecond », partial).
|
||||
CalendarField ds[4] = { CalendarField::Year, CalendarField::Month, CalendarField::MonthCode, CalendarField::Day };
|
||||
CalendarField fs[6] = { CalendarField::Hour, CalendarField::Minute, CalendarField::Second,
|
||||
CalendarField::Millisecond, CalendarField::Microsecond, CalendarField::Nanosecond };
|
||||
auto partialDateTime = Temporal::prepareCalendarFields(state, calendar, temporalDateTimeLike.asObject(), ds, 4, fs, 6, nullptr, SIZE_MAX);
|
||||
// Set fields to CalendarMergeFields(calendar, fields, partialDateTime).
|
||||
fields = Temporal::calendarMergeFields(state, calendar, fields, partialDateTime);
|
||||
// Let resolvedOptions be ? GetOptionsObject(options).
|
||||
auto resolvedOptions = Intl::getOptionsObject(state, options);
|
||||
// Let overflow be ? GetTemporalOverflowOption(resolvedOptions).
|
||||
auto overflow = Temporal::getTemporalOverflowOption(state, resolvedOptions);
|
||||
// Let result be ? InterpretTemporalDateTimeFields(calendar, fields, overflow).
|
||||
// Return ? CreateTemporalDateTime(result, calendar).
|
||||
auto result = Temporal::interpretTemporalDateTimeFields(state, calendar, fields, overflow);
|
||||
return new TemporalPlainDateTimeObject(state, state.context()->globalObject()->temporalPlainDateTimePrototype(),
|
||||
result.plainDate(), result.plainTime(), calendar);
|
||||
}
|
||||
|
||||
TemporalPlainDateTimeObject* TemporalPlainDateTimeObject::withPlainTime(ExecutionState& state, Value plainTimeLike)
|
||||
{
|
||||
// Let time be ? ToTimeRecordOrMidnight(plainTimeLike).
|
||||
auto time = Temporal::toTimeRecordOrMidnight(state, plainTimeLike);
|
||||
// Let isoDateTime be CombineISODateAndTimeRecord(plainDateTime.[[ISODateTime]].[[ISODate]], time).
|
||||
auto isoDate = computeISODate(state);
|
||||
// Return ? CreateTemporalDateTime(isoDateTime, plainDateTime.[[Calendar]]).
|
||||
return new TemporalPlainDateTimeObject(state, state.context()->globalObject()->temporalPlainDateTimePrototype(),
|
||||
isoDate, time, calendarID());
|
||||
}
|
||||
|
||||
TemporalPlainDateTimeObject* TemporalPlainDateTimeObject::withCalendar(ExecutionState& state, Value calendarLike)
|
||||
{
|
||||
// Let calendar be ? ToTemporalCalendarIdentifier(calendarLike).
|
||||
auto calendar = Temporal::toTemporalCalendarIdentifier(state, calendarLike);
|
||||
auto icuCalendar = calendar.createICUCalendar(state);
|
||||
|
||||
UErrorCode status = U_ZERO_ERROR;
|
||||
ucal_setMillis(icuCalendar, ucal_getMillis(m_icuCalendar, &status), &status);
|
||||
|
||||
// Return ! CreateTemporalDateTime(plainDateTime.[[ISODateTime]], calendar).
|
||||
return new TemporalPlainDateTimeObject(state, state.context()->globalObject()->temporalPlainDateTimePrototype(),
|
||||
icuCalendar, plainTime().microsecond() * 1000 + plainTime().nanosecond(), calendar);
|
||||
}
|
||||
|
||||
} // namespace Escargot
|
||||
|
||||
#endif
|
||||
|
|
|
|||
|
|
@ -103,6 +103,17 @@ public:
|
|||
return TemporalPlainDateGetter::monthCode(state, plainDate(), calendarID(), m_icuCalendar);
|
||||
}
|
||||
|
||||
ISO8601::PlainDate computeISODate(ExecutionState& state);
|
||||
|
||||
// https://tc39.es/proposal-temporal/#sec-temporal.plaindatetime.prototype.with
|
||||
TemporalPlainDateTimeObject* with(ExecutionState& state, Value temporalDateTimeLike, Value options);
|
||||
|
||||
// https://tc39.es/proposal-temporal/#sec-temporal.plaindatetime.prototype.withplaintime
|
||||
TemporalPlainDateTimeObject* withPlainTime(ExecutionState& state, Value plainTimeLike);
|
||||
|
||||
// https://tc39.es/proposal-temporal/#sec-temporal.plaindatetime.prototype.withcalendar
|
||||
TemporalPlainDateTimeObject* withCalendar(ExecutionState& state, Value calendarLike);
|
||||
|
||||
private:
|
||||
ISO8601::PlainDateTime* m_plainDateTime;
|
||||
Calendar m_calendarID;
|
||||
|
|
|
|||
|
|
@ -1220,31 +1220,6 @@ static Optional<std::tuple<PlainTime, Optional<TimeZoneRecord>>> parseTime(Parse
|
|||
return Optional<std::tuple<PlainTime, Optional<TimeZoneRecord>>>(std::make_tuple(std::move(plainTime.value()), NullOption));
|
||||
}
|
||||
|
||||
Optional<std::tuple<PlainTime, Optional<TimeZoneRecord>>> parseTime(String* input)
|
||||
{
|
||||
DateTimeParseOption option;
|
||||
ParserString buffer(input);
|
||||
if (!buffer.atEnd() && toupper(*buffer) == 'T') {
|
||||
buffer.advance();
|
||||
}
|
||||
auto result = parseTime(buffer, option);
|
||||
|
||||
Optional<CalendarID> calendarOptional;
|
||||
if (!buffer.atEnd() && canBeRFC9557Annotation(buffer)) {
|
||||
auto calendars = parseCalendar(buffer);
|
||||
if (!calendars)
|
||||
return NullOption;
|
||||
if (calendars.value().size() > 0)
|
||||
calendarOptional = std::move(calendars.value()[0]);
|
||||
}
|
||||
|
||||
if (buffer.atEnd()) {
|
||||
return result;
|
||||
}
|
||||
|
||||
return NullOption;
|
||||
}
|
||||
|
||||
static Optional<PlainDate> parseDate(ParserString& buffer, bool parseYear = true, bool parseMonth = true, bool parseDay = true)
|
||||
{
|
||||
// https://tc39.es/proposal-temporal/#prod-Date
|
||||
|
|
@ -1394,6 +1369,43 @@ static Optional<PlainDate> parseDate(ParserString& buffer, bool parseYear = true
|
|||
return PlainDate(year, month, day);
|
||||
}
|
||||
|
||||
Optional<std::tuple<PlainTime, Optional<TimeZoneRecord>>> parseTime(String* input)
|
||||
{
|
||||
DateTimeParseOption option;
|
||||
ParserString buffer(input);
|
||||
bool seenT = false;
|
||||
if (!buffer.atEnd() && toupper(*buffer) == 'T') {
|
||||
buffer.advance();
|
||||
seenT = true;
|
||||
}
|
||||
auto result = parseTime(buffer, option);
|
||||
|
||||
// for ambiguous strings like "2021-12", "12-14"...
|
||||
if (!seenT) {
|
||||
ParserString buffer1(input);
|
||||
ParserString buffer2(input);
|
||||
ParserString buffer3(input);
|
||||
if (parseDate(buffer1) || parseDate(buffer2, false, true, true) || parseDate(buffer3, true, true, false)) {
|
||||
return NullOption;
|
||||
}
|
||||
}
|
||||
|
||||
Optional<CalendarID> calendarOptional;
|
||||
if (!buffer.atEnd() && canBeRFC9557Annotation(buffer)) {
|
||||
auto calendars = parseCalendar(buffer);
|
||||
if (!calendars)
|
||||
return NullOption;
|
||||
if (calendars.value().size() > 0)
|
||||
calendarOptional = std::move(calendars.value()[0]);
|
||||
}
|
||||
|
||||
if (buffer.atEnd()) {
|
||||
return result;
|
||||
}
|
||||
|
||||
return NullOption;
|
||||
}
|
||||
|
||||
static Optional<std::tuple<PlainDate, Optional<PlainTime>, Optional<TimeZoneRecord>>> parseDateTime(ParserString& buffer, DateTimeParseOption option)
|
||||
{
|
||||
// https://tc39.es/proposal-temporal/#prod-DateTime
|
||||
|
|
|
|||
|
|
@ -921,93 +921,23 @@
|
|||
<test id="built-ins/Temporal/PlainDateTime/prototype/until/weeks-months-mutually-exclusive"><reason>TODO</reason></test>
|
||||
<test id="built-ins/Temporal/PlainDateTime/prototype/until/wrapping-at-end-of-month"><reason>TODO</reason></test>
|
||||
<test id="built-ins/Temporal/PlainDateTime/prototype/until/year-zero"><reason>TODO</reason></test>
|
||||
<test id="built-ins/Temporal/PlainDateTime/prototype/with/argument-object-insufficient-data"><reason>TODO</reason></test>
|
||||
<test id="built-ins/Temporal/PlainDateTime/prototype/with/basic"><reason>TODO</reason></test>
|
||||
<test id="built-ins/Temporal/PlainDateTime/prototype/with/branding"><reason>TODO</reason></test>
|
||||
<test id="built-ins/Temporal/PlainDateTime/prototype/with/builtin"><reason>TODO</reason></test>
|
||||
<test id="built-ins/Temporal/PlainDateTime/prototype/with/calendar-temporal-object-throws"><reason>TODO</reason></test>
|
||||
<test id="built-ins/Temporal/PlainDateTime/prototype/with/copy-properties-not-undefined"><reason>TODO</reason></test>
|
||||
<test id="built-ins/Temporal/PlainDateTime/prototype/with/infinity-throws-rangeerror"><reason>TODO</reason></test>
|
||||
<test id="built-ins/Temporal/PlainDateTime/prototype/with/length"><reason>TODO</reason></test>
|
||||
<test id="built-ins/Temporal/PlainDateTime/prototype/with/month-and-monthcode-must-agree"><reason>TODO</reason></test>
|
||||
<test id="built-ins/Temporal/PlainDateTime/prototype/with/multiple-unrecognized-properties-ignored"><reason>TODO</reason></test>
|
||||
<test id="built-ins/Temporal/PlainDateTime/prototype/with/name"><reason>TODO</reason></test>
|
||||
<test id="built-ins/Temporal/PlainDateTime/prototype/with/not-a-constructor"><reason>TODO</reason></test>
|
||||
<test id="built-ins/Temporal/PlainDateTime/prototype/with/options-empty"><reason>TODO</reason></test>
|
||||
<test id="built-ins/Temporal/PlainDateTime/prototype/with/options-undefined"><reason>TODO</reason></test>
|
||||
<test id="built-ins/Temporal/PlainDateTime/prototype/with/options-wrong-type"><reason>TODO</reason></test>
|
||||
<test id="built-ins/Temporal/PlainDateTime/prototype/with/order-of-operations"><reason>TODO</reason></test>
|
||||
<test id="built-ins/Temporal/PlainDateTime/prototype/with/overflow-invalid-string"><reason>TODO</reason></test>
|
||||
<test id="built-ins/Temporal/PlainDateTime/prototype/with/overflow-undefined"><reason>TODO</reason></test>
|
||||
<test id="built-ins/Temporal/PlainDateTime/prototype/with/overflow-wrong-type"><reason>TODO</reason></test>
|
||||
<test id="built-ins/Temporal/PlainDateTime/prototype/with/prop-desc"><reason>TODO</reason></test>
|
||||
<test id="built-ins/Temporal/PlainDateTime/prototype/with/subclassing-ignored"><reason>TODO</reason></test>
|
||||
<test id="built-ins/Temporal/PlainDateTime/prototype/with/throws-if-combined-date-time-outside-valid-iso-range"><reason>TODO</reason></test>
|
||||
<test id="built-ins/Temporal/PlainDateTime/prototype/withCalendar/basic"><reason>TODO</reason></test>
|
||||
<test id="built-ins/Temporal/PlainDateTime/prototype/withCalendar/branding"><reason>TODO</reason></test>
|
||||
<test id="built-ins/Temporal/PlainDateTime/prototype/withCalendar/builtin"><reason>TODO</reason></test>
|
||||
<test id="built-ins/Temporal/PlainDateTime/prototype/withCalendar/calendar-case-insensitive"><reason>TODO</reason></test>
|
||||
<test id="built-ins/Temporal/PlainDateTime/prototype/withCalendar/calendar-invalid-iso-string"><reason>TODO</reason></test>
|
||||
<test id="built-ins/Temporal/PlainDateTime/prototype/withCalendar/calendar-iso-string"><reason>TODO</reason></test>
|
||||
<test id="built-ins/Temporal/PlainDateTime/prototype/withCalendar/calendar-string"><reason>TODO</reason></test>
|
||||
<test id="built-ins/Temporal/PlainDateTime/prototype/withCalendar/calendar-string-leap-second"><reason>TODO</reason></test>
|
||||
<test id="built-ins/Temporal/PlainDateTime/prototype/withCalendar/calendar-temporal-object"><reason>TODO</reason></test>
|
||||
<test id="built-ins/Temporal/PlainDateTime/prototype/withCalendar/length"><reason>TODO</reason></test>
|
||||
<test id="built-ins/Temporal/PlainDateTime/prototype/withCalendar/name"><reason>TODO</reason></test>
|
||||
<test id="built-ins/Temporal/PlainDateTime/prototype/withCalendar/not-a-constructor"><reason>TODO</reason></test>
|
||||
<test id="built-ins/Temporal/PlainDateTime/prototype/withCalendar/prop-desc"><reason>TODO</reason></test>
|
||||
<test id="built-ins/Temporal/PlainDateTime/prototype/withCalendar/subclassing-ignored"><reason>TODO</reason></test>
|
||||
<test id="built-ins/Temporal/PlainDateTime/prototype/withPlainTime/argument-object-insufficient-data"><reason>TODO</reason></test>
|
||||
<test id="built-ins/Temporal/PlainDateTime/prototype/withPlainTime/argument-string-calendar-annotation"><reason>TODO</reason></test>
|
||||
<test id="built-ins/Temporal/PlainDateTime/prototype/withPlainTime/argument-string-calendar-annotation-invalid-key"><reason>TODO</reason></test>
|
||||
<test id="built-ins/Temporal/PlainDateTime/prototype/withPlainTime/argument-string-critical-unknown-annotation"><reason>TODO</reason></test>
|
||||
<test id="built-ins/Temporal/PlainDateTime/prototype/withPlainTime/argument-string-date-with-utc-offset"><reason>TODO</reason></test>
|
||||
<test id="built-ins/Temporal/PlainDateTime/prototype/withPlainTime/argument-string-minus-sign"><reason>TODO</reason></test>
|
||||
<test id="built-ins/Temporal/PlainDateTime/prototype/withPlainTime/argument-string-multiple-calendar"><reason>TODO</reason></test>
|
||||
<test id="built-ins/Temporal/PlainDateTime/prototype/withPlainTime/argument-string-multiple-time-zone"><reason>TODO</reason></test>
|
||||
<test id="built-ins/Temporal/PlainDateTime/prototype/withPlainTime/argument-string-no-implicit-midnight"><reason>TODO</reason></test>
|
||||
<test id="built-ins/Temporal/PlainDateTime/prototype/withPlainTime/argument-string-time-designator-required-for-disambiguation"><reason>TODO</reason></test>
|
||||
<test id="built-ins/Temporal/PlainDateTime/prototype/withPlainTime/argument-string-time-separators"><reason>TODO</reason></test>
|
||||
<test id="built-ins/Temporal/PlainDateTime/prototype/withPlainTime/argument-string-time-zone-annotation"><reason>TODO</reason></test>
|
||||
<test id="built-ins/Temporal/PlainDateTime/prototype/withPlainTime/argument-string-unknown-annotation"><reason>TODO</reason></test>
|
||||
<test id="built-ins/Temporal/PlainDateTime/prototype/withPlainTime/argument-string-with-time-designator"><reason>TODO</reason></test>
|
||||
<test id="built-ins/Temporal/PlainDateTime/prototype/withPlainTime/argument-string-with-utc-designator"><reason>TODO</reason></test>
|
||||
<test id="built-ins/Temporal/PlainDateTime/prototype/withPlainTime/argument-string-without-time-designator"><reason>TODO</reason></test>
|
||||
<test id="built-ins/Temporal/PlainDateTime/prototype/withPlainTime/argument-time"><reason>TODO</reason></test>
|
||||
<test id="built-ins/Temporal/PlainDateTime/prototype/withPlainTime/argument-wrong-type"><reason>TODO</reason></test>
|
||||
<test id="built-ins/Temporal/PlainDateTime/prototype/withPlainTime/argument-zoneddatetime-balance-negative-time-units"><reason>TODO</reason></test>
|
||||
<test id="built-ins/Temporal/PlainDateTime/prototype/withPlainTime/argument-zoneddatetime-negative-epochnanoseconds"><reason>TODO</reason></test>
|
||||
<test id="built-ins/Temporal/PlainDateTime/prototype/withPlainTime/branding"><reason>TODO</reason></test>
|
||||
<test id="built-ins/Temporal/PlainDateTime/prototype/withPlainTime/builtin"><reason>TODO</reason></test>
|
||||
<test id="built-ins/Temporal/PlainDateTime/prototype/withPlainTime/leap-second"><reason>TODO</reason></test>
|
||||
<test id="built-ins/Temporal/PlainDateTime/prototype/withPlainTime/length"><reason>TODO</reason></test>
|
||||
<test id="built-ins/Temporal/PlainDateTime/prototype/withPlainTime/name"><reason>TODO</reason></test>
|
||||
<test id="built-ins/Temporal/PlainDateTime/prototype/withPlainTime/no-argument-default-to-midnight"><reason>TODO</reason></test>
|
||||
<test id="built-ins/Temporal/PlainDateTime/prototype/withPlainTime/not-a-constructor"><reason>TODO</reason></test>
|
||||
<test id="built-ins/Temporal/PlainDateTime/prototype/withPlainTime/plaintime-propertybag-no-time-units"><reason>TODO</reason></test>
|
||||
<test id="built-ins/Temporal/PlainDateTime/prototype/withPlainTime/prop-desc"><reason>TODO</reason></test>
|
||||
<test id="built-ins/Temporal/PlainDateTime/prototype/withPlainTime/subclassing-ignored"><reason>TODO</reason></test>
|
||||
<test id="built-ins/Temporal/PlainDateTime/prototype/withPlainTime/throws-if-combined-date-time-outside-valid-iso-range"><reason>TODO</reason></test>
|
||||
<test id="built-ins/Temporal/PlainDateTime/prototype/withPlainTime/time-undefined"><reason>TODO</reason></test>
|
||||
<test id="built-ins/Temporal/PlainDateTime/prototype/withPlainTime/year-zero"><reason>TODO</reason></test>
|
||||
<test id="built-ins/Temporal/PlainMonthDay/from/calendar-temporal-object"><reason>TODO</reason></test>
|
||||
<test id="built-ins/Temporal/PlainMonthDay/prototype/equals/calendar-temporal-object"><reason>TODO</reason></test>
|
||||
<test id="built-ins/Temporal/PlainMonthDay/prototype/with/monthdaylike-invalid"><reason>TODO</reason></test>
|
||||
<test id="built-ins/Temporal/PlainTime/compare/argument-string-time-designator-required-for-disambiguation"><reason>TODO</reason></test>
|
||||
<test id="built-ins/Temporal/PlainTime/compare/argument-zoneddatetime-negative-epochnanoseconds"><reason>TODO</reason></test>
|
||||
<test id="built-ins/Temporal/PlainTime/from/argument-plaindatetime"><reason>TODO</reason></test>
|
||||
<test id="built-ins/Temporal/PlainTime/from/argument-string-time-designator-required-for-disambiguation"><reason>TODO</reason></test>
|
||||
<test id="built-ins/Temporal/PlainTime/from/argument-zoneddatetime-balance-negative-time-units"><reason>TODO</reason></test>
|
||||
<test id="built-ins/Temporal/PlainTime/from/argument-zoneddatetime-negative-epochnanoseconds"><reason>TODO</reason></test>
|
||||
<test id="built-ins/Temporal/PlainTime/from/order-of-operations"><reason>TODO</reason></test>
|
||||
<test id="built-ins/Temporal/PlainTime/prototype/equals/argument-string-time-designator-required-for-disambiguation"><reason>TODO</reason></test>
|
||||
<test id="built-ins/Temporal/PlainTime/prototype/equals/argument-zoneddatetime-balance-negative-time-units"><reason>TODO</reason></test>
|
||||
<test id="built-ins/Temporal/PlainTime/prototype/equals/argument-zoneddatetime-negative-epochnanoseconds"><reason>TODO</reason></test>
|
||||
<test id="built-ins/Temporal/PlainTime/prototype/since/argument-string-time-designator-required-for-disambiguation"><reason>TODO</reason></test>
|
||||
<test id="built-ins/Temporal/PlainTime/prototype/since/argument-zoneddatetime-balance-negative-time-units"><reason>TODO</reason></test>
|
||||
<test id="built-ins/Temporal/PlainTime/prototype/since/argument-zoneddatetime-negative-epochnanoseconds"><reason>TODO</reason></test>
|
||||
<test id="built-ins/Temporal/PlainTime/prototype/toString/smallestunit-plurals-accepted"><reason>TODO</reason></test>
|
||||
<test id="built-ins/Temporal/PlainTime/prototype/until/argument-string-time-designator-required-for-disambiguation"><reason>TODO</reason></test>
|
||||
<test id="built-ins/Temporal/PlainTime/prototype/until/argument-zoneddatetime-balance-negative-time-units"><reason>TODO</reason></test>
|
||||
<test id="built-ins/Temporal/PlainTime/prototype/until/argument-zoneddatetime-negative-epochnanoseconds"><reason>TODO</reason></test>
|
||||
<test id="built-ins/Temporal/PlainTime/prototype/with/plaintimelike-invalid"><reason>TODO</reason></test>
|
||||
|
|
@ -1968,8 +1898,6 @@
|
|||
<test id="intl402/Temporal/PlainDateTime/prototype/until/different-calendars-throws"><reason>TODO</reason></test>
|
||||
<test id="intl402/Temporal/PlainDateTime/prototype/until/infinity-throws-rangeerror"><reason>TODO</reason></test>
|
||||
<test id="intl402/Temporal/PlainDateTime/prototype/with/non-iso-calendar-fields"><reason>TODO</reason></test>
|
||||
<test id="intl402/Temporal/PlainDateTime/prototype/withCalendar/argument-string"><reason>TODO</reason></test>
|
||||
<test id="intl402/Temporal/PlainDateTime/prototype/withCalendar/canonicalize-calendar"><reason>TODO</reason></test>
|
||||
<test id="intl402/Temporal/PlainMonthDay/from/calendar-not-supporting-eras"><reason>TODO</reason></test>
|
||||
<test id="intl402/Temporal/PlainMonthDay/from/canonicalize-calendar"><reason>TODO</reason></test>
|
||||
<test id="intl402/Temporal/PlainMonthDay/from/constrain-to-leap-day"><reason>TODO</reason></test>
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue