1 var dP = require('./_object-dp').f
2 , createDesc = require('./_property-desc')
3 , has = require('./_has')
4 , FProto = Function.prototype
5 , nameRE = /^\s*function ([^ (]*)/
8 var isExtensible = Object.isExtensible || function(){
13 NAME in FProto || require('./_descriptors') && dP(FProto, NAME, {
18 , name = ('' + that).match(nameRE)[1];
19 has(that, NAME) || !isExtensible(that) || dP(that, NAME, createDesc(5, name));