src/basis/template/html.js
function legacyAttrClass(domRef, oldClass, newValue, anim){
      var newClass = newValue || '';

      if (newClass != oldClass)
      {
        var className = domRef.className;
        var classNameIsObject = typeof className != 'string';
        var classList;

        if (classNameIsObject)
          className = className.baseVal;

        classList = className.split(WHITESPACE);

        if (oldClass)
          basis.array.remove(classList, oldClass);

        if (newClass)
        {
          classList.push(newClass);

          if (anim)
          {
            basis.array.add(classList, newClass + '-anim');
            basis.nextTick(function(){
              var classList = (classNameIsObject ? domRef.className.baseVal : domRef.className).split(WHITESPACE);

              basis.array.remove(classList, newClass + '-anim');

              if (classNameIsObject)
                domRef.className.baseVal = classList.join(' ');
              else
                domRef.className = classList.join(' ');
            });
          }
        }

        if (classNameIsObject)
          domRef.className.baseVal = classList.join(' ');
        else
          domRef.className = classList.join(' ');
      }

      return newClass;
    }
function legacyAttrClass(domRef, oldClass, newValue, anim){
      var newClass = newValue || '';

      if (newClass != oldClass)
      {
        var className = domRef.className;
        var classNameIsObject = typeof className != 'string';
        var classList;

        if (classNameIsObject)
          className = className.baseVal;

        classList = className.split(WHITESPACE);

        if (oldClass)
          basis.array.remove(classList, oldClass);

        if (newClass)
        {
          classList.push(newClass);

          if (anim)
          {
            basis.array.add(classList, newClass + '-anim');
            basis.nextTick(function(){
              var classList = (classNameIsObject ? domRef.className.baseVal : domRef.className).split(WHITESPACE);

              basis.array.remove(classList, newClass + '-anim');

              if (classNameIsObject)
                domRef.className.baseVal = classList.join(' ');
              else
                domRef.className = classList.join(' ');
            });
          }
        }

        if (classNameIsObject)
          domRef.className.baseVal = classList.join(' ');
        else
          domRef.className = classList.join(' ');
      }

      return newClass;
    }
function legacyAttrClass ( domRef , oldClass , newValue , anim ) { var newClass = newValue || '' ; if ( newClass != oldClass ) { var className = domRef . className ; var classNameIsObject = typeof className != 'string' ; var classList ; if ( classNameIsObject ) className = className . baseVal ; classList = className . split ( WHITESPACE ) ; if ( oldClass ) basis . array . remove ( classList , oldClass ) ; if ( newClass ) { classList . push ( newClass ) ; if ( anim ) { basis . array . add ( classList , newClass + '-anim' ) ; basis . nextTick ( function ( ) { var classList = ( classNameIsObject ? domRef . className . baseVal : domRef . className ) . split ( WHITESPACE ) ; basis . array . remove ( classList , newClass + '-anim' ) ; if ( classNameIsObject ) domRef . className . baseVal = classList . join ( ' ' ) ; else domRef . className = classList . join ( ' ' ) ; } ) ; } } if ( classNameIsObject ) domRef . className . baseVal = classList . join ( ' ' ) ; else domRef . className = classList . join ( ' ' ) ; } return newClass ; }
old browsers have no support for classList at all IE11 and lower doesn't support classList for SVG
old browsers have no support for classList at all IE11 and lower doesn t support classList for SVG