_.bind should throw a TypeError if func is not a function. [closes #213]

Former-commit-id: b6035736d9cb042b7fa4a9d0b7b4d9c6cb0ea4f8
This commit is contained in:
John-David Dalton
2013-03-23 08:09:54 -07:00
parent 8a83a6b5be
commit 2cc2d696f1
11 changed files with 279 additions and 243 deletions

View File

@@ -321,19 +321,24 @@
* @param {Function|String} func The function to bind or the method name.
* @param {Mixed} [thisArg] The `this` binding of `func`.
* @param {Array} partialArgs An array of arguments to be partially applied.
* @param {Object} [rightIndicator] Used to indicate partially applying arguments from the right.
* @param {Object} [idicator] Used to indicate binding by key or partially
* applying arguments from the right.
* @returns {Function} Returns the new bound function.
*/
function createBound(func, thisArg, partialArgs, rightIndicator) {
function createBound(func, thisArg, partialArgs, indicator) {
var isFunc = isFunction(func),
isPartial = !partialArgs,
key = thisArg;
// juggle arguments
if (isPartial) {
var rightIndicator = indicator;
partialArgs = thisArg;
}
if (!isFunc) {
else if (!isFunc) {
if (!indicator) {
throw new TypeError;
}
thisArg = func;
}