var parsedParts = some.call(flags.parsedDateParts, function (i) {
return i != null;
});
- m._isValid = !isNaN(m._d.getTime()) &&
+ var isNowValid = !isNaN(m._d.getTime()) &&
flags.overflow < 0 &&
!flags.empty &&
!flags.invalidMonth &&
(!flags.meridiem || (flags.meridiem && parsedParts));
if (m._strict) {
- m._isValid = m._isValid &&
+ isNowValid = isNowValid &&
flags.charsLeftOver === 0 &&
flags.unusedTokens.length === 0 &&
flags.bigHour === undefined;
}
+
+ if (!Object.isFrozen(m)) {
+ m._isValid = isNowValid;
+ }
+ else {
+ return isNowValid;
+ }
}
return m._isValid;
}
m.year(0);
assert.notEqual(d, m.toDate());
});
+
+test('toJSON', function (assert) {
+ var expected = new Date().toISOString();
+ assert.deepEqual(moment(expected).toJSON(), expected, 'toJSON invalid');
+});
+
+test('toJSON works when moment is frozen', function (assert) {
+ var expected = new Date().toISOString();
+ var m = moment(expected);
+ Object.freeze(m);
+ assert.deepEqual(m.toJSON(), expected, 'toJSON when frozen invalid');
+});