whole_func_string: function(scope, $element, attrs, ctrl, $transclude) {
        var previousElement, previousScope;
        scope.$watchCollection(attrs.ngAnimateSwap || attrs['for'], function(value) {
          if (previousElement) {
            $animate.leave(previousElement);
          }
          if (previousScope) {
            previousScope.$destroy();
            previousScope = null;
          }
          if (value || value === 0) {
            $transclude(function(clone, childScope) {
              previousElement = clone;
              previousScope = childScope;
              $animate.enter(clone, null, $element);
            });
          }
        });
      }
func_code_string: function(scope, $element, attrs, ctrl, $transclude) {
        var previousElement, previousScope;
        scope.$watchCollection(attrs.ngAnimateSwap || attrs['for'], function(value) {
          if (previousElement) {
            $animate.leave(previousElement);
          }
          if (previousScope) {
            previousScope.$destroy();
            previousScope = null;
          }
          if (value || value === 0) {
            $transclude(function(clone, childScope) {
              previousElement = clone;
              previousScope = childScope;
              $animate.enter(clone, null, $element);
            });
          }
        });
      }
func_documentation_string: we use 600 here to ensure that the directive is caught before others