| balance-negative-result.js |
---
esid: sec-temporal.duration.prototype.total
description: A negative duration result is balanced correctly by the modulo operation in NanosecondsToDays
info: |
sec-temporal-nanosecondstodays step 6:
6. If Type(_relativeTo_) is not Object or _relativeTo_ does not have an [[InitializedTemporalZonedDateTime]] internal slot, then
a. Return the new Record { ..., [[Nanoseconds]]: abs(_nanoseconds_) modulo _dayLengthNs_ × _sign_, ... }.
sec-temporal-balanceduration step 4:
4. If _largestUnit_ is one of *"year"*, *"month"*, *"week"*, or *"day"*, then
a. Let _result_ be ? NanosecondsToDays(_nanoseconds_, _relativeTo_).
sec-temporal.duration.prototype.round step 9:
9. Let _balanceResult_ be ? BalanceDuration(_unbalanceResult_.[[Days]], _unbalanceResult_.[[Hours]], _unbalanceResult_.[[Minutes]], _unbalanceResult_.[[Seconds]], _unbalanceResult_.[[Milliseconds]], _unbalanceResult_.[[Microseconds]], _unbalanceResult_.[[Nanoseconds]], _unit_, _intermediate_).
features: [Temporal]
--- |
1425 |
- |
| balance-subseconds.js |
---
esid: sec-temporal.duration.prototype.total
description: Balancing from subsecond units to seconds happens correctly
features: [Temporal]
--- |
670 |
- |
| balances-days-up-to-both-years-and-months.js |
---
esid: sec-temporal.duration.prototype.total
description: Balances days up to both years and months.
features: [Temporal]
--- |
780 |
- |
| blank-duration.js |
---
esid: sec-temporal.duration.prototype.total
description: Behaviour with blank duration
features: [Temporal]
--- |
1377 |
- |
| branding.js |
---
esid: sec-temporal.duration.prototype.total
description: Throw a TypeError if the receiver is invalid
features: [Symbol, Temporal]
--- |
1190 |
- |
| browser.js |
|
0 |
- |
| builtin.js |
---
esid: sec-temporal.duration.prototype.total
description: >
Tests that Temporal.Duration.prototype.total
meets the requirements for built-in objects defined by the
introduction of chapter 17 of the ECMAScript Language Specification.
info: |
Built-in functions that are not constructors do not have a "prototype" property unless
otherwise specified in the description of a particular function.
Unless specified otherwise, a built-in object that is callable as a function is a built-in
function object with the characteristics described in 10.3. Unless specified otherwise, the
[[Extensible]] internal slot of a built-in object initially has the value true.
Unless otherwise specified every built-in function and every built-in constructor has the
Function prototype object [...] as the value of its [[Prototype]] internal slot.
features: [Temporal]
--- |
1635 |
- |
| calendar-possibly-required.js |
---
esid: sec-temporal.duration.prototype.total
description: Calendar required when days = 0 but years/months/weeks non-zero
features: [Temporal]
--- |
1952 |
- |
| calendar-temporal-object.js |
---
esid: sec-temporal.duration.prototype.total
description: >
Fast path for converting other Temporal objects to calendar ID by reading
internal slots
info: |
sec-temporal.duration.prototype.total step 4:
4. Let _relativeTo_ be ? ToRelativeTemporalObject(_options_).
sec-temporal-torelativetemporalobject step 4.b:
b. Let _calendar_ be ? GetTemporalCalendarWithISODefault(_item_).
sec-temporal-gettemporalcalendarwithisodefault step 2:
2. Return ? ToTemporalCalendarWithISODefault(_calendar_).
sec-temporal-totemporalcalendarwithisodefault step 2:
3. Return ? ToTemporalCalendar(_temporalCalendarLike_).
sec-temporal-totemporalcalendar step 1.a:
a. If _temporalCalendarLike_ has an [[InitializedTemporalDate]], [[InitializedTemporalDateTime]], [[InitializedTemporalMonthDay]], [[InitializedTemporalYearMonth]], or [[InitializedTemporalZonedDateTime]] internal slot, then
i. Return _temporalCalendarLike_.[[Calendar]].
includes: [compareArray.js, temporalHelpers.js]
features: [Temporal]
--- |
1555 |
- |
| does-not-accept-non-string-primitives-for-relativeTo.js |
---
esid: sec-temporal.duration.prototype.total
description: Does not accept non-string primitives for relativeTo.
features: [Temporal]
--- |
614 |
- |
| incorrect-properties-ignored.js |
---
esid: sec-temporal.duration.prototype.total
description: Incorrectly-spelled properties are ignored in relativeTo
features: [Temporal]
--- |
605 |
- |
| length.js |
---
esid: sec-temporal.duration.prototype.total
description: Temporal.Duration.prototype.total.length is 1
info: |
Every built-in function object, including constructors, has a "length" property whose value is
an integer. Unless otherwise specified, this value is equal to the largest number of named
arguments shown in the subclause headings for the function description. Optional parameters
(which are indicated with brackets: [ ]) or rest parameters (which are shown using the form
«...name») are not included in the default argument count.
Unless otherwise specified, the "length" property of a built-in function object has the
attributes { [[Writable]]: false, [[Enumerable]]: false, [[Configurable]]: true }.
includes: [propertyHelper.js]
features: [Temporal]
--- |
1194 |
- |
| name.js |
---
esid: sec-temporal.duration.prototype.total
description: Temporal.Duration.prototype.total.name is "total".
info: |
Every built-in function object, including constructors, that is not identified as an anonymous
function has a "name" property whose value is a String. Unless otherwise specified, this value
is the name that is given to the function in this specification.
Unless otherwise specified, the "name" property of a built-in function object, if it exists,
has the attributes { [[Writable]]: false, [[Enumerable]]: false, [[Configurable]]: true }.
includes: [propertyHelper.js]
features: [Temporal]
--- |
1032 |
- |
| no-dst-day-length.js |
---
esid: sec-temporal.duration.prototype.total
description: Total day length is 24 hours when not affected by DST
features: [Temporal]
--- |
1458 |
- |
| no-precision-loss-for-small-units.js |
---
esid: sec-temporal.duration.prototype.total
description: Does not lose precision for seconds and smaller units.
features: [Temporal]
--- |
518 |
- |
| not-a-constructor.js |
---
esid: sec-temporal.duration.prototype.total
description: >
Temporal.Duration.prototype.total does not implement [[Construct]], is not new-able
info: |
Built-in function objects that are not identified as constructors do not implement the
[[Construct]] internal method unless otherwise specified in the description of a particular
function.
includes: [isConstructor.js]
features: [Reflect.construct, Temporal]
--- |
920 |
- |
| options-read-before-algorithmic-validation.js |
---
esid: sec-temporal.duration.prototype.total
description: >
All options properties are read and cast before any algorithmic validation
includes: [compareArray.js, temporalHelpers.js]
features: [Temporal]
--- |
1008 |
- |
| options-wrong-type.js |
---
esid: sec-temporal.duration.prototype.total
description: TypeError thrown when options argument is missing or a non-string primitive
features: [BigInt, Symbol, Temporal]
--- |
803 |
- |
| order-of-operations.js |
---
esid: sec-temporal.duration.prototype.total
description: Properties on objects passed to total() are accessed in the correct order
includes: [compareArray.js, temporalHelpers.js]
features: [Temporal]
--- |
5967 |
- |
| precision-exact-mathematical-values-1.js |
---
esid: sec-temporal.duration.prototype.total
description: >
RoundDuration computes on exact mathematical values.
features: [Temporal]
--- |
2886 |
- |
| precision-exact-mathematical-values-2.js |
---
esid: sec-temporal.duration.prototype.total
description: >
RoundDuration computes on exact mathematical values.
features: [Temporal]
--- |
2794 |
- |
| precision-exact-mathematical-values-5.js |
---
esid: sec-temporal.duration.prototype.total
description: BalanceTimeDuration computes on exact mathematical values.
features: [BigInt, Temporal]
--- |
3026 |
- |
| precision-exact-mathematical-values-6.js |
---
esid: sec-temporal.duration.prototype.total
description: >
DivideNormalizedTimeDuration computes on exact mathematical values.
info: |
Temporal.Duration.prototype.total ( totalOf )
...
20. Let roundRecord be ? RoundDuration(unbalanceResult.[[Years]],
unbalanceResult.[[Months]], unbalanceResult.[[Weeks]], days, norm, 1,
unit, "trunc", plainRelativeTo, calendarRec, zonedRelativeTo, timeZoneRec,
precalculatedPlainDateTime).
21. Return 𝔽(roundRecord.[[Total]]).
RoundDuration ( ... )
...
14. Else if unit is "hour", then
a. Let divisor be 3.6 × 10^12.
b. Set total to DivideNormalizedTimeDuration(norm, divisor).
...
DivideNormalizedTimeDuration ( d, divisor )
1. Assert: divisor ≠ 0.
2. Return d.[[TotalNanoseconds]] / divisor.
features: [Temporal]
--- |
3132 |
- |
| precision-exact-mathematical-values-7.js |
---
esid: sec-temporal.duration.prototype.total
description: >
DivideNormalizedTimeDuration computes on exact mathematical values.
info: |
Temporal.Duration.prototype.total ( totalOf )
...
20. Let roundRecord be ? RoundDuration(unbalanceResult.[[Years]],
unbalanceResult.[[Months]], unbalanceResult.[[Weeks]], days, norm, 1,
unit, "trunc", plainRelativeTo, calendarRec, zonedRelativeTo, timeZoneRec,
precalculatedPlainDateTime).
21. Return 𝔽(roundRecord.[[Total]]).
RoundDuration ( ... )
...
16. Else if unit is "second", then
a. Let divisor be 10^9.
b. Set total to DivideNormalizedTimeDuration(norm, divisor).
...
17. Else if unit is "millisecond", then
a. Let divisor be 10^6.
b. Set total to DivideNormalizedTimeDuration(norm, divisor).
...
18. Else if unit is "microsecond", then
a. Let divisor be 10^3.
b. Set total to DivideNormalizedTimeDuration(norm, divisor).
...
DivideNormalizedTimeDuration ( d, divisor )
1. Assert: divisor ≠ 0.
2. Return d.[[TotalNanoseconds]] / divisor.
features: [Temporal]
--- |
3117 |
- |
| prop-desc.js |
---
esid: sec-temporal.duration.prototype.total
description: The "total" property of Temporal.Duration.prototype
includes: [propertyHelper.js]
features: [Temporal]
--- |
673 |
- |
| relativeto-argument-propertybag-calendar-invalid-iso-string.js |
---
esid: sec-temporal.duration.prototype.total
description: Invalid ISO string as calendar in relativeTo option should throw RangeError
features: [Temporal]
--- |
857 |
- |
| relativeto-argument-string-calendar-invalid-iso-string.js |
---
esid: sec-temporal.duration.prototype.total
description: Invalid ISO string as calendar in relativeTo option should throw RangeError
features: [Temporal]
--- |
933 |
- |
| relativeto-calendar-units-depend-on-relative-date.js |
---
esid: sec-temporal.duration.prototype.total
description: Balances differently depending on relativeTo option
features: [Temporal]
--- |
1183 |
- |
| relativeto-date-limits.js |
---
esid: sec-temporal.duration.prototype.total
description: Maximum and minimum dates can be used as relativeTo parameter
features: [Temporal]
--- |
2446 |
- |
| relativeto-duration-out-of-range-added-to-relative-date.js |
---
esid: sec-temporal.duration.prototype.total
description: RangeError thrown when calendar part of duration added to relativeTo is out of range
features: [Temporal]
info: |
RoundDuration:
10.h. Let _isoResult_ be ! AddISODate(_plainRelativeTo_.[[ISOYear]]. _plainRelativeTo_.[[ISOMonth]], _plainRelativeTo_.[[ISODay]], 0, 0, 0, truncate(_fractionalDays_), *"constrain"*).
i. Let _wholeDaysLater_ be ? CreateTemporalDate(_isoResult_.[[Year]], _isoResult_.[[Month]], _isoResult_.[[Day]], _calendar_).
...
11.h. Let _isoResult_ be ! AddISODate(_plainRelativeTo_.[[ISOYear]]. _plainRelativeTo_.[[ISOMonth]], _plainRelativeTo_.[[ISODay]], 0, 0, 0, truncate(_fractionalDays_), *"constrain"*).
i. Let _wholeDaysLater_ be ? CreateTemporalDate(_isoResult_.[[Year]], _isoResult_.[[Month]], _isoResult_.[[Day]], _calendar_).
...
12.a. Let _isoResult_ be ! AddISODate(_plainRelativeTo_.[[ISOYear]]. _plainRelativeTo_.[[ISOMonth]], _plainRelativeTo_.[[ISODay]], 0, 0, 0, truncate(_fractionalDays_), *"constrain"*).
b. Let _wholeDaysLater_ be ? CreateTemporalDate(_isoResult_.[[Year]], _isoResult_.[[Month]], _isoResult_.[[Day]], _calendar_).
UnbalanceDateDurationRelative:
11. Let _yearsMonthsWeeksDuration_ be ! CreateTemporalDuration(_years_, _months_, _weeks_, 0, 0, 0, 0, 0, 0, 0).
12. Let _later_ be ? CalendarDateAdd(_calendaRec_, _plainRelativeTo_, _yearsMonthsWeeksDuration_).
13. Let _yearsMonthsWeeksInDays_ be DaysUntil(_plainRelativeTo_, _later_).
14. Return ? CreateDateDurationRecord(0, 0, 0, _days_ + _yearsMonthsWeeksInDays_).
--- |
3330 |
- |
| relativeto-fixed-length-units-ignore-relative-date.js |
---
esid: sec-temporal.duration.prototype.total
description: relativeTo option not required to round fixed-length units in durations without variable units.
features: [Temporal]
--- |
2270 |
- |
| relativeto-infinity-throws-rangeerror.js |
---
description: Throws if any value in the property bag is Infinity or -Infinity
esid: sec-temporal.duration.prototype.total
includes: [compareArray.js, temporalHelpers.js]
features: [Temporal]
--- |
1330 |
- |
| relativeto-leap-second.js |
---
esid: sec-temporal.duration.prototype.total
description: Leap second is constrained in both an ISO string and a property bag
features: [Temporal]
--- |
1409 |
- |
| relativeto-must-have-required-properties.js |
---
esid: sec-temporal.duration.prototype.total
description: relativeTo object must contain at least the required correctly-spelled properties
features: [Temporal]
--- |
694 |
- |
| relativeto-no-fractional-minutes-hours.js |
---
esid: sec-temporal.duration.prototype.total
description: Fractional minutes or hours in time string in relativeTo option should throw RangeError
features: [Temporal]
--- |
807 |
- |
| relativeto-number.js |
---
esid: sec-temporal.duration.prototype.total
description: A number cannot be used in place of a relativeTo
features: [Temporal]
--- |
714 |
- |
| relativeto-plaindate-add24hourdaystonormalizedtimeduration-out-of-range.js |
---
esid: sec-temporal.duration.compare
description: RangeError thrown if adding the duration to the relativeTo date would result in anout-of-range date-time
features: [Temporal]
--- |
647 |
- |
| relativeto-plaindatetime.js |
---
esid: sec-temporal.duration.prototype.total
description: >
relativeTo is a Temporal.PlainDateTime object.
info: |
Temporal.Duration.prototype.total ( totalOf )
...
7. Let relativeToRecord be ? GetTemporalRelativeToOption(totalOf).
...
GetTemporalRelativeToOption ( options )
1. Let value be ? Get(options, "relativeTo").
...
5. If value is an Object, then
...
c. If value has an [[InitializedTemporalDateTime]] internal slot, then
i. Let plainDate be ! CreateTemporalDate(value.[[ISODateTime]].[[ISODate]], value.[[Calendar]]).
ii. Return the Record { [[PlainRelativeTo]]: plainDate, [[ZonedRelativeTo]]: undefined }.
...
features: [Temporal]
--- |
1502 |
- |
| relativeto-propertybag-calendar-wrong-type.js |
---
esid: sec-temporal.duration.prototype.total
description: >
Appropriate error thrown when relativeTo.calendar cannot be converted to a
calendar object or string
features: [BigInt, Symbol, Temporal]
--- |
1307 |
- |
| relativeto-propertybag-invalid-offset-string.js |
---
esid: sec-temporal.duration.prototype.total
description: relativeTo property bag with offset property is rejected if offset is in the wrong format
features: [Temporal]
--- |
1132 |
- |
| relativeto-propertybag-no-time-units.js |
---
esid: sec-temporal.duration.prototype.total
description: Missing time units in relativeTo property bag default to 0
features: [Temporal]
--- |
633 |
- |
| relativeto-propertybag-optional-properties.js |
---
esid: sec-temporal.duration.prototype.total
description: >
A property bag missing optional properties is equivalent to a property bag
with all the optional properties having their default values
features: [Temporal]
--- |
1080 |
- |
| relativeto-propertybag-timezone-string-datetime.js |
---
esid: sec-temporal.duration.prototype.total
description: Conversion of ISO date-time strings to time zone IDs
features: [Temporal]
--- |
2197 |
- |
| relativeto-propertybag-timezone-string-leap-second.js |
---
esid: sec-temporal.duration.prototype.total
description: Leap second is a valid ISO string for TimeZone
features: [Temporal]
--- |
903 |
- |
| relativeto-propertybag-timezone-string-year-zero.js |
---
esid: sec-temporal.duration.prototype.total
description: Negative zero, as an extended year, is rejected
features: [Temporal, arrow-function]
--- |
760 |
- |
| relativeto-propertybag-timezone-string.js |
---
esid: sec-temporal.duration.prototype.total
description: Time zone IDs are valid input for a time zone
features: [Temporal]
--- |
630 |
- |
| relativeto-propertybag-timezone-wrong-type.js |
---
esid: sec-temporal.duration.prototype.total
description: >
Appropriate error thrown when argument cannot be converted to a valid string
for time zone
features: [BigInt, Symbol, Temporal]
--- |
1429 |
- |
| relativeto-string-invalid.js |
---
esid: sec-temporal.duration.prototype.total
description: RangeError thrown if relativeTo is a string with the wrong format
features: [Temporal]
--- |
903 |
- |
| relativeto-string-limits.js |
---
esid: sec-temporal.duration.prototype.total
description: ISO strings at the edges of the representable range
features: [Temporal]
--- |
2343 |
- |
| relativeto-string-wrong-offset.js |
---
esid: sec-temporal.duration.prototype.total
description: Throws if a ZonedDateTime-like relativeTo string has the wrong timezone offset
features: [Temporal]
--- |
875 |
- |
| relativeto-string.js |
---
esid: sec-temporal.duration.prototype.total
description: relativeTo option accepts ISO date-time strings as argument
features: [Temporal]
--- |
1392 |
- |
| relativeto-sub-minute-offset.js |
---
esid: sec-temporal.duration.prototype.total
description: relativeTo string accepts trailing zeroes in sub-minute UTC offset
features: [Temporal]
--- |
1299 |
- |
| relativeto-total-of-each-unit.js |
---
esid: sec-temporal.duration.prototype.total
description: Test representative result for all units, with relativeTo
features: [Temporal]
--- |
2143 |
- |
| relativeto-undefined-throw-on-calendar-units.js |
---
esid: sec-temporal.duration.prototype.total
description: >
The relativeTo option is required when the Duration contains years, months,
or weeks, and unit is days; or unit is weeks or months
features: [Temporal, arrow-function]
--- |
1902 |
- |
| relativeto-unit-weeks-balances-hours-into-days.js |
---
esid: sec-temporal.duration.prototype.total
description: Balances up to the next unit after rounding.
features: [Temporal]
--- |
920 |
- |
| relativeto-wrong-type.js |
---
esid: sec-temporal.duration.prototype.total
description: >
Appropriate error thrown when relativeTo cannot be converted to a valid
relativeTo string or property bag
features: [BigInt, Symbol, Temporal]
--- |
1599 |
- |
| relativeto-zoneddatetime-negative-epochnanoseconds.js |
---
esid: sec-temporal.duration.prototype.total
description: A pre-epoch value is handled correctly by the modulo operation in GetISOPartsFromEpoch
info: |
sec-temporal-getisopartsfromepoch step 1:
1. Let _remainderNs_ be the mathematical value whose sign is the sign of _epochNanoseconds_ and whose magnitude is abs(_epochNanoseconds_) modulo 10<sup>6</sup>.
sec-temporal-builtintimezonegetplaindatetimefor step 2:
2. Let _result_ be ! GetISOPartsFromEpoch(_instant_.[[Nanoseconds]]).
features: [Temporal]
--- |
1186 |
- |
| relativeto-zoneddatetime-with-fractional-days.js |
---
esid: sec-temporal.duration.prototype.total
description: >
Relative to a ZonedDateTime with a fractional number of days.
features: [Temporal]
--- |
657 |
- |
| rounding-window.js |
---
esid: sec-temporal.duration.prototype.total
description: See https://github.com/tc39/proposal-temporal/issues/3168
features: [Temporal]
--- |
748 |
- |
| rounds-calendar-units-in-durations-without-calendar-units.js |
---
esid: sec-temporal.duration.prototype.total
description: relativeTo required to round calendar units even in durations without calendar units.
features: [Temporal]
--- |
868 |
- |
| rounds-durations-with-calendar-units.js |
---
esid: sec-temporal.duration.prototype.total
description: relativeTo required to round durations with calendar units
features: [Temporal]
--- |
1792 |
- |
| shell.js |
---
description: |
Test if a given function is a constructor function.
defines: [isConstructor]
features: [Reflect.construct]
--- |
596 |
- |
| string-shorthand-no-object-prototype-pollution.js |
---
esid: sec-temporal.duration.prototype.total
description: String argument creates options object with null prototype, so Object.prototype pollution doesn't affect it
features: [Temporal]
--- |
855 |
- |
| throws-if-date-time-invalid-with-plaindate-relative.js |
---
esid: sec-temporal.duration.prototype.total
description: >
Throws RangeError when date-time is outside the valid limits.
info: |
Temporal.Duration.prototype.total ( totalOf )
...
12. Else if plainRelativeTo is not undefined, then
...
h. Let total be ? DifferencePlainDateTimeWithTotal(isoDateTime, targetDateTime,
calendar, unit).
...
DifferencePlainDateTimeWithTotal ( isoDateTime1, isoDateTime2, calendar, unit )
...
5. Return ? TotalRelativeDuration(diff, destEpochNs, isoDateTime1, unset, calendar, unit).
TotalRelativeDuration ( duration, destEpochNs, isoDateTime, timeZone, calendar, unit )
1. If IsCalendarUnit(unit) is true, or timeZone is not unset and unit is day, then
a. Let sign be InternalDurationSign(duration).
b. Let record be ? NudgeToCalendarUnit(sign, duration, destEpochNs, isoDateTime,
timeZone, calendar, 1, unit, trunc).
...
NudgeToCalendarUnit ( sign, duration, destEpochNs, isoDateTime, timeZone, calendar,
increment, unit, roundingMode )
...
8. Let end be ? CalendarDateAdd(calendar, isoDateTime.[[ISODate]], endDuration, constrain).
...
features: [Temporal]
--- |
1679 |
- |
| throws-if-date-time-invalid-with-zoneddatetime-relative.js |
---
esid: sec-temporal.duration.prototype.total
description: >
Throws RangeError when date-time is outside the valid limits.
info: |
Temporal.Duration.prototype.total ( totalOf )
...
11. If zonedRelativeTo is not undefined, then
...
f. Let total be ? DifferenceZonedDateTimeWithTotal(relativeEpochNs,
targetEpochNs, timeZone, calendar, unit).
...
DifferenceZonedDateTimeWithTotal ( ns1, ns2, timeZone, calendar, unit )
...
4. Return ? TotalRelativeDuration(difference, ns2, dateTime, timeZone, calendar, unit).
TotalRelativeDuration ( duration, destEpochNs, isoDateTime, timeZone, calendar, unit )
1. If IsCalendarUnit(unit) is true, or timeZone is not unset and unit is day, then
a. Let sign be InternalDurationSign(duration).
b. Let record be ? NudgeToCalendarUnit(sign, duration, destEpochNs, isoDateTime,
timeZone, calendar, 1, unit, trunc).
...
NudgeToCalendarUnit ( sign, duration, destEpochNs, isoDateTime, timeZone, calendar,
increment, unit, roundingMode )
...
8. Let end be ? CalendarDateAdd(calendar, isoDateTime.[[ISODate]], endDuration, constrain).
...
features: [Temporal]
--- |
1694 |
- |
| throws-if-target-nanoseconds-outside-valid-limits.js |
---
esid: sec-temporal.duration.prototype.total
description: >
Throws RangeError when targetEpochNs is not a valid epoch nanoseconds value.
info: |
Temporal.Duration.prototype.total ( totalOf )
...
11. If zonedRelativeTo is not undefined, then
...
e. Let targetEpochNs be ? AddZonedDateTime(relativeEpochNs, timeZone, calendar,
internalDuration, constrain).
...
AddZonedDateTime ( epochNanoseconds, timeZone, calendar, duration, overflow )
1. If DateDurationSign(duration.[[Date]]) = 0, then
a. Return ? AddInstant(epochNanoseconds, duration.[[Time]]).
...
features: [Temporal]
--- |
1132 |
- |
| throws-if-unit-property-missing.js |
---
esid: sec-temporal.duration.prototype.total
description: Throws RangeError if unit property is missing.
features: [Temporal]
--- |
623 |
- |
| throws-on-disallowed-or-invalid-unit.js |
---
esid: sec-temporal.duration.prototype.total
description: total() throws on disallowed or invalid unit
features: [Temporal]
--- |
682 |
- |
| throws-on-wrong-offset-for-zoneddatetime-relativeto.js |
---
esid: sec-temporal.duration.prototype.total
description: Throws on wrong offset for ZonedDateTime relativeTo string.
features: [Temporal]
--- |
580 |
- |
| total-of-each-unit.js |
---
esid: sec-temporal.duration.prototype.total
description: Test representative result for all units, without relativeTo
features: [Temporal]
--- |
1327 |
- |
| unit-disallowed-units-string.js |
---
esid: sec-temporal.duration.prototype.total
description: Specifically disallowed units for the unit option
features: [Temporal, arrow-function]
--- |
841 |
- |
| unit-invalid-string.js |
---
esid: sec-temporal.duration.protoype.total
description: RangeError thrown when unit option not one of the allowed string values
info: |
sec-getoption step 10:
10. If _values_ is not *undefined* and _values_ does not contain an element equal to _value_, throw a *RangeError* exception.
sec-temporal-totemporaldurationtotal step 1:
1. Let _unit_ be ? GetOption(_normalizedOptions_, *"unit"*, « String », « *"year"*, *"years"*, *"month"*, *"months"*, *"week"*, *"weeks"*, *"day"*, *"days"*, *"hour"*, *"hours"*, *"minute"*, *"minutes"*, *"second"*, *"seconds"*, *"millisecond"*, *"milliseconds"*, *"microsecond"*, *"microseconds"*, *"nanosecond"*, *"nanoseconds"* », *undefined*).
sec-temporal.duration.protoype.total step 5:
5. Let _unit_ be ? ToTemporalDurationTotalUnit(_options_).
features: [Temporal]
--- |
1225 |
- |
| unit-plurals-accepted-string.js |
---
esid: sec-temporal.duration.prototype.total
description: Plural units are accepted as well for the shorthand for the unit option
includes: [temporalHelpers.js]
features: [Temporal, arrow-function]
--- |
737 |
- |
| unit-plurals-accepted.js |
---
esid: sec-temporal.duration.prototype.total
description: Plural units are accepted as well for the unit option
includes: [temporalHelpers.js]
features: [Temporal]
--- |
805 |
- |
| unit-string-shorthand-string.js |
---
esid: sec-temporal.duration.prototype.total
description: String as first argument is equivalent to options bag with unit option
features: [Temporal, arrow-function]
--- |
843 |
- |
| unit-wrong-type.js |
---
esid: sec-temporal.duration.prototype.total
description: Type conversions for unit option
info: |
sec-getoption step 9.a:
a. Set _value_ to ? ToString(_value_).
sec-temporal-totemporaldurationtotal step 1:
1. Let _unit_ be ? GetOption(_normalizedOptions_, *"unit"*, « String », « *"year"*, *"years"*, *"month"*, *"months"*, *"week"*, *"weeks"*, *"day"*, *"days"*, *"hour"*, *"hours"*, *"minute"*, *"minutes"*, *"second"*, *"seconds"*, *"millisecond"*, *"milliseconds"*, *"microsecond"*, *"microseconds"*, *"nanosecond"*, *"nanoseconds"* », *undefined*).
sec-temporal.duration.protoype.total step 5:
5. Let _unit_ be ? ToTemporalDurationTotalUnit(_options_).
includes: [compareArray.js, temporalHelpers.js]
features: [Temporal]
--- |
1232 |
- |
| year-zero.js |
---
esid: sec-temporal.duration.prototype.total
description: Negative zero, as an extended year, is rejected
features: [Temporal, arrow-function]
--- |
630 |
- |
| zero-duration.js |
---
esid: sec-temporal.duration.prototype.total
description: Totaling zero duration returns 0
features: [Temporal]
--- |
713 |
- |