seconds = duration.seconds || duration.second || duration.s || 0,
milliseconds = duration.milliseconds || duration.millisecond || duration.ms || 0;
+ // store reference to input for deterministic cloning
+ this._input = duration;
+
// representation for dateAddRemove
this._milliseconds = milliseconds +
seconds * 1e3 + // 1000
moment.duration = function (input, key) {
var isDuration = moment.isDuration(input),
isNumber = (typeof input === 'number'),
- duration = (isDuration ? input._data : (isNumber ? {} : input)),
+ duration = (isDuration ? input._input : (isNumber ? {} : input)),
matched = aspNetTimeSpanJsonRegex.exec(input),
sign,
ret;
"instantiation from another duration" : function(test) {
var simple = moment.duration(1234),
+ lengthy = moment.duration(60 * 60 * 24 * 360 * 1e3),
complicated = moment.duration({
years: 2,
months: 3,
milliseconds: 12
});
- test.expect(2);
+ test.expect(3);
test.deepEqual(moment.duration(simple), simple, "simple clones are equal");
+ test.deepEqual(moment.duration(lengthy), lengthy, "lengthy clones are equal");
test.deepEqual(moment.duration(complicated), complicated, "complicated clones are equal");
test.done();
},