| 'use strict'; | 
| var $ = require('../internals/export'); | 
| var globalThis = require('../internals/global-this'); | 
| var defineBuiltInAccessor = require('../internals/define-built-in-accessor'); | 
| var DESCRIPTORS = require('../internals/descriptors'); | 
|   | 
| var $TypeError = TypeError; | 
| // eslint-disable-next-line es/no-object-defineproperty -- safe | 
| var defineProperty = Object.defineProperty; | 
| var INCORRECT_VALUE = globalThis.self !== globalThis; | 
|   | 
| // `self` getter | 
| // https://html.spec.whatwg.org/multipage/window-object.html#dom-self | 
| try { | 
|   if (DESCRIPTORS) { | 
|     // eslint-disable-next-line es/no-object-getownpropertydescriptor -- safe | 
|     var descriptor = Object.getOwnPropertyDescriptor(globalThis, 'self'); | 
|     // some engines have `self`, but with incorrect descriptor | 
|     // https://github.com/denoland/deno/issues/15765 | 
|     if (INCORRECT_VALUE || !descriptor || !descriptor.get || !descriptor.enumerable) { | 
|       defineBuiltInAccessor(globalThis, 'self', { | 
|         get: function self() { | 
|           return globalThis; | 
|         }, | 
|         set: function self(value) { | 
|           if (this !== globalThis) throw new $TypeError('Illegal invocation'); | 
|           defineProperty(globalThis, 'self', { | 
|             value: value, | 
|             writable: true, | 
|             configurable: true, | 
|             enumerable: true | 
|           }); | 
|         }, | 
|         configurable: true, | 
|         enumerable: true | 
|       }); | 
|     } | 
|   } else $({ global: true, simple: true, forced: INCORRECT_VALUE }, { | 
|     self: globalThis | 
|   }); | 
| } catch (error) { /* empty */ } |