fei.wang
2025-08-13 ae7b22322555448d95fd56f505bafa325c167a26
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
'use strict';
 
var supportsDescriptors = require('define-properties').supportsDescriptors;
var getPolyfill = require('./polyfill');
var gOPD = require('gopd');
var defineProperty = Object.defineProperty;
var $TypeError = require('es-errors');
var getProto = require('get-proto');
var regex = /a/;
 
module.exports = function shimFlags() {
    if (!supportsDescriptors || !getProto) {
        throw new $TypeError('RegExp.prototype.flags requires a true ES5 environment that supports property descriptors');
    }
    var polyfill = getPolyfill();
    var proto = getProto(regex);
    var descriptor = gOPD(proto, 'flags');
    if (!descriptor || descriptor.get !== polyfill) {
        defineProperty(proto, 'flags', {
            configurable: true,
            enumerable: false,
            get: polyfill
        });
    }
    return polyfill;
};