'use strict';
							 | 
						|
								
							 | 
						|
								var setFunctionLength = require('set-function-length');
							 | 
						|
								
							 | 
						|
								var $defineProperty = require('es-define-property');
							 | 
						|
								
							 | 
						|
								var callBindBasic = require('call-bind-apply-helpers');
							 | 
						|
								var applyBind = require('call-bind-apply-helpers/applyBind');
							 | 
						|
								
							 | 
						|
								module.exports = function callBind(originalFunction) {
							 | 
						|
									var func = callBindBasic(arguments);
							 | 
						|
									var adjustedLength = originalFunction.length - (arguments.length - 1);
							 | 
						|
									return setFunctionLength(
							 | 
						|
										func,
							 | 
						|
										1 + (adjustedLength > 0 ? adjustedLength : 0),
							 | 
						|
										true
							 | 
						|
									);
							 | 
						|
								};
							 | 
						|
								
							 | 
						|
								if ($defineProperty) {
							 | 
						|
									$defineProperty(module.exports, 'apply', { value: applyBind });
							 | 
						|
								} else {
							 | 
						|
									module.exports.apply = applyBind;
							 | 
						|
								}
							 |