function parseAndLoadRequireContext(xmlNode, bAsync) {
		var sCoreContext = xmlNode.getAttributeNS(CORE_NAMESPACE, "require"),
			oRequireContext,
			oModules,
			oResult;

		if (sCoreContext) {
			try {
				oRequireContext = JSTokenizer.parseJS(sCoreContext);
			} catch (e) {
				Log.error("Require attribute can't be parsed on Node: ", xmlNode.nodeName);
				throw e;
			}

			oResult = validateRequireContext(oRequireContext);
			if (oResult.errorMessage) {
				const sErrorMessage = `${oResult.errorMessage} on Node: ${xmlNode.nodeName}`;

				if (oResult.throwError) {
					throw new Error(sErrorMessage);
				} else {
					future.fatalThrows(`${sErrorMessage}. Keys that begin with '$' are reserved by the framework.`);
				}
			}

			if (!isEmptyObject(oRequireContext)) {
				oModules = {};
				if (bAsync) {
					return new Promise(function(resolve, reject) {
						// check whether all modules have been loaded already, avoids nested setTimeout calls
						var bAllLoaded = Object.keys(oRequireContext).reduce(function(bAll, sKey) {
							oModules[sKey] = sap.ui.require(oRequireContext[sKey]);
							return bAll && oModules[sKey] !== undefined;
						}, true);
						if ( bAllLoaded ) {
							resolve(oModules);
							return;
						}
						// fall back to async loading
						sap.ui.require(Object.values(oRequireContext), function() {
							var aLoadedModules = arguments;
							Object.keys(oRequireContext).forEach(function(sKey, i) {
								oModules[sKey] = aLoadedModules[i];
							});
							resolve(oModules);
						}, reject);
					});
				} else {
					Object.keys(oRequireContext).forEach(function(sKey) {
						oModules[sKey] = sap.ui.requireSync(oRequireContext[sKey]); // legacy-relevant: Sync path
					});

					return SyncPromise.resolve(oModules);
				}
			}
		}
	}
Extract module information which is defined with the "require" attribute under "sap.ui.core" namespace
and load the modules when there are some defined

@param {Element} xmlNode The current XMLNode which is being processed
@param {boolean} bAsync Whether the view is processed asynchronously

@return {Promise|undefined} The promise resolves after all modules are loaded. If the given xml node
 doesn't have require context defined, undefined is returned.
@ui5-transform-hint replace-param bAsync true