mirror of
https://github.com/Samsung/escargot.git
synced 2026-06-22 10:01:50 +00:00
Implement Temporal.PlainDateTime.{ equals, round }
Signed-off-by: Seonghyun Kim <sh8281.kim@samsung.com>
This commit is contained in:
parent
fa3432f1d6
commit
5e5eb5d631
7 changed files with 154 additions and 110 deletions
|
|
@ -734,6 +734,18 @@ static Value builtinTemporalPlainDateTimeUntil(ExecutionState& state, Value this
|
|||
return new TemporalDurationObject(state, plainDateTime->differenceTemporalPlainDateTime(state, TemporalPlainDateTimeObject::DifferenceTemporalPlainDateTime::Until, argv[0], argc > 1 ? argv[1] : Value()));
|
||||
}
|
||||
|
||||
static Value builtinTemporalPlainDateTimeRound(ExecutionState& state, Value thisValue, size_t argc, Value* argv, Optional<Object*> newTarget)
|
||||
{
|
||||
RESOLVE_THIS_BINDING_TO_PLAINDATETIME2(plainDateTime, round);
|
||||
return plainDateTime->round(state, argv[0]);
|
||||
}
|
||||
|
||||
static Value builtinTemporalPlainDateTimeEquals(ExecutionState& state, Value thisValue, size_t argc, Value* argv, Optional<Object*> newTarget)
|
||||
{
|
||||
RESOLVE_THIS_BINDING_TO_PLAINDATETIME(plainDateTime, Equals);
|
||||
return Value(plainDateTime->equals(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.
|
||||
|
|
@ -1305,7 +1317,8 @@ void GlobalObject::installTemporal(ExecutionState& state)
|
|||
m_temporalPlainDateTimePrototype->directDefineOwnProperty(state, ObjectPropertyName(strings->lazySubtract()), ObjectPropertyDescriptor(new NativeFunctionObject(state, NativeFunctionInfo(strings->lazySubtract(), builtinTemporalPlainDateTimeSubtract, 1, NativeFunctionInfo::Strict)), (ObjectPropertyDescriptor::PresentAttribute)(ObjectPropertyDescriptor::WritablePresent | ObjectPropertyDescriptor::ConfigurablePresent)));
|
||||
m_temporalPlainDateTimePrototype->directDefineOwnProperty(state, ObjectPropertyName(strings->lazyUntil()), ObjectPropertyDescriptor(new NativeFunctionObject(state, NativeFunctionInfo(strings->lazyUntil(), builtinTemporalPlainDateTimeUntil, 1, NativeFunctionInfo::Strict)), (ObjectPropertyDescriptor::PresentAttribute)(ObjectPropertyDescriptor::WritablePresent | ObjectPropertyDescriptor::ConfigurablePresent)));
|
||||
m_temporalPlainDateTimePrototype->directDefineOwnProperty(state, ObjectPropertyName(strings->lazySince()), ObjectPropertyDescriptor(new NativeFunctionObject(state, NativeFunctionInfo(strings->lazySince(), builtinTemporalPlainDateTimeSince, 1, NativeFunctionInfo::Strict)), (ObjectPropertyDescriptor::PresentAttribute)(ObjectPropertyDescriptor::WritablePresent | ObjectPropertyDescriptor::ConfigurablePresent)));
|
||||
|
||||
m_temporalPlainDateTimePrototype->directDefineOwnProperty(state, ObjectPropertyName(strings->round), ObjectPropertyDescriptor(new NativeFunctionObject(state, NativeFunctionInfo(strings->round, builtinTemporalPlainDateTimeRound, 1, NativeFunctionInfo::Strict)), (ObjectPropertyDescriptor::PresentAttribute)(ObjectPropertyDescriptor::WritablePresent | ObjectPropertyDescriptor::ConfigurablePresent)));
|
||||
m_temporalPlainDateTimePrototype->directDefineOwnProperty(state, ObjectPropertyName(strings->lazyEquals()), ObjectPropertyDescriptor(new NativeFunctionObject(state, NativeFunctionInfo(strings->lazyEquals(), builtinTemporalPlainDateTimeEquals, 1, NativeFunctionInfo::Strict)), (ObjectPropertyDescriptor::PresentAttribute)(ObjectPropertyDescriptor::WritablePresent | ObjectPropertyDescriptor::ConfigurablePresent)));
|
||||
|
||||
{
|
||||
AtomicString name(state.context(), "get calendarId");
|
||||
|
|
|
|||
|
|
@ -2855,6 +2855,44 @@ ISO8601::InternalDuration Temporal::differenceISODateTime(ExecutionState& state,
|
|||
return ISO8601::InternalDuration(dateDifference, timeDuration);
|
||||
}
|
||||
|
||||
static void incrementDay(ISO8601::Duration& duration)
|
||||
{
|
||||
double year = duration.years();
|
||||
double month = duration.months();
|
||||
double day = duration.days();
|
||||
|
||||
double daysInMonth = ISO8601::daysInMonth(year, month);
|
||||
if (day < daysInMonth) {
|
||||
duration.setDays(day + 1);
|
||||
return;
|
||||
}
|
||||
|
||||
duration.setDays(1);
|
||||
if (month < 12) {
|
||||
duration.setMonths(month + 1);
|
||||
return;
|
||||
}
|
||||
|
||||
duration.setMonths(1);
|
||||
duration.setYears(year + 1);
|
||||
}
|
||||
|
||||
ISO8601::PlainDateTime Temporal::roundISODateTime(ExecutionState& state, ISO8601::PlainDateTime isoDateTime, unsigned increment, ISO8601::DateTimeUnit sunit, ISO8601::RoundingMode roundingMode)
|
||||
{
|
||||
auto roundedResult = TemporalPlainTimeObject::roundTime(state, isoDateTime.plainTime(), increment, sunit, roundingMode);
|
||||
auto plainTime = TemporalPlainTimeObject::toPlainTime(state, roundedResult);
|
||||
double extraDays = roundedResult.days();
|
||||
roundedResult.setYears(isoDateTime.plainDate().year());
|
||||
roundedResult.setMonths(isoDateTime.plainDate().month());
|
||||
roundedResult.setDays(isoDateTime.plainDate().day());
|
||||
if (extraDays) {
|
||||
ASSERT(extraDays == 1);
|
||||
incrementDay(roundedResult);
|
||||
}
|
||||
auto plainDate = TemporalPlainDateObject::toPlainDate(state, roundedResult);
|
||||
return ISO8601::PlainDateTime(plainDate, plainTime);
|
||||
}
|
||||
|
||||
} // namespace Escargot
|
||||
|
||||
#endif
|
||||
|
|
|
|||
|
|
@ -407,6 +407,9 @@ public:
|
|||
|
||||
// https://tc39.es/proposal-temporal/#sec-temporal-differenceisodatetime
|
||||
static ISO8601::InternalDuration differenceISODateTime(ExecutionState& state, ISO8601::PlainDateTime isoDateTime1, ISO8601::PlainDateTime isoDateTime2, Calendar calendar, ISO8601::DateTimeUnit largestUnit);
|
||||
|
||||
// https://tc39.es/proposal-temporal/#sec-temporal-roundisodatetime
|
||||
static ISO8601::PlainDateTime roundISODateTime(ExecutionState& state, ISO8601::PlainDateTime isoDateTime, unsigned increment, ISO8601::DateTimeUnit sunit, ISO8601::RoundingMode roundingMode);
|
||||
};
|
||||
|
||||
} // namespace Escargot
|
||||
|
|
|
|||
|
|
@ -119,28 +119,6 @@ TemporalPlainDateTimeObject::TemporalPlainDateTimeObject(ExecutionState& state,
|
|||
nullptr);
|
||||
}
|
||||
|
||||
static void incrementDay(ISO8601::Duration& duration)
|
||||
{
|
||||
double year = duration.years();
|
||||
double month = duration.months();
|
||||
double day = duration.days();
|
||||
|
||||
double daysInMonth = ISO8601::daysInMonth(year, month);
|
||||
if (day < daysInMonth) {
|
||||
duration.setDays(day + 1);
|
||||
return;
|
||||
}
|
||||
|
||||
duration.setDays(1);
|
||||
if (month < 12) {
|
||||
duration.setMonths(month + 1);
|
||||
return;
|
||||
}
|
||||
|
||||
duration.setMonths(1);
|
||||
duration.setYears(year + 1);
|
||||
}
|
||||
|
||||
String* TemporalPlainDateTimeObject::toString(ExecutionState& state, Value options)
|
||||
{
|
||||
// Let resolvedOptions be ? GetOptionsObject(options).
|
||||
|
|
@ -163,23 +141,13 @@ String* TemporalPlainDateTimeObject::toString(ExecutionState& state, Value optio
|
|||
// Let precision be ToSecondsStringPrecisionRecord(smallestUnit, digits).
|
||||
auto precision = Temporal::toSecondsStringPrecisionRecord(state, toDateTimeUnit(smallestUnit), digits);
|
||||
// Let result be RoundISODateTime(plainDateTime.[[ISODateTime]], precision.[[Increment]], precision.[[Unit]], roundingMode).
|
||||
auto result = Temporal::roundISODateTime(state, ISO8601::PlainDateTime(computeISODate(state), plainTime()), precision.increment, precision.unit, roundingMode);
|
||||
// If ISODateTimeWithinLimits(result) is false, throw a RangeError exception.
|
||||
auto roundedResult = TemporalPlainTimeObject::roundTime(state, m_plainDateTime->plainTime(), precision.increment, precision.unit, roundingMode);
|
||||
auto plainTime = TemporalPlainTimeObject::toPlainTime(state, roundedResult);
|
||||
double extraDays = roundedResult.days();
|
||||
roundedResult.setYears(m_plainDateTime->plainDate().year());
|
||||
roundedResult.setMonths(m_plainDateTime->plainDate().month());
|
||||
roundedResult.setDays(m_plainDateTime->plainDate().day());
|
||||
if (extraDays) {
|
||||
ASSERT(extraDays == 1);
|
||||
incrementDay(roundedResult);
|
||||
}
|
||||
auto plainDate = TemporalPlainDateObject::toPlainDate(state, roundedResult);
|
||||
// Return ISODateTimeToString(result, plainDateTime.[[Calendar]], precision.[[Precision]], showCalendar).
|
||||
StringBuilder sb;
|
||||
sb.appendString(TemporalPlainDateObject::temporalDateToString(plainDate, m_calendarID, showCalendar));
|
||||
sb.appendString(TemporalPlainDateObject::temporalDateToString(result.plainDate(), m_calendarID, showCalendar));
|
||||
sb.appendChar('T');
|
||||
sb.appendString(TemporalPlainTimeObject::temporalTimeToString(plainTime, precision.precision));
|
||||
sb.appendString(TemporalPlainTimeObject::temporalTimeToString(result.plainTime(), precision.precision));
|
||||
return sb.finalize();
|
||||
}
|
||||
|
||||
|
|
@ -327,6 +295,86 @@ ISO8601::Duration TemporalPlainDateTimeObject::differenceTemporalPlainDateTime(E
|
|||
return result;
|
||||
}
|
||||
|
||||
TemporalPlainDateTimeObject* TemporalPlainDateTimeObject::round(ExecutionState& state, Value roundToInput)
|
||||
{
|
||||
Optional<Object*> roundTo;
|
||||
|
||||
// If roundTo is undefined, then
|
||||
if (roundToInput.isUndefined()) {
|
||||
// Throw a TypeError exception.
|
||||
ErrorObject::throwBuiltinError(state, ErrorCode::TypeError, "Invalid roundTo value");
|
||||
} else if (roundToInput.isString()) {
|
||||
// If roundTo is a String, then
|
||||
// Let paramString be roundTo.
|
||||
// Set roundTo to OrdinaryObjectCreate(null).
|
||||
// Perform ! CreateDataPropertyOrThrow(roundTo, "smallestUnit", paramString).
|
||||
roundTo = new Object(state, Object::PrototypeIsNull);
|
||||
roundTo->directDefineOwnProperty(state, state.context()->staticStrings().lazySmallestUnit(),
|
||||
ObjectPropertyDescriptor(roundToInput, ObjectPropertyDescriptor::AllPresent));
|
||||
} else {
|
||||
// Else,
|
||||
// Set roundTo to ? GetOptionsObject(roundTo).
|
||||
roundTo = Intl::getOptionsObject(state, roundToInput);
|
||||
}
|
||||
|
||||
// NOTE: The following steps read options and perform independent validation in alphabetical order (GetRoundingIncrementOption reads "roundingIncrement" and GetRoundingModeOption reads "roundingMode").
|
||||
// Let roundingIncrement be ? GetRoundingIncrementOption(roundTo).
|
||||
auto roundingIncrement = Temporal::getRoundingIncrementOption(state, roundTo);
|
||||
// Let roundingMode be ? GetRoundingModeOption(roundTo, half-expand).
|
||||
auto roundingMode = Temporal::getRoundingModeOption(state, roundTo, state.context()->staticStrings().lazyHalfExpand().string());
|
||||
// Let smallestUnit be ? GetTemporalUnitValuedOption(roundTo, "smallestUnit", required).
|
||||
auto smallestUnit = Temporal::getTemporalUnitValuedOption(state, roundTo,
|
||||
state.context()->staticStrings().lazySmallestUnit().string(), Value(Value::EmptyValue));
|
||||
// Perform ? ValidateTemporalUnitValue(smallestUnit, time, « day »).
|
||||
TemporalUnit extraValues[1] = { TemporalUnit::Day };
|
||||
Temporal::validateTemporalUnitValue(state, smallestUnit, ISO8601::DateTimeUnitCategory::Time, extraValues, 1);
|
||||
|
||||
Optional<unsigned> maximum;
|
||||
bool inclusive;
|
||||
// If smallestUnit is day, then
|
||||
if (smallestUnit == TemporalUnit::Day) {
|
||||
// Let maximum be 1.
|
||||
maximum = 1;
|
||||
// Let inclusive be true.
|
||||
inclusive = true;
|
||||
} else {
|
||||
// Else,
|
||||
// Let maximum be MaximumTemporalDurationRoundingIncrement(smallestUnit).
|
||||
maximum = Temporal::maximumTemporalDurationRoundingIncrement(toDateTimeUnit(smallestUnit.value()));
|
||||
// Assert: maximum is not unset.
|
||||
// Let inclusive be false.
|
||||
inclusive = false;
|
||||
}
|
||||
|
||||
// Perform ? ValidateTemporalRoundingIncrement(roundingIncrement, maximum, inclusive).
|
||||
Temporal::validateTemporalRoundingIncrement(state, roundingIncrement, maximum.value(), inclusive);
|
||||
// If smallestUnit is nanosecond and roundingIncrement = 1, then
|
||||
if (smallestUnit == TemporalUnit::Nanosecond && roundingIncrement == 1) {
|
||||
// Return ! CreateTemporalDateTime(plainDateTime.[[ISODateTime]], plainDateTime.[[Calendar]]).
|
||||
return new TemporalPlainDateTimeObject(state, state.context()->globalObject()->temporalPlainDateTimePrototype(), computeISODate(state), plainTime(), calendarID());
|
||||
}
|
||||
|
||||
// Let result be RoundISODateTime(plainDateTime.[[ISODateTime]], roundingIncrement, smallestUnit, roundingMode).
|
||||
auto result = Temporal::roundISODateTime(state, ISO8601::PlainDateTime(computeISODate(state), plainTime()), roundingIncrement, toDateTimeUnit(smallestUnit).value(), roundingMode);
|
||||
// Return ? CreateTemporalDateTime(result, plainDateTime.[[Calendar]]).
|
||||
return new TemporalPlainDateTimeObject(state, state.context()->globalObject()->temporalPlainDateTimePrototype(), result.plainDate(), result.plainTime(), calendarID());
|
||||
}
|
||||
|
||||
bool TemporalPlainDateTimeObject::equals(ExecutionState& state, Value otherInput)
|
||||
{
|
||||
// Set other to ? ToTemporalDateTime(other).
|
||||
auto other = Temporal::toTemporalDateTime(state, otherInput, Value());
|
||||
|
||||
// If CompareISODateTime(plainDateTime.[[ISODateTime]], other.[[ISODateTime]]) ≠ 0, return false.
|
||||
auto isoDateTime1 = computeISODate(state);
|
||||
auto isoDateTime2 = other->computeISODate(state);
|
||||
if (isoDateTime1 != isoDateTime2 || plainTime() != other->plainTime()) {
|
||||
return false;
|
||||
}
|
||||
// Return CalendarEquals(plainDateTime.[[Calendar]], other.[[Calendar]]).
|
||||
return calendarID() == other->calendarID();
|
||||
}
|
||||
|
||||
} // namespace Escargot
|
||||
|
||||
#endif
|
||||
|
|
|
|||
|
|
@ -137,6 +137,12 @@ public:
|
|||
};
|
||||
ISO8601::Duration differenceTemporalPlainDateTime(ExecutionState& state, DifferenceTemporalPlainDateTime operation, Value other, Value options);
|
||||
|
||||
// https://tc39.es/proposal-temporal/#sec-temporal.plaindatetime.prototype.round
|
||||
TemporalPlainDateTimeObject* round(ExecutionState& state, Value roundToInput);
|
||||
|
||||
// https://tc39.es/proposal-temporal/#sec-temporal.plaindatetime.prototype.equals
|
||||
bool equals(ExecutionState& state, Value otherInput);
|
||||
|
||||
private:
|
||||
ISO8601::PlainDateTime* m_plainDateTime;
|
||||
Calendar m_calendarID;
|
||||
|
|
|
|||
|
|
@ -408,6 +408,11 @@ public:
|
|||
&& m_microsecond == other.m_microsecond && m_nanosecond == other.m_nanosecond;
|
||||
}
|
||||
|
||||
bool operator!=(const PlainTime& other) const
|
||||
{
|
||||
return !operator==(other);
|
||||
}
|
||||
|
||||
private:
|
||||
uint8_t m_hour{ 0 };
|
||||
uint8_t m_minute{ 0 };
|
||||
|
|
@ -465,6 +470,11 @@ public:
|
|||
&& m_day == other.m_day;
|
||||
}
|
||||
|
||||
bool operator!=(const PlainDate& other) const
|
||||
{
|
||||
return !operator==(other);
|
||||
}
|
||||
|
||||
// https://tc39.es/proposal-temporal/#sec-temporal-compareisodate
|
||||
int compare(const PlainDate& other) const
|
||||
{
|
||||
|
|
|
|||
|
|
@ -575,85 +575,14 @@
|
|||
<test id="built-ins/Temporal/PlainDateTime/compare/prop-desc"><reason>TODO</reason></test>
|
||||
<test id="built-ins/Temporal/PlainDateTime/compare/use-internal-slots"><reason>TODO</reason></test>
|
||||
<test id="built-ins/Temporal/PlainDateTime/compare/year-zero"><reason>TODO</reason></test>
|
||||
<test id="built-ins/Temporal/PlainDateTime/datetime-math"><reason>TODO</reason></test>
|
||||
<test id="built-ins/Temporal/PlainDateTime/from/argument-zoneddatetime-balance-negative-time-units"><reason>TODO</reason></test>
|
||||
<test id="built-ins/Temporal/PlainDateTime/from/argument-zoneddatetime-negative-epochnanoseconds"><reason>TODO</reason></test>
|
||||
<test id="built-ins/Temporal/PlainDateTime/from/calendar-temporal-object"><reason>TODO</reason></test>
|
||||
<test id="built-ins/Temporal/PlainDateTime/from/order-of-operations"><reason>TODO</reason></test>
|
||||
<test id="built-ins/Temporal/PlainDateTime/from/overflow-invalid-string"><reason>TODO</reason></test>
|
||||
<test id="built-ins/Temporal/PlainDateTime/prototype/equals/argument-plaindate"><reason>TODO</reason></test>
|
||||
<test id="built-ins/Temporal/PlainDateTime/prototype/equals/argument-propertybag-calendar-case-insensitive"><reason>TODO</reason></test>
|
||||
<test id="built-ins/Temporal/PlainDateTime/prototype/equals/argument-propertybag-calendar-invalid-iso-string"><reason>TODO</reason></test>
|
||||
<test id="built-ins/Temporal/PlainDateTime/prototype/equals/argument-propertybag-calendar-iso-string"><reason>TODO</reason></test>
|
||||
<test id="built-ins/Temporal/PlainDateTime/prototype/equals/argument-propertybag-calendar-leap-second"><reason>TODO</reason></test>
|
||||
<test id="built-ins/Temporal/PlainDateTime/prototype/equals/argument-propertybag-calendar-string"><reason>TODO</reason></test>
|
||||
<test id="built-ins/Temporal/PlainDateTime/prototype/equals/argument-propertybag-calendar-year-zero"><reason>TODO</reason></test>
|
||||
<test id="built-ins/Temporal/PlainDateTime/prototype/equals/argument-string-calendar-annotation"><reason>TODO</reason></test>
|
||||
<test id="built-ins/Temporal/PlainDateTime/prototype/equals/argument-string-calendar-annotation-invalid-key"><reason>TODO</reason></test>
|
||||
<test id="built-ins/Temporal/PlainDateTime/prototype/equals/argument-string-critical-unknown-annotation"><reason>TODO</reason></test>
|
||||
<test id="built-ins/Temporal/PlainDateTime/prototype/equals/argument-string-date-with-utc-offset"><reason>TODO</reason></test>
|
||||
<test id="built-ins/Temporal/PlainDateTime/prototype/equals/argument-string-limits"><reason>TODO</reason></test>
|
||||
<test id="built-ins/Temporal/PlainDateTime/prototype/equals/argument-string-minus-sign"><reason>TODO</reason></test>
|
||||
<test id="built-ins/Temporal/PlainDateTime/prototype/equals/argument-string-multiple-calendar"><reason>TODO</reason></test>
|
||||
<test id="built-ins/Temporal/PlainDateTime/prototype/equals/argument-string-multiple-time-zone"><reason>TODO</reason></test>
|
||||
<test id="built-ins/Temporal/PlainDateTime/prototype/equals/argument-string-time-separators"><reason>TODO</reason></test>
|
||||
<test id="built-ins/Temporal/PlainDateTime/prototype/equals/argument-string-time-zone-annotation"><reason>TODO</reason></test>
|
||||
<test id="built-ins/Temporal/PlainDateTime/prototype/equals/argument-string-unknown-annotation"><reason>TODO</reason></test>
|
||||
<test id="built-ins/Temporal/PlainDateTime/prototype/equals/argument-string-with-utc-designator"><reason>TODO</reason></test>
|
||||
<test id="built-ins/Temporal/PlainDateTime/prototype/equals/argument-wrong-type"><reason>TODO</reason></test>
|
||||
<test id="built-ins/Temporal/PlainDateTime/prototype/equals/argument-zoneddatetime-balance-negative-time-units"><reason>TODO</reason></test>
|
||||
<test id="built-ins/Temporal/PlainDateTime/prototype/equals/argument-zoneddatetime-negative-epochnanoseconds"><reason>TODO</reason></test>
|
||||
<test id="built-ins/Temporal/PlainDateTime/prototype/equals/basic"><reason>TODO</reason></test>
|
||||
<test id="built-ins/Temporal/PlainDateTime/prototype/equals/branding"><reason>TODO</reason></test>
|
||||
<test id="built-ins/Temporal/PlainDateTime/prototype/equals/builtin"><reason>TODO</reason></test>
|
||||
<test id="built-ins/Temporal/PlainDateTime/prototype/equals/calendar-temporal-object"><reason>TODO</reason></test>
|
||||
<test id="built-ins/Temporal/PlainDateTime/prototype/equals/cast"><reason>TODO</reason></test>
|
||||
<test id="built-ins/Temporal/PlainDateTime/prototype/equals/infinity-throws-rangeerror"><reason>TODO</reason></test>
|
||||
<test id="built-ins/Temporal/PlainDateTime/prototype/equals/leap-second"><reason>TODO</reason></test>
|
||||
<test id="built-ins/Temporal/PlainDateTime/prototype/equals/length"><reason>TODO</reason></test>
|
||||
<test id="built-ins/Temporal/PlainDateTime/prototype/equals/name"><reason>TODO</reason></test>
|
||||
<test id="built-ins/Temporal/PlainDateTime/prototype/equals/not-a-constructor"><reason>TODO</reason></test>
|
||||
<test id="built-ins/Temporal/PlainDateTime/prototype/equals/prop-desc"><reason>TODO</reason></test>
|
||||
<test id="built-ins/Temporal/PlainDateTime/prototype/equals/year-zero"><reason>TODO</reason></test>
|
||||
<test id="built-ins/Temporal/PlainDateTime/prototype/round/balance"><reason>TODO</reason></test>
|
||||
<test id="built-ins/Temporal/PlainDateTime/prototype/round/branding"><reason>TODO</reason></test>
|
||||
<test id="built-ins/Temporal/PlainDateTime/prototype/round/builtin"><reason>TODO</reason></test>
|
||||
<test id="built-ins/Temporal/PlainDateTime/prototype/round/length"><reason>TODO</reason></test>
|
||||
<test id="built-ins/Temporal/PlainDateTime/prototype/round/limits"><reason>TODO</reason></test>
|
||||
<test id="built-ins/Temporal/PlainDateTime/prototype/round/name"><reason>TODO</reason></test>
|
||||
<test id="built-ins/Temporal/PlainDateTime/prototype/round/not-a-constructor"><reason>TODO</reason></test>
|
||||
<test id="built-ins/Temporal/PlainDateTime/prototype/round/prop-desc"><reason>TODO</reason></test>
|
||||
<test id="built-ins/Temporal/PlainDateTime/prototype/round/rounding-direction"><reason>TODO</reason></test>
|
||||
<test id="built-ins/Temporal/PlainDateTime/prototype/round/roundingincrement-divides"><reason>TODO</reason></test>
|
||||
<test id="built-ins/Temporal/PlainDateTime/prototype/round/roundingincrement-does-not-divide"><reason>TODO</reason></test>
|
||||
<test id="built-ins/Temporal/PlainDateTime/prototype/round/roundingincrement-nan"><reason>TODO</reason></test>
|
||||
<test id="built-ins/Temporal/PlainDateTime/prototype/round/roundingincrement-non-integer"><reason>TODO</reason></test>
|
||||
<test id="built-ins/Temporal/PlainDateTime/prototype/round/roundingincrement-one-day"><reason>TODO</reason></test>
|
||||
<test id="built-ins/Temporal/PlainDateTime/prototype/round/roundingincrement-out-of-range"><reason>TODO</reason></test>
|
||||
<test id="built-ins/Temporal/PlainDateTime/prototype/round/roundingincrement-undefined"><reason>TODO</reason></test>
|
||||
<test id="built-ins/Temporal/PlainDateTime/prototype/round/roundingincrement-wrong-type"><reason>TODO</reason></test>
|
||||
<test id="built-ins/Temporal/PlainDateTime/prototype/round/roundingmode-basic"><reason>TODO</reason></test>
|
||||
<test id="built-ins/Temporal/PlainDateTime/prototype/round/roundingmode-ceil"><reason>TODO</reason></test>
|
||||
<test id="built-ins/Temporal/PlainDateTime/prototype/round/roundingmode-expand"><reason>TODO</reason></test>
|
||||
<test id="built-ins/Temporal/PlainDateTime/prototype/round/roundingmode-floor"><reason>TODO</reason></test>
|
||||
<test id="built-ins/Temporal/PlainDateTime/prototype/round/roundingmode-halfCeil"><reason>TODO</reason></test>
|
||||
<test id="built-ins/Temporal/PlainDateTime/prototype/round/roundingmode-halfEven"><reason>TODO</reason></test>
|
||||
<test id="built-ins/Temporal/PlainDateTime/prototype/round/roundingmode-halfExpand"><reason>TODO</reason></test>
|
||||
<test id="built-ins/Temporal/PlainDateTime/prototype/round/roundingmode-halfFloor"><reason>TODO</reason></test>
|
||||
<test id="built-ins/Temporal/PlainDateTime/prototype/round/roundingmode-halfTrunc"><reason>TODO</reason></test>
|
||||
<test id="built-ins/Temporal/PlainDateTime/prototype/round/roundingmode-halfexpand-is-default"><reason>TODO</reason></test>
|
||||
<test id="built-ins/Temporal/PlainDateTime/prototype/round/roundingmode-invalid-string"><reason>TODO</reason></test>
|
||||
<test id="built-ins/Temporal/PlainDateTime/prototype/round/roundingmode-trunc"><reason>TODO</reason></test>
|
||||
<test id="built-ins/Temporal/PlainDateTime/prototype/round/roundingmode-undefined"><reason>TODO</reason></test>
|
||||
<test id="built-ins/Temporal/PlainDateTime/prototype/round/roundingmode-wrong-type"><reason>TODO</reason></test>
|
||||
<test id="built-ins/Temporal/PlainDateTime/prototype/round/roundto-invalid-string"><reason>TODO</reason></test>
|
||||
<test id="built-ins/Temporal/PlainDateTime/prototype/round/smallestunit-invalid-string"><reason>TODO</reason></test>
|
||||
<test id="built-ins/Temporal/PlainDateTime/prototype/round/smallestunit-plurals-accepted"><reason>TODO</reason></test>
|
||||
<test id="built-ins/Temporal/PlainDateTime/prototype/round/smallestunit-string-shorthand"><reason>TODO</reason></test>
|
||||
<test id="built-ins/Temporal/PlainDateTime/prototype/round/smallestunit-wrong-type"><reason>TODO</reason></test>
|
||||
<test id="built-ins/Temporal/PlainDateTime/prototype/round/subclassing-ignored"><reason>TODO</reason></test>
|
||||
<test id="built-ins/Temporal/PlainDateTime/prototype/round/throws-argument-object"><reason>TODO</reason></test>
|
||||
<test id="built-ins/Temporal/PlainDateTime/prototype/round/throws-argument-object-insufficient-data"><reason>TODO</reason></test>
|
||||
<test id="built-ins/Temporal/PlainDateTime/prototype/since/argument-plaindate"><reason>TODO</reason></test>
|
||||
<test id="built-ins/Temporal/PlainDateTime/prototype/since/argument-zoneddatetime-balance-negative-time-units"><reason>TODO</reason></test>
|
||||
<test id="built-ins/Temporal/PlainDateTime/prototype/since/argument-zoneddatetime-negative-epochnanoseconds"><reason>TODO</reason></test>
|
||||
|
|
@ -1654,9 +1583,6 @@
|
|||
<test id="intl402/Temporal/PlainDateTime/compare/infinity-throws-rangeerror"><reason>TODO</reason></test>
|
||||
<test id="intl402/Temporal/PlainDateTime/from/calendar-not-supporting-eras"><reason>TODO</reason></test>
|
||||
<test id="intl402/Temporal/PlainDateTime/from/canonicalize-era-codes"><reason>TODO</reason></test>
|
||||
<test id="intl402/Temporal/PlainDateTime/prototype/equals/calendar-checked"><reason>TODO</reason></test>
|
||||
<test id="intl402/Temporal/PlainDateTime/prototype/equals/canonicalize-calendar"><reason>TODO</reason></test>
|
||||
<test id="intl402/Temporal/PlainDateTime/prototype/equals/infinity-throws-rangeerror"><reason>TODO</reason></test>
|
||||
<test id="intl402/Temporal/PlainDateTime/prototype/toLocaleString/calendar-mismatch"><reason>TODO</reason></test>
|
||||
<test id="intl402/Temporal/PlainDateTime/prototype/toLocaleString/dateStyle"><reason>TODO</reason></test>
|
||||
<test id="intl402/Temporal/PlainDateTime/prototype/toLocaleString/dateStyle-timeStyle-undefined"><reason>TODO</reason></test>
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue