code: function addEffectForBindingPart(constructor, templateInfo, binding, part, index) {
    if (!part.literal) {
      if (binding.kind === 'attribute' && binding.target[0] === '-') {
        console.warn('Cannot set attribute ' + binding.target +
          ' because "-" is not a valid attribute starting character');
      } else {
        let dependencies = part.dependencies;
        let info = { index, binding, part, evaluator: constructor };
        for (let j=0; j<dependencies.length; j++) {
          let trigger = dependencies[j];
          if (typeof trigger == 'string') {
            trigger = parseArg(trigger);
            trigger.wildcard = true;
          }
          constructor._addTemplatePropertyEffect(templateInfo, trigger.rootProperty, {
            fn: runBindingEffect,
            info, trigger
          });
        }
      }
    }
  }
docs: Adds property effects to the given `templateInfo` for the given binding
  part.
  
  @param {Function} constructor Class that `_parseTemplate` is currently
  running on
  @param {TemplateInfo} templateInfo Template metadata for current template
  @param {!Binding} binding Binding metadata
  @param {!BindingPart} part Binding part metadata
  @param {number} index Index into `nodeInfoList` for this node
  @return {void}