mirror of
https://github.com/whoisclebs/lodash.git
synced 2026-02-08 02:17:48 +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
|
* @private
|
||||||
* @param {*} value The value to query.
|
* @param {*} value The value to query.
|
||||||
@@ -3057,15 +3057,9 @@
|
|||||||
return value === undefined ? undefinedTag : nullTag;
|
return value === undefined ? undefinedTag : nullTag;
|
||||||
}
|
}
|
||||||
value = Object(value);
|
value = Object(value);
|
||||||
if (symToStringTag && symToStringTag in value) {
|
return (symToStringTag && symToStringTag in value)
|
||||||
var symbol = value[symToStringTag];
|
? getRawTag(value)
|
||||||
value[symToStringTag] = undefined;
|
: objectToString(value);
|
||||||
}
|
|
||||||
var result = objectToString.call(value);
|
|
||||||
if (symbol) {
|
|
||||||
value[symToStringTag] = symbol;
|
|
||||||
}
|
|
||||||
return result;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@@ -5949,6 +5943,27 @@
|
|||||||
return baseIsNative(value) ? value : undefined;
|
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`.
|
* Creates an array of the own enumerable symbol properties of `object`.
|
||||||
*
|
*
|
||||||
|
|||||||
Reference in New Issue
Block a user