code: function (target, name, meta){
              var _ctor = __define.fixTargetCtor(target),
                  _key = __define.fixTargetKey(name),
                  _exist = _key in _ctor,
                  _descriptor = {};
              var _getter, _setter;
  
              if ('value' in meta) {
                  var _value = meta.value,
                      _field = '_' + name,
                      _get = meta.get,
                      _set = meta.set;
  
                  _getter = _get || function () {
                      if (_field in this) {
                          return this[_field];
                      }
                      else {
                          return zn.is(_value, 'function') ? _value.call(this) : _value;
                      }
                  };
                  _setter = meta.readonly ?
                      function (value, options) {
                          if (options && options.force) {
                              this[_field] = value;
                          }
                          else {
                              return false;
                          }
                      } :
                      (_set ||function (value) {
                          this[_field] = value;
                      });
              } else {
                  _getter = meta.get || function () {
                      return undefined;
                  };
                  _setter = meta.set || function () {
                      return false;
                  };
              }
  
              if (_exist) {
                  _getter.__super__ = _ctor[_key].getter;
                  _setter.__super__ = _ctor[_key].setter;
              }
  
              /*
              if(!_exist){
                  _descriptor = Object.defineProperty(target, name, {
                      get: _getter,
                      set: _setter,
                      configurable : true
                  });
              }*/
  
  
              _descriptor = Object.defineProperty(target, name, {
                  get: _getter,
                  set: _setter,
                  configurable : true
              });
  
              _ctor[_key] = {
                  name: name,
                  type: 'property',
                  meta: meta,
                  getter: _getter,
                  setter: _setter,
                  descriptor: _descriptor
              };
  
              return _exist;
          }
docs: Define a property for target
  @param target
  @param name
  @param meta
  @returns {boolean}