Skip to content

Commit e44d36b

Browse files
ptomatoMs2ger
authored andcommitted
Rebase: Replace GetIANATimeZoneOffsetNanoseconds with GetNamedTimeZoneOffsetNanoseconds
GetIANATimeZoneOffsetNanoseconds was already merged into ECMA-262 and renamed to GetNamedTimeZoneOffsetNanoseconds. The order of its two arguments was swapped for consistency with GetNamedTimeZoneEpochNanoseconds.
1 parent e834014 commit e44d36b

File tree

4 files changed

+12
-29
lines changed

4 files changed

+12
-29
lines changed

polyfill/lib/ecmascript.mjs

Lines changed: 9 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -2160,7 +2160,7 @@ export const ES = ObjectAssign({}, ES2022, {
21602160
const formatter = getIntlDateTimeFormatEnUsForTimeZone(String(timeZoneIdentifier));
21612161
return formatter.resolvedOptions().timeZone;
21622162
},
2163-
GetIANATimeZoneOffsetNanoseconds: (epochNanoseconds, id) => {
2163+
GetNamedTimeZoneOffsetNanoseconds: (id, epochNanoseconds) => {
21642164
const { year, month, day, hour, minute, second, millisecond, microsecond, nanosecond } =
21652165
ES.GetIANATimeZoneDateTimeParts(epochNanoseconds, id);
21662166
const utc = ES.GetUTCEpochNanoseconds(year, month, day, hour, minute, second, millisecond, microsecond, nanosecond);
@@ -2243,19 +2243,19 @@ export const ES = ObjectAssign({}, ES2022, {
22432243
GetIANATimeZoneNextTransition: (epochNanoseconds, id) => {
22442244
const uppercap = ES.SystemUTCEpochNanoSeconds().plus(DAY_NANOS.multiply(366));
22452245
let leftNanos = epochNanoseconds;
2246-
let leftOffsetNs = ES.GetIANATimeZoneOffsetNanoseconds(leftNanos, id);
2246+
let leftOffsetNs = ES.GetNamedTimeZoneOffsetNanoseconds(id, leftNanos);
22472247
let rightNanos = leftNanos;
22482248
let rightOffsetNs = leftOffsetNs;
22492249
while (leftOffsetNs === rightOffsetNs && bigInt(leftNanos).compare(uppercap) === -1) {
22502250
rightNanos = bigInt(leftNanos).plus(DAY_NANOS.multiply(2 * 7));
2251-
rightOffsetNs = ES.GetIANATimeZoneOffsetNanoseconds(rightNanos, id);
2251+
rightOffsetNs = ES.GetNamedTimeZoneOffsetNanoseconds(id, rightNanos);
22522252
if (leftOffsetNs === rightOffsetNs) {
22532253
leftNanos = rightNanos;
22542254
}
22552255
}
22562256
if (leftOffsetNs === rightOffsetNs) return null;
22572257
const result = bisect(
2258-
(epochNs) => ES.GetIANATimeZoneOffsetNanoseconds(epochNs, id),
2258+
(epochNs) => ES.GetNamedTimeZoneOffsetNanoseconds(id, epochNs),
22592259
leftNanos,
22602260
rightNanos,
22612261
leftOffsetNs,
@@ -2278,19 +2278,19 @@ export const ES = ObjectAssign({}, ES2022, {
22782278

22792279
const lowercap = BEFORE_FIRST_DST; // 1847-01-01T00:00:00Z
22802280
let rightNanos = bigInt(epochNanoseconds).minus(1);
2281-
let rightOffsetNs = ES.GetIANATimeZoneOffsetNanoseconds(rightNanos, id);
2281+
let rightOffsetNs = ES.GetNamedTimeZoneOffsetNanoseconds(id, rightNanos);
22822282
let leftNanos = rightNanos;
22832283
let leftOffsetNs = rightOffsetNs;
22842284
while (rightOffsetNs === leftOffsetNs && bigInt(rightNanos).compare(lowercap) === 1) {
22852285
leftNanos = bigInt(rightNanos).minus(DAY_NANOS.multiply(2 * 7));
2286-
leftOffsetNs = ES.GetIANATimeZoneOffsetNanoseconds(leftNanos, id);
2286+
leftOffsetNs = ES.GetNamedTimeZoneOffsetNanoseconds(id, leftNanos);
22872287
if (rightOffsetNs === leftOffsetNs) {
22882288
rightNanos = leftNanos;
22892289
}
22902290
}
22912291
if (rightOffsetNs === leftOffsetNs) return null;
22922292
const result = bisect(
2293-
(epochNs) => ES.GetIANATimeZoneOffsetNanoseconds(epochNs, id),
2293+
(epochNs) => ES.GetNamedTimeZoneOffsetNanoseconds(id, epochNs),
22942294
leftNanos,
22952295
rightNanos,
22962296
leftOffsetNs,
@@ -2337,8 +2337,8 @@ export const ES = ObjectAssign({}, ES2022, {
23372337
if (nsEarlier.lesser(NS_MIN)) nsEarlier = ns;
23382338
let nsLater = ns.plus(DAY_NANOS);
23392339
if (nsLater.greater(NS_MAX)) nsLater = ns;
2340-
const earliest = ES.GetIANATimeZoneOffsetNanoseconds(nsEarlier, id);
2341-
const latest = ES.GetIANATimeZoneOffsetNanoseconds(nsLater, id);
2340+
const earliest = ES.GetNamedTimeZoneOffsetNanoseconds(id, nsEarlier);
2341+
const latest = ES.GetNamedTimeZoneOffsetNanoseconds(id, nsLater);
23422342
const found = earliest === latest ? [earliest] : [earliest, latest];
23432343
return found
23442344
.map((offsetNanoseconds) => {

polyfill/lib/timezone.mjs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -53,7 +53,7 @@ export class TimeZone {
5353
return ES.ParseTimeZoneOffsetString(id);
5454
}
5555

56-
return ES.GetIANATimeZoneOffsetNanoseconds(GetSlot(instant, EPOCHNANOSECONDS), id);
56+
return ES.GetNamedTimeZoneOffsetNanoseconds(id, GetSlot(instant, EPOCHNANOSECONDS));
5757
}
5858
getOffsetStringFor(instant) {
5959
if (!ES.IsTemporalTimeZone(this)) throw new TypeError('invalid receiver');

spec/intl.html

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -963,7 +963,7 @@ <h1>ToLocalTime ( _t_, _calendar_, _timeZone_ )</h1>
963963
1. Assert: Type(_t_) is <del>Number</del><ins>BigInt</ins>.
964964
1. If _calendar_ is *"gregory"*, then
965965
1. <del>Let _timeZoneOffset_ be the value calculated according to LocalTZA<!---->(_t_, *true*) where the local time zone is replaced with timezone _timeZone_.</del>
966-
1. <ins>Let _timeZoneOffset_ be GetIANATimeZoneOffsetNanoseconds(_t_, _timeZone_).</ins>
966+
1. <ins>Let _timeZoneOffset_ be GetNamedTimeZoneOffsetNanoseconds(_timeZone_, _t_).</ins>
967967
1. Let _tz_ be <del>_t_</del><ins>ℝ(_t_)</ins> + _timeZoneOffset_.
968968
1. Return a record with fields calculated from _tz_ according to <del><emu-xref href="#table-datetimeformat-tolocaltime-record"></emu-xref></del><ins><emu-xref href="#table-temporal-plaindatetimeformat-tolocaltime-record"></emu-xref></ins>.
969969
1. Else,

spec/timezone.html

Lines changed: 1 addition & 18 deletions
Original file line numberDiff line numberDiff line change
@@ -215,7 +215,7 @@ <h1>Temporal.TimeZone.prototype.getOffsetNanosecondsFor ( _instant_ )</h1>
215215
1. Perform ? RequireInternalSlot(_timeZone_, [[InitializedTemporalTimeZone]]).
216216
1. Set _instant_ to ? ToTemporalInstant(_instant_).
217217
1. If _timeZone_.[[OffsetNanoseconds]] is not *undefined*, return 𝔽(_timeZone_.[[OffsetNanoseconds]]).
218-
1. Return 𝔽(GetIANATimeZoneOffsetNanoseconds(_instant_.[[Nanoseconds]], _timeZone_.[[Identifier]])).
218+
1. Return 𝔽(GetNamedTimeZoneOffsetNanoseconds(_timeZone_.[[Identifier]], _instant_.[[Nanoseconds]])).
219219
</emu-alg>
220220
</emu-clause>
221221

@@ -446,23 +446,6 @@ <h1>
446446
</emu-alg>
447447
</emu-clause>
448448

449-
<emu-clause id="sec-temporalgetianatimezoneoffsetnanoseconds" type="implementation-defined abstract operation">
450-
<h1>
451-
GetIANATimeZoneOffsetNanoseconds (
452-
_epochNanoseconds_: a BigInt,
453-
_timeZoneIdentifier_: a String,
454-
): an integer
455-
</h1>
456-
<dl class="header">
457-
</dl>
458-
<p>
459-
The returned integer represents the offset of the IANA time zone identified by _timeZoneIdentifier_ from UTC, at the instant corresponding to _epochNanoseconds_.
460-
</p>
461-
<p>
462-
Given the same values of _epochNanoseconds_ and _timeZoneIdentifier_, the result must be the same for the lifetime of the surrounding agent.
463-
</p>
464-
</emu-clause>
465-
466449
<emu-clause id="sec-temporal-getianatimezonenexttransition" type="implementation-defined abstract operation">
467450
<h1>
468451
GetIANATimeZoneNextTransition (

0 commit comments

Comments
 (0)