code: function (self, prop, value) {
        defaultDescriptor.value = value;
        defineProperty(self, prop, defaultDescriptor);
        delete defaultDescriptor.value;
      }
docs: ///////////////////////////////////////////////////////////////  compatibility native:     Firefox Desktop and Mobile partial:    IE8 works with DOM nodes only simulated:  all other browsers except IE < 8  - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -  caveat:  if you delete obj.prop; or you configure a watched property via Object.defineProperty watcher getter/setter will be inevitably removed.  ///////////////////////////////////////////////////////////////