code: function runObserverEffect(inst, property, props, oldProps, info) {
    let fn = typeof info.method === "string" ? inst[info.method] : info.method;
    let changedProp = info.property;
    if (fn) {
      fn.call(inst, inst.__data[changedProp], oldProps[changedProp]);
    } else if (!info.dynamicFn) {
      console.warn('observer method `' + info.method + '` not defined');
    }
  }
docs: Implements the "observer" effect.
  
  Calls the method with `info.methodName` on the instance, passing the
  new and old values.
  
  @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