You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
_calendar_: a calendar type that is not *"iso8601"*,
887
+
_arithmeticYear_: an integer,
888
+
_ordinalMonth_: a positive integer,
889
+
_day_: a positive integer,
890
+
): either a normal completion containing an ISO Date Record or a throw completion
891
+
</h1>
892
+
<dl class="header">
893
+
<dt>description</dt>
894
+
<dd>
895
+
It returns an ISO Date Record that corresponds with the given _calendar_-specific _arithmeticYear_, _ordinalMonth_, and _day_.
896
+
</dd>
897
+
</dl>
898
+
<p>It performs the following steps when called:</p>
899
+
<emu-alg>
900
+
1. If _arithmeticYear_, _ordinalMonth_, and _day_ do not form a valid date in _calendar_, throw a RangeError exception.
901
+
1. Let _isoDate_ be an ISO Date Record such that CalendarISOToDate(_calendar_, _isoDate_) returns a Calendar Date Record whose [[Year]], [[Month]], and [[Day]] field values respectively equal _arithmeticYear_, _ordinalMonth_, and _day_.
@@ -1103,8 +1146,14 @@ contributors: Google, Ecma International
1103
1146
1. Let _ordinalMonth_ be _fields_.[[Month]].
1104
1147
1. Let _day_ be _fields_.[[Day]].
1105
1148
1. Assert: _day_ is not ~unset~.
1106
-
1. If the date described by _calendar_, _arithmeticYear_, _ordinalMonth_, and _day_ does not exist, set _day_ to the closest day in the same month. If there are two equally-close dates in the same month, pick the later one.
1107
-
1. Return an implementation-defined ISO Date Record that corresponds to the date described by _calendar_, _arithmeticYear_, _ordinalMonth_, and _day_.
1149
+
1. Let _daysInMonth_ be CalendarDaysInMonth(_calendar_, _arithmeticYear_, _ordinalMonth_).
1150
+
1. If _daysInMonth_ < _day_, then
1151
+
1. If _overflow_ is ~reject~, throw a *RangeError* exception.
0 commit comments