JSFiddle - React, Tailwind, and code Playground

HTML

Comparação <b>fev14 > jan15</b> -  
<b>Resultado</b>: <span id="comparacao1"></span>
<b>Esperado</b>: false;
<br>
<br>
Comparação <b>fev14 == fev2014</b> - 
<b>Resultado</b>: <span id="comparacao2"></span>
<b>Esperado</b>: true;

JavaScript

Competencia = function(competencia){
        var date = this.dateFromCompetencia(competencia);
        
        Object.defineProperty(this, 'date', {
            value: date
        });
    };

    Competencia.prototype.toString = function () {
        return this.formatado;
    };

    Competencia.prototype.valueOf = function () {
        return this.date.getTime();
    };

    Object.defineProperties(Competencia.prototype, {
        formatado: {
            get: function(){
                return this.competencia.replace(/^(\d{2})(\d{4})$/,"$1/$2");
            }
        },
        competencia: {
            get: function(){
                return this.mes + this.ano;
            }
        },
        mes: {
            get: function(){
                return mes = str_pad(String(this.date.getMonth()+1), 2, '0', 'STR_PAD_LEFT');
            }
        },
        ano: {
            get: function(){
                return ano = String(this.date.getFullYear());
            }
        },
        proxima:{
            value: function(){
                var mes = str_pad(String(Number(this.mes)+1), 2, '0', 'STR_PAD_LEFT');
                var comp= mes + this.ano;
                console.log(comp);
                return new Competencia(comp);
            } 
        },
        dateFromCompetencia: {
            value: function (competencia) {
                competencia = String(competencia).replace(/\D/g, '');;
                
                var mes = competencia.substr(-6,2);
                var ano = competencia.substr(-4);

                if(!checkdate(mes, 01, ano))
                  throw new Error('Competencia incorreta');

                return new Date(ano, Number(mes)-1);
            }
        }
    });

// função str_pad e checkdate do site phpjs.org
function str_pad(e,t,n,r){var i="",s;var o=function(e,t){var n="",r;while(n.length<t){n+=e}n=n.substr(0,t);return n};e+="";n=n!==undefined?n:"...