code: 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;
  }
docs: 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