code: function TRANSITION_INTERVAL_VALIDATOR(v) {
    v = (v || 0).toString()
    var match, num, ret
  
    if (match = v.match(/^\d*\.?\d+(ms|s)?$/)) {
      num = parseFloat(match[0])
      if (!match[1]) {
        ret = {value: parseInt(num)}
      }
      else {
        if (match[1] === 's') {
          num *= 1000
        }
        ret = {
          value: parseInt(num),
          reason: function reason(k, v, result) {
            return 'NOTE: property value `' + v + '` is autofixed to `' + result + '`'
          }
        }
      }
      return ret
    }
  
    return {
      value: null,
      reason: function reason(k, v, result) {
        return 'ERROR: property value `' + v + '` is not supported for `' + util.camelCaseToHyphened(k) + '` (only number of seconds and milliseconds is valid)'
      }
    }
  }
docs: transition-duration & transition-delay: only number of seconds or milliseconds is valid
  
  @param {string} v
  @return {function} a function to return
  - value: number|null
  - reason(k, v, result)