mirror of
https://github.com/whoisclebs/lodash.git
synced 2026-02-05 01:17:50 +00:00
Use type checks when checking for a prototype property.
This commit is contained in:
@@ -7627,7 +7627,7 @@
|
||||
var Ctor = object.constructor,
|
||||
length = object.length;
|
||||
}
|
||||
if ((Ctor && Ctor.prototype === object) ||
|
||||
if ((typeof Ctor == 'function' && Ctor.prototype === object) ||
|
||||
(typeof length == 'number' && length > 0) ||
|
||||
(support.enumPrototypes && typeof object == 'function')) {
|
||||
return shimKeys(object);
|
||||
@@ -7670,7 +7670,7 @@
|
||||
var keyIndex,
|
||||
Ctor = object.constructor,
|
||||
index = -1,
|
||||
isProto = Ctor && Ctor.prototype === object,
|
||||
isProto = typeof Ctor == 'function' && Ctor.prototype === object,
|
||||
maxIndex = length - 1,
|
||||
result = Array(length),
|
||||
skipIndexes = length > 0,
|
||||
@@ -7947,7 +7947,7 @@
|
||||
accumulator = [];
|
||||
} else if (isObject(object)) {
|
||||
var Ctor = object.constructor;
|
||||
accumulator = baseCreate(Ctor && Ctor.prototype);
|
||||
accumulator = baseCreate(typeof Ctor == 'function' && Ctor.prototype);
|
||||
} else {
|
||||
accumulator = {};
|
||||
}
|
||||
|
||||
@@ -6818,7 +6818,7 @@
|
||||
deepEqual(func(Foo).sort(), expected);
|
||||
});
|
||||
|
||||
test('`_.' + methodName + '` skips the `constructor` property on prototype objects', 2, function() {
|
||||
test('`_.' + methodName + '` skips the `constructor` property on prototype objects', 3, function() {
|
||||
function Foo() {}
|
||||
Foo.prototype.a = 1;
|
||||
|
||||
@@ -6827,6 +6827,10 @@
|
||||
|
||||
Foo.prototype = { 'constructor': Foo, 'a': 1 };
|
||||
deepEqual(func(Foo.prototype), ['a']);
|
||||
|
||||
var Fake = { 'prototype': {} };
|
||||
Fake.prototype.constructor = Fake;
|
||||
deepEqual(func(Fake.prototype), ['constructor']);
|
||||
});
|
||||
|
||||
test('`_.' + methodName + '` should ' + (isKeys ? 'not' : '') + ' include inherited properties', 1, function() {
|
||||
|
||||
Reference in New Issue
Block a user