code: function getRenderer(attrs, scope) {
      var statics = function() {
        return {
          enter: function (element, target, cb) { target.after(element); cb(); },
          leave: function (element, cb) { element.remove(); cb(); }
        };
      };
  
      if ($animate) {
        return {
          enter: function(element, target, cb) {
            var promise = $animate.enter(element, null, target, cb);
            if (promise && promise.then) promise.then(cb);
          },
          leave: function(element, cb) {
            var promise = $animate.leave(element, cb);
            if (promise && promise.then) promise.then(cb);
          }
        };
      }
  
      if ($animator) {
        var animate = $animator && $animator(scope, attrs);
  
        return {
          enter: function(element, target, cb) {animate.enter(element, null, target); cb(); },
          leave: function(element, cb) { animate.leave(element); cb(); }
        };
      }
  
      return statics();
    }
docs: Returns a set of DOM manipulation functions based on which Angular version it should use