| '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; | |
| }
 |