| 1234567891011121314151617181920212223242526272829303132333435363738394041424344 | 'use strict';var bind = require('function-bind');var GetIntrinsic = require('get-intrinsic');var setFunctionLength = require('set-function-length');var $TypeError = GetIntrinsic('%TypeError%');var $apply = GetIntrinsic('%Function.prototype.apply%');var $call = GetIntrinsic('%Function.prototype.call%');var $reflectApply = GetIntrinsic('%Reflect.apply%', true) || bind.call($call, $apply);var $defineProperty = GetIntrinsic('%Object.defineProperty%', true);var $max = GetIntrinsic('%Math.max%');if ($defineProperty) {	try {		$defineProperty({}, 'a', { value: 1 });	} catch (e) {		// IE 8 has a broken defineProperty		$defineProperty = null;	}}module.exports = function callBind(originalFunction) {	if (typeof originalFunction !== 'function') {		throw new $TypeError('a function is required');	}	var func = $reflectApply(bind, $call, arguments);	return setFunctionLength(		func,		1 + $max(0, originalFunction.length - (arguments.length - 1)),		true	);};var applyBind = function applyBind() {	return $reflectApply(bind, $apply, arguments);};if ($defineProperty) {	$defineProperty(module.exports, 'apply', { value: applyBind });} else {	module.exports.apply = applyBind;}
 |