function requireDependenciesUpfront(sModuleName) {
		const knownDependencies = mDepCache[sModuleName];
		if ( Array.isArray(knownDependencies) ) {
			mDepCache[sModuleName] = undefined;
			const missingDeps = [];
			knownDependencies.forEach((dep) => {
				dep = getMappedName(dep, sModuleName);
				// even if a module is PRELOADED, its transitive dependencies might not
				if ( Module.get(dep).state <= INITIAL ) {
					missingDeps.push(dep);
				}
			});
			if ( missingDeps.length > 0 ) {
				log.info(`preload missing dependencies for ${sModuleName}: ${missingDeps}`);
				missingDeps.forEach((dep) => {
					if (/\.js$/.test(dep)) {
						// The resulting promise is ignored here intentionally.
						// Error handling will happen while module `sModuleName`` is processed
						requireModule(null, dep, /* always async */ true);
					} // else: TODO handle non-JS resources, e.g. link rel=prefetch
				});
			}
		}
	}
If we have knowledge about the dependencies of the given module,
we require them upfront, in parallel to the request for the module or
its containing bundle.

Note: a dependency is required even when it is in state PRELOADED already.
Reason is that its transitive dependencies might not have been required yet.