Skip to content

Commit 4d73bab

Browse files
ptomatojustingrant
authored andcommitted
Editorial: Allow passing pre-looked-up Calendar methods
Do the same for CalendarDateFromFields as in CalendarDateAdd and CalendarDateUntil: add an optional parameter to CalendarFields which can supply the method to be called, in case the caller has already looked it up. This doesn't make any observable change, but it will be used for optimizations in #2519. UPSTREAM_COMMIT=b9ee4e2b1fd20258a964f75e6b40da24e45161e1
1 parent 51d17e5 commit 4d73bab

File tree

1 file changed

+4
-3
lines changed

1 file changed

+4
-3
lines changed

lib/ecmascript.ts

Lines changed: 4 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -2521,15 +2521,16 @@ export function ConsolidateCalendars(one: CalendarSlot, two: CalendarSlot) {
25212521
export function CalendarDateFromFields(
25222522
calendar: CalendarSlot,
25232523
fields: CalendarProtocolParams['dateFromFields'][0],
2524-
options?: Partial<CalendarProtocolParams['dateFromFields'][1]>
2524+
options?: Partial<CalendarProtocolParams['dateFromFields'][1]>,
2525+
dateFromFieldsParam?: Temporal.CalendarProtocol['dateFromFields']
25252526
) {
25262527
if (typeof calendar === 'string') {
25272528
const TemporalCalendar = GetIntrinsic('%Temporal.Calendar%');
25282529
const calendarObj = new TemporalCalendar(calendar);
25292530
return Call(GetIntrinsic('%Temporal.Calendar.prototype.dateFromFields%'), calendarObj, [fields, options]);
25302531
}
2531-
const dateFromFields = GetMethod(calendar, 'dateFromFields');
2532-
let result = Call(dateFromFields, calendar, [fields, options]);
2532+
const dateFromFields = dateFromFieldsParam ?? GetMethod(calendar, 'dateFromFields');
2533+
const result = Call(dateFromFields, calendar, [fields, options]);
25332534
if (!IsTemporalDate(result)) throw new TypeError('invalid result');
25342535
return result;
25352536
}

0 commit comments

Comments
 (0)