code: function runEffectsForProperty(inst, effects, dedupeId, prop, props, oldProps, hasPaths, extraArgs) {
    let ran = false;
    let rootProperty = hasPaths ? root$0(prop) : prop;
    let fxs = effects[rootProperty];
    if (fxs) {
      for (let i=0, l=fxs.length, fx; (i<l) && (fx=fxs[i]); i++) {
        if ((!fx.info || fx.info.lastRun !== dedupeId) &&
            (!hasPaths || pathMatchesTrigger(prop, fx.trigger))) {
          if (fx.info) {
            fx.info.lastRun = dedupeId;
          }
          fx.fn(inst, prop, props, oldProps, fx.info, hasPaths, extraArgs);
          ran = true;
        }
      }
    }
    return ran;
  }
docs: Runs a list of effects for a given property.
  
  @param {!PropertyEffectsType} inst The instance with effects to run
  @param {Object} effects Object map of property-to-Array of effects
  @param {number} dedupeId Counter used for de-duping effects
  @param {string} prop Name of changed property
  @param {*} props Changed properties
  @param {*} oldProps Old properties
  @param {boolean=} hasPaths True with `props` contains one or more paths
  @param {*=} extraArgs Additional metadata to pass to effect function
  @return {boolean} True if an effect ran for this property
  @private