Skip to content

Commit

Permalink
Add a shim for Array.prototype.indexOf
Browse files Browse the repository at this point in the history
Apparently, whatever JavaScript engine WSH uses, it doesn't support
Array.prototype.indexOf method so I had to add a shim for it. I took
the original version from MDN and modified it to pass our lint tests.

Closes jshintGH-617.
  • Loading branch information
valueof authored and jugglinmike committed Oct 21, 2014
1 parent 49d3089 commit b8f430d
Showing 1 changed file with 40 additions and 2 deletions.
42 changes: 40 additions & 2 deletions jshint.js
Expand Up @@ -186,7 +186,7 @@
Timer, Tips, Type, TypeError, Toggle, Try, "use strict", unescape, URI, URIError, URL,
VBArray, WSH, WScript, XDomainRequest, Web, Window, XMLDOM, XMLHttpRequest, XMLSerializer,
XPathEvaluator, XPathException, XPathExpression, XPathNamespace, XPathNSResolver, XPathResult,
"\\", a, addEventListener, address, alert, apply, applicationCache, arguments, arity,
"\\", a, abs, addEventListener, address, alert, apply, applicationCache, arguments, arity,
asi, atob, b, basic, basicToken, bitwise, blacklist, block, blur, boolOptions, boss,
browser, btoa, c, call, callee, caller, camelcase, cases, charAt, charCodeAt, character,
clearInterval, clearTimeout, close, closed, closure, comment, condition, confirm, console,
Expand All @@ -202,7 +202,7 @@
isDigit, isFinite, isNaN, iterator, java, join, jshint,
JSHINT, json, jquery, jQuery, keys, label, labelled, last, lastcharacter, lastsemic, laxbreak,
laxcomma, latedef, lbp, led, left, length, line, load, loadClass, localStorage, location,
log, loopfunc, m, match, maxerr, maxlen, member,message, meta, module, moveBy,
log, loopfunc, m, match, max, maxerr, maxlen, member,message, meta, module, moveBy,
moveTo, mootools, multistr, name, navigator, new, newcap, noarg, node, noempty, nomen,
nonew, nonstandard, nud, onbeforeunload, onblur, onerror, onevar, onecase, onfocus,
onload, onresize, onunload, open, openDatabase, openURL, opener, opera, options, outer, param,
Expand Down Expand Up @@ -833,6 +833,44 @@ var JSHINT = (function () {
};
}

if (!Array.prototype.indexOf) {
Array.prototype.indexOf = function (searchElement /*, fromIndex */ ) {
if (this === null || this === undefined) {
throw new TypeError();
}

var t = new 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;
};
}

if (typeof Object.create !== "function") {
Object.create = function (o) {
F.prototype = o;
Expand Down

0 comments on commit b8f430d

Please sign in to comment.