Cleanup isXyz methods.

This commit is contained in:
jdalton
2015-03-20 09:24:13 -07:00
parent c250aa804a
commit 002caceb05

View File

@@ -564,7 +564,7 @@
* @returns {boolean} Returns `true` if `value` is object-like, else `false`. * @returns {boolean} Returns `true` if `value` is object-like, else `false`.
*/ */
function isObjectLike(value) { function isObjectLike(value) {
return (value && typeof value == 'object') || false; return !!value && typeof value == 'object';
} }
/** /**
@@ -8348,14 +8348,14 @@
*/ */
function isArguments(value) { function isArguments(value) {
var length = isObjectLike(value) ? value.length : undefined; var length = isObjectLike(value) ? value.length : undefined;
return (isLength(length) && objToString.call(value) == argsTag) || false; return isLength(length) && objToString.call(value) == argsTag;
} }
// Fallback for environments without a `toStringTag` for `arguments` objects. // Fallback for environments without a `toStringTag` for `arguments` objects.
if (!support.argsTag) { if (!support.argsTag) {
isArguments = function(value) { isArguments = function(value) {
var length = isObjectLike(value) ? value.length : undefined; var length = isObjectLike(value) ? value.length : undefined;
return (isLength(length) && hasOwnProperty.call(value, 'callee') && return isLength(length) && hasOwnProperty.call(value, 'callee') &&
!propertyIsEnumerable.call(value, 'callee')) || false; !propertyIsEnumerable.call(value, 'callee');
}; };
} }
@@ -8376,7 +8376,7 @@
* // => false * // => false
*/ */
var isArray = nativeIsArray || function(value) { var isArray = nativeIsArray || function(value) {
return (isObjectLike(value) && isLength(value.length) && objToString.call(value) == arrayTag) || false; return isObjectLike(value) && isLength(value.length) && objToString.call(value) == arrayTag;
}; };
/** /**
@@ -8396,7 +8396,7 @@
* // => false * // => false
*/ */
function isBoolean(value) { function isBoolean(value) {
return (value === true || value === false || isObjectLike(value) && objToString.call(value) == boolTag) || false; return value === true || value === false || (isObjectLike(value) && objToString.call(value) == boolTag);
} }
/** /**
@@ -8416,7 +8416,7 @@
* // => false * // => false
*/ */
function isDate(value) { function isDate(value) {
return (isObjectLike(value) && objToString.call(value) == dateTag) || false; return isObjectLike(value) && objToString.call(value) == dateTag;
} }
/** /**
@@ -8436,13 +8436,13 @@
* // => false * // => false
*/ */
function isElement(value) { function isElement(value) {
return (value && value.nodeType === 1 && isObjectLike(value) && return !!value && value.nodeType === 1 && isObjectLike(value) &&
(lodash.support.nodeTag ? (objToString.call(value).indexOf('Element') > -1) : isHostObject(value))) || false; (lodash.support.nodeTag ? (objToString.call(value).indexOf('Element') > -1) : isHostObject(value));
} }
// Fallback for environments without DOM support. // Fallback for environments without DOM support.
if (!support.dom) { if (!support.dom) {
isElement = function(value) { isElement = function(value) {
return (value && value.nodeType === 1 && isObjectLike(value) && !isPlainObject(value)) || false; return !!value && value.nodeType === 1 && isObjectLike(value) && !isPlainObject(value);
}; };
} }
@@ -8555,7 +8555,7 @@
* // => false * // => false
*/ */
function isError(value) { function isError(value) {
return (isObjectLike(value) && typeof value.message == 'string' && objToString.call(value) == errorTag) || false; return isObjectLike(value) && typeof value.message == 'string' && objToString.call(value) == errorTag;
} }
/** /**
@@ -8640,7 +8640,7 @@
// Avoid a V8 JIT bug in Chrome 19-20. // Avoid a V8 JIT bug in Chrome 19-20.
// See https://code.google.com/p/v8/issues/detail?id=2291 for more details. // See https://code.google.com/p/v8/issues/detail?id=2291 for more details.
var type = typeof value; var type = typeof value;
return type == 'function' || (value && type == 'object') || false; return type == 'function' || (!!value && type == 'object');
} }
/** /**
@@ -8760,8 +8760,7 @@
if (objToString.call(value) == funcTag) { if (objToString.call(value) == funcTag) {
return reNative.test(fnToString.call(value)); return reNative.test(fnToString.call(value));
} }
return (isObjectLike(value) && return isObjectLike(value) && (isHostObject(value) ? reNative : reHostCtor).test(value);
(isHostObject(value) ? reNative : reHostCtor).test(value)) || false;
} }
/** /**
@@ -8807,7 +8806,7 @@
* // => false * // => false
*/ */
function isNumber(value) { function isNumber(value) {
return typeof value == 'number' || (isObjectLike(value) && objToString.call(value) == numberTag) || false; return typeof value == 'number' || (isObjectLike(value) && objToString.call(value) == numberTag);
} }
/** /**
@@ -8869,7 +8868,7 @@
* // => false * // => false
*/ */
function isRegExp(value) { function isRegExp(value) {
return (isObject(value) && objToString.call(value) == regexpTag) || false; return isObject(value) && objToString.call(value) == regexpTag;
} }
/** /**
@@ -8889,7 +8888,7 @@
* // => false * // => false
*/ */
function isString(value) { function isString(value) {
return typeof value == 'string' || (isObjectLike(value) && objToString.call(value) == stringTag) || false; return typeof value == 'string' || (isObjectLike(value) && objToString.call(value) == stringTag);
} }
/** /**
@@ -8909,7 +8908,7 @@
* // => false * // => false
*/ */
function isTypedArray(value) { function isTypedArray(value) {
return (isObjectLike(value) && isLength(value.length) && typedArrayTags[objToString.call(value)]) || false; return isObjectLike(value) && isLength(value.length) && !!typedArrayTags[objToString.call(value)];
} }
/** /**