Skip to content

Commit

Permalink
Fixed indexOf()-related bug for IE.
Browse files Browse the repository at this point in the history
  • Loading branch information
Shiva Kaul committed Jul 22, 2011
1 parent 792f3fc commit f5e31c4
Showing 1 changed file with 37 additions and 6 deletions.
43 changes: 37 additions & 6 deletions lib/sherpa.js
Original file line number Original file line Diff line number Diff line change
@@ -1,10 +1,41 @@
if (!Array.prototype.indexOf) { if (!Array.prototype.indexOf)
Array.prototype.indexOf = function(obj, start) { {
for (var i = (start || 0), j = this.length; i < j; i++) { Array.prototype.indexOf = function(searchElement /*, fromIndex */)
if (this[i] == obj) { return i; } {
"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; return -1;
} };
} }


RegExp.escape = function(text) { RegExp.escape = function(text) {
Expand Down Expand Up @@ -64,7 +95,7 @@ Sherpa = {
var startIndex = 0; var startIndex = 0;
var endIndex = 1; var endIndex = 1;


for (var charIndex in chars) { for (var charIndex = 0; charIndex < chars.length; charIndex++) {
var c = chars[charIndex]; var c = chars[charIndex];
if (c == '(') { if (c == '(') {
// over current working set, double paths // over current working set, double paths
Expand Down

0 comments on commit f5e31c4

Please sign in to comment.