1
0
mirror of https://github.com/mgerb/mywebsite synced 2026-01-12 10:52:47 +00:00
Files
mywebsite/node_modules/es5-ext/array/#/e-last-index-of.js

30 lines
838 B
JavaScript

'use strict';
var toPosInt = require('../../number/to-pos-integer')
, value = require('../../object/valid-value')
, lastIndexOf = Array.prototype.lastIndexOf
, hasOwnProperty = Object.prototype.hasOwnProperty
, abs = Math.abs, floor = Math.floor;
module.exports = function (searchElement/*, fromIndex*/) {
var i, fromIndex, val;
if (searchElement === searchElement) { //jslint: ignore
return lastIndexOf.apply(this, arguments);
}
value(this);
fromIndex = arguments[1];
if (isNaN(fromIndex)) fromIndex = (toPosInt(this.length) - 1);
else if (fromIndex >= 0) fromIndex = floor(fromIndex);
else fromIndex = toPosInt(this.length) - floor(abs(fromIndex));
for (i = fromIndex; i >= 0; --i) {
if (hasOwnProperty.call(this, i)) {
val = this[i];
if (val !== val) return i; //jslint: ignore
}
}
return -1;
};