Skip to content

Commit 2c9228b

Browse files
committed
Editorial: Rename "normalized duration" to "internal duration"
"Normalized" was jargon that we adopted after the February 2023 TC39 meeting. "Internal" is clearer; we convert a Temporal.Duration into an "internal" record for calculations. See: #2953
1 parent 6346638 commit 2c9228b

File tree

9 files changed

+141
-141
lines changed

9 files changed

+141
-141
lines changed

polyfill/lib/duration.mjs

Lines changed: 9 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -231,7 +231,7 @@ export class Duration {
231231
}
232232

233233
if (zonedRelativeTo) {
234-
let duration = ES.NormalizeDuration(this);
234+
let duration = ES.ToInternalDurationRecord(this);
235235
const timeZone = GetSlot(zonedRelativeTo, TIME_ZONE);
236236
const calendar = GetSlot(zonedRelativeTo, CALENDAR);
237237
const relativeEpochNs = GetSlot(zonedRelativeTo, EPOCHNANOSECONDS);
@@ -251,7 +251,7 @@ export class Duration {
251251
}
252252

253253
if (plainRelativeTo) {
254-
let duration = ES.NormalizeDurationWith24HourDays(this);
254+
let duration = ES.ToInternalDurationRecordWith24HourDays(this);
255255
const targetTime = ES.AddTime(ES.MidnightTimeRecord(), duration.norm);
256256

257257
// Delegate the date part addition to the calendar
@@ -282,7 +282,7 @@ export class Duration {
282282
throw new RangeErrorCtor(`a starting point is required for ${largestUnit}s balancing`);
283283
}
284284
assert(!ES.IsCalendarUnit(smallestUnit), 'smallestUnit was larger than largestUnit');
285-
let duration = ES.NormalizeDurationWith24HourDays(this);
285+
let duration = ES.ToInternalDurationRecordWith24HourDays(this);
286286
duration = ES.RoundTimeDuration(duration, roundingIncrement, smallestUnit, roundingMode);
287287
return ES.UnnormalizeDuration(duration, largestUnit);
288288
}
@@ -301,7 +301,7 @@ export class Duration {
301301
const unit = ES.GetTemporalUnitValuedOption(totalOf, 'unit', 'datetime', ES.REQUIRED);
302302

303303
if (zonedRelativeTo) {
304-
const duration = ES.NormalizeDuration(this);
304+
const duration = ES.ToInternalDurationRecord(this);
305305
const timeZone = GetSlot(zonedRelativeTo, TIME_ZONE);
306306
const calendar = GetSlot(zonedRelativeTo, CALENDAR);
307307
const relativeEpochNs = GetSlot(zonedRelativeTo, EPOCHNANOSECONDS);
@@ -310,7 +310,7 @@ export class Duration {
310310
}
311311

312312
if (plainRelativeTo) {
313-
const duration = ES.NormalizeDurationWith24HourDays(this);
313+
const duration = ES.ToInternalDurationRecordWith24HourDays(this);
314314
let targetTime = ES.AddTime(ES.MidnightTimeRecord(), duration.norm);
315315

316316
// Delegate the date part addition to the calendar
@@ -332,7 +332,7 @@ export class Duration {
332332
if (ES.IsCalendarUnit(unit)) {
333333
throw new RangeErrorCtor(`a starting point is required for ${unit}s total`);
334334
}
335-
const duration = ES.NormalizeDurationWith24HourDays(this);
335+
const duration = ES.ToInternalDurationRecordWith24HourDays(this);
336336
return ES.TotalTimeDuration(duration.norm, unit);
337337
}
338338
toString(options = undefined) {
@@ -349,7 +349,7 @@ export class Duration {
349349
if (unit === 'nanosecond' && increment === 1) return ES.TemporalDurationToString(this, precision);
350350

351351
const largestUnit = ES.DefaultTemporalLargestUnit(this);
352-
let duration = ES.NormalizeDuration(this);
352+
let duration = ES.ToInternalDurationRecord(this);
353353
duration = ES.RoundTimeDuration(duration, increment, unit, roundingMode);
354354
const roundedDuration = ES.UnnormalizeDuration(duration, ES.LargerOfTwoTemporalUnits(largestUnit, 'second'));
355355
return ES.TemporalDurationToString(roundedDuration, precision);
@@ -395,8 +395,8 @@ export class Duration {
395395

396396
const largestUnit1 = ES.DefaultTemporalLargestUnit(one);
397397
const largestUnit2 = ES.DefaultTemporalLargestUnit(two);
398-
const duration1 = ES.NormalizeDuration(one);
399-
const duration2 = ES.NormalizeDuration(two);
398+
const duration1 = ES.ToInternalDurationRecord(one);
399+
const duration2 = ES.ToInternalDurationRecord(two);
400400

401401
if (
402402
zonedRelativeTo &&

polyfill/lib/ecmascript.mjs

Lines changed: 33 additions & 33 deletions
Original file line numberDiff line numberDiff line change
@@ -2564,7 +2564,7 @@ function DateDurationSign(dateDuration) {
25642564
return 0;
25652565
}
25662566

2567-
function NormalizedDurationSign(duration) {
2567+
function InternalDurationSign(duration) {
25682568
const dateSign = DateDurationSign(duration.date);
25692569
if (dateSign !== 0) return dateSign;
25702570
return duration.norm.sign();
@@ -2805,7 +2805,7 @@ export function RejectDuration(y, mon, w, d, h, min, s, ms, µs, ns) {
28052805
}
28062806
}
28072807

2808-
export function NormalizeDuration(duration) {
2808+
export function ToInternalDurationRecord(duration) {
28092809
const date = {
28102810
years: GetSlot(duration, YEARS),
28112811
months: GetSlot(duration, MONTHS),
@@ -2823,7 +2823,7 @@ export function NormalizeDuration(duration) {
28232823
return { date, norm };
28242824
}
28252825

2826-
export function NormalizeDurationWith24HourDays(duration) {
2826+
export function ToInternalDurationRecordWith24HourDays(duration) {
28272827
const norm = TimeDuration.normalize(
28282828
GetSlot(duration, HOURS),
28292829
GetSlot(duration, MINUTES),
@@ -2841,13 +2841,13 @@ export function NormalizeDurationWith24HourDays(duration) {
28412841
return { date, norm };
28422842
}
28432843

2844-
function NormalizeDurationWithoutTime(duration) {
2845-
const normalizedDuration = NormalizeDurationWith24HourDays(duration);
2846-
const days = MathTrunc(normalizedDuration.norm.sec / 86400);
2844+
function ToDateDurationRecordWithoutTime(duration) {
2845+
const internalDuration = ToInternalDurationRecordWith24HourDays(duration);
2846+
const days = MathTrunc(internalDuration.norm.sec / 86400);
28472847
RejectDuration(
2848-
normalizedDuration.date.years,
2849-
normalizedDuration.date.months,
2850-
normalizedDuration.date.weeks,
2848+
internalDuration.date.years,
2849+
internalDuration.date.months,
2850+
internalDuration.date.weeks,
28512851
days,
28522852
0,
28532853
0,
@@ -2856,15 +2856,15 @@ function NormalizeDurationWithoutTime(duration) {
28562856
0,
28572857
0
28582858
);
2859-
return { ...normalizedDuration.date, days };
2859+
return { ...internalDuration.date, days };
28602860
}
28612861

2862-
export function UnnormalizeDuration(normalizedDuration, largestUnit) {
2863-
const sign = normalizedDuration.norm.sign();
2864-
let nanoseconds = normalizedDuration.norm.abs().subsec;
2862+
export function UnnormalizeDuration(internalDuration, largestUnit) {
2863+
const sign = internalDuration.norm.sign();
2864+
let nanoseconds = internalDuration.norm.abs().subsec;
28652865
let microseconds = 0;
28662866
let milliseconds = 0;
2867-
let seconds = normalizedDuration.norm.abs().sec;
2867+
let seconds = internalDuration.norm.abs().sec;
28682868
let minutes = 0;
28692869
let hours = 0;
28702870
let days = 0;
@@ -2939,10 +2939,10 @@ export function UnnormalizeDuration(normalizedDuration, largestUnit) {
29392939

29402940
const TemporalDuration = GetIntrinsic('%Temporal.Duration%');
29412941
return new TemporalDuration(
2942-
normalizedDuration.date.years,
2943-
normalizedDuration.date.months,
2944-
normalizedDuration.date.weeks,
2945-
normalizedDuration.date.days + sign * days,
2942+
internalDuration.date.years,
2943+
internalDuration.date.months,
2944+
internalDuration.date.weeks,
2945+
internalDuration.date.days + sign * days,
29462946
sign * hours,
29472947
sign * minutes,
29482948
sign * seconds,
@@ -3014,7 +3014,7 @@ function DifferenceISODateTime(isoDateTime1, isoDateTime2, calendar, largestUnit
30143014
const dateLargestUnit = LargerOfTwoTemporalUnits('day', largestUnit);
30153015
const dateDifference = CalendarDateUntil(calendar, isoDateTime1.isoDate, adjustedDate, dateLargestUnit);
30163016
if (largestUnit !== dateLargestUnit) {
3017-
// largestUnit < days, so add the days in to the normalized duration
3017+
// largestUnit < days, so add the days in to the internal duration
30183018
timeDuration = timeDuration.add24HourDays(dateDifference.days);
30193019
dateDifference.days = 0;
30203020
}
@@ -3381,7 +3381,7 @@ function RoundRelativeDuration(
33813381
// >24 hours in its timezone. (should automatically end up like this if using
33823382
// non-rounding since/until internal methods prior)
33833383
const irregularLengthUnit = IsCalendarUnit(smallestUnit) || (timeZone && smallestUnit === 'day');
3384-
const sign = NormalizedDurationSign(duration) < 0 ? -1 : 1;
3384+
const sign = InternalDurationSign(duration) < 0 ? -1 : 1;
33853385

33863386
let nudgeResult;
33873387
if (irregularLengthUnit) {
@@ -3444,7 +3444,7 @@ function TotalRelativeDuration(duration, destEpochNs, isoDateTime, timeZone, cal
34443444
// non-rounding since/until internal methods prior)
34453445
if (IsCalendarUnit(unit) || (timeZone && unit === 'day')) {
34463446
// Rounding an irregular-length unit? Use epoch-nanosecond-bounding technique
3447-
const sign = NormalizedDurationSign(duration) < 0 ? -1 : 1;
3447+
const sign = InternalDurationSign(duration) < 0 ? -1 : 1;
34483448
return NudgeToCalendarUnit(sign, duration, destEpochNs, isoDateTime, timeZone, calendar, 1, unit, 'trunc').total;
34493449
}
34503450
// Rounding uniform-length days/hours/minutes/etc units. Simple nanosecond
@@ -3851,8 +3851,8 @@ export function AddDurations(operation, duration, other) {
38513851
);
38523852
}
38533853

3854-
const d1 = NormalizeDurationWith24HourDays(duration);
3855-
const d2 = NormalizeDurationWith24HourDays(other);
3854+
const d1 = ToInternalDurationRecordWith24HourDays(duration);
3855+
const d2 = ToInternalDurationRecordWith24HourDays(other);
38563856
const result = CombineDateAndNormalizedTimeDuration(ZeroDateDuration(), d1.norm.add(d2.norm));
38573857
return UnnormalizeDuration(result, largestUnit);
38583858
}
@@ -3866,8 +3866,8 @@ export function AddDurationToInstant(operation, instant, durationLike) {
38663866
`Duration field ${largestUnit} not supported by Temporal.Instant. Try Temporal.ZonedDateTime instead.`
38673867
);
38683868
}
3869-
const normalizedDuration = NormalizeDurationWith24HourDays(duration);
3870-
const ns = AddInstant(GetSlot(instant, EPOCHNANOSECONDS), normalizedDuration.norm);
3869+
const internalDuration = ToInternalDurationRecordWith24HourDays(duration);
3870+
const ns = AddInstant(GetSlot(instant, EPOCHNANOSECONDS), internalDuration.norm);
38713871
const Instant = GetIntrinsic('%Temporal.Instant%');
38723872
return new Instant(ns);
38733873
}
@@ -3877,7 +3877,7 @@ export function AddDurationToDate(operation, plainDate, durationLike, options) {
38773877

38783878
let duration = ToTemporalDuration(durationLike);
38793879
if (operation === 'subtract') duration = CreateNegatedTemporalDuration(duration);
3880-
const dateDuration = NormalizeDurationWithoutTime(duration);
3880+
const dateDuration = ToDateDurationRecordWithoutTime(duration);
38813881

38823882
const resolvedOptions = GetOptionsObject(options);
38833883
const overflow = GetTemporalOverflowOption(resolvedOptions);
@@ -3894,12 +3894,12 @@ export function AddDurationToDateTime(operation, dateTime, durationLike, options
38943894

38953895
const calendar = GetSlot(dateTime, CALENDAR);
38963896

3897-
const normalizedDuration = NormalizeDurationWith24HourDays(duration);
3897+
const internalDuration = ToInternalDurationRecordWith24HourDays(duration);
38983898

38993899
// Add the time part
39003900
const isoDateTime = GetSlot(dateTime, ISO_DATE_TIME);
3901-
const timeResult = AddTime(isoDateTime.time, normalizedDuration.norm);
3902-
const dateDuration = AdjustDateDurationRecord(normalizedDuration.date, timeResult.deltaDays);
3901+
const timeResult = AddTime(isoDateTime.time, internalDuration.norm);
3902+
const dateDuration = AdjustDateDurationRecord(internalDuration.date, timeResult.deltaDays);
39033903

39043904
// Delegate the date part addition to the calendar
39053905
RejectDuration(dateDuration.years, dateDuration.months, dateDuration.weeks, dateDuration.days, 0, 0, 0, 0, 0, 0);
@@ -3912,10 +3912,10 @@ export function AddDurationToDateTime(operation, dateTime, durationLike, options
39123912
export function AddDurationToTime(operation, temporalTime, durationLike) {
39133913
let duration = ToTemporalDuration(durationLike);
39143914
if (operation === 'subtract') duration = CreateNegatedTemporalDuration(duration);
3915-
const normalizedDuration = NormalizeDurationWith24HourDays(duration);
3915+
const internalDuration = ToInternalDurationRecordWith24HourDays(duration);
39163916
const { hour, minute, second, millisecond, microsecond, nanosecond } = AddTime(
39173917
GetSlot(temporalTime, TIME),
3918-
normalizedDuration.norm
3918+
internalDuration.norm
39193919
);
39203920
const time = RegulateTime(hour, minute, second, millisecond, microsecond, nanosecond, 'reject');
39213921
return CreateTemporalTime(time);
@@ -3936,7 +3936,7 @@ export function AddDurationToYearMonth(operation, yearMonth, durationLike, optio
39363936
const nextMonth = CalendarDateAdd(calendar, startDate, { months: 1 }, 'constrain');
39373937
startDate = BalanceISODate(nextMonth.year, nextMonth.month, nextMonth.day - 1);
39383938
}
3939-
const durationToAdd = NormalizeDurationWithoutTime(duration);
3939+
const durationToAdd = ToDateDurationRecordWithoutTime(duration);
39403940
RejectDateRange(startDate);
39413941
const addedDate = CalendarDateAdd(calendar, startDate, durationToAdd, overflow);
39423942
const addedDateFields = ISODateToFields(calendar, addedDate, 'year-month');
@@ -3953,7 +3953,7 @@ export function AddDurationToZonedDateTime(operation, zonedDateTime, durationLik
39533953
const overflow = GetTemporalOverflowOption(resolvedOptions);
39543954
const timeZone = GetSlot(zonedDateTime, TIME_ZONE);
39553955
const calendar = GetSlot(zonedDateTime, CALENDAR);
3956-
const normalized = NormalizeDuration(duration);
3956+
const normalized = ToInternalDurationRecord(duration);
39573957
const epochNanoseconds = AddZonedDateTime(
39583958
GetSlot(zonedDateTime, EPOCHNANOSECONDS),
39593959
timeZone,

0 commit comments

Comments
 (0)