function setMonth(dirtyDate, dirtyMonth) {
  __WEBPACK_IMPORTED_MODULE_3__lib_requiredArgs_index_js__["a" /* default */](2, arguments);
  var date = __WEBPACK_IMPORTED_MODULE_1__toDate_index_js__["a" /* default */](dirtyDate);
  var month = __WEBPACK_IMPORTED_MODULE_0__lib_toInteger_index_js__["a" /* default */](dirtyMonth);
  var year = date.getFullYear();
  var day = date.getDate();
  var dateWithDesiredMonth = new Date(0);
  dateWithDesiredMonth.setFullYear(year, month, 15);
  dateWithDesiredMonth.setHours(0, 0, 0, 0);
  var daysInMonth = __WEBPACK_IMPORTED_MODULE_2__getDaysInMonth_index_js__["a" /* default */](dateWithDesiredMonth); // Set the last day of the new month
  // if the original date was the last day of the longer month

  date.setMonth(month, Math.min(day, daysInMonth));
  return date;
}
@name setMonth
@category Month Helpers
@summary Set the month to the given date.

@description
Set the month to the given date.

### v2.0.0 breaking changes:

- [Changes that are common for the whole library](https://github.com/date-fns/date-fns/blob/master/docs/upgradeGuide.md#Common-Changes).

@param {Date|Number} date - the date to be changed
@param {Number} month - the month of the new date
@returns {Date} the new date with the month set
@throws {TypeError} 2 arguments required

@example
// Set February to 1 September 2014:
var result = setMonth(new Date(2014, 8, 1), 1)
//=> Sat Feb 01 2014 00:00:00