1234567891011121314151617181920212223242526272829 |
- '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;
- };
|