fei.wang
10 天以前 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
27
28
29
'use strict';
 
var define = require('define-properties');
var gOPD = require('gopd');
var getPolyfill = require('./polyfill');
 
module.exports = function shimGlobal() {
    var polyfill = getPolyfill();
    if (define.supportsDescriptors) {
        var descriptor = gOPD(polyfill, 'globalThis');
        if (
            !descriptor
            || (
                descriptor.configurable
                && (descriptor.enumerable || !descriptor.writable || globalThis !== polyfill)
            )
        ) {
            Object.defineProperty(polyfill, 'globalThis', {
                configurable: true,
                enumerable: false,
                value: polyfill,
                writable: true
            });
        }
    } else if (typeof globalThis !== 'object' || globalThis !== polyfill) {
        polyfill.globalThis = polyfill;
    }
    return polyfill;
};