function saveAccessorValue(model, property) {
  // Don't read/store value for any native properties since they could throw
  if (!nativeProperties[property]) {
    let value = model[property];
    if (value !== undefined) {
      if (model.__data) {
        // Adding accessor to instance; update the property
        // It is the user's responsibility to call _flushProperties
        model._setPendingProperty(property, value);
      } else {
        // Adding accessor to proto; save proto's value for instance-time use
        if (!model.__dataProto) {
          model.__dataProto = {};
        } else if (!model.hasOwnProperty(JSCompiler_renameProperty('__dataProto', model))) {
          model.__dataProto = Object.create(model.__dataProto);
        }
        model.__dataProto[property] = value;
      }
    }
  }
}
function saveAccessorValue(model, property) {
  // Don't read/store value for any native properties since they could throw
  if (!nativeProperties[property]) {
    let value = model[property];
    if (value !== undefined) {
      if (model.__data) {
        // Adding accessor to instance; update the property
        // It is the user's responsibility to call _flushProperties
        model._setPendingProperty(property, value);
      } else {
        // Adding accessor to proto; save proto's value for instance-time use
        if (!model.__dataProto) {
          model.__dataProto = {};
        } else if (!model.hasOwnProperty(JSCompiler_renameProperty('__dataProto', model))) {
          model.__dataProto = Object.create(model.__dataProto);
        }
        model.__dataProto[property] = value;
      }
    }
  }
}
function saveAccessorValue ( model , property ) { // Don't read/store value for any native properties since they could throw if ( ! nativeProperties [ property ] ) { let value = model [ property ] ; if ( value !== undefined ) { if ( model . __data ) { // Adding accessor to instance; update the property // It is the user's responsibility to call _flushProperties model . _setPendingProperty ( property , value ) ; } else { // Adding accessor to proto; save proto's value for instance-time use if ( ! model . __dataProto ) { model . __dataProto = { } ; } else if ( ! model . hasOwnProperty ( JSCompiler_renameProperty ( '__dataProto' , model ) ) ) { model . __dataProto = Object . create ( model . __dataProto ) ; } model . __dataProto [ property ] = value ; } } } }
Used to save the value of a property that will be overridden with
an accessor. If the `model` is a prototype, the values will be saved
in `__dataProto`, and it's up to the user (or downstream mixin) to
decide how/when to set these values back into the accessors.
If `model` is already an instance (it has a `__data` property), then
the value will be set as a pending property, meaning the user should
call `_invalidateProperties` or `_flushProperties` to take effect

@param {Object} model Prototype or instance
@param {string} property Name of property
@return {void}
@private
Used to save the value of a property that will be overridden with an accessor . If the model is a prototype the values will be saved in __dataProto and it s up to the user ( or downstream mixin ) to decide how / when to set these values back into the accessors . If model is already an instance ( it has a __data property ) then the value will be set as a pending property meaning the user should call _invalidateProperties or _flushProperties to take effect
Save accessor value to the model