mirror of
https://codeberg.org/keyoxide/doipjs.git
synced 2024-12-23 15:09:28 -07:00
31 lines
965 B
JavaScript
31 lines
965 B
JavaScript
"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;
|