Files
2023-08-01 13:49:46 +02:00

35 lines
1.0 KiB
JavaScript

/**
* @file ES6-compliant shim for ToObject.
* @see {@link http://www.ecma-international.org/ecma-262/6.0/#sec-toobject|7.1.13 ToObject ( argument )}
* @version 1.5.0
* @author Xotic750 <Xotic750@gmail.com>
* @copyright Xotic750
* @license {@link <https://opensource.org/licenses/MIT> MIT}
* @module to-object-x
*/
'use strict';
var requireObjectCoercible = require('require-object-coercible-x');
var castObject = require('cached-constructors-x').Object;
/**
* The abstract operation ToObject converts argument to a value of
* type Object.
*
* @param {*} value - The `value` to convert.
* @throws {TypeError} If `value` is a `null` or `undefined`.
* @returns {!Object} The `value` converted to an object.
* @example
* var ToObject = require('to-object-x');
*
* ToObject(); // TypeError
* ToObject(null); // TypeError
* ToObject('abc'); // Object('abc')
* ToObject(true); // Object(true)
* ToObject(Symbol('foo')); // Object(Symbol('foo'))
*/
module.exports = function toObject(value) {
return castObject(requireObjectCoercible(value));
};