Skip to content

Instantly share code, notes, and snippets.

@buzzedword
Created October 26, 2011 18:20
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 1 You must be signed in to fork a gist
  • Save buzzedword/1317242 to your computer and use it in GitHub Desktop.
Save buzzedword/1317242 to your computer and use it in GitHub Desktop.
Add indexOf to all IE versions under IE9
<!--[if lt IE 9]>
<script>
if (!Array.prototype.indexOf) {
Array.prototype.indexOf = function (searchElement /*, fromIndex */ ) {
"use strict";
if (this === void 0 || this === null) {
throw new TypeError();
}
var t = Object(this);
var len = t.length >>> 0;
if (len === 0) {
return -1;
}
var n = 0;
if (arguments.length > 0) {
n = Number(arguments[1]);
if (n !== n) { // shortcut for verifying if it's NaN
n = 0;
} else if (n !== 0 && n !== (1 / 0) && n !== -(1 / 0)) {
n = (n > 0 || -1) * Math.floor(Math.abs(n));
}
}
if (n >= len) {
return -1;
}
var k = n >= 0 ? n : Math.max(len - Math.abs(n), 0);
for (; k < len; k++) {
if (k in t && t[k] === searchElement) {
return k;
}
}
return -1;
}
}
</script>
<![endif]-->
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment