whole_func_string: function subscribeToTitle(getTitle, setTitle) {
      var titleElement = document.querySelector('title');
      var docEl = document.documentElement;
  
      function titleModified() {
          var title = document.title;
          var oldTitle = getTitle();
          if (oldTitle !== title) {
              setTitle(title);
          }
      }
  
      function subscribeAsObserver() {
          var observer = new MutationObserver(function () {
              titleModified();
          });
          observer.observe(titleElement, { childList: true });
          return function () {
              return observer.disconnect();
          };
      }
  
      function subscribeIE() {
          // eslint-disable-next-line
          document.onpropertychange = function () {
              if (window.event.propertyName == 'title') {
                  titleModified();
              }
          };
          // eslint-disable-next-line
          return function () {
              return document.onpropertychange = undefined;
          };
      }
  
      function subscribeAsModification() {
          var type = 'DOMSubtreeModified';
          var listener = function listener(evt) {
              var t = evt.target;
              // eslint-disable-next-line
              if (t === titleElement || t.parentNode && t.parentNode === titleElement) {
                  titleModified();
              }
          };
          docEl.addEventListener(type, listener, false);
          return function () {
              return docEl.removeEventListener(type, listener, false);
          };
      }
  
      if (docEl && docEl.addEventListener) {
          return subscribeAsModification();
          // stangely does not work in chrome when started over karma
      } else if (typeof MutationObserver !== 'undefined') {
          return subscribeAsObserver();
      } else {
          return subscribeIE();
      }
  }
func_code_string: function subscribeToTitle(getTitle, setTitle) {
      var titleElement = document.querySelector('title');
      var docEl = document.documentElement;
  
      function titleModified() {
          var title = document.title;
          var oldTitle = getTitle();
          if (oldTitle !== title) {
              setTitle(title);
          }
      }
  
      function subscribeAsObserver() {
          var observer = new MutationObserver(function () {
              titleModified();
          });
          observer.observe(titleElement, { childList: true });
          return function () {
              return observer.disconnect();
          };
      }
  
      function subscribeIE() {
          // eslint-disable-next-line
          document.onpropertychange = function () {
              if (window.event.propertyName == 'title') {
                  titleModified();
              }
          };
          // eslint-disable-next-line
          return function () {
              return document.onpropertychange = undefined;
          };
      }
  
      function subscribeAsModification() {
          var type = 'DOMSubtreeModified';
          var listener = function listener(evt) {
              var t = evt.target;
              // eslint-disable-next-line
              if (t === titleElement || t.parentNode && t.parentNode === titleElement) {
                  titleModified();
              }
          };
          docEl.addEventListener(type, listener, false);
          return function () {
              return docEl.removeEventListener(type, listener, false);
          };
      }
  
      if (docEl && docEl.addEventListener) {
          return subscribeAsModification();
          // stangely does not work in chrome when started over karma
      } else if (typeof MutationObserver !== 'undefined') {
          return subscribeAsObserver();
      } else {
          return subscribeIE();
      }
  }
func_documentation_string: http://stackoverflow.com/questions/2497200/how-to-listen-for-changes-to-the-title-element https://developer.mozilla.org/en/docs/Web/API/MutationObserver http://caniuse.com/#feat=mutationobserver https://msdn.microsoft.com/en-us/library/ms536956(v=vs.85).aspx