foop
Version:
interfaces that describe their intentions.
62 lines (58 loc) • 5.18 kB
JavaScript
var hasOwnProperty = require('../util/hasOwnProperty')
var isEnumerable = require('./enumerable')
var toS = require('./toS')
/**
* @desc check if toString on object is Arguments
* @since 4.0.0
* @memberOf is
*
* @param {Object | *} x value to check if isArguments
* @return {boolean} isArguments
*
* @see is/toS
* @name isArguments
* @func
*
* {@link https://tc39.github.io/ecma262/#prod-ArgumentList emca-isarguments}
* {@link https://github.com/medikoo/es5-ext/blob/master/function/is-arguments.js es5-ext-is-arguments}
* {@link https://github.com/jashkenas/underscore/blob/master/underscore.js#L1325 underscore-is-arguments}
* {@link https://github.com/substack/node-deep-equal/blob/master/lib/is_arguments.js node-deep-equals-is-arguments}
* {@link https://github.com/lodash/lodash/blob/master/isArguments.js lodash-is-arguments}
* {@link https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Functions/arguments mozilla-func-arguments}
* @see {@link emca-isarguments}
* @see {@link mozilla-func-arguments}
* @see {@link node-deep-equals-is-arguments}
* @see {@link lodash-is-arguments}
* @see {@link underscore-is-arguments}
* @see {@link es5-ext-is-arguments}
*
* @example
*
* isArguments({}) //=> false
*
* (function() {
* isArguments(arguments)
* //=> true
* })()
*
*/
var isArguments = function (x) { return toS(x) === '[object Arguments]'; }
module.exports = isArguments
// function unsupported(object) {
// return (
// (object &&
// typeof object === 'object' &&
// typeof object.length === 'number' &&
// hasOwnProperty(object, 'callee') &&
// !isEnumerable.call(object, 'callee')) ||
// false
// )
// }
//
// const supportsArgumentsClass =
// (function() {
// return toS(arguments)
// })() === '[object Arguments]'
//
// module.exports = supportsArgumentsClass ? supported : unsupported
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXJndW1lbnRzLmpzIiwic291cmNlcyI6WyJhcmd1bWVudHMuanMiXSwic291cmNlc0NvbnRlbnQiOlsiY29uc3QgaGFzT3duUHJvcGVydHkgPSByZXF1aXJlKCcuLi91dGlsL2hhc093blByb3BlcnR5JylcbmNvbnN0IGlzRW51bWVyYWJsZSA9IHJlcXVpcmUoJy4vZW51bWVyYWJsZScpXG5jb25zdCB0b1MgPSByZXF1aXJlKCcuL3RvUycpXG5cbi8qKlxuICogQGRlc2MgY2hlY2sgaWYgdG9TdHJpbmcgb24gb2JqZWN0IGlzIEFyZ3VtZW50c1xuICogQHNpbmNlIDQuMC4wXG4gKiBAbWVtYmVyT2YgaXNcbiAqXG4gKiBAcGFyYW0ge09iamVjdCB8ICp9IHggdmFsdWUgdG8gY2hlY2sgaWYgaXNBcmd1bWVudHNcbiAqIEByZXR1cm4ge2Jvb2xlYW59IGlzQXJndW1lbnRzXG4gKlxuICogQHNlZSBpcy90b1NcbiAqIEBuYW1lIGlzQXJndW1lbnRzXG4gKiBAZnVuY1xuICpcbiAqIHtAbGluayBodHRwczovL3RjMzkuZ2l0aHViLmlvL2VjbWEyNjIvI3Byb2QtQXJndW1lbnRMaXN0IGVtY2EtaXNhcmd1bWVudHN9XG4gKiB7QGxpbmsgaHR0cHM6Ly9naXRodWIuY29tL21lZGlrb28vZXM1LWV4dC9ibG9iL21hc3Rlci9mdW5jdGlvbi9pcy1hcmd1bWVudHMuanMgZXM1LWV4dC1pcy1hcmd1bWVudHN9XG4gKiB7QGxpbmsgaHR0cHM6Ly9naXRodWIuY29tL2phc2hrZW5hcy91bmRlcnNjb3JlL2Jsb2IvbWFzdGVyL3VuZGVyc2NvcmUuanMjTDEzMjUgdW5kZXJzY29yZS1pcy1hcmd1bWVudHN9XG4gKiB7QGxpbmsgaHR0cHM6Ly9naXRodWIuY29tL3N1YnN0YWNrL25vZGUtZGVlcC1lcXVhbC9ibG9iL21hc3Rlci9saWIvaXNfYXJndW1lbnRzLmpzIG5vZGUtZGVlcC1lcXVhbHMtaXMtYXJndW1lbnRzfVxuICoge0BsaW5rIGh0dHBzOi8vZ2l0aHViLmNvbS9sb2Rhc2gvbG9kYXNoL2Jsb2IvbWFzdGVyL2lzQXJndW1lbnRzLmpzIGxvZGFzaC1pcy1hcmd1bWVudHN9XG4gKiB7QGxpbmsgaHR0cHM6Ly9kZXZlbG9wZXIubW96aWxsYS5vcmcvZW4tVVMvZG9jcy9XZWIvSmF2YVNjcmlwdC9SZWZlcmVuY2UvRnVuY3Rpb25zL2FyZ3VtZW50cyBtb3ppbGxhLWZ1bmMtYXJndW1lbnRzfVxuICogQHNlZSB7QGxpbmsgZW1jYS1pc2FyZ3VtZW50c31cbiAqIEBzZWUge0BsaW5rIG1vemlsbGEtZnVuYy1hcmd1bWVudHN9XG4gKiBAc2VlIHtAbGluayBub2RlLWRlZXAtZXF1YWxzLWlzLWFyZ3VtZW50c31cbiAqIEBzZWUge0BsaW5rIGxvZGFzaC1pcy1hcmd1bWVudHN9XG4gKiBAc2VlIHtAbGluayB1bmRlcnNjb3JlLWlzLWFyZ3VtZW50c31cbiAqIEBzZWUge0BsaW5rIGVzNS1leHQtaXMtYXJndW1lbnRzfVxuICpcbiAqIEBleGFtcGxlXG4gKlxuICogICAgaXNBcmd1bWVudHMoe30pIC8vPT4gZmFsc2VcbiAqXG4gKiAgICAgKGZ1bmN0aW9uKCkge1xuICogICAgICBpc0FyZ3VtZW50cyhhcmd1bWVudHMpXG4gKiAgICAgIC8vPT4gdHJ1ZVxuICogICAgfSkoKVxuICpcbiAqL1xuY29uc3QgaXNBcmd1bWVudHMgPSB4ID0+IHRvUyh4KSA9PT0gJ1tvYmplY3QgQXJndW1lbnRzXSdcblxubW9kdWxlLmV4cG9ydHMgPSBpc0FyZ3VtZW50c1xuXG4vLyBmdW5jdGlvbiB1bnN1cHBvcnRlZChvYmplY3QpIHtcbi8vICAgcmV0dXJuIChcbi8vICAgICAob2JqZWN0ICYmXG4vLyAgICAgICB0eXBlb2Ygb2JqZWN0ID09PSAnb2JqZWN0JyAmJlxuLy8gICAgICAgdHlwZW9mIG9iamVjdC5sZW5ndGggPT09ICdudW1iZXInICYmXG4vLyAgICAgICBoYXNPd25Qcm9wZXJ0eShvYmplY3QsICdjYWxsZWUnKSAmJlxuLy8gICAgICAgIWlzRW51bWVyYWJsZS5jYWxsKG9iamVjdCwgJ2NhbGxlZScpKSB8fFxuLy8gICAgIGZhbHNlXG4vLyAgIClcbi8vIH1cbi8vXG4vLyBjb25zdCBzdXBwb3J0c0FyZ3VtZW50c0NsYXNzID1cbi8vICAgKGZ1bmN0aW9uKCkge1xuLy8gICAgIHJldHVybiB0b1MoYXJndW1lbnRzKVxuLy8gICB9KSgpID09PSAnW29iamVjdCBBcmd1bWVudHNdJ1xuLy9cbi8vIG1vZHVsZS5leHBvcnRzID0gc3VwcG9ydHNBcmd1bWVudHNDbGFzcyA/IHN1cHBvcnRlZCA6IHVuc3VwcG9ydGVkXG4iXSwibmFtZXMiOlsiY29uc3QiXSwibWFwcGluZ3MiOiJBQUFBQSxHQUFLLENBQUMsY0FBYyxHQUFHLE9BQU8sQ0FBQyx3QkFBd0IsQ0FBQztBQUN4REEsR0FBSyxDQUFDLFlBQVksR0FBRyxPQUFPLENBQUMsY0FBYyxDQUFDO0FBQzVDQSxHQUFLLENBQUMsR0FBRyxHQUFHLE9BQU8sQ0FBQyxPQUFPLENBQUM7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFxQzVCQSxHQUFLLENBQUMsV0FBVyxHQUFHLFVBQUEsQ0FBQyxDQUFBLENBQUMsQUFBRyxTQUFBLEdBQUcsQ0FBQyxDQUFDLENBQUMsS0FBSyxvQkFBb0IsR0FBQTs7QUFFeEQsTUFBTSxDQUFDLE9BQU8sR0FBRyxXQUFXOzs7Ozs7Ozs7Ozs7Ozs7Ozs7OyJ9