保誠-保戶業務員媒合平台
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
27
28
29
30
31
32
33
34
35
'use strict';
 
var supportsDescriptors = require('define-properties').supportsDescriptors;
var functionsHaveNames = require('functions-have-names')();
var getPolyfill = require('./polyfill');
var defineProperty = Object.defineProperty;
var TypeErr = TypeError;
 
module.exports = function shimName() {
    var polyfill = getPolyfill();
    if (functionsHaveNames) {
        return polyfill;
    }
    if (!supportsDescriptors) {
        throw new TypeErr('Shimming Function.prototype.name support requires ES5 property descriptor support.');
    }
    var functionProto = Function.prototype;
    defineProperty(functionProto, 'name', {
        configurable: true,
        enumerable: false,
        get: function () {
            var name = polyfill.call(this);
            if (this !== functionProto) {
                defineProperty(this, 'name', {
                    configurable: true,
                    enumerable: false,
                    value: name,
                    writable: false
                });
            }
            return name;
        }
    });
    return polyfill;
};