| 'use strict'; | 
| var DESCRIPTORS = require('../internals/descriptors'); | 
| var defineBuiltInAccessor = require('../internals/define-built-in-accessor'); | 
| var isObject = require('../internals/is-object'); | 
| var isPossiblePrototype = require('../internals/is-possible-prototype'); | 
| var toObject = require('../internals/to-object'); | 
| var requireObjectCoercible = require('../internals/require-object-coercible'); | 
|   | 
| // eslint-disable-next-line es/no-object-getprototypeof -- safe | 
| var getPrototypeOf = Object.getPrototypeOf; | 
| // eslint-disable-next-line es/no-object-setprototypeof -- safe | 
| var setPrototypeOf = Object.setPrototypeOf; | 
| var ObjectPrototype = Object.prototype; | 
| var PROTO = '__proto__'; | 
|   | 
| // `Object.prototype.__proto__` accessor | 
| // https://tc39.es/ecma262/#sec-object.prototype.__proto__ | 
| if (DESCRIPTORS && getPrototypeOf && setPrototypeOf && !(PROTO in ObjectPrototype)) try { | 
|   defineBuiltInAccessor(ObjectPrototype, PROTO, { | 
|     configurable: true, | 
|     get: function __proto__() { | 
|       return getPrototypeOf(toObject(this)); | 
|     }, | 
|     set: function __proto__(proto) { | 
|       var O = requireObjectCoercible(this); | 
|       if (isPossiblePrototype(proto) && isObject(O)) { | 
|         setPrototypeOf(O, proto); | 
|       } | 
|     } | 
|   }); | 
| } catch (error) { /* empty */ } |