Skip to main content
Module

x/lodash/npm-package/_getRawTag.js

A modern JavaScript utility library delivering modularity, performance, & extras.
Extremely Popular
Latest
File
var Symbol = require('./_Symbol');
/** 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 symToStringTag = Symbol ? Symbol.toStringTag : undefined;
/** * 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;}
module.exports = getRawTag;