diff --git a/plugins/pilot/dom.js b/plugins/pilot/dom.js index ccd8c124..99d51636 100644 --- a/plugins/pilot/dom.js +++ b/plugins/pilot/dom.js @@ -37,8 +37,6 @@ define(function(require, exports, module) { -var lang = require("pilot/lang"); - exports.setText = function(elem, text) { if (elem.innerText !== undefined) { elem.innerText = text; @@ -50,7 +48,7 @@ exports.setText = function(elem, text) { exports.hasCssClass = function(el, name) { var classes = el.className.split(/\s+/g); - return lang.arrayIndexOf(classes, name) !== -1; + return classes.indexOf(name) !== -1; }; exports.addCssClass = function(el, name) { @@ -62,7 +60,7 @@ exports.addCssClass = function(el, name) { exports.removeCssClass = function(el, name) { var classes = el.className.split(/\s+/g); while (true) { - var index = lang.arrayIndexOf(classes, name); + var index = classes.indexOf(name); if (index == -1) { break; } diff --git a/plugins/pilot/event_emitter.js b/plugins/pilot/event_emitter.js index cff5b379..7a31f6ba 100644 --- a/plugins/pilot/event_emitter.js +++ b/plugins/pilot/event_emitter.js @@ -37,8 +37,6 @@ define(function(require, exports, module) { -var lang = require('pilot/lang'); - var EventEmitter = {}; EventEmitter._dispatchEvent = function(eventName, e) { @@ -63,7 +61,7 @@ EventEmitter.addEventListener = function(eventName, callback) { if (!listeners) { var listeners = this._eventRegistry[eventName] = []; } - if (lang.arrayIndexOf(listeners, callback) == -1) { + if (listeners.indexOf(callback) == -1) { listeners.push(callback); } }; @@ -75,7 +73,7 @@ EventEmitter.removeEventListener = function(eventName, callback) { if (!listeners) { return; } - var index = lang.arrayIndexOf(listeners, callback); + var index = listeners.indexOf(callback); if (index !== -1) { listeners.splice(index, 1); } diff --git a/plugins/pilot/fixoldbrowsers.js b/plugins/pilot/fixoldbrowsers.js index ee40f18e..5e230ba5 100644 --- a/plugins/pilot/fixoldbrowsers.js +++ b/plugins/pilot/fixoldbrowsers.js @@ -49,6 +49,44 @@ if (!Array.isArray) { }; } +// from MDC +// https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Array/indexOf +if (!Array.prototype.indexOf) +{ + Array.prototype.indexOf = function(searchElement /*, fromIndex */) + { + 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) + 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; + }; +} + /** * Retrieves the list of keys on an object. */ diff --git a/plugins/pilot/lang.js b/plugins/pilot/lang.js index 9cd98c6a..5170a261 100644 --- a/plugins/pilot/lang.js +++ b/plugins/pilot/lang.js @@ -45,22 +45,6 @@ exports.stringRepeat = function (string, count) { return new Array(count + 1).join(string); }; -if (Array.prototype.indexOf) { - exports.arrayIndexOf = function(array, searchElement) { - return array.indexOf(searchElement); - }; -} -else { - exports.arrayIndexOf = function(array, searchElement) { - for (var i=0; i