mirror of
https://github.com/whoisclebs/lodash.git
synced 2026-02-07 10:07:48 +00:00
Simplify getNative.
This commit is contained in:
@@ -776,9 +776,7 @@
|
|||||||
);
|
);
|
||||||
|
|
||||||
/** Native method references. */
|
/** Native method references. */
|
||||||
var getDescriptor = isNative(getDescriptor = Object.getOwnPropertyDescriptor) ? getDescriptor : null,
|
var ArrayBuffer = getNative(context, 'ArrayBuffer'),
|
||||||
setDescriptor = isNative(setDescriptor = Object.defineProperty) ? setDescriptor : null,
|
|
||||||
ArrayBuffer = getNative(context, 'ArrayBuffer'),
|
|
||||||
bufferSlice = getNative(ArrayBuffer && new ArrayBuffer(0), 'slice'),
|
bufferSlice = getNative(ArrayBuffer && new ArrayBuffer(0), 'slice'),
|
||||||
ceil = Math.ceil,
|
ceil = Math.ceil,
|
||||||
clearTimeout = context.clearTimeout,
|
clearTimeout = context.clearTimeout,
|
||||||
@@ -4105,23 +4103,8 @@
|
|||||||
* @returns {*} Returns the function if it's native, else `undefined`.
|
* @returns {*} Returns the function if it's native, else `undefined`.
|
||||||
*/
|
*/
|
||||||
function getNative(object, key) {
|
function getNative(object, key) {
|
||||||
if (!isObject(object)) {
|
var value = object == null ? undefined : object[key];
|
||||||
return;
|
return isNative(value) ? value : undefined;
|
||||||
}
|
|
||||||
var value = object[key];
|
|
||||||
if (isNative(value)) {
|
|
||||||
return value;
|
|
||||||
}
|
|
||||||
if (getDescriptor && setDescriptor) {
|
|
||||||
var descriptor = getDescriptor(object, key);
|
|
||||||
if (descriptor && delete object[key]) {
|
|
||||||
var other = object[key];
|
|
||||||
setDescriptor(object, key, descriptor);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
if (isNative(other)) {
|
|
||||||
return other;
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@@ -9109,8 +9092,8 @@
|
|||||||
if (!(value && objToString.call(value) == objectTag) || (!lodash.support.argsTag && isArguments(value))) {
|
if (!(value && objToString.call(value) == objectTag) || (!lodash.support.argsTag && isArguments(value))) {
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
var valueOf = value.valueOf,
|
var valueOf = getNative(value, 'valueOf'),
|
||||||
objProto = isNative(valueOf) && (objProto = getPrototypeOf(valueOf)) && getPrototypeOf(objProto);
|
objProto = valueOf && (objProto = getPrototypeOf(valueOf)) && getPrototypeOf(objProto);
|
||||||
|
|
||||||
return objProto
|
return objProto
|
||||||
? (value == objProto || getPrototypeOf(value) == objProto)
|
? (value == objProto || getPrototypeOf(value) == objProto)
|
||||||
|
|||||||
Reference in New Issue
Block a user