|
12345678910111213141516171819202122232425262728293031 |
- "use strict";
-
- /**
- * Returns `true` when the value is a regular Object and not a specialized Object
- *
- * This helps speed up deepEqual cyclic checks
- *
- * The premise is that only Objects are stored in the visited array.
- * So if this function returns false, we don't have to do the
- * expensive operation of searching for the value in the the array of already
- * visited objects
- *
- * @private
- * @param {object} value The object to examine
- * @returns {boolean} `true` when the object is a non-specialised object
- */
- function isObject(value) {
- return (
- typeof value === "object" &&
- value !== null &&
- // none of these are collection objects, so we can return false
- !(value instanceof Boolean) &&
- !(value instanceof Date) &&
- !(value instanceof Error) &&
- !(value instanceof Number) &&
- !(value instanceof RegExp) &&
- !(value instanceof String)
- );
- }
-
- module.exports = isObject;
|