12345678910111213141516171819202122232425 |
- var dP = require('./_object-dp').f
- , createDesc = require('./_property-desc')
- , has = require('./_has')
- , FProto = Function.prototype
- , nameRE = /^\s*function ([^ (]*)/
- , NAME = 'name';
- var isExtensible = Object.isExtensible || function(){
- return true;
- };
- // 19.2.4.2 name
- NAME in FProto || require('./_descriptors') && dP(FProto, NAME, {
- configurable: true,
- get: function(){
- try {
- var that = this
- , name = ('' + that).match(nameRE)[1];
- has(that, NAME) || !isExtensible(that) || dP(that, NAME, createDesc(5, name));
- return name;
- } catch(e){
- return '';
- }
- }
- });
|