mirror of
https://github.com/whoisclebs/lodash.git
synced 2026-01-29 06:27:49 +00:00
Avoid object mutation in getRawTag. [closes #2755]
This commit is contained in:
committed by
John-David Dalton
parent
e485e16d28
commit
1c9a9f364d
18
lodash.js
18
lodash.js
@@ -5956,15 +5956,21 @@
|
||||
* @returns {string} Returns the raw `toStringTag`.
|
||||
*/
|
||||
function getRawTag(value) {
|
||||
var isOwn = hasOwnProperty.call(value, symToStringTag),
|
||||
tag = value[symToStringTag];
|
||||
|
||||
try {
|
||||
var symbol = value[symToStringTag];
|
||||
value[symToStringTag] = undefined;
|
||||
} catch (e) {
|
||||
symbol = undefined;
|
||||
}
|
||||
var isSet = true;
|
||||
} catch (e) {}
|
||||
|
||||
var result = nativeObjectToString.call(value);
|
||||
if (symbol) {
|
||||
value[symToStringTag] = symbol;
|
||||
if (isSet) {
|
||||
if (isOwn) {
|
||||
value[symToStringTag] = tag;
|
||||
} else {
|
||||
delete value[symToStringTag];
|
||||
}
|
||||
}
|
||||
return result;
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user