Come iterare le proprietà dell’object javascript nell’ordine in cui sono state scritte

Ho identificato un bug nel mio codice che spero di risolvere con uno sforzo minimo di refactoring. Questo bug si verifica nei browser Chrome e Opera. Problema:

var obj = {23:"AA",12:"BB"}; //iterating through obj's properties for(i in obj) document.write("Key: "+i +" "+"Value: "+obj[i]); 

Uscita in FF, Chiave IE: 23 Valore: AA Chiave: 12 Valore: BB

Output in Opera e Chrome (errato)
Chiave: 12 valore BB
Chiave: 23 Valore AA

Ho tentato di creare un object ordinato inverso come questo

 var obj1={"AA":23,"BB":12}; for(i in obj1) document.write("Key: "+obj[i] +" "+"Value: "+i); 

Tuttavia l’output è lo stesso. C’è un modo per ottenere per tutti i browser lo stesso comportamento con piccole modifiche?