src/utilities/function-bind/index.js
function bind( fn, context ) {
  if ( Function.prototype.bind ) {
    return fn.bind.apply( fn, Array.prototype.slice.call( arguments, 1 ) );
  }

  return function() {
    return fn.apply( context, arguments );
  };
}
function bind( fn, context ) {
  if ( Function.prototype.bind ) {
    return fn.bind.apply( fn, Array.prototype.slice.call( arguments, 1 ) );
  }

  return function() {
    return fn.apply( context, arguments );
  };
}
function bind ( fn , context ) { if ( Function . prototype . bind ) { return fn . bind . apply ( fn , Array . prototype . slice . call ( arguments , 1 ) ) ; } return function ( ) { return fn . apply ( context , arguments ) ; } ; }
Function.prototype.bind polyfill.

@access private
@function bind
@param {Function} fn - A function you want to change `this` reference to.
@param {Object} context - The `this` you want to call the function with.
@returns {Function} The wrapped version of the supplied function.
Function . prototype . bind polyfill .