mirror of
https://github.com/whoisclebs/lodash.git
synced 2026-02-06 17:47:49 +00:00
Ensure _.isEqual works with objects created by Object.create(null).
This commit is contained in:
36
dist/lodash.underscore.js
vendored
36
dist/lodash.underscore.js
vendored
@@ -505,10 +505,10 @@
|
||||
var ctorA = a.constructor,
|
||||
ctorB = b.constructor;
|
||||
|
||||
if (ctorA != ctorB && !(
|
||||
isFunction(ctorA) && ctorA instanceof ctorA &&
|
||||
isFunction(ctorB) && ctorB instanceof ctorB
|
||||
)) {
|
||||
if (ctorA != ctorB &&
|
||||
!(isFunction(ctorA) && ctorA instanceof ctorA && isFunction(ctorB) && ctorB instanceof ctorB) &&
|
||||
(!nativeCreate || ('constructor' in a && 'constructor' in b))
|
||||
) {
|
||||
return false;
|
||||
}
|
||||
}
|
||||
@@ -922,15 +922,15 @@
|
||||
* @returns {Object} Returns the destination object.
|
||||
* @example
|
||||
*
|
||||
* _.assign({ 'name': 'fred' }, { 'age': 40 });
|
||||
* // => { 'name': 'fred', 'age': 40 }
|
||||
* _.assign({ 'name': 'fred' }, { 'employer': 'slate' });
|
||||
* // => { 'name': 'fred', 'employer': 'slate' }
|
||||
*
|
||||
* var defaults = _.partialRight(_.assign, function(a, b) {
|
||||
* return typeof a == 'undefined' ? b : a;
|
||||
* });
|
||||
*
|
||||
* var person = { 'name': 'barney' };
|
||||
* defaults(person, { 'name': 'fred', 'employer': 'slate' });
|
||||
* var object = { 'name': 'barney' };
|
||||
* defaults(object, { 'name': 'fred', 'employer': 'slate' });
|
||||
* // => { 'name': 'barney', 'employer': 'slate' }
|
||||
*/
|
||||
function assign(object) {
|
||||
@@ -1010,8 +1010,8 @@
|
||||
* @returns {Object} Returns the destination object.
|
||||
* @example
|
||||
*
|
||||
* var person = { 'name': 'barney' };
|
||||
* _.defaults(person, { 'name': 'fred', 'employer': 'slate' });
|
||||
* var object = { 'name': 'barney' };
|
||||
* _.defaults(object, { 'name': 'fred', 'employer': 'slate' });
|
||||
* // => { 'name': 'barney', 'employer': 'slate' }
|
||||
*/
|
||||
function defaults(object) {
|
||||
@@ -1277,13 +1277,13 @@
|
||||
* @returns {boolean} Returns `true` if the values are equivalent, else `false`.
|
||||
* @example
|
||||
*
|
||||
* var fred = { 'name': 'fred', 'age': 40 };
|
||||
* var copy = { 'name': 'fred', 'age': 40 };
|
||||
* var object = { 'name': 'fred' };
|
||||
* var copy = { 'name': 'fred' };
|
||||
*
|
||||
* fred == copy;
|
||||
* object == copy;
|
||||
* // => false
|
||||
*
|
||||
* _.isEqual(fred, copy);
|
||||
* _.isEqual(object, copy);
|
||||
* // => true
|
||||
*
|
||||
* var words = ['hello', 'goodbye'];
|
||||
@@ -1947,6 +1947,10 @@
|
||||
* (value, index|key, collection). Callbacks may exit iteration early by
|
||||
* explicitly returning `false`.
|
||||
*
|
||||
* Note: As with other "Collections" methods, objects with a `length` property
|
||||
* are iterated like arrays. To avoid this behavior `_.forIn` or `_.forOwn`
|
||||
* may be used for object iteration.
|
||||
*
|
||||
* @static
|
||||
* @memberOf _
|
||||
* @alias each
|
||||
@@ -4107,8 +4111,8 @@
|
||||
* @returns {*} Returns `value`.
|
||||
* @example
|
||||
*
|
||||
* var fred = { 'name': 'fred' };
|
||||
* fred === _.identity(fred);
|
||||
* var object = { 'name': 'fred' };
|
||||
* object === _.identity(object);
|
||||
* // => true
|
||||
*/
|
||||
function identity(value) {
|
||||
|
||||
Reference in New Issue
Block a user