29 lines
790 B
Plaintext
29 lines
790 B
Plaintext
|
import Symbol from './_Symbol.js';
|
||
|
import getRawTag from './_getRawTag.js';
|
||
|
import objectToString from './_objectToString.js';
|
||
|
|
||
|
/** `Object#toString` result references. */
|
||
|
var nullTag = '[object Null]',
|
||
|
undefinedTag = '[object Undefined]';
|
||
|
|
||
|
/** Built-in value references. */
|
||
|
var 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);
|
||
|
}
|
||
|
|
||
|
export default baseGetTag;
|