PromoCursed/node_modules/globalthis/shim.js

30 lines
715 B
JavaScript
Raw Normal View History

2024-08-20 23:25:37 +04:00
'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;
};