Sha256: a9121b7a0ce282656bc7c61379d4d96832343363887215e7d79fcfe3423cf25f

Contents?: true

Size: 1.04 KB

Versions: 25

Compression:

Stored size: 1.04 KB

Contents

'use strict';
var aFunction = require('../internals/a-function');
var isObject = require('../internals/is-object');

var slice = [].slice;
var factories = {};

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

// `Function.prototype.bind` method implementation
// https://tc39.github.io/ecma262/#sec-function.prototype.bind
module.exports = Function.bind || function bind(that /* , ...args */) {
  var fn = aFunction(this);
  var partArgs = slice.call(arguments, 1);
  var boundFunction = function bound(/* args... */) {
    var args = partArgs.concat(slice.call(arguments));
    return this instanceof boundFunction ? construct(fn, args.length, args) : fn.apply(that, args);
  };
  if (isObject(fn.prototype)) boundFunction.prototype = fn.prototype;
  return boundFunction;
};

Version data entries

25 entries across 25 versions & 7 rubygems

Version Path
optimacms-0.1.61 spec/dummy/node_modules/core-js/internals/function-bind.js
disco_app-0.18.0 test/dummy/node_modules/core-js/internals/function-bind.js
disco_app-0.18.2 test/dummy/node_modules/core-js/internals/function-bind.js
tang-0.2.1 spec/tang_app/node_modules/core-js/internals/function-bind.js
tang-0.2.0 spec/tang_app/node_modules/core-js/internals/function-bind.js
tang-0.1.0 spec/tang_app/node_modules/core-js/internals/function-bind.js
tang-0.0.9 spec/tang_app/node_modules/core-js/internals/function-bind.js
enju_library-0.3.8 spec/dummy/node_modules/core-js/internals/function-bind.js
condenser-0.3 lib/condenser/processors/node_modules/core-js-pure/internals/function-bind.js
condenser-0.2 lib/condenser/processors/node_modules/core-js-pure/internals/function-bind.js
condenser-0.1 lib/condenser/processors/node_modules/core-js-pure/internals/function-bind.js
condenser-0.0.12 lib/condenser/processors/node_modules/core-js-pure/internals/function-bind.js
condenser-0.0.11 lib/condenser/processors/node_modules/core-js-pure/internals/function-bind.js
condenser-0.0.10 lib/condenser/processors/node_modules/core-js-pure/internals/function-bind.js
condenser-0.0.9 lib/condenser/processors/node_modules/core-js-pure/internals/function-bind.js
condenser-0.0.8 lib/condenser/processors/node_modules/core-js-pure/internals/function-bind.js
jester-data-8.0.0 node_modules/core-js/internals/function-bind.js
ezii-os-5.2.1 node_modules/core-js/internals/function-bind.js
ezii-os-2.0.1 node_modules/core-js/internals/function-bind.js
ezii-os-1.1.0 node_modules/core-js/internals/function-bind.js