123456789101112131415161718192021222324252627282930313233 |
- 'use strict';
-
- var hasToStringTag = require('has-tostringtag/shams')();
- var callBound = require('call-bind/callBound');
-
- var $toString = callBound('Object.prototype.toString');
-
- var isStandardArguments = function isArguments(value) {
- if (hasToStringTag && value && typeof value === 'object' && Symbol.toStringTag in value) {
- return false;
- }
- return $toString(value) === '[object Arguments]';
- };
-
- var isLegacyArguments = function isArguments(value) {
- if (isStandardArguments(value)) {
- return true;
- }
- return value !== null &&
- typeof value === 'object' &&
- typeof value.length === 'number' &&
- value.length >= 0 &&
- $toString(value) !== '[object Array]' &&
- $toString(value.callee) === '[object Function]';
- };
-
- var supportsStandardArguments = (function () {
- return isStandardArguments(arguments);
- }());
-
- isStandardArguments.isLegacyArguments = isLegacyArguments; // for tests
-
- module.exports = supportsStandardArguments ? isStandardArguments : isLegacyArguments;
|