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.
		
		
		
		
		
			
		
			
				
					41 lines
				
				1.2 KiB
			
		
		
			
		
	
	
					41 lines
				
				1.2 KiB
			| 
								 
											3 years ago
										 
									 | 
							
								var baseIsNative = require('./_baseIsNative'),
							 | 
						||
| 
								 | 
							
								    isMaskable = require('./_isMaskable');
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								/** Error message constants. */
							 | 
						||
| 
								 | 
							
								var CORE_ERROR_TEXT = 'Unsupported core-js use. Try https://npms.io/search?q=ponyfill.';
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								/**
							 | 
						||
| 
								 | 
							
								 * 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(CORE_ERROR_TEXT);
							 | 
						||
| 
								 | 
							
								  }
							 | 
						||
| 
								 | 
							
								  return baseIsNative(value);
							 | 
						||
| 
								 | 
							
								}
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								module.exports = isNative;
							 |