Skip to content
This repository has been archived by the owner on Oct 5, 2023. It is now read-only.

Commit

Permalink
Added Array.prototype.indexOf polyfill.
Browse files Browse the repository at this point in the history
  • Loading branch information
fnando committed Mar 16, 2012
1 parent 86800c1 commit 1b014c6
Showing 1 changed file with 37 additions and 0 deletions.
37 changes: 37 additions & 0 deletions vendor/assets/javascripts/i18n.js
Original file line number Diff line number Diff line change
@@ -1,3 +1,40 @@
// https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Array/indexOf
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 !== (Infinity) && n !== -(Infinity))
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;
};
}

// Instantiate the object
var I18n = I18n || {};

Expand Down

0 comments on commit 1b014c6

Please sign in to comment.