code: function validate(name, value) {
    var result, log
    var validator = validatorMap[name]
  
    if (typeof validator === 'function') {
      if (typeof value !== 'function') {
        result = validator(value)
      }
      /* istanbul ignore else */
      else {
        result = {value: value}
      }
      if (result.reason) {
        log = {reason: result.reason(name, value, result.value)}
      }
    }
    else {
      // ensure number type, no `px`
      /* istanbul ignore else */
      if (typeof value !== 'function') {
        var match = value.match(LENGTH_REGEXP)
        if (match && (!match[1] || SUPPORT_CSS_UNIT.indexOf(match[1]) === -1)) {
          value = parseFloat(value)
        }
      }
      result = {value: value}
      var suggestedName = SUGGESTED_PROP_NAME_GROUP[name]
      var suggested = suggestedName ? ', suggest `' + util.camelCaseToHyphened(suggestedName) + '`' : ''
      log = {reason: 'WARNING: `' + util.camelCaseToHyphened(name) + '` is not a standard property name (may not be supported)' + suggested}
    }
    return {
      value: result.value,
      log: log
    }
  }
docs: validate a CSS name/value pair
  
  @param  {string} name   camel cased
  @param  {string} value
  @return {object}
  - value:string or null
  - log:{reason:string} or undefined