'use strict'; var callBind = require('call-bind'); var implementation = require('./implementation'); var ownSlice = typeof ArrayBuffer === 'function' && new ArrayBuffer(0).slice; var ownSliceBound = ownSlice && callBind(ownSlice); var ownSliceWrapper = ownSliceBound && function slice(start, end) { /* eslint no-invalid-this: 0 */ if (arguments.length < 2) { return ownSliceBound(this, arguments.length > 0 ? start : 0); } return ownSliceBound(this, start, end); }; module.exports = function getPolyfill() { return (typeof ArrayBuffer === 'function' && ArrayBuffer.prototype.slice) || ownSliceWrapper || implementation; };