Bump to v3.7.0.

This commit is contained in:
jdalton
2015-04-15 20:56:31 -07:00
parent 801ffd8adf
commit 5eb8db31d7
121 changed files with 897 additions and 413 deletions

View File

@@ -1,3 +1,4 @@
import getLength from '../internal/getLength';
import isArguments from './isArguments';
import isArray from './isArray';
import isFunction from './isFunction';
@@ -37,7 +38,7 @@ function isEmpty(value) {
if (value == null) {
return true;
}
var length = value.length;
var length = getLength(value);
if (isLength(length) && (isArray(value) || isString(value) || isArguments(value) ||
(isObjectLike(value) && isFunction(value.splice)))) {
return !length;

View File

@@ -20,7 +20,7 @@ import isStrictComparable from '../internal/isStrictComparable';
* @category Lang
* @param {*} value The value to compare.
* @param {*} other The other value to compare.
* @param {Function} [customizer] The function to customize comparing values.
* @param {Function} [customizer] The function to customize value comparisons.
* @param {*} [thisArg] The `this` binding of `customizer`.
* @returns {boolean} Returns `true` if the values are equivalent, else `false`.
* @example
@@ -51,7 +51,7 @@ function isEqual(value, other, customizer, thisArg) {
return value === other;
}
var result = customizer ? customizer(value, other) : undefined;
return typeof result == 'undefined' ? baseIsEqual(value, other, customizer) : !!result;
return result === undefined ? baseIsEqual(value, other, customizer) : !!result;
}
export default isEqual;

View File

@@ -21,7 +21,7 @@ import toObject from '../internal/toObject';
* @category Lang
* @param {Object} object The object to inspect.
* @param {Object} source The object of property values to match.
* @param {Function} [customizer] The function to customize comparing values.
* @param {Function} [customizer] The function to customize value comparisons.
* @param {*} [thisArg] The `this` binding of `customizer`.
* @returns {boolean} Returns `true` if `object` is a match, else `false`.
* @example
@@ -54,12 +54,13 @@ function isMatch(object, source, customizer, thisArg) {
return false;
}
customizer = typeof customizer == 'function' && bindCallback(customizer, thisArg, 3);
object = toObject(object);
if (!customizer && length == 1) {
var key = props[0],
value = source[key];
if (isStrictComparable(value)) {
return value === object[key] && (typeof value != 'undefined' || (key in toObject(object)));
return value === object[key] && (value !== undefined || (key in object));
}
}
var values = Array(length),
@@ -69,7 +70,7 @@ function isMatch(object, source, customizer, thisArg) {
value = values[length] = source[props[length]];
strictCompareFlags[length] = isStrictComparable(value);
}
return baseIsMatch(toObject(object), props, values, strictCompareFlags, customizer);
return baseIsMatch(object, props, values, strictCompareFlags, customizer);
}
export default isMatch;

View File

@@ -5,7 +5,7 @@ import isObjectLike from '../internal/isObjectLike';
var funcTag = '[object Function]';
/** Used to detect host constructors (Safari > 5). */
var reHostCtor = /^\[object .+?Constructor\]$/;
var reIsHostCtor = /^\[object .+?Constructor\]$/;
/** Used for native method references. */
var objectProto = Object.prototype;
@@ -20,7 +20,7 @@ var fnToString = Function.prototype.toString;
var objToString = objectProto.toString;
/** Used to detect if a method is native. */
var reNative = RegExp('^' +
var reIsNative = RegExp('^' +
escapeRegExp(objToString)
.replace(/toString|(function).*?(?=\\\()| for .+?(?=\\\])/g, '$1.*?') + '$'
);
@@ -46,9 +46,9 @@ function isNative(value) {
return false;
}
if (objToString.call(value) == funcTag) {
return reNative.test(fnToString.call(value));
return reIsNative.test(fnToString.call(value));
}
return isObjectLike(value) && reHostCtor.test(value);
return isObjectLike(value) && reIsHostCtor.test(value);
}
export default isNative;

View File

@@ -15,7 +15,7 @@
* // => false
*/
function isUndefined(value) {
return typeof value == 'undefined';
return value === undefined;
}
export default isUndefined;

View File

@@ -1,4 +1,5 @@
import arrayCopy from '../internal/arrayCopy';
import getLength from '../internal/getLength';
import isLength from '../internal/isLength';
import values from '../object/values';
@@ -18,7 +19,7 @@ import values from '../object/values';
* // => [2, 3]
*/
function toArray(value) {
var length = value ? value.length : 0;
var length = value ? getLength(value) : 0;
if (!isLength(length)) {
return values(value);
}