third_party/polymer3/bower_components/polymer/lib/mixins/property-effects.js
function runComputedEffect(inst, property, props, oldProps, info) {
  let result = runMethodEffect(inst, property, props, oldProps, info);
  let computedProp = info.methodInfo;
  if (inst.__dataHasAccessor && inst.__dataHasAccessor[computedProp]) {
    inst._setPendingProperty(computedProp, result, true);
  } else {
    inst[computedProp] = result;
  }
}
function runComputedEffect(inst, property, props, oldProps, info) {
  let result = runMethodEffect(inst, property, props, oldProps, info);
  let computedProp = info.methodInfo;
  if (inst.__dataHasAccessor && inst.__dataHasAccessor[computedProp]) {
    inst._setPendingProperty(computedProp, result, true);
  } else {
    inst[computedProp] = result;
  }
}
function runComputedEffect ( inst , property , props , oldProps , info ) { let result = runMethodEffect ( inst , property , props , oldProps , info ) ; let computedProp = info . methodInfo ; if ( inst . __dataHasAccessor && inst . __dataHasAccessor [ computedProp ] ) { inst . _setPendingProperty ( computedProp , result , true ) ; } else { inst [ computedProp ] = result ; } }
Implements the "computed property" effect by running the method with the
values of the arguments specified in the `info` object and setting the
return value to the computed property specified.

@param {!PropertyEffectsType} inst The instance the effect will be run on
@param {string} property Name of property
@param {Object} props Bag of current property changes
@param {Object} oldProps Bag of previous values for changed properties
@param {?} info Effect metadata
@return {void}
@private
Implements the computed property effect by running the method with the values of the arguments specified in the info object and setting the return value to the computed property specified .