1 var Symbol = require('./_Symbol');
3 /** Used for built-in method references. */
4 var objectProto = Object.prototype;
6 /** Used to check objects for own properties. */
7 var hasOwnProperty = objectProto.hasOwnProperty;
11 * [`toStringTag`](http://ecma-international.org/ecma-262/7.0/#sec-object.prototype.tostring)
14 var nativeObjectToString = objectProto.toString;
16 /** Built-in value references. */
17 var symToStringTag = Symbol ? Symbol.toStringTag : undefined;
20 * A specialized version of `baseGetTag` which ignores `Symbol.toStringTag` values.
23 * @param {*} value The value to query.
24 * @returns {string} Returns the raw `toStringTag`.
26 function getRawTag(value) {
27 var isOwn = hasOwnProperty.call(value, symToStringTag),
28 tag = value[symToStringTag];
31 value[symToStringTag] = undefined;
35 var result = nativeObjectToString.call(value);
38 value[symToStringTag] = tag;
40 delete value[symToStringTag];
46 module.exports = getRawTag;