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.
		
		
		
		
		
			
		
			
				
					
					
						
							156 lines
						
					
					
						
							4.1 KiB
						
					
					
				
			
		
		
	
	
							156 lines
						
					
					
						
							4.1 KiB
						
					
					
				| /**
 | |
|  * Lodash (Custom Build) <https://lodash.com/>
 | |
|  * Build: `lodash modularize exports="npm" -o ./`
 | |
|  * Copyright JS Foundation and other contributors <https://js.foundation/>
 | |
|  * Released under MIT license <https://lodash.com/license>
 | |
|  * Based on Underscore.js 1.8.3 <http://underscorejs.org/LICENSE>
 | |
|  * Copyright Jeremy Ashkenas, DocumentCloud and Investigative Reporters & Editors
 | |
|  */
 | |
| 
 | |
| /** `Object#toString` result references. */
 | |
| var asyncTag = '[object AsyncFunction]',
 | |
|     funcTag = '[object Function]',
 | |
|     genTag = '[object GeneratorFunction]',
 | |
|     nullTag = '[object Null]',
 | |
|     proxyTag = '[object Proxy]',
 | |
|     undefinedTag = '[object Undefined]';
 | |
| 
 | |
| /** Detect free variable `global` from Node.js. */
 | |
| var freeGlobal = typeof global == 'object' && global && global.Object === Object && global;
 | |
| 
 | |
| /** Detect free variable `self`. */
 | |
| var freeSelf = typeof self == 'object' && self && self.Object === Object && self;
 | |
| 
 | |
| /** Used as a reference to the global object. */
 | |
| var root = freeGlobal || freeSelf || Function('return this')();
 | |
| 
 | |
| /** Used for built-in method references. */
 | |
| var objectProto = Object.prototype;
 | |
| 
 | |
| /** Used to check objects for own properties. */
 | |
| var hasOwnProperty = objectProto.hasOwnProperty;
 | |
| 
 | |
| /**
 | |
|  * Used to resolve the
 | |
|  * [`toStringTag`](http://ecma-international.org/ecma-262/7.0/#sec-object.prototype.tostring)
 | |
|  * of values.
 | |
|  */
 | |
| var nativeObjectToString = objectProto.toString;
 | |
| 
 | |
| /** Built-in value references. */
 | |
| var Symbol = root.Symbol,
 | |
|     symToStringTag = Symbol ? Symbol.toStringTag : undefined;
 | |
| 
 | |
| /**
 | |
|  * The base implementation of `getTag` without fallbacks for buggy environments.
 | |
|  *
 | |
|  * @private
 | |
|  * @param {*} value The value to query.
 | |
|  * @returns {string} Returns the `toStringTag`.
 | |
|  */
 | |
| function baseGetTag(value) {
 | |
|   if (value == null) {
 | |
|     return value === undefined ? undefinedTag : nullTag;
 | |
|   }
 | |
|   return (symToStringTag && symToStringTag in Object(value))
 | |
|     ? getRawTag(value)
 | |
|     : objectToString(value);
 | |
| }
 | |
| 
 | |
| /**
 | |
|  * A specialized version of `baseGetTag` which ignores `Symbol.toStringTag` values.
 | |
|  *
 | |
|  * @private
 | |
|  * @param {*} value The value to query.
 | |
|  * @returns {string} Returns the raw `toStringTag`.
 | |
|  */
 | |
| function getRawTag(value) {
 | |
|   var isOwn = hasOwnProperty.call(value, symToStringTag),
 | |
|       tag = value[symToStringTag];
 | |
| 
 | |
|   try {
 | |
|     value[symToStringTag] = undefined;
 | |
|     var unmasked = true;
 | |
|   } catch (e) {}
 | |
| 
 | |
|   var result = nativeObjectToString.call(value);
 | |
|   if (unmasked) {
 | |
|     if (isOwn) {
 | |
|       value[symToStringTag] = tag;
 | |
|     } else {
 | |
|       delete value[symToStringTag];
 | |
|     }
 | |
|   }
 | |
|   return result;
 | |
| }
 | |
| 
 | |
| /**
 | |
|  * Converts `value` to a string using `Object.prototype.toString`.
 | |
|  *
 | |
|  * @private
 | |
|  * @param {*} value The value to convert.
 | |
|  * @returns {string} Returns the converted string.
 | |
|  */
 | |
| function objectToString(value) {
 | |
|   return nativeObjectToString.call(value);
 | |
| }
 | |
| 
 | |
| /**
 | |
|  * Checks if `value` is classified as a `Function` object.
 | |
|  *
 | |
|  * @static
 | |
|  * @memberOf _
 | |
|  * @since 0.1.0
 | |
|  * @category Lang
 | |
|  * @param {*} value The value to check.
 | |
|  * @returns {boolean} Returns `true` if `value` is a function, else `false`.
 | |
|  * @example
 | |
|  *
 | |
|  * _.isFunction(_);
 | |
|  * // => true
 | |
|  *
 | |
|  * _.isFunction(/abc/);
 | |
|  * // => false
 | |
|  */
 | |
| function isFunction(value) {
 | |
|   if (!isObject(value)) {
 | |
|     return false;
 | |
|   }
 | |
|   // The use of `Object#toString` avoids issues with the `typeof` operator
 | |
|   // in Safari 9 which returns 'object' for typed arrays and other constructors.
 | |
|   var tag = baseGetTag(value);
 | |
|   return tag == funcTag || tag == genTag || tag == asyncTag || tag == proxyTag;
 | |
| }
 | |
| 
 | |
| /**
 | |
|  * Checks if `value` is the
 | |
|  * [language type](http://www.ecma-international.org/ecma-262/7.0/#sec-ecmascript-language-types)
 | |
|  * of `Object`. (e.g. arrays, functions, objects, regexes, `new Number(0)`, and `new String('')`)
 | |
|  *
 | |
|  * @static
 | |
|  * @memberOf _
 | |
|  * @since 0.1.0
 | |
|  * @category Lang
 | |
|  * @param {*} value The value to check.
 | |
|  * @returns {boolean} Returns `true` if `value` is an object, else `false`.
 | |
|  * @example
 | |
|  *
 | |
|  * _.isObject({});
 | |
|  * // => true
 | |
|  *
 | |
|  * _.isObject([1, 2, 3]);
 | |
|  * // => true
 | |
|  *
 | |
|  * _.isObject(_.noop);
 | |
|  * // => true
 | |
|  *
 | |
|  * _.isObject(null);
 | |
|  * // => false
 | |
|  */
 | |
| function isObject(value) {
 | |
|   var type = typeof value;
 | |
|   return value != null && (type == 'object' || type == 'function');
 | |
| }
 | |
| 
 | |
| module.exports = isFunction;
 |