for inループの挙動

IE8なんなの

var arr =["a","b","c"]
for(var i in arr){
  alert(i);
}

// 0
// 1
// 2
// indexOf

4回まわってる上に
最後のやつなんなの

140322追記:
IndexOfの正体はArrayのprototypeに追加したIndexOfメソッドだったことが判明
for inループはprototypeに追加したメソッドもプロパティとして数えられるのか…

別途Array.IndexOfが存在しないブラウザのみArray.IndexOfを追加する記述をしていた。
IE8でだけIndexOfが出力されたのはIE8にもともとIndexOfメソッドがなかったからだ。

文句言ってごめんIE8。でもArray.IndexOfメソッドないのがいかんのだよ。