later icon indicating copy to clipboard operation
later copied to clipboard

incompatible with "clj-fuzzy"

Open nitramreffehcs opened this issue 5 years ago • 1 comments

hi, apparently this module doesn't work after "clj-fuzzy" is loaded, i have no idea why, as that module is minified

this is my test code:

const later = require('@breejs/later')

const parsedSchedule = later.parse.text('at 0:00') const scheduleObject = later.schedule(parsedSchedule) let next

next = scheduleObject.next(2)

if (next[0].getTime() === next[1].getTime()) { console.log('NOT OK') } else { console.log('OK') }

require('clj-fuzzy')

next = scheduleObject.next(2)

if (next[0].getTime() === next[1].getTime()) { console.log('NOT OK') } else { console.log('OK') }

in the second test both dates returned by "next" are identical, the current time

FOUND IT !!

that module does this (yes that is totaly wrong) Date.prototype.s = function (a, b) { return b instanceof Date && this.valueOf() === b.valueOf() and later does

val: function val(d) { return d.s || (d.s = later.date.getSec.call(d)); },

(line 363) but, d is a standard javascript date at that time, i understand that this is some kind of optimization ? (are seconds cached this way ?

of course attaching methods to global classes is the problem here, but attaching properties isn't very safe either sadly that other module isn't being maintained

nitramreffehcs avatar Dec 17 '20 04:12 nitramreffehcs

PR welcome

titanism avatar Dec 21 '24 18:12 titanism