| '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 | 
| }; |