whole_func_string: function($scope, element, attrs) {
          var src = attrs.ngMessagesInclude || attrs.src;
          $templateRequest(src).then(function(html) {
            if ($scope.$$destroyed) return;
  
            if (isString(html) && !html.trim()) {
              // Empty template - nothing to compile
              replaceElementWithMarker(element, src);
            } else {
              // Non-empty template - compile and link
              $compile(html)($scope, function(contents) {
                element.after(contents);
                replaceElementWithMarker(element, src);
              });
            }
          });
        }
func_code_string: function($scope, element, attrs) {
          var src = attrs.ngMessagesInclude || attrs.src;
          $templateRequest(src).then(function(html) {
            if ($scope.$$destroyed) return;
  
            if (isString(html) && !html.trim()) {
              // Empty template - nothing to compile
              replaceElementWithMarker(element, src);
            } else {
              // Non-empty template - compile and link
              $compile(html)($scope, function(contents) {
                element.after(contents);
                replaceElementWithMarker(element, src);
              });
            }
          });
        }
func_documentation_string: we only require this for validation sake