'use strict'; 
 | 
var DESCRIPTORS = require('../internals/descriptors'); 
 | 
var FUNCTION_NAME_EXISTS = require('../internals/function-name').EXISTS; 
 | 
var uncurryThis = require('../internals/function-uncurry-this'); 
 | 
var defineBuiltInAccessor = require('../internals/define-built-in-accessor'); 
 | 
  
 | 
var FunctionPrototype = Function.prototype; 
 | 
var functionToString = uncurryThis(FunctionPrototype.toString); 
 | 
var nameRE = /function\b(?:\s|\/\*[\S\s]*?\*\/|\/\/[^\n\r]*[\n\r]+)*([^\s(/]*)/; 
 | 
var regExpExec = uncurryThis(nameRE.exec); 
 | 
var NAME = 'name'; 
 | 
  
 | 
// Function instances `.name` property 
 | 
// https://tc39.es/ecma262/#sec-function-instances-name 
 | 
if (DESCRIPTORS && !FUNCTION_NAME_EXISTS) { 
 | 
  defineBuiltInAccessor(FunctionPrototype, NAME, { 
 | 
    configurable: true, 
 | 
    get: function () { 
 | 
      try { 
 | 
        return regExpExec(nameRE, functionToString(this))[1]; 
 | 
      } catch (error) { 
 | 
        return ''; 
 | 
      } 
 | 
    } 
 | 
  }); 
 | 
} 
 |