     1. If _overflow_ is ~constrain~, then
          1. Set _month_ to the result of clamping _month_ between 1 and 12.
          1. Let _daysInMonth_ be ISODaysInMonth(_year_, _month_).
          1. Set _day_ to the result of clamping _day_ between 1 and _daysInMonth_.
        1. Else,
          1. Assert: _overflow_ is ~reject~.
          1. If IsValidISODate(_year_, _month_, _day_) is *false*, throw a *RangeError* exception.
        1. Return CreateISODateRecord(_year_, _month_, _day_).
      </emu-alg>
