From: alburthoffman Date: Mon, 5 Oct 2015 14:48:49 +0000 (+0800) Subject: fix issue #2640: support instanceof operator X-Git-Tag: 2.11.0~36^2~1 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=0d8e6452ecd4923220134ed8a3c78cafb6ed82c1;p=thirdparty%2Fmoment.git fix issue #2640: support instanceof operator --- diff --git a/src/moment.js b/src/moment.js index 15fe0e6a7..58a493131 100644 --- a/src/moment.js +++ b/src/moment.js @@ -64,5 +64,6 @@ moment.defineLocale = defineLocale; moment.weekdaysShort = weekdaysShort; moment.normalizeUnits = normalizeUnits; moment.relativeTimeThreshold = relativeTimeThreshold; +moment.prototype = fn; export default moment; diff --git a/src/test/moment/instanceof.js b/src/test/moment/instanceof.js new file mode 100644 index 000000000..31d006516 --- /dev/null +++ b/src/test/moment/instanceof.js @@ -0,0 +1,28 @@ +import { module, test } from '../qunit'; +import moment from '../../moment'; + +module('instanceof'); + +test('instanceof', function (assert) { + var mm = moment([2010, 0, 1]); + + var extend = function (a, b) { + var i; + for (i in b) { + a[i] = b[i]; + } + return a; + }; + + assert.equal(moment() instanceof moment, true, 'simple moment object'); + assert.equal(extend({}, moment()) instanceof moment, false, 'extended moment object'); + assert.equal(moment(null) instanceof moment, true, 'invalid moment object'); + + assert.equal(new Date() instanceof moment, false, 'date object is not moment object'); + assert.equal(Object instanceof moment, false, 'Object is not moment object'); + assert.equal('foo' instanceof moment, false, 'string is not moment object'); + assert.equal(1 instanceof moment, false, 'number is not moment object'); + assert.equal(NaN instanceof moment, false, 'NaN is not moment object'); + assert.equal(null instanceof moment, false, 'null is not moment object'); + assert.equal(undefined instanceof moment, false, 'undefined is not moment object'); +}); \ No newline at end of file