mirror of https://github.com/lukechilds/node.git
You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
37 lines
1.1 KiB
37 lines
1.1 KiB
var baseIsNative = require('./_baseIsNative'),
|
|
isMaskable = require('./_isMaskable');
|
|
|
|
/**
|
|
* Checks if `value` is a pristine native function.
|
|
*
|
|
* **Note:** This method can't reliably detect native functions in the
|
|
* presence of the `core-js` package because `core-js` circumvents this kind
|
|
* of detection. Despite multiple requests, the `core-js` maintainer has made
|
|
* it clear: any attempt to fix the detection will be obstructed. As a result,
|
|
* we're left with little choice but to throw an error. Unfortunately, this
|
|
* also affects packages, like [babel-polyfill](https://www.npmjs.com/package/babel-polyfill),
|
|
* which rely on `core-js`.
|
|
*
|
|
* @static
|
|
* @memberOf _
|
|
* @since 3.0.0
|
|
* @category Lang
|
|
* @param {*} value The value to check.
|
|
* @returns {boolean} Returns `true` if `value` is a native function,
|
|
* else `false`.
|
|
* @example
|
|
*
|
|
* _.isNative(Array.prototype.push);
|
|
* // => true
|
|
*
|
|
* _.isNative(_);
|
|
* // => false
|
|
*/
|
|
function isNative(value) {
|
|
if (isMaskable(value)) {
|
|
throw new Error('This method is not supported with `core-js`. Try https://github.com/es-shims.');
|
|
}
|
|
return baseIsNative(value);
|
|
}
|
|
|
|
module.exports = isNative;
|
|
|