Repository: webpack/webpack
Pull request #6962 (2018-04-04 18:33:48)

hot.accept tap interceptor returns T/F based on the number of args
addresses #6919

**What kind of change does this PR introduce?**

bugfix

**Did you add tests for your changes?**

yes

**If relevant, link to documentation update:**

N/A

**Summary**

#6919 

**Does this PR introduce a breaking change?**

Not to any external interface


jsf-clabot: [![CLA assistant check](https://cla.js.foundation/pull/badge/not_signed)](https://cla.js.foundation/webpack/webpack?pullRequest=6962) <br/>Thank you for your submission, we really appreciate it. Like many open source projects, we ask that you sign our [Contributor License Agreement](https://cla.js.foundation/webpack/webpack?pullRequest=6962) before we can accept your contribution.<br/>
webpack-bot: <!-- identifier: ci-result -->

@justinhelmer The most important CI builds failed. This way your PR can't be merged.

Please take a look at the CI results from [travis](https://travis-ci.org/webpack/webpack/builds/362279313?utm_source&#x3D;github_status&amp;utm_medium&#x3D;notification) (pending) and [appveyor](https://ci.appveyor.com/project/sokra/webpack/build/1.0.7135) (failure) and fix these issues.
webpack-bot: <!-- identifier: ci-result -->

@justinhelmer Please review the following output log for errors:
```text
  11 failing

  1) HotTestCases chunks accept-system-import should compile:
     Uncaught SyntaxError: Unexpected token import
      at Object../index.js (/home/travis/build/webpack/webpack/test/js/hot-cases/chunks/accept-system-import/bundle.js:821:1)
      at __webpack_require__ (/home/travis/build/webpack/webpack/test/js/hot-cases/chunks/accept-system-import/bundle.js:695:30)
      at /home/travis/build/webpack/webpack/test/js/hot-cases/chunks/accept-system-import/bundle.js:798:48
      at Object.<anonymous> (/home/travis/build/webpack/webpack/test/js/hot-cases/chunks/accept-system-import/bundle.js:801:10)
      at _require (/home/travis/build/webpack/webpack/test/HotTestCases.test.js:153:12)
      at compiler.run (/home/travis/build/webpack/webpack/test/HotTestCases.test.js:167:7)
      at AsyncSeriesHook.eval [as callAsync] (<anonymous>:6:1)
      at AsyncSeriesHook.lazyCompileHook [as _callAsync] (/home/travis/build/webpack/webpack/node_modules/tapable/lib/Hook.js:35:21)
      at emitRecords.err (/home/travis/build/webpack/webpack/lib/Compiler.js:9:10693)
      at /home/travis/build/webpack/webpack/node_modules/graceful-fs/graceful-fs.js:43:10
  

 
```
<details>
  <summary>Show remaining errors</summary>

```text
 2) HotTestCases concat reload-compat-flag should allow to hot replace modules in a ConcatenatedModule:
     Error: ENOENT: no such file or directory, open '/home/travis/build/webpack/webpack/test/js/hot-cases/concat/reload-compat-flag/module'
      at Error (native)
      at Object.fs.openSync (fs.js:642:51)
      at Object.fs.readFileSync (fs.js:510:33)
      at _require (/home/travis/build/webpack/webpack/test/HotTestCases.test.js:146:14)
      at /home/travis/build/webpack/webpack/test/js/hot-cases/concat/reload-compat-flag/bundle.js:13:306
      at D (/home/travis/build/webpack/webpack/test/js/hot-cases/concat/reload-compat-flag/bundle.js:1:5182)
      at /home/travis/build/webpack/webpack/test/js/hot-cases/concat/reload-compat-flag/bundle.js:1:1979
  

  3) HotTestCases concat reload-external should allow to hot replace modules in a ConcatenatedModule:
     ReferenceError: value1 is not defined
      at eval (webpack:///./module.js?:12:3)
      at eval (webpack:///./module.js?:14:4)
      at hotApply (/home/travis/build/webpack/webpack/test/js/hot-cases/concat/reload-external/bundle.js:594:17)
      at /home/travis/build/webpack/webpack/test/js/hot-cases/concat/reload-external/bundle.js:278:22
  

  4) HotTestCases harmony auto-import should auto-import a ES6 imported value on accept:
     ReferenceError: value is not defined
      at eval (webpack:///./index.js?:9:3)
      at eval (webpack:///./index.js?:12:4)
      at hotApply (/home/travis/build/webpack/webpack/test/js/hot-cases/harmony/auto-import/bundle.js:594:17)
      at /home/travis/build/webpack/webpack/test/js/hot-cases/harmony/auto-import/bundle.js:278:22
  

  5) HotTestCases harmony auto-import-default should auto-import a ES6 imported default value from non-harmony module on accept:
     ReferenceError: value is not defined
      at eval (webpack:///./index.js?:11:3)
      at eval (webpack:///./index.js?:14:4)
      at hotApply (/home/travis/build/webpack/webpack/test/js/hot-cases/harmony/auto-import-default/bundle.js:594:17)
      at /home/travis/build/webpack/webpack/test/js/hot-cases/harmony/auto-import-default/bundle.js:278:22
  

  6) HotTestCases harmony auto-import-multiple should auto-import multiple ES6 imported values on accept:
     ReferenceError: value is not defined
      at eval (webpack:///./index.js?:15:3)
      at eval (webpack:///./index.js?:19:4)
      at hotApply (/home/travis/build/webpack/webpack/test/js/hot-cases/harmony/auto-import-multiple/bundle.js:594:17)
      at /home/travis/build/webpack/webpack/test/js/hot-cases/harmony/auto-import-multiple/bundle.js:278:22
  

  7) HotTestCases runtime accept should accept a dependencies and require a new value:
     Error: ENOENT: no such file or directory, open '/home/travis/build/webpack/webpack/test/js/hot-cases/runtime/accept/file'
      at Error (native)
      at Object.fs.openSync (fs.js:642:51)
      at Object.fs.readFileSync (fs.js:510:33)
      at _require (/home/travis/build/webpack/webpack/test/HotTestCases.test.js:146:14)
      at eval (webpack:///./index.js?:6:11)
      at eval (webpack:///./index.js?:10:4)
      at hotApply (/home/travis/build/webpack/webpack/test/js/hot-cases/runtime/accept/bundle.js:594:17)
      at /home/travis/build/webpack/webpack/test/js/hot-cases/runtime/accept/bundle.js:278:22
  

  8) HotTestCases runtime bubble-update should bubble update from a nested dependency:
     Error: ENOENT: no such file or directory, open '/home/travis/build/webpack/webpack/test/js/hot-cases/runtime/bubble-update/parent-file'
      at Error (native)
      at Object.fs.openSync (fs.js:642:51)
      at Object.fs.readFileSync (fs.js:510:33)
      at _require (/home/travis/build/webpack/webpack/test/HotTestCases.test.js:146:14)
      at eval (webpack:///./index.js?:6:11)
      at eval (webpack:///./index.js?:9:4)
      at hotApply (/home/travis/build/webpack/webpack/test/js/hot-cases/runtime/bubble-update/bundle.js:594:17)
      at /home/travis/build/webpack/webpack/test/js/hot-cases/runtime/bubble-update/bundle.js:278:22
  

  9) HotTestCases runtime circular should not throw on circular dependencies:
     ReferenceError: a is not defined
      at eval (webpack:///./index.js?:9:3)
      at eval (webpack:///./index.js?:11:4)
      at hotApply (/home/travis/build/webpack/webpack/test/js/hot-cases/runtime/circular/bundle.js:594:17)
      at /home/travis/build/webpack/webpack/test/js/hot-cases/runtime/circular/bundle.js:278:22
  

  10) HotTestCases runtime update-multiple-modules should update multiple modules at the same time:
     Error: ENOENT: no such file or directory, open '/home/travis/build/webpack/webpack/test/js/hot-cases/runtime/update-multiple-modules/parent-file'
      at Error (native)
      at Object.fs.openSync (fs.js:642:51)
      at Object.fs.readFileSync (fs.js:510:33)
      at _require (/home/travis/build/webpack/webpack/test/HotTestCases.test.js:146:14)
      at eval (webpack:///./index.js?:6:11)
      at eval (webpack:///./index.js?:9:4)
      at hotApply (/home/travis/build/webpack/webpack/test/js/hot-cases/runtime/update-multiple-modules/bundle.js:594:17)
      at /home/travis/build/webpack/webpack/test/js/hot-cases/runtime/update-multiple-modules/bundle.js:278:22
  

  11) HotTestCases runtime update-multiple-times should accept a dependencies multiple times:
     Error: ENOENT: no such file or directory, open '/home/travis/build/webpack/webpack/test/js/hot-cases/runtime/update-multiple-times/file'
      at Error (native)
      at Object.fs.openSync (fs.js:642:51)
      at Object.fs.readFileSync (fs.js:510:33)
      at _require (/home/travis/build/webpack/webpack/test/HotTestCases.test.js:146:14)
      at eval (webpack:///./index.js?:7:11)
      at eval (webpack:///./index.js?:13:4)
      at hotApply (/home/travis/build/webpack/webpack/test/js/hot-cases/runtime/update-multiple-times/bundle.js:594:17)
      at /home/travis/build/webpack/webpack/test/js/hot-cases/runtime/update-multiple-times/bundle.js:278:22
  
```
</details>

See [complete report here](https://travis-ci.org/webpack/webpack/builds/362279313?utm_source&#x3D;github_status&amp;utm_medium&#x3D;notification).
ooflorent: For the test case, create a folder named `issue-6962` inside `test/hotCases/` and:

- create `test/hotCases/issue-6962/webpack.config.js` with the buggy config
- add your files to assert the `DefinePlugin` worked and the HMR is still working

You can run the _hot_ test suite using:

```
yarn test:integration --grep Hot
```
ooflorent: If you returns `true` for the hook it means that the parser must stop the traversing so the arguments are not parsed.

For single argument `module.hot.accept` you must return `true` because no further processing is required. However, if there are more arguments, you should return `false` or continue the parsing then return `true`:

```js
parser.walkExpression(expr.arguments[1]); // other args are ignored
return true;
```

Patch:
diff --git a/.istanbul.yml b/.istanbul.yml
index 380ddeb6d..7548269fb 100644
--- a/.istanbul.yml
+++ b/.istanbul.yml
@@ -1,4 +1,3 @@
 instrumentation:
   excludes:
     - "**/*.runtime.js"
-    - ".github/*"
diff --git a/README.md b/README.md
index 9a8c423f8..0af69bfda 100644
--- a/README.md
+++ b/README.md
@@ -60,7 +60,7 @@ or packaging just about any resource or asset.
 
 **TL;DR**
 
-* Bundles [ES Modules](http://www.2ality.com/2014/09/es6-modules-final.html), [CommonJS](http://wiki.commonjs.org/), and [AMD](https://github.com/amdjs/amdjs-api/wiki/AMD) modules (even combined).
+* Bundles [ES Modules](http://www.2ality.com/2014/09/es6-modules-final.html), [CommonJS](http://wiki.commonjs.org/) and [AMD](https://github.com/amdjs/amdjs-api/wiki/AMD) modules (even combined).
 * Can create a single bundle or multiple chunks that are asynchronously loaded at runtime (to reduce initial loading time).
 * Dependencies are resolved during compilation, reducing the runtime size.
 * Loaders can preprocess files while compiling, e.g. TypeScript to JavaScript, Handlebars strings to compiled functions, images to Base64, etc.
@@ -70,11 +70,6 @@ or packaging just about any resource or asset.
 
 Check out webpack's quick [**Get Started**](https://webpack.js.org/get-started/) guide and the [other guides](https://webpack.js.org/guides/).
 
-### Browser Compatibility
-
-webpack supports all browsers that are [ES5-compliant](http://kangax.github.io/compat-table/es5/) (IE8 and below are not supported).
-webpack also needs `Promise` for `import()` and `require.ensure()`. If you want to support older browsers, you will need to [load a polyfill](https://webpack.js.org/guides/shimming/) before using these expressions.
-
 <h2 align="center">Concepts</h2>
 
 ### [Plugins](https://webpack.js.org/plugins/)
@@ -329,6 +324,18 @@ If you have discovered a 🐜 or have a feature suggestion, feel free to create
         <br>
         <p>Founder of the core team</p>
       </td>
+      <td align="center" valign="top">
+        <img width="150" height="150" src="https://github.com/bebraw.png?s=150">
+        <br>
+        <a href="https://github.com/bebraw">Juho Vepsäläinen</a>
+        <p>Documentation</p>
+        <br>
+        <p>Author</p>
+        <a href="https://leanpub.com/survivejs-webpack">
+          <img height="15" src="https://cloud.githubusercontent.com/assets/1365881/20286923/93e325c0-aac9-11e6-964d-cabe218c584c.png">
+        </a>
+		<br>
+      </td>
       <td align="center" valign="top">
         <img width="150" height="150" src="https://github.com/spacek33z.png?s=150">
         <br>
diff --git a/declarations.d.ts b/declarations.d.ts
deleted file mode 100644
index ea092bdb3..000000000
--- a/declarations.d.ts
+++ /dev/null
@@ -1,55 +0,0 @@
-declare module "*.json";
-declare module "webpack-cli";
-
-// Deprecated NodeJS API usages in Webpack
-declare namespace NodeJS {
-	interface Process {
-		binding(internalModule: string): any;
-	}
-}
-
-// There are no typings for chrome-trace-event
-declare module 'chrome-trace-event' {
-	interface Event {
-		name: string
-		id?: number
-		cat: string[]
-		args?: Object
-	}
-
-	export class Tracer {
-		constructor(options: {
-			noStream: boolean
-		})
-		pipe(stream: NodeJS.WritableStream) : void
-		instantEvent(event: Event) : void
-		counter: number
-		trace: {
-			begin(event: Event) : void
-			end(event: Event) : void
-		}
-	}
-}
-
-/**
- * Global variable declarations
- * @todo Once this issue is resolved, remove these globals and add JSDoc onsite instead
- * https://github.com/Microsoft/TypeScript/issues/15626
- */
-declare const $hash$;
-declare const $requestTimeout$;
-declare const installedModules;
-declare const $require$;
-declare const hotDownloadManifest;
-declare const hotDownloadUpdateChunk;
-declare const hotDisposeChunk;
-declare const modules;
-declare const installedChunks;
-declare const hotAddUpdateChunk;
-declare const parentHotUpdateCallback;
-declare const $hotChunkFilename$;
-declare const $hotMainFilename$;
-declare const WebAssembly;
-declare const importScripts;
-declare const $crossOriginLoading$;
-declare const chunkId;
diff --git a/lib/Compilation.js b/lib/Compilation.js
index d6d54c4f1..834807c3b 100644
--- a/lib/Compilation.js
+++ b/lib/Compilation.js
@@ -208,7 +208,6 @@ class Compilation extends Tapable {
 					break;
 			}
 		});
-		this.name = undefined;
 		this.compiler = compiler;
 		this.resolverFactory = compiler.resolverFactory;
 		this.inputFileSystem = compiler.inputFileSystem;
@@ -465,8 +464,9 @@ class Compilation extends Tapable {
 		recursive,
 		callback
 	) {
-		const start = this.profile && Date.now();
-		const currentProfile = this.profile && {};
+		let _this = this;
+		const start = _this.profile && Date.now();
+		const currentProfile = _this.profile && {};
 
 		asyncLib.forEach(
 			dependencies,
@@ -475,7 +475,7 @@ class Compilation extends Tapable {
 
 				const errorAndCallback = err => {
 					err.origin = module;
-					this.errors.push(err);
+					_this.errors.push(err);
 					if (bail) {
 						callback(err);
 					} else {
@@ -484,24 +484,28 @@ class Compilation extends Tapable {
 				};
 				const warningAndCallback = err => {
 					err.origin = module;
-					this.warnings.push(err);
+					_this.warnings.push(err);
 					callback();
 				};
 
-				const semaphore = this.semaphore;
+				const semaphore = _this.semaphore;
 				semaphore.acquire(() => {
+					if (_this === null) return semaphore.release();
+
 					const factory = item.factory;
 					factory.create(
 						{
 							contextInfo: {
 								issuer: module.nameForCondition && module.nameForCondition(),
-								compiler: this.compiler.name
+								compiler: _this.compiler.name
 							},
 							resolveOptions: module.resolveOptions,
 							context: module.context,
 							dependencies: dependencies
 						},
 						(err, dependentModule) => {
+							if (_this === null) return semaphore.release();
+
 							let afterFactory;
 
 							const isOptional = () => {
@@ -539,7 +543,7 @@ class Compilation extends Tapable {
 								}
 							};
 
-							const addModuleResult = this.addModule(
+							const addModuleResult = _this.addModule(
 								dependentModule,
 								cacheGroup
 							);
@@ -553,7 +557,7 @@ class Compilation extends Tapable {
 								}
 
 								if (recursive && addModuleResult.dependencies) {
-									this.processModuleDependencies(dependentModule, callback);
+									_this.processModuleDependencies(dependentModule, callback);
 								} else {
 									return callback();
 								}
@@ -566,7 +570,7 @@ class Compilation extends Tapable {
 
 								dependentModule.issuer = module;
 							} else {
-								if (this.profile) {
+								if (_this.profile) {
 									if (module.profile) {
 										const time = Date.now() - start;
 										if (
@@ -580,12 +584,14 @@ class Compilation extends Tapable {
 							}
 
 							if (addModuleResult.build) {
-								this.buildModule(
+								_this.buildModule(
 									dependentModule,
 									isOptional(),
 									module,
 									dependencies,
 									err => {
+										if (_this === null) return semaphore.release();
+
 										if (err) {
 											semaphore.release();
 											return errorOrWarningAndCallback(err);
@@ -602,7 +608,7 @@ class Compilation extends Tapable {
 								);
 							} else {
 								semaphore.release();
-								this.waitForBuildingFinished(dependentModule, afterBuild);
+								_this.waitForBuildingFinished(dependentModule, afterBuild);
 							}
 						}
 					);
@@ -1045,13 +1051,15 @@ class Compilation extends Tapable {
 	}
 
 	assignIndex(module) {
+		const _this = this;
+
 		const assignIndexToModule = module => {
 			// enter module
 			if (typeof module.index !== "number") {
-				module.index = this.nextFreeModuleIndex++;
+				module.index = _this.nextFreeModuleIndex++;
 
 				// leave module
-				queue.push(() => (module.index2 = this.nextFreeModuleIndex2++));
+				queue.push(() => (module.index2 = _this.nextFreeModuleIndex2++));
 
 				// enter it as block
 				assignIndexToDependencyBlock(module);
diff --git a/lib/Compiler.js b/lib/Compiler.js
index e7805c4b3..5b20c5085 100644
--- a/lib/Compiler.js
+++ b/lib/Compiler.js
@@ -74,8 +74,6 @@ class Compiler extends Tapable {
 			}
 		});
 
-		this.name = undefined;
-		this.parentCompilation = undefined;
 		this.outputPath = "";
 		this.outputFileSystem = null;
 		this.inputFileSystem = null;
diff --git a/lib/EvalDevToolModuleTemplatePlugin.js b/lib/EvalDevToolModuleTemplatePlugin.js
index ab5dd1aac..13795ada2 100644
--- a/lib/EvalDevToolModuleTemplatePlugin.js
+++ b/lib/EvalDevToolModuleTemplatePlugin.js
@@ -6,7 +6,6 @@
 
 const { RawSource } = require("webpack-sources");
 const ModuleFilenameHelpers = require("./ModuleFilenameHelpers");
-
 const cache = new WeakMap();
 
 class EvalDevToolModuleTemplatePlugin {
diff --git a/lib/EvalSourceMapDevToolModuleTemplatePlugin.js b/lib/EvalSourceMapDevToolModuleTemplatePlugin.js
index 75ce249ae..726cd4a94 100644
--- a/lib/EvalSourceMapDevToolModuleTemplatePlugin.js
+++ b/lib/EvalSourceMapDevToolModuleTemplatePlugin.js
@@ -7,8 +7,6 @@
 const { RawSource } = require("webpack-sources");
 const ModuleFilenameHelpers = require("./ModuleFilenameHelpers");
 
-const cache = new WeakMap();
-
 class EvalSourceMapDevToolModuleTemplatePlugin {
 	constructor(compilation, options) {
 		this.compilation = compilation;
@@ -31,16 +29,12 @@ class EvalSourceMapDevToolModuleTemplatePlugin {
 		moduleTemplate.hooks.module.tap(
 			"EvalSourceMapDevToolModuleTemplatePlugin",
 			(source, module) => {
-				const cachedSource = cache.get(source);
-				if (cachedSource !== undefined) {
-					return cachedSource;
-				}
-
+				if (source.__EvalSourceMapDevToolData)
+					return source.__EvalSourceMapDevToolData;
 				if (!matchModule(module.resource)) {
 					return source;
 				}
 
-				/** @type {{ [key: string]: any; }} */
 				let sourceMap;
 				let content;
 				if (source.sourceAndMap) {
@@ -93,14 +87,10 @@ class EvalSourceMapDevToolModuleTemplatePlugin {
 							"utf8"
 						).toString("base64")}`
 					) + `\n//# sourceURL=webpack-internal:///${module.id}\n`; // workaround for chrome bug
-
-				const evalSource = new RawSource(
+				source.__EvalSourceMapDevToolData = new RawSource(
 					`eval(${JSON.stringify(content + footer)});`
 				);
-
-				cache.set(source, evalSource);
-
-				return evalSource;
+				return source.__EvalSourceMapDevToolData;
 			}
 		);
 		moduleTemplate.hooks.hash.tap(
diff --git a/lib/HotModuleReplacement.runtime.js b/lib/HotModuleReplacement.runtime.js
index 063422118..8b919c4bb 100644
--- a/lib/HotModuleReplacement.runtime.js
+++ b/lib/HotModuleReplacement.runtime.js
@@ -362,7 +362,6 @@ module.exports = function() {
 		for (var id in hotUpdate) {
 			if (Object.prototype.hasOwnProperty.call(hotUpdate, id)) {
 				moduleId = toModuleId(id);
-				/** @type {any} */
 				var result;
 				if (hotUpdate[id]) {
 					result = getAffectedStuff(moduleId);
@@ -372,7 +371,6 @@ module.exports = function() {
 						moduleId: id
 					};
 				}
-				/** @type {Error|false} */
 				var abortError = false;
 				var doApply = false;
 				var doDispose = false;
diff --git a/lib/HotModuleReplacementPlugin.js b/lib/HotModuleReplacementPlugin.js
index 5258f4ed6..96dd7f82b 100644
--- a/lib/HotModuleReplacementPlugin.js
+++ b/lib/HotModuleReplacementPlugin.js
@@ -145,8 +145,8 @@ module.exports = class HotModuleReplacementPlugin {
 							h: compilation.hash,
 							c: {}
 						};
-						for (const key of Object.keys(records.chunkHashs)) {
-							const chunkId = isNaN(+key) ? key : +key;
+						for (let chunkId of Object.keys(records.chunkHashs)) {
+							chunkId = isNaN(+chunkId) ? chunkId : +chunkId;
 							const currentChunk = compilation.chunks.find(
 								chunk => chunk.id === chunkId
 							);
@@ -343,13 +343,17 @@ module.exports = class HotModuleReplacementPlugin {
 										parser.state.module.addDependency(dep);
 										requests.push(request);
 									});
-									if (expr.arguments.length > 1)
+									if (expr.arguments.length > 1) {
 										parser.hooks.hotAcceptCallback.call(
 											expr.arguments[1],
 											requests
 										);
-									else
+										parser.walkExpression(expr.arguments[1]); // other args are ignored
+										return true;
+									} else {
 										parser.hooks.hotAcceptWithoutCallback.call(expr, requests);
+										return true;
+									}
 								}
 							}
 						});
diff --git a/lib/HotUpdateChunk.js b/lib/HotUpdateChunk.js
deleted file mode 100644
index 17eaf1281..000000000
--- a/lib/HotUpdateChunk.js
+++ /dev/null
@@ -1,16 +0,0 @@
-/*
-	MIT License http://www.opensource.org/licenses/mit-license.php
-	Author Tobias Koppers @sokra
-*/
-"use strict";
-
-const Chunk = require("./Chunk");
-
-class HotUpdateChunk extends Chunk {
-	constructor() {
-		super();
-		this.removedModules = undefined;
-	}
-}
-
-module.exports = HotUpdateChunk;
diff --git a/lib/HotUpdateChunkTemplate.js b/lib/HotUpdateChunkTemplate.js
index 92ab8db08..26288ac0f 100644
--- a/lib/HotUpdateChunkTemplate.js
+++ b/lib/HotUpdateChunkTemplate.js
@@ -5,7 +5,7 @@
 "use strict";
 
 const Template = require("./Template");
-const HotUpdateChunk = require("./HotUpdateChunk");
+const Chunk = require("./Chunk");
 const { Tapable, SyncWaterfallHook, SyncHook } = require("tapable");
 
 module.exports = class HotUpdateChunkTemplate extends Tapable {
@@ -41,7 +41,7 @@ module.exports = class HotUpdateChunkTemplate extends Tapable {
 		moduleTemplate,
 		dependencyTemplates
 	) {
-		const hotUpdateChunk = new HotUpdateChunk();
+		const hotUpdateChunk = new Chunk();
 		hotUpdateChunk.id = id;
 		hotUpdateChunk.setModules(modules);
 		hotUpdateChunk.removedModules = removedModules;
diff --git a/lib/Module.js b/lib/Module.js
index 58f611d7d..5a9bd95a8 100644
--- a/lib/Module.js
+++ b/lib/Module.js
@@ -11,10 +11,6 @@ const ModuleReason = require("./ModuleReason");
 const SortableSet = require("./util/SortableSet");
 const Template = require("./Template");
 
-/** @typedef {typeof import("./Chunk")} Chunk */
-
-/** @typedef {typeof import("./RequestShortener")} RequestShortener */
-
 const EMPTY_RESOLVE_OPTIONS = {};
 
 let debugId = 1000;
@@ -27,79 +23,51 @@ const sortByDebugId = (a, b) => {
 	return a.debugId - b.debugId;
 };
 
-/** @typedef {(requestShortener: RequestShortener) => string} OptimizationBailoutFunction */
-
 class Module extends DependenciesBlock {
 	constructor(type, context = null) {
 		super();
-		/** @type {string} */
 		this.type = type;
-		/** @type {string} */
 		this.context = context;
 
 		// Unique Id
-		/** @type {number} */
 		this.debugId = debugId++;
 
 		// Hash
-		/** @type {string} */
 		this.hash = undefined;
-		/** @type {string} */
 		this.renderedHash = undefined;
 
 		// Info from Factory
-		/** @type {object} */
 		this.resolveOptions = EMPTY_RESOLVE_OPTIONS;
-		/** @type {object} */
 		this.factoryMeta = {};
 
 		// Info from Build
-		/** @type {Error[]} */
 		this.warnings = [];
-		/** @type {Error[]} */
 		this.errors = [];
-		/** @type {object} */
 		this.buildMeta = undefined;
-		/** @type {object} */
 		this.buildInfo = undefined;
 
 		// Graph (per Compilation)
-		/** @type {ModuleReason[]} */
 		this.reasons = [];
-		/** @type {SortableSet} */
 		this._chunks = new SortableSet(undefined, sortById);
 
 		// Info from Compilation (per Compilation)
-		/** @type {number | string} */
 		this.id = null;
-		/** @type {number} */
 		this.index = null;
-		/** @type {number} */
 		this.index2 = null;
-		/** @type {number} */
 		this.depth = null;
-		/** @type {Module} */
 		this.issuer = null;
-		/** @type {undefined | object} */
 		this.profile = undefined;
-		/** @type {boolean} */
 		this.prefetched = false;
-		/** @type {boolean} */
 		this.built = false;
 
 		// Info from Optimization (per Compilation)
-		/** @type {null | boolean} */
 		this.used = null;
-		/** @type {false | true | string[]} */
 		this.usedExports = null;
-		/** @type {(string | OptimizationBailoutFunction)[]} */
 		this.optimizationBailout = [];
 
 		// delayed operations
-		/** @type {undefined | {oldChunk: Chunk, newChunks: Chunk[]}[] } */
 		this._rewriteChunkInReasons = undefined;
 
-		/** @type {boolean} */
 		this.useSourceMap = false;
 	}
 
diff --git a/lib/NormalModule.js b/lib/NormalModule.js
index 55d2154ad..7f9582e00 100644
--- a/lib/NormalModule.js
+++ b/lib/NormalModule.js
@@ -154,9 +154,7 @@ class NormalModule extends Module {
 				this.errors.push(new ModuleError(this, error));
 			},
 			exec: (code, filename) => {
-				// @ts-ignore Argument of type 'this' is not assignable to parameter of type 'Module'.
 				const module = new NativeModule(filename, this);
-				// @ts-ignore _nodeModulePaths is deprecated and undocumented Node.js API
 				module.paths = NativeModule._nodeModulePaths(this.context);
 				module.filename = filename;
 				module._compile(code, filename);
diff --git a/lib/Parser.js b/lib/Parser.js
index 7c1420129..1fff3632f 100644
--- a/lib/Parser.js
+++ b/lib/Parser.js
@@ -1060,10 +1060,9 @@ class Parser extends Tapable {
 	}
 
 	walkFunctionDeclaration(statement) {
-		const wasTopLevel = this.scope.topLevelScope;
-		this.scope.topLevelScope = false;
 		for (const param of statement.params) this.walkPattern(param);
 		this.inScope(statement.params, () => {
+			this.scope.topLevelScope = false;
 			if (statement.body.type === "BlockStatement") {
 				this.detectStrictMode(statement.body.body);
 				this.prewalkStatement(statement.body);
@@ -1072,7 +1071,6 @@ class Parser extends Tapable {
 				this.walkExpression(statement.body);
 			}
 		});
-		this.scope.topLevelScope = wasTopLevel;
 	}
 
 	prewalkImportDeclaration(statement) {
@@ -1467,10 +1465,9 @@ class Parser extends Tapable {
 	}
 
 	walkFunctionExpression(expression) {
-		const wasTopLevel = this.scope.topLevelScope;
-		this.scope.topLevelScope = false;
 		for (const param of expression.params) this.walkPattern(param);
 		this.inScope(expression.params, () => {
+			this.scope.topLevelScope = false;
 			if (expression.body.type === "BlockStatement") {
 				this.detectStrictMode(expression.body.body);
 				this.prewalkStatement(expression.body);
@@ -1479,7 +1476,6 @@ class Parser extends Tapable {
 				this.walkExpression(expression.body);
 			}
 		});
-		this.scope.topLevelScope = wasTopLevel;
 	}
 
 	walkArrowFunctionExpression(expression) {
@@ -1625,10 +1621,10 @@ class Parser extends Tapable {
 				}
 				this.walkExpression(argOrThis);
 			};
-			const wasTopLevel = this.scope.topLevelScope;
-			this.scope.topLevelScope = false;
 			const params = functionExpression.params;
-			const renameThis = currentThis ? renameArgOrThis(currentThis) : null;
+			const renameThis = currentThis
+				? renameArgOrThis.call(this, currentThis)
+				: null;
 			const args = options.map(renameArgOrThis);
 			this.inScope(params.filter((identifier, idx) => !args[idx]), () => {
 				if (renameThis) {
@@ -1645,7 +1641,6 @@ class Parser extends Tapable {
 					this.walkStatement(functionExpression.body);
 				} else this.walkExpression(functionExpression.body);
 			});
-			this.scope.topLevelScope = wasTopLevel;
 		};
 		if (
 			expression.callee.type === "MemberExpression" &&
@@ -1657,7 +1652,8 @@ class Parser extends Tapable {
 			expression.arguments.length > 0
 		) {
 			// (function(…) { }.call/bind(?, …))
-			walkIIFE(
+			walkIIFE.call(
+				this,
 				expression.callee.object,
 				expression.arguments.slice(1),
 				expression.arguments[0]
@@ -1667,7 +1663,7 @@ class Parser extends Tapable {
 			expression.arguments
 		) {
 			// (function(…) { }(…))
-			walkIIFE(expression.callee, expression.arguments, null);
+			walkIIFE.call(this, expression.callee, expression.arguments);
 		} else if (expression.callee.type === "Import") {
 			result = this.hooks.importCall.call(expression);
 			if (result === true) return;
@@ -1877,8 +1873,7 @@ class Parser extends Tapable {
 						return {
 							range: left.range,
 							value: left.value,
-							code: true,
-							conditional: false
+							code: true
 						};
 					} else if (right.code) {
 						return {
@@ -1887,15 +1882,12 @@ class Parser extends Tapable {
 								right.range ? right.range[1] : left.range[1]
 							],
 							value: left.value + right.value,
-							code: true,
-							conditional: false
+							code: true
 						};
 					} else {
 						return {
 							range: [left.range[0], right.range[1]],
-							value: left.value + right.value,
-							code: false,
-							conditional: false
+							value: left.value + right.value
 						};
 					}
 				}
@@ -1911,7 +1903,6 @@ class Parser extends Tapable {
 				else if (!alternate.code) items.push(alternate);
 				else break;
 				return {
-					range: undefined,
 					value: "",
 					code: true,
 					conditional: items
@@ -1920,16 +1911,12 @@ class Parser extends Tapable {
 			case "Literal":
 				return {
 					range: expression.range,
-					value: expression.value + "",
-					code: false,
-					conditional: false
+					value: expression.value + ""
 				};
 		}
 		return {
-			range: undefined,
 			value: "",
-			code: true,
-			conditional: false
+			code: true
 		};
 	}
 
diff --git a/lib/RuleSet.js b/lib/RuleSet.js
index 093311cb4..bf0f2bfdf 100644
--- a/lib/RuleSet.js
+++ b/lib/RuleSet.js
@@ -353,8 +353,7 @@ module.exports = class RuleSet {
 			};
 		}
 		return {
-			loader: useItemString,
-			options: undefined
+			loader: useItemString
 		};
 	}
 
diff --git a/lib/RuntimeTemplate.js b/lib/RuntimeTemplate.js
index 5d29738fa..d98f097e2 100644
--- a/lib/RuntimeTemplate.js
+++ b/lib/RuntimeTemplate.js
@@ -12,16 +12,6 @@ module.exports = class RuntimeTemplate {
 		this.requestShortener = requestShortener;
 	}
 
-	/**
-	 * Add a comment
-	 * @param {object} options Information content of the comment
-	 * @param {string=} options.request request string used originally
-	 * @param {string=} options.chunkName name of the chunk referenced
-	 * @param {string=} options.chunkReason reason information of the chunk
-	 * @param {string=} options.message additional message
-	 * @param {string=} options.exportName name of the export
-	 * @return {string} comment
-	 */
 	comment({ request, chunkName, chunkReason, message, exportName }) {
 		let content;
 		if (this.outputOptions.pathinfo) {
@@ -205,7 +195,7 @@ module.exports = class RuntimeTemplate {
 			} else if (originModule.buildMeta.strictHarmonyModule) {
 				if (exportName) {
 					return "/* non-default import from non-esm module */undefined";
-				} else {
+				} else if (!exportName) {
 					if (asiSafe) {
 						return `/*#__PURE__*/{ /* fake namespace object */ "default": ${importVar} }`;
 					} else {
diff --git a/lib/Stats.js b/lib/Stats.js
index 5ddf87396..cbed64da6 100644
--- a/lib/Stats.js
+++ b/lib/Stats.js
@@ -749,7 +749,7 @@ class Stats {
 			const builtAtDate = new Date(obj.builtAt);
 			colors.normal("Built at: ");
 			colors.normal(
-				builtAtDate.toLocaleDateString(undefined, {
+				builtAtDate.toLocaleDateString({
 					day: "2-digit",
 					month: "2-digit",
 					year: "numeric"
@@ -922,30 +922,19 @@ class Stats {
 			if (module.usedExports !== undefined) {
 				if (module.usedExports !== true) {
 					colors.normal(prefix);
-					if (module.usedExports === null) {
+					if (module.usedExports === null)
 						colors.cyan("[used exports unknown]");
-					} else if (module.usedExports === false) {
+					else if (module.usedExports === false)
 						colors.cyan("[no exports used]");
-					} else if (
+					else if (
 						Array.isArray(module.usedExports) &&
 						module.usedExports.length === 0
-					) {
+					)
 						colors.cyan("[no exports used]");
-					} else if (Array.isArray(module.usedExports)) {
-						const providedExportsCount = Array.isArray(module.providedExports)
-							? module.providedExports.length
-							: null;
-						if (
-							providedExportsCount !== null &&
-							providedExportsCount === module.usedExports.length
-						) {
-							colors.cyan("[all exports used]");
-						} else {
-							colors.cyan(
-								`[only some exports used: ${module.usedExports.join(", ")}]`
-							);
-						}
-					}
+					else if (Array.isArray(module.usedExports))
+						colors.cyan(
+							`[only some exports used: ${module.usedExports.join(", ")}]`
+						);
 					newline();
 				}
 			}
@@ -1018,39 +1007,19 @@ class Stats {
 
 		const processModulesList = (obj, prefix) => {
 			if (obj.modules) {
-				let maxModuleId = 0;
-				for (const module of obj.modules) {
-					if (typeof module.id === "number") {
-						if (maxModuleId < module.id) maxModuleId = module.id;
-					}
-				}
-				let contentPrefix = prefix + "    ";
-				if (maxModuleId >= 10) contentPrefix += " ";
-				if (maxModuleId >= 100) contentPrefix += " ";
-				if (maxModuleId >= 1000) contentPrefix += " ";
 				for (const module of obj.modules) {
 					colors.normal(prefix);
 					const name = module.name || module.identifier;
+					let contentPrefix = prefix + "   ";
 					if (typeof module.id === "string" || typeof module.id === "number") {
-						if (typeof module.id === "number") {
-							if (module.id < 1000 && maxModuleId >= 1000) colors.normal(" ");
-							if (module.id < 100 && maxModuleId >= 100) colors.normal(" ");
-							if (module.id < 10 && maxModuleId >= 10) colors.normal(" ");
-						} else {
-							if (maxModuleId >= 1000) colors.normal(" ");
-							if (maxModuleId >= 100) colors.normal(" ");
-							if (maxModuleId >= 10) colors.normal(" ");
-						}
-						if (name !== module.id) {
-							colors.normal("[");
-							colors.normal(module.id);
-							colors.normal("]");
-							colors.normal(" ");
-						} else {
-							colors.normal("[");
-							colors.bold(module.id);
-							colors.normal("]");
-						}
+						contentPrefix += "    ";
+						if (module.id < 1000) colors.normal(" ");
+						if (module.id < 100) colors.normal(" ");
+						if (module.id < 10) colors.normal(" ");
+						colors.normal("[");
+						colors.normal(module.id);
+						colors.normal("]");
+						if (name !== module.id) colors.normal(" ");
 					}
 					if (name !== module.id) {
 						colors.bold(name);
diff --git a/lib/WebpackError.js b/lib/WebpackError.js
index 4fd233881..9e44b5c30 100644
--- a/lib/WebpackError.js
+++ b/lib/WebpackError.js
@@ -5,14 +5,6 @@
 "use strict";
 
 module.exports = class WebpackError extends Error {
-	constructor(message) {
-		super(message);
-
-		this.details = undefined;
-
-		Error.captureStackTrace(this, this.constructor);
-	}
-
 	inspect() {
 		return this.stack + (this.details ? `\n${this.details}` : "");
 	}
diff --git a/lib/WebpackOptionsDefaulter.js b/lib/WebpackOptionsDefaulter.js
index 1cd910011..6559d1250 100644
--- a/lib/WebpackOptionsDefaulter.js
+++ b/lib/WebpackOptionsDefaulter.js
@@ -123,12 +123,12 @@ class WebpackOptionsDefaulter extends OptionsDefaulter {
 			switch (options.target) {
 				case "web":
 				case "electron-renderer":
-				case "node-webkit":
 					return "window";
 				case "webworker":
 					return "self";
 				case "node":
 				case "async-node":
+				case "node-webkit":
 				case "electron-main":
 					return "global";
 				default:
diff --git a/lib/WebpackOptionsValidationError.js b/lib/WebpackOptionsValidationError.js
index 8c5ed0b5b..db9dc1fe1 100644
--- a/lib/WebpackOptionsValidationError.js
+++ b/lib/WebpackOptionsValidationError.js
@@ -141,7 +141,7 @@ class WebpackOptionsValidationError extends WebpackError {
 		if (schema.anyOf) return schema.anyOf.map(formatInnerSchema).join(" | ");
 		if (schema.enum)
 			return schema.enum.map(item => JSON.stringify(item)).join(" | ");
-		return JSON.stringify(schema, null, 2);
+		return JSON.stringify(schema, 0, 2);
 	}
 
 	static formatValidationError(err) {
@@ -306,7 +306,7 @@ class WebpackOptionsValidationError extends WebpackError {
 			// eslint-disable-line no-fallthrough
 			return `${dataPath} ${err.message} (${JSON.stringify(
 				err,
-				null,
+				0,
 				2
 			)}).\n${getSchemaPartText(err.parentSchema)}`;
 		}
diff --git a/lib/debug/ProfilingPlugin.js b/lib/debug/ProfilingPlugin.js
index cf8895d22..368365569 100644
--- a/lib/debug/ProfilingPlugin.js
+++ b/lib/debug/ProfilingPlugin.js
@@ -320,15 +320,10 @@ const makeInterceptorFor = (instance, tracer) => hookName => ({
 	}
 });
 
-/** @typedef {(...args: any[]) => void | Promise<any>} PluginFunction */
-
 /**
  * @param {string} hookName Name of the hook to profile.
- * @param {Tracer} tracer Instance of tracer.
- * @param {object} options Options for the profiled fn.
- * @param {string} options.name Plugin name
- * @param {string} options.type Plugin type (sync | async | promise)
- * @param {PluginFunction} options.fn Plugin function
+ * @param {{counter: number, trace: *, profiler: *}} tracer Instance of tracer.
+ * @param {{name: string, type: string, fn: Function}} opts Options for the profiled fn.
  * @returns {*} Chainable hooked function.
  */
 const makeNewProfiledTapFn = (hookName, tracer, { name, type, fn }) => {
@@ -344,8 +339,7 @@ const makeNewProfiledTapFn = (hookName, tracer, { name, type, fn }) => {
 					id,
 					cat: defaultCategory
 				});
-				const promise = /** @type {Promise<*>} */ (fn(...args));
-				return promise.then(r => {
+				return fn(...args).then(r => {
 					tracer.trace.end({
 						name,
 						id,
diff --git a/lib/dependencies/AMDDefineDependency.js b/lib/dependencies/AMDDefineDependency.js
index fcec365d5..66539e539 100644
--- a/lib/dependencies/AMDDefineDependency.js
+++ b/lib/dependencies/AMDDefineDependency.js
@@ -13,7 +13,6 @@ class AMDDefineDependency extends NullDependency {
 		this.functionRange = functionRange;
 		this.objectRange = objectRange;
 		this.namedModule = namedModule;
-		this.localModule = null;
 	}
 
 	get type() {
diff --git a/lib/dependencies/AMDDefineDependencyParserPlugin.js b/lib/dependencies/AMDDefineDependencyParserPlugin.js
index fb1c9629e..e713f1f59 100644
--- a/lib/dependencies/AMDDefineDependencyParserPlugin.js
+++ b/lib/dependencies/AMDDefineDependencyParserPlugin.js
@@ -81,7 +81,7 @@ class AMDDefineDependencyParserPlugin {
 					))
 				) {
 					// eslint-disable-line no-cond-assign
-					dep = new LocalModuleDependency(localModule, undefined, false);
+					dep = new LocalModuleDependency(localModule);
 					dep.loc = expr.loc;
 					parser.state.current.addDependency(dep);
 				} else {
@@ -122,7 +122,7 @@ class AMDDefineDependencyParserPlugin {
 				))
 			) {
 				// eslint-disable-line no-cond-assign
-				dep = new LocalModuleDependency(localModule, param.range, false);
+				dep = new LocalModuleDependency(localModule, param.range);
 			} else {
 				dep = this.newRequireItemDependency(param.string, param.range);
 			}
diff --git a/lib/dependencies/AMDRequireDependenciesBlock.js b/lib/dependencies/AMDRequireDependenciesBlock.js
index f86191b4a..1953e0a9e 100644
--- a/lib/dependencies/AMDRequireDependenciesBlock.js
+++ b/lib/dependencies/AMDRequireDependenciesBlock.js
@@ -20,9 +20,7 @@ module.exports = class AMDRequireDependenciesBlock extends AsyncDependenciesBloc
 		this.expr = expr;
 		this.outerRange = expr.range;
 		this.arrayRange = arrayRange;
-		this.functionBindThis = false;
 		this.functionRange = functionRange;
-		this.errorCallbackBindThis = false;
 		this.errorCallbackRange = errorCallbackRange;
 		this.bindThis = true;
 		if (arrayRange && functionRange && errorCallbackRange) {
diff --git a/lib/dependencies/AMDRequireDependenciesBlockParserPlugin.js b/lib/dependencies/AMDRequireDependenciesBlockParserPlugin.js
index 19770bb3c..91cbf32d6 100644
--- a/lib/dependencies/AMDRequireDependenciesBlockParserPlugin.js
+++ b/lib/dependencies/AMDRequireDependenciesBlockParserPlugin.js
@@ -78,7 +78,7 @@ class AMDRequireDependenciesBlockParserPlugin {
 					))
 				) {
 					// eslint-disable-line no-cond-assign
-					dep = new LocalModuleDependency(localModule, undefined, false);
+					dep = new LocalModuleDependency(localModule);
 					dep.loc = expr.loc;
 					parser.state.current.addDependency(dep);
 				} else {
@@ -126,7 +126,7 @@ class AMDRequireDependenciesBlockParserPlugin {
 				))
 			) {
 				// eslint-disable-line no-cond-assign
-				dep = new LocalModuleDependency(localModule, param.range, false);
+				dep = new LocalModuleDependency(localModule, param.range);
 			} else {
 				dep = this.newRequireItemDependency(param.string, param.range);
 			}
diff --git a/lib/dependencies/CommonJsRequireDependencyParserPlugin.js b/lib/dependencies/CommonJsRequireDependencyParserPlugin.js
index 29dc81749..14b8b7848 100644
--- a/lib/dependencies/CommonJsRequireDependencyParserPlugin.js
+++ b/lib/dependencies/CommonJsRequireDependencyParserPlugin.js
@@ -73,58 +73,53 @@ class CommonJsRequireDependencyParserPlugin {
 				parser.state.current.addDependency(dep);
 				return true;
 			});
-
-		const createHandler = callNew => expr => {
-			if (expr.arguments.length !== 1) return;
-			let localModule;
-			const param = parser.evaluateExpression(expr.arguments[0]);
-			if (param.isConditional()) {
-				let isExpression = false;
-				const prevLength = parser.state.current.dependencies.length;
-				const dep = new RequireHeaderDependency(expr.callee.range);
-				dep.loc = expr.loc;
-				parser.state.current.addDependency(dep);
-				for (const p of param.options) {
-					const result = processItem(expr, p);
-					if (result === undefined) {
-						isExpression = true;
+		parser.hooks.call
+			.for("require")
+			.tap("CommonJsRequireDependencyParserPlugin", expr => {
+				if (expr.arguments.length !== 1) return;
+				let localModule;
+				const param = parser.evaluateExpression(expr.arguments[0]);
+				if (param.isConditional()) {
+					let isExpression = false;
+					const prevLength = parser.state.current.dependencies.length;
+					const dep = new RequireHeaderDependency(expr.callee.range);
+					dep.loc = expr.loc;
+					parser.state.current.addDependency(dep);
+					for (const p of param.options) {
+						const result = processItem(expr, p);
+						if (result === undefined) {
+							isExpression = true;
+						}
+					}
+					if (isExpression) {
+						parser.state.current.dependencies.length = prevLength;
+					} else {
+						return true;
 					}
 				}
-				if (isExpression) {
-					parser.state.current.dependencies.length = prevLength;
-				} else {
-					return true;
-				}
-			}
-			if (
-				param.isString() &&
-				(localModule = LocalModulesHelpers.getLocalModule(
-					parser.state,
-					param.string
-				))
-			) {
-				const dep = new LocalModuleDependency(localModule, expr.range, callNew);
-				dep.loc = expr.loc;
-				parser.state.current.addDependency(dep);
-				return true;
-			} else {
-				const result = processItem(expr, param);
-				if (result === undefined) {
-					processContext(expr, param);
-				} else {
-					const dep = new RequireHeaderDependency(expr.callee.range);
+				if (
+					param.isString() &&
+					(localModule = LocalModulesHelpers.getLocalModule(
+						parser.state,
+						param.string
+					))
+				) {
+					const dep = new LocalModuleDependency(localModule, expr.range);
 					dep.loc = expr.loc;
 					parser.state.current.addDependency(dep);
+					return true;
+				} else {
+					const result = processItem(expr, param);
+					if (result === undefined) {
+						processContext(expr, param);
+					} else {
+						const dep = new RequireHeaderDependency(expr.callee.range);
+						dep.loc = expr.loc;
+						parser.state.current.addDependency(dep);
+					}
+					return true;
 				}
-				return true;
-			}
-		};
-		parser.hooks.call
-			.for("require")
-			.tap("CommonJsRequireDependencyParserPlugin", createHandler(false));
-		parser.hooks.new
-			.for("require")
-			.tap("CommonJsRequireDependencyParserPlugin", createHandler(true));
+			});
 	}
 }
 module.exports = CommonJsRequireDependencyParserPlugin;
diff --git a/lib/dependencies/ContextDependency.js b/lib/dependencies/ContextDependency.js
index 387f27533..81b7a7792 100644
--- a/lib/dependencies/ContextDependency.js
+++ b/lib/dependencies/ContextDependency.js
@@ -14,8 +14,6 @@ class ContextDependency extends Dependency {
 		super();
 		this.options = options;
 		this.userRequest = this.options.request;
-		/** @type {false | string} */
-		this.critical = false;
 		this.hadGlobalOrStickyRegExp = false;
 		if (this.options.regExp.global || this.options.regExp.sticky) {
 			this.options.regExp = null;
@@ -49,7 +47,6 @@ class ContextDependency extends Dependency {
 	}
 }
 
-// TODO remove in webpack 5
 Object.defineProperty(ContextDependency.prototype, "async", {
 	configurable: false,
 	get() {
diff --git a/lib/dependencies/HarmonyAcceptImportDependency.js b/lib/dependencies/HarmonyAcceptImportDependency.js
index 62bd00cf4..dc238f708 100644
--- a/lib/dependencies/HarmonyAcceptImportDependency.js
+++ b/lib/dependencies/HarmonyAcceptImportDependency.js
@@ -16,7 +16,7 @@ class HarmonyAcceptImportDependency extends HarmonyImportDependency {
 	}
 }
 
-HarmonyAcceptImportDependency.Template = class HarmonyAcceptImportDependencyTemplate extends HarmonyImportDependency.Template {
+HarmonyAcceptImportDependency.Template = class HarmonyAcceptImportDependencyTemplate {
 	apply(dep, source, runtime) {}
 };
 
diff --git a/lib/dependencies/HarmonyExportImportedSpecifierDependency.js b/lib/dependencies/HarmonyExportImportedSpecifierDependency.js
index b4b2f2344..a9086b073 100644
--- a/lib/dependencies/HarmonyExportImportedSpecifierDependency.js
+++ b/lib/dependencies/HarmonyExportImportedSpecifierDependency.js
@@ -550,10 +550,10 @@ HarmonyExportImportedSpecifierDependency.Template = class HarmonyExportImportedS
 
 				// Filter out exports which are defined by other exports
 				// and filter out default export because it cannot be reexported with *
-				if (activeExports.size > 0)
+				if (activeExports.length > 0)
 					content +=
 						"if(" +
-						JSON.stringify(Array.from(activeExports).concat("default")) +
+						JSON.stringify(activeExports.concat("default")) +
 						".indexOf(__WEBPACK_IMPORT_KEY__) < 0) ";
 				else content += "if(__WEBPACK_IMPORT_KEY__ !== 'default') ";
 				const exportsName = dep.originModule.exportsArgument;
diff --git a/lib/dependencies/HarmonyImportSpecifierDependency.js b/lib/dependencies/HarmonyImportSpecifierDependency.js
index b24ffe4fb..995ac128d 100644
--- a/lib/dependencies/HarmonyImportSpecifierDependency.js
+++ b/lib/dependencies/HarmonyImportSpecifierDependency.js
@@ -28,7 +28,6 @@ class HarmonyImportSpecifierDependency extends HarmonyImportDependency {
 		this.callArgs = undefined;
 		this.call = undefined;
 		this.directImport = undefined;
-		this.shorthand = undefined;
 	}
 
 	get type() {
diff --git a/lib/dependencies/LoaderPlugin.js b/lib/dependencies/LoaderPlugin.js
index b978fc6d9..ec0a22631 100644
--- a/lib/dependencies/LoaderPlugin.js
+++ b/lib/dependencies/LoaderPlugin.js
@@ -36,7 +36,6 @@ class LoaderPlugin {
 									}`
 								)
 							);
-						compilation.semaphore.release();
 						compilation.addModuleDependencies(
 							module,
 							[
@@ -49,39 +48,37 @@ class LoaderPlugin {
 							"lm",
 							false,
 							err => {
-								compilation.semaphore.acquire(() => {
-									if (err) return callback(err);
+								if (err) return callback(err);
 
-									if (!dep.module)
-										return callback(new Error("Cannot load the module"));
+								if (!dep.module)
+									return callback(new Error("Cannot load the module"));
 
-									if (dep.module.error) return callback(dep.module.error);
-									if (!dep.module._source)
-										throw new Error(
-											"The module created for a LoaderDependency must have a property _source"
-										);
-									let source, map;
-									const moduleSource = dep.module._source;
-									if (moduleSource.sourceAndMap) {
-										const sourceAndMap = moduleSource.sourceAndMap();
-										map = sourceAndMap.map;
-										source = sourceAndMap.source;
-									} else {
-										map = moduleSource.map();
-										source = moduleSource.source();
-									}
-									if (dep.module.buildInfo.fileDependencies) {
-										for (const d of dep.module.buildInfo.fileDependencies) {
-											loaderContext.addDependency(d);
-										}
+								if (dep.module.error) return callback(dep.module.error);
+								if (!dep.module._source)
+									throw new Error(
+										"The module created for a LoaderDependency must have a property _source"
+									);
+								let source, map;
+								const moduleSource = dep.module._source;
+								if (moduleSource.sourceAndMap) {
+									const sourceAndMap = moduleSource.sourceAndMap();
+									map = sourceAndMap.map;
+									source = sourceAndMap.source;
+								} else {
+									map = moduleSource.map();
+									source = moduleSource.source();
+								}
+								if (dep.module.buildInfo.fileDependencies) {
+									for (const d of dep.module.buildInfo.fileDependencies) {
+										loaderContext.addDependency(d);
 									}
-									if (dep.module.buildInfo.contextDependencies) {
-										for (const d of dep.module.buildInfo.contextDependencies) {
-											loaderContext.addContextDependency(d);
-										}
+								}
+								if (dep.module.buildInfo.contextDependencies) {
+									for (const d of dep.module.buildInfo.contextDependencies) {
+										loaderContext.addContextDependency(d);
 									}
-									return callback(null, source, map, dep.module);
-								});
+								}
+								return callback(null, source, map, dep.module);
 							}
 						);
 					};
diff --git a/lib/dependencies/LocalModuleDependency.js b/lib/dependencies/LocalModuleDependency.js
index 5d1e56bb9..1a97fe396 100644
--- a/lib/dependencies/LocalModuleDependency.js
+++ b/lib/dependencies/LocalModuleDependency.js
@@ -6,22 +6,22 @@
 const NullDependency = require("./NullDependency");
 
 class LocalModuleDependency extends NullDependency {
-	constructor(localModule, range, callNew) {
+	constructor(localModule, range) {
 		super();
 		localModule.flagUsed();
 		this.localModule = localModule;
 		this.range = range;
-		this.callNew = callNew;
 	}
 }
 
 LocalModuleDependency.Template = class LocalModuleDependencyTemplate {
 	apply(dep, source) {
 		if (!dep.range) return;
-		const moduleInstance = dep.callNew
-			? `new (function () { return ${dep.localModule.variableName()}; })()`
-			: dep.localModule.variableName();
-		source.replace(dep.range[0], dep.range[1] - 1, moduleInstance);
+		source.replace(
+			dep.range[0],
+			dep.range[1] - 1,
+			dep.localModule.variableName()
+		);
 	}
 };
 
diff --git a/lib/dependencies/getFunctionExpression.js b/lib/dependencies/getFunctionExpression.js
index 0e73840e5..33db4260c 100644
--- a/lib/dependencies/getFunctionExpression.js
+++ b/lib/dependencies/getFunctionExpression.js
@@ -26,8 +26,7 @@ module.exports = expr => {
 	) {
 		return {
 			fn: expr.callee.object,
-			expressions: [expr.arguments[0]],
-			needThis: undefined
+			expressions: [expr.arguments[0]]
 		};
 	}
 	// (function(_this) {return <FunctionExpression>})(this) (Coffeescript)
diff --git a/lib/node/NodeMainTemplateAsync.runtime.js b/lib/node/NodeMainTemplateAsync.runtime.js
index 926d936c6..fb722501c 100644
--- a/lib/node/NodeMainTemplateAsync.runtime.js
+++ b/lib/node/NodeMainTemplateAsync.runtime.js
@@ -15,7 +15,7 @@ module.exports = function() {
 			var chunk = {};
 			require("vm").runInThisContext(
 				"(function(exports) {" + content + "\n})",
-				{ filename: filename }
+				filename
 			)(chunk);
 			hotAddUpdateChunk(chunk.id, chunk.modules);
 		});
diff --git a/lib/optimize/ChunkModuleIdRangePlugin.js b/lib/optimize/ChunkModuleIdRangePlugin.js
index f507e426c..33d319747 100644
--- a/lib/optimize/ChunkModuleIdRangePlugin.js
+++ b/lib/optimize/ChunkModuleIdRangePlugin.js
@@ -3,44 +3,35 @@
 	Author Tobias Koppers @sokra
 */
 "use strict";
-
-const sortByIndex = (a, b) => {
-	return a.index - b.index;
-};
-
-const sortByIndex2 = (a, b) => {
-	return a.index2 - b.index2;
-};
-
 class ChunkModuleIdRangePlugin {
 	constructor(options) {
 		this.options = options;
 	}
-
 	apply(compiler) {
 		const options = this.options;
 		compiler.hooks.compilation.tap("ChunkModuleIdRangePlugin", compilation => {
 			compilation.hooks.moduleIds.tap("ChunkModuleIdRangePlugin", modules => {
-				const chunk = compilation.chunks.find(
-					chunk => chunk.name === options.name
-				);
-				if (!chunk) {
+				const chunk = this.chunks.find(chunk => chunk.name === options.name);
+				if (!chunk)
 					throw new Error(
-						`ChunkModuleIdRangePlugin: Chunk with name '${
-							options.name
-						}"' was not found`
+						"ChunkModuleIdRangePlugin: Chunk with name '" +
+							options.name +
+							"' was not found"
 					);
-				}
-
+				let currentId = options.start;
 				let chunkModules;
 				if (options.order) {
-					chunkModules = Array.from(chunk.modulesIterable);
+					chunkModules = chunk.modules.slice();
 					switch (options.order) {
 						case "index":
-							chunkModules.sort(sortByIndex);
+							chunkModules.sort((a, b) => {
+								return a.index - b.index;
+							});
 							break;
 						case "index2":
-							chunkModules.sort(sortByIndex2);
+							chunkModules.sort((a, b) => {
+								return a.index2 - b.index2;
+							});
 							break;
 						default:
 							throw new Error(
@@ -49,11 +40,10 @@ class ChunkModuleIdRangePlugin {
 					}
 				} else {
 					chunkModules = modules.filter(m => {
-						return m.chunksIterable.has(chunk);
+						return m.chunks.includes(chunk);
 					});
 				}
 
-				let currentId = options.start || 0;
 				for (let i = 0; i < chunkModules.length; i++) {
 					const m = chunkModules[i];
 					if (m.id === null) {
diff --git a/lib/optimize/ModuleConcatenationPlugin.js b/lib/optimize/ModuleConcatenationPlugin.js
index 64459451e..08e2a7641 100644
--- a/lib/optimize/ModuleConcatenationPlugin.js
+++ b/lib/optimize/ModuleConcatenationPlugin.js
@@ -148,17 +148,15 @@ class ModuleConcatenationPlugin {
 									nonHarmonyReasons.map(r => r.explanation).filter(Boolean)
 								);
 								const importingModuleTypes = new Map(
-									Array.from(importingModules).map(
-										m => /** @type {[string, Set]} */ ([
-											m,
-											new Set(
-												nonHarmonyReasons
-													.filter(r => r.module === m)
-													.map(r => r.dependency.type)
-													.sort()
-											)
-										])
-									)
+									Array.from(importingModules).map(m => [
+										m,
+										new Set(
+											nonHarmonyReasons
+												.filter(r => r.module === m)
+												.map(r => r.dependency.type)
+												.sort()
+										)
+									])
 								);
 								setBailoutReason(module, requestShortener => {
 									const names = Array.from(importingModules)
diff --git a/test/helpers/prepareOptions.js b/lib/prepareOptions.js
similarity index 100%
rename from test/helpers/prepareOptions.js
rename to lib/prepareOptions.js
diff --git a/lib/util/Semaphore.js b/lib/util/Semaphore.js
index 359378056..177f94bd7 100644
--- a/lib/util/Semaphore.js
+++ b/lib/util/Semaphore.js
@@ -8,7 +8,6 @@ class Semaphore {
 	constructor(available) {
 		this.available = available;
 		this.waiters = [];
-		this._continue = this._continue.bind(this);
 	}
 
 	acquire(callback) {
@@ -21,19 +20,11 @@ class Semaphore {
 	}
 
 	release() {
-		this.available++;
 		if (this.waiters.length > 0) {
-			process.nextTick(this._continue);
-		}
-	}
-
-	_continue() {
-		if (this.available > 0) {
-			if (this.waiters.length > 0) {
-				this.available--;
-				const callback = this.waiters.pop();
-				callback();
-			}
+			const callback = this.waiters.pop();
+			process.nextTick(callback);
+		} else {
+			this.available++;
 		}
 	}
 }
diff --git a/lib/util/SortableSet.js b/lib/util/SortableSet.js
index a58cfc573..8cdaf4dad 100644
--- a/lib/util/SortableSet.js
+++ b/lib/util/SortableSet.js
@@ -11,7 +11,7 @@ class SortableSet extends Set {
 
 	/**
 	 * @param {any} value - value to add to set
-	 * @returns {this} - returns itself
+	 * @returns {SortableSet} - returns itself
 	 */
 	add(value) {
 		this._lastActiveSortFn = null;
@@ -33,7 +33,11 @@ class SortableSet extends Set {
 		return super.clear();
 	}
 
-	sortWith(/** @type {(a: any, b: any) => number} */ sortFn) {
+	/**
+	 * @param {Function} sortFn - function to sort the set
+	 * @returns {void}
+	 */
+	sortWith(sortFn) {
 		if (this.size === 0 || sortFn === this._lastActiveSortFn) {
 			// already sorted - nothing to do
 			return;
diff --git a/lib/util/StackedSetMap.js b/lib/util/StackedSetMap.js
index 6c65f8687..896b6c4c9 100644
--- a/lib/util/StackedSetMap.js
+++ b/lib/util/StackedSetMap.js
@@ -91,10 +91,7 @@ class StackedSetMap {
 		this._compress();
 		return Array.from(
 			this.map.entries(),
-			pair =>
-				/** @type {[any, any]} */ (pair[1] === UNDEFINED_MARKER
-					? [pair[0], undefined]
-					: pair)
+			pair => (pair[1] === UNDEFINED_MARKER ? [pair[0], undefined] : pair)
 		);
 	}
 
diff --git a/lib/util/cachedMerge.js b/lib/util/cachedMerge.js
index 863141e6b..12a0ca905 100644
--- a/lib/util/cachedMerge.js
+++ b/lib/util/cachedMerge.js
@@ -6,14 +6,19 @@
 
 const mergeCache = new WeakMap();
 
-const cachedMerge = (first, second) => {
+const cachedMerge = (first, ...args) => {
+	if (args.length === 0) return first;
+	if (args.length > 1) {
+		return cachedMerge(first, cachedMerge(...args));
+	}
+	const second = args[0];
 	let innerCache = mergeCache.get(first);
 	if (innerCache === undefined) {
 		innerCache = new WeakMap();
 		mergeCache.set(first, innerCache);
 	}
-	const prevMerge = innerCache.get(second);
-	if (prevMerge !== undefined) return prevMerge;
+	const cachedMerge = innerCache.get(second);
+	if (cachedMerge !== undefined) return cachedMerge;
 	const newMerge = Object.assign({}, first, second);
 	innerCache.set(second, newMerge);
 	return newMerge;
diff --git a/lib/util/objectToMap.js b/lib/util/objectToMap.js
index 49a1411c6..f67140a8e 100644
--- a/lib/util/objectToMap.js
+++ b/lib/util/objectToMap.js
@@ -6,11 +6,5 @@
  * @returns {Map} an ES6 Map of KV pairs
  */
 module.exports = function objectToMap(obj) {
-	return new Map(
-		Object.keys(obj).map(key => {
-			/** @type {[string, string]} */
-			const pair = [key, obj[key]];
-			return pair;
-		})
-	);
+	return new Map(Object.keys(obj).map(key => [key, obj[key]]));
 };
diff --git a/lib/webworker/WebWorkerMainTemplatePlugin.js b/lib/webworker/WebWorkerMainTemplatePlugin.js
index e68547096..3408511bf 100644
--- a/lib/webworker/WebWorkerMainTemplatePlugin.js
+++ b/lib/webworker/WebWorkerMainTemplatePlugin.js
@@ -24,9 +24,7 @@ class WebWorkerMainTemplatePlugin {
 						"// object to store loaded chunks",
 						'// "1" means "already loaded"',
 						"var installedChunks = {",
-						Template.indent(
-							chunk.ids.map(id => `${JSON.stringify(id)}: 1`).join(",\n")
-						),
+						Template.indent(chunk.ids.map(id => `${id}: 1`).join(",\n")),
 						"};"
 					]);
 				}
diff --git a/package.json b/package.json
index dc29f28ab..ac9f79a3c 100644
--- a/package.json
+++ b/package.json
@@ -19,15 +19,13 @@
     "mkdirp": "~0.5.0",
     "neo-async": "^2.5.0",
     "node-libs-browser": "^2.0.0",
-    "schema-utils": "^0.4.4",
+    "schema-utils": "^0.4.2",
     "tapable": "^1.0.0",
     "uglifyjs-webpack-plugin": "^1.2.4",
     "watchpack": "^1.5.0",
     "webpack-sources": "^1.0.1"
   },
   "devDependencies": {
-    "@types/node": "^9.6.4",
-    "@types/tapable": "^1.0.1",
     "benchmark": "^2.1.1",
     "bundle-loader": "~0.5.0",
     "codacy-coverage": "^2.0.1",
@@ -63,12 +61,11 @@
     "simple-git": "^1.65.0",
     "sinon": "^2.3.2",
     "style-loader": "^0.19.1",
-    "typescript": "^2.9.0-dev.20180412",
     "url-loader": "^0.6.2",
     "val-loader": "^1.0.2",
     "vm-browserify": "~0.0.0",
     "webpack-dev-middleware": "^1.9.0",
-    "worker-loader": "^1.1.1",
+    "worker-loader": "^1.1.0",
     "xxhashjs": "^0.2.1"
   },
   "engines": {
@@ -92,8 +89,7 @@
   ],
   "scripts": {
     "setup": "node ./setup/setup.js",
-    "test": "npm run mocha",
-    "mocha": "mocha test/*.test.js test/*.unittest.js --max-old-space-size=4096 --harmony --trace-deprecation",
+    "test": "mocha test/*.test.js test/*.unittest.js --max-old-space-size=4096 --harmony --trace-deprecation",
     "test:integration": "mocha test/*.test.js --max-old-space-size=4096 --harmony --trace-deprecation",
     "test:unit": "mocha test/*.unittest.js --max-old-space-size=4096 --harmony --trace-deprecation",
     "travis:integration": "yarn cover:init && yarn cover:integration && yarn cover:report-min",
@@ -108,11 +104,10 @@
     "build:examples": "cd examples && node buildAll.js",
     "pretest": "yarn lint",
     "prelint": "yarn setup",
-    "lint": "yarn code-lint && yarn schema-lint && yarn type-lint",
+    "lint": "yarn code-lint && yarn schema-lint",
     "code-lint": "eslint setup lib bin hot buildin \"test/*.js\" \"test/**/webpack.config.js\" \"examples/**/webpack.config.js\" \"schemas/**/*.js\"",
-    "type-lint": "tsc --pretty",
     "fix": "yarn code-lint --fix",
-    "pretty": "prettier \"setup/**/*.js\" \"lib/**/*.js\" \"bin/*.js\" \"hot/*.js\" \"buildin/*.js\" \"test/*.js\" \"test/**/webpack.config.js\" \"examples/**/webpack.config.js\" \"schemas/**/*.js\" \"declarations.d.ts\" --write",
+    "pretty": "prettier \"setup/**/*.js\" \"lib/**/*.js\" \"bin/*.js\" \"hot/*.js\" \"buildin/*.js\" \"test/*.js\" \"test/**/webpack.config.js\" \"examples/**/webpack.config.js\" \"schemas/**/*.js\" --write",
     "schema-lint": "mocha test/*.lint.js --opts test/lint-mocha.opts",
     "benchmark": "mocha --max-old-space-size=4096 --harmony --trace-deprecation test/*.benchmark.js -R spec",
     "cover": "yarn cover:init && yarn cover:all && yarn cover:report",
diff --git a/tsconfig.json b/tsconfig.json
deleted file mode 100644
index c55aa8145..000000000
--- a/tsconfig.json
+++ /dev/null
@@ -1,62 +0,0 @@
-{
-  "compilerOptions": {
-    /* Basic Options */
-    "target": "ES2017",                       /* Specify ECMAScript target version: 'ES3' (default), 'ES5', 'ES2015', 'ES2016', 'ES2017','ES2018' or 'ESNEXT'. */
-    "module": "commonjs",                     /* Specify module code generation: 'none', 'commonjs', 'amd', 'system', 'umd', 'es2015', or 'ESNext'. */
-    "lib": ["es2017", "dom"],                 /* Specify library files to be included in the compilation. */
-    "allowJs": true,                          /* Allow javascript files to be compiled. */
-    "checkJs": true,                          /* Report errors in .js files. */
-    // "jsx": "preserve",                     /* Specify JSX code generation: 'preserve', 'react-native', or 'react'. */
-    // "declaration": true,                   /* Generates corresponding '.d.ts' file. */
-    // "sourceMap": true,                     /* Generates corresponding '.map' file. */
-    // "outFile": "./",                       /* Concatenate and emit output to single file. */
-    // "outDir": "./",                        /* Redirect output structure to the directory. */
-    // "rootDir": "./",                       /* Specify the root directory of input files. Use to control the output directory structure with --outDir. */
-    // "removeComments": true,                /* Do not emit comments to output. */
-    "noEmit": true,                           /* Do not emit outputs. */
-    // "importHelpers": true,                 /* Import emit helpers from 'tslib'. */
-    // "downlevelIteration": true,            /* Provide full support for iterables in 'for-of', spread, and destructuring when targeting 'ES5' or 'ES3'. */
-    // "isolatedModules": true,               /* Transpile each file as a separate module (similar to 'ts.transpileModule'). */
-
-    /* Strict Type-Checking Options */
-    "strict": false,                          /* Enable all strict type-checking options. */
-    // "noImplicitAny": true,                 /* Raise error on expressions and declarations with an implied 'any' type. */
-    // "strictNullChecks": true,              /* Enable strict null checks. */
-    "strictFunctionTypes": true,              /* Enable strict checking of function types. */
-    // "strictPropertyInitialization": true,  /* Enable strict checking of property initialization in classes. */
-    // "noImplicitThis": true,                /* Raise error on 'this' expressions with an implied 'any' type. */
-    "alwaysStrict": true,                     /* Parse in strict mode and emit "use strict" for each source file. */
-
-    /* Additional Checks */
-    // "noUnusedLocals": true,                /* Report errors on unused locals. */
-    // "noUnusedParameters": true,            /* Report errors on unused parameters. */
-    // "noImplicitReturns": true,             /* Report error when not all code paths in function return a value. */
-    // "noFallthroughCasesInSwitch": true,    /* Report errors for fallthrough cases in switch statement. */
-
-    /* Module Resolution Options */
-    // "moduleResolution": "node",            /* Specify module resolution strategy: 'node' (Node.js) or 'classic' (TypeScript pre-1.6). */
-    // "baseUrl": "./",                       /* Base directory to resolve non-absolute module names. */
-    // "paths": {},                           /* A series of entries which re-map imports to lookup locations relative to the 'baseUrl'. */
-    // "rootDirs": [],                        /* List of root folders whose combined content represents the structure of the project at runtime. */
-    // "typeRoots": [],                       /* List of folders to include type definitions from. */
-    "types": ["node"],                        /* Type declaration files to be included in compilation. */
-    // "allowSyntheticDefaultImports": true,  /* Allow default imports from modules with no default export. This does not affect code emit, just typechecking. */
-    "esModuleInterop": true                   /* Enables emit interoperability between CommonJS and ES Modules via creation of namespace objects for all imports. Implies 'allowSyntheticDefaultImports'. */
-    // "preserveSymlinks": true,              /* Do not resolve the real path of symlinks. */
-
-    /* Source Map Options */
-    // "sourceRoot": "./",                    /* Specify the location where debugger should locate TypeScript files instead of source locations. */
-    // "mapRoot": "./",                       /* Specify the location where debugger should locate map files instead of generated locations. */
-    // "inlineSourceMap": true,               /* Emit a single file with source maps instead of having a separate file. */
-    // "inlineSources": true,                 /* Emit the source alongside the sourcemaps within a single file; requires '--inlineSourceMap' or '--sourceMap' to be set. */
-
-    /* Experimental Options */
-    // "experimentalDecorators": true,        /* Enables experimental support for ES7 decorators. */
-    // "emitDecoratorMetadata": true,         /* Enables experimental support for emitting type metadata for decorators. */
-  },
-  "include": [
-    "declarations.d.ts",
-    "bin/*.js",
-    "lib/**/*.js"
-  ]
-}
diff --git a/yarn.lock b/yarn.lock
index 2cea93369..8941bd56b 100644
--- a/yarn.lock
+++ b/yarn.lock
@@ -2,14 +2,6 @@
 # yarn lockfile v1
 
 
-"@types/node@^9.6.4":
-  version "9.6.4"
-  resolved "https://registry.yarnpkg.com/@types/node/-/node-9.6.4.tgz#0ef7b4cfc3499881c81e0ea1ce61a23f6f4f5b42"
-
-"@types/tapable@^1.0.1":
-  version "1.0.1"
-  resolved "https://registry.yarnpkg.com/@types/tapable/-/tapable-1.0.1.tgz#938bfcc018eda2f386c34e37f084e6e961c08ca6"
-
 abbrev@1:
   version "1.1.1"
   resolved "https://registry.yarnpkg.com/abbrev/-/abbrev-1.1.1.tgz#f8f2c887ad10bf67f634f005b6987fed3179aac8"
@@ -3895,7 +3887,14 @@ schema-utils@^0.3.0:
   dependencies:
     ajv "^5.0.0"
 
-schema-utils@^0.4.0, schema-utils@^0.4.4, schema-utils@^0.4.5:
+schema-utils@^0.4.2:
+  version "0.4.3"
+  resolved "https://registry.yarnpkg.com/schema-utils/-/schema-utils-0.4.3.tgz#e2a594d3395834d5e15da22b48be13517859458e"
+  dependencies:
+    ajv "^5.0.0"
+    ajv-keywords "^2.1.0"
+
+schema-utils@^0.4.5:
   version "0.4.5"
   resolved "https://registry.yarnpkg.com/schema-utils/-/schema-utils-0.4.5.tgz#21836f0608aac17b78f9e3e24daff14a5ca13a3e"
   dependencies:
@@ -4491,10 +4490,6 @@ typedarray@^0.0.6:
   version "0.0.6"
   resolved "https://registry.yarnpkg.com/typedarray/-/typedarray-0.0.6.tgz#867ac74e3864187b1d3d47d996a78ec5c8830777"
 
-typescript@^2.9.0-dev.20180412:
-  version "2.9.0-dev.20180412"
-  resolved "https://registry.yarnpkg.com/typescript/-/typescript-2.9.0-dev.20180412.tgz#5380b2afb44b720b0d8164f844b90ebd81948a7e"
-
 ua-parser-js@^0.7.9:
   version "0.7.17"
   resolved "https://registry.yarnpkg.com/ua-parser-js/-/ua-parser-js-0.7.17.tgz#e9ec5f9498b9ec910e7ae3ac626a805c4d09ecac"
@@ -4744,12 +4739,12 @@ worker-farm@^1.5.2:
   dependencies:
     errno "~0.1.7"
 
-worker-loader@^1.1.1:
-  version "1.1.1"
-  resolved "https://registry.yarnpkg.com/worker-loader/-/worker-loader-1.1.1.tgz#920d74ddac6816fc635392653ed8b4af1929fd92"
+worker-loader@^1.1.0:
+  version "1.1.0"
+  resolved "https://registry.yarnpkg.com/worker-loader/-/worker-loader-1.1.0.tgz#8cf21869a07add84d66f821d948d23c1eb98e809"
   dependencies:
     loader-utils "^1.0.0"
-    schema-utils "^0.4.0"
+    schema-utils "^0.3.0"
 
 wrappy@1:
   version "1.0.2"


Test patch:
diff --git a/test/ConfigTestCases.test.js b/test/ConfigTestCases.test.js
index 0ec1e0993..64cd0f2ee 100644
--- a/test/ConfigTestCases.test.js
+++ b/test/ConfigTestCases.test.js
@@ -11,7 +11,7 @@ const checkArrayExpectation = require("./checkArrayExpectation");
 
 const Stats = require("../lib/Stats");
 const webpack = require("../lib/webpack");
-const prepareOptions = require("./helpers/prepareOptions");
+const prepareOptions = require("../lib/prepareOptions");
 
 describe("ConfigTestCases", () => {
 	const casesPath = path.join(__dirname, "configCases");
diff --git a/test/RemovedPlugins.unittest.js b/test/RemovedPlugins.unittest.js
index 1f5f2b30b..e1dfcd7e0 100644
--- a/test/RemovedPlugins.unittest.js
+++ b/test/RemovedPlugins.unittest.js
@@ -4,15 +4,14 @@ require("should");
 
 describe("removed plugin errors", () => {
 	it("should error when accessing removed plugins", () => {
-		(() => webpack.optimize.UglifyJsPlugin).should.throw(RemovedPluginError, {
-			message: /webpack\.optimize\.UglifyJsPlugin has been removed, please use config\.optimization\.minimize instead\./
-		});
+		(() => webpack.optimize.UglifyJsPlugin).should.throw(
+			RemovedPluginError,
+			/webpack\.optimize\.UglifyJsPlugin has been removed, please use config\.optimization\.minimize instead\./
+		);
 
 		(() => webpack.optimize.CommonsChunkPlugin).should.throw(
 			RemovedPluginError,
-			{
-				message: /webpack\.optimize\.CommonsChunkPlugin has been removed, please use config\.optimization\.splitChunks instead\./
-			}
+			/webpack\.optimize\.CommonsChunkPlugin has been removed, please use config\.optimization\.splitChunks instead\./
 		);
 	});
 });
diff --git a/test/cases/parsing/harmony-export-import-specifier/a.js b/test/cases/parsing/harmony-export-import-specifier/a.js
deleted file mode 100644
index 779c5b4f3..000000000
--- a/test/cases/parsing/harmony-export-import-specifier/a.js
+++ /dev/null
@@ -1,2 +0,0 @@
-export var x = 1;
-export * from "./cjs";
diff --git a/test/cases/parsing/harmony-export-import-specifier/cjs.js b/test/cases/parsing/harmony-export-import-specifier/cjs.js
deleted file mode 100644
index 34b27971d..000000000
--- a/test/cases/parsing/harmony-export-import-specifier/cjs.js
+++ /dev/null
@@ -1,1 +0,0 @@
-module.exports = { x: 2, y: 3 };
diff --git a/test/cases/parsing/harmony-export-import-specifier/index.js b/test/cases/parsing/harmony-export-import-specifier/index.js
deleted file mode 100644
index b8d8e5094..000000000
--- a/test/cases/parsing/harmony-export-import-specifier/index.js
+++ /dev/null
@@ -1,8 +0,0 @@
-"use strict";
-
-import {x, y} from "./a";
-
-it("namespace export as from commonjs should override named export", function() {
-	x.should.be.eql(1);
-	y.should.be.eql(3);
-});
diff --git a/test/cases/parsing/issue-4940/index.js b/test/cases/parsing/issue-4940/index.js
deleted file mode 100644
index 927531b5d..000000000
--- a/test/cases/parsing/issue-4940/index.js
+++ /dev/null
@@ -1,58 +0,0 @@
-define("local-module-object", function () {
-	return {
-		foo: "bar"
-	};
-});
-
-define("local-side-effect", function () {
-	return {
-		foo: null
-	};
-});
-
-define("local-module-non-object", ["local-side-effect"], function (sideEffect) {
-	sideEffect.foo = "bar"
-	return 1;
-});
-
-it("should create dependency when require is called with 'new' (object export)", function() {
-	const result = new require("./object-export");
-	result.foo.should.equal("bar");
-	result.should.equal(require("./object-export"));
-});
-
-it("should create dependency when require is called with 'new' (non-object export)", function() {
-	const sideEffect = require("./sideEffect");
-	const result = new require("./non-object-export");
-	result.should.instanceof(__webpack_require__);
-	sideEffect.foo.should.equal("bar");
-	result.should.not.equal(require("./non-object-export"));
-});
-
-it("should create dependency with 'new' on a local dependency (object export)", function() {
-	const result = new require("local-module-object");
-	result.foo.should.equal("bar");
-	result.should.equal(require("local-module-object"));
-});
-
-it("shouldn't fail with a local dependency (non-object export)", function() {
-	const sideEffect = require("local-side-effect");
-	const result = new require("local-module-non-object");
-	result.should.not.equal(1);
-	sideEffect.foo.should.equal("bar");
-	result.should.not.equal(require("local-module-non-object"));
-});
-
-it("should work with 'require' in parentheses", function () {
-	const result = new (require)("./object-export");
-	result.foo.should.equal("bar");
-});
-
-it("should work with local module 'require' in parentheses", function () {
-	const result = new (require)("local-module-object");
-	result.foo.should.equal("bar");
-});
-
-it("shouldn't fail with non-object local module 'require' in parentheses", function () {
-	new (require)("local-module-non-object");
-});
diff --git a/test/cases/parsing/issue-4940/non-object-export.js b/test/cases/parsing/issue-4940/non-object-export.js
deleted file mode 100644
index 7843855eb..000000000
--- a/test/cases/parsing/issue-4940/non-object-export.js
+++ /dev/null
@@ -1,3 +0,0 @@
-const sideEffect = require("./sideEffect");
-sideEffect.foo = "bar";
-module.exports = "foo";
diff --git a/test/cases/parsing/issue-4940/object-export.js b/test/cases/parsing/issue-4940/object-export.js
deleted file mode 100644
index e1f6f4bb5..000000000
--- a/test/cases/parsing/issue-4940/object-export.js
+++ /dev/null
@@ -1,3 +0,0 @@
-module.exports = {
-	foo: "bar"
-};
diff --git a/test/cases/parsing/issue-4940/sideEffect.js b/test/cases/parsing/issue-4940/sideEffect.js
deleted file mode 100644
index 6d0197a03..000000000
--- a/test/cases/parsing/issue-4940/sideEffect.js
+++ /dev/null
@@ -1,3 +0,0 @@
-module.exports = {
-	foo: null
-};
diff --git a/test/configCases/parsing/harmony-this/abc.js b/test/configCases/parsing/harmony-this/abc.js
index 567c19da6..613a79ea6 100644
--- a/test/configCases/parsing/harmony-this/abc.js
+++ b/test/configCases/parsing/harmony-this/abc.js
@@ -1,12 +1,15 @@
 function returnThis() {
-	if (typeof this === "undefined") return "undefined";
+	if(typeof this === "undefined") return "undefined";
 	return this;
 }
 
 var a = returnThis;
 var b = returnThis;
 
-export { a, b };
+export {
+	a,
+	b
+}
 
 export const that = this;
 export const returnThisArrow = () => this;
@@ -26,38 +29,10 @@ export class C {
 
 export const extendThisClass = () => {
 	return class extends this.Buffer {};
-};
+}
 
 export function D() {
 	this.prop = () => "ok";
 }
 
-// See https://github.com/webpack/webpack/issues/6379
-export const E = {
-	x: "bar",
-	foo(x = this.x) {
-		return x;
-	}
-};
-
-// See https://github.com/webpack/webpack/issues/6967
-export const F = function() {
-	return this;
-}.call("ok");
-
-export function f1(x = this.x) {
-	return x;
-}
-
-export const f2 = function(x = this.x) {
-	return x;
-};
-
-export const f3 = (x = this) => x;
-
-export function G(x) {
-	this.x = x;
-	this.getX = (y = this.x) => y;
-}
-
 export default returnThis;
diff --git a/test/configCases/parsing/harmony-this/index.js b/test/configCases/parsing/harmony-this/index.js
index 06933c8d6..21bfae5b4 100644
--- a/test/configCases/parsing/harmony-this/index.js
+++ b/test/configCases/parsing/harmony-this/index.js
@@ -1,8 +1,6 @@
 "use strict";
 
-import should from "should";
-import {extendThisClass, returnThisArrow, returnThisMember, that} from "./abc";
-import d, {a, b as B, C as _C, D as _D, E, F, f1, f2, f3, G} from "./abc";
+import d, {a, b as B, C as _C, D as _D, extendThisClass, returnThisArrow, returnThisMember, that} from "./abc";
 
 import * as abc from "./abc";
 
@@ -26,13 +24,6 @@ it("should not break classes and functions", function() {
 	(new _C).foo().should.be.eql("bar");
 	(new _C).bar().should.be.eql("bar");
 	(new _D).prop().should.be.eql("ok");
-	E.foo().should.be.eql("bar");
-	F.should.be.eql("ok");
-	f1.call({x: "f1"}).should.be.eql("f1");
-	f2.call({x: "f2"}).should.be.eql("f2");
-	should(f3.call("f3")).be.eql(undefined);
-	should(f3()).be.eql(undefined);
-	(new G("ok")).getX().should.be.eql("ok");
 });
 
 function x() { throw new Error("should not be executed"); }
diff --git a/test/configCases/race-conditions/load-module/index.js b/test/configCases/race-conditions/load-module/index.js
deleted file mode 100644
index 34d52e764..000000000
--- a/test/configCases/race-conditions/load-module/index.js
+++ /dev/null
@@ -1,4 +0,0 @@
-it("should not deadlock when using loadModule", () => {
-	const result = require("./loader!");
-	result.should.match(/console.log\(42\)/);
-});
diff --git a/test/configCases/race-conditions/load-module/loader.js b/test/configCases/race-conditions/load-module/loader.js
deleted file mode 100644
index 444c2c9da..000000000
--- a/test/configCases/race-conditions/load-module/loader.js
+++ /dev/null
@@ -1,15 +0,0 @@
-module.exports = function() {
-	const callback = this.async();
-	let finished = false;
-	this.loadModule("./module.js", (err, result) => {
-		if (err) return callback(err);
-		if (finished) return;
-		finished = true;
-		callback(null, `module.exports = ${JSON.stringify(result)};`);
-	});
-	setTimeout(() => {
-		if (finished) return;
-		finished = true;
-		callback(new Error("loadModule is hanging"));
-	}, 2000);
-};
diff --git a/test/configCases/race-conditions/load-module/module.js b/test/configCases/race-conditions/load-module/module.js
deleted file mode 100644
index 753a47d52..000000000
--- a/test/configCases/race-conditions/load-module/module.js
+++ /dev/null
@@ -1,1 +0,0 @@
-console.log(42);
diff --git a/test/configCases/race-conditions/load-module/webpack.config.js b/test/configCases/race-conditions/load-module/webpack.config.js
deleted file mode 100644
index e39f50108..000000000
--- a/test/configCases/race-conditions/load-module/webpack.config.js
+++ /dev/null
@@ -1,3 +0,0 @@
-module.exports = {
-	parallelism: 1
-};
diff --git a/test/hotCases/define/issue-6962/a.js b/test/hotCases/define/issue-6962/a.js
new file mode 100644
index 000000000..4fd270707
--- /dev/null
+++ b/test/hotCases/define/issue-6962/a.js
@@ -0,0 +1,3 @@
+export default 1;
+---
+export default 2;
diff --git a/test/hotCases/define/issue-6962/index.js b/test/hotCases/define/issue-6962/index.js
new file mode 100644
index 000000000..78b4fb26b
--- /dev/null
+++ b/test/hotCases/define/issue-6962/index.js
@@ -0,0 +1,1 @@
+import "./module";
diff --git a/test/hotCases/define/issue-6962/module.js b/test/hotCases/define/issue-6962/module.js
new file mode 100644
index 000000000..ee5dfe5eb
--- /dev/null
+++ b/test/hotCases/define/issue-6962/module.js
@@ -0,0 +1,19 @@
+import value1 from "./a";
+
+it("should have the expected static path defined", function() {
+	DEFINE_PATH.should.be.eql('./a');
+});
+
+it("should hot.accept the module located at the static file path without breaking the compiler", function() {
+	module.hot.accept("./a");
+	value1.should.be.eql(1);
+});
+
+it("should hot.accept the module located at the defined file path without breaking the compiler, when one argument is passed to hot.accept", function() {
+	module.hot.accept(DEFINE_PATH);
+});
+
+it("should hot.accept the module located at the defined file path without breaking the compiler, when multiple arguments are passed to hot.accept", function(done) {
+	module.hot.accept(DEFINE_PATH, () => done());
+	NEXT(require("../../update")(done));
+});
diff --git a/test/hotCases/define/issue-6962/webpack.config.js b/test/hotCases/define/issue-6962/webpack.config.js
new file mode 100644
index 000000000..3d212ee5e
--- /dev/null
+++ b/test/hotCases/define/issue-6962/webpack.config.js
@@ -0,0 +1,11 @@
+"use strict";
+
+const webpack = require("../../../../");
+
+module.exports = {
+	plugins: [
+		new webpack.DefinePlugin({
+			DEFINE_PATH: JSON.stringify("./a")
+		})
+	]
+};
diff --git a/test/statsCases/aggressive-splitting-entry/expected.txt b/test/statsCases/aggressive-splitting-entry/expected.txt
index bbfccc3b5..8cbc870fa 100644
--- a/test/statsCases/aggressive-splitting-entry/expected.txt
+++ b/test/statsCases/aggressive-splitting-entry/expected.txt
@@ -11,20 +11,20 @@ Child fitting:
     Entrypoint main = d43339a3d0f86c6b8d90.js 6c7fb52c5514dbfbf094.js a1e683753eca705a0882.js
     chunk    {0} fb95acf7c457672e70d0.js 916 bytes <{1}> <{2}> <{3}>
         > ./g [4] ./index.js 7:0-13
-     [7] ./g.js 916 bytes {0} [built]
+        [7] ./g.js 916 bytes {0} [built]
     chunk    {1} a1e683753eca705a0882.js 1.87 KiB ={2}= ={3}= >{0}< [entry] [rendered]
         > ./index main
-     [3] ./e.js 899 bytes {1} [built]
-     [4] ./index.js 111 bytes {1} [built]
-     [6] ./f.js 900 bytes {1} [built]
+        [3] ./e.js 899 bytes {1} [built]
+        [4] ./index.js 111 bytes {1} [built]
+        [6] ./f.js 900 bytes {1} [built]
     chunk    {2} d43339a3d0f86c6b8d90.js 1.76 KiB ={1}= ={3}= >{0}< [initial] [rendered] [recorded] aggressive splitted
         > ./index main
-     [0] ./b.js 899 bytes {2} [built]
-     [5] ./a.js 899 bytes {2} [built]
+        [0] ./b.js 899 bytes {2} [built]
+        [5] ./a.js 899 bytes {2} [built]
     chunk    {3} 6c7fb52c5514dbfbf094.js 1.76 KiB ={1}= ={2}= >{0}< [initial] [rendered] [recorded] aggressive splitted
         > ./index main
-     [1] ./c.js 899 bytes {3} [built]
-     [2] ./d.js 899 bytes {3} [built]
+        [1] ./c.js 899 bytes {3} [built]
+        [2] ./d.js 899 bytes {3} [built]
 Child content-change:
     Hash: a82dbd8d6c7a22df1caf
     Time: Xms
@@ -37,17 +37,17 @@ Child content-change:
     Entrypoint main = d43339a3d0f86c6b8d90.js 6c7fb52c5514dbfbf094.js a1e683753eca705a0882.js
     chunk    {0} fb95acf7c457672e70d0.js 916 bytes <{1}> <{2}> <{3}>
         > ./g [4] ./index.js 7:0-13
-     [7] ./g.js 916 bytes {0} [built]
+        [7] ./g.js 916 bytes {0} [built]
     chunk    {1} a1e683753eca705a0882.js 1.87 KiB ={2}= ={3}= >{0}< [entry] [rendered]
         > ./index main
-     [3] ./e.js 899 bytes {1} [built]
-     [4] ./index.js 111 bytes {1} [built]
-     [6] ./f.js 900 bytes {1} [built]
+        [3] ./e.js 899 bytes {1} [built]
+        [4] ./index.js 111 bytes {1} [built]
+        [6] ./f.js 900 bytes {1} [built]
     chunk    {2} d43339a3d0f86c6b8d90.js 1.76 KiB ={1}= ={3}= >{0}< [initial] [rendered] [recorded] aggressive splitted
         > ./index main
-     [0] ./b.js 899 bytes {2} [built]
-     [5] ./a.js 899 bytes {2} [built]
+        [0] ./b.js 899 bytes {2} [built]
+        [5] ./a.js 899 bytes {2} [built]
     chunk    {3} 6c7fb52c5514dbfbf094.js 1.76 KiB ={1}= ={2}= >{0}< [initial] [rendered] [recorded] aggressive splitted
         > ./index main
-     [1] ./c.js 899 bytes {3} [built]
-     [2] ./d.js 899 bytes {3} [built]
\ No newline at end of file
+        [1] ./c.js 899 bytes {3} [built]
+        [2] ./d.js 899 bytes {3} [built]
\ No newline at end of file
diff --git a/test/statsCases/aggressive-splitting-on-demand/expected.txt b/test/statsCases/aggressive-splitting-on-demand/expected.txt
index a64ff2fd6..fc7132d88 100644
--- a/test/statsCases/aggressive-splitting-on-demand/expected.txt
+++ b/test/statsCases/aggressive-splitting-on-demand/expected.txt
@@ -18,48 +18,48 @@ Entrypoint main = d20b83dfd7d0fd0c8793.js
 chunk    {0} 4467a9f70ef8365bcb32.js 1.76 KiB <{10}> ={1}= ={2}= ={3}= ={7}= ={9}= [recorded] aggressive splitted
     > ./b ./d ./e ./f ./g [11] ./index.js 5:0-44
     > ./b ./d ./e ./f ./g ./h ./i ./j ./k [11] ./index.js 6:0-72
- [0] ./b.js 899 bytes {0} {5} [built]
- [1] ./d.js 899 bytes {0} {8} [built]
+    [0] ./b.js 899 bytes {0} {5} [built]
+    [1] ./d.js 899 bytes {0} {8} [built]
 chunk    {1} aafb9d82e452def4c3bb.js 899 bytes <{10}> ={0}= ={2}= ={8}=
     > ./c ./d ./e [11] ./index.js 3:0-30
     > ./b ./d ./e ./f ./g [11] ./index.js 5:0-44
- [2] ./e.js 899 bytes {1} {3} [built]
+    [2] ./e.js 899 bytes {1} {3} [built]
 chunk    {2} 8debdc7e72b763a13e35.js 1.76 KiB <{10}> ={0}= ={1}= ={11}= ={3}= ={6}= ={7}= ={9}= [recorded] aggressive splitted
     > ./f ./g ./h ./i ./j ./k [11] ./index.js 4:0-51
     > ./b ./d ./e ./f ./g [11] ./index.js 5:0-44
     > ./b ./d ./e ./f ./g ./h ./i ./j ./k [11] ./index.js 6:0-72
- [3] ./f.js 899 bytes {2} [built]
- [4] ./g.js 901 bytes {2} [built]
+    [3] ./f.js 899 bytes {2} [built]
+    [4] ./g.js 901 bytes {2} [built]
 chunk    {3} 6a2c2702ac98f9f90db9.js 1.76 KiB <{10}> ={0}= ={2}= ={7}= ={9}= [rendered] [recorded] aggressive splitted
     > ./b ./d ./e ./f ./g ./h ./i ./j ./k [11] ./index.js 6:0-72
- [2] ./e.js 899 bytes {1} {3} [built]
- [6] ./h.js 899 bytes {3} {11} [built]
+    [2] ./e.js 899 bytes {1} {3} [built]
+    [6] ./h.js 899 bytes {3} {11} [built]
 chunk    {4} 258ba4b441feff644266.js 899 bytes <{10}>
     > ./a [11] ./index.js 1:0-16
- [10] ./a.js 899 bytes {4} [built]
+   [10] ./a.js 899 bytes {4} [built]
 chunk    {5} 8ae4998ca98adb2a08ea.js 1.76 KiB <{10}>
     > ./b ./c [11] ./index.js 2:0-23
- [0] ./b.js 899 bytes {0} {5} [built]
- [5] ./c.js 899 bytes {5} {8} [built]
+    [0] ./b.js 899 bytes {0} {5} [built]
+    [5] ./c.js 899 bytes {5} {8} [built]
 chunk    {6} 620d3f8d9bdb989cde07.js 1.76 KiB <{10}> ={11}= ={2}=
     > ./f ./g ./h ./i ./j ./k [11] ./index.js 4:0-51
- [8] ./j.js 901 bytes {6} {9} [built]
- [9] ./k.js 899 bytes {6} {7} [built]
+    [8] ./j.js 901 bytes {6} {9} [built]
+    [9] ./k.js 899 bytes {6} {7} [built]
 chunk    {7} 344e13508b62e833aacf.js 899 bytes <{10}> ={0}= ={2}= ={3}= ={9}=
     > ./b ./d ./e ./f ./g ./h ./i ./j ./k [11] ./index.js 6:0-72
- [9] ./k.js 899 bytes {6} {7} [built]
+    [9] ./k.js 899 bytes {6} {7} [built]
 chunk    {8} 2aaed192bbfbc2302c53.js 1.76 KiB <{10}> ={1}= [recorded] aggressive splitted
     > ./c ./d ./e [11] ./index.js 3:0-30
- [1] ./d.js 899 bytes {0} {8} [built]
- [5] ./c.js 899 bytes {5} {8} [built]
+    [1] ./d.js 899 bytes {0} {8} [built]
+    [5] ./c.js 899 bytes {5} {8} [built]
 chunk    {9} 72e04d4eaed46d9aac4c.js 1.76 KiB <{10}> ={0}= ={2}= ={3}= ={7}= [rendered] [recorded] aggressive splitted
     > ./b ./d ./e ./f ./g ./h ./i ./j ./k [11] ./index.js 6:0-72
- [7] ./i.js 899 bytes {9} {11} [built]
- [8] ./j.js 901 bytes {6} {9} [built]
+    [7] ./i.js 899 bytes {9} {11} [built]
+    [8] ./j.js 901 bytes {6} {9} [built]
 chunk   {10} d20b83dfd7d0fd0c8793.js (main) 248 bytes >{0}< >{1}< >{11}< >{2}< >{3}< >{4}< >{5}< >{6}< >{7}< >{8}< >{9}< [entry] [rendered]
     > ./index main
- [11] ./index.js 248 bytes {10} [built]
+   [11] ./index.js 248 bytes {10} [built]
 chunk   {11} 1165c0cca1ba14a506ff.js 1.76 KiB <{10}> ={2}= ={6}= [rendered] [recorded] aggressive splitted
     > ./f ./g ./h ./i ./j ./k [11] ./index.js 4:0-51
- [6] ./h.js 899 bytes {3} {11} [built]
- [7] ./i.js 899 bytes {9} {11} [built]
\ No newline at end of file
+    [6] ./h.js 899 bytes {3} {11} [built]
+    [7] ./i.js 899 bytes {9} {11} [built]
\ No newline at end of file
diff --git a/test/statsCases/async-commons-chunk-auto/expected.txt b/test/statsCases/async-commons-chunk-auto/expected.txt
index 5aea082f1..711564936 100644
--- a/test/statsCases/async-commons-chunk-auto/expected.txt
+++ b/test/statsCases/async-commons-chunk-auto/expected.txt
@@ -6,57 +6,57 @@ Child disabled:
     chunk    {0} disabled/async-g.js (async-g) 54 bytes <{1}> <{5}> [rendered]
         > ./g [] 6:0-47
         > ./g [] 6:0-47
-     [2] ./f.js 20 bytes {0} {2} {3} {6} {7} [built]
-     [8] ./g.js 34 bytes {0} [built]
+        [2] ./f.js 20 bytes {0} {2} {3} {6} {7} [built]
+        [8] ./g.js 34 bytes {0} [built]
     chunk    {1} disabled/async-a.js (async-a) 216 bytes <{4}> >{0}< [rendered]
         > ./a [7] ./index.js 1:0-47
-     [0] ./d.js 20 bytes {1} {2} {3} {5} {6} {7} [built]
-     [1] ./node_modules/x.js 20 bytes {1} {2} {3} {5} {6} {7} [built]
-     [3] ./node_modules/y.js 20 bytes {1} {2} {5} {6} [built]
-     [5] ./a.js + 1 modules 156 bytes {1} {5} [built]
-         | ./a.js 121 bytes [built]
-         | ./e.js 20 bytes [built]
+        [0] ./d.js 20 bytes {1} {2} {3} {5} {6} {7} [built]
+        [1] ./node_modules/x.js 20 bytes {1} {2} {3} {5} {6} {7} [built]
+        [3] ./node_modules/y.js 20 bytes {1} {2} {5} {6} [built]
+        [5] ./a.js + 1 modules 156 bytes {1} {5} [built]
+            | ./a.js 121 bytes [built]
+            | ./e.js 20 bytes [built]
     chunk    {2} disabled/async-b.js (async-b) 152 bytes <{4}> [rendered]
         > ./b [7] ./index.js 2:0-47
-     [0] ./d.js 20 bytes {1} {2} {3} {5} {6} {7} [built]
-     [1] ./node_modules/x.js 20 bytes {1} {2} {3} {5} {6} {7} [built]
-     [2] ./f.js 20 bytes {0} {2} {3} {6} {7} [built]
-     [3] ./node_modules/y.js 20 bytes {1} {2} {5} {6} [built]
-     [4] ./b.js 72 bytes {2} {6} [built]
+        [0] ./d.js 20 bytes {1} {2} {3} {5} {6} {7} [built]
+        [1] ./node_modules/x.js 20 bytes {1} {2} {3} {5} {6} {7} [built]
+        [2] ./f.js 20 bytes {0} {2} {3} {6} {7} [built]
+        [3] ./node_modules/y.js 20 bytes {1} {2} {5} {6} [built]
+        [4] ./b.js 72 bytes {2} {6} [built]
     chunk    {3} disabled/async-c.js (async-c) 167 bytes <{4}> [rendered]
         > ./c [7] ./index.js 3:0-47
-     [0] ./d.js 20 bytes {1} {2} {3} {5} {6} {7} [built]
-     [1] ./node_modules/x.js 20 bytes {1} {2} {3} {5} {6} {7} [built]
-     [2] ./f.js 20 bytes {0} {2} {3} {6} {7} [built]
-     [6] ./c.js + 1 modules 107 bytes {3} {7} [built]
-         | ./c.js 72 bytes [built]
-         | ./node_modules/z.js 20 bytes [built]
+        [0] ./d.js 20 bytes {1} {2} {3} {5} {6} {7} [built]
+        [1] ./node_modules/x.js 20 bytes {1} {2} {3} {5} {6} {7} [built]
+        [2] ./f.js 20 bytes {0} {2} {3} {6} {7} [built]
+        [6] ./c.js + 1 modules 107 bytes {3} {7} [built]
+            | ./c.js 72 bytes [built]
+            | ./node_modules/z.js 20 bytes [built]
     chunk    {4} disabled/main.js (main) 147 bytes >{1}< >{2}< >{3}< [entry] [rendered]
         > ./ main
-     [7] ./index.js 147 bytes {4} [built]
+        [7] ./index.js 147 bytes {4} [built]
     chunk    {5} disabled/a.js (a) 216 bytes >{0}< [entry] [rendered]
         > ./a a
-     [0] ./d.js 20 bytes {1} {2} {3} {5} {6} {7} [built]
-     [1] ./node_modules/x.js 20 bytes {1} {2} {3} {5} {6} {7} [built]
-     [3] ./node_modules/y.js 20 bytes {1} {2} {5} {6} [built]
-     [5] ./a.js + 1 modules 156 bytes {1} {5} [built]
-         | ./a.js 121 bytes [built]
-         | ./e.js 20 bytes [built]
+        [0] ./d.js 20 bytes {1} {2} {3} {5} {6} {7} [built]
+        [1] ./node_modules/x.js 20 bytes {1} {2} {3} {5} {6} {7} [built]
+        [3] ./node_modules/y.js 20 bytes {1} {2} {5} {6} [built]
+        [5] ./a.js + 1 modules 156 bytes {1} {5} [built]
+            | ./a.js 121 bytes [built]
+            | ./e.js 20 bytes [built]
     chunk    {6} disabled/b.js (b) 152 bytes [entry] [rendered]
         > ./b b
-     [0] ./d.js 20 bytes {1} {2} {3} {5} {6} {7} [built]
-     [1] ./node_modules/x.js 20 bytes {1} {2} {3} {5} {6} {7} [built]
-     [2] ./f.js 20 bytes {0} {2} {3} {6} {7} [built]
-     [3] ./node_modules/y.js 20 bytes {1} {2} {5} {6} [built]
-     [4] ./b.js 72 bytes {2} {6} [built]
+        [0] ./d.js 20 bytes {1} {2} {3} {5} {6} {7} [built]
+        [1] ./node_modules/x.js 20 bytes {1} {2} {3} {5} {6} {7} [built]
+        [2] ./f.js 20 bytes {0} {2} {3} {6} {7} [built]
+        [3] ./node_modules/y.js 20 bytes {1} {2} {5} {6} [built]
+        [4] ./b.js 72 bytes {2} {6} [built]
     chunk    {7} disabled/c.js (c) 167 bytes [entry] [rendered]
         > ./c c
-     [0] ./d.js 20 bytes {1} {2} {3} {5} {6} {7} [built]
-     [1] ./node_modules/x.js 20 bytes {1} {2} {3} {5} {6} {7} [built]
-     [2] ./f.js 20 bytes {0} {2} {3} {6} {7} [built]
-     [6] ./c.js + 1 modules 107 bytes {3} {7} [built]
-         | ./c.js 72 bytes [built]
-         | ./node_modules/z.js 20 bytes [built]
+        [0] ./d.js 20 bytes {1} {2} {3} {5} {6} {7} [built]
+        [1] ./node_modules/x.js 20 bytes {1} {2} {3} {5} {6} {7} [built]
+        [2] ./f.js 20 bytes {0} {2} {3} {6} {7} [built]
+        [6] ./c.js + 1 modules 107 bytes {3} {7} [built]
+            | ./c.js 72 bytes [built]
+            | ./node_modules/z.js 20 bytes [built]
 Child default:
     Entrypoint main = default/main.js
     Entrypoint a = default/a.js
@@ -66,65 +66,65 @@ Child default:
         > ./a [8] ./index.js 1:0-47
         > ./b [8] ./index.js 2:0-47
         > ./c [8] ./index.js 3:0-47
-     [1] ./node_modules/x.js 20 bytes {0} {10} {11} {12} [built]
+        [1] ./node_modules/x.js 20 bytes {0} {10} {11} {12} [built]
     chunk    {1} default/async-a~async-b~async-c.js (async-a~async-b~async-c) 20 bytes <{9}> ={0}= ={2}= ={3}= ={5}= ={6}= ={7}= ={8}= >{2}< >{4}< [rendered] split chunk (cache group: default) (name: async-a~async-b~async-c)
         > ./a [8] ./index.js 1:0-47
         > ./b [8] ./index.js 2:0-47
         > ./c [8] ./index.js 3:0-47
-     [0] ./d.js 20 bytes {1} {10} {11} {12} [built]
+        [0] ./d.js 20 bytes {1} {10} {11} {12} [built]
     chunk    {2} default/async-b~async-c~async-g.js (async-b~async-c~async-g) 20 bytes <{0}> <{1}> <{10}> <{3}> <{5}> <{9}> ={0}= ={1}= ={3}= ={4}= ={6}= ={7}= ={8}= [rendered] split chunk (cache group: default) (name: async-b~async-c~async-g)
         > ./g [] 6:0-47
         > ./g [] 6:0-47
         > ./b [8] ./index.js 2:0-47
         > ./c [8] ./index.js 3:0-47
-     [2] ./f.js 20 bytes {2} {11} {12} [built]
+        [2] ./f.js 20 bytes {2} {11} {12} [built]
     chunk    {3} default/vendors~async-a~async-b.js (vendors~async-a~async-b) 20 bytes <{9}> ={0}= ={1}= ={2}= ={5}= ={6}= >{2}< >{4}< [rendered] split chunk (cache group: vendors) (name: vendors~async-a~async-b)
         > ./a [8] ./index.js 1:0-47
         > ./b [8] ./index.js 2:0-47
-     [3] ./node_modules/y.js 20 bytes {3} {10} {11} [built]
+        [3] ./node_modules/y.js 20 bytes {3} {10} {11} [built]
     chunk    {4} default/async-g.js (async-g) 34 bytes <{0}> <{1}> <{10}> <{3}> <{5}> ={2}= [rendered]
         > ./g [] 6:0-47
         > ./g [] 6:0-47
-     [9] ./g.js 34 bytes {4} [built]
+        [9] ./g.js 34 bytes {4} [built]
     chunk    {5} default/async-a.js (async-a) 156 bytes <{9}> ={0}= ={1}= ={3}= >{2}< >{4}< [rendered]
         > ./a [8] ./index.js 1:0-47
-     [7] ./a.js + 1 modules 156 bytes {5} {10} [built]
-         | ./a.js 121 bytes [built]
-         | ./e.js 20 bytes [built]
+        [7] ./a.js + 1 modules 156 bytes {5} {10} [built]
+            | ./a.js 121 bytes [built]
+            | ./e.js 20 bytes [built]
     chunk    {6} default/async-b.js (async-b) 72 bytes <{9}> ={0}= ={1}= ={2}= ={3}= [rendered]
         > ./b [8] ./index.js 2:0-47
-     [5] ./b.js 72 bytes {6} {11} [built]
+        [5] ./b.js 72 bytes {6} {11} [built]
     chunk    {7} default/async-c.js (async-c) 72 bytes <{9}> ={0}= ={1}= ={2}= ={8}= [rendered]
         > ./c [8] ./index.js 3:0-47
-     [6] ./c.js 72 bytes {7} {12} [built]
+        [6] ./c.js 72 bytes {7} {12} [built]
     chunk    {8} default/vendors~async-c.js (vendors~async-c) 20 bytes <{9}> ={0}= ={1}= ={2}= ={7}= [rendered] split chunk (cache group: vendors) (name: vendors~async-c)
         > ./c [8] ./index.js 3:0-47
-     [4] ./node_modules/z.js 20 bytes {8} {12} [built]
+        [4] ./node_modules/z.js 20 bytes {8} {12} [built]
     chunk    {9} default/main.js (main) 147 bytes >{0}< >{1}< >{2}< >{3}< >{5}< >{6}< >{7}< >{8}< [entry] [rendered]
         > ./ main
-     [8] ./index.js 147 bytes {9} [built]
+        [8] ./index.js 147 bytes {9} [built]
     chunk   {10} default/a.js (a) 216 bytes >{2}< >{4}< [entry] [rendered]
         > ./a a
-     [0] ./d.js 20 bytes {1} {10} {11} {12} [built]
-     [1] ./node_modules/x.js 20 bytes {0} {10} {11} {12} [built]
-     [3] ./node_modules/y.js 20 bytes {3} {10} {11} [built]
-     [7] ./a.js + 1 modules 156 bytes {5} {10} [built]
-         | ./a.js 121 bytes [built]
-         | ./e.js 20 bytes [built]
+        [0] ./d.js 20 bytes {1} {10} {11} {12} [built]
+        [1] ./node_modules/x.js 20 bytes {0} {10} {11} {12} [built]
+        [3] ./node_modules/y.js 20 bytes {3} {10} {11} [built]
+        [7] ./a.js + 1 modules 156 bytes {5} {10} [built]
+            | ./a.js 121 bytes [built]
+            | ./e.js 20 bytes [built]
     chunk   {11} default/b.js (b) 152 bytes [entry] [rendered]
         > ./b b
-     [0] ./d.js 20 bytes {1} {10} {11} {12} [built]
-     [1] ./node_modules/x.js 20 bytes {0} {10} {11} {12} [built]
-     [2] ./f.js 20 bytes {2} {11} {12} [built]
-     [3] ./node_modules/y.js 20 bytes {3} {10} {11} [built]
-     [5] ./b.js 72 bytes {6} {11} [built]
+        [0] ./d.js 20 bytes {1} {10} {11} {12} [built]
+        [1] ./node_modules/x.js 20 bytes {0} {10} {11} {12} [built]
+        [2] ./f.js 20 bytes {2} {11} {12} [built]
+        [3] ./node_modules/y.js 20 bytes {3} {10} {11} [built]
+        [5] ./b.js 72 bytes {6} {11} [built]
     chunk   {12} default/c.js (c) 152 bytes [entry] [rendered]
         > ./c c
-     [0] ./d.js 20 bytes {1} {10} {11} {12} [built]
-     [1] ./node_modules/x.js 20 bytes {0} {10} {11} {12} [built]
-     [2] ./f.js 20 bytes {2} {11} {12} [built]
-     [4] ./node_modules/z.js 20 bytes {8} {12} [built]
-     [6] ./c.js 72 bytes {7} {12} [built]
+        [0] ./d.js 20 bytes {1} {10} {11} {12} [built]
+        [1] ./node_modules/x.js 20 bytes {0} {10} {11} {12} [built]
+        [2] ./f.js 20 bytes {2} {11} {12} [built]
+        [4] ./node_modules/z.js 20 bytes {8} {12} [built]
+        [6] ./c.js 72 bytes {7} {12} [built]
 Child vendors:
     Entrypoint main = vendors/main.js
     Entrypoint a = vendors/vendors.js vendors/a.js
@@ -133,56 +133,56 @@ Child vendors:
     chunk    {0} vendors/async-g.js (async-g) 54 bytes <{1}> <{4}> <{6}> [rendered]
         > ./g [] 6:0-47
         > ./g [] 6:0-47
-     [2] ./f.js 20 bytes {0} {2} {3} {7} {8} [built]
-     [9] ./g.js 34 bytes {0} [built]
+        [2] ./f.js 20 bytes {0} {2} {3} {7} {8} [built]
+        [9] ./g.js 34 bytes {0} [built]
     chunk    {1} vendors/async-a.js (async-a) 216 bytes <{5}> >{0}< [rendered]
         > ./a [8] ./index.js 1:0-47
-     [0] ./d.js 20 bytes {1} {2} {3} {6} {7} {8} [built]
-     [1] ./node_modules/x.js 20 bytes {1} {2} {3} {4} [built]
-     [3] ./node_modules/y.js 20 bytes {1} {2} {4} [built]
-     [7] ./a.js + 1 modules 156 bytes {1} {6} [built]
-         | ./a.js 121 bytes [built]
-         | ./e.js 20 bytes [built]
+        [0] ./d.js 20 bytes {1} {2} {3} {6} {7} {8} [built]
+        [1] ./node_modules/x.js 20 bytes {1} {2} {3} {4} [built]
+        [3] ./node_modules/y.js 20 bytes {1} {2} {4} [built]
+        [7] ./a.js + 1 modules 156 bytes {1} {6} [built]
+            | ./a.js 121 bytes [built]
+            | ./e.js 20 bytes [built]
     chunk    {2} vendors/async-b.js (async-b) 152 bytes <{5}> [rendered]
         > ./b [8] ./index.js 2:0-47
-     [0] ./d.js 20 bytes {1} {2} {3} {6} {7} {8} [built]
-     [1] ./node_modules/x.js 20 bytes {1} {2} {3} {4} [built]
-     [2] ./f.js 20 bytes {0} {2} {3} {7} {8} [built]
-     [3] ./node_modules/y.js 20 bytes {1} {2} {4} [built]
-     [5] ./b.js 72 bytes {2} {7} [built]
+        [0] ./d.js 20 bytes {1} {2} {3} {6} {7} {8} [built]
+        [1] ./node_modules/x.js 20 bytes {1} {2} {3} {4} [built]
+        [2] ./f.js 20 bytes {0} {2} {3} {7} {8} [built]
+        [3] ./node_modules/y.js 20 bytes {1} {2} {4} [built]
+        [5] ./b.js 72 bytes {2} {7} [built]
     chunk    {3} vendors/async-c.js (async-c) 152 bytes <{5}> [rendered]
         > ./c [8] ./index.js 3:0-47
-     [0] ./d.js 20 bytes {1} {2} {3} {6} {7} {8} [built]
-     [1] ./node_modules/x.js 20 bytes {1} {2} {3} {4} [built]
-     [2] ./f.js 20 bytes {0} {2} {3} {7} {8} [built]
-     [4] ./node_modules/z.js 20 bytes {3} {4} [built]
-     [6] ./c.js 72 bytes {3} {8} [built]
+        [0] ./d.js 20 bytes {1} {2} {3} {6} {7} {8} [built]
+        [1] ./node_modules/x.js 20 bytes {1} {2} {3} {4} [built]
+        [2] ./f.js 20 bytes {0} {2} {3} {7} {8} [built]
+        [4] ./node_modules/z.js 20 bytes {3} {4} [built]
+        [6] ./c.js 72 bytes {3} {8} [built]
     chunk    {4} vendors/vendors.js (vendors) 60 bytes ={6}= ={7}= ={8}= >{0}< [initial] [rendered] split chunk (cache group: vendors) (name: vendors)
         > ./a a
         > ./b b
         > ./c c
-     [1] ./node_modules/x.js 20 bytes {1} {2} {3} {4} [built]
-     [3] ./node_modules/y.js 20 bytes {1} {2} {4} [built]
-     [4] ./node_modules/z.js 20 bytes {3} {4} [built]
+        [1] ./node_modules/x.js 20 bytes {1} {2} {3} {4} [built]
+        [3] ./node_modules/y.js 20 bytes {1} {2} {4} [built]
+        [4] ./node_modules/z.js 20 bytes {3} {4} [built]
     chunk    {5} vendors/main.js (main) 147 bytes >{1}< >{2}< >{3}< [entry] [rendered]
         > ./ main
-     [8] ./index.js 147 bytes {5} [built]
+        [8] ./index.js 147 bytes {5} [built]
     chunk    {6} vendors/a.js (a) 176 bytes ={4}= >{0}< [entry] [rendered]
         > ./a a
-     [0] ./d.js 20 bytes {1} {2} {3} {6} {7} {8} [built]
-     [7] ./a.js + 1 modules 156 bytes {1} {6} [built]
-         | ./a.js 121 bytes [built]
-         | ./e.js 20 bytes [built]
+        [0] ./d.js 20 bytes {1} {2} {3} {6} {7} {8} [built]
+        [7] ./a.js + 1 modules 156 bytes {1} {6} [built]
+            | ./a.js 121 bytes [built]
+            | ./e.js 20 bytes [built]
     chunk    {7} vendors/b.js (b) 112 bytes ={4}= [entry] [rendered]
         > ./b b
-     [0] ./d.js 20 bytes {1} {2} {3} {6} {7} {8} [built]
-     [2] ./f.js 20 bytes {0} {2} {3} {7} {8} [built]
-     [5] ./b.js 72 bytes {2} {7} [built]
+        [0] ./d.js 20 bytes {1} {2} {3} {6} {7} {8} [built]
+        [2] ./f.js 20 bytes {0} {2} {3} {7} {8} [built]
+        [5] ./b.js 72 bytes {2} {7} [built]
     chunk    {8} vendors/c.js (c) 112 bytes ={4}= [entry] [rendered]
         > ./c c
-     [0] ./d.js 20 bytes {1} {2} {3} {6} {7} {8} [built]
-     [2] ./f.js 20 bytes {0} {2} {3} {7} {8} [built]
-     [6] ./c.js 72 bytes {3} {8} [built]
+        [0] ./d.js 20 bytes {1} {2} {3} {6} {7} {8} [built]
+        [2] ./f.js 20 bytes {0} {2} {3} {7} {8} [built]
+        [6] ./c.js 72 bytes {3} {8} [built]
 Child multiple-vendors:
     Entrypoint main = multiple-vendors/main.js
     Entrypoint a = multiple-vendors/libs-x.js multiple-vendors/vendors~a~async-a~async-b~b.js multiple-vendors/a.js
@@ -195,62 +195,62 @@ Child multiple-vendors:
         > ./a [8] ./index.js 1:0-47
         > ./b [8] ./index.js 2:0-47
         > ./c [8] ./index.js 3:0-47
-     [2] ./node_modules/x.js 20 bytes {0} [built]
+        [2] ./node_modules/x.js 20 bytes {0} [built]
     chunk    {1} multiple-vendors/a~async-a~async-b~async-c~b~c.js (a~async-a~async-b~async-c~b~c) 20 bytes <{9}> ={0}= ={2}= ={3}= ={4}= ={6}= ={7}= ={8}= >{2}< >{5}< [rendered] split chunk (cache group: default) (name: a~async-a~async-b~async-c~b~c)
         > ./a [8] ./index.js 1:0-47
         > ./b [8] ./index.js 2:0-47
         > ./c [8] ./index.js 3:0-47
-     [0] ./d.js 20 bytes {1} {10} {11} {12} [built]
+        [0] ./d.js 20 bytes {1} {10} {11} {12} [built]
     chunk    {2} multiple-vendors/async-b~async-c~async-g~b~c.js (async-b~async-c~async-g~b~c) 20 bytes <{0}> <{1}> <{10}> <{3}> <{8}> <{9}> ={0}= ={1}= ={3}= ={4}= ={5}= ={6}= ={7}= [rendered] split chunk (cache group: default) (name: async-b~async-c~async-g~b~c)
         > ./g [] 6:0-47
         > ./g [] 6:0-47
         > ./b [8] ./index.js 2:0-47
         > ./c [8] ./index.js 3:0-47
-     [1] ./f.js 20 bytes {2} {11} {12} [built]
+        [1] ./f.js 20 bytes {2} {11} {12} [built]
     chunk    {3} multiple-vendors/vendors~a~async-a~async-b~b.js (vendors~a~async-a~async-b~b) 20 bytes <{9}> ={0}= ={1}= ={10}= ={11}= ={2}= ={6}= ={8}= >{2}< >{5}< [initial] [rendered] split chunk (cache group: vendors) (name: vendors~a~async-a~async-b~b)
         > ./a a
         > ./b b
         > ./a [8] ./index.js 1:0-47
         > ./b [8] ./index.js 2:0-47
-     [3] ./node_modules/y.js 20 bytes {3} [built]
+        [3] ./node_modules/y.js 20 bytes {3} [built]
     chunk    {4} multiple-vendors/vendors~async-c~c.js (vendors~async-c~c) 20 bytes <{9}> ={0}= ={1}= ={12}= ={2}= ={7}= [initial] [rendered] split chunk (cache group: vendors) (name: vendors~async-c~c)
         > ./c c
         > ./c [8] ./index.js 3:0-47
-     [7] ./node_modules/z.js 20 bytes {4} [built]
+        [7] ./node_modules/z.js 20 bytes {4} [built]
     chunk    {5} multiple-vendors/async-g.js (async-g) 34 bytes <{0}> <{1}> <{10}> <{3}> <{8}> ={2}= [rendered]
         > ./g [] 6:0-47
         > ./g [] 6:0-47
-     [9] ./g.js 34 bytes {5} [built]
+        [9] ./g.js 34 bytes {5} [built]
     chunk    {6} multiple-vendors/async-b.js (async-b) 72 bytes <{9}> ={0}= ={1}= ={2}= ={3}= [rendered]
         > ./b [8] ./index.js 2:0-47
-     [4] ./b.js 72 bytes {6} {11} [built]
+        [4] ./b.js 72 bytes {6} {11} [built]
     chunk    {7} multiple-vendors/async-c.js (async-c) 72 bytes <{9}> ={0}= ={1}= ={2}= ={4}= [rendered]
         > ./c [8] ./index.js 3:0-47
-     [5] ./c.js 72 bytes {7} {12} [built]
+        [5] ./c.js 72 bytes {7} {12} [built]
     chunk    {8} multiple-vendors/a~async-a.js (a~async-a) 156 bytes <{9}> ={0}= ={1}= ={3}= >{2}< >{5}< [rendered] split chunk (cache group: default) (name: a~async-a)
         > ./a [8] ./index.js 1:0-47
-     [6] ./a.js + 1 modules 156 bytes {8} {10} [built]
-         | ./a.js 121 bytes [built]
-         | ./e.js 20 bytes [built]
+        [6] ./a.js + 1 modules 156 bytes {8} {10} [built]
+            | ./a.js 121 bytes [built]
+            | ./e.js 20 bytes [built]
     chunk    {9} multiple-vendors/main.js (main) 147 bytes >{0}< >{1}< >{2}< >{3}< >{4}< >{6}< >{7}< >{8}< [entry] [rendered]
         > ./ main
-     [8] ./index.js 147 bytes {9} [built]
+        [8] ./index.js 147 bytes {9} [built]
     chunk   {10} multiple-vendors/a.js (a) 176 bytes ={0}= ={3}= >{2}< >{5}< [entry] [rendered]
         > ./a a
-     [0] ./d.js 20 bytes {1} {10} {11} {12} [built]
-     [6] ./a.js + 1 modules 156 bytes {8} {10} [built]
-         | ./a.js 121 bytes [built]
-         | ./e.js 20 bytes [built]
+        [0] ./d.js 20 bytes {1} {10} {11} {12} [built]
+        [6] ./a.js + 1 modules 156 bytes {8} {10} [built]
+            | ./a.js 121 bytes [built]
+            | ./e.js 20 bytes [built]
     chunk   {11} multiple-vendors/b.js (b) 112 bytes ={0}= ={3}= [entry] [rendered]
         > ./b b
-     [0] ./d.js 20 bytes {1} {10} {11} {12} [built]
-     [1] ./f.js 20 bytes {2} {11} {12} [built]
-     [4] ./b.js 72 bytes {6} {11} [built]
+        [0] ./d.js 20 bytes {1} {10} {11} {12} [built]
+        [1] ./f.js 20 bytes {2} {11} {12} [built]
+        [4] ./b.js 72 bytes {6} {11} [built]
     chunk   {12} multiple-vendors/c.js (c) 112 bytes ={0}= ={4}= [entry] [rendered]
         > ./c c
-     [0] ./d.js 20 bytes {1} {10} {11} {12} [built]
-     [1] ./f.js 20 bytes {2} {11} {12} [built]
-     [5] ./c.js 72 bytes {7} {12} [built]
+        [0] ./d.js 20 bytes {1} {10} {11} {12} [built]
+        [1] ./f.js 20 bytes {2} {11} {12} [built]
+        [5] ./c.js 72 bytes {7} {12} [built]
 Child all:
     Entrypoint main = all/main.js
     Entrypoint a = all/vendors~a~async-a~async-b~async-c~b~c.js all/vendors~a~async-a~async-b~b.js all/a.js
@@ -263,59 +263,59 @@ Child all:
         > ./a [8] ./index.js 1:0-47
         > ./b [8] ./index.js 2:0-47
         > ./c [8] ./index.js 3:0-47
-     [2] ./node_modules/x.js 20 bytes {0} [built]
+        [2] ./node_modules/x.js 20 bytes {0} [built]
     chunk    {1} all/a~async-a~async-b~async-c~b~c.js (a~async-a~async-b~async-c~b~c) 20 bytes <{9}> ={0}= ={2}= ={3}= ={4}= ={6}= ={7}= ={8}= >{2}< >{5}< [rendered] split chunk (cache group: default) (name: a~async-a~async-b~async-c~b~c)
         > ./a [8] ./index.js 1:0-47
         > ./b [8] ./index.js 2:0-47
         > ./c [8] ./index.js 3:0-47
-     [0] ./d.js 20 bytes {1} {10} {11} {12} [built]
+        [0] ./d.js 20 bytes {1} {10} {11} {12} [built]
     chunk    {2} all/async-b~async-c~async-g~b~c.js (async-b~async-c~async-g~b~c) 20 bytes <{0}> <{1}> <{10}> <{3}> <{8}> <{9}> ={0}= ={1}= ={3}= ={4}= ={5}= ={6}= ={7}= [rendered] split chunk (cache group: default) (name: async-b~async-c~async-g~b~c)
         > ./g [] 6:0-47
         > ./g [] 6:0-47
         > ./b [8] ./index.js 2:0-47
         > ./c [8] ./index.js 3:0-47
-     [1] ./f.js 20 bytes {2} {11} {12} [built]
+        [1] ./f.js 20 bytes {2} {11} {12} [built]
     chunk    {3} all/vendors~a~async-a~async-b~b.js (vendors~a~async-a~async-b~b) 20 bytes <{9}> ={0}= ={1}= ={10}= ={11}= ={2}= ={6}= ={8}= >{2}< >{5}< [initial] [rendered] split chunk (cache group: vendors) (name: vendors~a~async-a~async-b~b)
         > ./a a
         > ./b b
         > ./a [8] ./index.js 1:0-47
         > ./b [8] ./index.js 2:0-47
-     [3] ./node_modules/y.js 20 bytes {3} [built]
+        [3] ./node_modules/y.js 20 bytes {3} [built]
     chunk    {4} all/vendors~async-c~c.js (vendors~async-c~c) 20 bytes <{9}> ={0}= ={1}= ={12}= ={2}= ={7}= [initial] [rendered] split chunk (cache group: vendors) (name: vendors~async-c~c)
         > ./c c
         > ./c [8] ./index.js 3:0-47
-     [7] ./node_modules/z.js 20 bytes {4} [built]
+        [7] ./node_modules/z.js 20 bytes {4} [built]
     chunk    {5} all/async-g.js (async-g) 34 bytes <{0}> <{1}> <{10}> <{3}> <{8}> ={2}= [rendered]
         > ./g [] 6:0-47
         > ./g [] 6:0-47
-     [9] ./g.js 34 bytes {5} [built]
+        [9] ./g.js 34 bytes {5} [built]
     chunk    {6} all/async-b.js (async-b) 72 bytes <{9}> ={0}= ={1}= ={2}= ={3}= [rendered]
         > ./b [8] ./index.js 2:0-47
-     [4] ./b.js 72 bytes {6} {11} [built]
+        [4] ./b.js 72 bytes {6} {11} [built]
     chunk    {7} all/async-c.js (async-c) 72 bytes <{9}> ={0}= ={1}= ={2}= ={4}= [rendered]
         > ./c [8] ./index.js 3:0-47
-     [5] ./c.js 72 bytes {7} {12} [built]
+        [5] ./c.js 72 bytes {7} {12} [built]
     chunk    {8} all/a~async-a.js (a~async-a) 156 bytes <{9}> ={0}= ={1}= ={3}= >{2}< >{5}< [rendered] split chunk (cache group: default) (name: a~async-a)
         > ./a [8] ./index.js 1:0-47
-     [6] ./a.js + 1 modules 156 bytes {8} {10} [built]
-         | ./a.js 121 bytes [built]
-         | ./e.js 20 bytes [built]
+        [6] ./a.js + 1 modules 156 bytes {8} {10} [built]
+            | ./a.js 121 bytes [built]
+            | ./e.js 20 bytes [built]
     chunk    {9} all/main.js (main) 147 bytes >{0}< >{1}< >{2}< >{3}< >{4}< >{6}< >{7}< >{8}< [entry] [rendered]
         > ./ main
-     [8] ./index.js 147 bytes {9} [built]
+        [8] ./index.js 147 bytes {9} [built]
     chunk   {10} all/a.js (a) 176 bytes ={0}= ={3}= >{2}< >{5}< [entry] [rendered]
         > ./a a
-     [0] ./d.js 20 bytes {1} {10} {11} {12} [built]
-     [6] ./a.js + 1 modules 156 bytes {8} {10} [built]
-         | ./a.js 121 bytes [built]
-         | ./e.js 20 bytes [built]
+        [0] ./d.js 20 bytes {1} {10} {11} {12} [built]
+        [6] ./a.js + 1 modules 156 bytes {8} {10} [built]
+            | ./a.js 121 bytes [built]
+            | ./e.js 20 bytes [built]
     chunk   {11} all/b.js (b) 112 bytes ={0}= ={3}= [entry] [rendered]
         > ./b b
-     [0] ./d.js 20 bytes {1} {10} {11} {12} [built]
-     [1] ./f.js 20 bytes {2} {11} {12} [built]
-     [4] ./b.js 72 bytes {6} {11} [built]
+        [0] ./d.js 20 bytes {1} {10} {11} {12} [built]
+        [1] ./f.js 20 bytes {2} {11} {12} [built]
+        [4] ./b.js 72 bytes {6} {11} [built]
     chunk   {12} all/c.js (c) 112 bytes ={0}= ={4}= [entry] [rendered]
         > ./c c
-     [0] ./d.js 20 bytes {1} {10} {11} {12} [built]
-     [1] ./f.js 20 bytes {2} {11} {12} [built]
-     [5] ./c.js 72 bytes {7} {12} [built]
\ No newline at end of file
+        [0] ./d.js 20 bytes {1} {10} {11} {12} [built]
+        [1] ./f.js 20 bytes {2} {11} {12} [built]
+        [5] ./c.js 72 bytes {7} {12} [built]
\ No newline at end of file
diff --git a/test/statsCases/async-commons-chunk/expected.txt b/test/statsCases/async-commons-chunk/expected.txt
index ca0112474..d67732917 100644
--- a/test/statsCases/async-commons-chunk/expected.txt
+++ b/test/statsCases/async-commons-chunk/expected.txt
@@ -3,13 +3,13 @@ chunk    {0} 0.js 21 bytes <{3}> ={1}= ={2}= [rendered] reused as split chunk (c
     > [3] ./index.js 17:1-21:3
     > [3] ./index.js 2:1-5:3
     > ./a ./b [3] ./index.js 9:1-13:3
- [0] ./a.js 21 bytes {0} [built]
+    [0] ./a.js 21 bytes {0} [built]
 chunk    {1} 1.js 21 bytes <{3}> ={0}= [rendered]
     > ./a ./b [3] ./index.js 9:1-13:3
- [1] ./b.js 21 bytes {1} [built]
+    [1] ./b.js 21 bytes {1} [built]
 chunk    {2} 2.js 21 bytes <{3}> ={0}= [rendered]
     > [3] ./index.js 17:1-21:3
- [2] ./c.js 21 bytes {2} [built]
+    [2] ./c.js 21 bytes {2} [built]
 chunk    {3} main.js (main) 550 bytes >{0}< >{1}< >{2}< [entry] [rendered]
     > ./ main
- [3] ./index.js 550 bytes {3} [built]
\ No newline at end of file
+    [3] ./index.js 550 bytes {3} [built]
\ No newline at end of file
diff --git a/test/statsCases/chunk-module-id-range/a.js b/test/statsCases/chunk-module-id-range/a.js
deleted file mode 100644
index e94fef185..000000000
--- a/test/statsCases/chunk-module-id-range/a.js
+++ /dev/null
@@ -1,1 +0,0 @@
-export default "a";
diff --git a/test/statsCases/chunk-module-id-range/b.js b/test/statsCases/chunk-module-id-range/b.js
deleted file mode 100644
index eff703ff4..000000000
--- a/test/statsCases/chunk-module-id-range/b.js
+++ /dev/null
@@ -1,1 +0,0 @@
-export default "b";
diff --git a/test/statsCases/chunk-module-id-range/c.js b/test/statsCases/chunk-module-id-range/c.js
deleted file mode 100644
index 5d50db5bc..000000000
--- a/test/statsCases/chunk-module-id-range/c.js
+++ /dev/null
@@ -1,1 +0,0 @@
-export default "c";
diff --git a/test/statsCases/chunk-module-id-range/d.js b/test/statsCases/chunk-module-id-range/d.js
deleted file mode 100644
index 987d6d7e4..000000000
--- a/test/statsCases/chunk-module-id-range/d.js
+++ /dev/null
@@ -1,1 +0,0 @@
-export default "d";
diff --git a/test/statsCases/chunk-module-id-range/e.js b/test/statsCases/chunk-module-id-range/e.js
deleted file mode 100644
index d97e38b22..000000000
--- a/test/statsCases/chunk-module-id-range/e.js
+++ /dev/null
@@ -1,1 +0,0 @@
-export default "e";
diff --git a/test/statsCases/chunk-module-id-range/expected.txt b/test/statsCases/chunk-module-id-range/expected.txt
deleted file mode 100644
index a34fa06a6..000000000
--- a/test/statsCases/chunk-module-id-range/expected.txt
+++ /dev/null
@@ -1,22 +0,0 @@
-Hash: 27b68d27e07b42624dae
-Time: Xms
-Built at: Thu Jan 01 1970 00:00:00 GMT
-   Asset      Size  Chunks             Chunk Names
-main2.js  3.89 KiB       0  [emitted]  main2
-main1.js  3.89 KiB       1  [emitted]  main1
-Entrypoint main1 = main1.js
-Entrypoint main2 = main2.js
-chunk    {0} main2.js (main2) 136 bytes [entry] [rendered]
-    > ./main2 main2
-   [0] ./e.js 20 bytes {0} [built]
-   [1] ./f.js 20 bytes {0} [built]
-   [2] ./main2.js 56 bytes {0} [built]
- [100] ./d.js 20 bytes {0} {1} [built]
- [101] ./a.js 20 bytes {0} {1} [built]
-chunk    {1} main1.js (main1) 136 bytes [entry] [rendered]
-    > ./main1 main1
-   [3] ./b.js 20 bytes {1} [built]
-   [4] ./main1.js 56 bytes {1} [built]
- [100] ./d.js 20 bytes {0} {1} [built]
- [101] ./a.js 20 bytes {0} {1} [built]
- [102] ./c.js 20 bytes {1} [built]
\ No newline at end of file
diff --git a/test/statsCases/chunk-module-id-range/f.js b/test/statsCases/chunk-module-id-range/f.js
deleted file mode 100644
index 657d4dee8..000000000
--- a/test/statsCases/chunk-module-id-range/f.js
+++ /dev/null
@@ -1,1 +0,0 @@
-export default "f";
diff --git a/test/statsCases/chunk-module-id-range/main1.js b/test/statsCases/chunk-module-id-range/main1.js
deleted file mode 100644
index e1fd20493..000000000
--- a/test/statsCases/chunk-module-id-range/main1.js
+++ /dev/null
@@ -1,4 +0,0 @@
-import "./a";
-import "./b";
-import "./c";
-import "./d";
diff --git a/test/statsCases/chunk-module-id-range/main2.js b/test/statsCases/chunk-module-id-range/main2.js
deleted file mode 100644
index 4b63b6243..000000000
--- a/test/statsCases/chunk-module-id-range/main2.js
+++ /dev/null
@@ -1,4 +0,0 @@
-import "./a";
-import "./d";
-import "./e";
-import "./f";
diff --git a/test/statsCases/chunk-module-id-range/webpack.config.js b/test/statsCases/chunk-module-id-range/webpack.config.js
deleted file mode 100644
index 621d9df44..000000000
--- a/test/statsCases/chunk-module-id-range/webpack.config.js
+++ /dev/null
@@ -1,28 +0,0 @@
-const webpack = require("../../../");
-
-module.exports = {
-	mode: "none",
-	entry: {
-		main1: "./main1",
-		main2: "./main2"
-	},
-	plugins: [
-		new webpack.optimize.ChunkModuleIdRangePlugin({
-			name: "main1",
-			start: 100,
-			end: 102
-		}),
-		new webpack.optimize.ChunkModuleIdRangePlugin({
-			name: "main2",
-			order: "index2"
-		})
-	],
-	stats: {
-		chunks: true,
-		chunkModules: true,
-		chunkOrigins: true,
-		entrypoints: true,
-		modules: false,
-		publicPath: true
-	}
-};
diff --git a/test/statsCases/chunks-development/expected.txt b/test/statsCases/chunks-development/expected.txt
index fc9485d33..bdd52330c 100644
--- a/test/statsCases/chunks-development/expected.txt
+++ b/test/statsCases/chunks-development/expected.txt
@@ -10,27 +10,27 @@ Entrypoint main = bundle.js
 chunk {main} bundle.js (main) 73 bytes >{0}< >{1}< [entry] [rendered]
     > ./index main
  [./a.js] 22 bytes {main} [built]
-     cjs require ./a [./index.js] 1:0-14
-     cjs require ./a [./e.js] 1:0-14
-     [./index.js] Xms -> factory:Xms building:Xms = Xms
+        cjs require ./a [./index.js] 1:0-14
+        cjs require ./a [./e.js] 1:0-14
+        [./index.js] Xms -> factory:Xms building:Xms = Xms
  [./index.js] 51 bytes {main} [built]
-     single entry ./index  main
-     factory:Xms building:Xms = Xms
+        single entry ./index  main
+        factory:Xms building:Xms = Xms
 chunk    {0} 0.bundle.js 54 bytes <{main}> >{2}< [rendered]
     > ./c [./index.js] ./index.js 3:0-16
  [./c.js] 54 bytes {0} [built]
-     amd require ./c [./index.js] 3:0-16
-     [./index.js] Xms -> factory:Xms building:Xms = Xms
+        amd require ./c [./index.js] 3:0-16
+        [./index.js] Xms -> factory:Xms building:Xms = Xms
 chunk    {1} 1.bundle.js 22 bytes <{main}> [rendered]
     > ./b [./index.js] ./index.js 2:0-16
  [./b.js] 22 bytes {1} [built]
-     amd require ./b [./index.js] 2:0-16
-     [./index.js] Xms -> factory:Xms building:Xms = Xms
+        amd require ./b [./index.js] 2:0-16
+        [./index.js] Xms -> factory:Xms building:Xms = Xms
 chunk    {2} 2.bundle.js 60 bytes <{0}> [rendered]
     > [./c.js] ./c.js 1:0-52
  [./d.js] 22 bytes {2} [built]
-     require.ensure item ./d [./c.js] 1:0-52
-     [./index.js] Xms -> [./c.js] Xms -> factory:Xms building:Xms = Xms
+        require.ensure item ./d [./c.js] 1:0-52
+        [./index.js] Xms -> [./c.js] Xms -> factory:Xms building:Xms = Xms
  [./e.js] 38 bytes {2} [built]
-     require.ensure item ./e [./c.js] 1:0-52
-     [./index.js] Xms -> [./c.js] Xms -> factory:Xms building:Xms = Xms
\ No newline at end of file
+        require.ensure item ./e [./c.js] 1:0-52
+        [./index.js] Xms -> [./c.js] Xms -> factory:Xms building:Xms = Xms
\ No newline at end of file
diff --git a/test/statsCases/chunks/expected.txt b/test/statsCases/chunks/expected.txt
index e98a6bf8c..0ccb04b18 100644
--- a/test/statsCases/chunks/expected.txt
+++ b/test/statsCases/chunks/expected.txt
@@ -9,27 +9,27 @@ Built at: Thu Jan 01 1970 00:00:00 GMT
 Entrypoint main = bundle.js
 chunk    {0} 0.bundle.js 22 bytes <{2}> [rendered]
     > ./b [4] ./index.js 2:0-16
- [2] ./b.js 22 bytes {0} [built]
-     amd require ./b [4] ./index.js 2:0-16
-     [4] Xms -> factory:Xms building:Xms = Xms
+    [2] ./b.js 22 bytes {0} [built]
+        amd require ./b [4] ./index.js 2:0-16
+        [4] Xms -> factory:Xms building:Xms = Xms
 chunk    {1} 1.bundle.js 54 bytes <{2}> >{3}< [rendered]
     > ./c [4] ./index.js 3:0-16
- [3] ./c.js 54 bytes {1} [built]
-     amd require ./c [4] ./index.js 3:0-16
-     [4] Xms -> factory:Xms building:Xms = Xms
+    [3] ./c.js 54 bytes {1} [built]
+        amd require ./c [4] ./index.js 3:0-16
+        [4] Xms -> factory:Xms building:Xms = Xms
 chunk    {2} bundle.js (main) 73 bytes >{0}< >{1}< [entry] [rendered]
     > ./index main
- [4] ./index.js 51 bytes {2} [built]
-     single entry ./index  main
-     factory:Xms building:Xms = Xms
- [5] ./a.js 22 bytes {2} [built]
-     cjs require ./a [4] ./index.js 1:0-14
-     [4] Xms -> factory:Xms building:Xms = Xms
+    [4] ./index.js 51 bytes {2} [built]
+        single entry ./index  main
+        factory:Xms building:Xms = Xms
+    [5] ./a.js 22 bytes {2} [built]
+        cjs require ./a [4] ./index.js 1:0-14
+        [4] Xms -> factory:Xms building:Xms = Xms
 chunk    {3} 3.bundle.js 44 bytes <{1}> [rendered]
     > [3] ./c.js 1:0-52
- [0] ./d.js 22 bytes {3} [built]
-     require.ensure item ./d [3] ./c.js 1:0-52
-     [4] Xms -> [3] Xms -> factory:Xms building:Xms = Xms
- [1] ./e.js 22 bytes {3} [built]
-     require.ensure item ./e [3] ./c.js 1:0-52
-     [4] Xms -> [3] Xms -> factory:Xms building:Xms = Xms
\ No newline at end of file
+    [0] ./d.js 22 bytes {3} [built]
+        require.ensure item ./d [3] ./c.js 1:0-52
+        [4] Xms -> [3] Xms -> factory:Xms building:Xms = Xms
+    [1] ./e.js 22 bytes {3} [built]
+        require.ensure item ./e [3] ./c.js 1:0-52
+        [4] Xms -> [3] Xms -> factory:Xms building:Xms = Xms
\ No newline at end of file
diff --git a/test/statsCases/circular-correctness/expected.txt b/test/statsCases/circular-correctness/expected.txt
index 3501a16c3..33bb94b4b 100644
--- a/test/statsCases/circular-correctness/expected.txt
+++ b/test/statsCases/circular-correctness/expected.txt
@@ -1,9 +1,9 @@
 Entrypoint main = bundle.js
 chunk    {0} 0.bundle.js (a) 49 bytes <{2}> <{3}> >{3}< [rendered]
- [1] ./module-a.js 49 bytes {0} [built]
+    [1] ./module-a.js 49 bytes {0} [built]
 chunk    {1} 1.bundle.js (b) 49 bytes <{2}> <{3}> >{3}< [rendered]
- [2] ./module-b.js 49 bytes {1} [built]
+    [2] ./module-b.js 49 bytes {1} [built]
 chunk    {2} bundle.js (main) 98 bytes >{0}< >{1}< [entry] [rendered]
- [3] ./index.js 98 bytes {2} [built]
+    [3] ./index.js 98 bytes {2} [built]
 chunk    {3} 3.bundle.js (c) 98 bytes <{0}> <{1}> >{0}< >{1}< [rendered]
- [0] ./module-c.js 98 bytes {3} [built]
\ No newline at end of file
+    [0] ./module-c.js 98 bytes {3} [built]
\ No newline at end of file
diff --git a/test/statsCases/color-disabled/expected.txt b/test/statsCases/color-disabled/expected.txt
index a61ed09c9..0ad13b663 100644
--- a/test/statsCases/color-disabled/expected.txt
+++ b/test/statsCases/color-disabled/expected.txt
@@ -4,4 +4,4 @@ Built at: Thu Jan 01 1970 <CLR=BOLD>00:00:00</CLR> GMT
   Asset      Size  Chunks             Chunk Names
 main.js  2.61 KiB       0  [emitted]  main
 Entrypoint main = main.js
-[0] ./index.js 0 bytes {0} [built]
\ No newline at end of file
+   [0] ./index.js 0 bytes {0} [built]
\ No newline at end of file
diff --git a/test/statsCases/color-enabled-custom/expected.txt b/test/statsCases/color-enabled-custom/expected.txt
index 2a18c994d..1e0a39645 100644
--- a/test/statsCases/color-enabled-custom/expected.txt
+++ b/test/statsCases/color-enabled-custom/expected.txt
@@ -4,4 +4,4 @@ Built at: Thu Jan 01 1970 <CLR=BOLD>00:00:00</CLR> GMT
   <CLR=BOLD>Asset</CLR>      <CLR=BOLD>Size</CLR>  <CLR=BOLD>Chunks</CLR>  <CLR=39,BOLD><CLR=22>           <CLR=39,BOLD><CLR=22><CLR=BOLD>Chunk Names</CLR>
 <CLR=32>main.js</CLR>  2.61 KiB       <CLR=BOLD>0</CLR>  <CLR=32>[emitted]</CLR>  main
 Entrypoint <CLR=BOLD>main</CLR> = <CLR=32>main.js</CLR>
-[0] <CLR=BOLD>./index.js</CLR> 0 bytes {<CLR=33>0</CLR>}<CLR=32> [built]</CLR>
\ No newline at end of file
+   [0] <CLR=BOLD>./index.js</CLR> 0 bytes {<CLR=33>0</CLR>}<CLR=32> [built]</CLR>
\ No newline at end of file
diff --git a/test/statsCases/color-enabled/expected.txt b/test/statsCases/color-enabled/expected.txt
index bb7974c5b..3ff044bc1 100644
--- a/test/statsCases/color-enabled/expected.txt
+++ b/test/statsCases/color-enabled/expected.txt
@@ -4,4 +4,4 @@ Built at: Thu Jan 01 1970 <CLR=BOLD>00:00:00</CLR> GMT
   <CLR=BOLD>Asset</CLR>      <CLR=BOLD>Size</CLR>  <CLR=BOLD>Chunks</CLR>  <CLR=39,BOLD><CLR=22>           <CLR=39,BOLD><CLR=22><CLR=BOLD>Chunk Names</CLR>
 <CLR=32,BOLD>main.js</CLR>  2.61 KiB       <CLR=BOLD>0</CLR>  <CLR=32,BOLD>[emitted]</CLR>  main
 Entrypoint <CLR=BOLD>main</CLR> = <CLR=32,BOLD>main.js</CLR>
-[0] <CLR=BOLD>./index.js</CLR> 0 bytes {<CLR=33,BOLD>0</CLR>}<CLR=32,BOLD> [built]</CLR>
\ No newline at end of file
+   [0] <CLR=BOLD>./index.js</CLR> 0 bytes {<CLR=33,BOLD>0</CLR>}<CLR=32,BOLD> [built]</CLR>
\ No newline at end of file
diff --git a/test/statsCases/commons-chunk-min-size-0/expected.txt b/test/statsCases/commons-chunk-min-size-0/expected.txt
index 97d37ae2f..28f5ce3d0 100644
--- a/test/statsCases/commons-chunk-min-size-0/expected.txt
+++ b/test/statsCases/commons-chunk-min-size-0/expected.txt
@@ -5,10 +5,10 @@ Built at: Thu Jan 01 1970 00:00:00 GMT
          entry-1.js   5.49 KiB       0  [emitted]  entry-1
 vendor-1~entry-1.js  314 bytes       1  [emitted]  vendor-1~entry-1
 Entrypoint entry-1 = vendor-1~entry-1.js entry-1.js
-[0] ./entry-1.js 145 bytes {0} [built]
-[1] ./modules/a.js 22 bytes {1} [built]
-[2] ./modules/b.js 22 bytes {1} [built]
-[3] ./modules/c.js 22 bytes {1} [built]
-[4] ./modules/d.js 22 bytes {0} [built]
-[5] ./modules/e.js 22 bytes {0} [built]
-[6] ./modules/f.js 22 bytes {0} [built]
\ No newline at end of file
+   [0] ./entry-1.js 145 bytes {0} [built]
+   [1] ./modules/a.js 22 bytes {1} [built]
+   [2] ./modules/b.js 22 bytes {1} [built]
+   [3] ./modules/c.js 22 bytes {1} [built]
+   [4] ./modules/d.js 22 bytes {0} [built]
+   [5] ./modules/e.js 22 bytes {0} [built]
+   [6] ./modules/f.js 22 bytes {0} [built]
\ No newline at end of file
diff --git a/test/statsCases/commons-chunk-min-size-Infinity/expected.txt b/test/statsCases/commons-chunk-min-size-Infinity/expected.txt
index fe6ee6e6c..134c24a20 100644
--- a/test/statsCases/commons-chunk-min-size-Infinity/expected.txt
+++ b/test/statsCases/commons-chunk-min-size-Infinity/expected.txt
@@ -5,10 +5,10 @@ Built at: Thu Jan 01 1970 00:00:00 GMT
  entry-1.js   5.49 KiB       0  [emitted]  entry-1
 vendor-1.js  314 bytes       1  [emitted]  vendor-1
 Entrypoint entry-1 = vendor-1.js entry-1.js
-[0] ./entry-1.js 145 bytes {0} [built]
-[1] ./modules/a.js 22 bytes {1} [built]
-[2] ./modules/b.js 22 bytes {1} [built]
-[3] ./modules/c.js 22 bytes {1} [built]
-[4] ./modules/d.js 22 bytes {0} [built]
-[5] ./modules/e.js 22 bytes {0} [built]
-[6] ./modules/f.js 22 bytes {0} [built]
\ No newline at end of file
+   [0] ./entry-1.js 145 bytes {0} [built]
+   [1] ./modules/a.js 22 bytes {1} [built]
+   [2] ./modules/b.js 22 bytes {1} [built]
+   [3] ./modules/c.js 22 bytes {1} [built]
+   [4] ./modules/d.js 22 bytes {0} [built]
+   [5] ./modules/e.js 22 bytes {0} [built]
+   [6] ./modules/f.js 22 bytes {0} [built]
\ No newline at end of file
diff --git a/test/statsCases/commons-plugin-issue-4980/expected.txt b/test/statsCases/commons-plugin-issue-4980/expected.txt
index 36e56796a..4fb3373bc 100644
--- a/test/statsCases/commons-plugin-issue-4980/expected.txt
+++ b/test/statsCases/commons-plugin-issue-4980/expected.txt
@@ -9,9 +9,9 @@ Child
     Entrypoint app = vendor.c0e73bece4137a7015c2.js app.js
     [./constants.js] 87 bytes {1} [built]
     [./entry-1.js] ./entry-1.js + 2 modules 190 bytes {0} [built]
-        | ./entry-1.js 67 bytes [built]
-        | ./submodule-a.js 59 bytes [built]
-        | ./submodule-b.js 59 bytes [built]
+           | ./entry-1.js 67 bytes [built]
+           | ./submodule-a.js 59 bytes [built]
+           | ./submodule-b.js 59 bytes [built]
 Child
     Hash: 2425703c4fe7d61799b3
     Time: Xms
@@ -22,6 +22,6 @@ Child
     Entrypoint app = vendor.c0e73bece4137a7015c2.js app.js
     [./constants.js] 87 bytes {1} [built]
     [./entry-2.js] ./entry-2.js + 2 modules 197 bytes {0} [built]
-        | ./entry-2.js 67 bytes [built]
-        | ./submodule-a.js 59 bytes [built]
-        | ./submodule-c.js 66 bytes [built]
\ No newline at end of file
+           | ./entry-2.js 67 bytes [built]
+           | ./submodule-a.js 59 bytes [built]
+           | ./submodule-c.js 66 bytes [built]
\ No newline at end of file
diff --git a/test/statsCases/concat-and-sideeffects/expected.txt b/test/statsCases/concat-and-sideeffects/expected.txt
index 46d862938..dbb393d6a 100644
--- a/test/statsCases/concat-and-sideeffects/expected.txt
+++ b/test/statsCases/concat-and-sideeffects/expected.txt
@@ -1,15 +1,15 @@
-[0] ./index.js + 2 modules 119 bytes {0} [built]
-    | ./index.js 46 bytes [built]
-    |     ModuleConcatenation bailout: Module is an entry point
-    | ./node_modules/pmodule/a.js 49 bytes [built]
-    | ./node_modules/pmodule/aa.js 24 bytes [built]
-[1] ./node_modules/pmodule/b.js 49 bytes [built]
-    ModuleConcatenation bailout: Module is not in any chunk
-[2] ./node_modules/pmodule/bb.js 24 bytes [built]
-    ModuleConcatenation bailout: Module is not in any chunk
-[3] ./node_modules/pmodule/c.js 49 bytes [built]
-    ModuleConcatenation bailout: Module is not in any chunk
-[4] ./node_modules/pmodule/cc.js 24 bytes [built]
-    ModuleConcatenation bailout: Module is not in any chunk
-[5] ./node_modules/pmodule/index.js 63 bytes [built]
-    ModuleConcatenation bailout: Module is not in any chunk
\ No newline at end of file
+   [0] ./index.js + 2 modules 119 bytes {0} [built]
+       | ./index.js 46 bytes [built]
+       |    ModuleConcatenation bailout: Module is an entry point
+       | ./node_modules/pmodule/a.js 49 bytes [built]
+       | ./node_modules/pmodule/aa.js 24 bytes [built]
+   [1] ./node_modules/pmodule/b.js 49 bytes [built]
+       ModuleConcatenation bailout: Module is not in any chunk
+   [2] ./node_modules/pmodule/bb.js 24 bytes [built]
+       ModuleConcatenation bailout: Module is not in any chunk
+   [3] ./node_modules/pmodule/c.js 49 bytes [built]
+       ModuleConcatenation bailout: Module is not in any chunk
+   [4] ./node_modules/pmodule/cc.js 24 bytes [built]
+       ModuleConcatenation bailout: Module is not in any chunk
+   [5] ./node_modules/pmodule/index.js 63 bytes [built]
+       ModuleConcatenation bailout: Module is not in any chunk
\ No newline at end of file
diff --git a/test/statsCases/define-plugin/expected.txt b/test/statsCases/define-plugin/expected.txt
index d43671c36..09dbcefb9 100644
--- a/test/statsCases/define-plugin/expected.txt
+++ b/test/statsCases/define-plugin/expected.txt
@@ -6,7 +6,7 @@ Child
       Asset      Size  Chunks             Chunk Names
     main.js  2.63 KiB       0  [emitted]  main
     Entrypoint main = main.js
-    [0] ./index.js 24 bytes {0} [built]
+       [0] ./index.js 24 bytes {0} [built]
 Child
     Hash: eaead63561588b554cc6
     Time: Xms
@@ -14,4 +14,4 @@ Child
       Asset      Size  Chunks             Chunk Names
     main.js  2.63 KiB       0  [emitted]  main
     Entrypoint main = main.js
-    [0] ./index.js 24 bytes {0} [built]
\ No newline at end of file
+       [0] ./index.js 24 bytes {0} [built]
\ No newline at end of file
diff --git a/test/statsCases/exclude-with-loader/expected.txt b/test/statsCases/exclude-with-loader/expected.txt
index e51510ecf..cf00120b8 100644
--- a/test/statsCases/exclude-with-loader/expected.txt
+++ b/test/statsCases/exclude-with-loader/expected.txt
@@ -5,6 +5,6 @@ Built at: Thu Jan 01 1970 00:00:00 GMT
 bundle.js  3.05 KiB       0  [emitted]  main
  + 1 hidden asset
 Entrypoint main = bundle.js
-[0] ./index.js 77 bytes {0} [built]
-[1] ./a.txt 43 bytes {0} [built]
+   [0] ./index.js 77 bytes {0} [built]
+   [1] ./a.txt 43 bytes {0} [built]
     + 2 hidden modules
\ No newline at end of file
diff --git a/test/statsCases/external/expected.txt b/test/statsCases/external/expected.txt
index b8ebe71bd..500460544 100644
--- a/test/statsCases/external/expected.txt
+++ b/test/statsCases/external/expected.txt
@@ -4,5 +4,5 @@ Built at: Thu Jan 01 1970 00:00:00 GMT
   Asset      Size  Chunks             Chunk Names
 main.js  2.74 KiB       0  [emitted]  main
 Entrypoint main = main.js
-[0] ./index.js 17 bytes {0} [built]
-[1] external "test" 42 bytes {0} [built]
\ No newline at end of file
+   [0] ./index.js 17 bytes {0} [built]
+   [1] external "test" 42 bytes {0} [built]
\ No newline at end of file
diff --git a/test/statsCases/graph-correctness-entries/expected.txt b/test/statsCases/graph-correctness-entries/expected.txt
index 2c8c3c13e..7e50b63b5 100644
--- a/test/statsCases/graph-correctness-entries/expected.txt
+++ b/test/statsCases/graph-correctness-entries/expected.txt
@@ -1,19 +1,19 @@
 Entrypoint e1 = e1.js
 Entrypoint e2 = e2.js
 chunk    {0} c.js (c) 49 bytes <{3}> <{4}> >{1}< [rendered]
- [1] ./module-c.js 49 bytes {0} [built]
-     import() ./module-c [2] ./module-b.js 1:0-47
-     import() ./module-c [4] ./e2.js 1:0-47
+    [1] ./module-c.js 49 bytes {0} [built]
+        import() ./module-c [2] ./module-b.js 1:0-47
+        import() ./module-c [4] ./e2.js 1:0-47
 chunk    {1} a.js (a) 49 bytes <{0}> <{2}> >{4}< [rendered]
- [0] ./module-a.js 49 bytes {1} [built]
-     import() ./module-a [1] ./module-c.js 1:0-47
-     import() ./module-a [3] ./e1.js 1:0-47
+    [0] ./module-a.js 49 bytes {1} [built]
+        import() ./module-a [1] ./module-c.js 1:0-47
+        import() ./module-a [3] ./e1.js 1:0-47
 chunk    {2} e1.js (e1) 49 bytes >{1}< [entry] [rendered]
- [3] ./e1.js 49 bytes {2} [built]
-     single entry ./e1  e1
+    [3] ./e1.js 49 bytes {2} [built]
+        single entry ./e1  e1
 chunk    {3} e2.js (e2) 49 bytes >{0}< [entry] [rendered]
- [4] ./e2.js 49 bytes {3} [built]
-     single entry ./e2  e2
+    [4] ./e2.js 49 bytes {3} [built]
+        single entry ./e2  e2
 chunk    {4} b.js (b) 49 bytes <{1}> >{0}< [rendered]
- [2] ./module-b.js 49 bytes {4} [built]
-     import() ./module-b [0] ./module-a.js 1:0-47
\ No newline at end of file
+    [2] ./module-b.js 49 bytes {4} [built]
+        import() ./module-b [0] ./module-a.js 1:0-47
\ No newline at end of file
diff --git a/test/statsCases/graph-correctness-modules/expected.txt b/test/statsCases/graph-correctness-modules/expected.txt
index d19a2d2be..2f553c9ac 100644
--- a/test/statsCases/graph-correctness-modules/expected.txt
+++ b/test/statsCases/graph-correctness-modules/expected.txt
@@ -1,30 +1,30 @@
 Entrypoint e1 = e1.js
 Entrypoint e2 = e2.js
 chunk    {0} y.js (y) 0 bytes <{3}> <{4}> [rendered]
- [3] ./module-y.js 0 bytes {0} [built]
-     import() ./module-y [0] ./module-x.js 1:0-47
+    [3] ./module-y.js 0 bytes {0} [built]
+        import() ./module-y [0] ./module-x.js 1:0-47
 chunk    {1} c.js (c) 49 bytes <{4}> <{5}> >{2}< [rendered]
- [2] ./module-c.js 49 bytes {1} [built]
-     import() ./module-c [4] ./module-b.js 1:0-47
-     import() ./module-c [6] ./e2.js 2:0-47
+    [2] ./module-c.js 49 bytes {1} [built]
+        import() ./module-c [4] ./module-b.js 1:0-47
+        import() ./module-c [6] ./e2.js 2:0-47
 chunk    {2} a.js (a) 49 bytes <{1}> <{3}> >{5}< [rendered]
- [1] ./module-a.js 49 bytes {2} [built]
-     import() ./module-a [2] ./module-c.js 1:0-47
-     import() ./module-a [5] ./e1.js 2:0-47
+    [1] ./module-a.js 49 bytes {2} [built]
+        import() ./module-a [2] ./module-c.js 1:0-47
+        import() ./module-a [5] ./e1.js 2:0-47
 chunk    {3} e1.js (e1) 119 bytes >{0}< >{2}< [entry] [rendered]
- [0] ./module-x.js 49 bytes {3} {4} [built]
-     import() ./module-x [4] ./module-b.js 2:0-20
-     harmony side effect evaluation ./module-x [5] ./e1.js 1:0-20
-     harmony side effect evaluation ./module-x [6] ./e2.js 1:0-20
- [5] ./e1.js 70 bytes {3} [built]
-     single entry ./e1  e1
+    [0] ./module-x.js 49 bytes {3} {4} [built]
+        import() ./module-x [4] ./module-b.js 2:0-20
+        harmony side effect evaluation ./module-x [5] ./e1.js 1:0-20
+        harmony side effect evaluation ./module-x [6] ./e2.js 1:0-20
+    [5] ./e1.js 70 bytes {3} [built]
+        single entry ./e1  e1
 chunk    {4} e2.js (e2) 119 bytes >{0}< >{1}< [entry] [rendered]
- [0] ./module-x.js 49 bytes {3} {4} [built]
-     import() ./module-x [4] ./module-b.js 2:0-20
-     harmony side effect evaluation ./module-x [5] ./e1.js 1:0-20
-     harmony side effect evaluation ./module-x [6] ./e2.js 1:0-20
- [6] ./e2.js 70 bytes {4} [built]
-     single entry ./e2  e2
+    [0] ./module-x.js 49 bytes {3} {4} [built]
+        import() ./module-x [4] ./module-b.js 2:0-20
+        harmony side effect evaluation ./module-x [5] ./e1.js 1:0-20
+        harmony side effect evaluation ./module-x [6] ./e2.js 1:0-20
+    [6] ./e2.js 70 bytes {4} [built]
+        single entry ./e2  e2
 chunk    {5} b.js (b) 179 bytes <{2}> >{1}< [rendered]
- [4] ./module-b.js 179 bytes {5} [built]
-     import() ./module-b [1] ./module-a.js 1:0-47
\ No newline at end of file
+    [4] ./module-b.js 179 bytes {5} [built]
+        import() ./module-b [1] ./module-a.js 1:0-47
\ No newline at end of file
diff --git a/test/statsCases/import-context-filter/expected.txt b/test/statsCases/import-context-filter/expected.txt
index 9744cd091..1c9cc83bd 100644
--- a/test/statsCases/import-context-filter/expected.txt
+++ b/test/statsCases/import-context-filter/expected.txt
@@ -7,8 +7,8 @@ Built at: Thu Jan 01 1970 00:00:00 GMT
     2.js  308 bytes       2  [emitted]  
 entry.js    7.8 KiB       3  [emitted]  entry
 Entrypoint entry = entry.js
-[0] ./templates/bar.js 38 bytes {0} [optional] [built]
-[1] ./templates/baz.js 38 bytes {1} [optional] [built]
-[2] ./templates/foo.js 38 bytes {2} [optional] [built]
-[3] ./entry.js 450 bytes {3} [built]
-[4] ./templates lazy ^\.\/.*$ include: \.js$ exclude: \.noimport\.js$ namespace object 160 bytes {3} [optional] [built]
\ No newline at end of file
+   [0] ./templates/bar.js 38 bytes {0} [optional] [built]
+   [1] ./templates/baz.js 38 bytes {1} [optional] [built]
+   [2] ./templates/foo.js 38 bytes {2} [optional] [built]
+   [3] ./entry.js 450 bytes {3} [built]
+   [4] ./templates lazy ^\.\/.*$ include: \.js$ exclude: \.noimport\.js$ namespace object 160 bytes {3} [optional] [built]
\ No newline at end of file
diff --git a/test/statsCases/import-weak/expected.txt b/test/statsCases/import-weak/expected.txt
index 59bf9df59..921e5d9a7 100644
--- a/test/statsCases/import-weak/expected.txt
+++ b/test/statsCases/import-weak/expected.txt
@@ -5,6 +5,6 @@ Built at: Thu Jan 01 1970 00:00:00 GMT
     0.js  149 bytes       0  [emitted]  
 entry.js   7.79 KiB       1  [emitted]  entry
 Entrypoint entry = entry.js
-[0] ./modules/b.js 22 bytes {0} [built]
-[1] ./entry.js 120 bytes {1} [built]
-[2] ./modules/a.js 37 bytes [built]
\ No newline at end of file
+   [0] ./modules/b.js 22 bytes {0} [built]
+   [1] ./entry.js 120 bytes {1} [built]
+   [2] ./modules/a.js 37 bytes [built]
\ No newline at end of file
diff --git a/test/statsCases/limit-chunk-count-plugin/expected.txt b/test/statsCases/limit-chunk-count-plugin/expected.txt
index f6cd14a33..e7654d94f 100644
--- a/test/statsCases/limit-chunk-count-plugin/expected.txt
+++ b/test/statsCases/limit-chunk-count-plugin/expected.txt
@@ -7,12 +7,12 @@ Child 1 chunks:
     bundle.js  5.68 KiB       0  [emitted]  main
     Entrypoint main = bundle.js
     chunk    {0} bundle.js (main) 191 bytes <{0}> >{0}< [entry] [rendered]
-     [0] ./index.js 73 bytes {0} [built]
-     [1] ./a.js 22 bytes {0} [built]
-     [2] ./b.js 22 bytes {0} [built]
-     [3] ./c.js 30 bytes {0} [built]
-     [4] ./d.js 22 bytes {0} [built]
-     [5] ./e.js 22 bytes {0} [built]
+        [0] ./index.js 73 bytes {0} [built]
+        [1] ./a.js 22 bytes {0} [built]
+        [2] ./b.js 22 bytes {0} [built]
+        [3] ./c.js 30 bytes {0} [built]
+        [4] ./d.js 22 bytes {0} [built]
+        [5] ./e.js 22 bytes {0} [built]
 Child 2 chunks:
     Hash: f90c7b21ae5c6e853a0d
     Time: Xms
@@ -22,13 +22,13 @@ Child 2 chunks:
       bundle.js  7.19 KiB       1  [emitted]  main
     Entrypoint main = bundle.js
     chunk    {0} 0.bundle.js 118 bytes <{0}> <{1}> >{0}< [rendered]
-     [0] ./d.js 22 bytes {0} [built]
-     [1] ./e.js 22 bytes {0} [built]
-     [2] ./a.js 22 bytes {0} [built]
-     [3] ./b.js 22 bytes {0} [built]
-     [4] ./c.js 30 bytes {0} [built]
+        [0] ./d.js 22 bytes {0} [built]
+        [1] ./e.js 22 bytes {0} [built]
+        [2] ./a.js 22 bytes {0} [built]
+        [3] ./b.js 22 bytes {0} [built]
+        [4] ./c.js 30 bytes {0} [built]
     chunk    {1} bundle.js (main) 73 bytes >{0}< [entry] [rendered]
-     [5] ./index.js 73 bytes {1} [built]
+        [5] ./index.js 73 bytes {1} [built]
 Child 3 chunks:
     Hash: f3a313c9918d7d712c3f
     Time: Xms
@@ -39,14 +39,14 @@ Child 3 chunks:
       bundle.js   7.19 KiB       2  [emitted]  main
     Entrypoint main = bundle.js
     chunk    {0} 0.bundle.js 74 bytes <{0}> <{2}> >{0}< >{1}< [rendered]
-     [0] ./d.js 22 bytes {0} [built]
-     [2] ./a.js 22 bytes {0} [built]
-     [4] ./c.js 30 bytes {0} [built]
+        [0] ./d.js 22 bytes {0} [built]
+        [2] ./a.js 22 bytes {0} [built]
+        [4] ./c.js 30 bytes {0} [built]
     chunk    {1} 1.bundle.js 44 bytes <{0}> <{2}> [rendered]
-     [1] ./e.js 22 bytes {1} [built]
-     [3] ./b.js 22 bytes {1} [built]
+        [1] ./e.js 22 bytes {1} [built]
+        [3] ./b.js 22 bytes {1} [built]
     chunk    {2} bundle.js (main) 73 bytes >{0}< >{1}< [entry] [rendered]
-     [5] ./index.js 73 bytes {2} [built]
+        [5] ./index.js 73 bytes {2} [built]
 Child 4 chunks:
     Hash: 113bf580db9e5c6196ce
     Time: Xms
@@ -58,12 +58,12 @@ Child 4 chunks:
       bundle.js   7.19 KiB       3  [emitted]  main
     Entrypoint main = bundle.js
     chunk    {0} 0.bundle.js 44 bytes <{2}> <{3}> [rendered]
-     [0] ./d.js 22 bytes {0} [built]
-     [2] ./a.js 22 bytes {0} [built]
+        [0] ./d.js 22 bytes {0} [built]
+        [2] ./a.js 22 bytes {0} [built]
     chunk    {1} 1.bundle.js 44 bytes <{2}> <{3}> [rendered]
-     [1] ./e.js 22 bytes {1} [built]
-     [3] ./b.js 22 bytes {1} [built]
+        [1] ./e.js 22 bytes {1} [built]
+        [3] ./b.js 22 bytes {1} [built]
     chunk    {2} 2.bundle.js 30 bytes <{3}> >{0}< >{1}< [rendered]
-     [4] ./c.js 30 bytes {2} [built]
+        [4] ./c.js 30 bytes {2} [built]
     chunk    {3} bundle.js (main) 73 bytes >{0}< >{1}< >{2}< [entry] [rendered]
-     [5] ./index.js 73 bytes {3} [built]
\ No newline at end of file
+        [5] ./index.js 73 bytes {3} [built]
\ No newline at end of file
diff --git a/test/statsCases/max-modules-default/expected.txt b/test/statsCases/max-modules-default/expected.txt
index f8915ebb3..c888ec49f 100644
--- a/test/statsCases/max-modules-default/expected.txt
+++ b/test/statsCases/max-modules-default/expected.txt
@@ -4,19 +4,19 @@ Built at: Thu Jan 01 1970 00:00:00 GMT
   Asset      Size  Chunks             Chunk Names
 main.js  5.85 KiB       0  [emitted]  main
 Entrypoint main = main.js
- [0] ./a.js?1 33 bytes {0} [built]
- [1] ./a.js?2 33 bytes {0} [built]
- [2] ./a.js?3 33 bytes {0} [built]
- [3] ./a.js?4 33 bytes {0} [built]
- [4] ./a.js?5 33 bytes {0} [built]
- [5] ./a.js?6 33 bytes {0} [built]
- [6] ./a.js?7 33 bytes {0} [built]
- [7] ./a.js?8 33 bytes {0} [built]
- [8] ./a.js?9 33 bytes {0} [built]
- [9] ./a.js?10 33 bytes {0} [built]
-[10] ./index.js 181 bytes {0} [built]
-[11] ./c.js?1 33 bytes {0} [built]
-[13] ./c.js?2 33 bytes {0} [built]
-[27] ./c.js?9 33 bytes {0} [built]
-[29] ./c.js?10 33 bytes {0} [built]
+   [0] ./a.js?1 33 bytes {0} [built]
+   [1] ./a.js?2 33 bytes {0} [built]
+   [2] ./a.js?3 33 bytes {0} [built]
+   [3] ./a.js?4 33 bytes {0} [built]
+   [4] ./a.js?5 33 bytes {0} [built]
+   [5] ./a.js?6 33 bytes {0} [built]
+   [6] ./a.js?7 33 bytes {0} [built]
+   [7] ./a.js?8 33 bytes {0} [built]
+   [8] ./a.js?9 33 bytes {0} [built]
+   [9] ./a.js?10 33 bytes {0} [built]
+  [10] ./index.js 181 bytes {0} [built]
+  [11] ./c.js?1 33 bytes {0} [built]
+  [13] ./c.js?2 33 bytes {0} [built]
+  [27] ./c.js?9 33 bytes {0} [built]
+  [29] ./c.js?10 33 bytes {0} [built]
     + 16 hidden modules
\ No newline at end of file
diff --git a/test/statsCases/max-modules/expected.txt b/test/statsCases/max-modules/expected.txt
index 653fca302..a068d73d8 100644
--- a/test/statsCases/max-modules/expected.txt
+++ b/test/statsCases/max-modules/expected.txt
@@ -4,24 +4,24 @@ Built at: Thu Jan 01 1970 00:00:00 GMT
   Asset      Size  Chunks             Chunk Names
 main.js  5.85 KiB       0  [emitted]  main
 Entrypoint main = main.js
- [0] ./a.js?1 33 bytes {0} [built]
- [1] ./a.js?2 33 bytes {0} [built]
- [2] ./a.js?3 33 bytes {0} [built]
- [3] ./a.js?4 33 bytes {0} [built]
- [4] ./a.js?5 33 bytes {0} [built]
- [5] ./a.js?6 33 bytes {0} [built]
- [6] ./a.js?7 33 bytes {0} [built]
- [7] ./a.js?8 33 bytes {0} [built]
- [8] ./a.js?9 33 bytes {0} [built]
- [9] ./a.js?10 33 bytes {0} [built]
-[10] ./index.js 181 bytes {0} [built]
-[11] ./c.js?1 33 bytes {0} [built]
-[13] ./c.js?2 33 bytes {0} [built]
-[15] ./c.js?3 33 bytes {0} [built]
-[17] ./c.js?4 33 bytes {0} [built]
-[19] ./c.js?5 33 bytes {0} [built]
-[23] ./c.js?7 33 bytes {0} [built]
-[25] ./c.js?8 33 bytes {0} [built]
-[27] ./c.js?9 33 bytes {0} [built]
-[29] ./c.js?10 33 bytes {0} [built]
+   [0] ./a.js?1 33 bytes {0} [built]
+   [1] ./a.js?2 33 bytes {0} [built]
+   [2] ./a.js?3 33 bytes {0} [built]
+   [3] ./a.js?4 33 bytes {0} [built]
+   [4] ./a.js?5 33 bytes {0} [built]
+   [5] ./a.js?6 33 bytes {0} [built]
+   [6] ./a.js?7 33 bytes {0} [built]
+   [7] ./a.js?8 33 bytes {0} [built]
+   [8] ./a.js?9 33 bytes {0} [built]
+   [9] ./a.js?10 33 bytes {0} [built]
+  [10] ./index.js 181 bytes {0} [built]
+  [11] ./c.js?1 33 bytes {0} [built]
+  [13] ./c.js?2 33 bytes {0} [built]
+  [15] ./c.js?3 33 bytes {0} [built]
+  [17] ./c.js?4 33 bytes {0} [built]
+  [19] ./c.js?5 33 bytes {0} [built]
+  [23] ./c.js?7 33 bytes {0} [built]
+  [25] ./c.js?8 33 bytes {0} [built]
+  [27] ./c.js?9 33 bytes {0} [built]
+  [29] ./c.js?10 33 bytes {0} [built]
     + 11 hidden modules
\ No newline at end of file
diff --git a/test/statsCases/module-assets/expected.txt b/test/statsCases/module-assets/expected.txt
index bb8da025e..bd2e4fb34 100644
--- a/test/statsCases/module-assets/expected.txt
+++ b/test/statsCases/module-assets/expected.txt
@@ -3,10 +3,10 @@ Time: Xms
 Built at: Thu Jan 01 1970 00:00:00 GMT
 Entrypoint main = main.js
 chunk    {0} 0.js 68 bytes <{1}> [rendered]
- [0] ./node_modules/a/1.png 51 bytes {0} [built] [1 asset]
- [1] ./node_modules/a/index.js 17 bytes {0} [built]
+    [0] ./node_modules/a/1.png 51 bytes {0} [built] [1 asset]
+    [1] ./node_modules/a/index.js 17 bytes {0} [built]
 chunk    {1} main.js (main) 12 bytes >{0}< [entry] [rendered]
- [2] ./index.js 12 bytes {1} [built]
-[0] ./node_modules/a/1.png 51 bytes {0} [built] [1 asset]
-[1] ./node_modules/a/index.js 17 bytes {0} [built]
-[2] ./index.js 12 bytes {1} [built]
\ No newline at end of file
+    [2] ./index.js 12 bytes {1} [built]
+   [0] ./node_modules/a/1.png 51 bytes {0} [built] [1 asset]
+   [1] ./node_modules/a/index.js 17 bytes {0} [built]
+   [2] ./index.js 12 bytes {1} [built]
\ No newline at end of file
diff --git a/test/statsCases/module-deduplication-named/expected.txt b/test/statsCases/module-deduplication-named/expected.txt
index 670bcf76e..66b586f78 100644
--- a/test/statsCases/module-deduplication-named/expected.txt
+++ b/test/statsCases/module-deduplication-named/expected.txt
@@ -9,29 +9,29 @@ Entrypoint e1 = e1.js
 Entrypoint e2 = e2.js
 Entrypoint e3 = e3.js
 chunk    {0} async3.js (async3) 89 bytes <{2}> <{5}> >{1}< [rendered]
- [4] ./h.js 9 bytes {0} {5} [built]
- [7] ./async3.js 80 bytes {0} [built]
+    [4] ./h.js 9 bytes {0} {5} [built]
+    [7] ./async3.js 80 bytes {0} [built]
 chunk    {1} async1.js (async1) 89 bytes <{0}> <{3}> >{2}< [rendered]
- [2] ./d.js 9 bytes {1} {3} [built]
- [5] ./async1.js 80 bytes {1} [built]
+    [2] ./d.js 9 bytes {1} {3} [built]
+    [5] ./async1.js 80 bytes {1} [built]
 chunk    {2} async2.js (async2) 89 bytes <{1}> <{4}> >{0}< [rendered]
- [3] ./f.js 9 bytes {2} {4} [built]
- [6] ./async2.js 80 bytes {2} [built]
+    [3] ./f.js 9 bytes {2} {4} [built]
+    [6] ./async2.js 80 bytes {2} [built]
 chunk    {3} e1.js (e1) 144 bytes >{1}< [entry] [rendered]
- [0] ./b.js 9 bytes {3} {4} {5} [built]
- [1] ./a.js 9 bytes {3} {4} {5} [built]
- [2] ./d.js 9 bytes {1} {3} [built]
- [8] ./e1.js 108 bytes {3} [built]
- [9] ./c.js 9 bytes {3} [built]
+    [0] ./b.js 9 bytes {3} {4} {5} [built]
+    [1] ./a.js 9 bytes {3} {4} {5} [built]
+    [2] ./d.js 9 bytes {1} {3} [built]
+    [8] ./e1.js 108 bytes {3} [built]
+    [9] ./c.js 9 bytes {3} [built]
 chunk    {4} e2.js (e2) 144 bytes >{2}< [entry] [rendered]
-  [0] ./b.js 9 bytes {3} {4} {5} [built]
-  [1] ./a.js 9 bytes {3} {4} {5} [built]
-  [3] ./f.js 9 bytes {2} {4} [built]
- [10] ./e2.js 108 bytes {4} [built]
- [11] ./e.js 9 bytes {4} [built]
+    [0] ./b.js 9 bytes {3} {4} {5} [built]
+    [1] ./a.js 9 bytes {3} {4} {5} [built]
+    [3] ./f.js 9 bytes {2} {4} [built]
+   [10] ./e2.js 108 bytes {4} [built]
+   [11] ./e.js 9 bytes {4} [built]
 chunk    {5} e3.js (e3) 144 bytes >{0}< [entry] [rendered]
-  [0] ./b.js 9 bytes {3} {4} {5} [built]
-  [1] ./a.js 9 bytes {3} {4} {5} [built]
-  [4] ./h.js 9 bytes {0} {5} [built]
- [12] ./e3.js 108 bytes {5} [built]
- [13] ./g.js 9 bytes {5} [built]
\ No newline at end of file
+    [0] ./b.js 9 bytes {3} {4} {5} [built]
+    [1] ./a.js 9 bytes {3} {4} {5} [built]
+    [4] ./h.js 9 bytes {0} {5} [built]
+   [12] ./e3.js 108 bytes {5} [built]
+   [13] ./g.js 9 bytes {5} [built]
\ No newline at end of file
diff --git a/test/statsCases/module-deduplication/expected.txt b/test/statsCases/module-deduplication/expected.txt
index fe5cd0993..f9a25238a 100644
--- a/test/statsCases/module-deduplication/expected.txt
+++ b/test/statsCases/module-deduplication/expected.txt
@@ -12,35 +12,35 @@ Entrypoint e1 = e1.js
 Entrypoint e2 = e2.js
 Entrypoint e3 = e3.js
 chunk    {0} 0.js 37 bytes <{7}> <{8}> [rendered]
- [2] ./d.js 9 bytes {0} {6} [built]
- [5] ./async1.js 28 bytes {0} {5} [built]
+    [2] ./d.js 9 bytes {0} {6} [built]
+    [5] ./async1.js 28 bytes {0} {5} [built]
 chunk    {1} 1.js 37 bytes <{6}> <{8}> [rendered]
- [3] ./f.js 9 bytes {1} {7} [built]
- [6] ./async2.js 28 bytes {1} {4} [built]
+    [3] ./f.js 9 bytes {1} {7} [built]
+    [6] ./async2.js 28 bytes {1} {4} [built]
 chunk    {2} 2.js 37 bytes <{6}> <{7}> [rendered]
- [4] ./h.js 9 bytes {2} {8} [built]
- [7] ./async3.js 28 bytes {2} {3} [built]
+    [4] ./h.js 9 bytes {2} {8} [built]
+    [7] ./async3.js 28 bytes {2} {3} [built]
 chunk    {3} 3.js 28 bytes <{8}> [rendered]
- [7] ./async3.js 28 bytes {2} {3} [built]
+    [7] ./async3.js 28 bytes {2} {3} [built]
 chunk    {4} 4.js 28 bytes <{7}> [rendered]
- [6] ./async2.js 28 bytes {1} {4} [built]
+    [6] ./async2.js 28 bytes {1} {4} [built]
 chunk    {5} 5.js 28 bytes <{6}> [rendered]
- [5] ./async1.js 28 bytes {0} {5} [built]
+    [5] ./async1.js 28 bytes {0} {5} [built]
 chunk    {6} e1.js (e1) 152 bytes >{1}< >{2}< >{5}< [entry] [rendered]
- [0] ./b.js 9 bytes {6} {7} {8} [built]
- [1] ./a.js 9 bytes {6} {7} {8} [built]
- [2] ./d.js 9 bytes {0} {6} [built]
- [8] ./e1.js 116 bytes {6} [built]
- [9] ./c.js 9 bytes {6} [built]
+    [0] ./b.js 9 bytes {6} {7} {8} [built]
+    [1] ./a.js 9 bytes {6} {7} {8} [built]
+    [2] ./d.js 9 bytes {0} {6} [built]
+    [8] ./e1.js 116 bytes {6} [built]
+    [9] ./c.js 9 bytes {6} [built]
 chunk    {7} e2.js (e2) 152 bytes >{0}< >{2}< >{4}< [entry] [rendered]
-  [0] ./b.js 9 bytes {6} {7} {8} [built]
-  [1] ./a.js 9 bytes {6} {7} {8} [built]
-  [3] ./f.js 9 bytes {1} {7} [built]
- [10] ./e2.js 116 bytes {7} [built]
- [11] ./e.js 9 bytes {7} [built]
+    [0] ./b.js 9 bytes {6} {7} {8} [built]
+    [1] ./a.js 9 bytes {6} {7} {8} [built]
+    [3] ./f.js 9 bytes {1} {7} [built]
+   [10] ./e2.js 116 bytes {7} [built]
+   [11] ./e.js 9 bytes {7} [built]
 chunk    {8} e3.js (e3) 152 bytes >{0}< >{1}< >{3}< [entry] [rendered]
-  [0] ./b.js 9 bytes {6} {7} {8} [built]
-  [1] ./a.js 9 bytes {6} {7} {8} [built]
-  [4] ./h.js 9 bytes {2} {8} [built]
- [12] ./e3.js 116 bytes {8} [built]
- [13] ./g.js 9 bytes {8} [built]
\ No newline at end of file
+    [0] ./b.js 9 bytes {6} {7} {8} [built]
+    [1] ./a.js 9 bytes {6} {7} {8} [built]
+    [4] ./h.js 9 bytes {2} {8} [built]
+   [12] ./e3.js 116 bytes {8} [built]
+   [13] ./g.js 9 bytes {8} [built]
\ No newline at end of file
diff --git a/test/statsCases/module-trace-disabled-in-error/expected.txt b/test/statsCases/module-trace-disabled-in-error/expected.txt
index 4331cd169..103e60f89 100644
--- a/test/statsCases/module-trace-disabled-in-error/expected.txt
+++ b/test/statsCases/module-trace-disabled-in-error/expected.txt
@@ -3,7 +3,7 @@ Built at: Thu Jan 01 1970 00:00:00 GMT
   Asset      Size  Chunks  Chunk Names
 main.js  2.79 KiB       0  main
 Entrypoint main = main.js
-[0] ./index.js 25 bytes {0} [built]
+   [0] ./index.js 25 bytes {0} [built]
 
 ERROR in ./index.js
 Module not found: Error: Can't resolve 'does-not-exist' in 'Xdir/module-trace-disabled-in-error'
\ No newline at end of file
diff --git a/test/statsCases/module-trace-enabled-in-error/expected.txt b/test/statsCases/module-trace-enabled-in-error/expected.txt
index 8b4bf5134..d76fcbffa 100644
--- a/test/statsCases/module-trace-enabled-in-error/expected.txt
+++ b/test/statsCases/module-trace-enabled-in-error/expected.txt
@@ -3,7 +3,7 @@ Built at: Thu Jan 01 1970 00:00:00 GMT
   Asset      Size  Chunks  Chunk Names
 main.js  2.79 KiB       0  main
 Entrypoint main = main.js
-[0] ./index.js 25 bytes {0} [built]
+   [0] ./index.js 25 bytes {0} [built]
 
 ERROR in ./index.js
 Module not found: Error: Can't resolve 'does-not-exist' in 'Xdir/module-trace-enabled-in-error'
diff --git a/test/statsCases/named-chunks-plugin-async/expected.txt b/test/statsCases/named-chunks-plugin-async/expected.txt
index 23359057f..f5d8b300c 100644
--- a/test/statsCases/named-chunks-plugin-async/expected.txt
+++ b/test/statsCases/named-chunks-plugin-async/expected.txt
@@ -6,6 +6,6 @@ chunk-containing-__a_js.js  509 bytes  chunk-containing-__a_js  [emitted]
 chunk-containing-__b_js.js  173 bytes  chunk-containing-__b_js  [emitted]  
                   entry.js   7.28 KiB                    entry  [emitted]  entry
 Entrypoint entry = entry.js
-[0] ./modules/b.js 22 bytes {chunk-containing-__b_js} [built]
-[1] ./modules/a.js 37 bytes {chunk-containing-__a_js} [built]
-[2] ./entry.js 47 bytes {entry} [built]
\ No newline at end of file
+   [0] ./modules/b.js 22 bytes {chunk-containing-__b_js} [built]
+   [1] ./modules/a.js 37 bytes {chunk-containing-__a_js} [built]
+   [2] ./entry.js 47 bytes {entry} [built]
\ No newline at end of file
diff --git a/test/statsCases/no-emit-on-errors-plugin-with-child-error/expected.txt b/test/statsCases/no-emit-on-errors-plugin-with-child-error/expected.txt
index 72101dbc3..514bf18be 100644
--- a/test/statsCases/no-emit-on-errors-plugin-with-child-error/expected.txt
+++ b/test/statsCases/no-emit-on-errors-plugin-with-child-error/expected.txt
@@ -5,7 +5,7 @@ Built at: Thu Jan 01 1970 00:00:00 GMT
  child.js  2.61 KiB          
 bundle.js  2.61 KiB       0  main
 Entrypoint main = bundle.js
-[0] ./index.js 0 bytes {0} [built]
+   [0] ./index.js 0 bytes {0} [built]
 
 WARNING in configuration
 The 'mode' option has not been set, webpack will fallback to 'production' for this value. Set 'mode' option to 'development' or 'production' to enable defaults for each environment.
@@ -14,6 +14,6 @@ Child child:
        Asset      Size  Chunks  Chunk Names
     child.js  2.61 KiB       0  child
     Entrypoint child = child.js
-    [0] ./index.js 0 bytes {0} [built]
+       [0] ./index.js 0 bytes {0} [built]
     
     ERROR in forced error
\ No newline at end of file
diff --git a/test/statsCases/optimize-chunks/expected.txt b/test/statsCases/optimize-chunks/expected.txt
index c75ed93a6..34f15dbf8 100644
--- a/test/statsCases/optimize-chunks/expected.txt
+++ b/test/statsCases/optimize-chunks/expected.txt
@@ -15,33 +15,33 @@ chunk    {0} cir1.js (cir1) 81 bytes <{3}> <{4}> <{5}> >{5}< [rendered]
     > [3] ./circular2.js 1:0-79
     > [3] ./circular2.js 1:0-79
     > [8] ./index.js 13:0-54
- [2] ./circular1.js 81 bytes {0} [built]
+    [2] ./circular1.js 81 bytes {0} [built]
 chunk    {1} ab.js (ab) 0 bytes <{4}> >{7}< [rendered]
     > [8] ./index.js 1:0-6:8
- [0] ./modules/a.js 0 bytes {1} {2} [built]
- [1] ./modules/b.js 0 bytes {1} {2} [built]
+    [0] ./modules/a.js 0 bytes {1} {2} [built]
+    [1] ./modules/b.js 0 bytes {1} {2} [built]
 chunk    {2} abd.js (abd) 0 bytes <{4}> >{6}< [rendered]
     > [8] ./index.js 8:0-11:9
- [0] ./modules/a.js 0 bytes {1} {2} [built]
- [1] ./modules/b.js 0 bytes {1} {2} [built]
- [6] ./modules/d.js 0 bytes {2} {6} [built]
+    [0] ./modules/a.js 0 bytes {1} {2} [built]
+    [1] ./modules/b.js 0 bytes {1} {2} [built]
+    [6] ./modules/d.js 0 bytes {2} {6} [built]
 chunk    {3} cir2.js (cir2) 81 bytes <{4}> >{0}< [rendered]
     > [8] ./index.js 14:0-54
- [3] ./circular2.js 81 bytes {3} {5} [built]
+    [3] ./circular2.js 81 bytes {3} {5} [built]
 chunk    {4} main.js (main) 523 bytes >{0}< >{1}< >{2}< >{3}< [entry] [rendered]
     > ./index main
- [4] ./modules/f.js 0 bytes {4} [built]
- [8] ./index.js 523 bytes {4} [built]
+    [4] ./modules/f.js 0 bytes {4} [built]
+    [8] ./index.js 523 bytes {4} [built]
 chunk    {5} cir2 from cir1.js (cir2 from cir1) 81 bytes <{0}> >{0}< [rendered]
     > [2] ./circular1.js 1:0-79
     > [2] ./circular1.js 1:0-79
- [3] ./circular2.js 81 bytes {3} {5} [built]
- [7] ./modules/e.js 0 bytes {5} [built]
+    [3] ./circular2.js 81 bytes {3} {5} [built]
+    [7] ./modules/e.js 0 bytes {5} [built]
 chunk    {6} chunk.js (chunk) 0 bytes <{2}> <{7}> [rendered]
     > [8] ./index.js 3:2-4:13
     > [8] ./index.js 9:1-10:12
- [5] ./modules/c.js 0 bytes {6} {7} [built]
- [6] ./modules/d.js 0 bytes {2} {6} [built]
+    [5] ./modules/c.js 0 bytes {6} {7} [built]
+    [6] ./modules/d.js 0 bytes {2} {6} [built]
 chunk    {7} ac in ab.js (ac in ab) 0 bytes <{1}> >{6}< [rendered]
     > [8] ./index.js 2:1-5:15
- [5] ./modules/c.js 0 bytes {6} {7} [built]
\ No newline at end of file
+    [5] ./modules/c.js 0 bytes {6} {7} [built]
\ No newline at end of file
diff --git a/test/statsCases/parse-error/expected.txt b/test/statsCases/parse-error/expected.txt
index fb2938a35..9415f39a1 100644
--- a/test/statsCases/parse-error/expected.txt
+++ b/test/statsCases/parse-error/expected.txt
@@ -1,10 +1,10 @@
   Asset      Size  Chunks  Chunk Names
 main.js  3.05 KiB       0  main
 Entrypoint main = main.js
-[0] ./b.js 169 bytes {0} [built] [failed] [1 error]
-[1] ./index.js + 1 modules 35 bytes {0} [built]
-    | ./index.js 15 bytes [built]
-    | ./a.js 15 bytes [built]
+   [0] ./b.js 169 bytes {0} [built] [failed] [1 error]
+   [1] ./index.js + 1 modules 35 bytes {0} [built]
+       | ./index.js 15 bytes [built]
+       | ./a.js 15 bytes [built]
 
 ERROR in ./b.js
 Module parse failed: Unexpected token (6:7)
diff --git a/test/statsCases/performance-different-mode-and-target/expected.txt b/test/statsCases/performance-different-mode-and-target/expected.txt
index 56a60aab9..9aaff8332 100644
--- a/test/statsCases/performance-different-mode-and-target/expected.txt
+++ b/test/statsCases/performance-different-mode-and-target/expected.txt
@@ -6,7 +6,7 @@ Child
                  Asset     Size  Chunks                    Chunk Names
     warning.pro-web.js  296 KiB       0  [emitted]  [big]  main
     Entrypoint main [big] = warning.pro-web.js
-    [0] ./index.js 293 KiB {0} [built]
+       [0] ./index.js 293 KiB {0} [built]
     
     WARNING in asset size limit: The following asset(s) exceed the recommended size limit (244 KiB).
     This can impact web performance.
@@ -29,7 +29,7 @@ Child
                        Asset     Size  Chunks                    Chunk Names
     warning.pro-webworker.js  296 KiB       0  [emitted]  [big]  main
     Entrypoint main [big] = warning.pro-webworker.js
-    [0] ./index.js 293 KiB {0} [built]
+       [0] ./index.js 293 KiB {0} [built]
     
     WARNING in asset size limit: The following asset(s) exceed the recommended size limit (244 KiB).
     This can impact web performance.
@@ -52,7 +52,7 @@ Child
                      Asset     Size  Chunks             Chunk Names
     no-warning.pro-node.js  296 KiB       0  [emitted]  main
     Entrypoint main = no-warning.pro-node.js
-    [0] ./index.js 293 KiB {0} [built]
+       [0] ./index.js 293 KiB {0} [built]
 Child
     Hash: 23ef01d5f7db6f7b0912
     Time: Xms
@@ -84,7 +84,7 @@ Child
                                  Asset     Size  Chunks                    Chunk Names
     warning.pro-node-with-hints-set.js  296 KiB       0  [emitted]  [big]  main
     Entrypoint main [big] = warning.pro-node-with-hints-set.js
-    [0] ./index.js 293 KiB {0} [built]
+       [0] ./index.js 293 KiB {0} [built]
     
     WARNING in asset size limit: The following asset(s) exceed the recommended size limit (244 KiB).
     This can impact web performance.
diff --git a/test/statsCases/performance-disabled/expected.txt b/test/statsCases/performance-disabled/expected.txt
index 8747d941a..311838388 100644
--- a/test/statsCases/performance-disabled/expected.txt
+++ b/test/statsCases/performance-disabled/expected.txt
@@ -6,9 +6,9 @@ Built at: Thu Jan 01 1970 <CLR=BOLD>00:00:00</CLR> GMT
 <CLR=32,BOLD>main.js</CLR>    300 KiB       <CLR=BOLD>2</CLR>  <CLR=32,BOLD>[emitted]</CLR>  main
    <CLR=32,BOLD>3.js</CLR>  227 bytes       <CLR=BOLD>3</CLR>  <CLR=32,BOLD>[emitted]</CLR>  
 Entrypoint <CLR=BOLD>main</CLR> = <CLR=32,BOLD>main.js</CLR>
-[0] <CLR=BOLD>./d.js</CLR> 22 bytes {<CLR=33,BOLD>3</CLR>}<CLR=32,BOLD> [built]</CLR>
-[1] <CLR=BOLD>./e.js</CLR> 22 bytes {<CLR=33,BOLD>3</CLR>}<CLR=32,BOLD> [built]</CLR>
-[2] <CLR=BOLD>./b.js</CLR> 22 bytes {<CLR=33,BOLD>0</CLR>}<CLR=32,BOLD> [built]</CLR>
-[3] <CLR=BOLD>./c.js</CLR> 54 bytes {<CLR=33,BOLD>1</CLR>}<CLR=32,BOLD> [built]</CLR>
-[4] <CLR=BOLD>./index.js</CLR> 52 bytes {<CLR=33,BOLD>2</CLR>}<CLR=32,BOLD> [built]</CLR>
-[5] <CLR=BOLD>./a.js</CLR> 293 KiB {<CLR=33,BOLD>2</CLR>}<CLR=32,BOLD> [built]</CLR>
\ No newline at end of file
+   [0] <CLR=BOLD>./d.js</CLR> 22 bytes {<CLR=33,BOLD>3</CLR>}<CLR=32,BOLD> [built]</CLR>
+   [1] <CLR=BOLD>./e.js</CLR> 22 bytes {<CLR=33,BOLD>3</CLR>}<CLR=32,BOLD> [built]</CLR>
+   [2] <CLR=BOLD>./b.js</CLR> 22 bytes {<CLR=33,BOLD>0</CLR>}<CLR=32,BOLD> [built]</CLR>
+   [3] <CLR=BOLD>./c.js</CLR> 54 bytes {<CLR=33,BOLD>1</CLR>}<CLR=32,BOLD> [built]</CLR>
+   [4] <CLR=BOLD>./index.js</CLR> 52 bytes {<CLR=33,BOLD>2</CLR>}<CLR=32,BOLD> [built]</CLR>
+   [5] <CLR=BOLD>./a.js</CLR> 293 KiB {<CLR=33,BOLD>2</CLR>}<CLR=32,BOLD> [built]</CLR>
\ No newline at end of file
diff --git a/test/statsCases/performance-error/expected.txt b/test/statsCases/performance-error/expected.txt
index bb67d7656..f9b67149c 100644
--- a/test/statsCases/performance-error/expected.txt
+++ b/test/statsCases/performance-error/expected.txt
@@ -6,12 +6,12 @@ Built at: Thu Jan 01 1970 <CLR=BOLD>00:00:00</CLR> GMT
 <CLR=33,BOLD>main.js</CLR>    <CLR=33,BOLD>300 KiB</CLR>       <CLR=BOLD>2</CLR>  <CLR=32,BOLD>[emitted]</CLR>  <CLR=33,BOLD>[big]</CLR>  main
    <CLR=32,BOLD>3.js</CLR>  227 bytes       <CLR=BOLD>3</CLR>  <CLR=32,BOLD>[emitted]</CLR>         
 Entrypoint <CLR=BOLD>main</CLR> <CLR=33,BOLD>[big]</CLR> = <CLR=32,BOLD>main.js</CLR>
-[0] <CLR=BOLD>./d.js</CLR> 22 bytes {<CLR=33,BOLD>3</CLR>}<CLR=32,BOLD> [built]</CLR>
-[1] <CLR=BOLD>./e.js</CLR> 22 bytes {<CLR=33,BOLD>3</CLR>}<CLR=32,BOLD> [built]</CLR>
-[2] <CLR=BOLD>./b.js</CLR> 22 bytes {<CLR=33,BOLD>0</CLR>}<CLR=32,BOLD> [built]</CLR>
-[3] <CLR=BOLD>./c.js</CLR> 54 bytes {<CLR=33,BOLD>1</CLR>}<CLR=32,BOLD> [built]</CLR>
-[4] <CLR=BOLD>./index.js</CLR> 52 bytes {<CLR=33,BOLD>2</CLR>}<CLR=32,BOLD> [built]</CLR>
-[5] <CLR=BOLD>./a.js</CLR> 293 KiB {<CLR=33,BOLD>2</CLR>}<CLR=32,BOLD> [built]</CLR>
+   [0] <CLR=BOLD>./d.js</CLR> 22 bytes {<CLR=33,BOLD>3</CLR>}<CLR=32,BOLD> [built]</CLR>
+   [1] <CLR=BOLD>./e.js</CLR> 22 bytes {<CLR=33,BOLD>3</CLR>}<CLR=32,BOLD> [built]</CLR>
+   [2] <CLR=BOLD>./b.js</CLR> 22 bytes {<CLR=33,BOLD>0</CLR>}<CLR=32,BOLD> [built]</CLR>
+   [3] <CLR=BOLD>./c.js</CLR> 54 bytes {<CLR=33,BOLD>1</CLR>}<CLR=32,BOLD> [built]</CLR>
+   [4] <CLR=BOLD>./index.js</CLR> 52 bytes {<CLR=33,BOLD>2</CLR>}<CLR=32,BOLD> [built]</CLR>
+   [5] <CLR=BOLD>./a.js</CLR> 293 KiB {<CLR=33,BOLD>2</CLR>}<CLR=32,BOLD> [built]</CLR>
 
 <CLR=31,BOLD>ERROR in asset size limit: The following asset(s) exceed the recommended size limit (244 KiB).
 This can impact web performance.
diff --git a/test/statsCases/performance-no-async-chunks-shown/expected.txt b/test/statsCases/performance-no-async-chunks-shown/expected.txt
index d3e498d8a..1ec302a09 100644
--- a/test/statsCases/performance-no-async-chunks-shown/expected.txt
+++ b/test/statsCases/performance-no-async-chunks-shown/expected.txt
@@ -5,12 +5,12 @@ Built at: Thu Jan 01 1970 <CLR=BOLD>00:00:00</CLR> GMT
  <CLR=32,BOLD>sec.js</CLR>  2.95 KiB       <CLR=BOLD>1</CLR>  <CLR=32,BOLD>[emitted]</CLR>         sec
 Entrypoint <CLR=BOLD>main</CLR> <CLR=33,BOLD>[big]</CLR> = <CLR=32,BOLD>main.js</CLR>
 Entrypoint <CLR=BOLD>sec</CLR> = <CLR=32,BOLD>sec.js</CLR>
-[0] <CLR=BOLD>./b.js</CLR> 22 bytes {<CLR=33,BOLD>0</CLR>} {<CLR=33,BOLD>1</CLR>}<CLR=32,BOLD> [built]</CLR>
-[1] <CLR=BOLD>./index.js</CLR> 32 bytes {<CLR=33,BOLD>0</CLR>}<CLR=32,BOLD> [built]</CLR>
-[2] <CLR=BOLD>./a.js</CLR> 293 KiB {<CLR=33,BOLD>0</CLR>}<CLR=32,BOLD> [built]</CLR>
-[3] <CLR=BOLD>./index2.js</CLR> 48 bytes {<CLR=33,BOLD>1</CLR>}<CLR=32,BOLD> [built]</CLR>
-[4] <CLR=BOLD>./c.js</CLR> 22 bytes {<CLR=33,BOLD>1</CLR>}<CLR=32,BOLD> [built]</CLR>
-[5] <CLR=BOLD>./d.js</CLR> 22 bytes {<CLR=33,BOLD>1</CLR>}<CLR=32,BOLD> [built]</CLR>
+   [0] <CLR=BOLD>./b.js</CLR> 22 bytes {<CLR=33,BOLD>0</CLR>} {<CLR=33,BOLD>1</CLR>}<CLR=32,BOLD> [built]</CLR>
+   [1] <CLR=BOLD>./index.js</CLR> 32 bytes {<CLR=33,BOLD>0</CLR>}<CLR=32,BOLD> [built]</CLR>
+   [2] <CLR=BOLD>./a.js</CLR> 293 KiB {<CLR=33,BOLD>0</CLR>}<CLR=32,BOLD> [built]</CLR>
+   [3] <CLR=BOLD>./index2.js</CLR> 48 bytes {<CLR=33,BOLD>1</CLR>}<CLR=32,BOLD> [built]</CLR>
+   [4] <CLR=BOLD>./c.js</CLR> 22 bytes {<CLR=33,BOLD>1</CLR>}<CLR=32,BOLD> [built]</CLR>
+   [5] <CLR=BOLD>./d.js</CLR> 22 bytes {<CLR=33,BOLD>1</CLR>}<CLR=32,BOLD> [built]</CLR>
 
 <CLR=33,BOLD>WARNING in asset size limit: The following asset(s) exceed the recommended size limit (244 KiB).
 This can impact web performance.
diff --git a/test/statsCases/performance-no-hints/expected.txt b/test/statsCases/performance-no-hints/expected.txt
index 1181b98c5..00f1efafc 100644
--- a/test/statsCases/performance-no-hints/expected.txt
+++ b/test/statsCases/performance-no-hints/expected.txt
@@ -6,9 +6,9 @@ Built at: Thu Jan 01 1970 <CLR=BOLD>00:00:00</CLR> GMT
 <CLR=33,BOLD>main.js</CLR>    <CLR=33,BOLD>300 KiB</CLR>       <CLR=BOLD>2</CLR>  <CLR=32,BOLD>[emitted]</CLR>  <CLR=33,BOLD>[big]</CLR>  main
    <CLR=32,BOLD>3.js</CLR>  227 bytes       <CLR=BOLD>3</CLR>  <CLR=32,BOLD>[emitted]</CLR>         
 Entrypoint <CLR=BOLD>main</CLR> <CLR=33,BOLD>[big]</CLR> = <CLR=32,BOLD>main.js</CLR>
-[0] <CLR=BOLD>./d.js</CLR> 22 bytes {<CLR=33,BOLD>3</CLR>}<CLR=32,BOLD> [built]</CLR>
-[1] <CLR=BOLD>./e.js</CLR> 22 bytes {<CLR=33,BOLD>3</CLR>}<CLR=32,BOLD> [built]</CLR>
-[2] <CLR=BOLD>./b.js</CLR> 22 bytes {<CLR=33,BOLD>0</CLR>}<CLR=32,BOLD> [built]</CLR>
-[3] <CLR=BOLD>./c.js</CLR> 54 bytes {<CLR=33,BOLD>1</CLR>}<CLR=32,BOLD> [built]</CLR>
-[4] <CLR=BOLD>./index.js</CLR> 52 bytes {<CLR=33,BOLD>2</CLR>}<CLR=32,BOLD> [built]</CLR>
-[5] <CLR=BOLD>./a.js</CLR> 293 KiB {<CLR=33,BOLD>2</CLR>}<CLR=32,BOLD> [built]</CLR>
\ No newline at end of file
+   [0] <CLR=BOLD>./d.js</CLR> 22 bytes {<CLR=33,BOLD>3</CLR>}<CLR=32,BOLD> [built]</CLR>
+   [1] <CLR=BOLD>./e.js</CLR> 22 bytes {<CLR=33,BOLD>3</CLR>}<CLR=32,BOLD> [built]</CLR>
+   [2] <CLR=BOLD>./b.js</CLR> 22 bytes {<CLR=33,BOLD>0</CLR>}<CLR=32,BOLD> [built]</CLR>
+   [3] <CLR=BOLD>./c.js</CLR> 54 bytes {<CLR=33,BOLD>1</CLR>}<CLR=32,BOLD> [built]</CLR>
+   [4] <CLR=BOLD>./index.js</CLR> 52 bytes {<CLR=33,BOLD>2</CLR>}<CLR=32,BOLD> [built]</CLR>
+   [5] <CLR=BOLD>./a.js</CLR> 293 KiB {<CLR=33,BOLD>2</CLR>}<CLR=32,BOLD> [built]</CLR>
\ No newline at end of file
diff --git a/test/statsCases/performance-oversize-limit-error/expected.txt b/test/statsCases/performance-oversize-limit-error/expected.txt
index 288a58cd7..23e8b18d7 100644
--- a/test/statsCases/performance-oversize-limit-error/expected.txt
+++ b/test/statsCases/performance-oversize-limit-error/expected.txt
@@ -5,9 +5,9 @@ Built at: Thu Jan 01 1970 <CLR=BOLD>00:00:00</CLR> GMT
  <CLR=33,BOLD>sec.js</CLR>  <CLR=33,BOLD>296 KiB</CLR>       <CLR=BOLD>1</CLR>  <CLR=32,BOLD>[emitted]</CLR>  <CLR=33,BOLD>[big]</CLR>  sec
 Entrypoint <CLR=BOLD>main</CLR> <CLR=33,BOLD>[big]</CLR> = <CLR=32,BOLD>main.js</CLR>
 Entrypoint <CLR=BOLD>sec</CLR> <CLR=33,BOLD>[big]</CLR> = <CLR=32,BOLD>sec.js</CLR>
-[0] <CLR=BOLD>./a.js</CLR> 293 KiB {<CLR=33,BOLD>0</CLR>} {<CLR=33,BOLD>1</CLR>}<CLR=32,BOLD> [built]</CLR>
-[1] <CLR=BOLD>./index.js</CLR> 16 bytes {<CLR=33,BOLD>0</CLR>}<CLR=32,BOLD> [built]</CLR>
-[2] <CLR=BOLD>./index2.js</CLR> 16 bytes {<CLR=33,BOLD>1</CLR>}<CLR=32,BOLD> [built]</CLR>
+   [0] <CLR=BOLD>./a.js</CLR> 293 KiB {<CLR=33,BOLD>0</CLR>} {<CLR=33,BOLD>1</CLR>}<CLR=32,BOLD> [built]</CLR>
+   [1] <CLR=BOLD>./index.js</CLR> 16 bytes {<CLR=33,BOLD>0</CLR>}<CLR=32,BOLD> [built]</CLR>
+   [2] <CLR=BOLD>./index2.js</CLR> 16 bytes {<CLR=33,BOLD>1</CLR>}<CLR=32,BOLD> [built]</CLR>
 
 <CLR=31,BOLD>ERROR in asset size limit: The following asset(s) exceed the recommended size limit (244 KiB).
 This can impact web performance.
diff --git a/test/statsCases/preset-detailed/expected.txt b/test/statsCases/preset-detailed/expected.txt
index 809e2d594..b9479c247 100644
--- a/test/statsCases/preset-detailed/expected.txt
+++ b/test/statsCases/preset-detailed/expected.txt
@@ -15,15 +15,15 @@ chunk    {2} main.js (main) 73 bytes >{0}< >{1}< [entry] [rendered]
     > ./index main
 chunk    {3} 3.js 44 bytes <{1}> [rendered]
     > [3] ./c.js 1:0-52
-[0] ./d.js 22 bytes {3} [depth 2] [built]
-    ModuleConcatenation bailout: Module is not an ECMAScript module
-[1] ./e.js 22 bytes {3} [depth 2] [built]
-    ModuleConcatenation bailout: Module is not an ECMAScript module
-[2] ./b.js 22 bytes {0} [depth 1] [built]
-    ModuleConcatenation bailout: Module is not an ECMAScript module
-[3] ./c.js 54 bytes {1} [depth 1] [built]
-    ModuleConcatenation bailout: Module is not an ECMAScript module
-[4] ./index.js 51 bytes {2} [depth 0] [built]
-    ModuleConcatenation bailout: Module is not an ECMAScript module
-[5] ./a.js 22 bytes {2} [depth 1] [built]
-    ModuleConcatenation bailout: Module is not an ECMAScript module
\ No newline at end of file
+   [0] ./d.js 22 bytes {3} [depth 2] [built]
+       ModuleConcatenation bailout: Module is not an ECMAScript module
+   [1] ./e.js 22 bytes {3} [depth 2] [built]
+       ModuleConcatenation bailout: Module is not an ECMAScript module
+   [2] ./b.js 22 bytes {0} [depth 1] [built]
+       ModuleConcatenation bailout: Module is not an ECMAScript module
+   [3] ./c.js 54 bytes {1} [depth 1] [built]
+       ModuleConcatenation bailout: Module is not an ECMAScript module
+   [4] ./index.js 51 bytes {2} [depth 0] [built]
+       ModuleConcatenation bailout: Module is not an ECMAScript module
+   [5] ./a.js 22 bytes {2} [depth 1] [built]
+       ModuleConcatenation bailout: Module is not an ECMAScript module
\ No newline at end of file
diff --git a/test/statsCases/preset-mixed-array/expected.txt b/test/statsCases/preset-mixed-array/expected.txt
index 119f7a1be..061367f34 100644
--- a/test/statsCases/preset-mixed-array/expected.txt
+++ b/test/statsCases/preset-mixed-array/expected.txt
@@ -2,4 +2,4 @@ Child minimal:
        1 module
 Child verbose:
     Entrypoint main = main.js
-    [0] ./index.js 8 bytes {0} [built]
\ No newline at end of file
+       [0] ./index.js 8 bytes {0} [built]
\ No newline at end of file
diff --git a/test/statsCases/preset-normal-performance-ensure-filter-sourcemaps/expected.txt b/test/statsCases/preset-normal-performance-ensure-filter-sourcemaps/expected.txt
index a3ff9d555..2b0180443 100644
--- a/test/statsCases/preset-normal-performance-ensure-filter-sourcemaps/expected.txt
+++ b/test/statsCases/preset-normal-performance-ensure-filter-sourcemaps/expected.txt
@@ -10,12 +10,12 @@ Built at: Thu Jan 01 1970 <CLR=BOLD>00:00:00</CLR> GMT
 <CLR=32,BOLD>main.js.map</CLR>   1.72 MiB       <CLR=BOLD>2</CLR>  <CLR=32,BOLD>[emitted]</CLR>         main
    <CLR=32,BOLD>3.js.map</CLR>  214 bytes       <CLR=BOLD>3</CLR>  <CLR=32,BOLD>[emitted]</CLR>         
 Entrypoint <CLR=BOLD>main</CLR> <CLR=33,BOLD>[big]</CLR> = <CLR=32,BOLD>main.js</CLR> <CLR=32,BOLD>main.js.map</CLR>
-[0] <CLR=BOLD>./d.js</CLR> 22 bytes {<CLR=33,BOLD>3</CLR>}<CLR=32,BOLD> [built]</CLR>
-[1] <CLR=BOLD>./e.js</CLR> 22 bytes {<CLR=33,BOLD>3</CLR>}<CLR=32,BOLD> [built]</CLR>
-[2] <CLR=BOLD>./b.js</CLR> 22 bytes {<CLR=33,BOLD>0</CLR>}<CLR=32,BOLD> [built]</CLR>
-[3] <CLR=BOLD>./c.js</CLR> 54 bytes {<CLR=33,BOLD>1</CLR>}<CLR=32,BOLD> [built]</CLR>
-[4] <CLR=BOLD>./index.js</CLR> 52 bytes {<CLR=33,BOLD>2</CLR>}<CLR=32,BOLD> [built]</CLR>
-[5] <CLR=BOLD>./a.js</CLR> 293 KiB {<CLR=33,BOLD>2</CLR>}<CLR=32,BOLD> [built]</CLR>
+   [0] <CLR=BOLD>./d.js</CLR> 22 bytes {<CLR=33,BOLD>3</CLR>}<CLR=32,BOLD> [built]</CLR>
+   [1] <CLR=BOLD>./e.js</CLR> 22 bytes {<CLR=33,BOLD>3</CLR>}<CLR=32,BOLD> [built]</CLR>
+   [2] <CLR=BOLD>./b.js</CLR> 22 bytes {<CLR=33,BOLD>0</CLR>}<CLR=32,BOLD> [built]</CLR>
+   [3] <CLR=BOLD>./c.js</CLR> 54 bytes {<CLR=33,BOLD>1</CLR>}<CLR=32,BOLD> [built]</CLR>
+   [4] <CLR=BOLD>./index.js</CLR> 52 bytes {<CLR=33,BOLD>2</CLR>}<CLR=32,BOLD> [built]</CLR>
+   [5] <CLR=BOLD>./a.js</CLR> 293 KiB {<CLR=33,BOLD>2</CLR>}<CLR=32,BOLD> [built]</CLR>
 
 <CLR=33,BOLD>WARNING in asset size limit: The following asset(s) exceed the recommended size limit (244 KiB).
 This can impact web performance.
diff --git a/test/statsCases/preset-normal-performance/expected.txt b/test/statsCases/preset-normal-performance/expected.txt
index 3054babb3..2eb11a5e6 100644
--- a/test/statsCases/preset-normal-performance/expected.txt
+++ b/test/statsCases/preset-normal-performance/expected.txt
@@ -6,12 +6,12 @@ Built at: Thu Jan 01 1970 <CLR=BOLD>00:00:00</CLR> GMT
 <CLR=33,BOLD>main.js</CLR>    <CLR=33,BOLD>300 KiB</CLR>       <CLR=BOLD>2</CLR>  <CLR=32,BOLD>[emitted]</CLR>  <CLR=33,BOLD>[big]</CLR>  main
    <CLR=32,BOLD>3.js</CLR>  227 bytes       <CLR=BOLD>3</CLR>  <CLR=32,BOLD>[emitted]</CLR>         
 Entrypoint <CLR=BOLD>main</CLR> <CLR=33,BOLD>[big]</CLR> = <CLR=32,BOLD>main.js</CLR>
-[0] <CLR=BOLD>./d.js</CLR> 22 bytes {<CLR=33,BOLD>3</CLR>}<CLR=32,BOLD> [built]</CLR>
-[1] <CLR=BOLD>./e.js</CLR> 22 bytes {<CLR=33,BOLD>3</CLR>}<CLR=32,BOLD> [built]</CLR>
-[2] <CLR=BOLD>./b.js</CLR> 22 bytes {<CLR=33,BOLD>0</CLR>}<CLR=32,BOLD> [built]</CLR>
-[3] <CLR=BOLD>./c.js</CLR> 54 bytes {<CLR=33,BOLD>1</CLR>}<CLR=32,BOLD> [built]</CLR>
-[4] <CLR=BOLD>./index.js</CLR> 52 bytes {<CLR=33,BOLD>2</CLR>}<CLR=32,BOLD> [built]</CLR>
-[5] <CLR=BOLD>./a.js</CLR> 293 KiB {<CLR=33,BOLD>2</CLR>}<CLR=32,BOLD> [built]</CLR>
+   [0] <CLR=BOLD>./d.js</CLR> 22 bytes {<CLR=33,BOLD>3</CLR>}<CLR=32,BOLD> [built]</CLR>
+   [1] <CLR=BOLD>./e.js</CLR> 22 bytes {<CLR=33,BOLD>3</CLR>}<CLR=32,BOLD> [built]</CLR>
+   [2] <CLR=BOLD>./b.js</CLR> 22 bytes {<CLR=33,BOLD>0</CLR>}<CLR=32,BOLD> [built]</CLR>
+   [3] <CLR=BOLD>./c.js</CLR> 54 bytes {<CLR=33,BOLD>1</CLR>}<CLR=32,BOLD> [built]</CLR>
+   [4] <CLR=BOLD>./index.js</CLR> 52 bytes {<CLR=33,BOLD>2</CLR>}<CLR=32,BOLD> [built]</CLR>
+   [5] <CLR=BOLD>./a.js</CLR> 293 KiB {<CLR=33,BOLD>2</CLR>}<CLR=32,BOLD> [built]</CLR>
 
 <CLR=33,BOLD>WARNING in asset size limit: The following asset(s) exceed the recommended size limit (244 KiB).
 This can impact web performance.
diff --git a/test/statsCases/preset-normal/expected.txt b/test/statsCases/preset-normal/expected.txt
index 1fafbce3e..8fd9bdd87 100644
--- a/test/statsCases/preset-normal/expected.txt
+++ b/test/statsCases/preset-normal/expected.txt
@@ -7,9 +7,9 @@ Built at: Thu Jan 01 1970 00:00:00 GMT
 main.js   7.01 KiB       2  [emitted]  main
    3.js  227 bytes       3  [emitted]  
 Entrypoint main = main.js
-[0] ./d.js 22 bytes {3} [built]
-[1] ./e.js 22 bytes {3} [built]
-[2] ./b.js 22 bytes {0} [built]
-[3] ./c.js 54 bytes {1} [built]
-[4] ./index.js 51 bytes {2} [built]
-[5] ./a.js 22 bytes {2} [built]
\ No newline at end of file
+   [0] ./d.js 22 bytes {3} [built]
+   [1] ./e.js 22 bytes {3} [built]
+   [2] ./b.js 22 bytes {0} [built]
+   [3] ./c.js 54 bytes {1} [built]
+   [4] ./index.js 51 bytes {2} [built]
+   [5] ./a.js 22 bytes {2} [built]
\ No newline at end of file
diff --git a/test/statsCases/preset-verbose/expected.txt b/test/statsCases/preset-verbose/expected.txt
index a013e663b..50f688017 100644
--- a/test/statsCases/preset-verbose/expected.txt
+++ b/test/statsCases/preset-verbose/expected.txt
@@ -9,33 +9,33 @@ main.js   7.01 KiB       2  [emitted]  main
 Entrypoint main = main.js
 chunk    {0} 0.js 22 bytes <{2}> [rendered]
     > ./b [4] ./index.js 2:0-16
- [2] ./b.js 22 bytes {0} [depth 1] [built]
-     ModuleConcatenation bailout: Module is not an ECMAScript module
-     amd require ./b [4] ./index.js 2:0-16
-     [4] Xms -> factory:Xms building:Xms = Xms
+    [2] ./b.js 22 bytes {0} [depth 1] [built]
+        ModuleConcatenation bailout: Module is not an ECMAScript module
+        amd require ./b [4] ./index.js 2:0-16
+        [4] Xms -> factory:Xms building:Xms = Xms
 chunk    {1} 1.js 54 bytes <{2}> >{3}< [rendered]
     > ./c [4] ./index.js 3:0-16
- [3] ./c.js 54 bytes {1} [depth 1] [built]
-     ModuleConcatenation bailout: Module is not an ECMAScript module
-     amd require ./c [4] ./index.js 3:0-16
-     [4] Xms -> factory:Xms building:Xms = Xms
+    [3] ./c.js 54 bytes {1} [depth 1] [built]
+        ModuleConcatenation bailout: Module is not an ECMAScript module
+        amd require ./c [4] ./index.js 3:0-16
+        [4] Xms -> factory:Xms building:Xms = Xms
 chunk    {2} main.js (main) 73 bytes >{0}< >{1}< [entry] [rendered]
     > ./index main
- [4] ./index.js 51 bytes {2} [depth 0] [built]
-     ModuleConcatenation bailout: Module is not an ECMAScript module
-     single entry ./index  main
-     factory:Xms building:Xms = Xms
- [5] ./a.js 22 bytes {2} [depth 1] [built]
-     ModuleConcatenation bailout: Module is not an ECMAScript module
-     cjs require ./a [4] ./index.js 1:0-14
-     [4] Xms -> factory:Xms building:Xms = Xms
+    [4] ./index.js 51 bytes {2} [depth 0] [built]
+        ModuleConcatenation bailout: Module is not an ECMAScript module
+        single entry ./index  main
+        factory:Xms building:Xms = Xms
+    [5] ./a.js 22 bytes {2} [depth 1] [built]
+        ModuleConcatenation bailout: Module is not an ECMAScript module
+        cjs require ./a [4] ./index.js 1:0-14
+        [4] Xms -> factory:Xms building:Xms = Xms
 chunk    {3} 3.js 44 bytes <{1}> [rendered]
     > [3] ./c.js 1:0-52
- [0] ./d.js 22 bytes {3} [depth 2] [built]
-     ModuleConcatenation bailout: Module is not an ECMAScript module
-     require.ensure item ./d [3] ./c.js 1:0-52
-     [4] Xms -> [3] Xms -> factory:Xms building:Xms = Xms
- [1] ./e.js 22 bytes {3} [depth 2] [built]
-     ModuleConcatenation bailout: Module is not an ECMAScript module
-     require.ensure item ./e [3] ./c.js 1:0-52
-     [4] Xms -> [3] Xms -> factory:Xms building:Xms = Xms
\ No newline at end of file
+    [0] ./d.js 22 bytes {3} [depth 2] [built]
+        ModuleConcatenation bailout: Module is not an ECMAScript module
+        require.ensure item ./d [3] ./c.js 1:0-52
+        [4] Xms -> [3] Xms -> factory:Xms building:Xms = Xms
+    [1] ./e.js 22 bytes {3} [depth 2] [built]
+        ModuleConcatenation bailout: Module is not an ECMAScript module
+        require.ensure item ./e [3] ./c.js 1:0-52
+        [4] Xms -> [3] Xms -> factory:Xms building:Xms = Xms
\ No newline at end of file
diff --git a/test/statsCases/resolve-plugin-context/expected.txt b/test/statsCases/resolve-plugin-context/expected.txt
index ee27654fc..4831d728b 100644
--- a/test/statsCases/resolve-plugin-context/expected.txt
+++ b/test/statsCases/resolve-plugin-context/expected.txt
@@ -4,8 +4,8 @@ Built at: Thu Jan 01 1970 00:00:00 GMT
     Asset      Size  Chunks             Chunk Names
 bundle.js  3.01 KiB       0  [emitted]  main
 Entrypoint main = bundle.js
-[0] ./node_modules/xyz/index.js 0 bytes {0} [built]
-[1] ./index.js 48 bytes {0} [built]
-[2] ./node_modules/abc/index.js 16 bytes {0} [built]
-[3] ./node_modules/def/index.js 16 bytes {0} [built]
-[4] ./node_modules/def/node_modules/xyz/index.js 0 bytes {0} [built]
\ No newline at end of file
+   [0] ./node_modules/xyz/index.js 0 bytes {0} [built]
+   [1] ./index.js 48 bytes {0} [built]
+   [2] ./node_modules/abc/index.js 16 bytes {0} [built]
+   [3] ./node_modules/def/index.js 16 bytes {0} [built]
+   [4] ./node_modules/def/node_modules/xyz/index.js 0 bytes {0} [built]
\ No newline at end of file
diff --git a/test/statsCases/reverse-sort-modules/expected.txt b/test/statsCases/reverse-sort-modules/expected.txt
index 4eb744a13..4280dd705 100644
--- a/test/statsCases/reverse-sort-modules/expected.txt
+++ b/test/statsCases/reverse-sort-modules/expected.txt
@@ -4,24 +4,24 @@ Built at: Thu Jan 01 1970 00:00:00 GMT
   Asset      Size  Chunks             Chunk Names
 main.js  5.85 KiB       0  [emitted]  main
 Entrypoint main = main.js
-[29] ./c.js?10 33 bytes {0} [built]
-[27] ./c.js?9 33 bytes {0} [built]
-[25] ./c.js?8 33 bytes {0} [built]
-[23] ./c.js?7 33 bytes {0} [built]
-[19] ./c.js?5 33 bytes {0} [built]
-[17] ./c.js?4 33 bytes {0} [built]
-[15] ./c.js?3 33 bytes {0} [built]
-[13] ./c.js?2 33 bytes {0} [built]
-[11] ./c.js?1 33 bytes {0} [built]
-[10] ./index.js 181 bytes {0} [built]
- [9] ./a.js?10 33 bytes {0} [built]
- [8] ./a.js?9 33 bytes {0} [built]
- [7] ./a.js?8 33 bytes {0} [built]
- [6] ./a.js?7 33 bytes {0} [built]
- [5] ./a.js?6 33 bytes {0} [built]
- [4] ./a.js?5 33 bytes {0} [built]
- [3] ./a.js?4 33 bytes {0} [built]
- [2] ./a.js?3 33 bytes {0} [built]
- [1] ./a.js?2 33 bytes {0} [built]
- [0] ./a.js?1 33 bytes {0} [built]
+  [29] ./c.js?10 33 bytes {0} [built]
+  [27] ./c.js?9 33 bytes {0} [built]
+  [25] ./c.js?8 33 bytes {0} [built]
+  [23] ./c.js?7 33 bytes {0} [built]
+  [19] ./c.js?5 33 bytes {0} [built]
+  [17] ./c.js?4 33 bytes {0} [built]
+  [15] ./c.js?3 33 bytes {0} [built]
+  [13] ./c.js?2 33 bytes {0} [built]
+  [11] ./c.js?1 33 bytes {0} [built]
+  [10] ./index.js 181 bytes {0} [built]
+   [9] ./a.js?10 33 bytes {0} [built]
+   [8] ./a.js?9 33 bytes {0} [built]
+   [7] ./a.js?8 33 bytes {0} [built]
+   [6] ./a.js?7 33 bytes {0} [built]
+   [5] ./a.js?6 33 bytes {0} [built]
+   [4] ./a.js?5 33 bytes {0} [built]
+   [3] ./a.js?4 33 bytes {0} [built]
+   [2] ./a.js?3 33 bytes {0} [built]
+   [1] ./a.js?2 33 bytes {0} [built]
+   [0] ./a.js?1 33 bytes {0} [built]
     + 11 hidden modules
\ No newline at end of file
diff --git a/test/statsCases/scope-hoisting-bailouts/expected.txt b/test/statsCases/scope-hoisting-bailouts/expected.txt
index 464871507..f61b7e1bb 100644
--- a/test/statsCases/scope-hoisting-bailouts/expected.txt
+++ b/test/statsCases/scope-hoisting-bailouts/expected.txt
@@ -3,27 +3,27 @@ Time: Xms
 Built at: Thu Jan 01 1970 00:00:00 GMT
 Entrypoint index = index.js
 Entrypoint entry = entry.js
-[0] ./entry.js 32 bytes {1} {2} [built]
-    ModuleConcatenation bailout: Module is an entry point
-[1] ./ref-from-cjs.js 45 bytes {1} [built]
-    ModuleConcatenation bailout: Module is referenced from these modules with unsupported syntax: ./cjs.js (referenced with cjs require)
-[2] external "external" 42 bytes {1} [built]
-    ModuleConcatenation bailout: Module is not an ECMAScript module
-[3] ./concatenated.js + 2 modules 116 bytes {0} [built]
-    ModuleConcatenation bailout: Cannot concat with external "external" (<- Module is not an ECMAScript module)
-    | ./concatenated.js 26 bytes [built]
-    |     ModuleConcatenation bailout: Module is referenced from these modules with unsupported syntax: ./index.js (referenced with import())
-    | ./concatenated1.js 37 bytes [built]
-    | ./concatenated2.js 48 bytes [built]
-[4] ./index.js 176 bytes {1} [built]
-    ModuleConcatenation bailout: Module is an entry point
-[5] ./cjs.js 59 bytes {1} [built]
-    ModuleConcatenation bailout: Module is not an ECMAScript module
-[6] ./eval.js 35 bytes {1} [built]
-    ModuleConcatenation bailout: Module uses eval()
-[7] ./injected-vars.js 40 bytes {1} [built]
-    ModuleConcatenation bailout: Module uses injected variables (__dirname, __filename)
-[8] ./module-id.js 26 bytes {1} [built]
-    ModuleConcatenation bailout: Module uses module.id
-[9] ./module-loaded.js 30 bytes {1} [built]
-    ModuleConcatenation bailout: Module uses module.loaded
\ No newline at end of file
+   [0] ./entry.js 32 bytes {1} {2} [built]
+       ModuleConcatenation bailout: Module is an entry point
+   [1] ./ref-from-cjs.js 45 bytes {1} [built]
+       ModuleConcatenation bailout: Module is referenced from these modules with unsupported syntax: ./cjs.js (referenced with cjs require)
+   [2] external "external" 42 bytes {1} [built]
+       ModuleConcatenation bailout: Module is not an ECMAScript module
+   [3] ./concatenated.js + 2 modules 116 bytes {0} [built]
+       ModuleConcatenation bailout: Cannot concat with external "external" (<- Module is not an ECMAScript module)
+       | ./concatenated.js 26 bytes [built]
+       |    ModuleConcatenation bailout: Module is referenced from these modules with unsupported syntax: ./index.js (referenced with import())
+       | ./concatenated1.js 37 bytes [built]
+       | ./concatenated2.js 48 bytes [built]
+   [4] ./index.js 176 bytes {1} [built]
+       ModuleConcatenation bailout: Module is an entry point
+   [5] ./cjs.js 59 bytes {1} [built]
+       ModuleConcatenation bailout: Module is not an ECMAScript module
+   [6] ./eval.js 35 bytes {1} [built]
+       ModuleConcatenation bailout: Module uses eval()
+   [7] ./injected-vars.js 40 bytes {1} [built]
+       ModuleConcatenation bailout: Module uses injected variables (__dirname, __filename)
+   [8] ./module-id.js 26 bytes {1} [built]
+       ModuleConcatenation bailout: Module uses module.id
+   [9] ./module-loaded.js 30 bytes {1} [built]
+       ModuleConcatenation bailout: Module uses module.loaded
\ No newline at end of file
diff --git a/test/statsCases/scope-hoisting-multi/expected.txt b/test/statsCases/scope-hoisting-multi/expected.txt
index 14805f624..18d84f35c 100644
--- a/test/statsCases/scope-hoisting-multi/expected.txt
+++ b/test/statsCases/scope-hoisting-multi/expected.txt
@@ -5,40 +5,40 @@ Child
     Built at: Thu Jan 01 1970 00:00:00 GMT
     Entrypoint first = vendor.js first.js
     Entrypoint second = vendor.js second.js
-     [0] ./common_lazy_shared.js 25 bytes {0} {1} {2} [built]
-     [1] ./common2.js 25 bytes {4} {5} [built]
-     [2] ./common_lazy.js 25 bytes {1} {2} [built]
-     [3] ./common.js 37 bytes {4} {5} [built]
-     [4] ./lazy_shared.js 31 bytes {0} [built]
-     [5] ./vendor.js 25 bytes {3} [built]
-     [6] ./lazy_first.js 55 bytes {2} [built]
-     [7] ./lazy_second.js 55 bytes {1} [built]
-     [8] ./first.js 207 bytes {4} [built]
-     [9] ./module_first.js 31 bytes {4} [built]
-    [10] ./second.js 177 bytes {5} [built]
+       [0] ./common_lazy_shared.js 25 bytes {0} {1} {2} [built]
+       [1] ./common2.js 25 bytes {4} {5} [built]
+       [2] ./common_lazy.js 25 bytes {1} {2} [built]
+       [3] ./common.js 37 bytes {4} {5} [built]
+       [4] ./lazy_shared.js 31 bytes {0} [built]
+       [5] ./vendor.js 25 bytes {3} [built]
+       [6] ./lazy_first.js 55 bytes {2} [built]
+       [7] ./lazy_second.js 55 bytes {1} [built]
+       [8] ./first.js 207 bytes {4} [built]
+       [9] ./module_first.js 31 bytes {4} [built]
+      [10] ./second.js 177 bytes {5} [built]
 Child
     Hash: e3bbe6aa8fb8e8ec3bd9
     Time: Xms
     Built at: Thu Jan 01 1970 00:00:00 GMT
     Entrypoint first = vendor.js first.js
     Entrypoint second = vendor.js second.js
-    [0] ./common_lazy_shared.js 25 bytes {0} {1} {2} [built]
-    [1] ./common_lazy.js 25 bytes {1} {2} [built]
-    [2] ./common.js + 1 modules 62 bytes {4} {5} [built]
-        | ./common.js 37 bytes [built]
-        | ./common2.js 25 bytes [built]
-    [3] ./vendor.js 25 bytes {3} [built]
-    [4] ./lazy_shared.js 31 bytes {0} [built]
-        ModuleConcatenation bailout: Module is referenced from these modules with unsupported syntax: ./first.js (referenced with import()), ./second.js (referenced with import())
-    [5] ./lazy_second.js 55 bytes {1} [built]
-        ModuleConcatenation bailout: Module is referenced from these modules with unsupported syntax: ./second.js (referenced with import())
-    [6] ./second.js 177 bytes {5} [built]
-        ModuleConcatenation bailout: Module is an entry point
-    [7] ./first.js + 1 modules 248 bytes {4} [built]
-        ModuleConcatenation bailout: Cannot concat with ./common.js
-        ModuleConcatenation bailout: Cannot concat with ./vendor.js
-        | ./first.js 207 bytes [built]
-        |     ModuleConcatenation bailout: Module is an entry point
-        | ./module_first.js 31 bytes [built]
-    [8] ./lazy_first.js 55 bytes {2} [built]
-        ModuleConcatenation bailout: Module is referenced from these modules with unsupported syntax: ./first.js (referenced with import())
\ No newline at end of file
+       [0] ./common_lazy_shared.js 25 bytes {0} {1} {2} [built]
+       [1] ./common_lazy.js 25 bytes {1} {2} [built]
+       [2] ./common.js + 1 modules 62 bytes {4} {5} [built]
+           | ./common.js 37 bytes [built]
+           | ./common2.js 25 bytes [built]
+       [3] ./vendor.js 25 bytes {3} [built]
+       [4] ./lazy_shared.js 31 bytes {0} [built]
+           ModuleConcatenation bailout: Module is referenced from these modules with unsupported syntax: ./first.js (referenced with import()), ./second.js (referenced with import())
+       [5] ./lazy_second.js 55 bytes {1} [built]
+           ModuleConcatenation bailout: Module is referenced from these modules with unsupported syntax: ./second.js (referenced with import())
+       [6] ./second.js 177 bytes {5} [built]
+           ModuleConcatenation bailout: Module is an entry point
+       [7] ./first.js + 1 modules 248 bytes {4} [built]
+           ModuleConcatenation bailout: Cannot concat with ./common.js
+           ModuleConcatenation bailout: Cannot concat with ./vendor.js
+           | ./first.js 207 bytes [built]
+           |    ModuleConcatenation bailout: Module is an entry point
+           | ./module_first.js 31 bytes [built]
+       [8] ./lazy_first.js 55 bytes {2} [built]
+           ModuleConcatenation bailout: Module is referenced from these modules with unsupported syntax: ./first.js (referenced with import())
\ No newline at end of file
diff --git a/test/statsCases/simple-more-info/expected.txt b/test/statsCases/simple-more-info/expected.txt
index 49e2bef32..b1a4338fb 100644
--- a/test/statsCases/simple-more-info/expected.txt
+++ b/test/statsCases/simple-more-info/expected.txt
@@ -4,6 +4,6 @@ Built at: Thu Jan 01 1970 00:00:00 GMT
     Asset      Size  Chunks             Chunk Names
 bundle.js  2.61 KiB       0  [emitted]  main
 Entrypoint main = bundle.js
-[0] ./index.js 0 bytes {0} [built]
-    single entry ./index  main
-    factory:Xms building:Xms = Xms
\ No newline at end of file
+   [0] ./index.js 0 bytes {0} [built]
+       single entry ./index  main
+       factory:Xms building:Xms = Xms
\ No newline at end of file
diff --git a/test/statsCases/split-chunks-combinations/expected.txt b/test/statsCases/split-chunks-combinations/expected.txt
index 2debb7214..1ebfc3cc9 100644
--- a/test/statsCases/split-chunks-combinations/expected.txt
+++ b/test/statsCases/split-chunks-combinations/expected.txt
@@ -2,34 +2,34 @@ Entrypoint main = main.js
 chunk    {0} async-a~async-b.js (async-a~async-b) 134 bytes <{8}> ={1}= ={2}= [rendered] split chunk (cache group: default) (name: async-a~async-b)
     > ./a [9] ./index.js 1:0-47
     > ./b [9] ./index.js 2:0-47
- [0] ./x.js 67 bytes {0} {3} {4} {5} {6} {7} [built]
- [1] ./y.js 67 bytes {0} [built]
+    [0] ./x.js 67 bytes {0} {3} {4} {5} {6} {7} [built]
+    [1] ./y.js 67 bytes {0} [built]
 chunk    {1} async-a.js (async-a) 48 bytes <{8}> ={0}= [rendered]
     > ./a [9] ./index.js 1:0-47
- [2] ./a.js 48 bytes {1} [built]
+    [2] ./a.js 48 bytes {1} [built]
 chunk    {2} async-b.js (async-b) 48 bytes <{8}> ={0}= [rendered]
     > ./b [9] ./index.js 2:0-47
- [3] ./b.js 48 bytes {2} [built]
+    [3] ./b.js 48 bytes {2} [built]
 chunk    {3} async-c.js (async-c) 101 bytes <{8}> [rendered]
     > ./c [9] ./index.js 3:0-47
- [0] ./x.js 67 bytes {0} {3} {4} {5} {6} {7} [built]
- [4] ./c.js 34 bytes {3} [built]
+    [0] ./x.js 67 bytes {0} {3} {4} {5} {6} {7} [built]
+    [4] ./c.js 34 bytes {3} [built]
 chunk    {4} async-d.js (async-d) 101 bytes <{8}> [rendered]
     > ./d [9] ./index.js 4:0-47
- [0] ./x.js 67 bytes {0} {3} {4} {5} {6} {7} [built]
- [5] ./d.js 34 bytes {4} [built]
+    [0] ./x.js 67 bytes {0} {3} {4} {5} {6} {7} [built]
+    [5] ./d.js 34 bytes {4} [built]
 chunk    {5} async-e.js (async-e) 101 bytes <{8}> [rendered]
     > ./e [9] ./index.js 5:0-47
- [0] ./x.js 67 bytes {0} {3} {4} {5} {6} {7} [built]
- [6] ./e.js 34 bytes {5} [built]
+    [0] ./x.js 67 bytes {0} {3} {4} {5} {6} {7} [built]
+    [6] ./e.js 34 bytes {5} [built]
 chunk    {6} async-f.js (async-f) 101 bytes <{8}> [rendered]
     > ./f [9] ./index.js 6:0-47
- [0] ./x.js 67 bytes {0} {3} {4} {5} {6} {7} [built]
- [7] ./f.js 34 bytes {6} [built]
+    [0] ./x.js 67 bytes {0} {3} {4} {5} {6} {7} [built]
+    [7] ./f.js 34 bytes {6} [built]
 chunk    {7} async-g.js (async-g) 101 bytes <{8}> [rendered]
     > ./g [9] ./index.js 7:0-47
- [0] ./x.js 67 bytes {0} {3} {4} {5} {6} {7} [built]
- [8] ./g.js 34 bytes {7} [built]
+    [0] ./x.js 67 bytes {0} {3} {4} {5} {6} {7} [built]
+    [8] ./g.js 34 bytes {7} [built]
 chunk    {8} main.js (main) 343 bytes >{0}< >{1}< >{2}< >{3}< >{4}< >{5}< >{6}< >{7}< [entry] [rendered]
     > ./ main
- [9] ./index.js 343 bytes {8} [built]
\ No newline at end of file
+    [9] ./index.js 343 bytes {8} [built]
\ No newline at end of file
diff --git a/test/statsCases/split-chunks-issue-6413/expected.txt b/test/statsCases/split-chunks-issue-6413/expected.txt
index c97025236..0ed29a058 100644
--- a/test/statsCases/split-chunks-issue-6413/expected.txt
+++ b/test/statsCases/split-chunks-issue-6413/expected.txt
@@ -3,21 +3,21 @@ chunk    {0} vendors~async-a~async-b~async-c.js (vendors~async-a~async-b~async-c
     > ./a [5] ./index.js 1:0-47
     > ./b [5] ./index.js 2:0-47
     > ./c [5] ./index.js 3:0-47
- [1] ./node_modules/x.js 20 bytes {0} [built]
+    [1] ./node_modules/x.js 20 bytes {0} [built]
 chunk    {1} async-a~async-b~async-c.js (async-a~async-b~async-c) 11 bytes <{5}> ={0}= ={2}= ={3}= ={4}= [rendered] split chunk (cache group: default) (name: async-a~async-b~async-c)
     > ./a [5] ./index.js 1:0-47
     > ./b [5] ./index.js 2:0-47
     > ./c [5] ./index.js 3:0-47
- [0] ./common.js 11 bytes {1} [built]
+    [0] ./common.js 11 bytes {1} [built]
 chunk    {2} async-a.js (async-a) 19 bytes <{5}> ={0}= ={1}= [rendered]
     > ./a [5] ./index.js 1:0-47
- [2] ./a.js 19 bytes {2} [built]
+    [2] ./a.js 19 bytes {2} [built]
 chunk    {3} async-b.js (async-b) 19 bytes <{5}> ={0}= ={1}= [rendered]
     > ./b [5] ./index.js 2:0-47
- [3] ./b.js 19 bytes {3} [built]
+    [3] ./b.js 19 bytes {3} [built]
 chunk    {4} async-c.js (async-c) 19 bytes <{5}> ={0}= ={1}= [rendered]
     > ./c [5] ./index.js 3:0-47
- [4] ./c.js 19 bytes {4} [built]
+    [4] ./c.js 19 bytes {4} [built]
 chunk    {5} main.js (main) 147 bytes >{0}< >{1}< >{2}< >{3}< >{4}< [entry] [rendered]
     > ./ main
- [5] ./index.js 147 bytes {5} [built]
\ No newline at end of file
+    [5] ./index.js 147 bytes {5} [built]
\ No newline at end of file
diff --git a/test/statsCases/split-chunks-issue-6696/expected.txt b/test/statsCases/split-chunks-issue-6696/expected.txt
index 6f6eb840d..783724c34 100644
--- a/test/statsCases/split-chunks-issue-6696/expected.txt
+++ b/test/statsCases/split-chunks-issue-6696/expected.txt
@@ -1,15 +1,15 @@
 Entrypoint main = vendors.js main.js
 chunk    {0} async-a.js (async-a) 32 bytes <{2}> <{3}> [rendered]
     > ./a [3] ./index.js 2:0-47
- [0] ./node_modules/x.js 20 bytes {0} {1} [built]
- [1] ./a.js 12 bytes {0} [built]
+    [0] ./node_modules/x.js 20 bytes {0} {1} [built]
+    [1] ./a.js 12 bytes {0} [built]
 chunk    {1} async-b.js (async-b) 32 bytes <{2}> <{3}> [rendered]
     > ./b [3] ./index.js 3:0-47
- [0] ./node_modules/x.js 20 bytes {0} {1} [built]
- [2] ./b.js 12 bytes {1} [built]
+    [0] ./node_modules/x.js 20 bytes {0} {1} [built]
+    [2] ./b.js 12 bytes {1} [built]
 chunk    {2} main.js (main) 110 bytes ={3}= >{0}< >{1}< [entry] [rendered]
     > ./ main
- [3] ./index.js 110 bytes {2} [built]
+    [3] ./index.js 110 bytes {2} [built]
 chunk    {3} vendors.js (vendors) 20 bytes ={2}= >{0}< >{1}< [initial] [rendered] split chunk (cache group: vendors) (name: vendors)
     > ./ main
- [4] ./node_modules/y.js 20 bytes {3} [built]
\ No newline at end of file
+    [4] ./node_modules/y.js 20 bytes {3} [built]
\ No newline at end of file
diff --git a/test/statsCases/split-chunks-prefer-bigger-splits/expected.txt b/test/statsCases/split-chunks-prefer-bigger-splits/expected.txt
index 4d49ccaae..09548ddd4 100644
--- a/test/statsCases/split-chunks-prefer-bigger-splits/expected.txt
+++ b/test/statsCases/split-chunks-prefer-bigger-splits/expected.txt
@@ -2,20 +2,20 @@ Entrypoint main = default/main.js
 chunk    {0} default/async-b~async-c.js (async-b~async-c) 110 bytes <{4}> ={2}= ={3}= [rendered] split chunk (cache group: default) (name: async-b~async-c)
     > ./b [6] ./index.js 2:0-47
     > ./c [6] ./index.js 3:0-47
- [0] ./d.js 43 bytes {0} {1} [built]
- [2] ./f.js 67 bytes {0} [built]
+    [0] ./d.js 43 bytes {0} {1} [built]
+    [2] ./f.js 67 bytes {0} [built]
 chunk    {1} default/async-a.js (async-a) 134 bytes <{4}> [rendered]
     > ./a [6] ./index.js 1:0-47
- [0] ./d.js 43 bytes {0} {1} [built]
- [1] ./e.js 43 bytes {1} {2} [built]
- [3] ./a.js 48 bytes {1} [built]
+    [0] ./d.js 43 bytes {0} {1} [built]
+    [1] ./e.js 43 bytes {1} {2} [built]
+    [3] ./a.js 48 bytes {1} [built]
 chunk    {2} default/async-b.js (async-b) 105 bytes <{4}> ={0}= [rendered]
     > ./b [6] ./index.js 2:0-47
- [1] ./e.js 43 bytes {1} {2} [built]
- [4] ./b.js 62 bytes {2} [built]
+    [1] ./e.js 43 bytes {1} {2} [built]
+    [4] ./b.js 62 bytes {2} [built]
 chunk    {3} default/async-c.js (async-c) 48 bytes <{4}> ={0}= [rendered]
     > ./c [6] ./index.js 3:0-47
- [5] ./c.js 48 bytes {3} [built]
+    [5] ./c.js 48 bytes {3} [built]
 chunk    {4} default/main.js (main) 147 bytes >{0}< >{1}< >{2}< >{3}< [entry] [rendered]
     > ./ main
- [6] ./index.js 147 bytes {4} [built]
\ No newline at end of file
+    [6] ./index.js 147 bytes {4} [built]
\ No newline at end of file
diff --git a/test/statsCases/split-chunks/expected.txt b/test/statsCases/split-chunks/expected.txt
index 154a23943..f52ced5e6 100644
--- a/test/statsCases/split-chunks/expected.txt
+++ b/test/statsCases/split-chunks/expected.txt
@@ -7,65 +7,65 @@ Child default:
         > ./a [8] ./index.js 1:0-47
         > ./b [8] ./index.js 2:0-47
         > ./c [8] ./index.js 3:0-47
-     [1] ./node_modules/x.js 20 bytes {0} {10} {11} {12} [built]
+        [1] ./node_modules/x.js 20 bytes {0} {10} {11} {12} [built]
     chunk    {1} default/async-a~async-b~async-c.js (async-a~async-b~async-c) 20 bytes <{9}> ={0}= ={2}= ={3}= ={5}= ={6}= ={7}= ={8}= >{2}< >{4}< [rendered] split chunk (cache group: default) (name: async-a~async-b~async-c)
         > ./a [8] ./index.js 1:0-47
         > ./b [8] ./index.js 2:0-47
         > ./c [8] ./index.js 3:0-47
-     [0] ./d.js 20 bytes {1} {10} {11} {12} [built]
+        [0] ./d.js 20 bytes {1} {10} {11} {12} [built]
     chunk    {2} default/async-b~async-c~async-g.js (async-b~async-c~async-g) 20 bytes <{0}> <{1}> <{10}> <{3}> <{5}> <{9}> ={0}= ={1}= ={3}= ={4}= ={6}= ={7}= ={8}= [rendered] split chunk (cache group: default) (name: async-b~async-c~async-g)
         > ./g [] 6:0-47
         > ./g [] 6:0-47
         > ./b [8] ./index.js 2:0-47
         > ./c [8] ./index.js 3:0-47
-     [2] ./f.js 20 bytes {2} {11} {12} [built]
+        [2] ./f.js 20 bytes {2} {11} {12} [built]
     chunk    {3} default/vendors~async-a~async-b.js (vendors~async-a~async-b) 20 bytes <{9}> ={0}= ={1}= ={2}= ={5}= ={6}= >{2}< >{4}< [rendered] split chunk (cache group: vendors) (name: vendors~async-a~async-b)
         > ./a [8] ./index.js 1:0-47
         > ./b [8] ./index.js 2:0-47
-     [3] ./node_modules/y.js 20 bytes {3} {10} {11} [built]
+        [3] ./node_modules/y.js 20 bytes {3} {10} {11} [built]
     chunk    {4} default/async-g.js (async-g) 34 bytes <{0}> <{1}> <{10}> <{3}> <{5}> ={2}= [rendered]
         > ./g [] 6:0-47
         > ./g [] 6:0-47
-     [9] ./g.js 34 bytes {4} [built]
+        [9] ./g.js 34 bytes {4} [built]
     chunk    {5} default/async-a.js (async-a) 156 bytes <{9}> ={0}= ={1}= ={3}= >{2}< >{4}< [rendered]
         > ./a [8] ./index.js 1:0-47
-     [7] ./a.js + 1 modules 156 bytes {5} {10} [built]
-         | ./a.js 121 bytes [built]
-         | ./e.js 20 bytes [built]
+        [7] ./a.js + 1 modules 156 bytes {5} {10} [built]
+            | ./a.js 121 bytes [built]
+            | ./e.js 20 bytes [built]
     chunk    {6} default/async-b.js (async-b) 72 bytes <{9}> ={0}= ={1}= ={2}= ={3}= [rendered]
         > ./b [8] ./index.js 2:0-47
-     [5] ./b.js 72 bytes {6} {11} [built]
+        [5] ./b.js 72 bytes {6} {11} [built]
     chunk    {7} default/async-c.js (async-c) 72 bytes <{9}> ={0}= ={1}= ={2}= ={8}= [rendered]
         > ./c [8] ./index.js 3:0-47
-     [6] ./c.js 72 bytes {7} {12} [built]
+        [6] ./c.js 72 bytes {7} {12} [built]
     chunk    {8} default/vendors~async-c.js (vendors~async-c) 20 bytes <{9}> ={0}= ={1}= ={2}= ={7}= [rendered] split chunk (cache group: vendors) (name: vendors~async-c)
         > ./c [8] ./index.js 3:0-47
-     [4] ./node_modules/z.js 20 bytes {8} {12} [built]
+        [4] ./node_modules/z.js 20 bytes {8} {12} [built]
     chunk    {9} default/main.js (main) 147 bytes >{0}< >{1}< >{2}< >{3}< >{5}< >{6}< >{7}< >{8}< [entry] [rendered]
         > ./ main
-     [8] ./index.js 147 bytes {9} [built]
+        [8] ./index.js 147 bytes {9} [built]
     chunk   {10} default/a.js (a) 216 bytes >{2}< >{4}< [entry] [rendered]
         > ./a a
-     [0] ./d.js 20 bytes {1} {10} {11} {12} [built]
-     [1] ./node_modules/x.js 20 bytes {0} {10} {11} {12} [built]
-     [3] ./node_modules/y.js 20 bytes {3} {10} {11} [built]
-     [7] ./a.js + 1 modules 156 bytes {5} {10} [built]
-         | ./a.js 121 bytes [built]
-         | ./e.js 20 bytes [built]
+        [0] ./d.js 20 bytes {1} {10} {11} {12} [built]
+        [1] ./node_modules/x.js 20 bytes {0} {10} {11} {12} [built]
+        [3] ./node_modules/y.js 20 bytes {3} {10} {11} [built]
+        [7] ./a.js + 1 modules 156 bytes {5} {10} [built]
+            | ./a.js 121 bytes [built]
+            | ./e.js 20 bytes [built]
     chunk   {11} default/b.js (b) 152 bytes [entry] [rendered]
         > ./b b
-     [0] ./d.js 20 bytes {1} {10} {11} {12} [built]
-     [1] ./node_modules/x.js 20 bytes {0} {10} {11} {12} [built]
-     [2] ./f.js 20 bytes {2} {11} {12} [built]
-     [3] ./node_modules/y.js 20 bytes {3} {10} {11} [built]
-     [5] ./b.js 72 bytes {6} {11} [built]
+        [0] ./d.js 20 bytes {1} {10} {11} {12} [built]
+        [1] ./node_modules/x.js 20 bytes {0} {10} {11} {12} [built]
+        [2] ./f.js 20 bytes {2} {11} {12} [built]
+        [3] ./node_modules/y.js 20 bytes {3} {10} {11} [built]
+        [5] ./b.js 72 bytes {6} {11} [built]
     chunk   {12} default/c.js (c) 152 bytes [entry] [rendered]
         > ./c c
-     [0] ./d.js 20 bytes {1} {10} {11} {12} [built]
-     [1] ./node_modules/x.js 20 bytes {0} {10} {11} {12} [built]
-     [2] ./f.js 20 bytes {2} {11} {12} [built]
-     [4] ./node_modules/z.js 20 bytes {8} {12} [built]
-     [6] ./c.js 72 bytes {7} {12} [built]
+        [0] ./d.js 20 bytes {1} {10} {11} {12} [built]
+        [1] ./node_modules/x.js 20 bytes {0} {10} {11} {12} [built]
+        [2] ./f.js 20 bytes {2} {11} {12} [built]
+        [4] ./node_modules/z.js 20 bytes {8} {12} [built]
+        [6] ./c.js 72 bytes {7} {12} [built]
 Child all-chunks:
     Entrypoint main = default/main.js
     Entrypoint a = default/vendors~a~async-a~async-b~async-c~b~c.js default/vendors~a~async-a~async-b~b.js default/a.js
@@ -78,62 +78,62 @@ Child all-chunks:
         > ./a [8] ./index.js 1:0-47
         > ./b [8] ./index.js 2:0-47
         > ./c [8] ./index.js 3:0-47
-     [2] ./node_modules/x.js 20 bytes {0} [built]
+        [2] ./node_modules/x.js 20 bytes {0} [built]
     chunk    {1} default/a~async-a~async-b~async-c~b~c.js (a~async-a~async-b~async-c~b~c) 20 bytes <{9}> ={0}= ={2}= ={3}= ={4}= ={6}= ={7}= ={8}= >{2}< >{5}< [rendered] split chunk (cache group: default) (name: a~async-a~async-b~async-c~b~c)
         > ./a [8] ./index.js 1:0-47
         > ./b [8] ./index.js 2:0-47
         > ./c [8] ./index.js 3:0-47
-     [0] ./d.js 20 bytes {1} {10} {11} {12} [built]
+        [0] ./d.js 20 bytes {1} {10} {11} {12} [built]
     chunk    {2} default/async-b~async-c~async-g~b~c.js (async-b~async-c~async-g~b~c) 20 bytes <{0}> <{1}> <{10}> <{3}> <{8}> <{9}> ={0}= ={1}= ={3}= ={4}= ={5}= ={6}= ={7}= [rendered] split chunk (cache group: default) (name: async-b~async-c~async-g~b~c)
         > ./g [] 6:0-47
         > ./g [] 6:0-47
         > ./b [8] ./index.js 2:0-47
         > ./c [8] ./index.js 3:0-47
-     [1] ./f.js 20 bytes {2} {11} {12} [built]
+        [1] ./f.js 20 bytes {2} {11} {12} [built]
     chunk    {3} default/vendors~a~async-a~async-b~b.js (vendors~a~async-a~async-b~b) 20 bytes <{9}> ={0}= ={1}= ={10}= ={11}= ={2}= ={6}= ={8}= >{2}< >{5}< [initial] [rendered] split chunk (cache group: vendors) (name: vendors~a~async-a~async-b~b)
         > ./a a
         > ./b b
         > ./a [8] ./index.js 1:0-47
         > ./b [8] ./index.js 2:0-47
-     [3] ./node_modules/y.js 20 bytes {3} [built]
+        [3] ./node_modules/y.js 20 bytes {3} [built]
     chunk    {4} default/vendors~async-c~c.js (vendors~async-c~c) 20 bytes <{9}> ={0}= ={1}= ={12}= ={2}= ={7}= [initial] [rendered] split chunk (cache group: vendors) (name: vendors~async-c~c)
         > ./c c
         > ./c [8] ./index.js 3:0-47
-     [7] ./node_modules/z.js 20 bytes {4} [built]
+        [7] ./node_modules/z.js 20 bytes {4} [built]
     chunk    {5} default/async-g.js (async-g) 34 bytes <{0}> <{1}> <{10}> <{3}> <{8}> ={2}= [rendered]
         > ./g [] 6:0-47
         > ./g [] 6:0-47
-     [9] ./g.js 34 bytes {5} [built]
+        [9] ./g.js 34 bytes {5} [built]
     chunk    {6} default/async-b.js (async-b) 72 bytes <{9}> ={0}= ={1}= ={2}= ={3}= [rendered]
         > ./b [8] ./index.js 2:0-47
-     [4] ./b.js 72 bytes {6} {11} [built]
+        [4] ./b.js 72 bytes {6} {11} [built]
     chunk    {7} default/async-c.js (async-c) 72 bytes <{9}> ={0}= ={1}= ={2}= ={4}= [rendered]
         > ./c [8] ./index.js 3:0-47
-     [5] ./c.js 72 bytes {7} {12} [built]
+        [5] ./c.js 72 bytes {7} {12} [built]
     chunk    {8} default/a~async-a.js (a~async-a) 156 bytes <{9}> ={0}= ={1}= ={3}= >{2}< >{5}< [rendered] split chunk (cache group: default) (name: a~async-a)
         > ./a [8] ./index.js 1:0-47
-     [6] ./a.js + 1 modules 156 bytes {8} {10} [built]
-         | ./a.js 121 bytes [built]
-         | ./e.js 20 bytes [built]
+        [6] ./a.js + 1 modules 156 bytes {8} {10} [built]
+            | ./a.js 121 bytes [built]
+            | ./e.js 20 bytes [built]
     chunk    {9} default/main.js (main) 147 bytes >{0}< >{1}< >{2}< >{3}< >{4}< >{6}< >{7}< >{8}< [entry] [rendered]
         > ./ main
-     [8] ./index.js 147 bytes {9} [built]
+        [8] ./index.js 147 bytes {9} [built]
     chunk   {10} default/a.js (a) 176 bytes ={0}= ={3}= >{2}< >{5}< [entry] [rendered]
         > ./a a
-     [0] ./d.js 20 bytes {1} {10} {11} {12} [built]
-     [6] ./a.js + 1 modules 156 bytes {8} {10} [built]
-         | ./a.js 121 bytes [built]
-         | ./e.js 20 bytes [built]
+        [0] ./d.js 20 bytes {1} {10} {11} {12} [built]
+        [6] ./a.js + 1 modules 156 bytes {8} {10} [built]
+            | ./a.js 121 bytes [built]
+            | ./e.js 20 bytes [built]
     chunk   {11} default/b.js (b) 112 bytes ={0}= ={3}= [entry] [rendered]
         > ./b b
-     [0] ./d.js 20 bytes {1} {10} {11} {12} [built]
-     [1] ./f.js 20 bytes {2} {11} {12} [built]
-     [4] ./b.js 72 bytes {6} {11} [built]
+        [0] ./d.js 20 bytes {1} {10} {11} {12} [built]
+        [1] ./f.js 20 bytes {2} {11} {12} [built]
+        [4] ./b.js 72 bytes {6} {11} [built]
     chunk   {12} default/c.js (c) 112 bytes ={0}= ={4}= [entry] [rendered]
         > ./c c
-     [0] ./d.js 20 bytes {1} {10} {11} {12} [built]
-     [1] ./f.js 20 bytes {2} {11} {12} [built]
-     [5] ./c.js 72 bytes {7} {12} [built]
+        [0] ./d.js 20 bytes {1} {10} {11} {12} [built]
+        [1] ./f.js 20 bytes {2} {11} {12} [built]
+        [5] ./c.js 72 bytes {7} {12} [built]
 Child manual:
     Entrypoint main = default/main.js
     Entrypoint a = default/vendors.js default/a.js
@@ -146,50 +146,50 @@ Child manual:
         > ./a [8] ./index.js 1:0-47
         > ./b [8] ./index.js 2:0-47
         > ./c [8] ./index.js 3:0-47
-      [2] ./node_modules/x.js 20 bytes {0} [built]
-      [3] ./node_modules/y.js 20 bytes {0} [built]
-      [6] ./node_modules/z.js 20 bytes {0} [built]
-     [10] multi x y z 52 bytes {0} [built]
+        [2] ./node_modules/x.js 20 bytes {0} [built]
+        [3] ./node_modules/y.js 20 bytes {0} [built]
+        [6] ./node_modules/z.js 20 bytes {0} [built]
+       [10] multi x y z 52 bytes {0} [built]
     chunk    {1} default/async-g.js (async-g) 54 bytes <{0}> <{2}> <{6}> [rendered]
         > ./g [] 6:0-47
         > ./g [] 6:0-47
-     [1] ./f.js 20 bytes {1} {3} {4} {7} {8} [built]
-     [9] ./g.js 34 bytes {1} [built]
+        [1] ./f.js 20 bytes {1} {3} {4} {7} {8} [built]
+        [9] ./g.js 34 bytes {1} [built]
     chunk    {2} default/async-a.js (async-a) 176 bytes <{5}> ={0}= >{1}< [rendered]
         > ./a [8] ./index.js 1:0-47
-     [0] ./d.js 20 bytes {2} {3} {4} {6} {7} {8} [built]
-     [7] ./a.js + 1 modules 156 bytes {2} {6} [built]
-         | ./a.js 121 bytes [built]
-         | ./e.js 20 bytes [built]
+        [0] ./d.js 20 bytes {2} {3} {4} {6} {7} {8} [built]
+        [7] ./a.js + 1 modules 156 bytes {2} {6} [built]
+            | ./a.js 121 bytes [built]
+            | ./e.js 20 bytes [built]
     chunk    {3} default/async-b.js (async-b) 112 bytes <{5}> ={0}= [rendered]
         > ./b [8] ./index.js 2:0-47
-     [0] ./d.js 20 bytes {2} {3} {4} {6} {7} {8} [built]
-     [1] ./f.js 20 bytes {1} {3} {4} {7} {8} [built]
-     [4] ./b.js 72 bytes {3} {7} [built]
+        [0] ./d.js 20 bytes {2} {3} {4} {6} {7} {8} [built]
+        [1] ./f.js 20 bytes {1} {3} {4} {7} {8} [built]
+        [4] ./b.js 72 bytes {3} {7} [built]
     chunk    {4} default/async-c.js (async-c) 112 bytes <{5}> ={0}= [rendered]
         > ./c [8] ./index.js 3:0-47
-     [0] ./d.js 20 bytes {2} {3} {4} {6} {7} {8} [built]
-     [1] ./f.js 20 bytes {1} {3} {4} {7} {8} [built]
-     [5] ./c.js 72 bytes {4} {8} [built]
+        [0] ./d.js 20 bytes {2} {3} {4} {6} {7} {8} [built]
+        [1] ./f.js 20 bytes {1} {3} {4} {7} {8} [built]
+        [5] ./c.js 72 bytes {4} {8} [built]
     chunk    {5} default/main.js (main) 147 bytes >{0}< >{2}< >{3}< >{4}< [entry] [rendered]
         > ./ main
-     [8] ./index.js 147 bytes {5} [built]
+        [8] ./index.js 147 bytes {5} [built]
     chunk    {6} default/a.js (a) 176 bytes ={0}= >{1}< [entry] [rendered]
         > ./a a
-     [0] ./d.js 20 bytes {2} {3} {4} {6} {7} {8} [built]
-     [7] ./a.js + 1 modules 156 bytes {2} {6} [built]
-         | ./a.js 121 bytes [built]
-         | ./e.js 20 bytes [built]
+        [0] ./d.js 20 bytes {2} {3} {4} {6} {7} {8} [built]
+        [7] ./a.js + 1 modules 156 bytes {2} {6} [built]
+            | ./a.js 121 bytes [built]
+            | ./e.js 20 bytes [built]
     chunk    {7} default/b.js (b) 112 bytes ={0}= [entry] [rendered]
         > ./b b
-     [0] ./d.js 20 bytes {2} {3} {4} {6} {7} {8} [built]
-     [1] ./f.js 20 bytes {1} {3} {4} {7} {8} [built]
-     [4] ./b.js 72 bytes {3} {7} [built]
+        [0] ./d.js 20 bytes {2} {3} {4} {6} {7} {8} [built]
+        [1] ./f.js 20 bytes {1} {3} {4} {7} {8} [built]
+        [4] ./b.js 72 bytes {3} {7} [built]
     chunk    {8} default/c.js (c) 112 bytes ={0}= [entry] [rendered]
         > ./c c
-     [0] ./d.js 20 bytes {2} {3} {4} {6} {7} {8} [built]
-     [1] ./f.js 20 bytes {1} {3} {4} {7} {8} [built]
-     [5] ./c.js 72 bytes {4} {8} [built]
+        [0] ./d.js 20 bytes {2} {3} {4} {6} {7} {8} [built]
+        [1] ./f.js 20 bytes {1} {3} {4} {7} {8} [built]
+        [5] ./c.js 72 bytes {4} {8} [built]
 Child name-too-long:
     Entrypoint main = main.js
     Entrypoint aaaaaaaaaaaaaaaaaaaaaaaaaaaaaa = vendors~aaaaaaaaaaaaaaaaaaaaaaaaaaaaaa~async-a~async-b~async-c~bbbbbbbbbbbbbbbbbbbbbbbbbbbbbb~cccccc~50ebc41f.js vendors~aaaaaaaaaaaaaaaaaaaaaaaaaaaaaa~async-a~async-b~bbbbbbbbbbbbbbbbbbbbbbbbbbbbbb.js aaaaaaaaaaaaaaaaaaaaaaaaaaaaaa.js
@@ -202,62 +202,62 @@ Child name-too-long:
         > ./a [8] ./index.js 1:0-47
         > ./b [8] ./index.js 2:0-47
         > ./c [8] ./index.js 3:0-47
-     [2] ./node_modules/x.js 20 bytes {0} [built]
+        [2] ./node_modules/x.js 20 bytes {0} [built]
     chunk    {1} aaaaaaaaaaaaaaaaaaaaaaaaaaaaaa~async-a~async-b~async-c~bbbbbbbbbbbbbbbbbbbbbbbbbbbbbb~cccccccccccccc~18066793.js (aaaaaaaaaaaaaaaaaaaaaaaaaaaaaa~async-a~async-b~async-c~bbbbbbbbbbbbbbbbbbbbbbbbbbbbbb~cccccccccccccc~18066793) 20 bytes <{9}> ={0}= ={2}= ={3}= ={4}= ={6}= ={7}= ={8}= >{2}< >{5}< [rendered] split chunk (cache group: default) (name: aaaaaaaaaaaaaaaaaaaaaaaaaaaaaa~async-a~async-b~async-c~bbbbbbbbbbbbbbbbbbbbbbbbbbbbbb~cccccccccccccc~18066793)
         > ./a [8] ./index.js 1:0-47
         > ./b [8] ./index.js 2:0-47
         > ./c [8] ./index.js 3:0-47
-     [0] ./d.js 20 bytes {1} {10} {11} {12} [built]
+        [0] ./d.js 20 bytes {1} {10} {11} {12} [built]
     chunk    {2} async-b~async-c~async-g~bbbbbbbbbbbbbbbbbbbbbbbbbbbbbb~cccccccccccccccccccccccccccccc.js (async-b~async-c~async-g~bbbbbbbbbbbbbbbbbbbbbbbbbbbbbb~cccccccccccccccccccccccccccccc) 20 bytes <{0}> <{1}> <{10}> <{3}> <{8}> <{9}> ={0}= ={1}= ={3}= ={4}= ={5}= ={6}= ={7}= [rendered] split chunk (cache group: default) (name: async-b~async-c~async-g~bbbbbbbbbbbbbbbbbbbbbbbbbbbbbb~cccccccccccccccccccccccccccccc)
         > ./g [] 6:0-47
         > ./g [] 6:0-47
         > ./b [8] ./index.js 2:0-47
         > ./c [8] ./index.js 3:0-47
-     [1] ./f.js 20 bytes {2} {11} {12} [built]
+        [1] ./f.js 20 bytes {2} {11} {12} [built]
     chunk    {3} vendors~aaaaaaaaaaaaaaaaaaaaaaaaaaaaaa~async-a~async-b~bbbbbbbbbbbbbbbbbbbbbbbbbbbbbb.js (vendors~aaaaaaaaaaaaaaaaaaaaaaaaaaaaaa~async-a~async-b~bbbbbbbbbbbbbbbbbbbbbbbbbbbbbb) 20 bytes <{9}> ={0}= ={1}= ={10}= ={11}= ={2}= ={6}= ={8}= >{2}< >{5}< [initial] [rendered] split chunk (cache group: vendors) (name: vendors~aaaaaaaaaaaaaaaaaaaaaaaaaaaaaa~async-a~async-b~bbbbbbbbbbbbbbbbbbbbbbbbbbbbbb)
         > ./a aaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
         > ./b bbbbbbbbbbbbbbbbbbbbbbbbbbbbbb
         > ./a [8] ./index.js 1:0-47
         > ./b [8] ./index.js 2:0-47
-     [3] ./node_modules/y.js 20 bytes {3} [built]
+        [3] ./node_modules/y.js 20 bytes {3} [built]
     chunk    {4} vendors~async-c~cccccccccccccccccccccccccccccc.js (vendors~async-c~cccccccccccccccccccccccccccccc) 20 bytes <{9}> ={0}= ={1}= ={12}= ={2}= ={7}= [initial] [rendered] split chunk (cache group: vendors) (name: vendors~async-c~cccccccccccccccccccccccccccccc)
         > ./c cccccccccccccccccccccccccccccc
         > ./c [8] ./index.js 3:0-47
-     [7] ./node_modules/z.js 20 bytes {4} [built]
+        [7] ./node_modules/z.js 20 bytes {4} [built]
     chunk    {5} async-g.js (async-g) 34 bytes <{0}> <{1}> <{10}> <{3}> <{8}> ={2}= [rendered]
         > ./g [] 6:0-47
         > ./g [] 6:0-47
-     [9] ./g.js 34 bytes {5} [built]
+        [9] ./g.js 34 bytes {5} [built]
     chunk    {6} async-b.js (async-b) 72 bytes <{9}> ={0}= ={1}= ={2}= ={3}= [rendered]
         > ./b [8] ./index.js 2:0-47
-     [4] ./b.js 72 bytes {6} {11} [built]
+        [4] ./b.js 72 bytes {6} {11} [built]
     chunk    {7} async-c.js (async-c) 72 bytes <{9}> ={0}= ={1}= ={2}= ={4}= [rendered]
         > ./c [8] ./index.js 3:0-47
-     [5] ./c.js 72 bytes {7} {12} [built]
+        [5] ./c.js 72 bytes {7} {12} [built]
     chunk    {8} aaaaaaaaaaaaaaaaaaaaaaaaaaaaaa~async-a.js (aaaaaaaaaaaaaaaaaaaaaaaaaaaaaa~async-a) 156 bytes <{9}> ={0}= ={1}= ={3}= >{2}< >{5}< [rendered] split chunk (cache group: default) (name: aaaaaaaaaaaaaaaaaaaaaaaaaaaaaa~async-a)
         > ./a [8] ./index.js 1:0-47
-     [6] ./a.js + 1 modules 156 bytes {8} {10} [built]
-         | ./a.js 121 bytes [built]
-         | ./e.js 20 bytes [built]
+        [6] ./a.js + 1 modules 156 bytes {8} {10} [built]
+            | ./a.js 121 bytes [built]
+            | ./e.js 20 bytes [built]
     chunk    {9} main.js (main) 147 bytes >{0}< >{1}< >{2}< >{3}< >{4}< >{6}< >{7}< >{8}< [entry] [rendered]
         > ./ main
-     [8] ./index.js 147 bytes {9} [built]
+        [8] ./index.js 147 bytes {9} [built]
     chunk   {10} aaaaaaaaaaaaaaaaaaaaaaaaaaaaaa.js (aaaaaaaaaaaaaaaaaaaaaaaaaaaaaa) 176 bytes ={0}= ={3}= >{2}< >{5}< [entry] [rendered]
         > ./a aaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
-     [0] ./d.js 20 bytes {1} {10} {11} {12} [built]
-     [6] ./a.js + 1 modules 156 bytes {8} {10} [built]
-         | ./a.js 121 bytes [built]
-         | ./e.js 20 bytes [built]
+        [0] ./d.js 20 bytes {1} {10} {11} {12} [built]
+        [6] ./a.js + 1 modules 156 bytes {8} {10} [built]
+            | ./a.js 121 bytes [built]
+            | ./e.js 20 bytes [built]
     chunk   {11} bbbbbbbbbbbbbbbbbbbbbbbbbbbbbb.js (bbbbbbbbbbbbbbbbbbbbbbbbbbbbbb) 112 bytes ={0}= ={3}= [entry] [rendered]
         > ./b bbbbbbbbbbbbbbbbbbbbbbbbbbbbbb
-     [0] ./d.js 20 bytes {1} {10} {11} {12} [built]
-     [1] ./f.js 20 bytes {2} {11} {12} [built]
-     [4] ./b.js 72 bytes {6} {11} [built]
+        [0] ./d.js 20 bytes {1} {10} {11} {12} [built]
+        [1] ./f.js 20 bytes {2} {11} {12} [built]
+        [4] ./b.js 72 bytes {6} {11} [built]
     chunk   {12} cccccccccccccccccccccccccccccc.js (cccccccccccccccccccccccccccccc) 112 bytes ={0}= ={4}= [entry] [rendered]
         > ./c cccccccccccccccccccccccccccccc
-     [0] ./d.js 20 bytes {1} {10} {11} {12} [built]
-     [1] ./f.js 20 bytes {2} {11} {12} [built]
-     [5] ./c.js 72 bytes {7} {12} [built]
+        [0] ./d.js 20 bytes {1} {10} {11} {12} [built]
+        [1] ./f.js 20 bytes {2} {11} {12} [built]
+        [5] ./c.js 72 bytes {7} {12} [built]
 Child custom-chunks-filter:
     Entrypoint main = default/main.js
     Entrypoint a = default/a.js
@@ -269,63 +269,63 @@ Child custom-chunks-filter:
         > ./a [8] ./index.js 1:0-47
         > ./b [8] ./index.js 2:0-47
         > ./c [8] ./index.js 3:0-47
-     [2] ./node_modules/x.js 20 bytes {0} {10} [built]
+        [2] ./node_modules/x.js 20 bytes {0} {10} [built]
     chunk    {1} default/async-a~async-b~async-c~b~c.js (async-a~async-b~async-c~b~c) 20 bytes <{9}> ={0}= ={2}= ={3}= ={4}= ={6}= ={7}= ={8}= >{2}< >{5}< [rendered] split chunk (cache group: default) (name: async-a~async-b~async-c~b~c)
         > ./a [8] ./index.js 1:0-47
         > ./b [8] ./index.js 2:0-47
         > ./c [8] ./index.js 3:0-47
-     [0] ./d.js 20 bytes {1} {10} {11} {12} [built]
+        [0] ./d.js 20 bytes {1} {10} {11} {12} [built]
     chunk    {2} default/async-b~async-c~async-g~b~c.js (async-b~async-c~async-g~b~c) 20 bytes <{0}> <{1}> <{10}> <{3}> <{6}> <{9}> ={0}= ={1}= ={3}= ={4}= ={5}= ={7}= ={8}= [rendered] split chunk (cache group: default) (name: async-b~async-c~async-g~b~c)
         > ./g [] 6:0-47
         > ./g [] 6:0-47
         > ./b [8] ./index.js 2:0-47
         > ./c [8] ./index.js 3:0-47
-     [1] ./f.js 20 bytes {2} {11} {12} [built]
+        [1] ./f.js 20 bytes {2} {11} {12} [built]
     chunk    {3} default/vendors~async-a~async-b~b.js (vendors~async-a~async-b~b) 20 bytes <{9}> ={0}= ={1}= ={11}= ={2}= ={6}= ={7}= >{2}< >{5}< [initial] [rendered] split chunk (cache group: vendors) (name: vendors~async-a~async-b~b)
         > ./b b
         > ./a [8] ./index.js 1:0-47
         > ./b [8] ./index.js 2:0-47
-     [3] ./node_modules/y.js 20 bytes {3} {10} [built]
+        [3] ./node_modules/y.js 20 bytes {3} {10} [built]
     chunk    {4} default/vendors~async-c~c.js (vendors~async-c~c) 20 bytes <{9}> ={0}= ={1}= ={12}= ={2}= ={8}= [initial] [rendered] split chunk (cache group: vendors) (name: vendors~async-c~c)
         > ./c c
         > ./c [8] ./index.js 3:0-47
-     [7] ./node_modules/z.js 20 bytes {4} [built]
+        [7] ./node_modules/z.js 20 bytes {4} [built]
     chunk    {5} default/async-g.js (async-g) 34 bytes <{0}> <{1}> <{10}> <{3}> <{6}> ={2}= [rendered]
         > ./g [] 6:0-47
         > ./g [] 6:0-47
-     [9] ./g.js 34 bytes {5} [built]
+        [9] ./g.js 34 bytes {5} [built]
     chunk    {6} default/async-a.js (async-a) 156 bytes <{9}> ={0}= ={1}= ={3}= >{2}< >{5}< [rendered]
         > ./a [8] ./index.js 1:0-47
-     [6] ./a.js + 1 modules 156 bytes {6} {10} [built]
-         | ./a.js 121 bytes [built]
-         | ./e.js 20 bytes [built]
+        [6] ./a.js + 1 modules 156 bytes {6} {10} [built]
+            | ./a.js 121 bytes [built]
+            | ./e.js 20 bytes [built]
     chunk    {7} default/async-b.js (async-b) 72 bytes <{9}> ={0}= ={1}= ={2}= ={3}= [rendered]
         > ./b [8] ./index.js 2:0-47
-     [4] ./b.js 72 bytes {7} {11} [built]
+        [4] ./b.js 72 bytes {7} {11} [built]
     chunk    {8} default/async-c.js (async-c) 72 bytes <{9}> ={0}= ={1}= ={2}= ={4}= [rendered]
         > ./c [8] ./index.js 3:0-47
-     [5] ./c.js 72 bytes {8} {12} [built]
+        [5] ./c.js 72 bytes {8} {12} [built]
     chunk    {9} default/main.js (main) 147 bytes >{0}< >{1}< >{2}< >{3}< >{4}< >{6}< >{7}< >{8}< [entry] [rendered]
         > ./ main
-     [8] ./index.js 147 bytes {9} [built]
+        [8] ./index.js 147 bytes {9} [built]
     chunk   {10} default/a.js (a) 216 bytes >{2}< >{5}< [entry] [rendered]
         > ./a a
-     [0] ./d.js 20 bytes {1} {10} {11} {12} [built]
-     [2] ./node_modules/x.js 20 bytes {0} {10} [built]
-     [3] ./node_modules/y.js 20 bytes {3} {10} [built]
-     [6] ./a.js + 1 modules 156 bytes {6} {10} [built]
-         | ./a.js 121 bytes [built]
-         | ./e.js 20 bytes [built]
+        [0] ./d.js 20 bytes {1} {10} {11} {12} [built]
+        [2] ./node_modules/x.js 20 bytes {0} {10} [built]
+        [3] ./node_modules/y.js 20 bytes {3} {10} [built]
+        [6] ./a.js + 1 modules 156 bytes {6} {10} [built]
+            | ./a.js 121 bytes [built]
+            | ./e.js 20 bytes [built]
     chunk   {11} default/b.js (b) 112 bytes ={0}= ={3}= [entry] [rendered]
         > ./b b
-     [0] ./d.js 20 bytes {1} {10} {11} {12} [built]
-     [1] ./f.js 20 bytes {2} {11} {12} [built]
-     [4] ./b.js 72 bytes {7} {11} [built]
+        [0] ./d.js 20 bytes {1} {10} {11} {12} [built]
+        [1] ./f.js 20 bytes {2} {11} {12} [built]
+        [4] ./b.js 72 bytes {7} {11} [built]
     chunk   {12} default/c.js (c) 112 bytes ={0}= ={4}= [entry] [rendered]
         > ./c c
-     [0] ./d.js 20 bytes {1} {10} {11} {12} [built]
-     [1] ./f.js 20 bytes {2} {11} {12} [built]
-     [5] ./c.js 72 bytes {8} {12} [built]
+        [0] ./d.js 20 bytes {1} {10} {11} {12} [built]
+        [1] ./f.js 20 bytes {2} {11} {12} [built]
+        [5] ./c.js 72 bytes {8} {12} [built]
 Child custom-chunks-filter-in-cache-groups:
     Entrypoint main = default/main.js
     Entrypoint a = default/a.js
@@ -337,49 +337,49 @@ Child custom-chunks-filter-in-cache-groups:
         > ./a [8] ./index.js 1:0-47
         > ./b [8] ./index.js 2:0-47
         > ./c [8] ./index.js 3:0-47
-      [2] ./node_modules/x.js 20 bytes {0} {6} [built]
-      [3] ./node_modules/y.js 20 bytes {0} {6} [built]
-      [6] ./node_modules/z.js 20 bytes {0} [built]
-     [10] multi x y z 52 bytes {0} [built]
+        [2] ./node_modules/x.js 20 bytes {0} {6} [built]
+        [3] ./node_modules/y.js 20 bytes {0} {6} [built]
+        [6] ./node_modules/z.js 20 bytes {0} [built]
+       [10] multi x y z 52 bytes {0} [built]
     chunk    {1} default/async-g.js (async-g) 54 bytes <{0}> <{2}> <{6}> [rendered]
         > ./g [] 6:0-47
         > ./g [] 6:0-47
-     [1] ./f.js 20 bytes {1} {3} {4} {7} {8} [built]
-     [9] ./g.js 34 bytes {1} [built]
+        [1] ./f.js 20 bytes {1} {3} {4} {7} {8} [built]
+        [9] ./g.js 34 bytes {1} [built]
     chunk    {2} default/async-a.js (async-a) 176 bytes <{5}> ={0}= >{1}< [rendered]
         > ./a [8] ./index.js 1:0-47
-     [0] ./d.js 20 bytes {2} {3} {4} {6} {7} {8} [built]
-     [7] ./a.js + 1 modules 156 bytes {2} {6} [built]
-         | ./a.js 121 bytes [built]
-         | ./e.js 20 bytes [built]
+        [0] ./d.js 20 bytes {2} {3} {4} {6} {7} {8} [built]
+        [7] ./a.js + 1 modules 156 bytes {2} {6} [built]
+            | ./a.js 121 bytes [built]
+            | ./e.js 20 bytes [built]
     chunk    {3} default/async-b.js (async-b) 112 bytes <{5}> ={0}= [rendered]
         > ./b [8] ./index.js 2:0-47
-     [0] ./d.js 20 bytes {2} {3} {4} {6} {7} {8} [built]
-     [1] ./f.js 20 bytes {1} {3} {4} {7} {8} [built]
-     [4] ./b.js 72 bytes {3} {7} [built]
+        [0] ./d.js 20 bytes {2} {3} {4} {6} {7} {8} [built]
+        [1] ./f.js 20 bytes {1} {3} {4} {7} {8} [built]
+        [4] ./b.js 72 bytes {3} {7} [built]
     chunk    {4} default/async-c.js (async-c) 112 bytes <{5}> ={0}= [rendered]
         > ./c [8] ./index.js 3:0-47
-     [0] ./d.js 20 bytes {2} {3} {4} {6} {7} {8} [built]
-     [1] ./f.js 20 bytes {1} {3} {4} {7} {8} [built]
-     [5] ./c.js 72 bytes {4} {8} [built]
+        [0] ./d.js 20 bytes {2} {3} {4} {6} {7} {8} [built]
+        [1] ./f.js 20 bytes {1} {3} {4} {7} {8} [built]
+        [5] ./c.js 72 bytes {4} {8} [built]
     chunk    {5} default/main.js (main) 147 bytes >{0}< >{2}< >{3}< >{4}< [entry] [rendered]
         > ./ main
-     [8] ./index.js 147 bytes {5} [built]
+        [8] ./index.js 147 bytes {5} [built]
     chunk    {6} default/a.js (a) 216 bytes >{1}< [entry] [rendered]
         > ./a a
-     [0] ./d.js 20 bytes {2} {3} {4} {6} {7} {8} [built]
-     [2] ./node_modules/x.js 20 bytes {0} {6} [built]
-     [3] ./node_modules/y.js 20 bytes {0} {6} [built]
-     [7] ./a.js + 1 modules 156 bytes {2} {6} [built]
-         | ./a.js 121 bytes [built]
-         | ./e.js 20 bytes [built]
+        [0] ./d.js 20 bytes {2} {3} {4} {6} {7} {8} [built]
+        [2] ./node_modules/x.js 20 bytes {0} {6} [built]
+        [3] ./node_modules/y.js 20 bytes {0} {6} [built]
+        [7] ./a.js + 1 modules 156 bytes {2} {6} [built]
+            | ./a.js 121 bytes [built]
+            | ./e.js 20 bytes [built]
     chunk    {7} default/b.js (b) 112 bytes ={0}= [entry] [rendered]
         > ./b b
-     [0] ./d.js 20 bytes {2} {3} {4} {6} {7} {8} [built]
-     [1] ./f.js 20 bytes {1} {3} {4} {7} {8} [built]
-     [4] ./b.js 72 bytes {3} {7} [built]
+        [0] ./d.js 20 bytes {2} {3} {4} {6} {7} {8} [built]
+        [1] ./f.js 20 bytes {1} {3} {4} {7} {8} [built]
+        [4] ./b.js 72 bytes {3} {7} [built]
     chunk    {8} default/c.js (c) 112 bytes ={0}= [entry] [rendered]
         > ./c c
-     [0] ./d.js 20 bytes {2} {3} {4} {6} {7} {8} [built]
-     [1] ./f.js 20 bytes {1} {3} {4} {7} {8} [built]
-     [5] ./c.js 72 bytes {4} {8} [built]
\ No newline at end of file
+        [0] ./d.js 20 bytes {2} {3} {4} {6} {7} {8} [built]
+        [1] ./f.js 20 bytes {1} {3} {4} {7} {8} [built]
+        [5] ./c.js 72 bytes {4} {8} [built]
\ No newline at end of file
diff --git a/test/statsCases/tree-shaking/expected.txt b/test/statsCases/tree-shaking/expected.txt
index 8e593d527..6941c6aa0 100644
--- a/test/statsCases/tree-shaking/expected.txt
+++ b/test/statsCases/tree-shaking/expected.txt
@@ -4,31 +4,31 @@ Built at: Thu Jan 01 1970 00:00:00 GMT
     Asset      Size  Chunks             Chunk Names
 bundle.js  7.27 KiB       0  [emitted]  main
 Entrypoint main = bundle.js
- [0] ./a.js 13 bytes {0} [built]
-     [exports: a]
-     [all exports used]
- [1] ./b.js 13 bytes {0} [built]
-     [exports: b]
-     [no exports used]
- [2] ./unknown.js 0 bytes {0} [built]
-     [only some exports used: c]
- [3] ./unknown2.js 0 bytes {0} [built]
-     [only some exports used: y]
- [4] ./index.js 315 bytes {0} [built]
-     [no exports]
- [5] ./require.include.js 36 bytes {0} [built]
-     [exports: a, default]
-     [no exports used]
- [6] ./reexport-known.js 49 bytes {0} [built]
-     [exports: a, b]
-     [only some exports used: a]
- [7] ./reexport-star-known.js 41 bytes {0} [built]
-     [exports: a, b]
-     [only some exports used: a]
- [8] ./edge.js 45 bytes {0} [built]
-     [only some exports used: y]
- [9] ./reexport-unknown.js 83 bytes {0} [built]
-     [exports: a, b, c, d]
-     [only some exports used: a, c]
-[10] ./reexport-star-unknown.js 68 bytes {0} [built]
-     [only some exports used: a, c]
\ No newline at end of file
+   [0] ./a.js 13 bytes {0} [built]
+       [exports: a]
+       [only some exports used: a]
+   [1] ./b.js 13 bytes {0} [built]
+       [exports: b]
+       [no exports used]
+   [2] ./unknown.js 0 bytes {0} [built]
+       [only some exports used: c]
+   [3] ./unknown2.js 0 bytes {0} [built]
+       [only some exports used: y]
+   [4] ./index.js 315 bytes {0} [built]
+       [no exports]
+   [5] ./require.include.js 36 bytes {0} [built]
+       [exports: a, default]
+       [no exports used]
+   [6] ./reexport-known.js 49 bytes {0} [built]
+       [exports: a, b]
+       [only some exports used: a]
+   [7] ./reexport-star-known.js 41 bytes {0} [built]
+       [exports: a, b]
+       [only some exports used: a]
+   [8] ./edge.js 45 bytes {0} [built]
+       [only some exports used: y]
+   [9] ./reexport-unknown.js 83 bytes {0} [built]
+       [exports: a, b, c, d]
+       [only some exports used: a, c]
+  [10] ./reexport-star-unknown.js 68 bytes {0} [built]
+       [only some exports used: a, c]
\ No newline at end of file
diff --git a/test/statsCases/warnings-uglifyjs/expected.txt b/test/statsCases/warnings-uglifyjs/expected.txt
index 41e24319d..f10b033cd 100644
--- a/test/statsCases/warnings-uglifyjs/expected.txt
+++ b/test/statsCases/warnings-uglifyjs/expected.txt
@@ -4,9 +4,9 @@ Built at: Thu Jan 01 1970 00:00:00 GMT
     Asset      Size  Chunks             Chunk Names
 bundle.js  2.19 KiB       0  [emitted]  main
 Entrypoint main = bundle.js
-[0] ./index.js 299 bytes {0} [built]
-[1] ./a.js 249 bytes {0} [built]
-[2] (webpack)/buildin/module.js 497 bytes {0} [built]
+   [0] ./index.js 299 bytes {0} [built]
+   [1] ./a.js 249 bytes {0} [built]
+   [2] (webpack)/buildin/module.js 497 bytes {0} [built]
 
 WARNING in bundle.js from UglifyJs
 Dropping unused function someUnRemoteUsedFunction1 [./a.js:3,0]