From: Kunal Marwaha Date: Tue, 21 Feb 2017 08:02:25 +0000 (-0500) Subject: Create moment.duration.invalid() X-Git-Tag: 2.18.0~45^2 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=5b88a92fd04a8f5bd521c630ee62b8e954bdf8bf;p=thirdparty%2Fmoment.git Create moment.duration.invalid() --- diff --git a/src/lib/duration/create.js b/src/lib/duration/create.js index 09af9e24f..9b6d5a964 100644 --- a/src/lib/duration/create.js +++ b/src/lib/duration/create.js @@ -6,6 +6,7 @@ import hasOwnProp from '../utils/has-own-prop'; import { DATE, HOUR, MINUTE, SECOND, MILLISECOND } from '../units/constants'; import { cloneWithOffset } from '../units/offset'; import { createLocal } from '../create/local'; +import { createInvalid as invalid } from './valid'; // ASP.NET json date format regex var aspNetRegex = /^(\-)?(?:(\d*)[. ])?(\d+)\:(\d+)(?:\:(\d+)(\.\d*)?)?$/; @@ -77,6 +78,7 @@ export function createDuration (input, key) { } createDuration.fn = Duration.prototype; +createDuration.invalid = invalid; function parseIso (inp, sign) { // We'd normally use ~~inp for this, but unfortunately it also diff --git a/src/lib/duration/valid.js b/src/lib/duration/valid.js index 17146b51b..842585f32 100644 --- a/src/lib/duration/valid.js +++ b/src/lib/duration/valid.js @@ -1,4 +1,6 @@ import toInt from '../utils/to-int'; +import {Duration} from './constructor'; +import {createDuration} from './create'; var ordering = ['year', 'quarter', 'month', 'week', 'day', 'hour', 'minute', 'second', 'millisecond']; @@ -27,3 +29,7 @@ export default function isDurationValid(m) { export function isValid() { return this._isValid; } + +export function createInvalid() { + return createDuration(NaN); +} diff --git a/src/test/moment/duration_invalid.js b/src/test/moment/duration_invalid.js index 68263ba9d..4b023a880 100644 --- a/src/test/moment/duration_invalid.js +++ b/src/test/moment/duration_invalid.js @@ -4,12 +4,12 @@ import moment from '../../moment'; module('invalid'); test('invalid duration', function (assert) { - var m = moment.duration(NaN); // should be invalid + var m = moment.duration.invalid(); // should be invalid assert.equal(m.isValid(), false); assert.ok(isNaN(m.valueOf())); }); -test('valid duration - as per @ichernev', function (assert) { +test('valid duration', function (assert) { var m = moment.duration({d: null}); // should be valid, for now assert.equal(m.isValid(), true); assert.equal(m.valueOf(), 0); @@ -36,7 +36,8 @@ test('invalid duration with two arguments', function (assert) { test('invalid duration operations', function (assert) { var invalids = [ moment.duration(NaN), - moment.duration(NaN, 'days') + moment.duration(NaN, 'days'), + moment.duration.invalid() ], i, invalid,