third_party/polymer3/bower_components/polymer/lib/mixins/property-effects.js
function computeBindingValue(node, value, binding, part) {
  if (binding.isCompound) {
    let storage = node.__dataCompoundStorage[binding.target];
    storage[part.compoundIndex] = value;
    value = storage.join('');
  }
  if (binding.kind !== 'attribute') {
    // Some browsers serialize `undefined` to `"undefined"`
    if (binding.target === 'textContent' ||
        (binding.target === 'value' &&
          (node.localName === 'input' || node.localName === 'textarea'))) {
      value = value == undefined ? '' : value;
    }
  }
  return value;
}
function computeBindingValue(node, value, binding, part) {
  if (binding.isCompound) {
    let storage = node.__dataCompoundStorage[binding.target];
    storage[part.compoundIndex] = value;
    value = storage.join('');
  }
  if (binding.kind !== 'attribute') {
    // Some browsers serialize `undefined` to `"undefined"`
    if (binding.target === 'textContent' ||
        (binding.target === 'value' &&
          (node.localName === 'input' || node.localName === 'textarea'))) {
      value = value == undefined ? '' : value;
    }
  }
  return value;
}
function computeBindingValue ( node , value , binding , part ) { if ( binding . isCompound ) { let storage = node . __dataCompoundStorage [ binding . target ] ; storage [ part . compoundIndex ] = value ; value = storage . join ( '' ) ; } if ( binding . kind !== 'attribute' ) { // Some browsers serialize `undefined` to `"undefined"` if ( binding . target === 'textContent' || ( binding . target === 'value' && ( node . localName === 'input' || node . localName === 'textarea' ) ) ) { value = value == undefined ? '' : value ; } } return value ; }
Transforms an "binding" effect value based on compound & negation
effect metadata, as well as handling for special-case properties

@param {Node} node Node the value will be set to
@param {*} value Value to set
@param {!Binding} binding Binding metadata
@param {!BindingPart} part Binding part metadata
@return {*} Transformed value to set
@private
Transforms an binding effect value based on compound & negation effect metadata as well as handling for special - case properties