* Checks if `value` is a property name and not a property path. * * @private * @param {*} value The value to check. * @param {Object} [object] The object to query keys on. * @returns {boolean} Returns `true` if `value` is a property name, else `false`.
(value, object)
| 16931 | * @returns {boolean} Returns `true` if `value` is a property name, else `false`. |
| 16932 | */ |
| 16933 | function isKey(value, object) { |
| 16934 | if (isArray(value)) { |
| 16935 | return false; |
| 16936 | } |
| 16937 | var type = typeof value; |
| 16938 | if (type == 'number' || type == 'symbol' || type == 'boolean' || |
| 16939 | value == null || isSymbol(value)) { |
| 16940 | return true; |
| 16941 | } |
| 16942 | return reIsPlainProp.test(value) || !reIsDeepProp.test(value) || |
| 16943 | (object != null && value in Object(object)); |
| 16944 | } |
| 16945 | |
| 16946 | /** |
| 16947 | * Checks if `value` is suitable for use as unique object key. |
no test coverage detected