Based on http://ie.microsoft.com/testdrive/HTML5/ECMAScript5Array/Default.html, I thought IE9 supports indexOf in array but the following breaks. Any idea why?
It might help if you declare the array explicitly:
var a = new Array(1,2,3);
a.indexOf(2);
Are you sure your page is running in IE9 mode? Check in dev tools (F12). If you have old DOCTYPE you might be seeing your page in IE8/7 mode, so indexOf is not supported. If you are running in IE9 mode then it works just fine.
your code looks right and this compatibility table shows that IE9 should support indexOf()
and checks your actual browser for compatibility.
try to open it and take a look at your result. maybe you're running you IE in compatibility mode for IE7/8 or something else.
this jsfiddle works in my IE9 - please try that, too.