From: Iskren Chernev Date: Sun, 20 Sep 2015 01:41:10 +0000 (-0700) Subject: get,set,add,subtract handle properly invalid moments X-Git-Tag: 2.11.0~72^2~3 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=2de9c39f7ac5663fabcc38d19e0ef1f57f229b9c;p=thirdparty%2Fmoment.git get,set,add,subtract handle properly invalid moments --- diff --git a/src/lib/moment/add-subtract.js b/src/lib/moment/add-subtract.js index ebfe674b2..988eff321 100644 --- a/src/lib/moment/add-subtract.js +++ b/src/lib/moment/add-subtract.js @@ -25,6 +25,12 @@ export function addSubtract (mom, duration, isAdding, updateOffset) { var milliseconds = duration._milliseconds, days = duration._days, months = duration._months; + + if (!mom.isValid()) { + // No op + return; + } + updateOffset = updateOffset == null ? true : updateOffset; if (milliseconds) { diff --git a/src/lib/moment/get-set.js b/src/lib/moment/get-set.js index 0f2be6045..a8c6ef691 100644 --- a/src/lib/moment/get-set.js +++ b/src/lib/moment/get-set.js @@ -14,11 +14,14 @@ export function makeGetSet (unit, keepTime) { } export function get (mom, unit) { - return mom._d['get' + (mom._isUTC ? 'UTC' : '') + unit](); + return mom.isValid() ? + mom._d['get' + (mom._isUTC ? 'UTC' : '') + unit]() : NaN; } export function set (mom, unit, value) { - return mom._d['set' + (mom._isUTC ? 'UTC' : '') + unit](value); + if (mom.isValid()) { + mom._d['set' + (mom._isUTC ? 'UTC' : '') + unit](value); + } } // MOMENTS diff --git a/src/lib/units/month.js b/src/lib/units/month.js index 63d18b47f..39193e700 100644 --- a/src/lib/units/month.js +++ b/src/lib/units/month.js @@ -100,6 +100,11 @@ export function localeMonthsParse (monthName, format, strict) { export function setMonth (mom, value) { var dayOfMonth; + if (!mom.isValid()) { + // No op + return mom; + } + // TODO: Move this out of here! if (typeof value === 'string') { value = mom.localeData().monthsParse(value);