Faulty mixing of calendar domains in PlainYearMonth.add and subtract algorithms
Example below would incorrectly throw, but other examples might return wrong results
m = Temporal.PlainYearMonth.from({ year: 2021, month: 1, calendar: 'chinese' })
// (internally results in ISO reference date 2021-02-12)
m.daysInMonth // => 29
m.subtract({ months: 1 })
// Correct answer: PlainYearMonth in Chinese calendar with ISO reference date 2021-01-13// According to current spec text: Throws
Due to not calculating offset shift at start of day
// Note: 2020-11-01 is a 25-hour day in America/Vancouver time zone
relativeTo = Temporal.ZonedDateTime.from('2019-11-01T00:00-07:00[America/Vancouver]');
d = Temporal.Duration.from({ years: 1, days: 1 })
Temporal.Duration.compare(d, { years: 1, hours: 25 }, { relativeTo })
// Correct answer: 0// According to current spec text: -1
toString() on PlainYearMonth and PlainMonthDay with ISO calendar returned a string that wasn't valid as input to from()
When including the calendar, the ISO reference year / day should always be included as well
new Temporal.PlainYearMonth(2022, 3).toString({ calendarName: 'always' })
// Intended: '2022-03-01[u-ca=iso8601]' (includes ISO reference day)// According to current spec text: '2022-03[u-ca=iso8601]'
Omission such that Intl.DateTimeFormat.formatRange() didn't properly check the types of its arguments when one was a Temporal.PlainMonthDay
dtf = newIntl.DateTimeFormat('en', {calendar: 'iso8601'});
aMonthDay = new Temporal.PlainMonthDay(3, 28);
notAMonthDay = Temporal.Now.instant();
dtf.formatRange(aMonthDay, notAMonthDay)
// Intended: throws TypeError// According to current spec text: some bogus result
Mistake in grammar of Etc/GMT±N time zone names (PR #2050)
Special Etc/GMT time zones not correctly parsed
Temporal.TimeZone.from('2000-01-01T00:00-07:00[Etc/GMT+7]').id
// Intended: "Etc/GMT+7"// Actual, according to current spec text: "-07:00"