/* */ 
'use strict';
var $ = require("./$"),
    NAME = 'name',
    setDesc = $.setDesc,
    FunctionProto = Function.prototype;
NAME in FunctionProto || $.FW && $.DESC && setDesc(FunctionProto, NAME, {
  configurable: true,
  get: function() {
    var match = String(this).match(/^\s*function ([^ (]*)/),
        name = match ? match[1] : '';
    $.has(this, NAME) || setDesc(this, NAME, $.desc(5, name));
    return name;
  },
  set: function(value) {
    $.has(this, NAME) || setDesc(this, NAME, $.desc(0, value));
  }
});
