|
12345678910111213141516171819202122 |
- '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: false
- });
- }
- } else if (typeof globalThis !== 'object' || globalThis !== polyfill) {
- polyfill.globalThis = polyfill;
- }
- return polyfill;
- };
|