Files
lodash/_baseGetTag.js
2017-01-08 23:37:20 -08:00

29 lines
796 B
JavaScript

import Symbol from './_Symbol.js';
import getRawTag from './_getRawTag.js';
import objectToString from './_objectToString.js';
/** `Object#toString` result references. */
const nullTag = '[object Null]';
const undefinedTag = '[object Undefined]';
/** Built-in value references. */
const 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;