Skip to content

Commit

Permalink
Remove CalendarToString abstract operation
Browse files Browse the repository at this point in the history
Also remove %Temporal.Calendar.prototype.toString% intrinsic. These are
not needed because toString() is a required method of the Calendar
protocol, so there should always be a toString() there to call.

See: #1294
  • Loading branch information
ptomato committed Jan 18, 2021
1 parent 1177a9a commit 4d397ad
Show file tree
Hide file tree
Showing 16 changed files with 64 additions and 106 deletions.
5 changes: 2 additions & 3 deletions polyfill/lib/calendar.mjs
Original file line number Diff line number Diff line change
Expand Up @@ -33,7 +33,7 @@ export class Calendar {
}
}
get id() {
return ES.CalendarToString(this);
return ES.ToString(this);
}
dateFromFields(fields, options, constructor) {
if (!ES.IsTemporalCalendar(this)) throw new TypeError('invalid receiver');
Expand Down Expand Up @@ -143,7 +143,7 @@ export class Calendar {
return GetSlot(this, CALENDAR_ID);
}
toJSON() {
return ES.CalendarToString(this);
return ES.ToString(this);
}
static from(item) {
if (ES.Type(item) === 'Object') {
Expand All @@ -167,7 +167,6 @@ export class Calendar {
MakeIntrinsicClass(Calendar, 'Temporal.Calendar');
DefineIntrinsic('Temporal.Calendar.from', Calendar.from);
DefineIntrinsic('Temporal.Calendar.prototype.fields', Calendar.prototype.fields);
DefineIntrinsic('Temporal.Calendar.prototype.toString', Calendar.prototype.toString);

impl['iso8601'] = {
dateFromFields(fields, overflow) {
Expand Down
19 changes: 7 additions & 12 deletions polyfill/lib/ecmascript.mjs
Original file line number Diff line number Diff line change
Expand Up @@ -1246,7 +1246,7 @@ export const ES = ObjectAssign({}, ES2020, {
calendar = item.calendar;
if (calendar) {
calendar = ES.ToTemporalCalendar(calendar);
if (ES.CalendarToString(calendar) !== 'iso8601') {
if (ES.ToString(calendar) !== 'iso8601') {
throw new RangeError('PlainTime can only have iso8601 calendar');
}
}
Expand Down Expand Up @@ -1449,11 +1449,6 @@ export const ES = ObjectAssign({}, ES2020, {
const array = ES.Call(fields, calendar, [fieldNames]);
return ES.CreateListFromArrayLike(array, ['String']);
},
CalendarToString: (calendar) => {
let toString = calendar.toString;
if (toString === undefined) toString = GetIntrinsic('%Temporal.Calendar.prototype.toString%');
return ES.ToString(ES.Call(toString, calendar));
},

ToTemporalCalendar: (calendarLike) => {
if (ES.Type(calendarLike) === 'Object') {
Expand All @@ -1463,18 +1458,18 @@ export const ES = ObjectAssign({}, ES2020, {
return ES.CalendarFrom(identifier);
},
CalendarCompare: (one, two) => {
const cal1 = ES.CalendarToString(one);
const cal2 = ES.CalendarToString(two);
const cal1 = ES.ToString(one);
const cal2 = ES.ToString(two);
return cal1 < cal2 ? -1 : cal1 > cal2 ? 1 : 0;
},
CalendarEquals: (one, two) => {
const cal1 = ES.CalendarToString(one);
const cal2 = ES.CalendarToString(two);
const cal1 = ES.ToString(one);
const cal2 = ES.ToString(two);
return cal1 === cal2;
},
ConsolidateCalendars: (one, two) => {
const sOne = ES.CalendarToString(one);
const sTwo = ES.CalendarToString(two);
const sOne = ES.ToString(one);
const sTwo = ES.ToString(two);
if (sOne === sTwo || sOne === 'iso8601') {
return two;
} else if (sTwo === 'iso8601') {
Expand Down
10 changes: 5 additions & 5 deletions polyfill/lib/intl.mjs
Original file line number Diff line number Diff line change
Expand Up @@ -278,7 +278,7 @@ function extractOverrides(temporalObj, main) {
const isoYear = GetSlot(temporalObj, ISO_YEAR);
const isoMonth = GetSlot(temporalObj, ISO_MONTH);
const referenceISODay = GetSlot(temporalObj, ISO_DAY);
const calendar = ES.CalendarToString(GetSlot(temporalObj, CALENDAR));
const calendar = ES.ToString(GetSlot(temporalObj, CALENDAR));
if (calendar !== main[CAL_ID]) {
throw new RangeError(
`cannot format PlainYearMonth with calendar ${calendar} in locale with calendar ${main[CAL_ID]}`
Expand All @@ -295,7 +295,7 @@ function extractOverrides(temporalObj, main) {
const referenceISOYear = GetSlot(temporalObj, ISO_YEAR);
const isoMonth = GetSlot(temporalObj, ISO_MONTH);
const isoDay = GetSlot(temporalObj, ISO_DAY);
const calendar = ES.CalendarToString(GetSlot(temporalObj, CALENDAR));
const calendar = ES.ToString(GetSlot(temporalObj, CALENDAR));
if (calendar !== main[CAL_ID]) {
throw new RangeError(
`cannot format PlainMonthDay with calendar ${calendar} in locale with calendar ${main[CAL_ID]}`
Expand All @@ -312,7 +312,7 @@ function extractOverrides(temporalObj, main) {
const isoYear = GetSlot(temporalObj, ISO_YEAR);
const isoMonth = GetSlot(temporalObj, ISO_MONTH);
const isoDay = GetSlot(temporalObj, ISO_DAY);
const calendar = ES.CalendarToString(GetSlot(temporalObj, CALENDAR));
const calendar = ES.ToString(GetSlot(temporalObj, CALENDAR));
if (calendar !== 'iso8601' && calendar !== main[CAL_ID]) {
throw new RangeError(`cannot format PlainDate with calendar ${calendar} in locale with calendar ${main[CAL_ID]}`);
}
Expand All @@ -333,7 +333,7 @@ function extractOverrides(temporalObj, main) {
const millisecond = GetSlot(temporalObj, ISO_MILLISECOND);
const microsecond = GetSlot(temporalObj, ISO_MICROSECOND);
const nanosecond = GetSlot(temporalObj, ISO_NANOSECOND);
const calendar = ES.CalendarToString(GetSlot(temporalObj, CALENDAR));
const calendar = ES.ToString(GetSlot(temporalObj, CALENDAR));
if (calendar !== 'iso8601' && calendar !== main[CAL_ID]) {
throw new RangeError(
`cannot format PlainDateTime with calendar ${calendar} in locale with calendar ${main[CAL_ID]}`
Expand Down Expand Up @@ -361,7 +361,7 @@ function extractOverrides(temporalObj, main) {
}

if (ES.IsTemporalZonedDateTime(temporalObj)) {
const calendar = ES.CalendarToString(GetSlot(temporalObj, CALENDAR));
const calendar = ES.ToString(GetSlot(temporalObj, CALENDAR));
if (calendar !== 'iso8601' && calendar !== main[CAL_ID]) {
throw new RangeError(
`cannot format ZonedDateTime with calendar ${calendar} in locale with calendar ${main[CAL_ID]}`
Expand Down
10 changes: 5 additions & 5 deletions polyfill/lib/plaindate.mjs
Original file line number Diff line number Diff line change
Expand Up @@ -27,7 +27,7 @@ function TemporalDateToString(date, showCalendar = 'auto') {
const year = ES.ISOYearString(GetSlot(date, ISO_YEAR));
const month = ES.ISODateTimePartString(GetSlot(date, ISO_MONTH));
const day = ES.ISODateTimePartString(GetSlot(date, ISO_DAY));
const calendarID = ES.CalendarToString(GetSlot(date, CALENDAR));
const calendarID = ES.ToString(GetSlot(date, CALENDAR));
const calendar = ES.FormatCalendarAnnotation(calendarID, showCalendar);
return `${year}-${month}-${day}${calendar}`;
}
Expand Down Expand Up @@ -179,8 +179,8 @@ export class PlainDate {
other = ES.ToTemporalDate(other, PlainDate);
const calendar = GetSlot(this, CALENDAR);
const otherCalendar = GetSlot(other, CALENDAR);
const calendarId = ES.CalendarToString(calendar);
const otherCalendarId = ES.CalendarToString(otherCalendar);
const calendarId = ES.ToString(calendar);
const otherCalendarId = ES.ToString(otherCalendar);
if (calendarId !== otherCalendarId) {
throw new RangeError(`cannot compute difference between dates of ${calendarId} and ${otherCalendarId} calendars`);
}
Expand Down Expand Up @@ -236,8 +236,8 @@ export class PlainDate {
other = ES.ToTemporalDate(other, PlainDate);
const calendar = GetSlot(this, CALENDAR);
const otherCalendar = GetSlot(other, CALENDAR);
const calendarId = ES.CalendarToString(calendar);
const otherCalendarId = ES.CalendarToString(otherCalendar);
const calendarId = ES.ToString(calendar);
const otherCalendarId = ES.ToString(otherCalendar);
if (calendarId !== otherCalendarId) {
throw new RangeError(`cannot compute difference between dates of ${calendarId} and ${otherCalendarId} calendars`);
}
Expand Down
10 changes: 5 additions & 5 deletions polyfill/lib/plaindatetime.mjs
Original file line number Diff line number Diff line change
Expand Up @@ -58,7 +58,7 @@ function DateTimeToString(dateTime, precision, showCalendar = 'auto', options =
hour = ES.ISODateTimePartString(hour);
minute = ES.ISODateTimePartString(minute);
const seconds = ES.FormatSecondsStringPart(second, millisecond, microsecond, nanosecond, precision);
const calendarID = ES.CalendarToString(GetSlot(dateTime, CALENDAR));
const calendarID = ES.ToString(GetSlot(dateTime, CALENDAR));
const calendar = ES.FormatCalendarAnnotation(calendarID, showCalendar);
return `${year}-${month}-${day}T${hour}:${minute}${seconds}${calendar}`;
}
Expand Down Expand Up @@ -412,8 +412,8 @@ export class PlainDateTime {
other = ES.ToTemporalDateTime(other, PlainDateTime);
const calendar = GetSlot(this, CALENDAR);
const otherCalendar = GetSlot(other, CALENDAR);
const calendarId = ES.CalendarToString(calendar);
const otherCalendarId = ES.CalendarToString(otherCalendar);
const calendarId = ES.ToString(calendar);
const otherCalendarId = ES.ToString(otherCalendar);
if (calendarId !== otherCalendarId) {
throw new RangeError(`cannot compute difference between dates of ${calendarId} and ${otherCalendarId} calendars`);
}
Expand Down Expand Up @@ -505,8 +505,8 @@ export class PlainDateTime {
other = ES.ToTemporalDateTime(other, PlainDateTime);
const calendar = GetSlot(this, CALENDAR);
const otherCalendar = GetSlot(other, CALENDAR);
const calendarId = ES.CalendarToString(calendar);
const otherCalendarId = ES.CalendarToString(otherCalendar);
const calendarId = ES.ToString(calendar);
const otherCalendarId = ES.ToString(otherCalendar);
if (calendarId !== otherCalendarId) {
throw new RangeError(`cannot compute difference between dates of ${calendarId} and ${otherCalendarId} calendars`);
}
Expand Down
2 changes: 1 addition & 1 deletion polyfill/lib/plainmonthday.mjs
Original file line number Diff line number Diff line change
Expand Up @@ -12,7 +12,7 @@ function MonthDayToString(monthDay, showCalendar = 'auto') {
const day = ES.ISODateTimePartString(GetSlot(monthDay, ISO_DAY));
let resultString = `${month}-${day}`;
const calendar = GetSlot(monthDay, CALENDAR);
const calendarID = ES.CalendarToString(calendar);
const calendarID = ES.ToString(calendar);
if (calendarID !== 'iso8601') {
const year = ES.ISOYearString(GetSlot(monthDay, ISO_YEAR));
resultString = `${year}-${resultString}`;
Expand Down
10 changes: 5 additions & 5 deletions polyfill/lib/plainyearmonth.mjs
Original file line number Diff line number Diff line change
Expand Up @@ -12,7 +12,7 @@ function YearMonthToString(yearMonth, showCalendar = 'auto') {
const month = ES.ISODateTimePartString(GetSlot(yearMonth, ISO_MONTH));
let resultString = `${year}-${month}`;
const calendar = GetSlot(yearMonth, CALENDAR);
const calendarID = ES.CalendarToString(calendar);
const calendarID = ES.ToString(calendar);
if (calendarID !== 'iso8601') {
const day = ES.ISODateTimePartString(GetSlot(yearMonth, ISO_DAY));
resultString += `-${day}`;
Expand Down Expand Up @@ -175,8 +175,8 @@ export class PlainYearMonth {
other = ES.ToTemporalYearMonth(other, PlainYearMonth);
const calendar = GetSlot(this, CALENDAR);
const otherCalendar = GetSlot(other, CALENDAR);
const calendarID = ES.CalendarToString(calendar);
const otherCalendarID = ES.CalendarToString(otherCalendar);
const calendarID = ES.ToString(calendar);
const otherCalendarID = ES.ToString(otherCalendar);
if (calendarID !== otherCalendarID) {
throw new RangeError(
`cannot compute difference between months of ${calendarID} and ${otherCalendarID} calendars`
Expand Down Expand Up @@ -248,8 +248,8 @@ export class PlainYearMonth {
other = ES.ToTemporalYearMonth(other, PlainYearMonth);
const calendar = GetSlot(this, CALENDAR);
const otherCalendar = GetSlot(other, CALENDAR);
const calendarID = ES.CalendarToString(calendar);
const otherCalendarID = ES.CalendarToString(otherCalendar);
const calendarID = ES.ToString(calendar);
const otherCalendarID = ES.ToString(otherCalendar);
if (calendarID !== otherCalendarID) {
throw new RangeError(
`cannot compute difference between months of ${calendarID} and ${otherCalendarID} calendars`
Expand Down
10 changes: 5 additions & 5 deletions polyfill/lib/zoneddatetime.mjs
Original file line number Diff line number Diff line change
Expand Up @@ -405,8 +405,8 @@ export class ZonedDateTime {
other = ES.ToTemporalZonedDateTime(other, ZonedDateTime);
const calendar = GetSlot(this, CALENDAR);
const otherCalendar = GetSlot(other, CALENDAR);
const calendarId = ES.CalendarToString(calendar);
const otherCalendarId = ES.CalendarToString(otherCalendar);
const calendarId = ES.ToString(calendar);
const otherCalendarId = ES.ToString(otherCalendar);
if (calendarId !== otherCalendarId) {
throw new RangeError(`cannot compute difference between dates of ${calendarId} and ${otherCalendarId} calendars`);
}
Expand Down Expand Up @@ -528,8 +528,8 @@ export class ZonedDateTime {
other = ES.ToTemporalZonedDateTime(other, ZonedDateTime);
const calendar = GetSlot(this, CALENDAR);
const otherCalendar = GetSlot(other, CALENDAR);
const calendarId = ES.CalendarToString(calendar);
const otherCalendarId = ES.CalendarToString(otherCalendar);
const calendarId = ES.ToString(calendar);
const otherCalendarId = ES.ToString(otherCalendar);
if (calendarId !== otherCalendarId) {
throw new RangeError(`cannot compute difference between dates of ${calendarId} and ${otherCalendarId} calendars`);
}
Expand Down Expand Up @@ -911,7 +911,7 @@ function zonedDateTimeToString(
let result = `${year}-${month}-${day}T${hour}:${minute}${seconds}`;
if (showOffset !== 'never') result += ES.GetOffsetStringFor(tz, instant);
if (showTimeZone !== 'never') result += `[${ES.TimeZoneToString(tz)}]`;
const calendarID = ES.CalendarToString(GetSlot(zdt, CALENDAR));
const calendarID = ES.ToString(GetSlot(zdt, CALENDAR));
result += ES.FormatCalendarAnnotation(calendarID, showCalendar);
return result;
}
28 changes: 8 additions & 20 deletions spec/calendar.html
Original file line number Diff line number Diff line change
Expand Up @@ -35,15 +35,6 @@ <h1>GetISO8601Calendar ( )</h1>
</emu-alg>
</emu-clause>

<emu-clause id="sec-temporal-calendartostring" aoid="CalendarToString">
<h1>CalendarToString ( _calendar_ )</h1>
<emu-alg>
1. Let _toString_ be ? Get(_calendar_, *"toString"*).
1. If _toString_ is *undefined*, set _toString_ to %Temporal.Calendar.prototype.toString%.
1. Return ? ToString(? Call(_toString_ , _calendar_, « »)).
</emu-alg>
</emu-clause>

<emu-clause id="sec-temporal-calendarfields" aoid="CalendarFields">
<h1>CalendarFields ( _calendar_, _fieldNames_ )</h1>
<p>
Expand Down Expand Up @@ -209,8 +200,8 @@ <h1>FormatCalendarAnnotation ( _id_, _showCalendar_ )</h1>
<emu-clause id="sec-temporal-comparecalendar" aoid="CompareCalendar">
<h1>CompareCalendar ( _one_, _two_ )</h1>
<emu-alg>
1. Let _calendarOne_ be ? CalendarToString(_one_).
1. Let _calendarTwo_ be ? CalendarToString(_two_).
1. Let _calendarOne_ be ? ToString(_one_).
1. Let _calendarTwo_ be ? ToString(_two_).
1. Let _r_ be the result of performing Abstract Relational Comparison _calendarOne_ &lt; _calendarTwo_.
1. If _r_ is *true*, return −1.
1. Let _r_ be the result of performing Abstract Relational Comparison _calendarTwo_ &lt; _calendarOne_.
Expand All @@ -222,8 +213,8 @@ <h1>CompareCalendar ( _one_, _two_ )</h1>
<emu-clause id="sec-temporal-calendarequals" aoid="CalendarEquals">
<h1>CalendarEquals ( _one_, _two_ )</h1>
<emu-alg>
1. Let _calendarOne_ be ? CalendarToString(_one_).
1. Let _calendarTwo_ be ? CalendarToString(_two_).
1. Let _calendarOne_ be ? ToString(_one_).
1. Let _calendarTwo_ be ? ToString(_two_).
1. If _calendarOne_ is _calendarTwo_, return *true*.
1. Return *false*.
</emu-alg>
Expand All @@ -232,8 +223,8 @@ <h1>CalendarEquals ( _one_, _two_ )</h1>
<emu-clause id="sec-temporal-consolidatecalendars" aoid="ConsolidateCalendars">
<h1>ConsolidateCalendars ( _one_, _two_ )</h1>
<emu-alg>
1. Let _calendarOne_ be ? CalendarToString(_one_).
1. Let _calendarTwo_ be ? CalendarToString(_two_).
1. Let _calendarOne_ be ? ToString(_one_).
1. Let _calendarTwo_ be ? ToString(_two_).
1. If _calendarOne_ is _calendarTwo_, return _two_.
1. If _calendarOne_ is *"iso8601"*, return _two_.
1. If _calendarTwo_ is *"iso8601"*, return _one_.
Expand Down Expand Up @@ -514,7 +505,7 @@ <h1>get Temporal.Calendar.prototype.id</h1>
</p>
<emu-alg>
1. Let _calendar_ be the *this* value.
1. Return ? CalendarToString(_calendar_).
1. Return ? ToString(_calendar_).
</emu-alg>
</emu-clause>

Expand Down Expand Up @@ -867,9 +858,6 @@ <h1>Temporal.Calendar.prototype.toString ( )</h1>
1. Perform ? RequireInternalSlot(_calendar_, [[InitializedTemporalCalendar]]).
1. Return _calendar_.[[Identifier]].
</emu-alg>
<p>
This function is the <dfn>%Temporal.Calendar.prototype.toString%</dfn> intrinsic object.
</p>
</emu-clause>

<emu-clause id="sec-temporal.calendar.prototype.tojson">
Expand All @@ -879,7 +867,7 @@ <h1>Temporal.Calendar.prototype.toJSON ( )</h1>
</p>
<emu-alg>
1. Let _calendar_ be the *this* value.
1. Return ? CalendarToString(_calendar_).
1. Return ? ToString(_calendar_).
</emu-alg>
</emu-clause>
</emu-clause>
Expand Down
10 changes: 5 additions & 5 deletions spec/intl.html
Original file line number Diff line number Diff line change
Expand Up @@ -300,7 +300,7 @@ <h1>PartitionDateTimePattern ( _dateTimeFormat_, _x_ )</h1>
1. <mark>TODO: _era_, _dayPeriod_, _fractionalSecondDigits_.</mark>
1. <ins>If _x_ has an [[InitializedTemporalDate]] internal slot, then</ins>
1. <ins>Let _pattern_ be _dateTimeFormat_.[[TemporalPlainDatePattern]].</ins>
1. <ins>Let _calendar_ be ? CalendarToString(_x_.[[Calendar]]).</ins>
1. <ins>Let _calendar_ be ? ToString(_x_.[[Calendar]]).</ins>
1. <ins>If _calendar_ is _dateTimeFormat_.[[Calendar]], then</ins>
1. <ins>Let _calendarOverride_ be _x_.[[Calendar]].</ins>
1. <ins>Else if _calendar_ is *"iso8601"*, then</ins>
Expand All @@ -311,14 +311,14 @@ <h1>PartitionDateTimePattern ( _dateTimeFormat_, _x_ )</h1>
1. <ins>Let _instant_ be ? GetTemporalInstantFor(_timeZone_, _plainDateTime_, *"reject"*).</ins>
1. <ins>If _x_ has an [[InitializedTemporalYearMonth]] internal slot, then</ins>
1. <ins>Let _pattern_ be _dateTimeFormat_.[[TemporalPlainYearMonthPattern]].</ins>
1. <ins>Let _calendar_ be ? CalendarToString(_x_.[[Calendar]]).</ins>
1. <ins>Let _calendar_ be ? ToString(_x_.[[Calendar]]).</ins>
1. <ins>If _calendar_ is not equal to _dateTimeFormat_.[[Calendar]], then</ins>
1. <ins>Throw a *RangeError* exception.</ins>
1. <ins>Let _plainDateTime_ be ? CreateTemporalDateTime(_x_.[[ISOYear]], _x_.[[ISOMonth]], _x_.[[ISODay]], 12, 0, 0, 0, 0, 0, _x_.[[Calendar]]).</ins>
1. <ins>Let _instant_ be ? GetTemporalInstantFor(_timeZone_, _plainDateTime_, *"reject"*).</ins>
1. <ins>If _x_ has an [[InitializedTemporalMonthDay]] internal slot, then</ins>
1. <ins>Let _pattern_ be _dateTimeFormat_.[[TemporalPlainMonthDayPattern]].</ins>
1. <ins>Let _calendar_ be ? CalendarToString(_x_.[[Calendar]]).</ins>
1. <ins>Let _calendar_ be ? ToString(_x_.[[Calendar]]).</ins>
1. <ins>If _calendar_ is not equal to _dateTimeFormat_.[[Calendar]], then</ins>
1. <ins>Throw a *RangeError* exception.</ins>
1. <ins>Let _plainDateTime_ be ? CreateTemporalDateTime(_x_.[[ISOYear]], _x_.[[ISOMonth]], _x_.[[ISODay]], 12, 0, 0, 0, 0, 0, _x_.[[Calendar]]).</ins>
Expand All @@ -330,7 +330,7 @@ <h1>PartitionDateTimePattern ( _dateTimeFormat_, _x_ )</h1>
1. <ins>Let _instant_ be ? GetTemporalInstantFor(_timeZone_, _plainDateTime_, *"reject"*).</ins>
1. <ins>If _x_ has an [[InitializedTemporalDateTime]] internal slot, then</ins>
1. <ins>Let _pattern_ be _dateTimeFormat_.[[TemporalPlainDateTimePattern]].</ins>
1. <ins>Let _calendar_ be ? CalendarToString(_x_.[[Calendar]]).</ins>
1. <ins>Let _calendar_ be ? ToString(_x_.[[Calendar]]).</ins>
1. <ins>If _calendar_ is not *"iso8601"* and not equal to _dateTimeFormat_.[[Calendar]], then</ins>
1. <ins>Throw a *RangeError* exception.</ins>
1. <ins>Let _instant_ be ? GetTemporalInstantFor(_timeZone_, _x_, *"reject"*).</ins>
Expand All @@ -339,7 +339,7 @@ <h1>PartitionDateTimePattern ( _dateTimeFormat_, _x_ )</h1>
1. <ins>Let _instant_ be _x_.</ins>
1. <ins>If _x_ has an [[InitializedTemporalZonedDateTime]] internal slot, then</ins>
1. <ins>Let _pattern_ be _dateTimeFormat_.[[TemporalZonedDateTimePattern]].</ins>
1. <ins>Let _calendar_ be ? CalendarToString(_x_.[[Calendar]]).</ins>
1. <ins>Let _calendar_ be ? ToString(_x_.[[Calendar]]).</ins>
1. <ins>If _calendar_ is not *"iso8601"* and not equal to _dateTimeFormat_.[[Calendar]], then</ins>
1. <ins>Throw a *RangeError* exception.</ins>
1. <ins>Let _timeZone_ be ? TimeZoneToString(_x_.[[TimeZone]]).</ins>
Expand Down
Loading

0 comments on commit 4d397ad

Please sign in to comment.