Ignore:
Timestamp:
01/21/25 03:08:24 (2 weeks ago)
Author:
stefan toskovski <stefantoska84@…>
Branches:
main
Parents:
0c6b92a
Message:

F4 Finalna Verzija

File:
1 edited

Legend:

Unmodified
Added
Removed
  • imaps-frontend/node_modules/is-regex/index.js

    r0c6b92a r79a0317  
    11'use strict';
    22
    3 var callBound = require('call-bind/callBound');
     3var callBound = require('call-bound');
    44var hasToStringTag = require('has-tostringtag/shams')();
    5 var has;
    6 var $exec;
    7 var isRegexMarker;
    8 var badStringifier;
     5var hasOwn = require('hasown');
     6var gOPD = require('gopd');
     7
     8/** @type {import('.')} */
     9var fn;
    910
    1011if (hasToStringTag) {
    11         has = callBound('Object.prototype.hasOwnProperty');
    12         $exec = callBound('RegExp.prototype.exec');
    13         isRegexMarker = {};
     12        /** @type {(receiver: ThisParameterType<typeof RegExp.prototype.exec>, ...args: Parameters<typeof RegExp.prototype.exec>) => ReturnType<typeof RegExp.prototype.exec>} */
     13        var $exec = callBound('RegExp.prototype.exec');
     14        /** @type {object} */
     15        var isRegexMarker = {};
    1416
    1517        var throwRegexMarker = function () {
    1618                throw isRegexMarker;
    1719        };
    18         badStringifier = {
     20        /** @type {{ toString(): never, valueOf(): never, [Symbol.toPrimitive]?(): never }} */
     21        var badStringifier = {
    1922                toString: throwRegexMarker,
    2023                valueOf: throwRegexMarker
     
    2427                badStringifier[Symbol.toPrimitive] = throwRegexMarker;
    2528        }
    26 }
    2729
    28 var $toString = callBound('Object.prototype.toString');
    29 var gOPD = Object.getOwnPropertyDescriptor;
    30 var regexClass = '[object RegExp]';
    31 
    32 module.exports = hasToStringTag
     30        /** @type {import('.')} */
     31        // @ts-expect-error TS can't figure out that the $exec call always throws
    3332        // eslint-disable-next-line consistent-return
    34         ? function isRegex(value) {
     33        fn = function isRegex(value) {
    3534                if (!value || typeof value !== 'object') {
    3635                        return false;
    3736                }
    3837
    39                 var descriptor = gOPD(value, 'lastIndex');
    40                 var hasLastIndexDataProperty = descriptor && has(descriptor, 'value');
     38                // eslint-disable-next-line no-extra-parens
     39                var descriptor = /** @type {NonNullable<typeof gOPD>} */ (gOPD)(/** @type {{ lastIndex?: unknown }} */ (value), 'lastIndex');
     40                var hasLastIndexDataProperty = descriptor && hasOwn(descriptor, 'value');
    4141                if (!hasLastIndexDataProperty) {
    4242                        return false;
     
    4444
    4545                try {
    46                         $exec(value, badStringifier);
     46                        // eslint-disable-next-line no-extra-parens
     47                        $exec(value, /** @type {string} */ (/** @type {unknown} */ (badStringifier)));
    4748                } catch (e) {
    4849                        return e === isRegexMarker;
    4950                }
    50         }
    51         : function isRegex(value) {
     51        };
     52} else {
     53        /** @type {(receiver: ThisParameterType<typeof Object.prototype.toString>, ...args: Parameters<typeof Object.prototype.toString>) => ReturnType<typeof Object.prototype.toString>} */
     54        var $toString = callBound('Object.prototype.toString');
     55        /** @const @type {'[object RegExp]'} */
     56        var regexClass = '[object RegExp]';
     57
     58        /** @type {import('.')} */
     59        fn = function isRegex(value) {
    5260                // In older browsers, typeof regex incorrectly returns 'function'
    5361                if (!value || (typeof value !== 'object' && typeof value !== 'function')) {
     
    5765                return $toString(value) === regexClass;
    5866        };
     67}
     68
     69module.exports = fn;
Note: See TracChangeset for help on using the changeset viewer.