Bump to v3.7.0.

This commit is contained in:
jdalton
2015-04-15 21:06:16 -07:00
parent d58549ce0b
commit 863bb301bb
120 changed files with 1653 additions and 812 deletions

View File

@@ -1,4 +1,5 @@
var isArguments = require('./isArguments'),
var getLength = require('../internal/getLength'),
isArguments = require('./isArguments'),
isArray = require('./isArray'),
isFunction = require('./isFunction'),
isLength = require('../internal/isLength'),
@@ -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 @@ var baseIsEqual = require('../internal/baseIsEqual'),
* @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;
}
module.exports = isEqual;

View File

@@ -21,7 +21,7 @@ var baseIsMatch = require('../internal/baseIsMatch'),
* @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);
}
module.exports = isMatch;

View File

@@ -5,7 +5,7 @@ var escapeRegExp = require('../string/escapeRegExp'),
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);
}
module.exports = isNative;

View File

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

View File

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