Sha256: 0007b0a9433a9ee0d4f2a40adfcd53485ea71bc0bbd6eeccb9a36f6a1e977175

Contents?: true

Size: 903 Bytes

Versions: 82

Compression:

Stored size: 903 Bytes

Contents

'use strict';
var aFunction = require('./_a-function');
var isObject = require('./_is-object');
var invoke = require('./_invoke');
var arraySlice = [].slice;
var factories = {};

var construct = function (F, len, args) {
  if (!(len in factories)) {
    for (var n = [], i = 0; i < len; i++) n[i] = 'a[' + i + ']';
    // eslint-disable-next-line no-new-func
    factories[len] = Function('F,a', 'return new F(' + n.join(',') + ')');
  } return factories[len](F, args);
};

module.exports = Function.bind || function bind(that /* , ...args */) {
  var fn = aFunction(this);
  var partArgs = arraySlice.call(arguments, 1);
  var bound = function (/* args... */) {
    var args = partArgs.concat(arraySlice.call(arguments));
    return this instanceof bound ? construct(fn, args.length, args) : invoke(fn, args, that);
  };
  if (isObject(fn.prototype)) bound.prototype = fn.prototype;
  return bound;
};

Version data entries

82 entries across 38 versions & 8 rubygems

Version Path
immosquare-cleaner-0.1.60 node_modules/core-js/library/modules/_bind.js
immosquare-cleaner-0.1.60 node_modules/core-js/modules/_bind.js
immosquare-cleaner-0.1.59 node_modules/core-js/library/modules/_bind.js
immosquare-cleaner-0.1.59 node_modules/core-js/modules/_bind.js
immosquare-cleaner-0.1.58 node_modules/core-js/library/modules/_bind.js
immosquare-cleaner-0.1.58 node_modules/core-js/modules/_bind.js
immosquare-cleaner-0.1.57 node_modules/core-js/modules/_bind.js
immosquare-cleaner-0.1.57 node_modules/core-js/library/modules/_bind.js
immosquare-cleaner-0.1.56 node_modules/core-js/library/modules/_bind.js
immosquare-cleaner-0.1.56 node_modules/core-js/modules/_bind.js
immosquare-cleaner-0.1.55 node_modules/core-js/library/modules/_bind.js
immosquare-cleaner-0.1.55 node_modules/core-js/modules/_bind.js
immosquare-cleaner-0.1.54 node_modules/core-js/library/modules/_bind.js
immosquare-cleaner-0.1.54 node_modules/core-js/modules/_bind.js
immosquare-cleaner-0.1.53 node_modules/core-js/modules/_bind.js
immosquare-cleaner-0.1.53 node_modules/core-js/library/modules/_bind.js
immosquare-cleaner-0.1.52 node_modules/core-js/library/modules/_bind.js
immosquare-cleaner-0.1.52 node_modules/core-js/modules/_bind.js
immosquare-cleaner-0.1.51 node_modules/core-js/library/modules/_bind.js
immosquare-cleaner-0.1.51 node_modules/core-js/modules/_bind.js