{"ScriptPreparationCode":"var _sortMomentDates = (a, b) =\u003E {\r\n if (a.isSame(b)) {\r\n return 0;\r\n }\r\n\r\n return a.isBefore(b) ? -1 : 1;\r\n};\r\n\r\nvar _sortDateValues = (a, b) =\u003E b - a;\r\n\r\nvar sortMomentDates = _.memoize(_sortMomentDates, (...args) =\u003E args.map(v =\u003E v.format(\u0027MM/DD/YYYY\u0027)).join(\u0022_\u0022));\r\nvar sortDateValues = _.memoize(_sortDateValues, (a, b) =\u003E BigInt(a) \u003C\u003C 17n | BigInt(b));\r\n\r\nvar rawDates = [{\u0022startDate\u0022:\u00222020-02-01\u0022,\u0022endDate\u0022:\u00222020-02-29\u0022},{\u0022startDate\u0022:\u00222020-02-01\u0022,\u0022endDate\u0022:\u00222020-02-29\u0022},{\u0022startDate\u0022:\u00222020-03-01\u0022,\u0022endDate\u0022:\u00222020-03-31\u0022},{\u0022startDate\u0022:\u00222020-03-01\u0022,\u0022endDate\u0022:\u00222020-03-31\u0022},{\u0022startDate\u0022:\u00222020-03-01\u0022,\u0022endDate\u0022:\u00222020-03-31\u0022},{\u0022startDate\u0022:\u00222020-04-01\u0022,\u0022endDate\u0022:\u00222020-04-30\u0022},{\u0022startDate\u0022:\u00222020-04-01\u0022,\u0022endDate\u0022:\u00222020-04-30\u0022},{\u0022startDate\u0022:\u00222020-04-01\u0022,\u0022endDate\u0022:\u00222020-04-30\u0022},{\u0022startDate\u0022:\u00222020-05-01\u0022,\u0022endDate\u0022:\u00222020-05-31\u0022},{\u0022startDate\u0022:\u00222020-05-01\u0022,\u0022endDate\u0022:\u00222020-05-31\u0022},{\u0022startDate\u0022:\u00222020-05-01\u0022,\u0022endDate\u0022:\u00222020-05-31\u0022},{\u0022startDate\u0022:\u00222020-06-01\u0022,\u0022endDate\u0022:\u00222020-06-30\u0022},{\u0022startDate\u0022:\u00222020-06-01\u0022,\u0022endDate\u0022:\u00222020-06-30\u0022},{\u0022startDate\u0022:\u00222020-06-01\u0022,\u0022endDate\u0022:\u00222020-06-30\u0022},{\u0022startDate\u0022:\u00222020-06-01\u0022,\u0022endDate\u0022:\u00222020-06-30\u0022},{\u0022startDate\u0022:\u00222020-06-01\u0022,\u0022endDate\u0022:\u00222020-06-30\u0022},{\u0022startDate\u0022:\u00222020-07-01\u0022,\u0022endDate\u0022:\u00222020-07-31\u0022},{\u0022startDate\u0022:\u00222020-07-01\u0022,\u0022endDate\u0022:\u00222020-07-31\u0022},{\u0022startDate\u0022:\u00222020-07-01\u0022,\u0022endDate\u0022:\u00222020-07-31\u0022},{\u0022startDate\u0022:\u00222020-07-01\u0022,\u0022endDate\u0022:\u00222020-07-31\u0022},{\u0022startDate\u0022:\u00222020-07-01\u0022,\u0022endDate\u0022:\u00222020-07-31\u0022},{\u0022startDate\u0022:\u00222020-08-01\u0022,\u0022endDate\u0022:\u00222020-08-31\u0022},{\u0022startDate\u0022:\u00222020-08-01\u0022,\u0022endDate\u0022:\u00222020-08-31\u0022},{\u0022startDate\u0022:\u00222020-08-01\u0022,\u0022endDate\u0022:\u00222020-08-31\u0022},{\u0022startDate\u0022:\u00222020-08-01\u0022,\u0022endDate\u0022:\u00222020-08-31\u0022},{\u0022startDate\u0022:\u00222020-08-01\u0022,\u0022endDate\u0022:\u00222020-08-31\u0022},{\u0022startDate\u0022:\u00222020-09-01\u0022,\u0022endDate\u0022:\u00222020-09-30\u0022},{\u0022startDate\u0022:\u00222020-09-01\u0022,\u0022endDate\u0022:\u00222020-09-30\u0022},{\u0022startDate\u0022:\u00222020-09-01\u0022,\u0022endDate\u0022:\u00222020-09-30\u0022},{\u0022startDate\u0022:\u00222020-09-01\u0022,\u0022endDate\u0022:\u00222020-09-30\u0022},{\u0022startDate\u0022:\u00222020-09-01\u0022,\u0022endDate\u0022:\u00222020-09-30\u0022},{\u0022startDate\u0022:\u00222020-10-01\u0022,\u0022endDate\u0022:\u00222020-10-31\u0022},{\u0022startDate\u0022:\u00222020-10-01\u0022,\u0022endDate\u0022:\u00222020-10-31\u0022},{\u0022startDate\u0022:\u00222020-10-01\u0022,\u0022endDate\u0022:\u00222020-10-31\u0022},{\u0022startDate\u0022:\u00222020-10-01\u0022,\u0022endDate\u0022:\u00222020-10-31\u0022},{\u0022startDate\u0022:\u00222020-10-01\u0022,\u0022endDate\u0022:\u00222020-10-31\u0022},{\u0022startDate\u0022:\u00222020-11-01\u0022,\u0022endDate\u0022:\u00222020-11-30\u0022},{\u0022startDate\u0022:\u00222020-11-01\u0022,\u0022endDate\u0022:\u00222020-11-30\u0022},{\u0022startDate\u0022:\u00222020-11-01\u0022,\u0022endDate\u0022:\u00222020-11-30\u0022},{\u0022startDate\u0022:\u00222020-11-01\u0022,\u0022endDate\u0022:\u00222020-11-30\u0022},{\u0022startDate\u0022:\u00222020-11-01\u0022,\u0022endDate\u0022:\u00222020-11-30\u0022},{\u0022startDate\u0022:\u00222020-12-01\u0022,\u0022endDate\u0022:\u00222020-12-31\u0022},{\u0022startDate\u0022:\u00222020-12-01\u0022,\u0022endDate\u0022:\u00222020-12-31\u0022},{\u0022startDate\u0022:\u00222020-12-01\u0022,\u0022endDate\u0022:\u00222020-12-31\u0022},{\u0022startDate\u0022:\u00222020-12-01\u0022,\u0022endDate\u0022:\u00222020-12-31\u0022},{\u0022startDate\u0022:\u00222020-12-01\u0022,\u0022endDate\u0022:\u00222020-12-31\u0022},{\u0022startDate\u0022:\u00222020-02-01\u0022,\u0022endDate\u0022:\u00222020-02-29\u0022},{\u0022startDate\u0022:\u00222020-03-01\u0022,\u0022endDate\u0022:\u00222020-03-31\u0022},{\u0022startDate\u0022:\u00222020-04-01\u0022,\u0022endDate\u0022:\u00222020-04-30\u0022},{\u0022startDate\u0022:\u00222020-05-01\u0022,\u0022endDate\u0022:\u00222020-05-31\u0022},{\u0022startDate\u0022:\u00222020-06-01\u0022,\u0022endDate\u0022:\u00222020-06-30\u0022},{\u0022startDate\u0022:\u00222020-07-01\u0022,\u0022endDate\u0022:\u00222020-07-31\u0022},{\u0022startDate\u0022:\u00222020-08-01\u0022,\u0022endDate\u0022:\u00222020-08-31\u0022},{\u0022startDate\u0022:\u00222020-09-01\u0022,\u0022endDate\u0022:\u00222020-09-30\u0022},{\u0022startDate\u0022:\u00222020-10-01\u0022,\u0022endDate\u0022:\u00222020-10-31\u0022},{\u0022startDate\u0022:\u00222020-11-01\u0022,\u0022endDate\u0022:\u00222020-11-30\u0022},{\u0022startDate\u0022:\u00222020-12-01\u0022,\u0022endDate\u0022:\u00222020-12-31\u0022},{\u0022startDate\u0022:\u00222020-02-01\u0022,\u0022endDate\u0022:\u00222020-02-29\u0022},{\u0022startDate\u0022:\u00222020-03-01\u0022,\u0022endDate\u0022:\u00222020-03-31\u0022},{\u0022startDate\u0022:\u00222020-04-01\u0022,\u0022endDate\u0022:\u00222020-04-30\u0022},{\u0022startDate\u0022:\u00222020-05-01\u0022,\u0022endDate\u0022:\u00222020-05-31\u0022},{\u0022startDate\u0022:\u00222020-03-01\u0022,\u0022endDate\u0022:\u00222020-03-31\u0022},{\u0022startDate\u0022:\u00222020-04-01\u0022,\u0022endDate\u0022:\u00222020-04-30\u0022},{\u0022startDate\u0022:\u00222020-05-01\u0022,\u0022endDate\u0022:\u00222020-05-31\u0022},{\u0022startDate\u0022:\u00222020-02-01\u0022,\u0022endDate\u0022:\u00222020-02-29\u0022},{\u0022startDate\u0022:\u00222020-03-01\u0022,\u0022endDate\u0022:\u00222020-03-31\u0022},{\u0022startDate\u0022:\u00222020-04-01\u0022,\u0022endDate\u0022:\u00222020-04-30\u0022},{\u0022startDate\u0022:\u00222020-05-01\u0022,\u0022endDate\u0022:\u00222020-05-31\u0022},{\u0022startDate\u0022:\u00222020-06-01\u0022,\u0022endDate\u0022:\u00222020-06-30\u0022},{\u0022startDate\u0022:\u00222020-07-01\u0022,\u0022endDate\u0022:\u00222020-07-31\u0022},{\u0022startDate\u0022:\u00222020-08-01\u0022,\u0022endDate\u0022:\u00222020-08-31\u0022},{\u0022startDate\u0022:\u00222020-09-01\u0022,\u0022endDate\u0022:\u00222020-09-30\u0022},{\u0022startDate\u0022:\u00222020-10-01\u0022,\u0022endDate\u0022:\u00222020-10-31\u0022},{\u0022startDate\u0022:\u00222020-11-01\u0022,\u0022endDate\u0022:\u00222020-11-30\u0022},{\u0022startDate\u0022:\u00222020-12-01\u0022,\u0022endDate\u0022:\u00222020-12-31\u0022},{\u0022startDate\u0022:\u00222020-02-01\u0022,\u0022endDate\u0022:\u00222020-02-29\u0022},{\u0022startDate\u0022:\u00222020-03-01\u0022,\u0022endDate\u0022:\u00222020-03-31\u0022},{\u0022startDate\u0022:\u00222020-04-01\u0022,\u0022endDate\u0022:\u00222020-04-30\u0022},{\u0022startDate\u0022:\u00222020-05-01\u0022,\u0022endDate\u0022:\u00222020-05-31\u0022}];\r\n\r\nvar momentDates = rawDates.map(e =\u003E moment(e.startDate));\r\nvar dateValues = momentDates.map(x =\u003E 10000 * x.year() \u002B 100 * x.month() \u002B x.date());","TestCases":[{"Name":"no memoization","Code":"var sortedDates = momentDates.sort(_sortMomentDates);","IsDeferred":false},{"Name":"with memoization","Code":"var sortedDates = momentDates.sort(sortMomentDates);","IsDeferred":false},{"Name":"with memoization (integer)","Code":"var sortedDates = dateValues.sort(sortDateValues);","IsDeferred":false},{"Name":"no memoization (integer)","Code":"var sortedDates = dateValues.sort(_sortDateValues);","IsDeferred":false}]}