zhangjian
2023-06-05 0976d2d0f90cff460cedfdc8bd74e98c2c31a58c
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
'use strict';
 
var define = require('define-properties');
var getPolyfill = require('./polyfill');
 
module.exports = function shimGlobal() {
    var polyfill = getPolyfill();
    if (define.supportsDescriptors) {
        var descriptor = Object.getOwnPropertyDescriptor(polyfill, 'globalThis');
        if (!descriptor || (descriptor.configurable && (descriptor.enumerable || !descriptor.writable || globalThis !== polyfill))) { // eslint-disable-line max-len
            Object.defineProperty(polyfill, 'globalThis', {
                configurable: true,
                enumerable: false,
                value: polyfill,
                writable: true
            });
        }
    } else if (typeof globalThis !== 'object' || globalThis !== polyfill) {
        polyfill.globalThis = polyfill;
    }
    return polyfill;
};