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