保誠-保戶業務員媒合平台
HelenHuang
2022-06-09 9bdb95c9e34cef640534e5e5a1e2225a80442000
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 = Object.getOwnPropertyDescriptor;
var defineProperty = Object.defineProperty;
var TypeErr = TypeError;
var getProto = Object.getPrototypeOf;
var regex = /a/;
 
module.exports = function shimFlags() {
    if (!supportsDescriptors || !getProto) {
        throw new TypeErr('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;
};