'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 */ } 
 |