array.prototype.unshift
Version:
ES spec-compliant `Array.prototype.unshift` shim/polyfill/replacement that works as far down as ES3.
24 lines (18 loc) • 541 B
JavaScript
;
var implementation = require('./implementation');
var callBind = require('call-bind');
var $unshiftApply = Array.prototype.unshift && callBind.apply(Array.prototype.unshift);
module.exports = function getPolyfill() {
if (!Array.prototype.unshift) {
return implementation;
}
if ([].unshift(0) !== 1) {
/* eslint no-invalid-this: 1 */
// eslint-disable-next-line no-unused-vars
return function unshift(items) {
$unshiftApply(this, arguments);
return this.length;
};
}
return Array.prototype.unshift;
};