code: function checkClass(className, output) {
    var hasBinding
    var tempClassList
    var classList = []
    var tempCode
  
    className = className.trim()
    if (className) {
      tempClassList = className.split(' ')
  
      // handle space in bindings
      var expStart = -1
      var expEnd = -1
      tempClassList.forEach(function (subName, index) {
        if (subName.indexOf('{{') > -1 && subName.indexOf('}}') === -1) {
          expStart = index
        }
        else if (expStart !== -1 && subName.indexOf('}}') > -1) {
          expEnd = index
          classList.push(tempClassList.slice(expStart, expEnd + 1).join(''))
          expStart = -1
          expEnd = -1
        }
        else if ((expStart === -1 && expEnd === -1) || (subName.indexOf('{{') > -1 && subName.indexOf('}}') > -1)) {
          classList.push(subName)
        }
      })
  
      classList = classList.map(function (subName) {
        if (exp.isExpr(subName)) {
          hasBinding = true
          return exp(subName, false)
        }
        return '\'' + subName + '\''
      })
  
      // need to be improved and catch more errors
      if (hasBinding) {
        tempCode = '(function () {return [' + classList.join(', ') + ']})'
        output.result.classList = eval(tempCode)
      }
      else {
        output.result.classList = classList.map(function (subName) {
          return subName.substr(1, subName.length - 2)
        })
      }
    }
  }
docs: 'a b c' -> ['a', 'b', 'c']
  'a {{b}} c' -> function () {return ['a', this.b, 'c']}
  
  @param  {string} className
  @param  {object} output{result, deps[], log[]}