docs: function classStringForValue(path, val, className, falsyClassName) {
      if (_emberMetalUtils.isArray(val)) {
        val = _emberMetalProperty_get.get(val, 'length') !== 0;
      }
  
      // When using the colon syntax, evaluate the truthiness or falsiness
      // of the value to determine which className to return
      if (className || falsyClassName) {
        if (className && !!val) {
          return className;
        } else if (falsyClassName && !val) {
          return falsyClassName;
        } else {
          return null;
        }
  
        // If value is a Boolean and true, return the dasherized property
        // name.
      } else if (val === true) {
          // Normalize property path to be suitable for use
          // as a class name. For exaple, content.foo.barBaz
          // becomes bar-baz.
          var parts = path.split('.');
          return _emberRuntimeSystemString.dasherize(parts[parts.length - 1]);
  
          // If the value is not false, undefined, or null, return the current
          // value of the property.
        } else if (val !== false && val != null) {
            return val;
  
            // Nothing to display. Return null so that the old class is removed
            // but no new class is added.
          } else {
              return null;
            }
    }