This repository has been archived on 2020-11-02. You can view files and clone it, but cannot push or open issues or pull requests.
TripSit_Suite/node_modules/@sinonjs/samsam/lib/is-object.js

32 lines
965 B
JavaScript
Raw Permalink Normal View History

"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;