static _timeIterators()

in resources/perf.webkit.org/public/v3/components/time-series-chart.js [674:773]


    static _timeIterators()
    {
        var HOUR = 3600 * 1000;
        var DAY = 24 * HOUR;
        return [
            {
                diff: 2 * HOUR,
                next: function (date) {
                    if (date.getUTCHours() >= 22) {
                        date.setUTCHours(0);
                        date.setUTCDate(date.getUTCDate() + 1);
                    } else
                        date.setUTCHours(Math.floor(date.getUTCHours() / 2) * 2 + 2);
                },
            },
            {
                diff: 12 * HOUR,
                next: function (date) {
                    if (date.getUTCHours() >= 12) {
                        date.setUTCHours(0);
                        date.setUTCDate(date.getUTCDate() + 1);
                    } else
                        date.setUTCHours(12);
                },
            },
            {
                diff: DAY,
                next: function (date) {
                    date.setUTCHours(0);
                    date.setUTCDate(date.getUTCDate() + 1);
                }
            },
            {
                diff: 2 * DAY,
                next: function (date) {
                    date.setUTCHours(0);
                    date.setUTCDate(date.getUTCDate() + 2);
                }
            },
            {
                diff: 7 * DAY,
                next: function (date) {
                    date.setUTCHours(0);
                    if (date.getUTCDay())
                        date.setUTCDate(date.getUTCDate() + (7 - date.getUTCDay()));
                    else
                        date.setUTCDate(date.getUTCDate() + 7);
                }
            },
            {
                diff: 16 * DAY,
                next: function (date) {
                    date.setUTCHours(0);
                    if (date.getUTCDate() >= 15) {
                        date.setUTCMonth(date.getUTCMonth() + 1);
                        date.setUTCDate(1);
                    } else
                        date.setUTCDate(15);
                }
            },
            {
                diff: 31 * DAY,
                next: function (date) {
                    date.setUTCHours(0);
                    const dayOfMonth = date.getUTCDate();
                    if (dayOfMonth > 1 && dayOfMonth < 15)
                        date.setUTCDate(15);
                    else {
                        if (dayOfMonth != 15)
                            date.setUTCDate(1);
                        date.setUTCMonth(date.getUTCMonth() + 1);
                    }
                }
            },
            {
                diff: 60 * DAY,
                next: function (date) {
                    date.setUTCHours(0);
                    date.setUTCDate(1);
                    date.setUTCMonth(date.getUTCMonth() + 2);
                }
            },
            {
                diff: 90 * DAY,
                next: function (date) {
                    date.setUTCHours(0);
                    date.setUTCDate(1);
                    date.setUTCMonth(date.getUTCMonth() + 3);
                }
            },
            {
                diff: 120 * DAY,
                next: function (date) {
                    date.setUTCHours(0);
                    date.setUTCDate(1);
                    date.setUTCMonth(date.getUTCMonth() + 4);
                }
            },
        ];
    }