Skip to content

Commit 95a131d

Browse files
ptomatojustingrant
authored andcommitted
Editorial: Move special case out of ValidateTemporalRoundingIncrement
This moves the check for the special case (where dividend is 1 and inclusive is false) out of ValidateTemporalRoundingIncrement, and into the two call sites where it matters (PDT.p.round and ZDT.p.round). This will hopefully make the logic in ValidateTemporalRoundingIncrement easier to follow. UPSTREAM_COMMIT=9bd27a20ef157c69d4d4954e64724eb332b32723
1 parent f68fdb4 commit 95a131d

File tree

3 files changed

+7
-4
lines changed

3 files changed

+7
-4
lines changed

lib/ecmascript.ts

+1-2
Original file line numberDiff line numberDiff line change
@@ -978,8 +978,7 @@ export function ToTemporalRoundingIncrement(options: { roundingIncrement?: numbe
978978
return MathTrunc(increment);
979979
}
980980
export function ValidateTemporalRoundingIncrement(increment: number, dividend: number, inclusive: boolean) {
981-
let maximum = dividend;
982-
if (!inclusive) maximum = dividend > 1 ? dividend - 1 : 1;
981+
const maximum = inclusive ? dividend : dividend - 1;
983982
if (increment > maximum) {
984983
throw new RangeError(`roundingIncrement must be at least 1 and less than ${maximum}, not ${increment}`);
985984
}

lib/plaindatetime.ts

+3-1
Original file line numberDiff line numberDiff line change
@@ -311,7 +311,9 @@ export class PlainDateTime implements Temporal.PlainDateTime {
311311
microsecond: 1000,
312312
nanosecond: 1000
313313
};
314-
ES.ValidateTemporalRoundingIncrement(roundingIncrement, maximumIncrements[smallestUnit], false);
314+
const maximum = maximumIncrements[smallestUnit];
315+
const inclusive = maximum === 1;
316+
ES.ValidateTemporalRoundingIncrement(roundingIncrement, maximum, inclusive);
315317

316318
let year = GetSlot(this, ISO_YEAR);
317319
let month = GetSlot(this, ISO_MONTH);

lib/zoneddatetime.ts

+3-1
Original file line numberDiff line numberDiff line change
@@ -353,7 +353,9 @@ export class ZonedDateTime implements Temporal.ZonedDateTime {
353353
microsecond: 1000,
354354
nanosecond: 1000
355355
};
356-
ES.ValidateTemporalRoundingIncrement(roundingIncrement, maximumIncrements[smallestUnit], false);
356+
const maximum = maximumIncrements[smallestUnit];
357+
const inclusive = maximum === 1;
358+
ES.ValidateTemporalRoundingIncrement(roundingIncrement, maximum, inclusive);
357359

358360
// first, round the underlying DateTime fields
359361
const dt = dateTime(this);

0 commit comments

Comments
 (0)