third_party/polymer3/bower_components/polymer/lib/mixins/property-effects.js
function ensureOwnEffectMap(model, type) {
  let effects = model[type];
  if (!effects) {
    effects = model[type] = {};
  } else if (!model.hasOwnProperty(type)) {
    effects = model[type] = Object.create(model[type]);
    for (let p in effects) {
      let protoFx = effects[p];
      let instFx = effects[p] = Array(protoFx.length);
      for (let i=0; i<protoFx.length; i++) {
        instFx[i] = protoFx[i];
      }
    }
  }
  return effects;
}
function ensureOwnEffectMap(model, type) {
  let effects = model[type];
  if (!effects) {
    effects = model[type] = {};
  } else if (!model.hasOwnProperty(type)) {
    effects = model[type] = Object.create(model[type]);
    for (let p in effects) {
      let protoFx = effects[p];
      let instFx = effects[p] = Array(protoFx.length);
      for (let i=0; i<protoFx.length; i++) {
        instFx[i] = protoFx[i];
      }
    }
  }
  return effects;
}
function ensureOwnEffectMap ( model , type ) { let effects = model [ type ] ; if ( ! effects ) { effects = model [ type ] = { } ; } else if ( ! model . hasOwnProperty ( type ) ) { effects = model [ type ] = Object . create ( model [ type ] ) ; for ( let p in effects ) { let protoFx = effects [ p ] ; let instFx = effects [ p ] = Array ( protoFx . length ) ; for ( let i = 0 ; i < protoFx . length ; i ++ ) { instFx [ i ] = protoFx [ i ] ; } } } return effects ; }
eslint-disable-line no-unused-vars 
Ensures that the model has an own-property map of effects for the given type.
The model may be a prototype or an instance.

Property effects are stored as arrays of effects by property in a map,
by named type on the model. e.g.

__computeEffects: {
foo: [ ... ],
bar: [ ... ]
}

If the model does not yet have an effect map for the type, one is created
and returned.  If it does, but it is not an own property (i.e. the
prototype had effects), the the map is deeply cloned and the copy is
set on the model and returned, ready for new effects to be added.

@param {Object} model Prototype or instance
@param {string} type Property effect type
@return {Object} The own-property map of effects for the given type
@private
eslint - disable - line no - unused - vars Ensures that the model has an own - property map of effects for the given type . The model may be a prototype or an instance .