third_party/polymer3/bower_components/polymer/lib/mixins/property-effects.js
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;
}
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;
}
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 ; }
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
Runs a list of effects for a given property .