]> git.ipfire.org Git - thirdparty/moment.git/commitdiff
get,set,add,subtract handle properly invalid moments
authorIskren Chernev <iskren.chernev@gmail.com>
Sun, 20 Sep 2015 01:41:10 +0000 (18:41 -0700)
committerIskren Chernev <iskren.chernev@gmail.com>
Mon, 9 Nov 2015 02:20:52 +0000 (18:20 -0800)
src/lib/moment/add-subtract.js
src/lib/moment/get-set.js
src/lib/units/month.js

index ebfe674b2d4f8ba22541f4cdcd81337a2407f0b2..988eff3213a12ad975e04536cfece009f67fb170 100644 (file)
@@ -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) {
index 0f2be6045ef4597dc9c22efea9b293b55a50bb1c..a8c6ef69188202d6ef644a4da7e8d0ee0182f2cf 100644 (file)
@@ -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
index 63d18b47f2fe9e99a5c9c24a1bda5367cf50e8a7..39193e700c5384e794eaca65653f8c3c38f5a855 100644 (file)
@@ -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);