Non so.

Prova comunque a vedere le date:
10 gen 2004 e 10 dic 2004

In teoria dovrebbe prenderle come 10 febbraio e 10 gennaio 2005, ma non e` detto.

E poi il 31 gen verrebbe trasformato in 3 marzo (o 2 se l'anno e` bisestile).

Prova a vedere con l'alert che ti avevo proposto, oppure con questo (da mettere dopo la trasformazione della date e prima del confronto):
alert("controllo: "+oggetto1.toLocaleString()+" e "+oggetto2.toLocaleString());