Index: imaps-frontend/node_modules/webpack/lib/async-modules/AwaitDependenciesInitFragment.js
===================================================================
--- imaps-frontend/node_modules/webpack/lib/async-modules/AwaitDependenciesInitFragment.js	(revision 79a03170cdde4e801d12257ee86723774970427b)
+++ imaps-frontend/node_modules/webpack/lib/async-modules/AwaitDependenciesInitFragment.js	(revision 79a03170cdde4e801d12257ee86723774970427b)
@@ -0,0 +1,72 @@
+/*
+	MIT License http://www.opensource.org/licenses/mit-license.php
+	Author Tobias Koppers @sokra
+*/
+
+"use strict";
+
+const InitFragment = require("../InitFragment");
+const RuntimeGlobals = require("../RuntimeGlobals");
+const Template = require("../Template");
+
+/** @typedef {import("webpack-sources").Source} Source */
+/** @typedef {import("../Generator").GenerateContext} GenerateContext */
+
+/**
+ * @extends {InitFragment<GenerateContext>}
+ */
+class AwaitDependenciesInitFragment extends InitFragment {
+	/**
+	 * @param {Set<string>} promises the promises that should be awaited
+	 */
+	constructor(promises) {
+		super(
+			undefined,
+			InitFragment.STAGE_ASYNC_DEPENDENCIES,
+			0,
+			"await-dependencies"
+		);
+		this.promises = promises;
+	}
+
+	/**
+	 * @param {AwaitDependenciesInitFragment} other other AwaitDependenciesInitFragment
+	 * @returns {AwaitDependenciesInitFragment} AwaitDependenciesInitFragment
+	 */
+	merge(other) {
+		const promises = new Set(other.promises);
+		for (const p of this.promises) {
+			promises.add(p);
+		}
+		return new AwaitDependenciesInitFragment(promises);
+	}
+
+	/**
+	 * @param {GenerateContext} context context
+	 * @returns {string | Source | undefined} the source code that will be included as initialization code
+	 */
+	getContent({ runtimeRequirements }) {
+		runtimeRequirements.add(RuntimeGlobals.module);
+		const promises = this.promises;
+		if (promises.size === 0) {
+			return "";
+		}
+		if (promises.size === 1) {
+			const [p] = promises;
+			return Template.asString([
+				`var __webpack_async_dependencies__ = __webpack_handle_async_dependencies__([${p}]);`,
+				`${p} = (__webpack_async_dependencies__.then ? (await __webpack_async_dependencies__)() : __webpack_async_dependencies__)[0];`,
+				""
+			]);
+		}
+		const sepPromises = Array.from(promises).join(", ");
+		// TODO check if destructuring is supported
+		return Template.asString([
+			`var __webpack_async_dependencies__ = __webpack_handle_async_dependencies__([${sepPromises}]);`,
+			`([${sepPromises}] = __webpack_async_dependencies__.then ? (await __webpack_async_dependencies__)() : __webpack_async_dependencies__);`,
+			""
+		]);
+	}
+}
+
+module.exports = AwaitDependenciesInitFragment;
Index: imaps-frontend/node_modules/webpack/lib/async-modules/InferAsyncModulesPlugin.js
===================================================================
--- imaps-frontend/node_modules/webpack/lib/async-modules/InferAsyncModulesPlugin.js	(revision 79a03170cdde4e801d12257ee86723774970427b)
+++ imaps-frontend/node_modules/webpack/lib/async-modules/InferAsyncModulesPlugin.js	(revision 79a03170cdde4e801d12257ee86723774970427b)
@@ -0,0 +1,55 @@
+/*
+	MIT License http://www.opensource.org/licenses/mit-license.php
+	Author Tobias Koppers @sokra
+*/
+
+"use strict";
+
+const HarmonyImportDependency = require("../dependencies/HarmonyImportDependency");
+
+/** @typedef {import("../Compiler")} Compiler */
+/** @typedef {import("../Module")} Module */
+
+class InferAsyncModulesPlugin {
+	/**
+	 * Apply the plugin
+	 * @param {Compiler} compiler the compiler instance
+	 * @returns {void}
+	 */
+	apply(compiler) {
+		compiler.hooks.compilation.tap("InferAsyncModulesPlugin", compilation => {
+			const { moduleGraph } = compilation;
+			compilation.hooks.finishModules.tap(
+				"InferAsyncModulesPlugin",
+				modules => {
+					/** @type {Set<Module>} */
+					const queue = new Set();
+					for (const module of modules) {
+						if (module.buildMeta && module.buildMeta.async) {
+							queue.add(module);
+						}
+					}
+					for (const module of queue) {
+						moduleGraph.setAsync(module);
+						for (const [
+							originModule,
+							connections
+						] of moduleGraph.getIncomingConnectionsByOriginModule(module)) {
+							if (
+								connections.some(
+									c =>
+										c.dependency instanceof HarmonyImportDependency &&
+										c.isTargetActive(undefined)
+								)
+							) {
+								queue.add(/** @type {Module} */ (originModule));
+							}
+						}
+					}
+				}
+			);
+		});
+	}
+}
+
+module.exports = InferAsyncModulesPlugin;
