code: function loadControllerClass(sName, bAsync) {
  			if (!sName) {
  				throw new Error("Controller name ('sName' parameter) is required");
  			}
  
  			var sControllerName = sName.replace(/\./g, "/") + ".controller",
  				ControllerClass = resolveClass(sap.ui.require(sControllerName));
  
  			function resolveClass(ControllerClass) {
  				if (ControllerClass) {
  					return ControllerClass;
  				} else if (mRegistry[sName]) {
  					return Controller;
  				} else {
  					//legacy controller
  					return ObjectPath.get(sName);
  				}
  			}
  
  			if (bAsync) {
  				return new Promise(function(resolve, reject) {
  					if (!ControllerClass) {
  						sap.ui.require([sControllerName], function (ControllerClass) {
  							resolve(resolveClass(ControllerClass));
  						});
  					} else {
  						resolve(ControllerClass);
  					}
  				});
  			} else if (!ControllerClass) {
  				ControllerClass = sap.ui.requireSync(sControllerName);
  				return resolveClass(ControllerClass);
  			} else {
  				return ControllerClass;
  			}
  		}
docs: /* load controller class
  
  @param {string} sName the controller name
  @param {boolean} bAsync Load async or not
  @return {{sap.ui.core.mvc.Controller | Promise} oController <code>Promise</code> in case of asynchronous loading
  or <code>undefined</code> in case of synchronous loading