function() {
        var nativeDate = window.Date,
            p,
            statics = ['useStrict', 'formatCodeToRegex', 'parseFunctions', 'parseRegexes', 'formatFunctions', 'y2kYear', 'MILLI', 'SECOND', 'MINUTE', 'HOUR', 'DAY', 'MONTH', 'YEAR', 'defaults', 'dayNames', 'monthNames', 'monthNumbers', 'getShortMonthName', 'getShortDayName', 'getMonthNumber', 'formatCodes', 'isValid', 'parseDate', 'getFormatCode', 'createFormat', 'createParser', 'parseCodes'],
            proto = ['dateFormat', 'format', 'getTimezone', 'getGMTOffset', 'getDayOfYear', 'getWeekOfYear', 'isLeapYear', 'getFirstDayOfMonth', 'getLastDayOfMonth', 'getDaysInMonth', 'getSuffix', 'clone', 'isDST', 'clearTime', 'add', 'between'],
            sLen    = statics.length,
            pLen    = proto.length,
            stat, prot, s;

        //Append statics
        for (s = 0; s < sLen; s++) {
            stat = statics[s];
            nativeDate[stat] = utilDate[stat];
        }

        //Append to prototype
        for (p = 0; p < pLen; p++) {
            prot = proto[p];
            nativeDate.prototype[prot] = function() {
                var args = Array.prototype.slice.call(arguments);
                args.unshift(this);
                return utilDate[prot].apply(utilDate, args);
            };
        }
    }
function() {
        var nativeDate = window.Date,
            p,
            statics = ['useStrict', 'formatCodeToRegex', 'parseFunctions', 'parseRegexes', 'formatFunctions', 'y2kYear', 'MILLI', 'SECOND', 'MINUTE', 'HOUR', 'DAY', 'MONTH', 'YEAR', 'defaults', 'dayNames', 'monthNames', 'monthNumbers', 'getShortMonthName', 'getShortDayName', 'getMonthNumber', 'formatCodes', 'isValid', 'parseDate', 'getFormatCode', 'createFormat', 'createParser', 'parseCodes'],
            proto = ['dateFormat', 'format', 'getTimezone', 'getGMTOffset', 'getDayOfYear', 'getWeekOfYear', 'isLeapYear', 'getFirstDayOfMonth', 'getLastDayOfMonth', 'getDaysInMonth', 'getSuffix', 'clone', 'isDST', 'clearTime', 'add', 'between'],
            sLen    = statics.length,
            pLen    = proto.length,
            stat, prot, s;

        
        for (s = 0; s < sLen; s++) {
            stat = statics[s];
            nativeDate[stat] = utilDate[stat];
        }

        
        for (p = 0; p < pLen; p++) {
            prot = proto[p];
            nativeDate.prototype[prot] = function() {
                var args = Array.prototype.slice.call(arguments);
                args.unshift(this);
                return utilDate[prot].apply(utilDate, args);
            };
        }
    }
function ( ) { var nativeDate = window . Date , p , statics = [ 'useStrict' , 'formatCodeToRegex' , 'parseFunctions' , 'parseRegexes' , 'formatFunctions' , 'y2kYear' , 'MILLI' , 'SECOND' , 'MINUTE' , 'HOUR' , 'DAY' , 'MONTH' , 'YEAR' , 'defaults' , 'dayNames' , 'monthNames' , 'monthNumbers' , 'getShortMonthName' , 'getShortDayName' , 'getMonthNumber' , 'formatCodes' , 'isValid' , 'parseDate' , 'getFormatCode' , 'createFormat' , 'createParser' , 'parseCodes' ] , proto = [ 'dateFormat' , 'format' , 'getTimezone' , 'getGMTOffset' , 'getDayOfYear' , 'getWeekOfYear' , 'isLeapYear' , 'getFirstDayOfMonth' , 'getLastDayOfMonth' , 'getDaysInMonth' , 'getSuffix' , 'clone' , 'isDST' , 'clearTime' , 'add' , 'between' ] , sLen = statics . length , pLen = proto . length , stat , prot , s ; //Append statics for ( s = 0 ; s < sLen ; s ++ ) { stat = statics [ s ] ; nativeDate [ stat ] = utilDate [ stat ] ; } //Append to prototype for ( p = 0 ; p < pLen ; p ++ ) { prot = proto [ p ] ; nativeDate . prototype [ prot ] = function ( ) { var args = Array . prototype . slice . call ( arguments ) ; args . unshift ( this ) ; return utilDate [ prot ] . apply ( utilDate , args ) ; } ; } }
Maintains compatibility with old static and prototype window.Date methods.
Maintains compatibility with old static and prototype window . Date methods .