@@ -1319,32 +1319,34 @@ <h1>
1319
1319
1. Else if _largestUnit_ is *"week"* , then
1320
1320
1. If _calendar_ is *undefined* , then
1321
1321
1. Throw a *RangeError* exception.
1322
+ 1. Let _dateAdd_ be ? GetMethod(_calendar_ , *"dateAdd"* ).
1322
1323
1. Repeat, while _years_ &ne ; 0,
1323
- 1. Let _moveResult_ be ? MoveRelativeDate(_calendar_ , _relativeTo_ , _oneYear_ ).
1324
+ 1. Let _moveResult_ be ? MoveRelativeDate(_calendar_ , _relativeTo_ , _oneYear_ , _dateAdd_ ).
1324
1325
1. Set _relativeTo_ to _moveResult_ .[[RelativeTo]].
1325
1326
1. Set _days_ to _days_ + _moveResult_ .[[Days]].
1326
1327
1. Set _years_ to _years_ - _sign_ .
1327
1328
1. Repeat, while _months_ &ne ; 0,
1328
- 1. Let _moveResult_ be ? MoveRelativeDate(_calendar_ , _relativeTo_ , _oneMonth_ ).
1329
+ 1. Let _moveResult_ be ? MoveRelativeDate(_calendar_ , _relativeTo_ , _oneMonth_ , _dateAdd_ ).
1329
1330
1. Set _relativeTo_ to _moveResult_ .[[RelativeTo]].
1330
1331
1. Set _days_ to _days_ + _moveResult_ .[[Days]].
1331
1332
1. Set _months_ to _months_ - _sign_ .
1332
1333
1. Else,
1333
1334
1. If any of _years_ , _months_ , and _weeks_ are not zero, then
1334
1335
1. If _calendar_ is *undefined* , then
1335
1336
1. Throw a *RangeError* exception.
1337
+ 1. Let _dateAdd_ be ? GetMethod(_calendar_ , *"dateAdd"* ).
1336
1338
1. Repeat, while _years_ &ne ; 0,
1337
- 1. Let _moveResult_ be ? MoveRelativeDate(_calendar_ , _relativeTo_ , _oneYear_ ).
1339
+ 1. Let _moveResult_ be ? MoveRelativeDate(_calendar_ , _relativeTo_ , _oneYear_ , _dateAdd_ ).
1338
1340
1. Set _relativeTo_ to _moveResult_ .[[RelativeTo]].
1339
1341
1. Set _days_ to _days_ + _moveResult_ .[[Days]].
1340
1342
1. Set _years_ to _years_ - _sign_ .
1341
1343
1. Repeat, while _months_ &ne ; 0,
1342
- 1. Let _moveResult_ be ? MoveRelativeDate(_calendar_ , _relativeTo_ , _oneMonth_ ).
1344
+ 1. Let _moveResult_ be ? MoveRelativeDate(_calendar_ , _relativeTo_ , _oneMonth_ , _dateAdd_ ).
1343
1345
1. Set _relativeTo_ to _moveResult_ .[[RelativeTo]].
1344
1346
1. Set _days_ to _days_ +_moveResult_ .[[Days]].
1345
1347
1. Set _months_ to _months_ - _sign_ .
1346
1348
1. Repeat, while _weeks_ &ne ; 0,
1347
- 1. Let _moveResult_ be ? MoveRelativeDate(_calendar_ , _relativeTo_ , _oneWeek_ ).
1349
+ 1. Let _moveResult_ be ? MoveRelativeDate(_calendar_ , _relativeTo_ , _oneWeek_ , _dateAdd_ ).
1348
1350
1. Set _relativeTo_ to _moveResult_ .[[RelativeTo]].
1349
1351
1. Set _days_ to _days_ + _moveResult_ .[[Days]].
1350
1352
1. Set _weeks_ to _weeks_ - _sign_ .
@@ -1380,27 +1382,27 @@ <h1>
1380
1382
1. Set _relativeTo_ to ? ToTemporalDate(_relativeTo_ ).
1381
1383
1. Let _calendar_ be _relativeTo_ .[[Calendar]].
1382
1384
1. If _largestUnit_ is *"year"* , then
1383
- 1. Let _moveResult_ be ? MoveRelativeDate(_calendar_ , _relativeTo_ , _oneYear_ ).
1385
+ 1. Let _dateAdd_ be ? GetMethod(_calendar_ , *"dateAdd"* ).
1386
+ 1. Let _moveResult_ be ? MoveRelativeDate(_calendar_ , _relativeTo_ , _oneYear_ , _dateAdd_ ).
1384
1387
1. Let _newRelativeTo_ be _moveResult_ .[[RelativeTo]].
1385
1388
1. Let _oneYearDays_ be _moveResult_ .[[Days]].
1386
1389
1. Repeat, while abs(_days_ ) &ge ; abs(_oneYearDays_ ),
1387
1390
1. Set _days_ to _days_ - _oneYearDays_ .
1388
1391
1. Set _years_ to _years_ + _sign_ .
1389
1392
1. Set _relativeTo_ to _newRelativeTo_ .
1390
- 1. Set _moveResult_ to ? MoveRelativeDate(_calendar_ , _relativeTo_ , _oneYear_ ).
1393
+ 1. Set _moveResult_ to ? MoveRelativeDate(_calendar_ , _relativeTo_ , _oneYear_ , _dateAdd_ ).
1391
1394
1. Set _newRelativeTo_ to _moveResult_ .[[RelativeTo]].
1392
1395
1. Set _oneYearDays_ to _moveResult_ .[[Days]].
1393
- 1. Set _moveResult_ to ? MoveRelativeDate(_calendar_ , _relativeTo_ , _oneMonth_ ).
1396
+ 1. Set _moveResult_ to ? MoveRelativeDate(_calendar_ , _relativeTo_ , _oneMonth_ , _dateAdd_ ).
1394
1397
1. Set _newRelativeTo_ to _moveResult_ .[[RelativeTo]].
1395
1398
1. Let _oneMonthDays_ be _moveResult_ .[[Days]].
1396
1399
1. Repeat, while abs(_days_ ) &ge ; abs(_oneMonthDays_ ),
1397
1400
1. Set _days_ to _days_ - _oneMonthDays_ .
1398
1401
1. Set _months_ to _months_ + _sign_ .
1399
1402
1. Set _relativeTo_ to _newRelativeTo_ .
1400
- 1. Set _moveResult_ to ? MoveRelativeDate(_calendar_ , _relativeTo_ , _oneMonth_ ).
1403
+ 1. Set _moveResult_ to ? MoveRelativeDate(_calendar_ , _relativeTo_ , _oneMonth_ , _dateAdd_ ).
1401
1404
1. Set _newRelativeTo_ to _moveResult_ .[[RelativeTo]].
1402
1405
1. Set _oneMonthDays_ to _moveResult_ .[[Days]].
1403
- 1. Let _dateAdd_ be ? GetMethod(_calendar_ , *"dateAdd"* ).
1404
1406
1. Set _newRelativeTo_ to ? CalendarDateAdd(_calendar_ , _relativeTo_ , _oneYear_ , *undefined* , _dateAdd_ ).
1405
1407
1. Let _dateUntil_ be ? GetMethod(_calendar_ , *"dateUntil"* ).
1406
1408
1. Let _untilOptions_ be OrdinaryObjectCreate(*null* ).
@@ -1417,26 +1419,28 @@ <h1>
1417
1419
1. Set _untilResult_ to ? CalendarDateUntil(_calendar_ , _relativeTo_ , _newRelativeTo_ , _untilOptions_ , _dateUntil_ ).
1418
1420
1. Set _oneYearMonths_ to _untilResult_ .[[Months]].
1419
1421
1. Else if _largestUnit_ is *"month"* , then
1420
- 1. Let _moveResult_ be ? MoveRelativeDate(_calendar_ , _relativeTo_ , _oneMonth_ ).
1422
+ 1. Let _dateAdd_ be ? GetMethod(_calendar_ , *"dateAdd"* ).
1423
+ 1. Let _moveResult_ be ? MoveRelativeDate(_calendar_ , _relativeTo_ , _oneMonth_ , _dateAdd_ ).
1421
1424
1. Let _newRelativeTo_ be _moveResult_ .[[RelativeTo]].
1422
1425
1. Let _oneMonthDays_ be _moveResult_ .[[Days]].
1423
1426
1. Repeat, while abs(_days_ ) &ge ; abs(_oneMonthDays_ ),
1424
1427
1. Set _days_ to _days_ - _oneMonthDays_ .
1425
1428
1. Set _months_ to _months_ + _sign_ .
1426
1429
1. Set _relativeTo_ to _newRelativeTo_ .
1427
- 1. Set _moveResult_ to ? MoveRelativeDate(_calendar_ , _relativeTo_ , _oneMonth_ ).
1430
+ 1. Set _moveResult_ to ? MoveRelativeDate(_calendar_ , _relativeTo_ , _oneMonth_ , _dateAdd_ ).
1428
1431
1. Set _newRelativeTo_ to _moveResult_ .[[RelativeTo]].
1429
1432
1. Set _oneMonthDays_ to _moveResult_ .[[Days]].
1430
1433
1. Else,
1431
1434
1. Assert: _largestUnit_ is *"week"* .
1432
- 1. Let _moveResult_ be ? MoveRelativeDate(_calendar_ , _relativeTo_ , _oneWeek_ ).
1435
+ 1. Let _dateAdd_ be ? GetMethod(_calendar_ , *"dateAdd"* ).
1436
+ 1. Let _moveResult_ be ? MoveRelativeDate(_calendar_ , _relativeTo_ , _oneWeek_ , _dateAdd_ ).
1433
1437
1. Let _newRelativeTo_ be _moveResult_ .[[RelativeTo]].
1434
1438
1. Let _oneWeekDays_ be _moveResult_ .[[Days]].
1435
1439
1. Repeat, while abs(_days_ ) &ge ; abs(_oneWeekDays_ ),
1436
1440
1. Set _days_ to _days_ - _oneWeekDays_ .
1437
1441
1. Set _weeks_ to _weeks_ + _sign_ .
1438
1442
1. Set _relativeTo_ to _newRelativeTo_ .
1439
- 1. Set _moveResult_ to ? MoveRelativeDate(_calendar_ , _relativeTo_ , _oneWeek_ ).
1443
+ 1. Set _moveResult_ to ? MoveRelativeDate(_calendar_ , _relativeTo_ , _oneWeek_ , _dateAdd_ ).
1440
1444
1. Set _newRelativeTo_ to _moveResult_ .[[RelativeTo]].
1441
1445
1. Set _oneWeekDays_ to _moveResult_ .[[Days]].
1442
1446
1. Return ! CreateDateDurationRecord(_years_ , _months_ , _weeks_ , _days_ ).
@@ -1679,13 +1683,14 @@ <h1>
1679
1683
1. Else if _unit_ is *"week"* , then
1680
1684
1. If _days_ < ; 0, let _sign_ be -1; else, let _sign_ be 1.
1681
1685
1. Let _oneWeek_ be ! CreateTemporalDuration(0, 0, _sign_ , 0, 0, 0, 0, 0, 0, 0).
1682
- 1. Let _moveResult_ be ? MoveRelativeDate(_calendar_ , _relativeTo_ , _oneWeek_ ).
1686
+ 1. Let _dateAdd_ be ? GetMethod(_calendar_ , *"dateAdd"* ).
1687
+ 1. Let _moveResult_ be ? MoveRelativeDate(_calendar_ , _relativeTo_ , _oneWeek_ , _dateAdd_ ).
1683
1688
1. Set _relativeTo_ to _moveResult_ .[[RelativeTo]].
1684
1689
1. Let _oneWeekDays_ be _moveResult_ .[[Days]].
1685
1690
1. Repeat, while abs(_days_ ) &ge ; abs(_oneWeekDays_ ),
1686
1691
1. Set _weeks_ to _weeks_ + _sign_ .
1687
1692
1. Set _days_ to _days_ - _oneWeekDays_ .
1688
- 1. Set _moveResult_ to ? MoveRelativeDate(_calendar_ , _relativeTo_ , _oneWeek_ ).
1693
+ 1. Set _moveResult_ to ? MoveRelativeDate(_calendar_ , _relativeTo_ , _oneWeek_ , _dateAdd_ ).
1689
1694
1. Set _relativeTo_ to _moveResult_ .[[RelativeTo]].
1690
1695
1. Set _oneWeekDays_ to _moveResult_ .[[Days]].
1691
1696
1. Let _fractionalWeeks_ be _weeks_ + _days_ / abs(_oneWeekDays_ ).
0 commit comments