'use strict'; 
 | 
var DESCRIPTORS = require('../internals/descriptors'); 
 | 
var hasOwn = require('../internals/has-own-property'); 
 | 
  
 | 
var FunctionPrototype = Function.prototype; 
 | 
// eslint-disable-next-line es/no-object-getownpropertydescriptor -- safe 
 | 
var getDescriptor = DESCRIPTORS && Object.getOwnPropertyDescriptor; 
 | 
  
 | 
var EXISTS = hasOwn(FunctionPrototype, 'name'); 
 | 
// additional protection from minified / mangled / dropped function names 
 | 
var PROPER = EXISTS && (function something() { /* empty */ }).name === 'something'; 
 | 
var CONFIGURABLE = EXISTS && (!DESCRIPTORS || (DESCRIPTORS && getDescriptor(FunctionPrototype, 'name').configurable)); 
 | 
  
 | 
module.exports = { 
 | 
  EXISTS: EXISTS, 
 | 
  PROPER: PROPER, 
 | 
  CONFIGURABLE: CONFIGURABLE 
 | 
}; 
 |