mirror of
https://github.com/whoisclebs/lodash.git
synced 2026-01-29 06:27:49 +00:00
Move Symbol.toStringTag workaround to getRawTag.
This commit is contained in:
35
lodash.js
35
lodash.js
@@ -3046,7 +3046,7 @@
|
||||
}
|
||||
|
||||
/**
|
||||
* The base implementation of `getTag`.
|
||||
* The base implementation of `getTag` without fallbacks for buggy environments.
|
||||
*
|
||||
* @private
|
||||
* @param {*} value The value to query.
|
||||
@@ -3057,15 +3057,9 @@
|
||||
return value === undefined ? undefinedTag : nullTag;
|
||||
}
|
||||
value = Object(value);
|
||||
if (symToStringTag && symToStringTag in value) {
|
||||
var symbol = value[symToStringTag];
|
||||
value[symToStringTag] = undefined;
|
||||
}
|
||||
var result = objectToString.call(value);
|
||||
if (symbol) {
|
||||
value[symToStringTag] = symbol;
|
||||
}
|
||||
return result;
|
||||
return (symToStringTag && symToStringTag in value)
|
||||
? getRawTag(value)
|
||||
: objectToString(value);
|
||||
}
|
||||
|
||||
/**
|
||||
@@ -5949,6 +5943,27 @@
|
||||
return baseIsNative(value) ? value : 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) {
|
||||
try {
|
||||
var symbol = value[symToStringTag];
|
||||
value[symToStringTag] = undefined;
|
||||
} catch (e) {
|
||||
symbol = undefined;
|
||||
}
|
||||
var result = nativeObjectToString.call(value);
|
||||
if (symbol) {
|
||||
value[symToStringTag] = symbol;
|
||||
}
|
||||
return result;
|
||||
}
|
||||
|
||||
/**
|
||||
* Creates an array of the own enumerable symbol properties of `object`.
|
||||
*
|
||||
|
||||
Reference in New Issue
Block a user