diff --git a/CHANGELOG.md b/CHANGELOG.md
index 25f18b9e7..0e58beeb0 100644
--- a/CHANGELOG.md
+++ b/CHANGELOG.md
@@ -1,5 +1,9 @@
# Changelog
+## 4.2.0
+
+* [Pass `context' to error formatters](https://github.com/TypeStrong/ts-loader/pull/756) - thanks @gustavderdrache!
+
## v4.1.0
* [Fix slow `experimentalWatchApi`](https://github.com/TypeStrong/ts-loader/pull/747) (#746) - thanks @sheetalkamat and @MLoughry!
diff --git a/package.json b/package.json
index cb8e14cc5..fbfe76e1a 100644
--- a/package.json
+++ b/package.json
@@ -1,6 +1,6 @@
{
"name": "ts-loader",
- "version": "4.1.0",
+ "version": "4.2.0",
"description": "TypeScript loader for webpack",
"main": "index.js",
"scripts": {
diff --git a/test/comparison-tests/aliasResolution/expectedOutput-2.8/bundle.js b/test/comparison-tests/aliasResolution/expectedOutput-2.8/bundle.js
new file mode 100644
index 000000000..ec4907b0a
--- /dev/null
+++ b/test/comparison-tests/aliasResolution/expectedOutput-2.8/bundle.js
@@ -0,0 +1,98 @@
+/******/ (function(modules) { // webpackBootstrap
+/******/ // The module cache
+/******/ var installedModules = {};
+/******/
+/******/ // The require function
+/******/ function __webpack_require__(moduleId) {
+/******/
+/******/ // Check if module is in cache
+/******/ if(installedModules[moduleId]) {
+/******/ return installedModules[moduleId].exports;
+/******/ }
+/******/ // Create a new module (and put it into the cache)
+/******/ var module = installedModules[moduleId] = {
+/******/ i: moduleId,
+/******/ l: false,
+/******/ exports: {}
+/******/ };
+/******/
+/******/ // Execute the module function
+/******/ modules[moduleId].call(module.exports, module, module.exports, __webpack_require__);
+/******/
+/******/ // Flag the module as loaded
+/******/ module.l = true;
+/******/
+/******/ // Return the exports of the module
+/******/ return module.exports;
+/******/ }
+/******/
+/******/
+/******/ // expose the modules object (__webpack_modules__)
+/******/ __webpack_require__.m = modules;
+/******/
+/******/ // expose the module cache
+/******/ __webpack_require__.c = installedModules;
+/******/
+/******/ // define getter function for harmony exports
+/******/ __webpack_require__.d = function(exports, name, getter) {
+/******/ if(!__webpack_require__.o(exports, name)) {
+/******/ Object.defineProperty(exports, name, {
+/******/ configurable: false,
+/******/ enumerable: true,
+/******/ get: getter
+/******/ });
+/******/ }
+/******/ };
+/******/
+/******/ // define __esModule on exports
+/******/ __webpack_require__.r = function(exports) {
+/******/ Object.defineProperty(exports, '__esModule', { value: true });
+/******/ };
+/******/
+/******/ // getDefaultExport function for compatibility with non-harmony modules
+/******/ __webpack_require__.n = function(module) {
+/******/ var getter = module && module.__esModule ?
+/******/ function getDefault() { return module['default']; } :
+/******/ function getModuleExports() { return module; };
+/******/ __webpack_require__.d(getter, 'a', getter);
+/******/ return getter;
+/******/ };
+/******/
+/******/ // Object.prototype.hasOwnProperty.call
+/******/ __webpack_require__.o = function(object, property) { return Object.prototype.hasOwnProperty.call(object, property); };
+/******/
+/******/ // __webpack_public_path__
+/******/ __webpack_require__.p = "";
+/******/
+/******/
+/******/ // Load entry module and return exports
+/******/ return __webpack_require__(__webpack_require__.s = "./app.ts");
+/******/ })
+/************************************************************************/
+/******/ ({
+
+/***/ "./app.ts":
+/*!****************!*\
+ !*** ./app.ts ***!
+ \****************/
+/*! no static exports found */
+/***/ (function(module, exports, __webpack_require__) {
+
+"use strict";
+eval("\nexports.__esModule = true;\nvar myComponent = __webpack_require__(/*! components/myComponent */ \"./common/components/myComponent.ts\");\nconsole.log(myComponent);\n\n\n//# sourceURL=webpack:///./app.ts?");
+
+/***/ }),
+
+/***/ "./common/components/myComponent.ts":
+/*!******************************************!*\
+ !*** ./common/components/myComponent.ts ***!
+ \******************************************/
+/*! no static exports found */
+/***/ (function(module, exports, __webpack_require__) {
+
+"use strict";
+eval("\nmodule.exports = 'myComponent';\n\n\n//# sourceURL=webpack:///./common/components/myComponent.ts?");
+
+/***/ })
+
+/******/ });
\ No newline at end of file
diff --git a/test/comparison-tests/aliasResolution/expectedOutput-2.8/output.transpiled.txt b/test/comparison-tests/aliasResolution/expectedOutput-2.8/output.transpiled.txt
new file mode 100644
index 000000000..0786f95b0
--- /dev/null
+++ b/test/comparison-tests/aliasResolution/expectedOutput-2.8/output.transpiled.txt
@@ -0,0 +1,6 @@
+Built at: 2018-3-18 09:14:55
+ Asset Size Chunks Chunk Names
+bundle.js 3.37 KiB main [emitted] main
+Entrypoint main = bundle.js
+[./app.ts] 120 bytes {main} [built]
+[./common/components/myComponent.ts] 46 bytes {main} [built]
\ No newline at end of file
diff --git a/test/comparison-tests/aliasResolution/expectedOutput-2.8/output.txt b/test/comparison-tests/aliasResolution/expectedOutput-2.8/output.txt
new file mode 100644
index 000000000..58342f939
--- /dev/null
+++ b/test/comparison-tests/aliasResolution/expectedOutput-2.8/output.txt
@@ -0,0 +1,11 @@
+Built at: 2018-3-18 09:14:50
+ Asset Size Chunks Chunk Names
+bundle.js 3.37 KiB main [emitted] main
+Entrypoint main = bundle.js
+[./app.ts] 120 bytes {main} [built] [1 error]
+[./common/components/myComponent.ts] 46 bytes {main} [built]
+
+ERROR in app.ts
+./app.ts
+[90m[tsl] [39m[1m[31mERROR[39m[22m[1m[31m in [39m[22m[1m[36mapp.ts(2,31)[39m[22m
+[1m[31m TS2307: Cannot find module 'components/myComponent2'.[39m[22m
\ No newline at end of file
diff --git a/test/comparison-tests/aliasResolution/expectedOutput-2.8/patch0/bundle.js b/test/comparison-tests/aliasResolution/expectedOutput-2.8/patch0/bundle.js
new file mode 100644
index 000000000..7abc9b6a9
--- /dev/null
+++ b/test/comparison-tests/aliasResolution/expectedOutput-2.8/patch0/bundle.js
@@ -0,0 +1,98 @@
+/******/ (function(modules) { // webpackBootstrap
+/******/ // The module cache
+/******/ var installedModules = {};
+/******/
+/******/ // The require function
+/******/ function __webpack_require__(moduleId) {
+/******/
+/******/ // Check if module is in cache
+/******/ if(installedModules[moduleId]) {
+/******/ return installedModules[moduleId].exports;
+/******/ }
+/******/ // Create a new module (and put it into the cache)
+/******/ var module = installedModules[moduleId] = {
+/******/ i: moduleId,
+/******/ l: false,
+/******/ exports: {}
+/******/ };
+/******/
+/******/ // Execute the module function
+/******/ modules[moduleId].call(module.exports, module, module.exports, __webpack_require__);
+/******/
+/******/ // Flag the module as loaded
+/******/ module.l = true;
+/******/
+/******/ // Return the exports of the module
+/******/ return module.exports;
+/******/ }
+/******/
+/******/
+/******/ // expose the modules object (__webpack_modules__)
+/******/ __webpack_require__.m = modules;
+/******/
+/******/ // expose the module cache
+/******/ __webpack_require__.c = installedModules;
+/******/
+/******/ // define getter function for harmony exports
+/******/ __webpack_require__.d = function(exports, name, getter) {
+/******/ if(!__webpack_require__.o(exports, name)) {
+/******/ Object.defineProperty(exports, name, {
+/******/ configurable: false,
+/******/ enumerable: true,
+/******/ get: getter
+/******/ });
+/******/ }
+/******/ };
+/******/
+/******/ // define __esModule on exports
+/******/ __webpack_require__.r = function(exports) {
+/******/ Object.defineProperty(exports, '__esModule', { value: true });
+/******/ };
+/******/
+/******/ // getDefaultExport function for compatibility with non-harmony modules
+/******/ __webpack_require__.n = function(module) {
+/******/ var getter = module && module.__esModule ?
+/******/ function getDefault() { return module['default']; } :
+/******/ function getModuleExports() { return module; };
+/******/ __webpack_require__.d(getter, 'a', getter);
+/******/ return getter;
+/******/ };
+/******/
+/******/ // Object.prototype.hasOwnProperty.call
+/******/ __webpack_require__.o = function(object, property) { return Object.prototype.hasOwnProperty.call(object, property); };
+/******/
+/******/ // __webpack_public_path__
+/******/ __webpack_require__.p = "";
+/******/
+/******/
+/******/ // Load entry module and return exports
+/******/ return __webpack_require__(__webpack_require__.s = "./app.ts");
+/******/ })
+/************************************************************************/
+/******/ ({
+
+/***/ "./app.ts":
+/*!****************!*\
+ !*** ./app.ts ***!
+ \****************/
+/*! no static exports found */
+/***/ (function(module, exports, __webpack_require__) {
+
+"use strict";
+eval("\nexports.__esModule = true;\nvar myComponent = __webpack_require__(/*! components/myComponent */ \"./common/components/myComponent.ts\");\nconsole.log(myComponent);\n\n\n//# sourceURL=webpack:///./app.ts?");
+
+/***/ }),
+
+/***/ "./common/components/myComponent.ts":
+/*!******************************************!*\
+ !*** ./common/components/myComponent.ts ***!
+ \******************************************/
+/*! no static exports found */
+/***/ (function(module, exports, __webpack_require__) {
+
+"use strict";
+eval("\nmodule.exports = 'changed it';\n\n\n//# sourceURL=webpack:///./common/components/myComponent.ts?");
+
+/***/ })
+
+/******/ });
\ No newline at end of file
diff --git a/test/comparison-tests/aliasResolution/expectedOutput-2.8/patch0/output.transpiled.txt b/test/comparison-tests/aliasResolution/expectedOutput-2.8/patch0/output.transpiled.txt
new file mode 100644
index 000000000..c6061205d
--- /dev/null
+++ b/test/comparison-tests/aliasResolution/expectedOutput-2.8/patch0/output.transpiled.txt
@@ -0,0 +1,6 @@
+Built at: 2018-3-18 09:14:57
+ Asset Size Chunks Chunk Names
+bundle.js 3.37 KiB main [emitted] main
+Entrypoint main = bundle.js
+[./app.ts] 120 bytes {main}
+[./common/components/myComponent.ts] 45 bytes {main} [built]
\ No newline at end of file
diff --git a/test/comparison-tests/aliasResolution/expectedOutput-2.8/patch0/output.txt b/test/comparison-tests/aliasResolution/expectedOutput-2.8/patch0/output.txt
new file mode 100644
index 000000000..3e7b2e41e
--- /dev/null
+++ b/test/comparison-tests/aliasResolution/expectedOutput-2.8/patch0/output.txt
@@ -0,0 +1,11 @@
+Built at: 2018-3-18 09:14:53
+ Asset Size Chunks Chunk Names
+bundle.js 3.37 KiB main [emitted] main
+Entrypoint main = bundle.js
+[./app.ts] 120 bytes {main} [built] [1 error]
+[./common/components/myComponent.ts] 45 bytes {main} [built]
+
+ERROR in app.ts
+./app.ts
+[90m[tsl] [39m[1m[31mERROR[39m[22m[1m[31m in [39m[22m[1m[36mapp.ts(2,31)[39m[22m
+[1m[31m TS2307: Cannot find module 'components/myComponent2'.[39m[22m
\ No newline at end of file
diff --git a/test/comparison-tests/allowJs-entryFileIsJs/expectedOutput-2.8/bundle.js b/test/comparison-tests/allowJs-entryFileIsJs/expectedOutput-2.8/bundle.js
new file mode 100644
index 000000000..e51fde020
--- /dev/null
+++ b/test/comparison-tests/allowJs-entryFileIsJs/expectedOutput-2.8/bundle.js
@@ -0,0 +1,85 @@
+/******/ (function(modules) { // webpackBootstrap
+/******/ // The module cache
+/******/ var installedModules = {};
+/******/
+/******/ // The require function
+/******/ function __webpack_require__(moduleId) {
+/******/
+/******/ // Check if module is in cache
+/******/ if(installedModules[moduleId]) {
+/******/ return installedModules[moduleId].exports;
+/******/ }
+/******/ // Create a new module (and put it into the cache)
+/******/ var module = installedModules[moduleId] = {
+/******/ i: moduleId,
+/******/ l: false,
+/******/ exports: {}
+/******/ };
+/******/
+/******/ // Execute the module function
+/******/ modules[moduleId].call(module.exports, module, module.exports, __webpack_require__);
+/******/
+/******/ // Flag the module as loaded
+/******/ module.l = true;
+/******/
+/******/ // Return the exports of the module
+/******/ return module.exports;
+/******/ }
+/******/
+/******/
+/******/ // expose the modules object (__webpack_modules__)
+/******/ __webpack_require__.m = modules;
+/******/
+/******/ // expose the module cache
+/******/ __webpack_require__.c = installedModules;
+/******/
+/******/ // define getter function for harmony exports
+/******/ __webpack_require__.d = function(exports, name, getter) {
+/******/ if(!__webpack_require__.o(exports, name)) {
+/******/ Object.defineProperty(exports, name, {
+/******/ configurable: false,
+/******/ enumerable: true,
+/******/ get: getter
+/******/ });
+/******/ }
+/******/ };
+/******/
+/******/ // define __esModule on exports
+/******/ __webpack_require__.r = function(exports) {
+/******/ Object.defineProperty(exports, '__esModule', { value: true });
+/******/ };
+/******/
+/******/ // getDefaultExport function for compatibility with non-harmony modules
+/******/ __webpack_require__.n = function(module) {
+/******/ var getter = module && module.__esModule ?
+/******/ function getDefault() { return module['default']; } :
+/******/ function getModuleExports() { return module; };
+/******/ __webpack_require__.d(getter, 'a', getter);
+/******/ return getter;
+/******/ };
+/******/
+/******/ // Object.prototype.hasOwnProperty.call
+/******/ __webpack_require__.o = function(object, property) { return Object.prototype.hasOwnProperty.call(object, property); };
+/******/
+/******/ // __webpack_public_path__
+/******/ __webpack_require__.p = "";
+/******/
+/******/
+/******/ // Load entry module and return exports
+/******/ return __webpack_require__(__webpack_require__.s = "./src/index.js");
+/******/ })
+/************************************************************************/
+/******/ ({
+
+/***/ "./src/index.js":
+/*!**********************!*\
+ !*** ./src/index.js ***!
+ \**********************/
+/*! no static exports found */
+/***/ (function(module, exports) {
+
+eval("console.log('working');\n\n\n//# sourceURL=webpack:///./src/index.js?");
+
+/***/ })
+
+/******/ });
\ No newline at end of file
diff --git a/test/comparison-tests/allowJs-entryFileIsJs/expectedOutput-2.8/output.transpiled.txt b/test/comparison-tests/allowJs-entryFileIsJs/expectedOutput-2.8/output.transpiled.txt
new file mode 100644
index 000000000..d4981802e
--- /dev/null
+++ b/test/comparison-tests/allowJs-entryFileIsJs/expectedOutput-2.8/output.transpiled.txt
@@ -0,0 +1,5 @@
+Built at: 2018-2-11 17:50:53
+ Asset Size Chunks Chunk Names
+bundle.js 2.83 KiB main [emitted] main
+Entrypoint main = bundle.js
+[./src/index.js] 24 bytes {main} [built]
\ No newline at end of file
diff --git a/test/comparison-tests/allowJs-entryFileIsJs/expectedOutput-2.8/output.txt b/test/comparison-tests/allowJs-entryFileIsJs/expectedOutput-2.8/output.txt
new file mode 100644
index 000000000..31e1d2454
--- /dev/null
+++ b/test/comparison-tests/allowJs-entryFileIsJs/expectedOutput-2.8/output.txt
@@ -0,0 +1,5 @@
+Built at: 2018-3-18 09:15:04
+ Asset Size Chunks Chunk Names
+bundle.js 2.83 KiB main [emitted] main
+Entrypoint main = bundle.js
+[./src/index.js] 24 bytes {main} [built]
\ No newline at end of file
diff --git a/test/comparison-tests/appendSuffixTo/expectedOutput-2.8/bundle.js b/test/comparison-tests/appendSuffixTo/expectedOutput-2.8/bundle.js
new file mode 100644
index 000000000..09694c202
--- /dev/null
+++ b/test/comparison-tests/appendSuffixTo/expectedOutput-2.8/bundle.js
@@ -0,0 +1,110 @@
+/******/ (function(modules) { // webpackBootstrap
+/******/ // The module cache
+/******/ var installedModules = {};
+/******/
+/******/ // The require function
+/******/ function __webpack_require__(moduleId) {
+/******/
+/******/ // Check if module is in cache
+/******/ if(installedModules[moduleId]) {
+/******/ return installedModules[moduleId].exports;
+/******/ }
+/******/ // Create a new module (and put it into the cache)
+/******/ var module = installedModules[moduleId] = {
+/******/ i: moduleId,
+/******/ l: false,
+/******/ exports: {}
+/******/ };
+/******/
+/******/ // Execute the module function
+/******/ modules[moduleId].call(module.exports, module, module.exports, __webpack_require__);
+/******/
+/******/ // Flag the module as loaded
+/******/ module.l = true;
+/******/
+/******/ // Return the exports of the module
+/******/ return module.exports;
+/******/ }
+/******/
+/******/
+/******/ // expose the modules object (__webpack_modules__)
+/******/ __webpack_require__.m = modules;
+/******/
+/******/ // expose the module cache
+/******/ __webpack_require__.c = installedModules;
+/******/
+/******/ // define getter function for harmony exports
+/******/ __webpack_require__.d = function(exports, name, getter) {
+/******/ if(!__webpack_require__.o(exports, name)) {
+/******/ Object.defineProperty(exports, name, {
+/******/ configurable: false,
+/******/ enumerable: true,
+/******/ get: getter
+/******/ });
+/******/ }
+/******/ };
+/******/
+/******/ // define __esModule on exports
+/******/ __webpack_require__.r = function(exports) {
+/******/ Object.defineProperty(exports, '__esModule', { value: true });
+/******/ };
+/******/
+/******/ // getDefaultExport function for compatibility with non-harmony modules
+/******/ __webpack_require__.n = function(module) {
+/******/ var getter = module && module.__esModule ?
+/******/ function getDefault() { return module['default']; } :
+/******/ function getModuleExports() { return module; };
+/******/ __webpack_require__.d(getter, 'a', getter);
+/******/ return getter;
+/******/ };
+/******/
+/******/ // Object.prototype.hasOwnProperty.call
+/******/ __webpack_require__.o = function(object, property) { return Object.prototype.hasOwnProperty.call(object, property); };
+/******/
+/******/ // __webpack_public_path__
+/******/ __webpack_require__.p = "";
+/******/
+/******/
+/******/ // Load entry module and return exports
+/******/ return __webpack_require__(__webpack_require__.s = "./index.vue");
+/******/ })
+/************************************************************************/
+/******/ ({
+
+/***/ "./component.vue":
+/*!***********************!*\
+ !*** ./component.vue ***!
+ \***********************/
+/*! no static exports found */
+/***/ (function(module, exports, __webpack_require__) {
+
+"use strict";
+eval("\nexports.__esModule = true;\nexports[\"default\"] = {\n data: function () {\n return {\n msg: \"component\"\n };\n }\n};\n\n\n//# sourceURL=webpack:///./component.vue?");
+
+/***/ }),
+
+/***/ "./helper.ts":
+/*!*******************!*\
+ !*** ./helper.ts ***!
+ \*******************/
+/*! no static exports found */
+/***/ (function(module, exports, __webpack_require__) {
+
+"use strict";
+eval("\nexports.__esModule = true;\nfunction myMethod() {\n console.log('from helper!');\n}\nexports.myMethod = myMethod;\n\n\n//# sourceURL=webpack:///./helper.ts?");
+
+/***/ }),
+
+/***/ "./index.vue":
+/*!*******************!*\
+ !*** ./index.vue ***!
+ \*******************/
+/*! no static exports found */
+/***/ (function(module, exports, __webpack_require__) {
+
+"use strict";
+eval("\nexports.__esModule = true;\nvar component_vue_1 = __webpack_require__(/*! ./component.vue */ \"./component.vue\");\nvar helper_1 = __webpack_require__(/*! ./helper */ \"./helper.ts\");\nexports[\"default\"] = {\n components: { component: component_vue_1[\"default\"] },\n data: function () {\n return {\n msg: \"world\"\n };\n },\n method: {\n myMethod: helper_1.myMethod\n }\n};\n\n\n//# sourceURL=webpack:///./index.vue?");
+
+/***/ })
+
+/******/ });
\ No newline at end of file
diff --git a/test/comparison-tests/appendSuffixTo/expectedOutput-2.8/output.transpiled.txt b/test/comparison-tests/appendSuffixTo/expectedOutput-2.8/output.transpiled.txt
new file mode 100644
index 000000000..01ac49402
--- /dev/null
+++ b/test/comparison-tests/appendSuffixTo/expectedOutput-2.8/output.transpiled.txt
@@ -0,0 +1,7 @@
+Built at: 2018-3-18 09:15:11
+ Asset Size Chunks Chunk Names
+bundle.js 4.04 KiB main [emitted] main
+Entrypoint main = bundle.js
+[./component.vue] 154 bytes {main} [built]
+[./helper.ts] 127 bytes {main} [built]
+[./index.vue] 352 bytes {main} [built]
\ No newline at end of file
diff --git a/test/comparison-tests/appendSuffixTo/expectedOutput-2.8/output.txt b/test/comparison-tests/appendSuffixTo/expectedOutput-2.8/output.txt
new file mode 100644
index 000000000..55caa02e0
--- /dev/null
+++ b/test/comparison-tests/appendSuffixTo/expectedOutput-2.8/output.txt
@@ -0,0 +1,7 @@
+Built at: 2018-3-18 09:15:10
+ Asset Size Chunks Chunk Names
+bundle.js 4.04 KiB main [emitted] main
+Entrypoint main = bundle.js
+[./component.vue] 154 bytes {main} [built]
+[./helper.ts] 127 bytes {main} [built]
+[./index.vue] 352 bytes {main} [built]
\ No newline at end of file
diff --git a/test/comparison-tests/appendSuffixToWatch/expectedOutput-2.8/bundle.entry1.js b/test/comparison-tests/appendSuffixToWatch/expectedOutput-2.8/bundle.entry1.js
new file mode 100644
index 000000000..8afb5c73b
--- /dev/null
+++ b/test/comparison-tests/appendSuffixToWatch/expectedOutput-2.8/bundle.entry1.js
@@ -0,0 +1,85 @@
+/******/ (function(modules) { // webpackBootstrap
+/******/ // The module cache
+/******/ var installedModules = {};
+/******/
+/******/ // The require function
+/******/ function __webpack_require__(moduleId) {
+/******/
+/******/ // Check if module is in cache
+/******/ if(installedModules[moduleId]) {
+/******/ return installedModules[moduleId].exports;
+/******/ }
+/******/ // Create a new module (and put it into the cache)
+/******/ var module = installedModules[moduleId] = {
+/******/ i: moduleId,
+/******/ l: false,
+/******/ exports: {}
+/******/ };
+/******/
+/******/ // Execute the module function
+/******/ modules[moduleId].call(module.exports, module, module.exports, __webpack_require__);
+/******/
+/******/ // Flag the module as loaded
+/******/ module.l = true;
+/******/
+/******/ // Return the exports of the module
+/******/ return module.exports;
+/******/ }
+/******/
+/******/
+/******/ // expose the modules object (__webpack_modules__)
+/******/ __webpack_require__.m = modules;
+/******/
+/******/ // expose the module cache
+/******/ __webpack_require__.c = installedModules;
+/******/
+/******/ // define getter function for harmony exports
+/******/ __webpack_require__.d = function(exports, name, getter) {
+/******/ if(!__webpack_require__.o(exports, name)) {
+/******/ Object.defineProperty(exports, name, {
+/******/ configurable: false,
+/******/ enumerable: true,
+/******/ get: getter
+/******/ });
+/******/ }
+/******/ };
+/******/
+/******/ // define __esModule on exports
+/******/ __webpack_require__.r = function(exports) {
+/******/ Object.defineProperty(exports, '__esModule', { value: true });
+/******/ };
+/******/
+/******/ // getDefaultExport function for compatibility with non-harmony modules
+/******/ __webpack_require__.n = function(module) {
+/******/ var getter = module && module.__esModule ?
+/******/ function getDefault() { return module['default']; } :
+/******/ function getModuleExports() { return module; };
+/******/ __webpack_require__.d(getter, 'a', getter);
+/******/ return getter;
+/******/ };
+/******/
+/******/ // Object.prototype.hasOwnProperty.call
+/******/ __webpack_require__.o = function(object, property) { return Object.prototype.hasOwnProperty.call(object, property); };
+/******/
+/******/ // __webpack_public_path__
+/******/ __webpack_require__.p = "";
+/******/
+/******/
+/******/ // Load entry module and return exports
+/******/ return __webpack_require__(__webpack_require__.s = "./entry1.ts");
+/******/ })
+/************************************************************************/
+/******/ ({
+
+/***/ "./entry1.ts":
+/*!*******************!*\
+ !*** ./entry1.ts ***!
+ \*******************/
+/*! no static exports found */
+/***/ (function(module, exports) {
+
+eval("console.log('banana');\n\n\n//# sourceURL=webpack:///./entry1.ts?");
+
+/***/ })
+
+/******/ });
\ No newline at end of file
diff --git a/test/comparison-tests/appendSuffixToWatch/expectedOutput-2.8/bundle.entry2.js b/test/comparison-tests/appendSuffixToWatch/expectedOutput-2.8/bundle.entry2.js
new file mode 100644
index 000000000..fd991bb75
--- /dev/null
+++ b/test/comparison-tests/appendSuffixToWatch/expectedOutput-2.8/bundle.entry2.js
@@ -0,0 +1,98 @@
+/******/ (function(modules) { // webpackBootstrap
+/******/ // The module cache
+/******/ var installedModules = {};
+/******/
+/******/ // The require function
+/******/ function __webpack_require__(moduleId) {
+/******/
+/******/ // Check if module is in cache
+/******/ if(installedModules[moduleId]) {
+/******/ return installedModules[moduleId].exports;
+/******/ }
+/******/ // Create a new module (and put it into the cache)
+/******/ var module = installedModules[moduleId] = {
+/******/ i: moduleId,
+/******/ l: false,
+/******/ exports: {}
+/******/ };
+/******/
+/******/ // Execute the module function
+/******/ modules[moduleId].call(module.exports, module, module.exports, __webpack_require__);
+/******/
+/******/ // Flag the module as loaded
+/******/ module.l = true;
+/******/
+/******/ // Return the exports of the module
+/******/ return module.exports;
+/******/ }
+/******/
+/******/
+/******/ // expose the modules object (__webpack_modules__)
+/******/ __webpack_require__.m = modules;
+/******/
+/******/ // expose the module cache
+/******/ __webpack_require__.c = installedModules;
+/******/
+/******/ // define getter function for harmony exports
+/******/ __webpack_require__.d = function(exports, name, getter) {
+/******/ if(!__webpack_require__.o(exports, name)) {
+/******/ Object.defineProperty(exports, name, {
+/******/ configurable: false,
+/******/ enumerable: true,
+/******/ get: getter
+/******/ });
+/******/ }
+/******/ };
+/******/
+/******/ // define __esModule on exports
+/******/ __webpack_require__.r = function(exports) {
+/******/ Object.defineProperty(exports, '__esModule', { value: true });
+/******/ };
+/******/
+/******/ // getDefaultExport function for compatibility with non-harmony modules
+/******/ __webpack_require__.n = function(module) {
+/******/ var getter = module && module.__esModule ?
+/******/ function getDefault() { return module['default']; } :
+/******/ function getModuleExports() { return module; };
+/******/ __webpack_require__.d(getter, 'a', getter);
+/******/ return getter;
+/******/ };
+/******/
+/******/ // Object.prototype.hasOwnProperty.call
+/******/ __webpack_require__.o = function(object, property) { return Object.prototype.hasOwnProperty.call(object, property); };
+/******/
+/******/ // __webpack_public_path__
+/******/ __webpack_require__.p = "";
+/******/
+/******/
+/******/ // Load entry module and return exports
+/******/ return __webpack_require__(__webpack_require__.s = "./entry2.ts");
+/******/ })
+/************************************************************************/
+/******/ ({
+
+/***/ "./component.vue":
+/*!***********************!*\
+ !*** ./component.vue ***!
+ \***********************/
+/*! no static exports found */
+/***/ (function(module, exports, __webpack_require__) {
+
+"use strict";
+eval("\nexports.__esModule = true;\nexports[\"default\"] = \"some value\";\n\n\n//# sourceURL=webpack:///./component.vue?");
+
+/***/ }),
+
+/***/ "./entry2.ts":
+/*!*******************!*\
+ !*** ./entry2.ts ***!
+ \*******************/
+/*! no static exports found */
+/***/ (function(module, exports, __webpack_require__) {
+
+"use strict";
+eval("\nexports.__esModule = true;\nvar component_vue_1 = __webpack_require__(/*! ./component.vue */ \"./component.vue\");\nconsole.log(component_vue_1[\"default\"]);\n\n\n//# sourceURL=webpack:///./entry2.ts?");
+
+/***/ })
+
+/******/ });
\ No newline at end of file
diff --git a/test/comparison-tests/appendSuffixToWatch/expectedOutput-2.8/output.txt b/test/comparison-tests/appendSuffixToWatch/expectedOutput-2.8/output.txt
new file mode 100644
index 000000000..fd86fe625
--- /dev/null
+++ b/test/comparison-tests/appendSuffixToWatch/expectedOutput-2.8/output.txt
@@ -0,0 +1,9 @@
+Built at: 2018-3-18 09:15:16
+ Asset Size Chunks Chunk Names
+bundle.entry1.js 2.81 KiB entry1 [emitted] entry1
+bundle.entry2.js 3.32 KiB entry2 [emitted] entry2
+Entrypoint entry1 = bundle.entry1.js
+Entrypoint entry2 = bundle.entry2.js
+[./component.vue] 76 bytes {entry2} [built]
+[./entry1.ts] 23 bytes {entry1} [built]
+[./entry2.ts] 132 bytes {entry2} [built]
\ No newline at end of file
diff --git a/test/comparison-tests/appendSuffixToWatch/expectedOutput-2.8/patch0/bundle.entry1.js b/test/comparison-tests/appendSuffixToWatch/expectedOutput-2.8/patch0/bundle.entry1.js
new file mode 100644
index 000000000..446879f3b
--- /dev/null
+++ b/test/comparison-tests/appendSuffixToWatch/expectedOutput-2.8/patch0/bundle.entry1.js
@@ -0,0 +1,85 @@
+/******/ (function(modules) { // webpackBootstrap
+/******/ // The module cache
+/******/ var installedModules = {};
+/******/
+/******/ // The require function
+/******/ function __webpack_require__(moduleId) {
+/******/
+/******/ // Check if module is in cache
+/******/ if(installedModules[moduleId]) {
+/******/ return installedModules[moduleId].exports;
+/******/ }
+/******/ // Create a new module (and put it into the cache)
+/******/ var module = installedModules[moduleId] = {
+/******/ i: moduleId,
+/******/ l: false,
+/******/ exports: {}
+/******/ };
+/******/
+/******/ // Execute the module function
+/******/ modules[moduleId].call(module.exports, module, module.exports, __webpack_require__);
+/******/
+/******/ // Flag the module as loaded
+/******/ module.l = true;
+/******/
+/******/ // Return the exports of the module
+/******/ return module.exports;
+/******/ }
+/******/
+/******/
+/******/ // expose the modules object (__webpack_modules__)
+/******/ __webpack_require__.m = modules;
+/******/
+/******/ // expose the module cache
+/******/ __webpack_require__.c = installedModules;
+/******/
+/******/ // define getter function for harmony exports
+/******/ __webpack_require__.d = function(exports, name, getter) {
+/******/ if(!__webpack_require__.o(exports, name)) {
+/******/ Object.defineProperty(exports, name, {
+/******/ configurable: false,
+/******/ enumerable: true,
+/******/ get: getter
+/******/ });
+/******/ }
+/******/ };
+/******/
+/******/ // define __esModule on exports
+/******/ __webpack_require__.r = function(exports) {
+/******/ Object.defineProperty(exports, '__esModule', { value: true });
+/******/ };
+/******/
+/******/ // getDefaultExport function for compatibility with non-harmony modules
+/******/ __webpack_require__.n = function(module) {
+/******/ var getter = module && module.__esModule ?
+/******/ function getDefault() { return module['default']; } :
+/******/ function getModuleExports() { return module; };
+/******/ __webpack_require__.d(getter, 'a', getter);
+/******/ return getter;
+/******/ };
+/******/
+/******/ // Object.prototype.hasOwnProperty.call
+/******/ __webpack_require__.o = function(object, property) { return Object.prototype.hasOwnProperty.call(object, property); };
+/******/
+/******/ // __webpack_public_path__
+/******/ __webpack_require__.p = "";
+/******/
+/******/
+/******/ // Load entry module and return exports
+/******/ return __webpack_require__(__webpack_require__.s = "./entry1.ts");
+/******/ })
+/************************************************************************/
+/******/ ({
+
+/***/ "./entry1.ts":
+/*!*******************!*\
+ !*** ./entry1.ts ***!
+ \*******************/
+/*! no static exports found */
+/***/ (function(module, exports) {
+
+eval("console.log('something!');\n\n\n//# sourceURL=webpack:///./entry1.ts?");
+
+/***/ })
+
+/******/ });
\ No newline at end of file
diff --git a/test/comparison-tests/appendSuffixToWatch/expectedOutput-2.8/patch0/output.txt b/test/comparison-tests/appendSuffixToWatch/expectedOutput-2.8/patch0/output.txt
new file mode 100644
index 000000000..5ca394d07
--- /dev/null
+++ b/test/comparison-tests/appendSuffixToWatch/expectedOutput-2.8/patch0/output.txt
@@ -0,0 +1,9 @@
+Built at: 2018-3-18 09:15:19
+ Asset Size Chunks Chunk Names
+bundle.entry1.js 2.82 KiB entry1 [emitted] entry1
+bundle.entry2.js 3.32 KiB entry2 entry2
+Entrypoint entry1 = bundle.entry1.js
+Entrypoint entry2 = bundle.entry2.js
+[./component.vue] 76 bytes {entry2}
+[./entry1.ts] 27 bytes {entry1} [built]
+[./entry2.ts] 132 bytes {entry2}
\ No newline at end of file
diff --git a/test/comparison-tests/babel-es6resolveParent/expectedOutput-2.8/bundle.js b/test/comparison-tests/babel-es6resolveParent/expectedOutput-2.8/bundle.js
new file mode 100644
index 000000000..af163ecc0
--- /dev/null
+++ b/test/comparison-tests/babel-es6resolveParent/expectedOutput-2.8/bundle.js
@@ -0,0 +1,86 @@
+/******/ (function(modules) { // webpackBootstrap
+/******/ // The module cache
+/******/ var installedModules = {};
+/******/
+/******/ // The require function
+/******/ function __webpack_require__(moduleId) {
+/******/
+/******/ // Check if module is in cache
+/******/ if(installedModules[moduleId]) {
+/******/ return installedModules[moduleId].exports;
+/******/ }
+/******/ // Create a new module (and put it into the cache)
+/******/ var module = installedModules[moduleId] = {
+/******/ i: moduleId,
+/******/ l: false,
+/******/ exports: {}
+/******/ };
+/******/
+/******/ // Execute the module function
+/******/ modules[moduleId].call(module.exports, module, module.exports, __webpack_require__);
+/******/
+/******/ // Flag the module as loaded
+/******/ module.l = true;
+/******/
+/******/ // Return the exports of the module
+/******/ return module.exports;
+/******/ }
+/******/
+/******/
+/******/ // expose the modules object (__webpack_modules__)
+/******/ __webpack_require__.m = modules;
+/******/
+/******/ // expose the module cache
+/******/ __webpack_require__.c = installedModules;
+/******/
+/******/ // define getter function for harmony exports
+/******/ __webpack_require__.d = function(exports, name, getter) {
+/******/ if(!__webpack_require__.o(exports, name)) {
+/******/ Object.defineProperty(exports, name, {
+/******/ configurable: false,
+/******/ enumerable: true,
+/******/ get: getter
+/******/ });
+/******/ }
+/******/ };
+/******/
+/******/ // define __esModule on exports
+/******/ __webpack_require__.r = function(exports) {
+/******/ Object.defineProperty(exports, '__esModule', { value: true });
+/******/ };
+/******/
+/******/ // getDefaultExport function for compatibility with non-harmony modules
+/******/ __webpack_require__.n = function(module) {
+/******/ var getter = module && module.__esModule ?
+/******/ function getDefault() { return module['default']; } :
+/******/ function getModuleExports() { return module; };
+/******/ __webpack_require__.d(getter, 'a', getter);
+/******/ return getter;
+/******/ };
+/******/
+/******/ // Object.prototype.hasOwnProperty.call
+/******/ __webpack_require__.o = function(object, property) { return Object.prototype.hasOwnProperty.call(object, property); };
+/******/
+/******/ // __webpack_public_path__
+/******/ __webpack_require__.p = "";
+/******/
+/******/
+/******/ // Load entry module and return exports
+/******/ return __webpack_require__(__webpack_require__.s = "./index.tsx");
+/******/ })
+/************************************************************************/
+/******/ ({
+
+/***/ "./index.tsx":
+/*!*******************!*\
+ !*** ./index.tsx ***!
+ \*******************/
+/*! exports provided: BaseComponent */
+/***/ (function(module, __webpack_exports__, __webpack_require__) {
+
+"use strict";
+eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"BaseComponent\", function() { return BaseComponent; });\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nvar BaseComponent = function BaseComponent() {\n _classCallCheck(this, BaseComponent);\n};\n\n//# sourceURL=webpack:///./index.tsx?");
+
+/***/ })
+
+/******/ });
\ No newline at end of file
diff --git a/test/comparison-tests/babel-es6resolveParent/expectedOutput-2.8/output.transpiled.txt b/test/comparison-tests/babel-es6resolveParent/expectedOutput-2.8/output.transpiled.txt
new file mode 100644
index 000000000..5e8ee3cc9
--- /dev/null
+++ b/test/comparison-tests/babel-es6resolveParent/expectedOutput-2.8/output.transpiled.txt
@@ -0,0 +1,5 @@
+Built at: 2018-3-18 09:15:26
+ Asset Size Chunks Chunk Names
+bundle.js 3.26 KiB main [emitted] main
+Entrypoint main = bundle.js
+[./index.tsx] 251 bytes {main} [built]
\ No newline at end of file
diff --git a/test/comparison-tests/babel-es6resolveParent/expectedOutput-2.8/output.txt b/test/comparison-tests/babel-es6resolveParent/expectedOutput-2.8/output.txt
new file mode 100644
index 000000000..d104a0ace
--- /dev/null
+++ b/test/comparison-tests/babel-es6resolveParent/expectedOutput-2.8/output.txt
@@ -0,0 +1,5 @@
+Built at: 2018-3-18 09:15:25
+ Asset Size Chunks Chunk Names
+bundle.js 3.26 KiB main [emitted] main
+Entrypoint main = bundle.js
+[./index.tsx] 251 bytes {main} [built]
\ No newline at end of file
diff --git a/test/comparison-tests/babel-issue81/expectedOutput-2.8/bundle.js b/test/comparison-tests/babel-issue81/expectedOutput-2.8/bundle.js
new file mode 100644
index 000000000..33cd0e0a0
--- /dev/null
+++ b/test/comparison-tests/babel-issue81/expectedOutput-2.8/bundle.js
@@ -0,0 +1,104 @@
+/******/ (function(modules) { // webpackBootstrap
+/******/ // The module cache
+/******/ var installedModules = {};
+/******/
+/******/ // The require function
+/******/ function __webpack_require__(moduleId) {
+/******/
+/******/ // Check if module is in cache
+/******/ if(installedModules[moduleId]) {
+/******/ return installedModules[moduleId].exports;
+/******/ }
+/******/ // Create a new module (and put it into the cache)
+/******/ var module = installedModules[moduleId] = {
+/******/ i: moduleId,
+/******/ l: false,
+/******/ exports: {}
+/******/ };
+/******/
+/******/ // Execute the module function
+/******/ modules[moduleId].call(module.exports, module, module.exports, __webpack_require__);
+/******/
+/******/ // Flag the module as loaded
+/******/ module.l = true;
+/******/
+/******/ // Return the exports of the module
+/******/ return module.exports;
+/******/ }
+/******/
+/******/
+/******/ // expose the modules object (__webpack_modules__)
+/******/ __webpack_require__.m = modules;
+/******/
+/******/ // expose the module cache
+/******/ __webpack_require__.c = installedModules;
+/******/
+/******/ // define getter function for harmony exports
+/******/ __webpack_require__.d = function(exports, name, getter) {
+/******/ if(!__webpack_require__.o(exports, name)) {
+/******/ Object.defineProperty(exports, name, {
+/******/ configurable: false,
+/******/ enumerable: true,
+/******/ get: getter
+/******/ });
+/******/ }
+/******/ };
+/******/
+/******/ // define __esModule on exports
+/******/ __webpack_require__.r = function(exports) {
+/******/ Object.defineProperty(exports, '__esModule', { value: true });
+/******/ };
+/******/
+/******/ // getDefaultExport function for compatibility with non-harmony modules
+/******/ __webpack_require__.n = function(module) {
+/******/ var getter = module && module.__esModule ?
+/******/ function getDefault() { return module['default']; } :
+/******/ function getModuleExports() { return module; };
+/******/ __webpack_require__.d(getter, 'a', getter);
+/******/ return getter;
+/******/ };
+/******/
+/******/ // Object.prototype.hasOwnProperty.call
+/******/ __webpack_require__.o = function(object, property) { return Object.prototype.hasOwnProperty.call(object, property); };
+/******/
+/******/ // __webpack_public_path__
+/******/ __webpack_require__.p = "";
+/******/
+/******/
+/******/ // Load entry module and return exports
+/******/ return __webpack_require__(__webpack_require__.s = "./a.ts");
+/******/ })
+/************************************************************************/
+/******/ ({
+
+/***/ "./a.ts":
+/*!**************!*\
+ !*** ./a.ts ***!
+ \**************/
+/*! no static exports found */
+/***/ (function(module, exports) {
+
+var _typeof = typeof Symbol === "function" && typeof Symbol.iterator === "symbol" ? function (obj) { return typeof obj; } : function (obj) { return obj && typeof Symbol === "function" && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; };
+
+function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } }
+
+var __decorate = this && this.__decorate || function (decorators, target, key, desc) {
+ var c = arguments.length,
+ r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc,
+ d;
+ if ((typeof Reflect === "undefined" ? "undefined" : _typeof(Reflect)) === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);else for (var i = decorators.length - 1; i >= 0; i--) {
+ if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
+ }return c > 3 && r && Object.defineProperty(target, key, r), r;
+};
+function bar(target) {
+ return target;
+}
+var Foo = function Foo() {
+ _classCallCheck(this, Foo);
+};
+Foo = __decorate([bar], Foo);
+
+/***/ })
+
+/******/ });
+//# sourceMappingURL=bundle.js.map
\ No newline at end of file
diff --git a/test/comparison-tests/babel-issue81/expectedOutput-2.8/bundle.js.map b/test/comparison-tests/babel-issue81/expectedOutput-2.8/bundle.js.map
new file mode 100644
index 000000000..60a294862
--- /dev/null
+++ b/test/comparison-tests/babel-issue81/expectedOutput-2.8/bundle.js.map
@@ -0,0 +1 @@
+{"version":3,"sources":["webpack:///webpack/bootstrap","webpack:///./a.ts"],"names":[],"mappings":";AAAA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;;AAGA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAK;AACL;AACA;;AAEA;AACA;AACA,yDAAiD,cAAc;AAC/D;;AAEA;AACA;AACA;AACA,mCAA2B,0BAA0B,EAAE;AACvD,yCAAiC,eAAe;AAChD;AACA;AACA;;AAEA;AACA,8DAAsD,+DAA+D;;AAErH;AACA;;;AAGA;AACA;;;;;;;;;;;;;;;;;;;;;;;;AClEA,aAAwB;AACd,WACV;AAAC;AAGD;AAEC;;AAFQ,kBADL,MAGH,K","file":"bundle.js","sourcesContent":[" \t// The module cache\n \tvar installedModules = {};\n\n \t// The require function\n \tfunction __webpack_require__(moduleId) {\n\n \t\t// Check if module is in cache\n \t\tif(installedModules[moduleId]) {\n \t\t\treturn installedModules[moduleId].exports;\n \t\t}\n \t\t// Create a new module (and put it into the cache)\n \t\tvar module = installedModules[moduleId] = {\n \t\t\ti: moduleId,\n \t\t\tl: false,\n \t\t\texports: {}\n \t\t};\n\n \t\t// Execute the module function\n \t\tmodules[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n\n \t\t// Flag the module as loaded\n \t\tmodule.l = true;\n\n \t\t// Return the exports of the module\n \t\treturn module.exports;\n \t}\n\n\n \t// expose the modules object (__webpack_modules__)\n \t__webpack_require__.m = modules;\n\n \t// expose the module cache\n \t__webpack_require__.c = installedModules;\n\n \t// define getter function for harmony exports\n \t__webpack_require__.d = function(exports, name, getter) {\n \t\tif(!__webpack_require__.o(exports, name)) {\n \t\t\tObject.defineProperty(exports, name, {\n \t\t\t\tconfigurable: false,\n \t\t\t\tenumerable: true,\n \t\t\t\tget: getter\n \t\t\t});\n \t\t}\n \t};\n\n \t// define __esModule on exports\n \t__webpack_require__.r = function(exports) {\n \t\tObject.defineProperty(exports, '__esModule', { value: true });\n \t};\n\n \t// getDefaultExport function for compatibility with non-harmony modules\n \t__webpack_require__.n = function(module) {\n \t\tvar getter = module && module.__esModule ?\n \t\t\tfunction getDefault() { return module['default']; } :\n \t\t\tfunction getModuleExports() { return module; };\n \t\t__webpack_require__.d(getter, 'a', getter);\n \t\treturn getter;\n \t};\n\n \t// Object.prototype.hasOwnProperty.call\n \t__webpack_require__.o = function(object, property) { return Object.prototype.hasOwnProperty.call(object, property); };\n\n \t// __webpack_public_path__\n \t__webpack_require__.p = \"\";\n\n\n \t// Load entry module and return exports\n \treturn __webpack_require__(__webpack_require__.s = \"./a.ts\");\n","\nfunction bar(target: any) {\n return target;\n}\n\n@bar\nclass Foo {\n \n}"],"sourceRoot":""}
\ No newline at end of file
diff --git a/test/comparison-tests/babel-issue81/expectedOutput-2.8/output.transpiled.txt b/test/comparison-tests/babel-issue81/expectedOutput-2.8/output.transpiled.txt
new file mode 100644
index 000000000..d2f365abb
--- /dev/null
+++ b/test/comparison-tests/babel-issue81/expectedOutput-2.8/output.transpiled.txt
@@ -0,0 +1,6 @@
+Built at: 2018-3-18 09:15:33
+ Asset Size Chunks Chunk Names
+ bundle.js 3.93 KiB main [emitted] main
+bundle.js.map 2.69 KiB main [emitted] main
+Entrypoint main = bundle.js bundle.js.map
+[./a.ts] 1.18 KiB {main} [built]
\ No newline at end of file
diff --git a/test/comparison-tests/babel-issue81/expectedOutput-2.8/output.txt b/test/comparison-tests/babel-issue81/expectedOutput-2.8/output.txt
new file mode 100644
index 000000000..c6c8fac29
--- /dev/null
+++ b/test/comparison-tests/babel-issue81/expectedOutput-2.8/output.txt
@@ -0,0 +1,6 @@
+Built at: 2018-3-18 09:15:32
+ Asset Size Chunks Chunk Names
+ bundle.js 3.93 KiB main [emitted] main
+bundle.js.map 2.69 KiB main [emitted] main
+Entrypoint main = bundle.js bundle.js.map
+[./a.ts] 1.18 KiB {main} [built]
\ No newline at end of file
diff --git a/test/comparison-tests/babel-issue92/expectedOutput-2.8/bundle.js b/test/comparison-tests/babel-issue92/expectedOutput-2.8/bundle.js
new file mode 100644
index 000000000..aa623e5b9
--- /dev/null
+++ b/test/comparison-tests/babel-issue92/expectedOutput-2.8/bundle.js
@@ -0,0 +1,98 @@
+/******/ (function(modules) { // webpackBootstrap
+/******/ // The module cache
+/******/ var installedModules = {};
+/******/
+/******/ // The require function
+/******/ function __webpack_require__(moduleId) {
+/******/
+/******/ // Check if module is in cache
+/******/ if(installedModules[moduleId]) {
+/******/ return installedModules[moduleId].exports;
+/******/ }
+/******/ // Create a new module (and put it into the cache)
+/******/ var module = installedModules[moduleId] = {
+/******/ i: moduleId,
+/******/ l: false,
+/******/ exports: {}
+/******/ };
+/******/
+/******/ // Execute the module function
+/******/ modules[moduleId].call(module.exports, module, module.exports, __webpack_require__);
+/******/
+/******/ // Flag the module as loaded
+/******/ module.l = true;
+/******/
+/******/ // Return the exports of the module
+/******/ return module.exports;
+/******/ }
+/******/
+/******/
+/******/ // expose the modules object (__webpack_modules__)
+/******/ __webpack_require__.m = modules;
+/******/
+/******/ // expose the module cache
+/******/ __webpack_require__.c = installedModules;
+/******/
+/******/ // define getter function for harmony exports
+/******/ __webpack_require__.d = function(exports, name, getter) {
+/******/ if(!__webpack_require__.o(exports, name)) {
+/******/ Object.defineProperty(exports, name, {
+/******/ configurable: false,
+/******/ enumerable: true,
+/******/ get: getter
+/******/ });
+/******/ }
+/******/ };
+/******/
+/******/ // define __esModule on exports
+/******/ __webpack_require__.r = function(exports) {
+/******/ Object.defineProperty(exports, '__esModule', { value: true });
+/******/ };
+/******/
+/******/ // getDefaultExport function for compatibility with non-harmony modules
+/******/ __webpack_require__.n = function(module) {
+/******/ var getter = module && module.__esModule ?
+/******/ function getDefault() { return module['default']; } :
+/******/ function getModuleExports() { return module; };
+/******/ __webpack_require__.d(getter, 'a', getter);
+/******/ return getter;
+/******/ };
+/******/
+/******/ // Object.prototype.hasOwnProperty.call
+/******/ __webpack_require__.o = function(object, property) { return Object.prototype.hasOwnProperty.call(object, property); };
+/******/
+/******/ // __webpack_public_path__
+/******/ __webpack_require__.p = "";
+/******/
+/******/
+/******/ // Load entry module and return exports
+/******/ return __webpack_require__(__webpack_require__.s = "./app.ts");
+/******/ })
+/************************************************************************/
+/******/ ({
+
+/***/ "./app.ts":
+/*!****************!*\
+ !*** ./app.ts ***!
+ \****************/
+/*! exports provided: default */
+/***/ (function(module, __webpack_exports__, __webpack_require__) {
+
+"use strict";
+eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _submodule_submodule__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./submodule/submodule */ \"./submodule/submodule.tsx\");\n\n/* harmony default export */ __webpack_exports__[\"default\"] = (_submodule_submodule__WEBPACK_IMPORTED_MODULE_0__[\"default\"]);\n\n//# sourceURL=webpack:///./app.ts?");
+
+/***/ }),
+
+/***/ "./submodule/submodule.tsx":
+/*!*********************************!*\
+ !*** ./submodule/submodule.tsx ***!
+ \*********************************/
+/*! exports provided: default */
+/***/ (function(module, __webpack_exports__, __webpack_require__) {
+
+"use strict";
+eval("__webpack_require__.r(__webpack_exports__);\n/* harmony default export */ __webpack_exports__[\"default\"] = (\"Hello from submodule\");\n\n//# sourceURL=webpack:///./submodule/submodule.tsx?");
+
+/***/ })
+
+/******/ });
\ No newline at end of file
diff --git a/test/comparison-tests/babel-issue92/expectedOutput-2.8/output.transpiled.txt b/test/comparison-tests/babel-issue92/expectedOutput-2.8/output.transpiled.txt
new file mode 100644
index 000000000..47642aafd
--- /dev/null
+++ b/test/comparison-tests/babel-issue92/expectedOutput-2.8/output.transpiled.txt
@@ -0,0 +1,6 @@
+Built at: 2018-3-18 09:15:41
+ Asset Size Chunks Chunk Names
+bundle.js 3.62 KiB main [emitted] main
+Entrypoint main = bundle.js
+[./app.ts] 72 bytes {main} [built]
+[./submodule/submodule.tsx] 38 bytes {main} [built]
\ No newline at end of file
diff --git a/test/comparison-tests/babel-issue92/expectedOutput-2.8/output.txt b/test/comparison-tests/babel-issue92/expectedOutput-2.8/output.txt
new file mode 100644
index 000000000..163865510
--- /dev/null
+++ b/test/comparison-tests/babel-issue92/expectedOutput-2.8/output.txt
@@ -0,0 +1,6 @@
+Built at: 2018-3-18 09:15:40
+ Asset Size Chunks Chunk Names
+bundle.js 3.62 KiB main [emitted] main
+Entrypoint main = bundle.js
+[./app.ts] 72 bytes {main} [built]
+[./submodule/submodule.tsx] 38 bytes {main} [built]
\ No newline at end of file
diff --git a/test/comparison-tests/basic/expectedOutput-2.8/bundle.js b/test/comparison-tests/basic/expectedOutput-2.8/bundle.js
new file mode 100644
index 000000000..cd4249da3
--- /dev/null
+++ b/test/comparison-tests/basic/expectedOutput-2.8/bundle.js
@@ -0,0 +1,109 @@
+/******/ (function(modules) { // webpackBootstrap
+/******/ // The module cache
+/******/ var installedModules = {};
+/******/
+/******/ // The require function
+/******/ function __webpack_require__(moduleId) {
+/******/
+/******/ // Check if module is in cache
+/******/ if(installedModules[moduleId]) {
+/******/ return installedModules[moduleId].exports;
+/******/ }
+/******/ // Create a new module (and put it into the cache)
+/******/ var module = installedModules[moduleId] = {
+/******/ i: moduleId,
+/******/ l: false,
+/******/ exports: {}
+/******/ };
+/******/
+/******/ // Execute the module function
+/******/ modules[moduleId].call(module.exports, module, module.exports, __webpack_require__);
+/******/
+/******/ // Flag the module as loaded
+/******/ module.l = true;
+/******/
+/******/ // Return the exports of the module
+/******/ return module.exports;
+/******/ }
+/******/
+/******/
+/******/ // expose the modules object (__webpack_modules__)
+/******/ __webpack_require__.m = modules;
+/******/
+/******/ // expose the module cache
+/******/ __webpack_require__.c = installedModules;
+/******/
+/******/ // define getter function for harmony exports
+/******/ __webpack_require__.d = function(exports, name, getter) {
+/******/ if(!__webpack_require__.o(exports, name)) {
+/******/ Object.defineProperty(exports, name, {
+/******/ configurable: false,
+/******/ enumerable: true,
+/******/ get: getter
+/******/ });
+/******/ }
+/******/ };
+/******/
+/******/ // define __esModule on exports
+/******/ __webpack_require__.r = function(exports) {
+/******/ Object.defineProperty(exports, '__esModule', { value: true });
+/******/ };
+/******/
+/******/ // getDefaultExport function for compatibility with non-harmony modules
+/******/ __webpack_require__.n = function(module) {
+/******/ var getter = module && module.__esModule ?
+/******/ function getDefault() { return module['default']; } :
+/******/ function getModuleExports() { return module; };
+/******/ __webpack_require__.d(getter, 'a', getter);
+/******/ return getter;
+/******/ };
+/******/
+/******/ // Object.prototype.hasOwnProperty.call
+/******/ __webpack_require__.o = function(object, property) { return Object.prototype.hasOwnProperty.call(object, property); };
+/******/
+/******/ // __webpack_public_path__
+/******/ __webpack_require__.p = "";
+/******/
+/******/
+/******/ // Load entry module and return exports
+/******/ return __webpack_require__(__webpack_require__.s = "./app.ts");
+/******/ })
+/************************************************************************/
+/******/ ({
+
+/***/ "./app.ts":
+/*!****************!*\
+ !*** ./app.ts ***!
+ \****************/
+/*! no static exports found */
+/***/ (function(module, exports, __webpack_require__) {
+
+"use strict";
+eval("\nexports.__esModule = true;\nvar submodule = __webpack_require__(/*! ./submodule/submodule */ \"./submodule/submodule.ts\");\nvar externalLib = __webpack_require__(/*! externalLib */ \"./lib/externalLib.js\");\nexternalLib.doSomething(submodule);\n\n\n//# sourceURL=webpack:///./app.ts?");
+
+/***/ }),
+
+/***/ "./lib/externalLib.js":
+/*!****************************!*\
+ !*** ./lib/externalLib.js ***!
+ \****************************/
+/*! no static exports found */
+/***/ (function(module, exports) {
+
+eval("module.exports = {\n doSomething: function() { } \n}\n\n//# sourceURL=webpack:///./lib/externalLib.js?");
+
+/***/ }),
+
+/***/ "./submodule/submodule.ts":
+/*!********************************!*\
+ !*** ./submodule/submodule.ts ***!
+ \********************************/
+/*! no static exports found */
+/***/ (function(module, exports, __webpack_require__) {
+
+"use strict";
+eval("\nvar externalLib = __webpack_require__(/*! externalLib */ \"./lib/externalLib.js\");\nexternalLib.doSomething(\"\");\nvar message = \"Hello from submodule\";\nmodule.exports = message;\n\n\n//# sourceURL=webpack:///./submodule/submodule.ts?");
+
+/***/ })
+
+/******/ });
\ No newline at end of file
diff --git a/test/comparison-tests/basic/expectedOutput-2.8/output.transpiled.txt b/test/comparison-tests/basic/expectedOutput-2.8/output.transpiled.txt
new file mode 100644
index 000000000..6ce6696e6
--- /dev/null
+++ b/test/comparison-tests/basic/expectedOutput-2.8/output.transpiled.txt
@@ -0,0 +1,7 @@
+Built at: 2018-3-18 09:15:52
+ Asset Size Chunks Chunk Names
+bundle.js 3.87 KiB main [emitted] main
+Entrypoint main = bundle.js
+[./app.ts] 169 bytes {main} [built]
+[./lib/externalLib.js] 55 bytes {main} [built]
+[./submodule/submodule.ts] 149 bytes {main} [built]
\ No newline at end of file
diff --git a/test/comparison-tests/basic/expectedOutput-2.8/output.txt b/test/comparison-tests/basic/expectedOutput-2.8/output.txt
new file mode 100644
index 000000000..48f97cb85
--- /dev/null
+++ b/test/comparison-tests/basic/expectedOutput-2.8/output.txt
@@ -0,0 +1,7 @@
+Built at: 2018-3-18 09:15:46
+ Asset Size Chunks Chunk Names
+bundle.js 3.87 KiB main [emitted] main
+Entrypoint main = bundle.js
+[./app.ts] 169 bytes {main} [built]
+[./lib/externalLib.js] 55 bytes {main} [built]
+[./submodule/submodule.ts] 149 bytes {main} [built]
\ No newline at end of file
diff --git a/test/comparison-tests/basic/expectedOutput-2.8/patch0/bundle.js b/test/comparison-tests/basic/expectedOutput-2.8/patch0/bundle.js
new file mode 100644
index 000000000..8fd50ab48
--- /dev/null
+++ b/test/comparison-tests/basic/expectedOutput-2.8/patch0/bundle.js
@@ -0,0 +1,109 @@
+/******/ (function(modules) { // webpackBootstrap
+/******/ // The module cache
+/******/ var installedModules = {};
+/******/
+/******/ // The require function
+/******/ function __webpack_require__(moduleId) {
+/******/
+/******/ // Check if module is in cache
+/******/ if(installedModules[moduleId]) {
+/******/ return installedModules[moduleId].exports;
+/******/ }
+/******/ // Create a new module (and put it into the cache)
+/******/ var module = installedModules[moduleId] = {
+/******/ i: moduleId,
+/******/ l: false,
+/******/ exports: {}
+/******/ };
+/******/
+/******/ // Execute the module function
+/******/ modules[moduleId].call(module.exports, module, module.exports, __webpack_require__);
+/******/
+/******/ // Flag the module as loaded
+/******/ module.l = true;
+/******/
+/******/ // Return the exports of the module
+/******/ return module.exports;
+/******/ }
+/******/
+/******/
+/******/ // expose the modules object (__webpack_modules__)
+/******/ __webpack_require__.m = modules;
+/******/
+/******/ // expose the module cache
+/******/ __webpack_require__.c = installedModules;
+/******/
+/******/ // define getter function for harmony exports
+/******/ __webpack_require__.d = function(exports, name, getter) {
+/******/ if(!__webpack_require__.o(exports, name)) {
+/******/ Object.defineProperty(exports, name, {
+/******/ configurable: false,
+/******/ enumerable: true,
+/******/ get: getter
+/******/ });
+/******/ }
+/******/ };
+/******/
+/******/ // define __esModule on exports
+/******/ __webpack_require__.r = function(exports) {
+/******/ Object.defineProperty(exports, '__esModule', { value: true });
+/******/ };
+/******/
+/******/ // getDefaultExport function for compatibility with non-harmony modules
+/******/ __webpack_require__.n = function(module) {
+/******/ var getter = module && module.__esModule ?
+/******/ function getDefault() { return module['default']; } :
+/******/ function getModuleExports() { return module; };
+/******/ __webpack_require__.d(getter, 'a', getter);
+/******/ return getter;
+/******/ };
+/******/
+/******/ // Object.prototype.hasOwnProperty.call
+/******/ __webpack_require__.o = function(object, property) { return Object.prototype.hasOwnProperty.call(object, property); };
+/******/
+/******/ // __webpack_public_path__
+/******/ __webpack_require__.p = "";
+/******/
+/******/
+/******/ // Load entry module and return exports
+/******/ return __webpack_require__(__webpack_require__.s = "./app.ts");
+/******/ })
+/************************************************************************/
+/******/ ({
+
+/***/ "./app.ts":
+/*!****************!*\
+ !*** ./app.ts ***!
+ \****************/
+/*! no static exports found */
+/***/ (function(module, exports, __webpack_require__) {
+
+"use strict";
+eval("\nexports.__esModule = true;\nvar submodule = __webpack_require__(/*! ./submodule/submodule */ \"./submodule/submodule.ts\");\nvar externalLib = __webpack_require__(/*! externalLib */ \"./lib/externalLib.js\");\nexternalLib.doSomething2(submodule);\n\n\n//# sourceURL=webpack:///./app.ts?");
+
+/***/ }),
+
+/***/ "./lib/externalLib.js":
+/*!****************************!*\
+ !*** ./lib/externalLib.js ***!
+ \****************************/
+/*! no static exports found */
+/***/ (function(module, exports) {
+
+eval("module.exports = {\n doSomething: function() { } \n}\n\n//# sourceURL=webpack:///./lib/externalLib.js?");
+
+/***/ }),
+
+/***/ "./submodule/submodule.ts":
+/*!********************************!*\
+ !*** ./submodule/submodule.ts ***!
+ \********************************/
+/*! no static exports found */
+/***/ (function(module, exports, __webpack_require__) {
+
+"use strict";
+eval("\nvar externalLib = __webpack_require__(/*! externalLib */ \"./lib/externalLib.js\");\nexternalLib.doSomething(\"\");\nvar message = \"Hello from submodule\";\nmodule.exports = message;\n\n\n//# sourceURL=webpack:///./submodule/submodule.ts?");
+
+/***/ })
+
+/******/ });
\ No newline at end of file
diff --git a/test/comparison-tests/basic/expectedOutput-2.8/patch0/output.transpiled.txt b/test/comparison-tests/basic/expectedOutput-2.8/patch0/output.transpiled.txt
new file mode 100644
index 000000000..f9ce3d86b
--- /dev/null
+++ b/test/comparison-tests/basic/expectedOutput-2.8/patch0/output.transpiled.txt
@@ -0,0 +1,7 @@
+Built at: 2018-3-18 09:15:55
+ Asset Size Chunks Chunk Names
+bundle.js 3.87 KiB main [emitted] main
+Entrypoint main = bundle.js
+[./app.ts] 170 bytes {main} [built]
+[./lib/externalLib.js] 55 bytes {main}
+[./submodule/submodule.ts] 149 bytes {main}
\ No newline at end of file
diff --git a/test/comparison-tests/basic/expectedOutput-2.8/patch0/output.txt b/test/comparison-tests/basic/expectedOutput-2.8/patch0/output.txt
new file mode 100644
index 000000000..90a589cdd
--- /dev/null
+++ b/test/comparison-tests/basic/expectedOutput-2.8/patch0/output.txt
@@ -0,0 +1,12 @@
+Built at: 2018-3-18 09:15:49
+ Asset Size Chunks Chunk Names
+bundle.js 3.87 KiB main [emitted] main
+Entrypoint main = bundle.js
+[./app.ts] 170 bytes {main} [built] [1 error]
+[./lib/externalLib.js] 55 bytes {main}
+[./submodule/submodule.ts] 149 bytes {main}
+
+ERROR in app.ts
+./app.ts
+[90m[tsl] [39m[1m[31mERROR[39m[22m[1m[31m in [39m[22m[1m[36mapp.ts(3,13)[39m[22m
+[1m[31m TS2551: Property 'doSomething2' does not exist on type 'typeof externalLib'. Did you mean 'doSomething'?[39m[22m
\ No newline at end of file
diff --git a/test/comparison-tests/basic/expectedOutput-2.8/patch1/bundle.js b/test/comparison-tests/basic/expectedOutput-2.8/patch1/bundle.js
new file mode 100644
index 000000000..cd4249da3
--- /dev/null
+++ b/test/comparison-tests/basic/expectedOutput-2.8/patch1/bundle.js
@@ -0,0 +1,109 @@
+/******/ (function(modules) { // webpackBootstrap
+/******/ // The module cache
+/******/ var installedModules = {};
+/******/
+/******/ // The require function
+/******/ function __webpack_require__(moduleId) {
+/******/
+/******/ // Check if module is in cache
+/******/ if(installedModules[moduleId]) {
+/******/ return installedModules[moduleId].exports;
+/******/ }
+/******/ // Create a new module (and put it into the cache)
+/******/ var module = installedModules[moduleId] = {
+/******/ i: moduleId,
+/******/ l: false,
+/******/ exports: {}
+/******/ };
+/******/
+/******/ // Execute the module function
+/******/ modules[moduleId].call(module.exports, module, module.exports, __webpack_require__);
+/******/
+/******/ // Flag the module as loaded
+/******/ module.l = true;
+/******/
+/******/ // Return the exports of the module
+/******/ return module.exports;
+/******/ }
+/******/
+/******/
+/******/ // expose the modules object (__webpack_modules__)
+/******/ __webpack_require__.m = modules;
+/******/
+/******/ // expose the module cache
+/******/ __webpack_require__.c = installedModules;
+/******/
+/******/ // define getter function for harmony exports
+/******/ __webpack_require__.d = function(exports, name, getter) {
+/******/ if(!__webpack_require__.o(exports, name)) {
+/******/ Object.defineProperty(exports, name, {
+/******/ configurable: false,
+/******/ enumerable: true,
+/******/ get: getter
+/******/ });
+/******/ }
+/******/ };
+/******/
+/******/ // define __esModule on exports
+/******/ __webpack_require__.r = function(exports) {
+/******/ Object.defineProperty(exports, '__esModule', { value: true });
+/******/ };
+/******/
+/******/ // getDefaultExport function for compatibility with non-harmony modules
+/******/ __webpack_require__.n = function(module) {
+/******/ var getter = module && module.__esModule ?
+/******/ function getDefault() { return module['default']; } :
+/******/ function getModuleExports() { return module; };
+/******/ __webpack_require__.d(getter, 'a', getter);
+/******/ return getter;
+/******/ };
+/******/
+/******/ // Object.prototype.hasOwnProperty.call
+/******/ __webpack_require__.o = function(object, property) { return Object.prototype.hasOwnProperty.call(object, property); };
+/******/
+/******/ // __webpack_public_path__
+/******/ __webpack_require__.p = "";
+/******/
+/******/
+/******/ // Load entry module and return exports
+/******/ return __webpack_require__(__webpack_require__.s = "./app.ts");
+/******/ })
+/************************************************************************/
+/******/ ({
+
+/***/ "./app.ts":
+/*!****************!*\
+ !*** ./app.ts ***!
+ \****************/
+/*! no static exports found */
+/***/ (function(module, exports, __webpack_require__) {
+
+"use strict";
+eval("\nexports.__esModule = true;\nvar submodule = __webpack_require__(/*! ./submodule/submodule */ \"./submodule/submodule.ts\");\nvar externalLib = __webpack_require__(/*! externalLib */ \"./lib/externalLib.js\");\nexternalLib.doSomething(submodule);\n\n\n//# sourceURL=webpack:///./app.ts?");
+
+/***/ }),
+
+/***/ "./lib/externalLib.js":
+/*!****************************!*\
+ !*** ./lib/externalLib.js ***!
+ \****************************/
+/*! no static exports found */
+/***/ (function(module, exports) {
+
+eval("module.exports = {\n doSomething: function() { } \n}\n\n//# sourceURL=webpack:///./lib/externalLib.js?");
+
+/***/ }),
+
+/***/ "./submodule/submodule.ts":
+/*!********************************!*\
+ !*** ./submodule/submodule.ts ***!
+ \********************************/
+/*! no static exports found */
+/***/ (function(module, exports, __webpack_require__) {
+
+"use strict";
+eval("\nvar externalLib = __webpack_require__(/*! externalLib */ \"./lib/externalLib.js\");\nexternalLib.doSomething(\"\");\nvar message = \"Hello from submodule\";\nmodule.exports = message;\n\n\n//# sourceURL=webpack:///./submodule/submodule.ts?");
+
+/***/ })
+
+/******/ });
\ No newline at end of file
diff --git a/test/comparison-tests/basic/expectedOutput-2.8/patch1/output.transpiled.txt b/test/comparison-tests/basic/expectedOutput-2.8/patch1/output.transpiled.txt
new file mode 100644
index 000000000..7fed3c0c6
--- /dev/null
+++ b/test/comparison-tests/basic/expectedOutput-2.8/patch1/output.transpiled.txt
@@ -0,0 +1,7 @@
+Built at: 2018-3-18 09:15:57
+ Asset Size Chunks Chunk Names
+bundle.js 3.87 KiB main [emitted] main
+Entrypoint main = bundle.js
+[./app.ts] 169 bytes {main} [built]
+[./lib/externalLib.js] 55 bytes {main}
+[./submodule/submodule.ts] 149 bytes {main}
\ No newline at end of file
diff --git a/test/comparison-tests/basic/expectedOutput-2.8/patch1/output.txt b/test/comparison-tests/basic/expectedOutput-2.8/patch1/output.txt
new file mode 100644
index 000000000..894cc792e
--- /dev/null
+++ b/test/comparison-tests/basic/expectedOutput-2.8/patch1/output.txt
@@ -0,0 +1,7 @@
+Built at: 2018-3-18 09:15:51
+ Asset Size Chunks Chunk Names
+bundle.js 3.87 KiB main [emitted] main
+Entrypoint main = bundle.js
+[./app.ts] 169 bytes {main} [built]
+[./lib/externalLib.js] 55 bytes {main}
+[./submodule/submodule.ts] 149 bytes {main}
\ No newline at end of file
diff --git a/test/comparison-tests/codeSplitting/expectedOutput-2.8/0.bundle.js b/test/comparison-tests/codeSplitting/expectedOutput-2.8/0.bundle.js
new file mode 100644
index 000000000..12682a0b5
--- /dev/null
+++ b/test/comparison-tests/codeSplitting/expectedOutput-2.8/0.bundle.js
@@ -0,0 +1,27 @@
+(window["webpackJsonp"] = window["webpackJsonp"] || []).push([[0],{
+
+/***/ "./c.ts":
+/*!**************!*\
+ !*** ./c.ts ***!
+ \**************/
+/*! no static exports found */
+/***/ (function(module, exports, __webpack_require__) {
+
+"use strict";
+eval("\nmodule.exports = 'c';\n\n\n//# sourceURL=webpack:///./c.ts?");
+
+/***/ }),
+
+/***/ "./d.ts":
+/*!**************!*\
+ !*** ./d.ts ***!
+ \**************/
+/*! no static exports found */
+/***/ (function(module, exports, __webpack_require__) {
+
+"use strict";
+eval("\nmodule.exports = 'd';\n\n\n//# sourceURL=webpack:///./d.ts?");
+
+/***/ })
+
+}]);
\ No newline at end of file
diff --git a/test/comparison-tests/codeSplitting/expectedOutput-2.8/bundle.js b/test/comparison-tests/codeSplitting/expectedOutput-2.8/bundle.js
new file mode 100644
index 000000000..7a214e281
--- /dev/null
+++ b/test/comparison-tests/codeSplitting/expectedOutput-2.8/bundle.js
@@ -0,0 +1,213 @@
+/******/ (function(modules) { // webpackBootstrap
+/******/ // install a JSONP callback for chunk loading
+/******/ function webpackJsonpCallback(data) {
+/******/ var chunkIds = data[0];
+/******/ var moreModules = data[1]
+/******/
+/******/ // add "moreModules" to the modules object,
+/******/ // then flag all "chunkIds" as loaded and fire callback
+/******/ var moduleId, chunkId, i = 0, resolves = [];
+/******/ for(;i < chunkIds.length; i++) {
+/******/ chunkId = chunkIds[i];
+/******/ if(installedChunks[chunkId]) {
+/******/ resolves.push(installedChunks[chunkId][0]);
+/******/ }
+/******/ installedChunks[chunkId] = 0;
+/******/ }
+/******/ for(moduleId in moreModules) {
+/******/ if(Object.prototype.hasOwnProperty.call(moreModules, moduleId)) {
+/******/ modules[moduleId] = moreModules[moduleId];
+/******/ }
+/******/ }
+/******/ if(parentJsonpFunction) parentJsonpFunction(data);
+/******/ while(resolves.length) {
+/******/ resolves.shift()();
+/******/ }
+/******/
+/******/ };
+/******/
+/******/
+/******/ // The module cache
+/******/ var installedModules = {};
+/******/
+/******/ // object to store loaded and loading chunks
+/******/ var installedChunks = {
+/******/ "main": 0
+/******/ };
+/******/
+/******/
+/******/
+/******/ // The require function
+/******/ function __webpack_require__(moduleId) {
+/******/
+/******/ // Check if module is in cache
+/******/ if(installedModules[moduleId]) {
+/******/ return installedModules[moduleId].exports;
+/******/ }
+/******/ // Create a new module (and put it into the cache)
+/******/ var module = installedModules[moduleId] = {
+/******/ i: moduleId,
+/******/ l: false,
+/******/ exports: {}
+/******/ };
+/******/
+/******/ // Execute the module function
+/******/ modules[moduleId].call(module.exports, module, module.exports, __webpack_require__);
+/******/
+/******/ // Flag the module as loaded
+/******/ module.l = true;
+/******/
+/******/ // Return the exports of the module
+/******/ return module.exports;
+/******/ }
+/******/
+/******/ // This file contains only the entry chunk.
+/******/ // The chunk loading function for additional chunks
+/******/ __webpack_require__.e = function requireEnsure(chunkId) {
+/******/ var promises = [];
+/******/
+/******/
+/******/ // JSONP chunk loading for javascript
+/******/
+/******/ var installedChunkData = installedChunks[chunkId];
+/******/ if(installedChunkData !== 0) { // 0 means "already installed".
+/******/
+/******/ // a Promise means "currently loading".
+/******/ if(installedChunkData) {
+/******/ promises.push(installedChunkData[2]);
+/******/ } else {
+/******/ // setup Promise in chunk cache
+/******/ var promise = new Promise(function(resolve, reject) {
+/******/ installedChunkData = installedChunks[chunkId] = [resolve, reject];
+/******/ });
+/******/ promises.push(installedChunkData[2] = promise);
+/******/
+/******/ // start chunk loading
+/******/ var head = document.getElementsByTagName('head')[0];
+/******/ var script = document.createElement('script');
+/******/
+/******/ script.charset = 'utf-8';
+/******/ script.timeout = 120000;
+/******/
+/******/ if (__webpack_require__.nc) {
+/******/ script.setAttribute("nonce", __webpack_require__.nc);
+/******/ }
+/******/ script.src = __webpack_require__.p + "" + chunkId + ".bundle.js";
+/******/ var timeout = setTimeout(function(){
+/******/ onScriptComplete({ type: 'timeout', target: script });
+/******/ }, 120000);
+/******/ script.onerror = script.onload = onScriptComplete;
+/******/ function onScriptComplete(event) {
+/******/ // avoid mem leaks in IE.
+/******/ script.onerror = script.onload = null;
+/******/ clearTimeout(timeout);
+/******/ var chunk = installedChunks[chunkId];
+/******/ if(chunk !== 0) {
+/******/ if(chunk) {
+/******/ var errorType = event && (event.type === 'load' ? 'missing' : event.type);
+/******/ var realSrc = event && event.target && event.target.src;
+/******/ var error = new Error('Loading chunk ' + chunkId + ' failed.\n(' + errorType + ': ' + realSrc + ')');
+/******/ error.type = errorType;
+/******/ error.request = realSrc;
+/******/ chunk[1](error);
+/******/ }
+/******/ installedChunks[chunkId] = undefined;
+/******/ }
+/******/ };
+/******/ head.appendChild(script);
+/******/ }
+/******/ }
+/******/ return Promise.all(promises);
+/******/ };
+/******/
+/******/ // expose the modules object (__webpack_modules__)
+/******/ __webpack_require__.m = modules;
+/******/
+/******/ // expose the module cache
+/******/ __webpack_require__.c = installedModules;
+/******/
+/******/ // define getter function for harmony exports
+/******/ __webpack_require__.d = function(exports, name, getter) {
+/******/ if(!__webpack_require__.o(exports, name)) {
+/******/ Object.defineProperty(exports, name, {
+/******/ configurable: false,
+/******/ enumerable: true,
+/******/ get: getter
+/******/ });
+/******/ }
+/******/ };
+/******/
+/******/ // define __esModule on exports
+/******/ __webpack_require__.r = function(exports) {
+/******/ Object.defineProperty(exports, '__esModule', { value: true });
+/******/ };
+/******/
+/******/ // getDefaultExport function for compatibility with non-harmony modules
+/******/ __webpack_require__.n = function(module) {
+/******/ var getter = module && module.__esModule ?
+/******/ function getDefault() { return module['default']; } :
+/******/ function getModuleExports() { return module; };
+/******/ __webpack_require__.d(getter, 'a', getter);
+/******/ return getter;
+/******/ };
+/******/
+/******/ // Object.prototype.hasOwnProperty.call
+/******/ __webpack_require__.o = function(object, property) { return Object.prototype.hasOwnProperty.call(object, property); };
+/******/
+/******/ // __webpack_public_path__
+/******/ __webpack_require__.p = "";
+/******/
+/******/ // on error function for async loading
+/******/ __webpack_require__.oe = function(err) { console.error(err); throw err; };
+/******/
+/******/ var jsonpArray = window["webpackJsonp"] = window["webpackJsonp"] || [];
+/******/ var oldJsonpFunction = jsonpArray.push.bind(jsonpArray);
+/******/ jsonpArray.push = webpackJsonpCallback;
+/******/ jsonpArray = jsonpArray.slice();
+/******/ for(var i = 0; i < jsonpArray.length; i++) webpackJsonpCallback(jsonpArray[i]);
+/******/ var parentJsonpFunction = oldJsonpFunction;
+/******/
+/******/
+/******/ // Load entry module and return exports
+/******/ return __webpack_require__(__webpack_require__.s = "./app.ts");
+/******/ })
+/************************************************************************/
+/******/ ({
+
+/***/ "./a.ts":
+/*!**************!*\
+ !*** ./a.ts ***!
+ \**************/
+/*! no static exports found */
+/***/ (function(module, exports, __webpack_require__) {
+
+"use strict";
+eval("\nmodule.exports = 'a';\n\n\n//# sourceURL=webpack:///./a.ts?");
+
+/***/ }),
+
+/***/ "./app.ts":
+/*!****************!*\
+ !*** ./app.ts ***!
+ \****************/
+/*! no static exports found */
+/***/ (function(module, exports, __webpack_require__) {
+
+"use strict";
+eval("\nexports.__esModule = true;\nvar a = __webpack_require__(/*! ./a */ \"./a.ts\");\nvar b = __webpack_require__(/*! ./b */ \"./b.ts\");\nconsole.log(a);\nconsole.log(b);\n__webpack_require__.e(/*! require.ensure */ 0).then((function (require) {\n // These require calls are emitted (note these are NOT TypeScript\n // `import ... require` statements). `require.ensure` is defined in\n // require.d.ts. Webpack sees this and automatically puts c and d\n // into a separate chunk. \n var cModule = __webpack_require__(/*! ./c */ \"./c.ts\");\n var dModule = __webpack_require__(/*! ./d */ \"./d.ts\");\n // cModule and dModule will typed as strings\n console.log(cModule);\n console.log(dModule);\n}).bind(null, __webpack_require__)).catch(__webpack_require__.oe);\n\n\n//# sourceURL=webpack:///./app.ts?");
+
+/***/ }),
+
+/***/ "./b.ts":
+/*!**************!*\
+ !*** ./b.ts ***!
+ \**************/
+/*! no static exports found */
+/***/ (function(module, exports, __webpack_require__) {
+
+"use strict";
+eval("\nmodule.exports = 'b';\n\n\n//# sourceURL=webpack:///./b.ts?");
+
+/***/ })
+
+/******/ });
\ No newline at end of file
diff --git a/test/comparison-tests/codeSplitting/expectedOutput-2.8/output.txt b/test/comparison-tests/codeSplitting/expectedOutput-2.8/output.txt
new file mode 100644
index 000000000..a50efe9cd
--- /dev/null
+++ b/test/comparison-tests/codeSplitting/expectedOutput-2.8/output.txt
@@ -0,0 +1,10 @@
+Built at: 2018-3-18 09:16:04
+ Asset Size Chunks Chunk Names
+ bundle.js 8.13 KiB main [emitted] main
+0.bundle.js 592 bytes 0 [emitted]
+Entrypoint main = bundle.js
+[./a.ts] 36 bytes {main} [built]
+[./app.ts] 589 bytes {main} [built]
+[./b.ts] 36 bytes {main} [built]
+[./c.ts] 36 bytes {0} [built]
+[./d.ts] 36 bytes {0} [built]
\ No newline at end of file
diff --git a/test/comparison-tests/colors/expectedOutput-2.8/bundle.js b/test/comparison-tests/colors/expectedOutput-2.8/bundle.js
new file mode 100644
index 000000000..e718a4fd3
--- /dev/null
+++ b/test/comparison-tests/colors/expectedOutput-2.8/bundle.js
@@ -0,0 +1,85 @@
+/******/ (function(modules) { // webpackBootstrap
+/******/ // The module cache
+/******/ var installedModules = {};
+/******/
+/******/ // The require function
+/******/ function __webpack_require__(moduleId) {
+/******/
+/******/ // Check if module is in cache
+/******/ if(installedModules[moduleId]) {
+/******/ return installedModules[moduleId].exports;
+/******/ }
+/******/ // Create a new module (and put it into the cache)
+/******/ var module = installedModules[moduleId] = {
+/******/ i: moduleId,
+/******/ l: false,
+/******/ exports: {}
+/******/ };
+/******/
+/******/ // Execute the module function
+/******/ modules[moduleId].call(module.exports, module, module.exports, __webpack_require__);
+/******/
+/******/ // Flag the module as loaded
+/******/ module.l = true;
+/******/
+/******/ // Return the exports of the module
+/******/ return module.exports;
+/******/ }
+/******/
+/******/
+/******/ // expose the modules object (__webpack_modules__)
+/******/ __webpack_require__.m = modules;
+/******/
+/******/ // expose the module cache
+/******/ __webpack_require__.c = installedModules;
+/******/
+/******/ // define getter function for harmony exports
+/******/ __webpack_require__.d = function(exports, name, getter) {
+/******/ if(!__webpack_require__.o(exports, name)) {
+/******/ Object.defineProperty(exports, name, {
+/******/ configurable: false,
+/******/ enumerable: true,
+/******/ get: getter
+/******/ });
+/******/ }
+/******/ };
+/******/
+/******/ // define __esModule on exports
+/******/ __webpack_require__.r = function(exports) {
+/******/ Object.defineProperty(exports, '__esModule', { value: true });
+/******/ };
+/******/
+/******/ // getDefaultExport function for compatibility with non-harmony modules
+/******/ __webpack_require__.n = function(module) {
+/******/ var getter = module && module.__esModule ?
+/******/ function getDefault() { return module['default']; } :
+/******/ function getModuleExports() { return module; };
+/******/ __webpack_require__.d(getter, 'a', getter);
+/******/ return getter;
+/******/ };
+/******/
+/******/ // Object.prototype.hasOwnProperty.call
+/******/ __webpack_require__.o = function(object, property) { return Object.prototype.hasOwnProperty.call(object, property); };
+/******/
+/******/ // __webpack_public_path__
+/******/ __webpack_require__.p = "";
+/******/
+/******/
+/******/ // Load entry module and return exports
+/******/ return __webpack_require__(__webpack_require__.s = "./app.ts");
+/******/ })
+/************************************************************************/
+/******/ ({
+
+/***/ "./app.ts":
+/*!****************!*\
+ !*** ./app.ts ***!
+ \****************/
+/*! no static exports found */
+/***/ (function(module, exports) {
+
+eval("throw new Error(\"Module parse failed: Unexpected token (2:1)/nYou may need an appropriate loader to handle this file type./n| var a;/n| == 0;/n| \");\n\n//# sourceURL=webpack:///./app.ts?");
+
+/***/ })
+
+/******/ });
\ No newline at end of file
diff --git a/test/comparison-tests/colors/expectedOutput-2.8/output.txt b/test/comparison-tests/colors/expectedOutput-2.8/output.txt
new file mode 100644
index 000000000..668f6a931
--- /dev/null
+++ b/test/comparison-tests/colors/expectedOutput-2.8/output.txt
@@ -0,0 +1,17 @@
+Built at: 2018-3-18 09:16:10
+ Asset Size Chunks Chunk Names
+bundle.js 2.92 KiB main [emitted] main
+Entrypoint main = bundle.js
+[./app.ts] 149 bytes {main} [built] [failed] [2 errors]
+
+ERROR in ./app.ts
+Module parse failed: Unexpected token (2:1)
+You may need an appropriate loader to handle this file type.
+| var a;
+| == 0;
+|
+
+ERROR in app.ts
+./app.ts
+[tsl] ERROR in app.ts(1,7)
+ TS1005: ',' expected.
\ No newline at end of file
diff --git a/test/comparison-tests/conditionalRequire/expectedOutput-2.8/bundle.js b/test/comparison-tests/conditionalRequire/expectedOutput-2.8/bundle.js
new file mode 100644
index 000000000..f16ec6a6c
--- /dev/null
+++ b/test/comparison-tests/conditionalRequire/expectedOutput-2.8/bundle.js
@@ -0,0 +1,86 @@
+/******/ (function(modules) { // webpackBootstrap
+/******/ // The module cache
+/******/ var installedModules = {};
+/******/
+/******/ // The require function
+/******/ function __webpack_require__(moduleId) {
+/******/
+/******/ // Check if module is in cache
+/******/ if(installedModules[moduleId]) {
+/******/ return installedModules[moduleId].exports;
+/******/ }
+/******/ // Create a new module (and put it into the cache)
+/******/ var module = installedModules[moduleId] = {
+/******/ i: moduleId,
+/******/ l: false,
+/******/ exports: {}
+/******/ };
+/******/
+/******/ // Execute the module function
+/******/ modules[moduleId].call(module.exports, module, module.exports, __webpack_require__);
+/******/
+/******/ // Flag the module as loaded
+/******/ module.l = true;
+/******/
+/******/ // Return the exports of the module
+/******/ return module.exports;
+/******/ }
+/******/
+/******/
+/******/ // expose the modules object (__webpack_modules__)
+/******/ __webpack_require__.m = modules;
+/******/
+/******/ // expose the module cache
+/******/ __webpack_require__.c = installedModules;
+/******/
+/******/ // define getter function for harmony exports
+/******/ __webpack_require__.d = function(exports, name, getter) {
+/******/ if(!__webpack_require__.o(exports, name)) {
+/******/ Object.defineProperty(exports, name, {
+/******/ configurable: false,
+/******/ enumerable: true,
+/******/ get: getter
+/******/ });
+/******/ }
+/******/ };
+/******/
+/******/ // define __esModule on exports
+/******/ __webpack_require__.r = function(exports) {
+/******/ Object.defineProperty(exports, '__esModule', { value: true });
+/******/ };
+/******/
+/******/ // getDefaultExport function for compatibility with non-harmony modules
+/******/ __webpack_require__.n = function(module) {
+/******/ var getter = module && module.__esModule ?
+/******/ function getDefault() { return module['default']; } :
+/******/ function getModuleExports() { return module; };
+/******/ __webpack_require__.d(getter, 'a', getter);
+/******/ return getter;
+/******/ };
+/******/
+/******/ // Object.prototype.hasOwnProperty.call
+/******/ __webpack_require__.o = function(object, property) { return Object.prototype.hasOwnProperty.call(object, property); };
+/******/
+/******/ // __webpack_public_path__
+/******/ __webpack_require__.p = "";
+/******/
+/******/
+/******/ // Load entry module and return exports
+/******/ return __webpack_require__(__webpack_require__.s = "./app.ts");
+/******/ })
+/************************************************************************/
+/******/ ({
+
+/***/ "./app.ts":
+/*!****************!*\
+ !*** ./app.ts ***!
+ \****************/
+/*! no static exports found */
+/***/ (function(module, exports, __webpack_require__) {
+
+"use strict";
+eval("\nexports.__esModule = true;\nconsole.log('do something');\n// The DEBUG constant will be inlined by webpack's DefinePlugin (see config)\n// The whole if-statement can then be removed by UglifyJS\nif (false) { var debug; }\nconsole.log('do something else');\n\n\n//# sourceURL=webpack:///./app.ts?");
+
+/***/ })
+
+/******/ });
\ No newline at end of file
diff --git a/test/comparison-tests/conditionalRequire/expectedOutput-2.8/output.transpiled.txt b/test/comparison-tests/conditionalRequire/expectedOutput-2.8/output.transpiled.txt
new file mode 100644
index 000000000..c37bebdd1
--- /dev/null
+++ b/test/comparison-tests/conditionalRequire/expectedOutput-2.8/output.transpiled.txt
@@ -0,0 +1,5 @@
+Built at: 2018-3-18 09:16:15
+ Asset Size Chunks Chunk Names
+bundle.js 3.06 KiB main [emitted] main
+Entrypoint main = bundle.js
+[./app.ts] 312 bytes {main} [built]
\ No newline at end of file
diff --git a/test/comparison-tests/conditionalRequire/expectedOutput-2.8/output.txt b/test/comparison-tests/conditionalRequire/expectedOutput-2.8/output.txt
new file mode 100644
index 000000000..3df69d782
--- /dev/null
+++ b/test/comparison-tests/conditionalRequire/expectedOutput-2.8/output.txt
@@ -0,0 +1,5 @@
+Built at: 2018-3-18 09:16:14
+ Asset Size Chunks Chunk Names
+bundle.js 3.06 KiB main [emitted] main
+Entrypoint main = bundle.js
+[./app.ts] 312 bytes {main} [built]
\ No newline at end of file
diff --git a/test/comparison-tests/constEnumReExportWatch/expectedOutput-2.8/bundle.js b/test/comparison-tests/constEnumReExportWatch/expectedOutput-2.8/bundle.js
new file mode 100644
index 000000000..bd06df038
--- /dev/null
+++ b/test/comparison-tests/constEnumReExportWatch/expectedOutput-2.8/bundle.js
@@ -0,0 +1,79 @@
+/******/ (function(modules) { // webpackBootstrap
+/******/ // The module cache
+/******/ var installedModules = {};
+
+/******/ // The require function
+/******/ function __webpack_require__(moduleId) {
+
+/******/ // Check if module is in cache
+/******/ if(installedModules[moduleId])
+/******/ return installedModules[moduleId].exports;
+
+/******/ // Create a new module (and put it into the cache)
+/******/ var module = installedModules[moduleId] = {
+/******/ i: moduleId,
+/******/ l: false,
+/******/ exports: {}
+/******/ };
+
+/******/ // Execute the module function
+/******/ modules[moduleId].call(module.exports, module, module.exports, __webpack_require__);
+
+/******/ // Flag the module as loaded
+/******/ module.l = true;
+
+/******/ // Return the exports of the module
+/******/ return module.exports;
+/******/ }
+
+
+/******/ // expose the modules object (__webpack_modules__)
+/******/ __webpack_require__.m = modules;
+
+/******/ // expose the module cache
+/******/ __webpack_require__.c = installedModules;
+
+/******/ // identity function for calling harmony imports with the correct context
+/******/ __webpack_require__.i = function(value) { return value; };
+
+/******/ // define getter function for harmony exports
+/******/ __webpack_require__.d = function(exports, name, getter) {
+/******/ if(!__webpack_require__.o(exports, name)) {
+/******/ Object.defineProperty(exports, name, {
+/******/ configurable: false,
+/******/ enumerable: true,
+/******/ get: getter
+/******/ });
+/******/ }
+/******/ };
+
+/******/ // getDefaultExport function for compatibility with non-harmony modules
+/******/ __webpack_require__.n = function(module) {
+/******/ var getter = module && module.__esModule ?
+/******/ function getDefault() { return module['default']; } :
+/******/ function getModuleExports() { return module; };
+/******/ __webpack_require__.d(getter, 'a', getter);
+/******/ return getter;
+/******/ };
+
+/******/ // Object.prototype.hasOwnProperty.call
+/******/ __webpack_require__.o = function(object, property) { return Object.prototype.hasOwnProperty.call(object, property); };
+
+/******/ // __webpack_public_path__
+/******/ __webpack_require__.p = "";
+
+/******/ // Load entry module and return exports
+/******/ return __webpack_require__(__webpack_require__.s = 0);
+/******/ })
+/************************************************************************/
+/******/ ([
+/* 0 */
+/***/ (function(module, exports, __webpack_require__) {
+
+"use strict";
+
+console.log(1 /* Bar */);
+
+
+/***/ })
+/******/ ]);
\ No newline at end of file
diff --git a/test/comparison-tests/constEnumReExportWatch/expectedOutput-2.8/bundle.transpiled.js b/test/comparison-tests/constEnumReExportWatch/expectedOutput-2.8/bundle.transpiled.js
new file mode 100644
index 000000000..ced96f0a0
--- /dev/null
+++ b/test/comparison-tests/constEnumReExportWatch/expectedOutput-2.8/bundle.transpiled.js
@@ -0,0 +1,74 @@
+/******/ (function(modules) { // webpackBootstrap
+/******/ // The module cache
+/******/ var installedModules = {};
+
+/******/ // The require function
+/******/ function __webpack_require__(moduleId) {
+
+/******/ // Check if module is in cache
+/******/ if(installedModules[moduleId])
+/******/ return installedModules[moduleId].exports;
+
+/******/ // Create a new module (and put it into the cache)
+/******/ var module = installedModules[moduleId] = {
+/******/ exports: {},
+/******/ id: moduleId,
+/******/ loaded: false
+/******/ };
+
+/******/ // Execute the module function
+/******/ modules[moduleId].call(module.exports, module, module.exports, __webpack_require__);
+
+/******/ // Flag the module as loaded
+/******/ module.loaded = true;
+
+/******/ // Return the exports of the module
+/******/ return module.exports;
+/******/ }
+
+
+/******/ // expose the modules object (__webpack_modules__)
+/******/ __webpack_require__.m = modules;
+
+/******/ // expose the module cache
+/******/ __webpack_require__.c = installedModules;
+
+/******/ // __webpack_public_path__
+/******/ __webpack_require__.p = "";
+
+/******/ // Load entry module and return exports
+/******/ return __webpack_require__(0);
+/******/ })
+/************************************************************************/
+/******/ ([
+/* 0 */
+/***/ function(module, exports, __webpack_require__) {
+
+ "use strict";
+ var foo_1 = __webpack_require__(1);
+ console.log(foo_1.BarEnum.Bar);
+
+
+/***/ },
+/* 1 */
+/***/ function(module, exports, __webpack_require__) {
+
+ "use strict";
+ var bar_1 = __webpack_require__(2);
+ exports.BarEnum = bar_1.BarEnum;
+
+
+/***/ },
+/* 2 */
+/***/ function(module, exports) {
+
+ "use strict";
+ var BarEnum;
+ (function (BarEnum) {
+ BarEnum[BarEnum["Bar"] = 1] = "Bar";
+ })(BarEnum = exports.BarEnum || (exports.BarEnum = {}));
+ ;
+
+
+/***/ }
+/******/ ]);
\ No newline at end of file
diff --git a/test/comparison-tests/constEnumReExportWatch/expectedOutput-2.8/output.transpiled.txt b/test/comparison-tests/constEnumReExportWatch/expectedOutput-2.8/output.transpiled.txt
new file mode 100644
index 000000000..880b69860
--- /dev/null
+++ b/test/comparison-tests/constEnumReExportWatch/expectedOutput-2.8/output.transpiled.txt
@@ -0,0 +1,6 @@
+ Asset Size Chunks Chunk Names
+bundle.js 1.86 kB 0 [emitted] main
+chunk {0} bundle.js (main) 302 bytes [rendered]
+ [0] ./.test/constEnumReExportWatch/app.ts 76 bytes {0} [built]
+ [1] ./.test/constEnumReExportWatch/foo.ts 77 bytes {0} [built]
+ [2] ./.test/constEnumReExportWatch/bar.ts 149 bytes {0} [built]
\ No newline at end of file
diff --git a/test/comparison-tests/constEnumReExportWatch/expectedOutput-2.8/output.txt b/test/comparison-tests/constEnumReExportWatch/expectedOutput-2.8/output.txt
new file mode 100644
index 000000000..f03c54463
--- /dev/null
+++ b/test/comparison-tests/constEnumReExportWatch/expectedOutput-2.8/output.txt
@@ -0,0 +1,4 @@
+ Asset Size Chunks Chunk Names
+bundle.js 2.57 kB 0 [emitted] main
+chunk {0} bundle.js (main) 40 bytes [entry] [rendered]
+ [0] ./.test/constEnumReExportWatch/app.ts 40 bytes {0} [built]
\ No newline at end of file
diff --git a/test/comparison-tests/constEnumReExportWatch/expectedOutput-2.8/patch0/bundle.js b/test/comparison-tests/constEnumReExportWatch/expectedOutput-2.8/patch0/bundle.js
new file mode 100644
index 000000000..f06a7bba3
--- /dev/null
+++ b/test/comparison-tests/constEnumReExportWatch/expectedOutput-2.8/patch0/bundle.js
@@ -0,0 +1,52 @@
+/******/ (function(modules) { // webpackBootstrap
+/******/ // The module cache
+/******/ var installedModules = {};
+
+/******/ // The require function
+/******/ function __webpack_require__(moduleId) {
+
+/******/ // Check if module is in cache
+/******/ if(installedModules[moduleId])
+/******/ return installedModules[moduleId].exports;
+
+/******/ // Create a new module (and put it into the cache)
+/******/ var module = installedModules[moduleId] = {
+/******/ exports: {},
+/******/ id: moduleId,
+/******/ loaded: false
+/******/ };
+
+/******/ // Execute the module function
+/******/ modules[moduleId].call(module.exports, module, module.exports, __webpack_require__);
+
+/******/ // Flag the module as loaded
+/******/ module.loaded = true;
+
+/******/ // Return the exports of the module
+/******/ return module.exports;
+/******/ }
+
+
+/******/ // expose the modules object (__webpack_modules__)
+/******/ __webpack_require__.m = modules;
+
+/******/ // expose the module cache
+/******/ __webpack_require__.c = installedModules;
+
+/******/ // __webpack_public_path__
+/******/ __webpack_require__.p = "";
+
+/******/ // Load entry module and return exports
+/******/ return __webpack_require__(0);
+/******/ })
+/************************************************************************/
+/******/ ([
+/* 0 */
+/***/ function(module, exports) {
+
+ "use strict";
+ console.log(2 /* Bar */);
+
+
+/***/ }
+/******/ ]);
\ No newline at end of file
diff --git a/test/comparison-tests/constEnumReExportWatch/expectedOutput-2.8/patch0/bundle.transpiled.js b/test/comparison-tests/constEnumReExportWatch/expectedOutput-2.8/patch0/bundle.transpiled.js
new file mode 100644
index 000000000..6a9fddf08
--- /dev/null
+++ b/test/comparison-tests/constEnumReExportWatch/expectedOutput-2.8/patch0/bundle.transpiled.js
@@ -0,0 +1,74 @@
+/******/ (function(modules) { // webpackBootstrap
+/******/ // The module cache
+/******/ var installedModules = {};
+
+/******/ // The require function
+/******/ function __webpack_require__(moduleId) {
+
+/******/ // Check if module is in cache
+/******/ if(installedModules[moduleId])
+/******/ return installedModules[moduleId].exports;
+
+/******/ // Create a new module (and put it into the cache)
+/******/ var module = installedModules[moduleId] = {
+/******/ exports: {},
+/******/ id: moduleId,
+/******/ loaded: false
+/******/ };
+
+/******/ // Execute the module function
+/******/ modules[moduleId].call(module.exports, module, module.exports, __webpack_require__);
+
+/******/ // Flag the module as loaded
+/******/ module.loaded = true;
+
+/******/ // Return the exports of the module
+/******/ return module.exports;
+/******/ }
+
+
+/******/ // expose the modules object (__webpack_modules__)
+/******/ __webpack_require__.m = modules;
+
+/******/ // expose the module cache
+/******/ __webpack_require__.c = installedModules;
+
+/******/ // __webpack_public_path__
+/******/ __webpack_require__.p = "";
+
+/******/ // Load entry module and return exports
+/******/ return __webpack_require__(0);
+/******/ })
+/************************************************************************/
+/******/ ([
+/* 0 */
+/***/ function(module, exports, __webpack_require__) {
+
+ "use strict";
+ var foo_1 = __webpack_require__(1);
+ console.log(foo_1.BarEnum.Bar);
+
+
+/***/ },
+/* 1 */
+/***/ function(module, exports, __webpack_require__) {
+
+ "use strict";
+ var bar_1 = __webpack_require__(2);
+ exports.BarEnum = bar_1.BarEnum;
+
+
+/***/ },
+/* 2 */
+/***/ function(module, exports) {
+
+ "use strict";
+ var BarEnum;
+ (function (BarEnum) {
+ BarEnum[BarEnum["Bar"] = 2] = "Bar";
+ })(BarEnum = exports.BarEnum || (exports.BarEnum = {}));
+ ;
+
+
+/***/ }
+/******/ ]);
\ No newline at end of file
diff --git a/test/comparison-tests/constEnumReExportWatch/expectedOutput-2.8/patch0/output.transpiled.txt b/test/comparison-tests/constEnumReExportWatch/expectedOutput-2.8/patch0/output.transpiled.txt
new file mode 100644
index 000000000..c1f20fa51
--- /dev/null
+++ b/test/comparison-tests/constEnumReExportWatch/expectedOutput-2.8/patch0/output.transpiled.txt
@@ -0,0 +1,6 @@
+ Asset Size Chunks Chunk Names
+bundle.js 1.86 kB 0 [emitted] main
+chunk {0} bundle.js (main) 302 bytes [rendered]
+ [0] ./.test/constEnumReExportWatch/app.ts 76 bytes {0}
+ [1] ./.test/constEnumReExportWatch/foo.ts 77 bytes {0}
+ [2] ./.test/constEnumReExportWatch/bar.ts 149 bytes {0} [built]
\ No newline at end of file
diff --git a/test/comparison-tests/constEnumReExportWatch/expectedOutput-2.8/patch0/output.txt b/test/comparison-tests/constEnumReExportWatch/expectedOutput-2.8/patch0/output.txt
new file mode 100644
index 000000000..c3c074468
--- /dev/null
+++ b/test/comparison-tests/constEnumReExportWatch/expectedOutput-2.8/patch0/output.txt
@@ -0,0 +1,4 @@
+ Asset Size Chunks Chunk Names
+bundle.js 1.43 kB 0 [emitted] main
+chunk {0} bundle.js (main) 40 bytes [rendered]
+ [0] ./.test/constEnumReExportWatch/app.ts 40 bytes {0} [built]
\ No newline at end of file
diff --git a/test/comparison-tests/customTransformer/expectedOutput-2.8/bundle.js b/test/comparison-tests/customTransformer/expectedOutput-2.8/bundle.js
new file mode 100644
index 000000000..9c57c4a51
--- /dev/null
+++ b/test/comparison-tests/customTransformer/expectedOutput-2.8/bundle.js
@@ -0,0 +1,85 @@
+/******/ (function(modules) { // webpackBootstrap
+/******/ // The module cache
+/******/ var installedModules = {};
+/******/
+/******/ // The require function
+/******/ function __webpack_require__(moduleId) {
+/******/
+/******/ // Check if module is in cache
+/******/ if(installedModules[moduleId]) {
+/******/ return installedModules[moduleId].exports;
+/******/ }
+/******/ // Create a new module (and put it into the cache)
+/******/ var module = installedModules[moduleId] = {
+/******/ i: moduleId,
+/******/ l: false,
+/******/ exports: {}
+/******/ };
+/******/
+/******/ // Execute the module function
+/******/ modules[moduleId].call(module.exports, module, module.exports, __webpack_require__);
+/******/
+/******/ // Flag the module as loaded
+/******/ module.l = true;
+/******/
+/******/ // Return the exports of the module
+/******/ return module.exports;
+/******/ }
+/******/
+/******/
+/******/ // expose the modules object (__webpack_modules__)
+/******/ __webpack_require__.m = modules;
+/******/
+/******/ // expose the module cache
+/******/ __webpack_require__.c = installedModules;
+/******/
+/******/ // define getter function for harmony exports
+/******/ __webpack_require__.d = function(exports, name, getter) {
+/******/ if(!__webpack_require__.o(exports, name)) {
+/******/ Object.defineProperty(exports, name, {
+/******/ configurable: false,
+/******/ enumerable: true,
+/******/ get: getter
+/******/ });
+/******/ }
+/******/ };
+/******/
+/******/ // define __esModule on exports
+/******/ __webpack_require__.r = function(exports) {
+/******/ Object.defineProperty(exports, '__esModule', { value: true });
+/******/ };
+/******/
+/******/ // getDefaultExport function for compatibility with non-harmony modules
+/******/ __webpack_require__.n = function(module) {
+/******/ var getter = module && module.__esModule ?
+/******/ function getDefault() { return module['default']; } :
+/******/ function getModuleExports() { return module; };
+/******/ __webpack_require__.d(getter, 'a', getter);
+/******/ return getter;
+/******/ };
+/******/
+/******/ // Object.prototype.hasOwnProperty.call
+/******/ __webpack_require__.o = function(object, property) { return Object.prototype.hasOwnProperty.call(object, property); };
+/******/
+/******/ // __webpack_public_path__
+/******/ __webpack_require__.p = "";
+/******/
+/******/
+/******/ // Load entry module and return exports
+/******/ return __webpack_require__(__webpack_require__.s = "./app.ts");
+/******/ })
+/************************************************************************/
+/******/ ({
+
+/***/ "./app.ts":
+/*!****************!*\
+ !*** ./app.ts ***!
+ \****************/
+/*! no static exports found */
+/***/ (function(module, exports) {
+
+eval("var message = \"HELLO FROM ME!\";\nconsole.log(message);\n\n\n//# sourceURL=webpack:///./app.ts?");
+
+/***/ })
+
+/******/ });
\ No newline at end of file
diff --git a/test/comparison-tests/customTransformer/expectedOutput-2.8/output.transpiled.txt b/test/comparison-tests/customTransformer/expectedOutput-2.8/output.transpiled.txt
new file mode 100644
index 000000000..271d83656
--- /dev/null
+++ b/test/comparison-tests/customTransformer/expectedOutput-2.8/output.transpiled.txt
@@ -0,0 +1,5 @@
+Built at: 2018-3-18 09:16:27
+ Asset Size Chunks Chunk Names
+bundle.js 2.83 KiB main [emitted] main
+Entrypoint main = bundle.js
+[./app.ts] 54 bytes {main} [built]
\ No newline at end of file
diff --git a/test/comparison-tests/customTransformer/expectedOutput-2.8/output.txt b/test/comparison-tests/customTransformer/expectedOutput-2.8/output.txt
new file mode 100644
index 000000000..3f06cdc12
--- /dev/null
+++ b/test/comparison-tests/customTransformer/expectedOutput-2.8/output.txt
@@ -0,0 +1,5 @@
+Built at: 2018-3-18 09:16:21
+ Asset Size Chunks Chunk Names
+bundle.js 2.83 KiB main [emitted] main
+Entrypoint main = bundle.js
+[./app.ts] 54 bytes {main} [built]
\ No newline at end of file
diff --git a/test/comparison-tests/customTransformer/expectedOutput-2.8/patch0/bundle.js b/test/comparison-tests/customTransformer/expectedOutput-2.8/patch0/bundle.js
new file mode 100644
index 000000000..f028a65aa
--- /dev/null
+++ b/test/comparison-tests/customTransformer/expectedOutput-2.8/patch0/bundle.js
@@ -0,0 +1,85 @@
+/******/ (function(modules) { // webpackBootstrap
+/******/ // The module cache
+/******/ var installedModules = {};
+/******/
+/******/ // The require function
+/******/ function __webpack_require__(moduleId) {
+/******/
+/******/ // Check if module is in cache
+/******/ if(installedModules[moduleId]) {
+/******/ return installedModules[moduleId].exports;
+/******/ }
+/******/ // Create a new module (and put it into the cache)
+/******/ var module = installedModules[moduleId] = {
+/******/ i: moduleId,
+/******/ l: false,
+/******/ exports: {}
+/******/ };
+/******/
+/******/ // Execute the module function
+/******/ modules[moduleId].call(module.exports, module, module.exports, __webpack_require__);
+/******/
+/******/ // Flag the module as loaded
+/******/ module.l = true;
+/******/
+/******/ // Return the exports of the module
+/******/ return module.exports;
+/******/ }
+/******/
+/******/
+/******/ // expose the modules object (__webpack_modules__)
+/******/ __webpack_require__.m = modules;
+/******/
+/******/ // expose the module cache
+/******/ __webpack_require__.c = installedModules;
+/******/
+/******/ // define getter function for harmony exports
+/******/ __webpack_require__.d = function(exports, name, getter) {
+/******/ if(!__webpack_require__.o(exports, name)) {
+/******/ Object.defineProperty(exports, name, {
+/******/ configurable: false,
+/******/ enumerable: true,
+/******/ get: getter
+/******/ });
+/******/ }
+/******/ };
+/******/
+/******/ // define __esModule on exports
+/******/ __webpack_require__.r = function(exports) {
+/******/ Object.defineProperty(exports, '__esModule', { value: true });
+/******/ };
+/******/
+/******/ // getDefaultExport function for compatibility with non-harmony modules
+/******/ __webpack_require__.n = function(module) {
+/******/ var getter = module && module.__esModule ?
+/******/ function getDefault() { return module['default']; } :
+/******/ function getModuleExports() { return module; };
+/******/ __webpack_require__.d(getter, 'a', getter);
+/******/ return getter;
+/******/ };
+/******/
+/******/ // Object.prototype.hasOwnProperty.call
+/******/ __webpack_require__.o = function(object, property) { return Object.prototype.hasOwnProperty.call(object, property); };
+/******/
+/******/ // __webpack_public_path__
+/******/ __webpack_require__.p = "";
+/******/
+/******/
+/******/ // Load entry module and return exports
+/******/ return __webpack_require__(__webpack_require__.s = "./app.ts");
+/******/ })
+/************************************************************************/
+/******/ ({
+
+/***/ "./app.ts":
+/*!****************!*\
+ !*** ./app.ts ***!
+ \****************/
+/*! no static exports found */
+/***/ (function(module, exports) {
+
+eval("var message = \"HELLO FROM HIM!\";\nconsole.log(message);\n\n\n//# sourceURL=webpack:///./app.ts?");
+
+/***/ })
+
+/******/ });
\ No newline at end of file
diff --git a/test/comparison-tests/customTransformer/expectedOutput-2.8/patch0/output.transpiled.txt b/test/comparison-tests/customTransformer/expectedOutput-2.8/patch0/output.transpiled.txt
new file mode 100644
index 000000000..56a852c3e
--- /dev/null
+++ b/test/comparison-tests/customTransformer/expectedOutput-2.8/patch0/output.transpiled.txt
@@ -0,0 +1,5 @@
+Built at: 2018-3-18 09:16:29
+ Asset Size Chunks Chunk Names
+bundle.js 2.83 KiB main [emitted] main
+Entrypoint main = bundle.js
+[./app.ts] 55 bytes {main} [built]
\ No newline at end of file
diff --git a/test/comparison-tests/customTransformer/expectedOutput-2.8/patch0/output.txt b/test/comparison-tests/customTransformer/expectedOutput-2.8/patch0/output.txt
new file mode 100644
index 000000000..ec80b3dc8
--- /dev/null
+++ b/test/comparison-tests/customTransformer/expectedOutput-2.8/patch0/output.txt
@@ -0,0 +1,5 @@
+Built at: 2018-3-18 09:16:24
+ Asset Size Chunks Chunk Names
+bundle.js 2.83 KiB main [emitted] main
+Entrypoint main = bundle.js
+[./app.ts] 55 bytes {main} [built]
\ No newline at end of file
diff --git a/test/comparison-tests/customTransformer/expectedOutput-2.8/patch1/bundle.js b/test/comparison-tests/customTransformer/expectedOutput-2.8/patch1/bundle.js
new file mode 100644
index 000000000..530f6981f
--- /dev/null
+++ b/test/comparison-tests/customTransformer/expectedOutput-2.8/patch1/bundle.js
@@ -0,0 +1,85 @@
+/******/ (function(modules) { // webpackBootstrap
+/******/ // The module cache
+/******/ var installedModules = {};
+/******/
+/******/ // The require function
+/******/ function __webpack_require__(moduleId) {
+/******/
+/******/ // Check if module is in cache
+/******/ if(installedModules[moduleId]) {
+/******/ return installedModules[moduleId].exports;
+/******/ }
+/******/ // Create a new module (and put it into the cache)
+/******/ var module = installedModules[moduleId] = {
+/******/ i: moduleId,
+/******/ l: false,
+/******/ exports: {}
+/******/ };
+/******/
+/******/ // Execute the module function
+/******/ modules[moduleId].call(module.exports, module, module.exports, __webpack_require__);
+/******/
+/******/ // Flag the module as loaded
+/******/ module.l = true;
+/******/
+/******/ // Return the exports of the module
+/******/ return module.exports;
+/******/ }
+/******/
+/******/
+/******/ // expose the modules object (__webpack_modules__)
+/******/ __webpack_require__.m = modules;
+/******/
+/******/ // expose the module cache
+/******/ __webpack_require__.c = installedModules;
+/******/
+/******/ // define getter function for harmony exports
+/******/ __webpack_require__.d = function(exports, name, getter) {
+/******/ if(!__webpack_require__.o(exports, name)) {
+/******/ Object.defineProperty(exports, name, {
+/******/ configurable: false,
+/******/ enumerable: true,
+/******/ get: getter
+/******/ });
+/******/ }
+/******/ };
+/******/
+/******/ // define __esModule on exports
+/******/ __webpack_require__.r = function(exports) {
+/******/ Object.defineProperty(exports, '__esModule', { value: true });
+/******/ };
+/******/
+/******/ // getDefaultExport function for compatibility with non-harmony modules
+/******/ __webpack_require__.n = function(module) {
+/******/ var getter = module && module.__esModule ?
+/******/ function getDefault() { return module['default']; } :
+/******/ function getModuleExports() { return module; };
+/******/ __webpack_require__.d(getter, 'a', getter);
+/******/ return getter;
+/******/ };
+/******/
+/******/ // Object.prototype.hasOwnProperty.call
+/******/ __webpack_require__.o = function(object, property) { return Object.prototype.hasOwnProperty.call(object, property); };
+/******/
+/******/ // __webpack_public_path__
+/******/ __webpack_require__.p = "";
+/******/
+/******/
+/******/ // Load entry module and return exports
+/******/ return __webpack_require__(__webpack_require__.s = "./app.ts");
+/******/ })
+/************************************************************************/
+/******/ ({
+
+/***/ "./app.ts":
+/*!****************!*\
+ !*** ./app.ts ***!
+ \****************/
+/*! no static exports found */
+/***/ (function(module, exports) {
+
+eval("var message = \"HELLO FROM US!\";\nconsole.log(message);\n\n\n//# sourceURL=webpack:///./app.ts?");
+
+/***/ })
+
+/******/ });
\ No newline at end of file
diff --git a/test/comparison-tests/customTransformer/expectedOutput-2.8/patch1/output.transpiled.txt b/test/comparison-tests/customTransformer/expectedOutput-2.8/patch1/output.transpiled.txt
new file mode 100644
index 000000000..827f6afea
--- /dev/null
+++ b/test/comparison-tests/customTransformer/expectedOutput-2.8/patch1/output.transpiled.txt
@@ -0,0 +1,5 @@
+Built at: 2018-3-18 09:16:32
+ Asset Size Chunks Chunk Names
+bundle.js 2.83 KiB main [emitted] main
+Entrypoint main = bundle.js
+[./app.ts] 54 bytes {main} [built]
\ No newline at end of file
diff --git a/test/comparison-tests/customTransformer/expectedOutput-2.8/patch1/output.txt b/test/comparison-tests/customTransformer/expectedOutput-2.8/patch1/output.txt
new file mode 100644
index 000000000..03e7a5d59
--- /dev/null
+++ b/test/comparison-tests/customTransformer/expectedOutput-2.8/patch1/output.txt
@@ -0,0 +1,5 @@
+Built at: 2018-3-18 09:16:26
+ Asset Size Chunks Chunk Names
+bundle.js 2.83 KiB main [emitted] main
+Entrypoint main = bundle.js
+[./app.ts] 54 bytes {main} [built]
\ No newline at end of file
diff --git a/test/comparison-tests/customTransformerUsingPathString/expectedOutput-2.8/bundle.js b/test/comparison-tests/customTransformerUsingPathString/expectedOutput-2.8/bundle.js
new file mode 100644
index 000000000..9c57c4a51
--- /dev/null
+++ b/test/comparison-tests/customTransformerUsingPathString/expectedOutput-2.8/bundle.js
@@ -0,0 +1,85 @@
+/******/ (function(modules) { // webpackBootstrap
+/******/ // The module cache
+/******/ var installedModules = {};
+/******/
+/******/ // The require function
+/******/ function __webpack_require__(moduleId) {
+/******/
+/******/ // Check if module is in cache
+/******/ if(installedModules[moduleId]) {
+/******/ return installedModules[moduleId].exports;
+/******/ }
+/******/ // Create a new module (and put it into the cache)
+/******/ var module = installedModules[moduleId] = {
+/******/ i: moduleId,
+/******/ l: false,
+/******/ exports: {}
+/******/ };
+/******/
+/******/ // Execute the module function
+/******/ modules[moduleId].call(module.exports, module, module.exports, __webpack_require__);
+/******/
+/******/ // Flag the module as loaded
+/******/ module.l = true;
+/******/
+/******/ // Return the exports of the module
+/******/ return module.exports;
+/******/ }
+/******/
+/******/
+/******/ // expose the modules object (__webpack_modules__)
+/******/ __webpack_require__.m = modules;
+/******/
+/******/ // expose the module cache
+/******/ __webpack_require__.c = installedModules;
+/******/
+/******/ // define getter function for harmony exports
+/******/ __webpack_require__.d = function(exports, name, getter) {
+/******/ if(!__webpack_require__.o(exports, name)) {
+/******/ Object.defineProperty(exports, name, {
+/******/ configurable: false,
+/******/ enumerable: true,
+/******/ get: getter
+/******/ });
+/******/ }
+/******/ };
+/******/
+/******/ // define __esModule on exports
+/******/ __webpack_require__.r = function(exports) {
+/******/ Object.defineProperty(exports, '__esModule', { value: true });
+/******/ };
+/******/
+/******/ // getDefaultExport function for compatibility with non-harmony modules
+/******/ __webpack_require__.n = function(module) {
+/******/ var getter = module && module.__esModule ?
+/******/ function getDefault() { return module['default']; } :
+/******/ function getModuleExports() { return module; };
+/******/ __webpack_require__.d(getter, 'a', getter);
+/******/ return getter;
+/******/ };
+/******/
+/******/ // Object.prototype.hasOwnProperty.call
+/******/ __webpack_require__.o = function(object, property) { return Object.prototype.hasOwnProperty.call(object, property); };
+/******/
+/******/ // __webpack_public_path__
+/******/ __webpack_require__.p = "";
+/******/
+/******/
+/******/ // Load entry module and return exports
+/******/ return __webpack_require__(__webpack_require__.s = "./app.ts");
+/******/ })
+/************************************************************************/
+/******/ ({
+
+/***/ "./app.ts":
+/*!****************!*\
+ !*** ./app.ts ***!
+ \****************/
+/*! no static exports found */
+/***/ (function(module, exports) {
+
+eval("var message = \"HELLO FROM ME!\";\nconsole.log(message);\n\n\n//# sourceURL=webpack:///./app.ts?");
+
+/***/ })
+
+/******/ });
\ No newline at end of file
diff --git a/test/comparison-tests/customTransformerUsingPathString/expectedOutput-2.8/output.transpiled.txt b/test/comparison-tests/customTransformerUsingPathString/expectedOutput-2.8/output.transpiled.txt
new file mode 100644
index 000000000..ff1c89ae0
--- /dev/null
+++ b/test/comparison-tests/customTransformerUsingPathString/expectedOutput-2.8/output.transpiled.txt
@@ -0,0 +1,5 @@
+Built at: 2018-3-18 09:16:43
+ Asset Size Chunks Chunk Names
+bundle.js 2.83 KiB main [emitted] main
+Entrypoint main = bundle.js
+[./app.ts] 54 bytes {main} [built]
\ No newline at end of file
diff --git a/test/comparison-tests/customTransformerUsingPathString/expectedOutput-2.8/output.txt b/test/comparison-tests/customTransformerUsingPathString/expectedOutput-2.8/output.txt
new file mode 100644
index 000000000..c8be16dac
--- /dev/null
+++ b/test/comparison-tests/customTransformerUsingPathString/expectedOutput-2.8/output.txt
@@ -0,0 +1,5 @@
+Built at: 2018-3-18 09:16:38
+ Asset Size Chunks Chunk Names
+bundle.js 2.83 KiB main [emitted] main
+Entrypoint main = bundle.js
+[./app.ts] 54 bytes {main} [built]
\ No newline at end of file
diff --git a/test/comparison-tests/customTransformerUsingPathString/expectedOutput-2.8/patch0/bundle.js b/test/comparison-tests/customTransformerUsingPathString/expectedOutput-2.8/patch0/bundle.js
new file mode 100644
index 000000000..f028a65aa
--- /dev/null
+++ b/test/comparison-tests/customTransformerUsingPathString/expectedOutput-2.8/patch0/bundle.js
@@ -0,0 +1,85 @@
+/******/ (function(modules) { // webpackBootstrap
+/******/ // The module cache
+/******/ var installedModules = {};
+/******/
+/******/ // The require function
+/******/ function __webpack_require__(moduleId) {
+/******/
+/******/ // Check if module is in cache
+/******/ if(installedModules[moduleId]) {
+/******/ return installedModules[moduleId].exports;
+/******/ }
+/******/ // Create a new module (and put it into the cache)
+/******/ var module = installedModules[moduleId] = {
+/******/ i: moduleId,
+/******/ l: false,
+/******/ exports: {}
+/******/ };
+/******/
+/******/ // Execute the module function
+/******/ modules[moduleId].call(module.exports, module, module.exports, __webpack_require__);
+/******/
+/******/ // Flag the module as loaded
+/******/ module.l = true;
+/******/
+/******/ // Return the exports of the module
+/******/ return module.exports;
+/******/ }
+/******/
+/******/
+/******/ // expose the modules object (__webpack_modules__)
+/******/ __webpack_require__.m = modules;
+/******/
+/******/ // expose the module cache
+/******/ __webpack_require__.c = installedModules;
+/******/
+/******/ // define getter function for harmony exports
+/******/ __webpack_require__.d = function(exports, name, getter) {
+/******/ if(!__webpack_require__.o(exports, name)) {
+/******/ Object.defineProperty(exports, name, {
+/******/ configurable: false,
+/******/ enumerable: true,
+/******/ get: getter
+/******/ });
+/******/ }
+/******/ };
+/******/
+/******/ // define __esModule on exports
+/******/ __webpack_require__.r = function(exports) {
+/******/ Object.defineProperty(exports, '__esModule', { value: true });
+/******/ };
+/******/
+/******/ // getDefaultExport function for compatibility with non-harmony modules
+/******/ __webpack_require__.n = function(module) {
+/******/ var getter = module && module.__esModule ?
+/******/ function getDefault() { return module['default']; } :
+/******/ function getModuleExports() { return module; };
+/******/ __webpack_require__.d(getter, 'a', getter);
+/******/ return getter;
+/******/ };
+/******/
+/******/ // Object.prototype.hasOwnProperty.call
+/******/ __webpack_require__.o = function(object, property) { return Object.prototype.hasOwnProperty.call(object, property); };
+/******/
+/******/ // __webpack_public_path__
+/******/ __webpack_require__.p = "";
+/******/
+/******/
+/******/ // Load entry module and return exports
+/******/ return __webpack_require__(__webpack_require__.s = "./app.ts");
+/******/ })
+/************************************************************************/
+/******/ ({
+
+/***/ "./app.ts":
+/*!****************!*\
+ !*** ./app.ts ***!
+ \****************/
+/*! no static exports found */
+/***/ (function(module, exports) {
+
+eval("var message = \"HELLO FROM HIM!\";\nconsole.log(message);\n\n\n//# sourceURL=webpack:///./app.ts?");
+
+/***/ })
+
+/******/ });
\ No newline at end of file
diff --git a/test/comparison-tests/customTransformerUsingPathString/expectedOutput-2.8/patch0/output.transpiled.txt b/test/comparison-tests/customTransformerUsingPathString/expectedOutput-2.8/patch0/output.transpiled.txt
new file mode 100644
index 000000000..338e1fcad
--- /dev/null
+++ b/test/comparison-tests/customTransformerUsingPathString/expectedOutput-2.8/patch0/output.transpiled.txt
@@ -0,0 +1,5 @@
+Built at: 2018-3-18 09:16:46
+ Asset Size Chunks Chunk Names
+bundle.js 2.83 KiB main [emitted] main
+Entrypoint main = bundle.js
+[./app.ts] 55 bytes {main} [built]
\ No newline at end of file
diff --git a/test/comparison-tests/customTransformerUsingPathString/expectedOutput-2.8/patch0/output.txt b/test/comparison-tests/customTransformerUsingPathString/expectedOutput-2.8/patch0/output.txt
new file mode 100644
index 000000000..1ef8bcb1e
--- /dev/null
+++ b/test/comparison-tests/customTransformerUsingPathString/expectedOutput-2.8/patch0/output.txt
@@ -0,0 +1,5 @@
+Built at: 2018-3-18 09:16:40
+ Asset Size Chunks Chunk Names
+bundle.js 2.83 KiB main [emitted] main
+Entrypoint main = bundle.js
+[./app.ts] 55 bytes {main} [built]
\ No newline at end of file
diff --git a/test/comparison-tests/customTransformerUsingPathString/expectedOutput-2.8/patch1/bundle.js b/test/comparison-tests/customTransformerUsingPathString/expectedOutput-2.8/patch1/bundle.js
new file mode 100644
index 000000000..530f6981f
--- /dev/null
+++ b/test/comparison-tests/customTransformerUsingPathString/expectedOutput-2.8/patch1/bundle.js
@@ -0,0 +1,85 @@
+/******/ (function(modules) { // webpackBootstrap
+/******/ // The module cache
+/******/ var installedModules = {};
+/******/
+/******/ // The require function
+/******/ function __webpack_require__(moduleId) {
+/******/
+/******/ // Check if module is in cache
+/******/ if(installedModules[moduleId]) {
+/******/ return installedModules[moduleId].exports;
+/******/ }
+/******/ // Create a new module (and put it into the cache)
+/******/ var module = installedModules[moduleId] = {
+/******/ i: moduleId,
+/******/ l: false,
+/******/ exports: {}
+/******/ };
+/******/
+/******/ // Execute the module function
+/******/ modules[moduleId].call(module.exports, module, module.exports, __webpack_require__);
+/******/
+/******/ // Flag the module as loaded
+/******/ module.l = true;
+/******/
+/******/ // Return the exports of the module
+/******/ return module.exports;
+/******/ }
+/******/
+/******/
+/******/ // expose the modules object (__webpack_modules__)
+/******/ __webpack_require__.m = modules;
+/******/
+/******/ // expose the module cache
+/******/ __webpack_require__.c = installedModules;
+/******/
+/******/ // define getter function for harmony exports
+/******/ __webpack_require__.d = function(exports, name, getter) {
+/******/ if(!__webpack_require__.o(exports, name)) {
+/******/ Object.defineProperty(exports, name, {
+/******/ configurable: false,
+/******/ enumerable: true,
+/******/ get: getter
+/******/ });
+/******/ }
+/******/ };
+/******/
+/******/ // define __esModule on exports
+/******/ __webpack_require__.r = function(exports) {
+/******/ Object.defineProperty(exports, '__esModule', { value: true });
+/******/ };
+/******/
+/******/ // getDefaultExport function for compatibility with non-harmony modules
+/******/ __webpack_require__.n = function(module) {
+/******/ var getter = module && module.__esModule ?
+/******/ function getDefault() { return module['default']; } :
+/******/ function getModuleExports() { return module; };
+/******/ __webpack_require__.d(getter, 'a', getter);
+/******/ return getter;
+/******/ };
+/******/
+/******/ // Object.prototype.hasOwnProperty.call
+/******/ __webpack_require__.o = function(object, property) { return Object.prototype.hasOwnProperty.call(object, property); };
+/******/
+/******/ // __webpack_public_path__
+/******/ __webpack_require__.p = "";
+/******/
+/******/
+/******/ // Load entry module and return exports
+/******/ return __webpack_require__(__webpack_require__.s = "./app.ts");
+/******/ })
+/************************************************************************/
+/******/ ({
+
+/***/ "./app.ts":
+/*!****************!*\
+ !*** ./app.ts ***!
+ \****************/
+/*! no static exports found */
+/***/ (function(module, exports) {
+
+eval("var message = \"HELLO FROM US!\";\nconsole.log(message);\n\n\n//# sourceURL=webpack:///./app.ts?");
+
+/***/ })
+
+/******/ });
\ No newline at end of file
diff --git a/test/comparison-tests/customTransformerUsingPathString/expectedOutput-2.8/patch1/output.transpiled.txt b/test/comparison-tests/customTransformerUsingPathString/expectedOutput-2.8/patch1/output.transpiled.txt
new file mode 100644
index 000000000..0d19aab02
--- /dev/null
+++ b/test/comparison-tests/customTransformerUsingPathString/expectedOutput-2.8/patch1/output.transpiled.txt
@@ -0,0 +1,5 @@
+Built at: 2018-3-18 09:16:48
+ Asset Size Chunks Chunk Names
+bundle.js 2.83 KiB main [emitted] main
+Entrypoint main = bundle.js
+[./app.ts] 54 bytes {main} [built]
\ No newline at end of file
diff --git a/test/comparison-tests/customTransformerUsingPathString/expectedOutput-2.8/patch1/output.txt b/test/comparison-tests/customTransformerUsingPathString/expectedOutput-2.8/patch1/output.txt
new file mode 100644
index 000000000..ff1c89ae0
--- /dev/null
+++ b/test/comparison-tests/customTransformerUsingPathString/expectedOutput-2.8/patch1/output.txt
@@ -0,0 +1,5 @@
+Built at: 2018-3-18 09:16:43
+ Asset Size Chunks Chunk Names
+bundle.js 2.83 KiB main [emitted] main
+Entrypoint main = bundle.js
+[./app.ts] 54 bytes {main} [built]
\ No newline at end of file
diff --git a/test/comparison-tests/declarationDeps/expectedOutput-2.8/bundle.js b/test/comparison-tests/declarationDeps/expectedOutput-2.8/bundle.js
new file mode 100644
index 000000000..cfb98301f
--- /dev/null
+++ b/test/comparison-tests/declarationDeps/expectedOutput-2.8/bundle.js
@@ -0,0 +1,85 @@
+/******/ (function(modules) { // webpackBootstrap
+/******/ // The module cache
+/******/ var installedModules = {};
+/******/
+/******/ // The require function
+/******/ function __webpack_require__(moduleId) {
+/******/
+/******/ // Check if module is in cache
+/******/ if(installedModules[moduleId]) {
+/******/ return installedModules[moduleId].exports;
+/******/ }
+/******/ // Create a new module (and put it into the cache)
+/******/ var module = installedModules[moduleId] = {
+/******/ i: moduleId,
+/******/ l: false,
+/******/ exports: {}
+/******/ };
+/******/
+/******/ // Execute the module function
+/******/ modules[moduleId].call(module.exports, module, module.exports, __webpack_require__);
+/******/
+/******/ // Flag the module as loaded
+/******/ module.l = true;
+/******/
+/******/ // Return the exports of the module
+/******/ return module.exports;
+/******/ }
+/******/
+/******/
+/******/ // expose the modules object (__webpack_modules__)
+/******/ __webpack_require__.m = modules;
+/******/
+/******/ // expose the module cache
+/******/ __webpack_require__.c = installedModules;
+/******/
+/******/ // define getter function for harmony exports
+/******/ __webpack_require__.d = function(exports, name, getter) {
+/******/ if(!__webpack_require__.o(exports, name)) {
+/******/ Object.defineProperty(exports, name, {
+/******/ configurable: false,
+/******/ enumerable: true,
+/******/ get: getter
+/******/ });
+/******/ }
+/******/ };
+/******/
+/******/ // define __esModule on exports
+/******/ __webpack_require__.r = function(exports) {
+/******/ Object.defineProperty(exports, '__esModule', { value: true });
+/******/ };
+/******/
+/******/ // getDefaultExport function for compatibility with non-harmony modules
+/******/ __webpack_require__.n = function(module) {
+/******/ var getter = module && module.__esModule ?
+/******/ function getDefault() { return module['default']; } :
+/******/ function getModuleExports() { return module; };
+/******/ __webpack_require__.d(getter, 'a', getter);
+/******/ return getter;
+/******/ };
+/******/
+/******/ // Object.prototype.hasOwnProperty.call
+/******/ __webpack_require__.o = function(object, property) { return Object.prototype.hasOwnProperty.call(object, property); };
+/******/
+/******/ // __webpack_public_path__
+/******/ __webpack_require__.p = "";
+/******/
+/******/
+/******/ // Load entry module and return exports
+/******/ return __webpack_require__(__webpack_require__.s = "./app.ts");
+/******/ })
+/************************************************************************/
+/******/ ({
+
+/***/ "./app.ts":
+/*!****************!*\
+ !*** ./app.ts ***!
+ \****************/
+/*! no static exports found */
+/***/ (function(module, exports) {
+
+eval("Hello.sayHello('Hi');\nHello.sayHi('Hi');\n\n\n//# sourceURL=webpack:///./app.ts?");
+
+/***/ })
+
+/******/ });
\ No newline at end of file
diff --git a/test/comparison-tests/declarationDeps/expectedOutput-2.8/output.transpiled.txt b/test/comparison-tests/declarationDeps/expectedOutput-2.8/output.transpiled.txt
new file mode 100644
index 000000000..0ef1ae498
--- /dev/null
+++ b/test/comparison-tests/declarationDeps/expectedOutput-2.8/output.transpiled.txt
@@ -0,0 +1,5 @@
+Built at: 2018-3-18 09:16:53
+ Asset Size Chunks Chunk Names
+bundle.js 2.81 KiB main [emitted] main
+Entrypoint main = bundle.js
+[./app.ts] 41 bytes {main} [built]
\ No newline at end of file
diff --git a/test/comparison-tests/declarationDeps/expectedOutput-2.8/output.txt b/test/comparison-tests/declarationDeps/expectedOutput-2.8/output.txt
new file mode 100644
index 000000000..806adf815
--- /dev/null
+++ b/test/comparison-tests/declarationDeps/expectedOutput-2.8/output.txt
@@ -0,0 +1,10 @@
+Built at: 2018-3-18 09:16:53
+ Asset Size Chunks Chunk Names
+bundle.js 2.81 KiB main [emitted] main
+Entrypoint main = bundle.js
+[./app.ts] 41 bytes {main} [built] [1 error]
+
+ERROR in app.ts
+./app.ts
+[90m[tsl] [39m[1m[31mERROR[39m[22m[1m[31m in [39m[22m[1m[36mapp.ts(2,7)[39m[22m
+[1m[31m TS2339: Property 'sayHi' does not exist on type 'typeof Hello'.[39m[22m
\ No newline at end of file
diff --git a/test/comparison-tests/declarationOutput/expectedOutput-2.8/app.d.ts b/test/comparison-tests/declarationOutput/expectedOutput-2.8/app.d.ts
new file mode 100644
index 000000000..bf68bbf31
--- /dev/null
+++ b/test/comparison-tests/declarationOutput/expectedOutput-2.8/app.d.ts
@@ -0,0 +1,5 @@
+import dep = require("./sub/dep");
+declare class Test extends dep {
+ doSomething(): void;
+}
+export = Test;
diff --git a/test/comparison-tests/declarationOutput/expectedOutput-2.8/bundle.js b/test/comparison-tests/declarationOutput/expectedOutput-2.8/bundle.js
new file mode 100644
index 000000000..2fa6b9745
--- /dev/null
+++ b/test/comparison-tests/declarationOutput/expectedOutput-2.8/bundle.js
@@ -0,0 +1,98 @@
+/******/ (function(modules) { // webpackBootstrap
+/******/ // The module cache
+/******/ var installedModules = {};
+/******/
+/******/ // The require function
+/******/ function __webpack_require__(moduleId) {
+/******/
+/******/ // Check if module is in cache
+/******/ if(installedModules[moduleId]) {
+/******/ return installedModules[moduleId].exports;
+/******/ }
+/******/ // Create a new module (and put it into the cache)
+/******/ var module = installedModules[moduleId] = {
+/******/ i: moduleId,
+/******/ l: false,
+/******/ exports: {}
+/******/ };
+/******/
+/******/ // Execute the module function
+/******/ modules[moduleId].call(module.exports, module, module.exports, __webpack_require__);
+/******/
+/******/ // Flag the module as loaded
+/******/ module.l = true;
+/******/
+/******/ // Return the exports of the module
+/******/ return module.exports;
+/******/ }
+/******/
+/******/
+/******/ // expose the modules object (__webpack_modules__)
+/******/ __webpack_require__.m = modules;
+/******/
+/******/ // expose the module cache
+/******/ __webpack_require__.c = installedModules;
+/******/
+/******/ // define getter function for harmony exports
+/******/ __webpack_require__.d = function(exports, name, getter) {
+/******/ if(!__webpack_require__.o(exports, name)) {
+/******/ Object.defineProperty(exports, name, {
+/******/ configurable: false,
+/******/ enumerable: true,
+/******/ get: getter
+/******/ });
+/******/ }
+/******/ };
+/******/
+/******/ // define __esModule on exports
+/******/ __webpack_require__.r = function(exports) {
+/******/ Object.defineProperty(exports, '__esModule', { value: true });
+/******/ };
+/******/
+/******/ // getDefaultExport function for compatibility with non-harmony modules
+/******/ __webpack_require__.n = function(module) {
+/******/ var getter = module && module.__esModule ?
+/******/ function getDefault() { return module['default']; } :
+/******/ function getModuleExports() { return module; };
+/******/ __webpack_require__.d(getter, 'a', getter);
+/******/ return getter;
+/******/ };
+/******/
+/******/ // Object.prototype.hasOwnProperty.call
+/******/ __webpack_require__.o = function(object, property) { return Object.prototype.hasOwnProperty.call(object, property); };
+/******/
+/******/ // __webpack_public_path__
+/******/ __webpack_require__.p = "";
+/******/
+/******/
+/******/ // Load entry module and return exports
+/******/ return __webpack_require__(__webpack_require__.s = "./app.ts");
+/******/ })
+/************************************************************************/
+/******/ ({
+
+/***/ "./app.ts":
+/*!****************!*\
+ !*** ./app.ts ***!
+ \****************/
+/*! no static exports found */
+/***/ (function(module, exports, __webpack_require__) {
+
+"use strict";
+eval("\nvar __extends = (this && this.__extends) || (function () {\n var extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\n return function (d, b) {\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nvar dep = __webpack_require__(/*! ./sub/dep */ \"./sub/dep.ts\");\nvar Test = /** @class */ (function (_super) {\n __extends(Test, _super);\n function Test() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n Test.prototype.doSomething = function () {\n };\n return Test;\n}(dep));\nmodule.exports = Test;\n\n\n//# sourceURL=webpack:///./app.ts?");
+
+/***/ }),
+
+/***/ "./sub/dep.ts":
+/*!********************!*\
+ !*** ./sub/dep.ts ***!
+ \********************/
+/*! no static exports found */
+/***/ (function(module, exports, __webpack_require__) {
+
+"use strict";
+eval("\nvar Test = /** @class */ (function () {\n function Test() {\n }\n Test.prototype.doSomething = function () {\n };\n return Test;\n}());\nmodule.exports = Test;\n\n\n//# sourceURL=webpack:///./sub/dep.ts?");
+
+/***/ })
+
+/******/ });
\ No newline at end of file
diff --git a/test/comparison-tests/declarationOutput/expectedOutput-2.8/output.txt b/test/comparison-tests/declarationOutput/expectedOutput-2.8/output.txt
new file mode 100644
index 000000000..f6be2d901
--- /dev/null
+++ b/test/comparison-tests/declarationOutput/expectedOutput-2.8/output.txt
@@ -0,0 +1,8 @@
+Built at: 2018-3-18 09:16:58
+ Asset Size Chunks Chunk Names
+ bundle.js 4.08 KiB main [emitted] main
+ app.d.ts 110 bytes [emitted]
+sub/dep.d.ts 63 bytes [emitted]
+Entrypoint main = bundle.js
+[./app.ts] 818 bytes {main} [built]
+[./sub/dep.ts] 182 bytes {main} [built]
\ No newline at end of file
diff --git a/test/comparison-tests/declarationOutput/expectedOutput-2.8/sub/dep.d.ts b/test/comparison-tests/declarationOutput/expectedOutput-2.8/sub/dep.d.ts
new file mode 100644
index 000000000..2c67bd732
--- /dev/null
+++ b/test/comparison-tests/declarationOutput/expectedOutput-2.8/sub/dep.d.ts
@@ -0,0 +1,4 @@
+declare class Test {
+ doSomething(): void;
+}
+export = Test;
diff --git a/test/comparison-tests/declarationWatch/expectedOutput-2.8/bundle.js b/test/comparison-tests/declarationWatch/expectedOutput-2.8/bundle.js
new file mode 100644
index 000000000..5e6ce696a
--- /dev/null
+++ b/test/comparison-tests/declarationWatch/expectedOutput-2.8/bundle.js
@@ -0,0 +1,98 @@
+/******/ (function(modules) { // webpackBootstrap
+/******/ // The module cache
+/******/ var installedModules = {};
+/******/
+/******/ // The require function
+/******/ function __webpack_require__(moduleId) {
+/******/
+/******/ // Check if module is in cache
+/******/ if(installedModules[moduleId]) {
+/******/ return installedModules[moduleId].exports;
+/******/ }
+/******/ // Create a new module (and put it into the cache)
+/******/ var module = installedModules[moduleId] = {
+/******/ i: moduleId,
+/******/ l: false,
+/******/ exports: {}
+/******/ };
+/******/
+/******/ // Execute the module function
+/******/ modules[moduleId].call(module.exports, module, module.exports, __webpack_require__);
+/******/
+/******/ // Flag the module as loaded
+/******/ module.l = true;
+/******/
+/******/ // Return the exports of the module
+/******/ return module.exports;
+/******/ }
+/******/
+/******/
+/******/ // expose the modules object (__webpack_modules__)
+/******/ __webpack_require__.m = modules;
+/******/
+/******/ // expose the module cache
+/******/ __webpack_require__.c = installedModules;
+/******/
+/******/ // define getter function for harmony exports
+/******/ __webpack_require__.d = function(exports, name, getter) {
+/******/ if(!__webpack_require__.o(exports, name)) {
+/******/ Object.defineProperty(exports, name, {
+/******/ configurable: false,
+/******/ enumerable: true,
+/******/ get: getter
+/******/ });
+/******/ }
+/******/ };
+/******/
+/******/ // define __esModule on exports
+/******/ __webpack_require__.r = function(exports) {
+/******/ Object.defineProperty(exports, '__esModule', { value: true });
+/******/ };
+/******/
+/******/ // getDefaultExport function for compatibility with non-harmony modules
+/******/ __webpack_require__.n = function(module) {
+/******/ var getter = module && module.__esModule ?
+/******/ function getDefault() { return module['default']; } :
+/******/ function getModuleExports() { return module; };
+/******/ __webpack_require__.d(getter, 'a', getter);
+/******/ return getter;
+/******/ };
+/******/
+/******/ // Object.prototype.hasOwnProperty.call
+/******/ __webpack_require__.o = function(object, property) { return Object.prototype.hasOwnProperty.call(object, property); };
+/******/
+/******/ // __webpack_public_path__
+/******/ __webpack_require__.p = "";
+/******/
+/******/
+/******/ // Load entry module and return exports
+/******/ return __webpack_require__(__webpack_require__.s = "./app.ts");
+/******/ })
+/************************************************************************/
+/******/ ({
+
+/***/ "./app.ts":
+/*!****************!*\
+ !*** ./app.ts ***!
+ \****************/
+/*! no static exports found */
+/***/ (function(module, exports, __webpack_require__) {
+
+"use strict";
+eval("\nexports.__esModule = true;\nvar dep = __webpack_require__(/*! ./dep */ \"./dep.ts\");\nconsole.log(dep);\nThing.doSomething();\n\n\n//# sourceURL=webpack:///./app.ts?");
+
+/***/ }),
+
+/***/ "./dep.ts":
+/*!****************!*\
+ !*** ./dep.ts ***!
+ \****************/
+/*! no static exports found */
+/***/ (function(module, exports, __webpack_require__) {
+
+"use strict";
+eval("\nThing.doSomething();\nmodule.exports = 'dep';\n\n\n//# sourceURL=webpack:///./dep.ts?");
+
+/***/ })
+
+/******/ });
\ No newline at end of file
diff --git a/test/comparison-tests/declarationWatch/expectedOutput-2.8/output.txt b/test/comparison-tests/declarationWatch/expectedOutput-2.8/output.txt
new file mode 100644
index 000000000..29bbc9bf5
--- /dev/null
+++ b/test/comparison-tests/declarationWatch/expectedOutput-2.8/output.txt
@@ -0,0 +1,6 @@
+Built at: 2018-3-18 09:17:03
+ Asset Size Chunks Chunk Names
+bundle.js 3.22 KiB main [emitted] main
+Entrypoint main = bundle.js
+[./app.ts] 108 bytes {main} [built]
+[./dep.ts] 59 bytes {main} [built]
\ No newline at end of file
diff --git a/test/comparison-tests/declarationWatch/expectedOutput-2.8/patch0/bundle.js b/test/comparison-tests/declarationWatch/expectedOutput-2.8/patch0/bundle.js
new file mode 100644
index 000000000..5e6ce696a
--- /dev/null
+++ b/test/comparison-tests/declarationWatch/expectedOutput-2.8/patch0/bundle.js
@@ -0,0 +1,98 @@
+/******/ (function(modules) { // webpackBootstrap
+/******/ // The module cache
+/******/ var installedModules = {};
+/******/
+/******/ // The require function
+/******/ function __webpack_require__(moduleId) {
+/******/
+/******/ // Check if module is in cache
+/******/ if(installedModules[moduleId]) {
+/******/ return installedModules[moduleId].exports;
+/******/ }
+/******/ // Create a new module (and put it into the cache)
+/******/ var module = installedModules[moduleId] = {
+/******/ i: moduleId,
+/******/ l: false,
+/******/ exports: {}
+/******/ };
+/******/
+/******/ // Execute the module function
+/******/ modules[moduleId].call(module.exports, module, module.exports, __webpack_require__);
+/******/
+/******/ // Flag the module as loaded
+/******/ module.l = true;
+/******/
+/******/ // Return the exports of the module
+/******/ return module.exports;
+/******/ }
+/******/
+/******/
+/******/ // expose the modules object (__webpack_modules__)
+/******/ __webpack_require__.m = modules;
+/******/
+/******/ // expose the module cache
+/******/ __webpack_require__.c = installedModules;
+/******/
+/******/ // define getter function for harmony exports
+/******/ __webpack_require__.d = function(exports, name, getter) {
+/******/ if(!__webpack_require__.o(exports, name)) {
+/******/ Object.defineProperty(exports, name, {
+/******/ configurable: false,
+/******/ enumerable: true,
+/******/ get: getter
+/******/ });
+/******/ }
+/******/ };
+/******/
+/******/ // define __esModule on exports
+/******/ __webpack_require__.r = function(exports) {
+/******/ Object.defineProperty(exports, '__esModule', { value: true });
+/******/ };
+/******/
+/******/ // getDefaultExport function for compatibility with non-harmony modules
+/******/ __webpack_require__.n = function(module) {
+/******/ var getter = module && module.__esModule ?
+/******/ function getDefault() { return module['default']; } :
+/******/ function getModuleExports() { return module; };
+/******/ __webpack_require__.d(getter, 'a', getter);
+/******/ return getter;
+/******/ };
+/******/
+/******/ // Object.prototype.hasOwnProperty.call
+/******/ __webpack_require__.o = function(object, property) { return Object.prototype.hasOwnProperty.call(object, property); };
+/******/
+/******/ // __webpack_public_path__
+/******/ __webpack_require__.p = "";
+/******/
+/******/
+/******/ // Load entry module and return exports
+/******/ return __webpack_require__(__webpack_require__.s = "./app.ts");
+/******/ })
+/************************************************************************/
+/******/ ({
+
+/***/ "./app.ts":
+/*!****************!*\
+ !*** ./app.ts ***!
+ \****************/
+/*! no static exports found */
+/***/ (function(module, exports, __webpack_require__) {
+
+"use strict";
+eval("\nexports.__esModule = true;\nvar dep = __webpack_require__(/*! ./dep */ \"./dep.ts\");\nconsole.log(dep);\nThing.doSomething();\n\n\n//# sourceURL=webpack:///./app.ts?");
+
+/***/ }),
+
+/***/ "./dep.ts":
+/*!****************!*\
+ !*** ./dep.ts ***!
+ \****************/
+/*! no static exports found */
+/***/ (function(module, exports, __webpack_require__) {
+
+"use strict";
+eval("\nThing.doSomething();\nmodule.exports = 'dep';\n\n\n//# sourceURL=webpack:///./dep.ts?");
+
+/***/ })
+
+/******/ });
\ No newline at end of file
diff --git a/test/comparison-tests/declarationWatch/expectedOutput-2.8/patch0/output.txt b/test/comparison-tests/declarationWatch/expectedOutput-2.8/patch0/output.txt
new file mode 100644
index 000000000..9c43da090
--- /dev/null
+++ b/test/comparison-tests/declarationWatch/expectedOutput-2.8/patch0/output.txt
@@ -0,0 +1,16 @@
+Built at: 2018-3-18 09:17:06
+ Asset Size Chunks Chunk Names
+bundle.js 3.22 KiB main [emitted] main
+Entrypoint main = bundle.js
+[./app.ts] 108 bytes {main} [built] [1 error]
+[./dep.ts] 59 bytes {main} [built] [1 error]
+
+ERROR in app.ts
+./app.ts
+[90m[tsl] [39m[1m[31mERROR[39m[22m[1m[31m in [39m[22m[1m[36mapp.ts(5,7)[39m[22m
+[1m[31m TS2339: Property 'doSomething' does not exist on type 'typeof Thing'.[39m[22m
+
+ERROR in dep.ts
+./dep.ts
+[90m[tsl] [39m[1m[31mERROR[39m[22m[1m[31m in [39m[22m[1m[36mdep.ts(1,7)[39m[22m
+[1m[31m TS2339: Property 'doSomething' does not exist on type 'typeof Thing'.[39m[22m
\ No newline at end of file
diff --git a/test/comparison-tests/declarationWatch/expectedOutput-2.8/patch1/bundle.js b/test/comparison-tests/declarationWatch/expectedOutput-2.8/patch1/bundle.js
new file mode 100644
index 000000000..5e6ce696a
--- /dev/null
+++ b/test/comparison-tests/declarationWatch/expectedOutput-2.8/patch1/bundle.js
@@ -0,0 +1,98 @@
+/******/ (function(modules) { // webpackBootstrap
+/******/ // The module cache
+/******/ var installedModules = {};
+/******/
+/******/ // The require function
+/******/ function __webpack_require__(moduleId) {
+/******/
+/******/ // Check if module is in cache
+/******/ if(installedModules[moduleId]) {
+/******/ return installedModules[moduleId].exports;
+/******/ }
+/******/ // Create a new module (and put it into the cache)
+/******/ var module = installedModules[moduleId] = {
+/******/ i: moduleId,
+/******/ l: false,
+/******/ exports: {}
+/******/ };
+/******/
+/******/ // Execute the module function
+/******/ modules[moduleId].call(module.exports, module, module.exports, __webpack_require__);
+/******/
+/******/ // Flag the module as loaded
+/******/ module.l = true;
+/******/
+/******/ // Return the exports of the module
+/******/ return module.exports;
+/******/ }
+/******/
+/******/
+/******/ // expose the modules object (__webpack_modules__)
+/******/ __webpack_require__.m = modules;
+/******/
+/******/ // expose the module cache
+/******/ __webpack_require__.c = installedModules;
+/******/
+/******/ // define getter function for harmony exports
+/******/ __webpack_require__.d = function(exports, name, getter) {
+/******/ if(!__webpack_require__.o(exports, name)) {
+/******/ Object.defineProperty(exports, name, {
+/******/ configurable: false,
+/******/ enumerable: true,
+/******/ get: getter
+/******/ });
+/******/ }
+/******/ };
+/******/
+/******/ // define __esModule on exports
+/******/ __webpack_require__.r = function(exports) {
+/******/ Object.defineProperty(exports, '__esModule', { value: true });
+/******/ };
+/******/
+/******/ // getDefaultExport function for compatibility with non-harmony modules
+/******/ __webpack_require__.n = function(module) {
+/******/ var getter = module && module.__esModule ?
+/******/ function getDefault() { return module['default']; } :
+/******/ function getModuleExports() { return module; };
+/******/ __webpack_require__.d(getter, 'a', getter);
+/******/ return getter;
+/******/ };
+/******/
+/******/ // Object.prototype.hasOwnProperty.call
+/******/ __webpack_require__.o = function(object, property) { return Object.prototype.hasOwnProperty.call(object, property); };
+/******/
+/******/ // __webpack_public_path__
+/******/ __webpack_require__.p = "";
+/******/
+/******/
+/******/ // Load entry module and return exports
+/******/ return __webpack_require__(__webpack_require__.s = "./app.ts");
+/******/ })
+/************************************************************************/
+/******/ ({
+
+/***/ "./app.ts":
+/*!****************!*\
+ !*** ./app.ts ***!
+ \****************/
+/*! no static exports found */
+/***/ (function(module, exports, __webpack_require__) {
+
+"use strict";
+eval("\nexports.__esModule = true;\nvar dep = __webpack_require__(/*! ./dep */ \"./dep.ts\");\nconsole.log(dep);\nThing.doSomething();\n\n\n//# sourceURL=webpack:///./app.ts?");
+
+/***/ }),
+
+/***/ "./dep.ts":
+/*!****************!*\
+ !*** ./dep.ts ***!
+ \****************/
+/*! no static exports found */
+/***/ (function(module, exports, __webpack_require__) {
+
+"use strict";
+eval("\nThing.doSomething();\nmodule.exports = 'dep';\n\n\n//# sourceURL=webpack:///./dep.ts?");
+
+/***/ })
+
+/******/ });
\ No newline at end of file
diff --git a/test/comparison-tests/declarationWatch/expectedOutput-2.8/patch1/output.txt b/test/comparison-tests/declarationWatch/expectedOutput-2.8/patch1/output.txt
new file mode 100644
index 000000000..1cb98e0c4
--- /dev/null
+++ b/test/comparison-tests/declarationWatch/expectedOutput-2.8/patch1/output.txt
@@ -0,0 +1,6 @@
+Built at: 2018-3-18 09:17:08
+ Asset Size Chunks Chunk Names
+bundle.js 3.22 KiB main [emitted] main
+Entrypoint main = bundle.js
+[./app.ts] 108 bytes {main} [built]
+[./dep.ts] 59 bytes {main} [built]
\ No newline at end of file
diff --git a/test/comparison-tests/dependencyErrors/expectedOutput-2.8/bundle.js b/test/comparison-tests/dependencyErrors/expectedOutput-2.8/bundle.js
new file mode 100644
index 000000000..ac668b771
--- /dev/null
+++ b/test/comparison-tests/dependencyErrors/expectedOutput-2.8/bundle.js
@@ -0,0 +1,110 @@
+/******/ (function(modules) { // webpackBootstrap
+/******/ // The module cache
+/******/ var installedModules = {};
+/******/
+/******/ // The require function
+/******/ function __webpack_require__(moduleId) {
+/******/
+/******/ // Check if module is in cache
+/******/ if(installedModules[moduleId]) {
+/******/ return installedModules[moduleId].exports;
+/******/ }
+/******/ // Create a new module (and put it into the cache)
+/******/ var module = installedModules[moduleId] = {
+/******/ i: moduleId,
+/******/ l: false,
+/******/ exports: {}
+/******/ };
+/******/
+/******/ // Execute the module function
+/******/ modules[moduleId].call(module.exports, module, module.exports, __webpack_require__);
+/******/
+/******/ // Flag the module as loaded
+/******/ module.l = true;
+/******/
+/******/ // Return the exports of the module
+/******/ return module.exports;
+/******/ }
+/******/
+/******/
+/******/ // expose the modules object (__webpack_modules__)
+/******/ __webpack_require__.m = modules;
+/******/
+/******/ // expose the module cache
+/******/ __webpack_require__.c = installedModules;
+/******/
+/******/ // define getter function for harmony exports
+/******/ __webpack_require__.d = function(exports, name, getter) {
+/******/ if(!__webpack_require__.o(exports, name)) {
+/******/ Object.defineProperty(exports, name, {
+/******/ configurable: false,
+/******/ enumerable: true,
+/******/ get: getter
+/******/ });
+/******/ }
+/******/ };
+/******/
+/******/ // define __esModule on exports
+/******/ __webpack_require__.r = function(exports) {
+/******/ Object.defineProperty(exports, '__esModule', { value: true });
+/******/ };
+/******/
+/******/ // getDefaultExport function for compatibility with non-harmony modules
+/******/ __webpack_require__.n = function(module) {
+/******/ var getter = module && module.__esModule ?
+/******/ function getDefault() { return module['default']; } :
+/******/ function getModuleExports() { return module; };
+/******/ __webpack_require__.d(getter, 'a', getter);
+/******/ return getter;
+/******/ };
+/******/
+/******/ // Object.prototype.hasOwnProperty.call
+/******/ __webpack_require__.o = function(object, property) { return Object.prototype.hasOwnProperty.call(object, property); };
+/******/
+/******/ // __webpack_public_path__
+/******/ __webpack_require__.p = "";
+/******/
+/******/
+/******/ // Load entry module and return exports
+/******/ return __webpack_require__(__webpack_require__.s = "./app.ts");
+/******/ })
+/************************************************************************/
+/******/ ({
+
+/***/ "./app.ts":
+/*!****************!*\
+ !*** ./app.ts ***!
+ \****************/
+/*! no static exports found */
+/***/ (function(module, exports, __webpack_require__) {
+
+"use strict";
+eval("\nexports.__esModule = true;\nvar dep1 = __webpack_require__(/*! ./dep1 */ \"./dep1.ts\");\nvar dep2 = __webpack_require__(/*! ./dep2 */ \"./dep2.ts\");\ndep1('');\ndep2('');\n\n\n//# sourceURL=webpack:///./app.ts?");
+
+/***/ }),
+
+/***/ "./dep1.ts":
+/*!*****************!*\
+ !*** ./dep1.ts ***!
+ \*****************/
+/*! no static exports found */
+/***/ (function(module, exports, __webpack_require__) {
+
+"use strict";
+eval("\nfunction doSomething(input) {\n}\nmodule.exports = doSomething;\n\n\n//# sourceURL=webpack:///./dep1.ts?");
+
+/***/ }),
+
+/***/ "./dep2.ts":
+/*!*****************!*\
+ !*** ./dep2.ts ***!
+ \*****************/
+/*! no static exports found */
+/***/ (function(module, exports, __webpack_require__) {
+
+"use strict";
+eval("\nfunction doSomething(input) {\n}\nmodule.exports = doSomething;\n\n\n//# sourceURL=webpack:///./dep2.ts?");
+
+/***/ })
+
+/******/ });
\ No newline at end of file
diff --git a/test/comparison-tests/dependencyErrors/expectedOutput-2.8/output.transpiled.txt b/test/comparison-tests/dependencyErrors/expectedOutput-2.8/output.transpiled.txt
new file mode 100644
index 000000000..663192c25
--- /dev/null
+++ b/test/comparison-tests/dependencyErrors/expectedOutput-2.8/output.transpiled.txt
@@ -0,0 +1,7 @@
+Built at: 2018-3-18 09:17:19
+ Asset Size Chunks Chunk Names
+bundle.js 3.6 KiB main [emitted] main
+Entrypoint main = bundle.js
+[./app.ts] 121 bytes {main} [built]
+[./dep1.ts] 76 bytes {main} [built]
+[./dep2.ts] 76 bytes {main} [built]
\ No newline at end of file
diff --git a/test/comparison-tests/dependencyErrors/expectedOutput-2.8/output.txt b/test/comparison-tests/dependencyErrors/expectedOutput-2.8/output.txt
new file mode 100644
index 000000000..c6fe07f06
--- /dev/null
+++ b/test/comparison-tests/dependencyErrors/expectedOutput-2.8/output.txt
@@ -0,0 +1,17 @@
+Built at: 2018-3-18 09:17:15
+ Asset Size Chunks Chunk Names
+bundle.js 3.6 KiB main [emitted] main
+Entrypoint main = bundle.js
+[./app.ts] 121 bytes {main} [built] [2 errors]
+[./dep1.ts] 76 bytes {main} [built]
+[./dep2.ts] 76 bytes {main} [built]
+
+ERROR in app.ts
+./app.ts
+[90m[tsl] [39m[1m[31mERROR[39m[22m[1m[31m in [39m[22m[1m[36mapp.ts(4,6)[39m[22m
+[1m[31m TS2345: Argument of type '""' is not assignable to parameter of type 'number'.[39m[22m
+
+ERROR in app.ts
+./app.ts
+[90m[tsl] [39m[1m[31mERROR[39m[22m[1m[31m in [39m[22m[1m[36mapp.ts(5,6)[39m[22m
+[1m[31m TS2345: Argument of type '""' is not assignable to parameter of type 'number'.[39m[22m
\ No newline at end of file
diff --git a/test/comparison-tests/dependencyErrors/expectedOutput-2.8/patch0/bundle.js b/test/comparison-tests/dependencyErrors/expectedOutput-2.8/patch0/bundle.js
new file mode 100644
index 000000000..ac668b771
--- /dev/null
+++ b/test/comparison-tests/dependencyErrors/expectedOutput-2.8/patch0/bundle.js
@@ -0,0 +1,110 @@
+/******/ (function(modules) { // webpackBootstrap
+/******/ // The module cache
+/******/ var installedModules = {};
+/******/
+/******/ // The require function
+/******/ function __webpack_require__(moduleId) {
+/******/
+/******/ // Check if module is in cache
+/******/ if(installedModules[moduleId]) {
+/******/ return installedModules[moduleId].exports;
+/******/ }
+/******/ // Create a new module (and put it into the cache)
+/******/ var module = installedModules[moduleId] = {
+/******/ i: moduleId,
+/******/ l: false,
+/******/ exports: {}
+/******/ };
+/******/
+/******/ // Execute the module function
+/******/ modules[moduleId].call(module.exports, module, module.exports, __webpack_require__);
+/******/
+/******/ // Flag the module as loaded
+/******/ module.l = true;
+/******/
+/******/ // Return the exports of the module
+/******/ return module.exports;
+/******/ }
+/******/
+/******/
+/******/ // expose the modules object (__webpack_modules__)
+/******/ __webpack_require__.m = modules;
+/******/
+/******/ // expose the module cache
+/******/ __webpack_require__.c = installedModules;
+/******/
+/******/ // define getter function for harmony exports
+/******/ __webpack_require__.d = function(exports, name, getter) {
+/******/ if(!__webpack_require__.o(exports, name)) {
+/******/ Object.defineProperty(exports, name, {
+/******/ configurable: false,
+/******/ enumerable: true,
+/******/ get: getter
+/******/ });
+/******/ }
+/******/ };
+/******/
+/******/ // define __esModule on exports
+/******/ __webpack_require__.r = function(exports) {
+/******/ Object.defineProperty(exports, '__esModule', { value: true });
+/******/ };
+/******/
+/******/ // getDefaultExport function for compatibility with non-harmony modules
+/******/ __webpack_require__.n = function(module) {
+/******/ var getter = module && module.__esModule ?
+/******/ function getDefault() { return module['default']; } :
+/******/ function getModuleExports() { return module; };
+/******/ __webpack_require__.d(getter, 'a', getter);
+/******/ return getter;
+/******/ };
+/******/
+/******/ // Object.prototype.hasOwnProperty.call
+/******/ __webpack_require__.o = function(object, property) { return Object.prototype.hasOwnProperty.call(object, property); };
+/******/
+/******/ // __webpack_public_path__
+/******/ __webpack_require__.p = "";
+/******/
+/******/
+/******/ // Load entry module and return exports
+/******/ return __webpack_require__(__webpack_require__.s = "./app.ts");
+/******/ })
+/************************************************************************/
+/******/ ({
+
+/***/ "./app.ts":
+/*!****************!*\
+ !*** ./app.ts ***!
+ \****************/
+/*! no static exports found */
+/***/ (function(module, exports, __webpack_require__) {
+
+"use strict";
+eval("\nexports.__esModule = true;\nvar dep1 = __webpack_require__(/*! ./dep1 */ \"./dep1.ts\");\nvar dep2 = __webpack_require__(/*! ./dep2 */ \"./dep2.ts\");\ndep1('');\ndep2('');\n\n\n//# sourceURL=webpack:///./app.ts?");
+
+/***/ }),
+
+/***/ "./dep1.ts":
+/*!*****************!*\
+ !*** ./dep1.ts ***!
+ \*****************/
+/*! no static exports found */
+/***/ (function(module, exports, __webpack_require__) {
+
+"use strict";
+eval("\nfunction doSomething(input) {\n}\nmodule.exports = doSomething;\n\n\n//# sourceURL=webpack:///./dep1.ts?");
+
+/***/ }),
+
+/***/ "./dep2.ts":
+/*!*****************!*\
+ !*** ./dep2.ts ***!
+ \*****************/
+/*! no static exports found */
+/***/ (function(module, exports, __webpack_require__) {
+
+"use strict";
+eval("\nfunction doSomething(input) {\n}\nmodule.exports = doSomething;\n\n\n//# sourceURL=webpack:///./dep2.ts?");
+
+/***/ })
+
+/******/ });
\ No newline at end of file
diff --git a/test/comparison-tests/dependencyErrors/expectedOutput-2.8/patch0/output.transpiled.txt b/test/comparison-tests/dependencyErrors/expectedOutput-2.8/patch0/output.transpiled.txt
new file mode 100644
index 000000000..2d6f7b2fd
--- /dev/null
+++ b/test/comparison-tests/dependencyErrors/expectedOutput-2.8/patch0/output.transpiled.txt
@@ -0,0 +1,7 @@
+Built at: 2018-3-18 09:17:21
+ Asset Size Chunks Chunk Names
+bundle.js 3.6 KiB main [emitted] main
+Entrypoint main = bundle.js
+[./app.ts] 121 bytes {main}
+[./dep1.ts] 76 bytes {main} [built]
+[./dep2.ts] 76 bytes {main}
\ No newline at end of file
diff --git a/test/comparison-tests/dependencyErrors/expectedOutput-2.8/patch0/output.txt b/test/comparison-tests/dependencyErrors/expectedOutput-2.8/patch0/output.txt
new file mode 100644
index 000000000..8a5df31a8
--- /dev/null
+++ b/test/comparison-tests/dependencyErrors/expectedOutput-2.8/patch0/output.txt
@@ -0,0 +1,12 @@
+Built at: 2018-3-18 09:17:18
+ Asset Size Chunks Chunk Names
+bundle.js 3.6 KiB main [emitted] main
+Entrypoint main = bundle.js
+[./app.ts] 121 bytes {main} [built] [1 error]
+[./dep1.ts] 76 bytes {main} [built]
+[./dep2.ts] 76 bytes {main}
+
+ERROR in app.ts
+./app.ts
+[90m[tsl] [39m[1m[31mERROR[39m[22m[1m[31m in [39m[22m[1m[36mapp.ts(5,6)[39m[22m
+[1m[31m TS2345: Argument of type '""' is not assignable to parameter of type 'number'.[39m[22m
\ No newline at end of file
diff --git a/test/comparison-tests/errorFormatter/expectedOutput-2.8/bundle.js b/test/comparison-tests/errorFormatter/expectedOutput-2.8/bundle.js
new file mode 100644
index 000000000..ec4907b0a
--- /dev/null
+++ b/test/comparison-tests/errorFormatter/expectedOutput-2.8/bundle.js
@@ -0,0 +1,98 @@
+/******/ (function(modules) { // webpackBootstrap
+/******/ // The module cache
+/******/ var installedModules = {};
+/******/
+/******/ // The require function
+/******/ function __webpack_require__(moduleId) {
+/******/
+/******/ // Check if module is in cache
+/******/ if(installedModules[moduleId]) {
+/******/ return installedModules[moduleId].exports;
+/******/ }
+/******/ // Create a new module (and put it into the cache)
+/******/ var module = installedModules[moduleId] = {
+/******/ i: moduleId,
+/******/ l: false,
+/******/ exports: {}
+/******/ };
+/******/
+/******/ // Execute the module function
+/******/ modules[moduleId].call(module.exports, module, module.exports, __webpack_require__);
+/******/
+/******/ // Flag the module as loaded
+/******/ module.l = true;
+/******/
+/******/ // Return the exports of the module
+/******/ return module.exports;
+/******/ }
+/******/
+/******/
+/******/ // expose the modules object (__webpack_modules__)
+/******/ __webpack_require__.m = modules;
+/******/
+/******/ // expose the module cache
+/******/ __webpack_require__.c = installedModules;
+/******/
+/******/ // define getter function for harmony exports
+/******/ __webpack_require__.d = function(exports, name, getter) {
+/******/ if(!__webpack_require__.o(exports, name)) {
+/******/ Object.defineProperty(exports, name, {
+/******/ configurable: false,
+/******/ enumerable: true,
+/******/ get: getter
+/******/ });
+/******/ }
+/******/ };
+/******/
+/******/ // define __esModule on exports
+/******/ __webpack_require__.r = function(exports) {
+/******/ Object.defineProperty(exports, '__esModule', { value: true });
+/******/ };
+/******/
+/******/ // getDefaultExport function for compatibility with non-harmony modules
+/******/ __webpack_require__.n = function(module) {
+/******/ var getter = module && module.__esModule ?
+/******/ function getDefault() { return module['default']; } :
+/******/ function getModuleExports() { return module; };
+/******/ __webpack_require__.d(getter, 'a', getter);
+/******/ return getter;
+/******/ };
+/******/
+/******/ // Object.prototype.hasOwnProperty.call
+/******/ __webpack_require__.o = function(object, property) { return Object.prototype.hasOwnProperty.call(object, property); };
+/******/
+/******/ // __webpack_public_path__
+/******/ __webpack_require__.p = "";
+/******/
+/******/
+/******/ // Load entry module and return exports
+/******/ return __webpack_require__(__webpack_require__.s = "./app.ts");
+/******/ })
+/************************************************************************/
+/******/ ({
+
+/***/ "./app.ts":
+/*!****************!*\
+ !*** ./app.ts ***!
+ \****************/
+/*! no static exports found */
+/***/ (function(module, exports, __webpack_require__) {
+
+"use strict";
+eval("\nexports.__esModule = true;\nvar myComponent = __webpack_require__(/*! components/myComponent */ \"./common/components/myComponent.ts\");\nconsole.log(myComponent);\n\n\n//# sourceURL=webpack:///./app.ts?");
+
+/***/ }),
+
+/***/ "./common/components/myComponent.ts":
+/*!******************************************!*\
+ !*** ./common/components/myComponent.ts ***!
+ \******************************************/
+/*! no static exports found */
+/***/ (function(module, exports, __webpack_require__) {
+
+"use strict";
+eval("\nmodule.exports = 'myComponent';\n\n\n//# sourceURL=webpack:///./common/components/myComponent.ts?");
+
+/***/ })
+
+/******/ });
\ No newline at end of file
diff --git a/test/comparison-tests/errorFormatter/expectedOutput-2.8/output.transpiled.txt b/test/comparison-tests/errorFormatter/expectedOutput-2.8/output.transpiled.txt
new file mode 100644
index 000000000..5c1e0a5ec
--- /dev/null
+++ b/test/comparison-tests/errorFormatter/expectedOutput-2.8/output.transpiled.txt
@@ -0,0 +1,6 @@
+Built at: 2018-4-7 18:02:50
+ Asset Size Chunks Chunk Names
+bundle.js 3.37 KiB main [emitted] main
+Entrypoint main = bundle.js
+[./app.ts] 120 bytes {main} [built]
+[./common/components/myComponent.ts] 46 bytes {main} [built]
\ No newline at end of file
diff --git a/test/comparison-tests/errorFormatter/expectedOutput-2.8/output.txt b/test/comparison-tests/errorFormatter/expectedOutput-2.8/output.txt
new file mode 100644
index 000000000..c28cd7318
--- /dev/null
+++ b/test/comparison-tests/errorFormatter/expectedOutput-2.8/output.txt
@@ -0,0 +1,10 @@
+Built at: 2018-4-7 18:02:49
+ Asset Size Chunks Chunk Names
+bundle.js 3.37 KiB main [emitted] main
+Entrypoint main = bundle.js
+[./app.ts] 120 bytes {main} [built] [1 error]
+[./common/components/myComponent.ts] 46 bytes {main} [built]
+
+ERROR in app.ts
+./app.ts
+Does not compute.... [1m[31mcode: 2307,severity: error,content: Cannot find module 'components/myComponent2'.,file: app.ts,line: 2,character: 31,context: .test\errorFormatter[39m[22m
\ No newline at end of file
diff --git a/test/comparison-tests/errors/expectedOutput-2.8/bundle.js b/test/comparison-tests/errors/expectedOutput-2.8/bundle.js
new file mode 100644
index 000000000..e718a4fd3
--- /dev/null
+++ b/test/comparison-tests/errors/expectedOutput-2.8/bundle.js
@@ -0,0 +1,85 @@
+/******/ (function(modules) { // webpackBootstrap
+/******/ // The module cache
+/******/ var installedModules = {};
+/******/
+/******/ // The require function
+/******/ function __webpack_require__(moduleId) {
+/******/
+/******/ // Check if module is in cache
+/******/ if(installedModules[moduleId]) {
+/******/ return installedModules[moduleId].exports;
+/******/ }
+/******/ // Create a new module (and put it into the cache)
+/******/ var module = installedModules[moduleId] = {
+/******/ i: moduleId,
+/******/ l: false,
+/******/ exports: {}
+/******/ };
+/******/
+/******/ // Execute the module function
+/******/ modules[moduleId].call(module.exports, module, module.exports, __webpack_require__);
+/******/
+/******/ // Flag the module as loaded
+/******/ module.l = true;
+/******/
+/******/ // Return the exports of the module
+/******/ return module.exports;
+/******/ }
+/******/
+/******/
+/******/ // expose the modules object (__webpack_modules__)
+/******/ __webpack_require__.m = modules;
+/******/
+/******/ // expose the module cache
+/******/ __webpack_require__.c = installedModules;
+/******/
+/******/ // define getter function for harmony exports
+/******/ __webpack_require__.d = function(exports, name, getter) {
+/******/ if(!__webpack_require__.o(exports, name)) {
+/******/ Object.defineProperty(exports, name, {
+/******/ configurable: false,
+/******/ enumerable: true,
+/******/ get: getter
+/******/ });
+/******/ }
+/******/ };
+/******/
+/******/ // define __esModule on exports
+/******/ __webpack_require__.r = function(exports) {
+/******/ Object.defineProperty(exports, '__esModule', { value: true });
+/******/ };
+/******/
+/******/ // getDefaultExport function for compatibility with non-harmony modules
+/******/ __webpack_require__.n = function(module) {
+/******/ var getter = module && module.__esModule ?
+/******/ function getDefault() { return module['default']; } :
+/******/ function getModuleExports() { return module; };
+/******/ __webpack_require__.d(getter, 'a', getter);
+/******/ return getter;
+/******/ };
+/******/
+/******/ // Object.prototype.hasOwnProperty.call
+/******/ __webpack_require__.o = function(object, property) { return Object.prototype.hasOwnProperty.call(object, property); };
+/******/
+/******/ // __webpack_public_path__
+/******/ __webpack_require__.p = "";
+/******/
+/******/
+/******/ // Load entry module and return exports
+/******/ return __webpack_require__(__webpack_require__.s = "./app.ts");
+/******/ })
+/************************************************************************/
+/******/ ({
+
+/***/ "./app.ts":
+/*!****************!*\
+ !*** ./app.ts ***!
+ \****************/
+/*! no static exports found */
+/***/ (function(module, exports) {
+
+eval("throw new Error(\"Module parse failed: Unexpected token (2:1)/nYou may need an appropriate loader to handle this file type./n| var a;/n| == 0;/n| \");\n\n//# sourceURL=webpack:///./app.ts?");
+
+/***/ })
+
+/******/ });
\ No newline at end of file
diff --git a/test/comparison-tests/errors/expectedOutput-2.8/output.transpiled.txt b/test/comparison-tests/errors/expectedOutput-2.8/output.transpiled.txt
new file mode 100644
index 000000000..159e7f536
--- /dev/null
+++ b/test/comparison-tests/errors/expectedOutput-2.8/output.transpiled.txt
@@ -0,0 +1,17 @@
+Built at: 2018-3-18 09:17:32
+ Asset Size Chunks Chunk Names
+bundle.js 2.92 KiB main [emitted] main
+Entrypoint main = bundle.js
+[./app.ts] 149 bytes {main} [built] [failed] [2 errors]
+
+ERROR in app.ts
+./app.ts
+[90m[tsl] [39m[1m[31mERROR[39m[22m[1m[31m in [39m[22m[1m[36mapp.ts(1,7)[39m[22m
+[1m[31m TS1005: ',' expected.[39m[22m
+
+ERROR in ./app.ts
+Module parse failed: Unexpected token (2:1)
+You may need an appropriate loader to handle this file type.
+| var a;
+| == 0;
+|
\ No newline at end of file
diff --git a/test/comparison-tests/errors/expectedOutput-2.8/output.txt b/test/comparison-tests/errors/expectedOutput-2.8/output.txt
new file mode 100644
index 000000000..7aea8ca37
--- /dev/null
+++ b/test/comparison-tests/errors/expectedOutput-2.8/output.txt
@@ -0,0 +1,17 @@
+Built at: 2018-3-18 09:17:32
+ Asset Size Chunks Chunk Names
+bundle.js 2.92 KiB main [emitted] main
+Entrypoint main = bundle.js
+[./app.ts] 149 bytes {main} [built] [failed] [2 errors]
+
+ERROR in ./app.ts
+Module parse failed: Unexpected token (2:1)
+You may need an appropriate loader to handle this file type.
+| var a;
+| == 0;
+|
+
+ERROR in app.ts
+./app.ts
+[90m[tsl] [39m[1m[31mERROR[39m[22m[1m[31m in [39m[22m[1m[36mapp.ts(1,7)[39m[22m
+[1m[31m TS1005: ',' expected.[39m[22m
\ No newline at end of file
diff --git a/test/comparison-tests/es3/expectedOutput-2.8/bundle.js b/test/comparison-tests/es3/expectedOutput-2.8/bundle.js
new file mode 100644
index 000000000..80420d2f0
--- /dev/null
+++ b/test/comparison-tests/es3/expectedOutput-2.8/bundle.js
@@ -0,0 +1,85 @@
+/******/ (function(modules) { // webpackBootstrap
+/******/ // The module cache
+/******/ var installedModules = {};
+/******/
+/******/ // The require function
+/******/ function __webpack_require__(moduleId) {
+/******/
+/******/ // Check if module is in cache
+/******/ if(installedModules[moduleId]) {
+/******/ return installedModules[moduleId].exports;
+/******/ }
+/******/ // Create a new module (and put it into the cache)
+/******/ var module = installedModules[moduleId] = {
+/******/ i: moduleId,
+/******/ l: false,
+/******/ exports: {}
+/******/ };
+/******/
+/******/ // Execute the module function
+/******/ modules[moduleId].call(module.exports, module, module.exports, __webpack_require__);
+/******/
+/******/ // Flag the module as loaded
+/******/ module.l = true;
+/******/
+/******/ // Return the exports of the module
+/******/ return module.exports;
+/******/ }
+/******/
+/******/
+/******/ // expose the modules object (__webpack_modules__)
+/******/ __webpack_require__.m = modules;
+/******/
+/******/ // expose the module cache
+/******/ __webpack_require__.c = installedModules;
+/******/
+/******/ // define getter function for harmony exports
+/******/ __webpack_require__.d = function(exports, name, getter) {
+/******/ if(!__webpack_require__.o(exports, name)) {
+/******/ Object.defineProperty(exports, name, {
+/******/ configurable: false,
+/******/ enumerable: true,
+/******/ get: getter
+/******/ });
+/******/ }
+/******/ };
+/******/
+/******/ // define __esModule on exports
+/******/ __webpack_require__.r = function(exports) {
+/******/ Object.defineProperty(exports, '__esModule', { value: true });
+/******/ };
+/******/
+/******/ // getDefaultExport function for compatibility with non-harmony modules
+/******/ __webpack_require__.n = function(module) {
+/******/ var getter = module && module.__esModule ?
+/******/ function getDefault() { return module['default']; } :
+/******/ function getModuleExports() { return module; };
+/******/ __webpack_require__.d(getter, 'a', getter);
+/******/ return getter;
+/******/ };
+/******/
+/******/ // Object.prototype.hasOwnProperty.call
+/******/ __webpack_require__.o = function(object, property) { return Object.prototype.hasOwnProperty.call(object, property); };
+/******/
+/******/ // __webpack_public_path__
+/******/ __webpack_require__.p = "";
+/******/
+/******/
+/******/ // Load entry module and return exports
+/******/ return __webpack_require__(__webpack_require__.s = "./app.ts");
+/******/ })
+/************************************************************************/
+/******/ ({
+
+/***/ "./app.ts":
+/*!****************!*\
+ !*** ./app.ts ***!
+ \****************/
+/*! no static exports found */
+/***/ (function(module, exports) {
+
+eval("({ get x() { return 1; } });\n\n\n//# sourceURL=webpack:///./app.ts?");
+
+/***/ })
+
+/******/ });
\ No newline at end of file
diff --git a/test/comparison-tests/es3/expectedOutput-2.8/output.transpiled.txt b/test/comparison-tests/es3/expectedOutput-2.8/output.transpiled.txt
new file mode 100644
index 000000000..5d6dde73a
--- /dev/null
+++ b/test/comparison-tests/es3/expectedOutput-2.8/output.transpiled.txt
@@ -0,0 +1,5 @@
+Built at: 2018-3-18 09:17:37
+ Asset Size Chunks Chunk Names
+bundle.js 2.8 KiB main [emitted] main
+Entrypoint main = bundle.js
+[./app.ts] 29 bytes {main} [built]
\ No newline at end of file
diff --git a/test/comparison-tests/es3/expectedOutput-2.8/output.txt b/test/comparison-tests/es3/expectedOutput-2.8/output.txt
new file mode 100644
index 000000000..c455fdcde
--- /dev/null
+++ b/test/comparison-tests/es3/expectedOutput-2.8/output.txt
@@ -0,0 +1,10 @@
+Built at: 2018-3-18 09:17:37
+ Asset Size Chunks Chunk Names
+bundle.js 2.8 KiB main [emitted] main
+Entrypoint main = bundle.js
+[./app.ts] 29 bytes {main} [built] [1 error]
+
+ERROR in app.ts
+./app.ts
+[90m[tsl] [39m[1m[31mERROR[39m[22m[1m[31m in [39m[22m[1m[36mapp.ts(1,7)[39m[22m
+[1m[31m TS1056: Accessors are only available when targeting ECMAScript 5 and higher.[39m[22m
\ No newline at end of file
diff --git a/test/comparison-tests/es5/expectedOutput-2.8/bundle.js b/test/comparison-tests/es5/expectedOutput-2.8/bundle.js
new file mode 100644
index 000000000..8331077f5
--- /dev/null
+++ b/test/comparison-tests/es5/expectedOutput-2.8/bundle.js
@@ -0,0 +1,85 @@
+/******/ (function(modules) { // webpackBootstrap
+/******/ // The module cache
+/******/ var installedModules = {};
+/******/
+/******/ // The require function
+/******/ function __webpack_require__(moduleId) {
+/******/
+/******/ // Check if module is in cache
+/******/ if(installedModules[moduleId]) {
+/******/ return installedModules[moduleId].exports;
+/******/ }
+/******/ // Create a new module (and put it into the cache)
+/******/ var module = installedModules[moduleId] = {
+/******/ i: moduleId,
+/******/ l: false,
+/******/ exports: {}
+/******/ };
+/******/
+/******/ // Execute the module function
+/******/ modules[moduleId].call(module.exports, module, module.exports, __webpack_require__);
+/******/
+/******/ // Flag the module as loaded
+/******/ module.l = true;
+/******/
+/******/ // Return the exports of the module
+/******/ return module.exports;
+/******/ }
+/******/
+/******/
+/******/ // expose the modules object (__webpack_modules__)
+/******/ __webpack_require__.m = modules;
+/******/
+/******/ // expose the module cache
+/******/ __webpack_require__.c = installedModules;
+/******/
+/******/ // define getter function for harmony exports
+/******/ __webpack_require__.d = function(exports, name, getter) {
+/******/ if(!__webpack_require__.o(exports, name)) {
+/******/ Object.defineProperty(exports, name, {
+/******/ configurable: false,
+/******/ enumerable: true,
+/******/ get: getter
+/******/ });
+/******/ }
+/******/ };
+/******/
+/******/ // define __esModule on exports
+/******/ __webpack_require__.r = function(exports) {
+/******/ Object.defineProperty(exports, '__esModule', { value: true });
+/******/ };
+/******/
+/******/ // getDefaultExport function for compatibility with non-harmony modules
+/******/ __webpack_require__.n = function(module) {
+/******/ var getter = module && module.__esModule ?
+/******/ function getDefault() { return module['default']; } :
+/******/ function getModuleExports() { return module; };
+/******/ __webpack_require__.d(getter, 'a', getter);
+/******/ return getter;
+/******/ };
+/******/
+/******/ // Object.prototype.hasOwnProperty.call
+/******/ __webpack_require__.o = function(object, property) { return Object.prototype.hasOwnProperty.call(object, property); };
+/******/
+/******/ // __webpack_public_path__
+/******/ __webpack_require__.p = "";
+/******/
+/******/
+/******/ // Load entry module and return exports
+/******/ return __webpack_require__(__webpack_require__.s = "./app.ts");
+/******/ })
+/************************************************************************/
+/******/ ({
+
+/***/ "./app.ts":
+/*!****************!*\
+ !*** ./app.ts ***!
+ \****************/
+/*! no static exports found */
+/***/ (function(module, exports) {
+
+eval("({ get x() { return 1; } });\nvar mapsDontExistYet = new Map();\n\n\n//# sourceURL=webpack:///./app.ts?");
+
+/***/ })
+
+/******/ });
\ No newline at end of file
diff --git a/test/comparison-tests/es5/expectedOutput-2.8/output.transpiled.txt b/test/comparison-tests/es5/expectedOutput-2.8/output.transpiled.txt
new file mode 100644
index 000000000..a4715b0b9
--- /dev/null
+++ b/test/comparison-tests/es5/expectedOutput-2.8/output.transpiled.txt
@@ -0,0 +1,5 @@
+Built at: 2018-3-18 09:17:43
+ Asset Size Chunks Chunk Names
+bundle.js 2.83 KiB main [emitted] main
+Entrypoint main = bundle.js
+[./app.ts] 63 bytes {main} [built]
\ No newline at end of file
diff --git a/test/comparison-tests/es5/expectedOutput-2.8/output.txt b/test/comparison-tests/es5/expectedOutput-2.8/output.txt
new file mode 100644
index 000000000..ad8d9d0d5
--- /dev/null
+++ b/test/comparison-tests/es5/expectedOutput-2.8/output.txt
@@ -0,0 +1,10 @@
+Built at: 2018-3-18 09:17:43
+ Asset Size Chunks Chunk Names
+bundle.js 2.83 KiB main [emitted] main
+Entrypoint main = bundle.js
+[./app.ts] 63 bytes {main} [built] [1 error]
+
+ERROR in app.ts
+./app.ts
+[90m[tsl] [39m[1m[31mERROR[39m[22m[1m[31m in [39m[22m[1m[36mapp.ts(2,30)[39m[22m
+[1m[31m TS2304: Cannot find name 'Map'.[39m[22m
\ No newline at end of file
diff --git a/test/comparison-tests/es6/expectedOutput-2.8/bundle.js b/test/comparison-tests/es6/expectedOutput-2.8/bundle.js
new file mode 100644
index 000000000..61f554963
--- /dev/null
+++ b/test/comparison-tests/es6/expectedOutput-2.8/bundle.js
@@ -0,0 +1,85 @@
+/******/ (function(modules) { // webpackBootstrap
+/******/ // The module cache
+/******/ var installedModules = {};
+/******/
+/******/ // The require function
+/******/ function __webpack_require__(moduleId) {
+/******/
+/******/ // Check if module is in cache
+/******/ if(installedModules[moduleId]) {
+/******/ return installedModules[moduleId].exports;
+/******/ }
+/******/ // Create a new module (and put it into the cache)
+/******/ var module = installedModules[moduleId] = {
+/******/ i: moduleId,
+/******/ l: false,
+/******/ exports: {}
+/******/ };
+/******/
+/******/ // Execute the module function
+/******/ modules[moduleId].call(module.exports, module, module.exports, __webpack_require__);
+/******/
+/******/ // Flag the module as loaded
+/******/ module.l = true;
+/******/
+/******/ // Return the exports of the module
+/******/ return module.exports;
+/******/ }
+/******/
+/******/
+/******/ // expose the modules object (__webpack_modules__)
+/******/ __webpack_require__.m = modules;
+/******/
+/******/ // expose the module cache
+/******/ __webpack_require__.c = installedModules;
+/******/
+/******/ // define getter function for harmony exports
+/******/ __webpack_require__.d = function(exports, name, getter) {
+/******/ if(!__webpack_require__.o(exports, name)) {
+/******/ Object.defineProperty(exports, name, {
+/******/ configurable: false,
+/******/ enumerable: true,
+/******/ get: getter
+/******/ });
+/******/ }
+/******/ };
+/******/
+/******/ // define __esModule on exports
+/******/ __webpack_require__.r = function(exports) {
+/******/ Object.defineProperty(exports, '__esModule', { value: true });
+/******/ };
+/******/
+/******/ // getDefaultExport function for compatibility with non-harmony modules
+/******/ __webpack_require__.n = function(module) {
+/******/ var getter = module && module.__esModule ?
+/******/ function getDefault() { return module['default']; } :
+/******/ function getModuleExports() { return module; };
+/******/ __webpack_require__.d(getter, 'a', getter);
+/******/ return getter;
+/******/ };
+/******/
+/******/ // Object.prototype.hasOwnProperty.call
+/******/ __webpack_require__.o = function(object, property) { return Object.prototype.hasOwnProperty.call(object, property); };
+/******/
+/******/ // __webpack_public_path__
+/******/ __webpack_require__.p = "";
+/******/
+/******/
+/******/ // Load entry module and return exports
+/******/ return __webpack_require__(__webpack_require__.s = "./app.ts");
+/******/ })
+/************************************************************************/
+/******/ ({
+
+/***/ "./app.ts":
+/*!****************!*\
+ !*** ./app.ts ***!
+ \****************/
+/*! no static exports found */
+/***/ (function(module, exports) {
+
+eval("({ get x() { return 1; } });\nSymbol;\n\n\n//# sourceURL=webpack:///./app.ts?");
+
+/***/ })
+
+/******/ });
\ No newline at end of file
diff --git a/test/comparison-tests/es6/expectedOutput-2.8/output.transpiled.txt b/test/comparison-tests/es6/expectedOutput-2.8/output.transpiled.txt
new file mode 100644
index 000000000..c49123e43
--- /dev/null
+++ b/test/comparison-tests/es6/expectedOutput-2.8/output.transpiled.txt
@@ -0,0 +1,5 @@
+Built at: 2018-3-18 09:17:49
+ Asset Size Chunks Chunk Names
+bundle.js 2.81 KiB main [emitted] main
+Entrypoint main = bundle.js
+[./app.ts] 37 bytes {main} [built]
\ No newline at end of file
diff --git a/test/comparison-tests/es6/expectedOutput-2.8/output.txt b/test/comparison-tests/es6/expectedOutput-2.8/output.txt
new file mode 100644
index 000000000..7d380f5ee
--- /dev/null
+++ b/test/comparison-tests/es6/expectedOutput-2.8/output.txt
@@ -0,0 +1,5 @@
+Built at: 2018-3-18 09:17:48
+ Asset Size Chunks Chunk Names
+bundle.js 2.81 KiB main [emitted] main
+Entrypoint main = bundle.js
+[./app.ts] 37 bytes {main} [built]
\ No newline at end of file
diff --git a/test/comparison-tests/es6codeSplitting/expectedOutput-2.8/0.bundle.js b/test/comparison-tests/es6codeSplitting/expectedOutput-2.8/0.bundle.js
new file mode 100644
index 000000000..9a5b38037
--- /dev/null
+++ b/test/comparison-tests/es6codeSplitting/expectedOutput-2.8/0.bundle.js
@@ -0,0 +1,27 @@
+(window["webpackJsonp"] = window["webpackJsonp"] || []).push([[0],{
+
+/***/ "./c.ts":
+/*!**************!*\
+ !*** ./c.ts ***!
+ \**************/
+/*! no static exports found */
+/***/ (function(module, exports, __webpack_require__) {
+
+"use strict";
+eval("\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.default = 'c';\n\n\n//# sourceURL=webpack:///./c.ts?");
+
+/***/ }),
+
+/***/ "./d.ts":
+/*!**************!*\
+ !*** ./d.ts ***!
+ \**************/
+/*! no static exports found */
+/***/ (function(module, exports, __webpack_require__) {
+
+"use strict";
+eval("\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.default = 'd';\n\n\n//# sourceURL=webpack:///./d.ts?");
+
+/***/ })
+
+}]);
\ No newline at end of file
diff --git a/test/comparison-tests/es6codeSplitting/expectedOutput-2.8/bundle.js b/test/comparison-tests/es6codeSplitting/expectedOutput-2.8/bundle.js
new file mode 100644
index 000000000..bc856cdd2
--- /dev/null
+++ b/test/comparison-tests/es6codeSplitting/expectedOutput-2.8/bundle.js
@@ -0,0 +1,213 @@
+/******/ (function(modules) { // webpackBootstrap
+/******/ // install a JSONP callback for chunk loading
+/******/ function webpackJsonpCallback(data) {
+/******/ var chunkIds = data[0];
+/******/ var moreModules = data[1]
+/******/
+/******/ // add "moreModules" to the modules object,
+/******/ // then flag all "chunkIds" as loaded and fire callback
+/******/ var moduleId, chunkId, i = 0, resolves = [];
+/******/ for(;i < chunkIds.length; i++) {
+/******/ chunkId = chunkIds[i];
+/******/ if(installedChunks[chunkId]) {
+/******/ resolves.push(installedChunks[chunkId][0]);
+/******/ }
+/******/ installedChunks[chunkId] = 0;
+/******/ }
+/******/ for(moduleId in moreModules) {
+/******/ if(Object.prototype.hasOwnProperty.call(moreModules, moduleId)) {
+/******/ modules[moduleId] = moreModules[moduleId];
+/******/ }
+/******/ }
+/******/ if(parentJsonpFunction) parentJsonpFunction(data);
+/******/ while(resolves.length) {
+/******/ resolves.shift()();
+/******/ }
+/******/
+/******/ };
+/******/
+/******/
+/******/ // The module cache
+/******/ var installedModules = {};
+/******/
+/******/ // object to store loaded and loading chunks
+/******/ var installedChunks = {
+/******/ "main": 0
+/******/ };
+/******/
+/******/
+/******/
+/******/ // The require function
+/******/ function __webpack_require__(moduleId) {
+/******/
+/******/ // Check if module is in cache
+/******/ if(installedModules[moduleId]) {
+/******/ return installedModules[moduleId].exports;
+/******/ }
+/******/ // Create a new module (and put it into the cache)
+/******/ var module = installedModules[moduleId] = {
+/******/ i: moduleId,
+/******/ l: false,
+/******/ exports: {}
+/******/ };
+/******/
+/******/ // Execute the module function
+/******/ modules[moduleId].call(module.exports, module, module.exports, __webpack_require__);
+/******/
+/******/ // Flag the module as loaded
+/******/ module.l = true;
+/******/
+/******/ // Return the exports of the module
+/******/ return module.exports;
+/******/ }
+/******/
+/******/ // This file contains only the entry chunk.
+/******/ // The chunk loading function for additional chunks
+/******/ __webpack_require__.e = function requireEnsure(chunkId) {
+/******/ var promises = [];
+/******/
+/******/
+/******/ // JSONP chunk loading for javascript
+/******/
+/******/ var installedChunkData = installedChunks[chunkId];
+/******/ if(installedChunkData !== 0) { // 0 means "already installed".
+/******/
+/******/ // a Promise means "currently loading".
+/******/ if(installedChunkData) {
+/******/ promises.push(installedChunkData[2]);
+/******/ } else {
+/******/ // setup Promise in chunk cache
+/******/ var promise = new Promise(function(resolve, reject) {
+/******/ installedChunkData = installedChunks[chunkId] = [resolve, reject];
+/******/ });
+/******/ promises.push(installedChunkData[2] = promise);
+/******/
+/******/ // start chunk loading
+/******/ var head = document.getElementsByTagName('head')[0];
+/******/ var script = document.createElement('script');
+/******/
+/******/ script.charset = 'utf-8';
+/******/ script.timeout = 120000;
+/******/
+/******/ if (__webpack_require__.nc) {
+/******/ script.setAttribute("nonce", __webpack_require__.nc);
+/******/ }
+/******/ script.src = __webpack_require__.p + "" + chunkId + ".bundle.js";
+/******/ var timeout = setTimeout(function(){
+/******/ onScriptComplete({ type: 'timeout', target: script });
+/******/ }, 120000);
+/******/ script.onerror = script.onload = onScriptComplete;
+/******/ function onScriptComplete(event) {
+/******/ // avoid mem leaks in IE.
+/******/ script.onerror = script.onload = null;
+/******/ clearTimeout(timeout);
+/******/ var chunk = installedChunks[chunkId];
+/******/ if(chunk !== 0) {
+/******/ if(chunk) {
+/******/ var errorType = event && (event.type === 'load' ? 'missing' : event.type);
+/******/ var realSrc = event && event.target && event.target.src;
+/******/ var error = new Error('Loading chunk ' + chunkId + ' failed.\n(' + errorType + ': ' + realSrc + ')');
+/******/ error.type = errorType;
+/******/ error.request = realSrc;
+/******/ chunk[1](error);
+/******/ }
+/******/ installedChunks[chunkId] = undefined;
+/******/ }
+/******/ };
+/******/ head.appendChild(script);
+/******/ }
+/******/ }
+/******/ return Promise.all(promises);
+/******/ };
+/******/
+/******/ // expose the modules object (__webpack_modules__)
+/******/ __webpack_require__.m = modules;
+/******/
+/******/ // expose the module cache
+/******/ __webpack_require__.c = installedModules;
+/******/
+/******/ // define getter function for harmony exports
+/******/ __webpack_require__.d = function(exports, name, getter) {
+/******/ if(!__webpack_require__.o(exports, name)) {
+/******/ Object.defineProperty(exports, name, {
+/******/ configurable: false,
+/******/ enumerable: true,
+/******/ get: getter
+/******/ });
+/******/ }
+/******/ };
+/******/
+/******/ // define __esModule on exports
+/******/ __webpack_require__.r = function(exports) {
+/******/ Object.defineProperty(exports, '__esModule', { value: true });
+/******/ };
+/******/
+/******/ // getDefaultExport function for compatibility with non-harmony modules
+/******/ __webpack_require__.n = function(module) {
+/******/ var getter = module && module.__esModule ?
+/******/ function getDefault() { return module['default']; } :
+/******/ function getModuleExports() { return module; };
+/******/ __webpack_require__.d(getter, 'a', getter);
+/******/ return getter;
+/******/ };
+/******/
+/******/ // Object.prototype.hasOwnProperty.call
+/******/ __webpack_require__.o = function(object, property) { return Object.prototype.hasOwnProperty.call(object, property); };
+/******/
+/******/ // __webpack_public_path__
+/******/ __webpack_require__.p = "";
+/******/
+/******/ // on error function for async loading
+/******/ __webpack_require__.oe = function(err) { console.error(err); throw err; };
+/******/
+/******/ var jsonpArray = window["webpackJsonp"] = window["webpackJsonp"] || [];
+/******/ var oldJsonpFunction = jsonpArray.push.bind(jsonpArray);
+/******/ jsonpArray.push = webpackJsonpCallback;
+/******/ jsonpArray = jsonpArray.slice();
+/******/ for(var i = 0; i < jsonpArray.length; i++) webpackJsonpCallback(jsonpArray[i]);
+/******/ var parentJsonpFunction = oldJsonpFunction;
+/******/
+/******/
+/******/ // Load entry module and return exports
+/******/ return __webpack_require__(__webpack_require__.s = "./app.ts");
+/******/ })
+/************************************************************************/
+/******/ ({
+
+/***/ "./a.ts":
+/*!**************!*\
+ !*** ./a.ts ***!
+ \**************/
+/*! no static exports found */
+/***/ (function(module, exports, __webpack_require__) {
+
+"use strict";
+eval("\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.default = 'a';\n\n\n//# sourceURL=webpack:///./a.ts?");
+
+/***/ }),
+
+/***/ "./app.ts":
+/*!****************!*\
+ !*** ./app.ts ***!
+ \****************/
+/*! no static exports found */
+/***/ (function(module, exports, __webpack_require__) {
+
+"use strict";
+eval("\nObject.defineProperty(exports, \"__esModule\", { value: true });\nvar a_1 = __webpack_require__(/*! ./a */ \"./a.ts\");\nvar b_1 = __webpack_require__(/*! ./b */ \"./b.ts\");\nconsole.log(a_1.default);\nconsole.log(b_1.default);\n__webpack_require__.e(/*! require.ensure */ 0).then((function (require) {\n // These require calls are emitted (note these are NOT TypeScript\n // `import ... from` statements). `require.ensure` is defined in\n // require.d.ts. Webpack sees this and automatically puts c and d\n // into a separate chunk. \n // Note that requiring an ES6 module always returns an object\n // with the named exports. This means if you want to access\n // the default export you have to do so manually.\n // Since we used syntactic sugar for the default export for c, we\n // go ahead and access the default property.\n var cDefault = __webpack_require__(/*! ./c */ \"./c.ts\")[\"default\"];\n // For d, we imported the whole module so we don't access the default\n // property yet. \n var dModule = __webpack_require__(/*! ./d */ \"./d.ts\");\n console.log(cDefault);\n console.log(dModule[\"default\"]);\n}).bind(null, __webpack_require__)).catch(__webpack_require__.oe);\n\n\n//# sourceURL=webpack:///./app.ts?");
+
+/***/ }),
+
+/***/ "./b.ts":
+/*!**************!*\
+ !*** ./b.ts ***!
+ \**************/
+/*! no static exports found */
+/***/ (function(module, exports, __webpack_require__) {
+
+"use strict";
+eval("\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.default = 'b';\n\n\n//# sourceURL=webpack:///./b.ts?");
+
+/***/ })
+
+/******/ });
\ No newline at end of file
diff --git a/test/comparison-tests/es6codeSplitting/expectedOutput-2.8/output.transpiled.txt b/test/comparison-tests/es6codeSplitting/expectedOutput-2.8/output.transpiled.txt
new file mode 100644
index 000000000..d64a57e61
--- /dev/null
+++ b/test/comparison-tests/es6codeSplitting/expectedOutput-2.8/output.transpiled.txt
@@ -0,0 +1,10 @@
+Built at: 2018-2-11 17:53:07
+ Asset Size Chunks Chunk Names
+ bundle.js 8.69 KiB main [emitted] main
+0.bundle.js 726 bytes 0 [emitted]
+Entrypoint main = bundle.js
+[./a.ts] 100 bytes {main} [built]
+[./app.ts] 1020 bytes {main} [built]
+[./b.ts] 100 bytes {main} [built]
+[./c.ts] 100 bytes {0} [built]
+[./d.ts] 100 bytes {0} [built]
\ No newline at end of file
diff --git a/test/comparison-tests/es6codeSplitting/expectedOutput-2.8/output.txt b/test/comparison-tests/es6codeSplitting/expectedOutput-2.8/output.txt
new file mode 100644
index 000000000..00c0bbcbd
--- /dev/null
+++ b/test/comparison-tests/es6codeSplitting/expectedOutput-2.8/output.txt
@@ -0,0 +1,10 @@
+Built at: 2018-3-18 09:17:55
+ Asset Size Chunks Chunk Names
+ bundle.js 8.69 KiB main [emitted] main
+0.bundle.js 726 bytes 0 [emitted]
+Entrypoint main = bundle.js
+[./a.ts] 100 bytes {main} [built]
+[./app.ts] 1020 bytes {main} [built]
+[./b.ts] 100 bytes {main} [built]
+[./c.ts] 100 bytes {0} [built]
+[./d.ts] 100 bytes {0} [built]
\ No newline at end of file
diff --git a/test/comparison-tests/es6withCJS/expectedOutput-2.8/bundle.js b/test/comparison-tests/es6withCJS/expectedOutput-2.8/bundle.js
new file mode 100644
index 000000000..b0eed5b4b
--- /dev/null
+++ b/test/comparison-tests/es6withCJS/expectedOutput-2.8/bundle.js
@@ -0,0 +1,86 @@
+/******/ (function(modules) { // webpackBootstrap
+/******/ // The module cache
+/******/ var installedModules = {};
+/******/
+/******/ // The require function
+/******/ function __webpack_require__(moduleId) {
+/******/
+/******/ // Check if module is in cache
+/******/ if(installedModules[moduleId]) {
+/******/ return installedModules[moduleId].exports;
+/******/ }
+/******/ // Create a new module (and put it into the cache)
+/******/ var module = installedModules[moduleId] = {
+/******/ i: moduleId,
+/******/ l: false,
+/******/ exports: {}
+/******/ };
+/******/
+/******/ // Execute the module function
+/******/ modules[moduleId].call(module.exports, module, module.exports, __webpack_require__);
+/******/
+/******/ // Flag the module as loaded
+/******/ module.l = true;
+/******/
+/******/ // Return the exports of the module
+/******/ return module.exports;
+/******/ }
+/******/
+/******/
+/******/ // expose the modules object (__webpack_modules__)
+/******/ __webpack_require__.m = modules;
+/******/
+/******/ // expose the module cache
+/******/ __webpack_require__.c = installedModules;
+/******/
+/******/ // define getter function for harmony exports
+/******/ __webpack_require__.d = function(exports, name, getter) {
+/******/ if(!__webpack_require__.o(exports, name)) {
+/******/ Object.defineProperty(exports, name, {
+/******/ configurable: false,
+/******/ enumerable: true,
+/******/ get: getter
+/******/ });
+/******/ }
+/******/ };
+/******/
+/******/ // define __esModule on exports
+/******/ __webpack_require__.r = function(exports) {
+/******/ Object.defineProperty(exports, '__esModule', { value: true });
+/******/ };
+/******/
+/******/ // getDefaultExport function for compatibility with non-harmony modules
+/******/ __webpack_require__.n = function(module) {
+/******/ var getter = module && module.__esModule ?
+/******/ function getDefault() { return module['default']; } :
+/******/ function getModuleExports() { return module; };
+/******/ __webpack_require__.d(getter, 'a', getter);
+/******/ return getter;
+/******/ };
+/******/
+/******/ // Object.prototype.hasOwnProperty.call
+/******/ __webpack_require__.o = function(object, property) { return Object.prototype.hasOwnProperty.call(object, property); };
+/******/
+/******/ // __webpack_public_path__
+/******/ __webpack_require__.p = "";
+/******/
+/******/
+/******/ // Load entry module and return exports
+/******/ return __webpack_require__(__webpack_require__.s = "./app.ts");
+/******/ })
+/************************************************************************/
+/******/ ({
+
+/***/ "./app.ts":
+/*!****************!*\
+ !*** ./app.ts ***!
+ \****************/
+/*! no static exports found */
+/***/ (function(module, exports, __webpack_require__) {
+
+"use strict";
+eval("\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.default = 'a';\n\n\n//# sourceURL=webpack:///./app.ts?");
+
+/***/ })
+
+/******/ });
\ No newline at end of file
diff --git a/test/comparison-tests/es6withCJS/expectedOutput-2.8/output.transpiled.txt b/test/comparison-tests/es6withCJS/expectedOutput-2.8/output.transpiled.txt
new file mode 100644
index 000000000..9a29ad731
--- /dev/null
+++ b/test/comparison-tests/es6withCJS/expectedOutput-2.8/output.transpiled.txt
@@ -0,0 +1,5 @@
+Built at: 2018-3-18 09:18:02
+ Asset Size Chunks Chunk Names
+bundle.js 2.9 KiB main [emitted] main
+Entrypoint main = bundle.js
+[./app.ts] 100 bytes {main} [built]
\ No newline at end of file
diff --git a/test/comparison-tests/es6withCJS/expectedOutput-2.8/output.txt b/test/comparison-tests/es6withCJS/expectedOutput-2.8/output.txt
new file mode 100644
index 000000000..480d389ae
--- /dev/null
+++ b/test/comparison-tests/es6withCJS/expectedOutput-2.8/output.txt
@@ -0,0 +1,5 @@
+Built at: 2018-3-18 09:18:01
+ Asset Size Chunks Chunk Names
+bundle.js 2.9 KiB main [emitted] main
+Entrypoint main = bundle.js
+[./app.ts] 100 bytes {main} [built]
\ No newline at end of file
diff --git a/test/comparison-tests/externals/expectedOutput-2.8/bundle.js b/test/comparison-tests/externals/expectedOutput-2.8/bundle.js
new file mode 100644
index 000000000..3343bee03
--- /dev/null
+++ b/test/comparison-tests/externals/expectedOutput-2.8/bundle.js
@@ -0,0 +1,97 @@
+/******/ (function(modules) { // webpackBootstrap
+/******/ // The module cache
+/******/ var installedModules = {};
+/******/
+/******/ // The require function
+/******/ function __webpack_require__(moduleId) {
+/******/
+/******/ // Check if module is in cache
+/******/ if(installedModules[moduleId]) {
+/******/ return installedModules[moduleId].exports;
+/******/ }
+/******/ // Create a new module (and put it into the cache)
+/******/ var module = installedModules[moduleId] = {
+/******/ i: moduleId,
+/******/ l: false,
+/******/ exports: {}
+/******/ };
+/******/
+/******/ // Execute the module function
+/******/ modules[moduleId].call(module.exports, module, module.exports, __webpack_require__);
+/******/
+/******/ // Flag the module as loaded
+/******/ module.l = true;
+/******/
+/******/ // Return the exports of the module
+/******/ return module.exports;
+/******/ }
+/******/
+/******/
+/******/ // expose the modules object (__webpack_modules__)
+/******/ __webpack_require__.m = modules;
+/******/
+/******/ // expose the module cache
+/******/ __webpack_require__.c = installedModules;
+/******/
+/******/ // define getter function for harmony exports
+/******/ __webpack_require__.d = function(exports, name, getter) {
+/******/ if(!__webpack_require__.o(exports, name)) {
+/******/ Object.defineProperty(exports, name, {
+/******/ configurable: false,
+/******/ enumerable: true,
+/******/ get: getter
+/******/ });
+/******/ }
+/******/ };
+/******/
+/******/ // define __esModule on exports
+/******/ __webpack_require__.r = function(exports) {
+/******/ Object.defineProperty(exports, '__esModule', { value: true });
+/******/ };
+/******/
+/******/ // getDefaultExport function for compatibility with non-harmony modules
+/******/ __webpack_require__.n = function(module) {
+/******/ var getter = module && module.__esModule ?
+/******/ function getDefault() { return module['default']; } :
+/******/ function getModuleExports() { return module; };
+/******/ __webpack_require__.d(getter, 'a', getter);
+/******/ return getter;
+/******/ };
+/******/
+/******/ // Object.prototype.hasOwnProperty.call
+/******/ __webpack_require__.o = function(object, property) { return Object.prototype.hasOwnProperty.call(object, property); };
+/******/
+/******/ // __webpack_public_path__
+/******/ __webpack_require__.p = "";
+/******/
+/******/
+/******/ // Load entry module and return exports
+/******/ return __webpack_require__(__webpack_require__.s = "./app.ts");
+/******/ })
+/************************************************************************/
+/******/ ({
+
+/***/ "./app.ts":
+/*!****************!*\
+ !*** ./app.ts ***!
+ \****************/
+/*! no static exports found */
+/***/ (function(module, exports, __webpack_require__) {
+
+"use strict";
+eval("\nexports.__esModule = true;\nvar hello = __webpack_require__(/*! hello */ \"hello\");\nvar msg = hello.sayHello('World');\n\n\n//# sourceURL=webpack:///./app.ts?");
+
+/***/ }),
+
+/***/ "hello":
+/*!************************!*\
+ !*** external "hello" ***!
+ \************************/
+/*! no static exports found */
+/***/ (function(module, exports) {
+
+eval("module.exports = hello;\n\n//# sourceURL=webpack:///external_%22hello%22?");
+
+/***/ })
+
+/******/ });
\ No newline at end of file
diff --git a/test/comparison-tests/externals/expectedOutput-2.8/output.transpiled.txt b/test/comparison-tests/externals/expectedOutput-2.8/output.transpiled.txt
new file mode 100644
index 000000000..7dc41e252
--- /dev/null
+++ b/test/comparison-tests/externals/expectedOutput-2.8/output.transpiled.txt
@@ -0,0 +1,6 @@
+Built at: 2018-3-18 09:18:08
+ Asset Size Chunks Chunk Names
+bundle.js 3.19 KiB main [emitted] main
+Entrypoint main = bundle.js
+[./app.ts] 106 bytes {main} [built]
+[hello] external "hello" 42 bytes {main} [built]
\ No newline at end of file
diff --git a/test/comparison-tests/externals/expectedOutput-2.8/output.txt b/test/comparison-tests/externals/expectedOutput-2.8/output.txt
new file mode 100644
index 000000000..43ec5fbbe
--- /dev/null
+++ b/test/comparison-tests/externals/expectedOutput-2.8/output.txt
@@ -0,0 +1,6 @@
+Built at: 2018-3-18 09:18:07
+ Asset Size Chunks Chunk Names
+bundle.js 3.19 KiB main [emitted] main
+Entrypoint main = bundle.js
+[./app.ts] 106 bytes {main} [built]
+[hello] external "hello" 42 bytes {main} [built]
\ No newline at end of file
diff --git a/test/comparison-tests/html-webpack-plugin/expectedOutput-2.8/bundle.js b/test/comparison-tests/html-webpack-plugin/expectedOutput-2.8/bundle.js
new file mode 100644
index 000000000..c9f87f770
--- /dev/null
+++ b/test/comparison-tests/html-webpack-plugin/expectedOutput-2.8/bundle.js
@@ -0,0 +1,85 @@
+/******/ (function(modules) { // webpackBootstrap
+/******/ // The module cache
+/******/ var installedModules = {};
+/******/
+/******/ // The require function
+/******/ function __webpack_require__(moduleId) {
+/******/
+/******/ // Check if module is in cache
+/******/ if(installedModules[moduleId]) {
+/******/ return installedModules[moduleId].exports;
+/******/ }
+/******/ // Create a new module (and put it into the cache)
+/******/ var module = installedModules[moduleId] = {
+/******/ i: moduleId,
+/******/ l: false,
+/******/ exports: {}
+/******/ };
+/******/
+/******/ // Execute the module function
+/******/ modules[moduleId].call(module.exports, module, module.exports, __webpack_require__);
+/******/
+/******/ // Flag the module as loaded
+/******/ module.l = true;
+/******/
+/******/ // Return the exports of the module
+/******/ return module.exports;
+/******/ }
+/******/
+/******/
+/******/ // expose the modules object (__webpack_modules__)
+/******/ __webpack_require__.m = modules;
+/******/
+/******/ // expose the module cache
+/******/ __webpack_require__.c = installedModules;
+/******/
+/******/ // define getter function for harmony exports
+/******/ __webpack_require__.d = function(exports, name, getter) {
+/******/ if(!__webpack_require__.o(exports, name)) {
+/******/ Object.defineProperty(exports, name, {
+/******/ configurable: false,
+/******/ enumerable: true,
+/******/ get: getter
+/******/ });
+/******/ }
+/******/ };
+/******/
+/******/ // define __esModule on exports
+/******/ __webpack_require__.r = function(exports) {
+/******/ Object.defineProperty(exports, '__esModule', { value: true });
+/******/ };
+/******/
+/******/ // getDefaultExport function for compatibility with non-harmony modules
+/******/ __webpack_require__.n = function(module) {
+/******/ var getter = module && module.__esModule ?
+/******/ function getDefault() { return module['default']; } :
+/******/ function getModuleExports() { return module; };
+/******/ __webpack_require__.d(getter, 'a', getter);
+/******/ return getter;
+/******/ };
+/******/
+/******/ // Object.prototype.hasOwnProperty.call
+/******/ __webpack_require__.o = function(object, property) { return Object.prototype.hasOwnProperty.call(object, property); };
+/******/
+/******/ // __webpack_public_path__
+/******/ __webpack_require__.p = "";
+/******/
+/******/
+/******/ // Load entry module and return exports
+/******/ return __webpack_require__(__webpack_require__.s = "./app.ts");
+/******/ })
+/************************************************************************/
+/******/ ({
+
+/***/ "./app.ts":
+/*!****************!*\
+ !*** ./app.ts ***!
+ \****************/
+/*! no static exports found */
+/***/ (function(module, exports) {
+
+eval("console.log(\"hello\");\n\n\n//# sourceURL=webpack:///./app.ts?");
+
+/***/ })
+
+/******/ });
\ No newline at end of file
diff --git a/test/comparison-tests/html-webpack-plugin/expectedOutput-2.8/index.html b/test/comparison-tests/html-webpack-plugin/expectedOutput-2.8/index.html
new file mode 100644
index 000000000..866dfa443
--- /dev/null
+++ b/test/comparison-tests/html-webpack-plugin/expectedOutput-2.8/index.html
@@ -0,0 +1,9 @@
+
+
+
+
+ Webpack App
+
+
+
+
\ No newline at end of file
diff --git a/test/comparison-tests/html-webpack-plugin/expectedOutput-2.8/output.transpiled.txt b/test/comparison-tests/html-webpack-plugin/expectedOutput-2.8/output.transpiled.txt
new file mode 100644
index 000000000..d09e34045
--- /dev/null
+++ b/test/comparison-tests/html-webpack-plugin/expectedOutput-2.8/output.transpiled.txt
@@ -0,0 +1,14 @@
+Built at: 2018-3-18 09:18:14
+ Asset Size Chunks Chunk Names
+ bundle.js 2.8 KiB main [emitted] main
+index.html 190 bytes [emitted]
+Entrypoint main = bundle.js
+[./app.ts] 22 bytes {main} [built]
+Child html-webpack-plugin for "index.html":
+ Asset Size Chunks Chunk Names
+ index.html 550 KiB 0
+ Entrypoint undefined = index.html
+ [../../node_modules/html-webpack-plugin/lib/loader.js!./index.html] /node_modules/html-webpack-plugin/lib/loader.js!./index.html 509 bytes {0} [built]
+ [../../node_modules/lodash/lodash.js] /node_modules/lodash/lodash.js 527 KiB {0} [built]
+ [../../node_modules/webpack/buildin/global.js] (webpack)/buildin/global.js 489 bytes {0} [built]
+ [../../node_modules/webpack/buildin/module.js] (webpack)/buildin/module.js 497 bytes {0} [built]
\ No newline at end of file
diff --git a/test/comparison-tests/html-webpack-plugin/expectedOutput-2.8/output.txt b/test/comparison-tests/html-webpack-plugin/expectedOutput-2.8/output.txt
new file mode 100644
index 000000000..55defee69
--- /dev/null
+++ b/test/comparison-tests/html-webpack-plugin/expectedOutput-2.8/output.txt
@@ -0,0 +1,14 @@
+Built at: 2018-3-18 09:18:12
+ Asset Size Chunks Chunk Names
+ bundle.js 2.8 KiB main [emitted] main
+index.html 190 bytes [emitted]
+Entrypoint main = bundle.js
+[./app.ts] 22 bytes {main} [built]
+Child html-webpack-plugin for "index.html":
+ Asset Size Chunks Chunk Names
+ index.html 550 KiB 0
+ Entrypoint undefined = index.html
+ [../../node_modules/html-webpack-plugin/lib/loader.js!./index.html] /node_modules/html-webpack-plugin/lib/loader.js!./index.html 509 bytes {0} [built]
+ [../../node_modules/lodash/lodash.js] /node_modules/lodash/lodash.js 527 KiB {0} [built]
+ [../../node_modules/webpack/buildin/global.js] (webpack)/buildin/global.js 489 bytes {0} [built]
+ [../../node_modules/webpack/buildin/module.js] (webpack)/buildin/module.js 497 bytes {0} [built]
\ No newline at end of file
diff --git a/test/comparison-tests/ignoreDiagnostics/expectedOutput-2.8/bundle.js b/test/comparison-tests/ignoreDiagnostics/expectedOutput-2.8/bundle.js
new file mode 100644
index 000000000..8a6725d09
--- /dev/null
+++ b/test/comparison-tests/ignoreDiagnostics/expectedOutput-2.8/bundle.js
@@ -0,0 +1,86 @@
+/******/ (function(modules) { // webpackBootstrap
+/******/ // The module cache
+/******/ var installedModules = {};
+/******/
+/******/ // The require function
+/******/ function __webpack_require__(moduleId) {
+/******/
+/******/ // Check if module is in cache
+/******/ if(installedModules[moduleId]) {
+/******/ return installedModules[moduleId].exports;
+/******/ }
+/******/ // Create a new module (and put it into the cache)
+/******/ var module = installedModules[moduleId] = {
+/******/ i: moduleId,
+/******/ l: false,
+/******/ exports: {}
+/******/ };
+/******/
+/******/ // Execute the module function
+/******/ modules[moduleId].call(module.exports, module, module.exports, __webpack_require__);
+/******/
+/******/ // Flag the module as loaded
+/******/ module.l = true;
+/******/
+/******/ // Return the exports of the module
+/******/ return module.exports;
+/******/ }
+/******/
+/******/
+/******/ // expose the modules object (__webpack_modules__)
+/******/ __webpack_require__.m = modules;
+/******/
+/******/ // expose the module cache
+/******/ __webpack_require__.c = installedModules;
+/******/
+/******/ // define getter function for harmony exports
+/******/ __webpack_require__.d = function(exports, name, getter) {
+/******/ if(!__webpack_require__.o(exports, name)) {
+/******/ Object.defineProperty(exports, name, {
+/******/ configurable: false,
+/******/ enumerable: true,
+/******/ get: getter
+/******/ });
+/******/ }
+/******/ };
+/******/
+/******/ // define __esModule on exports
+/******/ __webpack_require__.r = function(exports) {
+/******/ Object.defineProperty(exports, '__esModule', { value: true });
+/******/ };
+/******/
+/******/ // getDefaultExport function for compatibility with non-harmony modules
+/******/ __webpack_require__.n = function(module) {
+/******/ var getter = module && module.__esModule ?
+/******/ function getDefault() { return module['default']; } :
+/******/ function getModuleExports() { return module; };
+/******/ __webpack_require__.d(getter, 'a', getter);
+/******/ return getter;
+/******/ };
+/******/
+/******/ // Object.prototype.hasOwnProperty.call
+/******/ __webpack_require__.o = function(object, property) { return Object.prototype.hasOwnProperty.call(object, property); };
+/******/
+/******/ // __webpack_public_path__
+/******/ __webpack_require__.p = "";
+/******/
+/******/
+/******/ // Load entry module and return exports
+/******/ return __webpack_require__(__webpack_require__.s = "./app.ts");
+/******/ })
+/************************************************************************/
+/******/ ({
+
+/***/ "./app.ts":
+/*!****************!*\
+ !*** ./app.ts ***!
+ \****************/
+/*! no static exports found */
+/***/ (function(module, exports, __webpack_require__) {
+
+"use strict";
+eval("\nvar Foo = /** @class */ (function () {\n function Foo() {\n }\n return Foo;\n}());\nvar Bar = /** @class */ (function () {\n function Bar() {\n }\n return Bar;\n}());\nvar a = 'b'; // this should error with 2322\nmodule.exports = Bar;\n\n\n//# sourceURL=webpack:///./app.ts?");
+
+/***/ })
+
+/******/ });
\ No newline at end of file
diff --git a/test/comparison-tests/ignoreDiagnostics/expectedOutput-2.8/output.transpiled.txt b/test/comparison-tests/ignoreDiagnostics/expectedOutput-2.8/output.transpiled.txt
new file mode 100644
index 000000000..902820179
--- /dev/null
+++ b/test/comparison-tests/ignoreDiagnostics/expectedOutput-2.8/output.transpiled.txt
@@ -0,0 +1,5 @@
+Built at: 2018-3-18 09:18:18
+ Asset Size Chunks Chunk Names
+bundle.js 3.06 KiB main [emitted] main
+Entrypoint main = bundle.js
+[./app.ts] 256 bytes {main} [built]
\ No newline at end of file
diff --git a/test/comparison-tests/ignoreDiagnostics/expectedOutput-2.8/output.txt b/test/comparison-tests/ignoreDiagnostics/expectedOutput-2.8/output.txt
new file mode 100644
index 000000000..12ecc60f7
--- /dev/null
+++ b/test/comparison-tests/ignoreDiagnostics/expectedOutput-2.8/output.txt
@@ -0,0 +1,10 @@
+Built at: 2018-3-18 09:18:18
+ Asset Size Chunks Chunk Names
+bundle.js 3.06 KiB main [emitted] main
+Entrypoint main = bundle.js
+[./app.ts] 256 bytes {main} [built] [1 error]
+
+ERROR in app.ts
+./app.ts
+[90m[tsl] [39m[1m[31mERROR[39m[22m[1m[31m in [39m[22m[1m[36mapp.ts(9,5)[39m[22m
+[1m[31m TS2322: Type '"b"' is not assignable to type 'Number'.[39m[22m
\ No newline at end of file
diff --git a/test/comparison-tests/importsWatch/expectedOutput-2.8/bundle.js b/test/comparison-tests/importsWatch/expectedOutput-2.8/bundle.js
new file mode 100644
index 000000000..d20dd1d5f
--- /dev/null
+++ b/test/comparison-tests/importsWatch/expectedOutput-2.8/bundle.js
@@ -0,0 +1,86 @@
+/******/ (function(modules) { // webpackBootstrap
+/******/ // The module cache
+/******/ var installedModules = {};
+/******/
+/******/ // The require function
+/******/ function __webpack_require__(moduleId) {
+/******/
+/******/ // Check if module is in cache
+/******/ if(installedModules[moduleId]) {
+/******/ return installedModules[moduleId].exports;
+/******/ }
+/******/ // Create a new module (and put it into the cache)
+/******/ var module = installedModules[moduleId] = {
+/******/ i: moduleId,
+/******/ l: false,
+/******/ exports: {}
+/******/ };
+/******/
+/******/ // Execute the module function
+/******/ modules[moduleId].call(module.exports, module, module.exports, __webpack_require__);
+/******/
+/******/ // Flag the module as loaded
+/******/ module.l = true;
+/******/
+/******/ // Return the exports of the module
+/******/ return module.exports;
+/******/ }
+/******/
+/******/
+/******/ // expose the modules object (__webpack_modules__)
+/******/ __webpack_require__.m = modules;
+/******/
+/******/ // expose the module cache
+/******/ __webpack_require__.c = installedModules;
+/******/
+/******/ // define getter function for harmony exports
+/******/ __webpack_require__.d = function(exports, name, getter) {
+/******/ if(!__webpack_require__.o(exports, name)) {
+/******/ Object.defineProperty(exports, name, {
+/******/ configurable: false,
+/******/ enumerable: true,
+/******/ get: getter
+/******/ });
+/******/ }
+/******/ };
+/******/
+/******/ // define __esModule on exports
+/******/ __webpack_require__.r = function(exports) {
+/******/ Object.defineProperty(exports, '__esModule', { value: true });
+/******/ };
+/******/
+/******/ // getDefaultExport function for compatibility with non-harmony modules
+/******/ __webpack_require__.n = function(module) {
+/******/ var getter = module && module.__esModule ?
+/******/ function getDefault() { return module['default']; } :
+/******/ function getModuleExports() { return module; };
+/******/ __webpack_require__.d(getter, 'a', getter);
+/******/ return getter;
+/******/ };
+/******/
+/******/ // Object.prototype.hasOwnProperty.call
+/******/ __webpack_require__.o = function(object, property) { return Object.prototype.hasOwnProperty.call(object, property); };
+/******/
+/******/ // __webpack_public_path__
+/******/ __webpack_require__.p = "";
+/******/
+/******/
+/******/ // Load entry module and return exports
+/******/ return __webpack_require__(__webpack_require__.s = "./app.ts");
+/******/ })
+/************************************************************************/
+/******/ ({
+
+/***/ "./app.ts":
+/*!****************!*\
+ !*** ./app.ts ***!
+ \****************/
+/*! no static exports found */
+/***/ (function(module, exports, __webpack_require__) {
+
+"use strict";
+eval("\nexports.__esModule = true;\nvar foo;\nfoo.bar = 'foobar';\n\n\n//# sourceURL=webpack:///./app.ts?");
+
+/***/ })
+
+/******/ });
\ No newline at end of file
diff --git a/test/comparison-tests/importsWatch/expectedOutput-2.8/output.txt b/test/comparison-tests/importsWatch/expectedOutput-2.8/output.txt
new file mode 100644
index 000000000..7feaa253d
--- /dev/null
+++ b/test/comparison-tests/importsWatch/expectedOutput-2.8/output.txt
@@ -0,0 +1,5 @@
+Built at: 2018-3-18 09:18:23
+ Asset Size Chunks Chunk Names
+bundle.js 2.87 KiB main [emitted] main
+Entrypoint main = bundle.js
+[./app.ts] 70 bytes {main} [built]
\ No newline at end of file
diff --git a/test/comparison-tests/instance/expectedOutput-2.8/bundle.js b/test/comparison-tests/instance/expectedOutput-2.8/bundle.js
new file mode 100644
index 000000000..ef590cc2f
--- /dev/null
+++ b/test/comparison-tests/instance/expectedOutput-2.8/bundle.js
@@ -0,0 +1,85 @@
+/******/ (function(modules) { // webpackBootstrap
+/******/ // The module cache
+/******/ var installedModules = {};
+/******/
+/******/ // The require function
+/******/ function __webpack_require__(moduleId) {
+/******/
+/******/ // Check if module is in cache
+/******/ if(installedModules[moduleId]) {
+/******/ return installedModules[moduleId].exports;
+/******/ }
+/******/ // Create a new module (and put it into the cache)
+/******/ var module = installedModules[moduleId] = {
+/******/ i: moduleId,
+/******/ l: false,
+/******/ exports: {}
+/******/ };
+/******/
+/******/ // Execute the module function
+/******/ modules[moduleId].call(module.exports, module, module.exports, __webpack_require__);
+/******/
+/******/ // Flag the module as loaded
+/******/ module.l = true;
+/******/
+/******/ // Return the exports of the module
+/******/ return module.exports;
+/******/ }
+/******/
+/******/
+/******/ // expose the modules object (__webpack_modules__)
+/******/ __webpack_require__.m = modules;
+/******/
+/******/ // expose the module cache
+/******/ __webpack_require__.c = installedModules;
+/******/
+/******/ // define getter function for harmony exports
+/******/ __webpack_require__.d = function(exports, name, getter) {
+/******/ if(!__webpack_require__.o(exports, name)) {
+/******/ Object.defineProperty(exports, name, {
+/******/ configurable: false,
+/******/ enumerable: true,
+/******/ get: getter
+/******/ });
+/******/ }
+/******/ };
+/******/
+/******/ // define __esModule on exports
+/******/ __webpack_require__.r = function(exports) {
+/******/ Object.defineProperty(exports, '__esModule', { value: true });
+/******/ };
+/******/
+/******/ // getDefaultExport function for compatibility with non-harmony modules
+/******/ __webpack_require__.n = function(module) {
+/******/ var getter = module && module.__esModule ?
+/******/ function getDefault() { return module['default']; } :
+/******/ function getModuleExports() { return module; };
+/******/ __webpack_require__.d(getter, 'a', getter);
+/******/ return getter;
+/******/ };
+/******/
+/******/ // Object.prototype.hasOwnProperty.call
+/******/ __webpack_require__.o = function(object, property) { return Object.prototype.hasOwnProperty.call(object, property); };
+/******/
+/******/ // __webpack_public_path__
+/******/ __webpack_require__.p = "";
+/******/
+/******/
+/******/ // Load entry module and return exports
+/******/ return __webpack_require__(__webpack_require__.s = "./a.ts");
+/******/ })
+/************************************************************************/
+/******/ ({
+
+/***/ "./a.ts":
+/*!**************!*\
+ !*** ./a.ts ***!
+ \**************/
+/*! no static exports found */
+/***/ (function(module, exports) {
+
+eval("throw new Error(\"Module build failed: /u001b[31mA file specified in tsconfig.json could not be found: C://source//ts-loader//.test//instance//i-dont-exist/u001b[39m\");\n\n//# sourceURL=webpack:///./a.ts?");
+
+/***/ })
+
+/******/ });
\ No newline at end of file
diff --git a/test/comparison-tests/instance/expectedOutput-2.8/bundle.transpiled.js b/test/comparison-tests/instance/expectedOutput-2.8/bundle.transpiled.js
new file mode 100644
index 000000000..346fa9072
--- /dev/null
+++ b/test/comparison-tests/instance/expectedOutput-2.8/bundle.transpiled.js
@@ -0,0 +1,85 @@
+/******/ (function(modules) { // webpackBootstrap
+/******/ // The module cache
+/******/ var installedModules = {};
+/******/
+/******/ // The require function
+/******/ function __webpack_require__(moduleId) {
+/******/
+/******/ // Check if module is in cache
+/******/ if(installedModules[moduleId]) {
+/******/ return installedModules[moduleId].exports;
+/******/ }
+/******/ // Create a new module (and put it into the cache)
+/******/ var module = installedModules[moduleId] = {
+/******/ i: moduleId,
+/******/ l: false,
+/******/ exports: {}
+/******/ };
+/******/
+/******/ // Execute the module function
+/******/ modules[moduleId].call(module.exports, module, module.exports, __webpack_require__);
+/******/
+/******/ // Flag the module as loaded
+/******/ module.l = true;
+/******/
+/******/ // Return the exports of the module
+/******/ return module.exports;
+/******/ }
+/******/
+/******/
+/******/ // expose the modules object (__webpack_modules__)
+/******/ __webpack_require__.m = modules;
+/******/
+/******/ // expose the module cache
+/******/ __webpack_require__.c = installedModules;
+/******/
+/******/ // define getter function for harmony exports
+/******/ __webpack_require__.d = function(exports, name, getter) {
+/******/ if(!__webpack_require__.o(exports, name)) {
+/******/ Object.defineProperty(exports, name, {
+/******/ configurable: false,
+/******/ enumerable: true,
+/******/ get: getter
+/******/ });
+/******/ }
+/******/ };
+/******/
+/******/ // define __esModule on exports
+/******/ __webpack_require__.r = function(exports) {
+/******/ Object.defineProperty(exports, '__esModule', { value: true });
+/******/ };
+/******/
+/******/ // getDefaultExport function for compatibility with non-harmony modules
+/******/ __webpack_require__.n = function(module) {
+/******/ var getter = module && module.__esModule ?
+/******/ function getDefault() { return module['default']; } :
+/******/ function getModuleExports() { return module; };
+/******/ __webpack_require__.d(getter, 'a', getter);
+/******/ return getter;
+/******/ };
+/******/
+/******/ // Object.prototype.hasOwnProperty.call
+/******/ __webpack_require__.o = function(object, property) { return Object.prototype.hasOwnProperty.call(object, property); };
+/******/
+/******/ // __webpack_public_path__
+/******/ __webpack_require__.p = "";
+/******/
+/******/
+/******/ // Load entry module and return exports
+/******/ return __webpack_require__(__webpack_require__.s = "./a.ts");
+/******/ })
+/************************************************************************/
+/******/ ({
+
+/***/ "./a.ts":
+/*!**************!*\
+ !*** ./a.ts ***!
+ \**************/
+/*! no static exports found */
+/***/ (function(module, exports) {
+
+eval("throw new Error(\"Module build failed: /u001b[31mA file specified in tsconfig.json could not be found: C://source//ts-loader//.test//instance.transpile//i-dont-exist/u001b[39m\");\n\n//# sourceURL=webpack:///./a.ts?");
+
+/***/ })
+
+/******/ });
\ No newline at end of file
diff --git a/test/comparison-tests/instance/expectedOutput-2.8/output.transpiled.txt b/test/comparison-tests/instance/expectedOutput-2.8/output.transpiled.txt
new file mode 100644
index 000000000..1cb25e7a9
--- /dev/null
+++ b/test/comparison-tests/instance/expectedOutput-2.8/output.transpiled.txt
@@ -0,0 +1,17 @@
+Built at: 2018-3-18 09:18:32
+ Asset Size Chunks Chunk Names
+bundle.js 2.95 KiB a [emitted] a
+Entrypoint a = bundle.js
+Entrypoint b =
+[./a.ts] 177 bytes {a} [built] [failed] [1 error]
+[./b.ts] 177 bytes {b} [built] [failed] [1 error]
+
+ERROR in ./a.ts
+Module build failed: [31mA file specified in tsconfig.json could not be found: i-dont-exist[39m
+
+ERROR in ./b.ts
+Module build failed: [31mA file specified in tsconfig.json could not be found: i-dont-exist[39m
+
+ERROR in chunk b [entry]
+bundle.js
+Conflict: Multiple assets emit to the same filename bundle.js
\ No newline at end of file
diff --git a/test/comparison-tests/instance/expectedOutput-2.8/output.txt b/test/comparison-tests/instance/expectedOutput-2.8/output.txt
new file mode 100644
index 000000000..069e42cd5
--- /dev/null
+++ b/test/comparison-tests/instance/expectedOutput-2.8/output.txt
@@ -0,0 +1,17 @@
+Built at: 2018-3-18 09:18:32
+ Asset Size Chunks Chunk Names
+bundle.js 2.94 KiB a [emitted] a
+Entrypoint a = bundle.js
+Entrypoint b =
+[./a.ts] 167 bytes {a} [built] [failed] [1 error]
+[./b.ts] 167 bytes {b} [built] [failed] [1 error]
+
+ERROR in ./a.ts
+Module build failed: [31mA file specified in tsconfig.json could not be found: i-dont-exist[39m
+
+ERROR in ./b.ts
+Module build failed: [31mA file specified in tsconfig.json could not be found: i-dont-exist[39m
+
+ERROR in chunk b [entry]
+bundle.js
+Conflict: Multiple assets emit to the same filename bundle.js
\ No newline at end of file
diff --git a/test/comparison-tests/issue372/expectedOutput-2.8/bundle.js b/test/comparison-tests/issue372/expectedOutput-2.8/bundle.js
new file mode 100644
index 000000000..29d2aeccc
--- /dev/null
+++ b/test/comparison-tests/issue372/expectedOutput-2.8/bundle.js
@@ -0,0 +1,109 @@
+/******/ (function(modules) { // webpackBootstrap
+/******/ // The module cache
+/******/ var installedModules = {};
+/******/
+/******/ // The require function
+/******/ function __webpack_require__(moduleId) {
+/******/
+/******/ // Check if module is in cache
+/******/ if(installedModules[moduleId]) {
+/******/ return installedModules[moduleId].exports;
+/******/ }
+/******/ // Create a new module (and put it into the cache)
+/******/ var module = installedModules[moduleId] = {
+/******/ i: moduleId,
+/******/ l: false,
+/******/ exports: {}
+/******/ };
+/******/
+/******/ // Execute the module function
+/******/ modules[moduleId].call(module.exports, module, module.exports, __webpack_require__);
+/******/
+/******/ // Flag the module as loaded
+/******/ module.l = true;
+/******/
+/******/ // Return the exports of the module
+/******/ return module.exports;
+/******/ }
+/******/
+/******/
+/******/ // expose the modules object (__webpack_modules__)
+/******/ __webpack_require__.m = modules;
+/******/
+/******/ // expose the module cache
+/******/ __webpack_require__.c = installedModules;
+/******/
+/******/ // define getter function for harmony exports
+/******/ __webpack_require__.d = function(exports, name, getter) {
+/******/ if(!__webpack_require__.o(exports, name)) {
+/******/ Object.defineProperty(exports, name, {
+/******/ configurable: false,
+/******/ enumerable: true,
+/******/ get: getter
+/******/ });
+/******/ }
+/******/ };
+/******/
+/******/ // define __esModule on exports
+/******/ __webpack_require__.r = function(exports) {
+/******/ Object.defineProperty(exports, '__esModule', { value: true });
+/******/ };
+/******/
+/******/ // getDefaultExport function for compatibility with non-harmony modules
+/******/ __webpack_require__.n = function(module) {
+/******/ var getter = module && module.__esModule ?
+/******/ function getDefault() { return module['default']; } :
+/******/ function getModuleExports() { return module; };
+/******/ __webpack_require__.d(getter, 'a', getter);
+/******/ return getter;
+/******/ };
+/******/
+/******/ // Object.prototype.hasOwnProperty.call
+/******/ __webpack_require__.o = function(object, property) { return Object.prototype.hasOwnProperty.call(object, property); };
+/******/
+/******/ // __webpack_public_path__
+/******/ __webpack_require__.p = "";
+/******/
+/******/
+/******/ // Load entry module and return exports
+/******/ return __webpack_require__(__webpack_require__.s = "./app.ts");
+/******/ })
+/************************************************************************/
+/******/ ({
+
+/***/ "./app.ts":
+/*!****************!*\
+ !*** ./app.ts ***!
+ \****************/
+/*! no static exports found */
+/***/ (function(module, exports, __webpack_require__) {
+
+"use strict";
+eval("\nexports.__esModule = true;\nvar foo_1 = __webpack_require__(/*! ./foo */ \"./foo.ts\");\nvar foo;\nfoo.bar = 'foobar' + foo_1.s;\n\n\n//# sourceURL=webpack:///./app.ts?");
+
+/***/ }),
+
+/***/ "./foo.ts":
+/*!****************!*\
+ !*** ./foo.ts ***!
+ \****************/
+/*! no static exports found */
+/***/ (function(module, exports, __webpack_require__) {
+
+"use strict";
+eval("\nexports.__esModule = true;\nvar sString = __webpack_require__(/*! a */ \"./node_modules/a/index.js\");\nexports.s = sString;\n\n\n//# sourceURL=webpack:///./foo.ts?");
+
+/***/ }),
+
+/***/ "./node_modules/a/index.js":
+/*!*********************************!*\
+ !*** ./node_modules/a/index.js ***!
+ \*********************************/
+/*! no static exports found */
+/***/ (function(module, exports) {
+
+eval("module.exports = 'a';\n\n//# sourceURL=webpack:///./node_modules/a/index.js?");
+
+/***/ })
+
+/******/ });
\ No newline at end of file
diff --git a/test/comparison-tests/issue372/expectedOutput-2.8/output.transpiled.txt b/test/comparison-tests/issue372/expectedOutput-2.8/output.transpiled.txt
new file mode 100644
index 000000000..b18a8d192
--- /dev/null
+++ b/test/comparison-tests/issue372/expectedOutput-2.8/output.transpiled.txt
@@ -0,0 +1,7 @@
+Built at: 2018-3-18 09:18:41
+ Asset Size Chunks Chunk Names
+bundle.js 3.61 KiB main [emitted] main
+Entrypoint main = bundle.js
+[./app.ts] 110 bytes {main} [built]
+[./foo.ts] 90 bytes {main} [built]
+[./node_modules/a/index.js] 21 bytes {main} [built]
\ No newline at end of file
diff --git a/test/comparison-tests/issue372/expectedOutput-2.8/output.txt b/test/comparison-tests/issue372/expectedOutput-2.8/output.txt
new file mode 100644
index 000000000..b5ae4ece8
--- /dev/null
+++ b/test/comparison-tests/issue372/expectedOutput-2.8/output.txt
@@ -0,0 +1,7 @@
+Built at: 2018-3-18 09:18:38
+ Asset Size Chunks Chunk Names
+bundle.js 3.61 KiB main [emitted] main
+Entrypoint main = bundle.js
+[./app.ts] 110 bytes {main} [built]
+[./foo.ts] 90 bytes {main} [built]
+[./node_modules/a/index.js] 21 bytes {main} [built]
\ No newline at end of file
diff --git a/test/comparison-tests/issue372/expectedOutput-2.8/patch0/bundle.js b/test/comparison-tests/issue372/expectedOutput-2.8/patch0/bundle.js
new file mode 100644
index 000000000..f32d1dfc7
--- /dev/null
+++ b/test/comparison-tests/issue372/expectedOutput-2.8/patch0/bundle.js
@@ -0,0 +1,109 @@
+/******/ (function(modules) { // webpackBootstrap
+/******/ // The module cache
+/******/ var installedModules = {};
+/******/
+/******/ // The require function
+/******/ function __webpack_require__(moduleId) {
+/******/
+/******/ // Check if module is in cache
+/******/ if(installedModules[moduleId]) {
+/******/ return installedModules[moduleId].exports;
+/******/ }
+/******/ // Create a new module (and put it into the cache)
+/******/ var module = installedModules[moduleId] = {
+/******/ i: moduleId,
+/******/ l: false,
+/******/ exports: {}
+/******/ };
+/******/
+/******/ // Execute the module function
+/******/ modules[moduleId].call(module.exports, module, module.exports, __webpack_require__);
+/******/
+/******/ // Flag the module as loaded
+/******/ module.l = true;
+/******/
+/******/ // Return the exports of the module
+/******/ return module.exports;
+/******/ }
+/******/
+/******/
+/******/ // expose the modules object (__webpack_modules__)
+/******/ __webpack_require__.m = modules;
+/******/
+/******/ // expose the module cache
+/******/ __webpack_require__.c = installedModules;
+/******/
+/******/ // define getter function for harmony exports
+/******/ __webpack_require__.d = function(exports, name, getter) {
+/******/ if(!__webpack_require__.o(exports, name)) {
+/******/ Object.defineProperty(exports, name, {
+/******/ configurable: false,
+/******/ enumerable: true,
+/******/ get: getter
+/******/ });
+/******/ }
+/******/ };
+/******/
+/******/ // define __esModule on exports
+/******/ __webpack_require__.r = function(exports) {
+/******/ Object.defineProperty(exports, '__esModule', { value: true });
+/******/ };
+/******/
+/******/ // getDefaultExport function for compatibility with non-harmony modules
+/******/ __webpack_require__.n = function(module) {
+/******/ var getter = module && module.__esModule ?
+/******/ function getDefault() { return module['default']; } :
+/******/ function getModuleExports() { return module; };
+/******/ __webpack_require__.d(getter, 'a', getter);
+/******/ return getter;
+/******/ };
+/******/
+/******/ // Object.prototype.hasOwnProperty.call
+/******/ __webpack_require__.o = function(object, property) { return Object.prototype.hasOwnProperty.call(object, property); };
+/******/
+/******/ // __webpack_public_path__
+/******/ __webpack_require__.p = "";
+/******/
+/******/
+/******/ // Load entry module and return exports
+/******/ return __webpack_require__(__webpack_require__.s = "./app.ts");
+/******/ })
+/************************************************************************/
+/******/ ({
+
+/***/ "./app.ts":
+/*!****************!*\
+ !*** ./app.ts ***!
+ \****************/
+/*! no static exports found */
+/***/ (function(module, exports, __webpack_require__) {
+
+"use strict";
+eval("\nexports.__esModule = true;\nvar foo_1 = __webpack_require__(/*! ./foo */ \"./foo.ts\");\nvar foo;\nfoo.bar = 'foobar_patch0' + foo_1.s;\n\n\n//# sourceURL=webpack:///./app.ts?");
+
+/***/ }),
+
+/***/ "./foo.ts":
+/*!****************!*\
+ !*** ./foo.ts ***!
+ \****************/
+/*! no static exports found */
+/***/ (function(module, exports, __webpack_require__) {
+
+"use strict";
+eval("\nexports.__esModule = true;\nvar sString = __webpack_require__(/*! a */ \"./node_modules/a/index.js\");\nexports.s = sString;\n\n\n//# sourceURL=webpack:///./foo.ts?");
+
+/***/ }),
+
+/***/ "./node_modules/a/index.js":
+/*!*********************************!*\
+ !*** ./node_modules/a/index.js ***!
+ \*********************************/
+/*! no static exports found */
+/***/ (function(module, exports) {
+
+eval("module.exports = 'a';\n\n//# sourceURL=webpack:///./node_modules/a/index.js?");
+
+/***/ })
+
+/******/ });
\ No newline at end of file
diff --git a/test/comparison-tests/issue372/expectedOutput-2.8/patch0/output.transpiled.txt b/test/comparison-tests/issue372/expectedOutput-2.8/patch0/output.transpiled.txt
new file mode 100644
index 000000000..9da0c74aa
--- /dev/null
+++ b/test/comparison-tests/issue372/expectedOutput-2.8/patch0/output.transpiled.txt
@@ -0,0 +1,7 @@
+Built at: 2018-3-18 09:18:43
+ Asset Size Chunks Chunk Names
+bundle.js 3.61 KiB main [emitted] main
+Entrypoint main = bundle.js
+[./app.ts] 117 bytes {main} [built]
+[./foo.ts] 90 bytes {main}
+[./node_modules/a/index.js] 21 bytes {main}
\ No newline at end of file
diff --git a/test/comparison-tests/issue372/expectedOutput-2.8/patch0/output.txt b/test/comparison-tests/issue372/expectedOutput-2.8/patch0/output.txt
new file mode 100644
index 000000000..d057dd725
--- /dev/null
+++ b/test/comparison-tests/issue372/expectedOutput-2.8/patch0/output.txt
@@ -0,0 +1,7 @@
+Built at: 2018-3-18 09:18:40
+ Asset Size Chunks Chunk Names
+bundle.js 3.61 KiB main [emitted] main
+Entrypoint main = bundle.js
+[./app.ts] 117 bytes {main} [built]
+[./foo.ts] 90 bytes {main}
+[./node_modules/a/index.js] 21 bytes {main}
\ No newline at end of file
diff --git a/test/comparison-tests/issue441/expectedOutput-2.8/bundle.js b/test/comparison-tests/issue441/expectedOutput-2.8/bundle.js
new file mode 100644
index 000000000..ba8069e3b
--- /dev/null
+++ b/test/comparison-tests/issue441/expectedOutput-2.8/bundle.js
@@ -0,0 +1,86 @@
+/******/ (function(modules) { // webpackBootstrap
+/******/ // The module cache
+/******/ var installedModules = {};
+/******/
+/******/ // The require function
+/******/ function __webpack_require__(moduleId) {
+/******/
+/******/ // Check if module is in cache
+/******/ if(installedModules[moduleId]) {
+/******/ return installedModules[moduleId].exports;
+/******/ }
+/******/ // Create a new module (and put it into the cache)
+/******/ var module = installedModules[moduleId] = {
+/******/ i: moduleId,
+/******/ l: false,
+/******/ exports: {}
+/******/ };
+/******/
+/******/ // Execute the module function
+/******/ modules[moduleId].call(module.exports, module, module.exports, __webpack_require__);
+/******/
+/******/ // Flag the module as loaded
+/******/ module.l = true;
+/******/
+/******/ // Return the exports of the module
+/******/ return module.exports;
+/******/ }
+/******/
+/******/
+/******/ // expose the modules object (__webpack_modules__)
+/******/ __webpack_require__.m = modules;
+/******/
+/******/ // expose the module cache
+/******/ __webpack_require__.c = installedModules;
+/******/
+/******/ // define getter function for harmony exports
+/******/ __webpack_require__.d = function(exports, name, getter) {
+/******/ if(!__webpack_require__.o(exports, name)) {
+/******/ Object.defineProperty(exports, name, {
+/******/ configurable: false,
+/******/ enumerable: true,
+/******/ get: getter
+/******/ });
+/******/ }
+/******/ };
+/******/
+/******/ // define __esModule on exports
+/******/ __webpack_require__.r = function(exports) {
+/******/ Object.defineProperty(exports, '__esModule', { value: true });
+/******/ };
+/******/
+/******/ // getDefaultExport function for compatibility with non-harmony modules
+/******/ __webpack_require__.n = function(module) {
+/******/ var getter = module && module.__esModule ?
+/******/ function getDefault() { return module['default']; } :
+/******/ function getModuleExports() { return module; };
+/******/ __webpack_require__.d(getter, 'a', getter);
+/******/ return getter;
+/******/ };
+/******/
+/******/ // Object.prototype.hasOwnProperty.call
+/******/ __webpack_require__.o = function(object, property) { return Object.prototype.hasOwnProperty.call(object, property); };
+/******/
+/******/ // __webpack_public_path__
+/******/ __webpack_require__.p = "";
+/******/
+/******/
+/******/ // Load entry module and return exports
+/******/ return __webpack_require__(__webpack_require__.s = "./app.ts");
+/******/ })
+/************************************************************************/
+/******/ ({
+
+/***/ "./app.ts":
+/*!****************!*\
+ !*** ./app.ts ***!
+ \****************/
+/*! no static exports found */
+/***/ (function(module, exports, __webpack_require__) {
+
+"use strict";
+eval("\r\nexports.__esModule = true;\r\nvar foo;\r\nfoo.bar = 'foobar';\r\n\n\n//# sourceURL=webpack:///./app.ts?");
+
+/***/ })
+
+/******/ });
\ No newline at end of file
diff --git a/test/comparison-tests/issue441/expectedOutput-2.8/output.transpiled.txt b/test/comparison-tests/issue441/expectedOutput-2.8/output.transpiled.txt
new file mode 100644
index 000000000..8d19164bd
--- /dev/null
+++ b/test/comparison-tests/issue441/expectedOutput-2.8/output.transpiled.txt
@@ -0,0 +1,5 @@
+Built at: 2018-3-18 09:18:55
+ Asset Size Chunks Chunk Names
+bundle.js 2.87 KiB main [emitted] main
+Entrypoint main = bundle.js
+[./app.ts] 74 bytes {main} [built]
\ No newline at end of file
diff --git a/test/comparison-tests/issue441/expectedOutput-2.8/output.txt b/test/comparison-tests/issue441/expectedOutput-2.8/output.txt
new file mode 100644
index 000000000..50196aa86
--- /dev/null
+++ b/test/comparison-tests/issue441/expectedOutput-2.8/output.txt
@@ -0,0 +1,5 @@
+Built at: 2018-3-18 09:18:49
+ Asset Size Chunks Chunk Names
+bundle.js 2.87 KiB main [emitted] main
+Entrypoint main = bundle.js
+[./app.ts] 74 bytes {main} [built]
\ No newline at end of file
diff --git a/test/comparison-tests/issue441/expectedOutput-2.8/patch0/bundle.js b/test/comparison-tests/issue441/expectedOutput-2.8/patch0/bundle.js
new file mode 100644
index 000000000..ba8069e3b
--- /dev/null
+++ b/test/comparison-tests/issue441/expectedOutput-2.8/patch0/bundle.js
@@ -0,0 +1,86 @@
+/******/ (function(modules) { // webpackBootstrap
+/******/ // The module cache
+/******/ var installedModules = {};
+/******/
+/******/ // The require function
+/******/ function __webpack_require__(moduleId) {
+/******/
+/******/ // Check if module is in cache
+/******/ if(installedModules[moduleId]) {
+/******/ return installedModules[moduleId].exports;
+/******/ }
+/******/ // Create a new module (and put it into the cache)
+/******/ var module = installedModules[moduleId] = {
+/******/ i: moduleId,
+/******/ l: false,
+/******/ exports: {}
+/******/ };
+/******/
+/******/ // Execute the module function
+/******/ modules[moduleId].call(module.exports, module, module.exports, __webpack_require__);
+/******/
+/******/ // Flag the module as loaded
+/******/ module.l = true;
+/******/
+/******/ // Return the exports of the module
+/******/ return module.exports;
+/******/ }
+/******/
+/******/
+/******/ // expose the modules object (__webpack_modules__)
+/******/ __webpack_require__.m = modules;
+/******/
+/******/ // expose the module cache
+/******/ __webpack_require__.c = installedModules;
+/******/
+/******/ // define getter function for harmony exports
+/******/ __webpack_require__.d = function(exports, name, getter) {
+/******/ if(!__webpack_require__.o(exports, name)) {
+/******/ Object.defineProperty(exports, name, {
+/******/ configurable: false,
+/******/ enumerable: true,
+/******/ get: getter
+/******/ });
+/******/ }
+/******/ };
+/******/
+/******/ // define __esModule on exports
+/******/ __webpack_require__.r = function(exports) {
+/******/ Object.defineProperty(exports, '__esModule', { value: true });
+/******/ };
+/******/
+/******/ // getDefaultExport function for compatibility with non-harmony modules
+/******/ __webpack_require__.n = function(module) {
+/******/ var getter = module && module.__esModule ?
+/******/ function getDefault() { return module['default']; } :
+/******/ function getModuleExports() { return module; };
+/******/ __webpack_require__.d(getter, 'a', getter);
+/******/ return getter;
+/******/ };
+/******/
+/******/ // Object.prototype.hasOwnProperty.call
+/******/ __webpack_require__.o = function(object, property) { return Object.prototype.hasOwnProperty.call(object, property); };
+/******/
+/******/ // __webpack_public_path__
+/******/ __webpack_require__.p = "";
+/******/
+/******/
+/******/ // Load entry module and return exports
+/******/ return __webpack_require__(__webpack_require__.s = "./app.ts");
+/******/ })
+/************************************************************************/
+/******/ ({
+
+/***/ "./app.ts":
+/*!****************!*\
+ !*** ./app.ts ***!
+ \****************/
+/*! no static exports found */
+/***/ (function(module, exports, __webpack_require__) {
+
+"use strict";
+eval("\r\nexports.__esModule = true;\r\nvar foo;\r\nfoo.bar = 'foobar';\r\n\n\n//# sourceURL=webpack:///./app.ts?");
+
+/***/ })
+
+/******/ });
\ No newline at end of file
diff --git a/test/comparison-tests/issue441/expectedOutput-2.8/patch0/output.transpiled.txt b/test/comparison-tests/issue441/expectedOutput-2.8/patch0/output.transpiled.txt
new file mode 100644
index 000000000..a356e8960
--- /dev/null
+++ b/test/comparison-tests/issue441/expectedOutput-2.8/patch0/output.transpiled.txt
@@ -0,0 +1,5 @@
+Built at: 2018-3-18 09:18:57
+ Asset Size Chunks Chunk Names
+bundle.js 2.87 KiB main [emitted] main
+Entrypoint main = bundle.js
+[./app.ts] 74 bytes {main} [built]
\ No newline at end of file
diff --git a/test/comparison-tests/issue441/expectedOutput-2.8/patch0/output.txt b/test/comparison-tests/issue441/expectedOutput-2.8/patch0/output.txt
new file mode 100644
index 000000000..b3b9fa879
--- /dev/null
+++ b/test/comparison-tests/issue441/expectedOutput-2.8/patch0/output.txt
@@ -0,0 +1,5 @@
+Built at: 2018-3-18 09:18:51
+ Asset Size Chunks Chunk Names
+bundle.js 2.87 KiB main [emitted] main
+Entrypoint main = bundle.js
+[./app.ts] 74 bytes {main} [built]
\ No newline at end of file
diff --git a/test/comparison-tests/issue441/expectedOutput-2.8/patch1/bundle.js b/test/comparison-tests/issue441/expectedOutput-2.8/patch1/bundle.js
new file mode 100644
index 000000000..ba8069e3b
--- /dev/null
+++ b/test/comparison-tests/issue441/expectedOutput-2.8/patch1/bundle.js
@@ -0,0 +1,86 @@
+/******/ (function(modules) { // webpackBootstrap
+/******/ // The module cache
+/******/ var installedModules = {};
+/******/
+/******/ // The require function
+/******/ function __webpack_require__(moduleId) {
+/******/
+/******/ // Check if module is in cache
+/******/ if(installedModules[moduleId]) {
+/******/ return installedModules[moduleId].exports;
+/******/ }
+/******/ // Create a new module (and put it into the cache)
+/******/ var module = installedModules[moduleId] = {
+/******/ i: moduleId,
+/******/ l: false,
+/******/ exports: {}
+/******/ };
+/******/
+/******/ // Execute the module function
+/******/ modules[moduleId].call(module.exports, module, module.exports, __webpack_require__);
+/******/
+/******/ // Flag the module as loaded
+/******/ module.l = true;
+/******/
+/******/ // Return the exports of the module
+/******/ return module.exports;
+/******/ }
+/******/
+/******/
+/******/ // expose the modules object (__webpack_modules__)
+/******/ __webpack_require__.m = modules;
+/******/
+/******/ // expose the module cache
+/******/ __webpack_require__.c = installedModules;
+/******/
+/******/ // define getter function for harmony exports
+/******/ __webpack_require__.d = function(exports, name, getter) {
+/******/ if(!__webpack_require__.o(exports, name)) {
+/******/ Object.defineProperty(exports, name, {
+/******/ configurable: false,
+/******/ enumerable: true,
+/******/ get: getter
+/******/ });
+/******/ }
+/******/ };
+/******/
+/******/ // define __esModule on exports
+/******/ __webpack_require__.r = function(exports) {
+/******/ Object.defineProperty(exports, '__esModule', { value: true });
+/******/ };
+/******/
+/******/ // getDefaultExport function for compatibility with non-harmony modules
+/******/ __webpack_require__.n = function(module) {
+/******/ var getter = module && module.__esModule ?
+/******/ function getDefault() { return module['default']; } :
+/******/ function getModuleExports() { return module; };
+/******/ __webpack_require__.d(getter, 'a', getter);
+/******/ return getter;
+/******/ };
+/******/
+/******/ // Object.prototype.hasOwnProperty.call
+/******/ __webpack_require__.o = function(object, property) { return Object.prototype.hasOwnProperty.call(object, property); };
+/******/
+/******/ // __webpack_public_path__
+/******/ __webpack_require__.p = "";
+/******/
+/******/
+/******/ // Load entry module and return exports
+/******/ return __webpack_require__(__webpack_require__.s = "./app.ts");
+/******/ })
+/************************************************************************/
+/******/ ({
+
+/***/ "./app.ts":
+/*!****************!*\
+ !*** ./app.ts ***!
+ \****************/
+/*! no static exports found */
+/***/ (function(module, exports, __webpack_require__) {
+
+"use strict";
+eval("\r\nexports.__esModule = true;\r\nvar foo;\r\nfoo.bar = 'foobar';\r\n\n\n//# sourceURL=webpack:///./app.ts?");
+
+/***/ })
+
+/******/ });
\ No newline at end of file
diff --git a/test/comparison-tests/issue441/expectedOutput-2.8/patch1/output.transpiled.txt b/test/comparison-tests/issue441/expectedOutput-2.8/patch1/output.transpiled.txt
new file mode 100644
index 000000000..279a42acf
--- /dev/null
+++ b/test/comparison-tests/issue441/expectedOutput-2.8/patch1/output.transpiled.txt
@@ -0,0 +1,5 @@
+Built at: 2018-3-18 09:19:00
+ Asset Size Chunks Chunk Names
+bundle.js 2.87 KiB main [emitted] main
+Entrypoint main = bundle.js
+[./app.ts] 74 bytes {main} [built]
\ No newline at end of file
diff --git a/test/comparison-tests/issue441/expectedOutput-2.8/patch1/output.txt b/test/comparison-tests/issue441/expectedOutput-2.8/patch1/output.txt
new file mode 100644
index 000000000..1b8f29f16
--- /dev/null
+++ b/test/comparison-tests/issue441/expectedOutput-2.8/patch1/output.txt
@@ -0,0 +1,5 @@
+Built at: 2018-3-18 09:18:54
+ Asset Size Chunks Chunk Names
+bundle.js 2.87 KiB main [emitted] main
+Entrypoint main = bundle.js
+[./app.ts] 74 bytes {main} [built]
\ No newline at end of file
diff --git a/test/comparison-tests/issue71/expectedOutput-2.8/bundle.js b/test/comparison-tests/issue71/expectedOutput-2.8/bundle.js
new file mode 100644
index 000000000..6dca04ff5
--- /dev/null
+++ b/test/comparison-tests/issue71/expectedOutput-2.8/bundle.js
@@ -0,0 +1,109 @@
+/******/ (function(modules) { // webpackBootstrap
+/******/ // The module cache
+/******/ var installedModules = {};
+/******/
+/******/ // The require function
+/******/ function __webpack_require__(moduleId) {
+/******/
+/******/ // Check if module is in cache
+/******/ if(installedModules[moduleId]) {
+/******/ return installedModules[moduleId].exports;
+/******/ }
+/******/ // Create a new module (and put it into the cache)
+/******/ var module = installedModules[moduleId] = {
+/******/ i: moduleId,
+/******/ l: false,
+/******/ exports: {}
+/******/ };
+/******/
+/******/ // Execute the module function
+/******/ modules[moduleId].call(module.exports, module, module.exports, __webpack_require__);
+/******/
+/******/ // Flag the module as loaded
+/******/ module.l = true;
+/******/
+/******/ // Return the exports of the module
+/******/ return module.exports;
+/******/ }
+/******/
+/******/
+/******/ // expose the modules object (__webpack_modules__)
+/******/ __webpack_require__.m = modules;
+/******/
+/******/ // expose the module cache
+/******/ __webpack_require__.c = installedModules;
+/******/
+/******/ // define getter function for harmony exports
+/******/ __webpack_require__.d = function(exports, name, getter) {
+/******/ if(!__webpack_require__.o(exports, name)) {
+/******/ Object.defineProperty(exports, name, {
+/******/ configurable: false,
+/******/ enumerable: true,
+/******/ get: getter
+/******/ });
+/******/ }
+/******/ };
+/******/
+/******/ // define __esModule on exports
+/******/ __webpack_require__.r = function(exports) {
+/******/ Object.defineProperty(exports, '__esModule', { value: true });
+/******/ };
+/******/
+/******/ // getDefaultExport function for compatibility with non-harmony modules
+/******/ __webpack_require__.n = function(module) {
+/******/ var getter = module && module.__esModule ?
+/******/ function getDefault() { return module['default']; } :
+/******/ function getModuleExports() { return module; };
+/******/ __webpack_require__.d(getter, 'a', getter);
+/******/ return getter;
+/******/ };
+/******/
+/******/ // Object.prototype.hasOwnProperty.call
+/******/ __webpack_require__.o = function(object, property) { return Object.prototype.hasOwnProperty.call(object, property); };
+/******/
+/******/ // __webpack_public_path__
+/******/ __webpack_require__.p = "";
+/******/
+/******/
+/******/ // Load entry module and return exports
+/******/ return __webpack_require__(__webpack_require__.s = "./app.ts");
+/******/ })
+/************************************************************************/
+/******/ ({
+
+/***/ "./app.ts":
+/*!****************!*\
+ !*** ./app.ts ***!
+ \****************/
+/*! no static exports found */
+/***/ (function(module, exports, __webpack_require__) {
+
+"use strict";
+eval("\nexports.__esModule = true;\nvar a = __webpack_require__(/*! a */ \"./node_modules/a/index.js\");\nvar b = __webpack_require__(/*! ./b */ \"./b.ts\");\nconsole.log(a);\nconsole.log(b);\n\n\n//# sourceURL=webpack:///./app.ts?");
+
+/***/ }),
+
+/***/ "./b.ts":
+/*!**************!*\
+ !*** ./b.ts ***!
+ \**************/
+/*! no static exports found */
+/***/ (function(module, exports, __webpack_require__) {
+
+"use strict";
+eval("\nmodule.exports = 'b';\n\n\n//# sourceURL=webpack:///./b.ts?");
+
+/***/ }),
+
+/***/ "./node_modules/a/index.js":
+/*!*********************************!*\
+ !*** ./node_modules/a/index.js ***!
+ \*********************************/
+/*! no static exports found */
+/***/ (function(module, exports) {
+
+eval("module.exports = 'a';\n\n//# sourceURL=webpack:///./node_modules/a/index.js?");
+
+/***/ })
+
+/******/ });
\ No newline at end of file
diff --git a/test/comparison-tests/issue71/expectedOutput-2.8/output.txt b/test/comparison-tests/issue71/expectedOutput-2.8/output.txt
new file mode 100644
index 000000000..e56b02af9
--- /dev/null
+++ b/test/comparison-tests/issue71/expectedOutput-2.8/output.txt
@@ -0,0 +1,7 @@
+Built at: 2018-3-18 09:19:04
+ Asset Size Chunks Chunk Names
+bundle.js 3.55 KiB main [emitted] main
+Entrypoint main = bundle.js
+[./app.ts] 119 bytes {main} [built]
+[./b.ts] 36 bytes {main} [built]
+[./node_modules/a/index.js] 21 bytes {main} [built]
\ No newline at end of file
diff --git a/test/comparison-tests/large/expectedOutput-2.8/bundle.js b/test/comparison-tests/large/expectedOutput-2.8/bundle.js
new file mode 100644
index 000000000..10865de3a
--- /dev/null
+++ b/test/comparison-tests/large/expectedOutput-2.8/bundle.js
@@ -0,0 +1,1034 @@
+/******/ (function(modules) { // webpackBootstrap
+/******/ // The module cache
+/******/ var installedModules = {};
+/******/
+/******/ // The require function
+/******/ function __webpack_require__(moduleId) {
+/******/
+/******/ // Check if module is in cache
+/******/ if(installedModules[moduleId]) {
+/******/ return installedModules[moduleId].exports;
+/******/ }
+/******/ // Create a new module (and put it into the cache)
+/******/ var module = installedModules[moduleId] = {
+/******/ i: moduleId,
+/******/ l: false,
+/******/ exports: {}
+/******/ };
+/******/
+/******/ // Execute the module function
+/******/ modules[moduleId].call(module.exports, module, module.exports, __webpack_require__);
+/******/
+/******/ // Flag the module as loaded
+/******/ module.l = true;
+/******/
+/******/ // Return the exports of the module
+/******/ return module.exports;
+/******/ }
+/******/
+/******/
+/******/ // expose the modules object (__webpack_modules__)
+/******/ __webpack_require__.m = modules;
+/******/
+/******/ // expose the module cache
+/******/ __webpack_require__.c = installedModules;
+/******/
+/******/ // define getter function for harmony exports
+/******/ __webpack_require__.d = function(exports, name, getter) {
+/******/ if(!__webpack_require__.o(exports, name)) {
+/******/ Object.defineProperty(exports, name, {
+/******/ configurable: false,
+/******/ enumerable: true,
+/******/ get: getter
+/******/ });
+/******/ }
+/******/ };
+/******/
+/******/ // define __esModule on exports
+/******/ __webpack_require__.r = function(exports) {
+/******/ Object.defineProperty(exports, '__esModule', { value: true });
+/******/ };
+/******/
+/******/ // getDefaultExport function for compatibility with non-harmony modules
+/******/ __webpack_require__.n = function(module) {
+/******/ var getter = module && module.__esModule ?
+/******/ function getDefault() { return module['default']; } :
+/******/ function getModuleExports() { return module; };
+/******/ __webpack_require__.d(getter, 'a', getter);
+/******/ return getter;
+/******/ };
+/******/
+/******/ // Object.prototype.hasOwnProperty.call
+/******/ __webpack_require__.o = function(object, property) { return Object.prototype.hasOwnProperty.call(object, property); };
+/******/
+/******/ // __webpack_public_path__
+/******/ __webpack_require__.p = "";
+/******/
+/******/
+/******/ // Load entry module and return exports
+/******/ return __webpack_require__(__webpack_require__.s = "./a.ts");
+/******/ })
+/************************************************************************/
+/******/ ({
+
+/***/ "./a.ts":
+/*!**************!*\
+ !*** ./a.ts ***!
+ \**************/
+/*! no static exports found */
+/***/ (function(module, exports, __webpack_require__) {
+
+"use strict";
+eval("\nexports.__esModule = true;\n/// \n/// \n/// \nvar module_dt0 = __webpack_require__(/*! ./dt */ \"./dt.ts\");\nvar module_cx1 = __webpack_require__(/*! ./cx */ \"./cx.ts\");\nvar module_dg2 = __webpack_require__(/*! ./dg */ \"./dg.ts\");\nvar module_di3 = __webpack_require__(/*! ./di */ \"./di.ts\");\nvar module_cg4 = __webpack_require__(/*! ./cg */ \"./cg.ts\");\nvar module_t5 = __webpack_require__(/*! ./t */ \"./t.ts\");\nvar module_db6 = __webpack_require__(/*! ./db */ \"./db.ts\");\nvar module_k7 = __webpack_require__(/*! ./k */ \"./k.ts\");\nvar module_bb8 = __webpack_require__(/*! ./bb */ \"./bb.ts\");\nvar module_cp9 = __webpack_require__(/*! ./cp */ \"./cp.ts\");\nO.doSomething();\nT.doSomething();\nE.doSomething();\nmodule_dt0.doSomething();\nmodule_cx1.doSomething();\nmodule_dg2.doSomething();\nmodule_di3.doSomething();\nmodule_cg4.doSomething();\nmodule_t5.doSomething();\nmodule_db6.doSomething();\nmodule_k7.doSomething();\nmodule_bb8.doSomething();\nmodule_cp9.doSomething();\nfunction doSomething() { }\nexports.doSomething = doSomething;\n\n\n//# sourceURL=webpack:///./a.ts?");
+
+/***/ }),
+
+/***/ "./ba.ts":
+/*!***************!*\
+ !*** ./ba.ts ***!
+ \***************/
+/*! no static exports found */
+/***/ (function(module, exports, __webpack_require__) {
+
+"use strict";
+eval("\nexports.__esModule = true;\n/// \n/// \n/// \nvar module_cd0 = __webpack_require__(/*! ./cd */ \"./cd.ts\");\nvar module_bc1 = __webpack_require__(/*! ./bc */ \"./bc.ts\");\nvar module_bi2 = __webpack_require__(/*! ./bi */ \"./bi.ts\");\nvar module_be3 = __webpack_require__(/*! ./be */ \"./be.ts\");\nvar module_ci4 = __webpack_require__(/*! ./ci */ \"./ci.ts\");\nvar module_cu5 = __webpack_require__(/*! ./cu */ \"./cu.ts\");\nvar module_cv6 = __webpack_require__(/*! ./cv */ \"./cv.ts\");\nvar module_cp7 = __webpack_require__(/*! ./cp */ \"./cp.ts\");\nvar module_cy8 = __webpack_require__(/*! ./cy */ \"./cy.ts\");\nvar module_bn9 = __webpack_require__(/*! ./bn */ \"./bn.ts\");\nF.doSomething();\nC.doSomething();\nA.doSomething();\nmodule_cd0.doSomething();\nmodule_bc1.doSomething();\nmodule_bi2.doSomething();\nmodule_be3.doSomething();\nmodule_ci4.doSomething();\nmodule_cu5.doSomething();\nmodule_cv6.doSomething();\nmodule_cp7.doSomething();\nmodule_cy8.doSomething();\nmodule_bn9.doSomething();\nfunction doSomething() { }\nexports.doSomething = doSomething;\n\n\n//# sourceURL=webpack:///./ba.ts?");
+
+/***/ }),
+
+/***/ "./bb.ts":
+/*!***************!*\
+ !*** ./bb.ts ***!
+ \***************/
+/*! no static exports found */
+/***/ (function(module, exports, __webpack_require__) {
+
+"use strict";
+eval("\nexports.__esModule = true;\n/// \n/// \n/// \nvar module_da0 = __webpack_require__(/*! ./da */ \"./da.ts\");\nvar module_bl1 = __webpack_require__(/*! ./bl */ \"./bl.ts\");\nvar module_bm2 = __webpack_require__(/*! ./bm */ \"./bm.ts\");\nvar module_bj3 = __webpack_require__(/*! ./bj */ \"./bj.ts\");\nvar module_br4 = __webpack_require__(/*! ./br */ \"./br.ts\");\nvar module_bn5 = __webpack_require__(/*! ./bn */ \"./bn.ts\");\nvar module_dm6 = __webpack_require__(/*! ./dm */ \"./dm.ts\");\nvar module_dp7 = __webpack_require__(/*! ./dp */ \"./dp.ts\");\nvar module_cj8 = __webpack_require__(/*! ./cj */ \"./cj.ts\");\nvar module_bi9 = __webpack_require__(/*! ./bi */ \"./bi.ts\");\nJ.doSomething();\nB.doSomething();\nK.doSomething();\nmodule_da0.doSomething();\nmodule_bl1.doSomething();\nmodule_bm2.doSomething();\nmodule_bj3.doSomething();\nmodule_br4.doSomething();\nmodule_bn5.doSomething();\nmodule_dm6.doSomething();\nmodule_dp7.doSomething();\nmodule_cj8.doSomething();\nmodule_bi9.doSomething();\nfunction doSomething() { }\nexports.doSomething = doSomething;\n\n\n//# sourceURL=webpack:///./bb.ts?");
+
+/***/ }),
+
+/***/ "./bc.ts":
+/*!***************!*\
+ !*** ./bc.ts ***!
+ \***************/
+/*! no static exports found */
+/***/ (function(module, exports, __webpack_require__) {
+
+"use strict";
+eval("\nexports.__esModule = true;\n/// \n/// \n/// \nvar module_bg0 = __webpack_require__(/*! ./bg */ \"./bg.ts\");\nvar module_dn1 = __webpack_require__(/*! ./dn */ \"./dn.ts\");\nvar module_cb2 = __webpack_require__(/*! ./cb */ \"./cb.ts\");\nvar module_bz3 = __webpack_require__(/*! ./bz */ \"./bz.ts\");\nvar module_bh4 = __webpack_require__(/*! ./bh */ \"./bh.ts\");\nvar module_cy5 = __webpack_require__(/*! ./cy */ \"./cy.ts\");\nvar module_dr6 = __webpack_require__(/*! ./dr */ \"./dr.ts\");\nvar module_ch7 = __webpack_require__(/*! ./ch */ \"./ch.ts\");\nvar module_cu8 = __webpack_require__(/*! ./cu */ \"./cu.ts\");\nvar module_di9 = __webpack_require__(/*! ./di */ \"./di.ts\");\nJ.doSomething();\nS.doSomething();\nJ.doSomething();\nmodule_bg0.doSomething();\nmodule_dn1.doSomething();\nmodule_cb2.doSomething();\nmodule_bz3.doSomething();\nmodule_bh4.doSomething();\nmodule_cy5.doSomething();\nmodule_dr6.doSomething();\nmodule_ch7.doSomething();\nmodule_cu8.doSomething();\nmodule_di9.doSomething();\nfunction doSomething() { }\nexports.doSomething = doSomething;\n\n\n//# sourceURL=webpack:///./bc.ts?");
+
+/***/ }),
+
+/***/ "./bd.ts":
+/*!***************!*\
+ !*** ./bd.ts ***!
+ \***************/
+/*! no static exports found */
+/***/ (function(module, exports, __webpack_require__) {
+
+"use strict";
+eval("\nexports.__esModule = true;\n/// \n/// \n/// \nvar module_bt0 = __webpack_require__(/*! ./bt */ \"./bt.ts\");\nvar module_cb1 = __webpack_require__(/*! ./cb */ \"./cb.ts\");\nvar module_bu2 = __webpack_require__(/*! ./bu */ \"./bu.ts\");\nvar module_cr3 = __webpack_require__(/*! ./cr */ \"./cr.ts\");\nvar module_bw4 = __webpack_require__(/*! ./bw */ \"./bw.ts\");\nvar module_bl5 = __webpack_require__(/*! ./bl */ \"./bl.ts\");\nvar module_cl6 = __webpack_require__(/*! ./cl */ \"./cl.ts\");\nvar module_dn7 = __webpack_require__(/*! ./dn */ \"./dn.ts\");\nvar module_ci8 = __webpack_require__(/*! ./ci */ \"./ci.ts\");\nvar module_bk9 = __webpack_require__(/*! ./bk */ \"./bk.ts\");\nH.doSomething();\nN.doSomething();\nE.doSomething();\nmodule_bt0.doSomething();\nmodule_cb1.doSomething();\nmodule_bu2.doSomething();\nmodule_cr3.doSomething();\nmodule_bw4.doSomething();\nmodule_bl5.doSomething();\nmodule_cl6.doSomething();\nmodule_dn7.doSomething();\nmodule_ci8.doSomething();\nmodule_bk9.doSomething();\nfunction doSomething() { }\nexports.doSomething = doSomething;\n\n\n//# sourceURL=webpack:///./bd.ts?");
+
+/***/ }),
+
+/***/ "./be.ts":
+/*!***************!*\
+ !*** ./be.ts ***!
+ \***************/
+/*! no static exports found */
+/***/ (function(module, exports, __webpack_require__) {
+
+"use strict";
+eval("\nexports.__esModule = true;\n/// \n/// \n/// \nvar module_dt0 = __webpack_require__(/*! ./dt */ \"./dt.ts\");\nvar module_bj1 = __webpack_require__(/*! ./bj */ \"./bj.ts\");\nvar module_cp2 = __webpack_require__(/*! ./cp */ \"./cp.ts\");\nvar module_cc3 = __webpack_require__(/*! ./cc */ \"./cc.ts\");\nvar module_ct4 = __webpack_require__(/*! ./ct */ \"./ct.ts\");\nvar module_cz5 = __webpack_require__(/*! ./cz */ \"./cz.ts\");\nvar module_di6 = __webpack_require__(/*! ./di */ \"./di.ts\");\nvar module_bw7 = __webpack_require__(/*! ./bw */ \"./bw.ts\");\nvar module_cs8 = __webpack_require__(/*! ./cs */ \"./cs.ts\");\nvar module_de9 = __webpack_require__(/*! ./de */ \"./de.ts\");\nQ.doSomething();\nD.doSomething();\nA.doSomething();\nmodule_dt0.doSomething();\nmodule_bj1.doSomething();\nmodule_cp2.doSomething();\nmodule_cc3.doSomething();\nmodule_ct4.doSomething();\nmodule_cz5.doSomething();\nmodule_di6.doSomething();\nmodule_bw7.doSomething();\nmodule_cs8.doSomething();\nmodule_de9.doSomething();\nfunction doSomething() { }\nexports.doSomething = doSomething;\n\n\n//# sourceURL=webpack:///./be.ts?");
+
+/***/ }),
+
+/***/ "./bf.ts":
+/*!***************!*\
+ !*** ./bf.ts ***!
+ \***************/
+/*! no static exports found */
+/***/ (function(module, exports, __webpack_require__) {
+
+"use strict";
+eval("\nexports.__esModule = true;\n/// \n/// \n/// \nvar module_dg0 = __webpack_require__(/*! ./dg */ \"./dg.ts\");\nvar module_bh1 = __webpack_require__(/*! ./bh */ \"./bh.ts\");\nvar module_bp2 = __webpack_require__(/*! ./bp */ \"./bp.ts\");\nvar module_cr3 = __webpack_require__(/*! ./cr */ \"./cr.ts\");\nvar module_bx4 = __webpack_require__(/*! ./bx */ \"./bx.ts\");\nvar module_bl5 = __webpack_require__(/*! ./bl */ \"./bl.ts\");\nvar module_bw6 = __webpack_require__(/*! ./bw */ \"./bw.ts\");\nvar module_dl7 = __webpack_require__(/*! ./dl */ \"./dl.ts\");\nvar module_cg8 = __webpack_require__(/*! ./cg */ \"./cg.ts\");\nvar module_bx9 = __webpack_require__(/*! ./bx */ \"./bx.ts\");\nI.doSomething();\nJ.doSomething();\nJ.doSomething();\nmodule_dg0.doSomething();\nmodule_bh1.doSomething();\nmodule_bp2.doSomething();\nmodule_cr3.doSomething();\nmodule_bx4.doSomething();\nmodule_bl5.doSomething();\nmodule_bw6.doSomething();\nmodule_dl7.doSomething();\nmodule_cg8.doSomething();\nmodule_bx9.doSomething();\nfunction doSomething() { }\nexports.doSomething = doSomething;\n\n\n//# sourceURL=webpack:///./bf.ts?");
+
+/***/ }),
+
+/***/ "./bg.ts":
+/*!***************!*\
+ !*** ./bg.ts ***!
+ \***************/
+/*! no static exports found */
+/***/ (function(module, exports, __webpack_require__) {
+
+"use strict";
+eval("\nexports.__esModule = true;\n/// \n/// \n/// \nvar module_do0 = __webpack_require__(/*! ./do */ \"./do.ts\");\nvar module_dj1 = __webpack_require__(/*! ./dj */ \"./dj.ts\");\nvar module_ce2 = __webpack_require__(/*! ./ce */ \"./ce.ts\");\nvar module_bq3 = __webpack_require__(/*! ./bq */ \"./bq.ts\");\nvar module_cr4 = __webpack_require__(/*! ./cr */ \"./cr.ts\");\nvar module_dp5 = __webpack_require__(/*! ./dp */ \"./dp.ts\");\nvar module_cr6 = __webpack_require__(/*! ./cr */ \"./cr.ts\");\nvar module_bk7 = __webpack_require__(/*! ./bk */ \"./bk.ts\");\nvar module_ds8 = __webpack_require__(/*! ./ds */ \"./ds.ts\");\nvar module_ci9 = __webpack_require__(/*! ./ci */ \"./ci.ts\");\nM.doSomething();\nC.doSomething();\nM.doSomething();\nmodule_do0.doSomething();\nmodule_dj1.doSomething();\nmodule_ce2.doSomething();\nmodule_bq3.doSomething();\nmodule_cr4.doSomething();\nmodule_dp5.doSomething();\nmodule_cr6.doSomething();\nmodule_bk7.doSomething();\nmodule_ds8.doSomething();\nmodule_ci9.doSomething();\nfunction doSomething() { }\nexports.doSomething = doSomething;\n\n\n//# sourceURL=webpack:///./bg.ts?");
+
+/***/ }),
+
+/***/ "./bh.ts":
+/*!***************!*\
+ !*** ./bh.ts ***!
+ \***************/
+/*! no static exports found */
+/***/ (function(module, exports, __webpack_require__) {
+
+"use strict";
+eval("\nexports.__esModule = true;\n/// \n/// \n/// \nvar module_cn0 = __webpack_require__(/*! ./cn */ \"./cn.ts\");\nvar module_ci1 = __webpack_require__(/*! ./ci */ \"./ci.ts\");\nvar module_dq2 = __webpack_require__(/*! ./dq */ \"./dq.ts\");\nvar module_cy3 = __webpack_require__(/*! ./cy */ \"./cy.ts\");\nvar module_ck4 = __webpack_require__(/*! ./ck */ \"./ck.ts\");\nvar module_ca5 = __webpack_require__(/*! ./ca */ \"./ca.ts\");\nvar module_cb6 = __webpack_require__(/*! ./cb */ \"./cb.ts\");\nvar module_bl7 = __webpack_require__(/*! ./bl */ \"./bl.ts\");\nvar module_dc8 = __webpack_require__(/*! ./dc */ \"./dc.ts\");\nvar module_bi9 = __webpack_require__(/*! ./bi */ \"./bi.ts\");\nK.doSomething();\nN.doSomething();\nQ.doSomething();\nmodule_cn0.doSomething();\nmodule_ci1.doSomething();\nmodule_dq2.doSomething();\nmodule_cy3.doSomething();\nmodule_ck4.doSomething();\nmodule_ca5.doSomething();\nmodule_cb6.doSomething();\nmodule_bl7.doSomething();\nmodule_dc8.doSomething();\nmodule_bi9.doSomething();\nfunction doSomething() { }\nexports.doSomething = doSomething;\n\n\n//# sourceURL=webpack:///./bh.ts?");
+
+/***/ }),
+
+/***/ "./bi.ts":
+/*!***************!*\
+ !*** ./bi.ts ***!
+ \***************/
+/*! no static exports found */
+/***/ (function(module, exports, __webpack_require__) {
+
+"use strict";
+eval("\nexports.__esModule = true;\n/// \n/// \n/// \nvar module_ck0 = __webpack_require__(/*! ./ck */ \"./ck.ts\");\nvar module_dm1 = __webpack_require__(/*! ./dm */ \"./dm.ts\");\nvar module_de2 = __webpack_require__(/*! ./de */ \"./de.ts\");\nvar module_bx3 = __webpack_require__(/*! ./bx */ \"./bx.ts\");\nvar module_bt4 = __webpack_require__(/*! ./bt */ \"./bt.ts\");\nvar module_bu5 = __webpack_require__(/*! ./bu */ \"./bu.ts\");\nvar module_bw6 = __webpack_require__(/*! ./bw */ \"./bw.ts\");\nvar module_bn7 = __webpack_require__(/*! ./bn */ \"./bn.ts\");\nvar module_bm8 = __webpack_require__(/*! ./bm */ \"./bm.ts\");\nvar module_ci9 = __webpack_require__(/*! ./ci */ \"./ci.ts\");\nO.doSomething();\nD.doSomething();\nD.doSomething();\nmodule_ck0.doSomething();\nmodule_dm1.doSomething();\nmodule_de2.doSomething();\nmodule_bx3.doSomething();\nmodule_bt4.doSomething();\nmodule_bu5.doSomething();\nmodule_bw6.doSomething();\nmodule_bn7.doSomething();\nmodule_bm8.doSomething();\nmodule_ci9.doSomething();\nfunction doSomething() { }\nexports.doSomething = doSomething;\n\n\n//# sourceURL=webpack:///./bi.ts?");
+
+/***/ }),
+
+/***/ "./bj.ts":
+/*!***************!*\
+ !*** ./bj.ts ***!
+ \***************/
+/*! no static exports found */
+/***/ (function(module, exports, __webpack_require__) {
+
+"use strict";
+eval("\nexports.__esModule = true;\n/// \n/// \n/// \nvar module_cq0 = __webpack_require__(/*! ./cq */ \"./cq.ts\");\nvar module_cl1 = __webpack_require__(/*! ./cl */ \"./cl.ts\");\nvar module_bx2 = __webpack_require__(/*! ./bx */ \"./bx.ts\");\nvar module_do3 = __webpack_require__(/*! ./do */ \"./do.ts\");\nvar module_dc4 = __webpack_require__(/*! ./dc */ \"./dc.ts\");\nvar module_df5 = __webpack_require__(/*! ./df */ \"./df.ts\");\nvar module_de6 = __webpack_require__(/*! ./de */ \"./de.ts\");\nvar module_da7 = __webpack_require__(/*! ./da */ \"./da.ts\");\nvar module_dk8 = __webpack_require__(/*! ./dk */ \"./dk.ts\");\nvar module_cr9 = __webpack_require__(/*! ./cr */ \"./cr.ts\");\nJ.doSomething();\nO.doSomething();\nG.doSomething();\nmodule_cq0.doSomething();\nmodule_cl1.doSomething();\nmodule_bx2.doSomething();\nmodule_do3.doSomething();\nmodule_dc4.doSomething();\nmodule_df5.doSomething();\nmodule_de6.doSomething();\nmodule_da7.doSomething();\nmodule_dk8.doSomething();\nmodule_cr9.doSomething();\nfunction doSomething() { }\nexports.doSomething = doSomething;\n\n\n//# sourceURL=webpack:///./bj.ts?");
+
+/***/ }),
+
+/***/ "./bk.ts":
+/*!***************!*\
+ !*** ./bk.ts ***!
+ \***************/
+/*! no static exports found */
+/***/ (function(module, exports, __webpack_require__) {
+
+"use strict";
+eval("\nexports.__esModule = true;\n/// \n/// \n/// \nvar module_bx0 = __webpack_require__(/*! ./bx */ \"./bx.ts\");\nvar module_co1 = __webpack_require__(/*! ./co */ \"./co.ts\");\nvar module_dg2 = __webpack_require__(/*! ./dg */ \"./dg.ts\");\nvar module_cz3 = __webpack_require__(/*! ./cz */ \"./cz.ts\");\nvar module_dn4 = __webpack_require__(/*! ./dn */ \"./dn.ts\");\nvar module_bt5 = __webpack_require__(/*! ./bt */ \"./bt.ts\");\nvar module_ce6 = __webpack_require__(/*! ./ce */ \"./ce.ts\");\nvar module_dp7 = __webpack_require__(/*! ./dp */ \"./dp.ts\");\nvar module_bv8 = __webpack_require__(/*! ./bv */ \"./bv.ts\");\nvar module_dj9 = __webpack_require__(/*! ./dj */ \"./dj.ts\");\nA.doSomething();\nO.doSomething();\nN.doSomething();\nmodule_bx0.doSomething();\nmodule_co1.doSomething();\nmodule_dg2.doSomething();\nmodule_cz3.doSomething();\nmodule_dn4.doSomething();\nmodule_bt5.doSomething();\nmodule_ce6.doSomething();\nmodule_dp7.doSomething();\nmodule_bv8.doSomething();\nmodule_dj9.doSomething();\nfunction doSomething() { }\nexports.doSomething = doSomething;\n\n\n//# sourceURL=webpack:///./bk.ts?");
+
+/***/ }),
+
+/***/ "./bl.ts":
+/*!***************!*\
+ !*** ./bl.ts ***!
+ \***************/
+/*! no static exports found */
+/***/ (function(module, exports, __webpack_require__) {
+
+"use strict";
+eval("\nexports.__esModule = true;\n/// \n/// \n/// \nvar module_bw0 = __webpack_require__(/*! ./bw */ \"./bw.ts\");\nvar module_dn1 = __webpack_require__(/*! ./dn */ \"./dn.ts\");\nvar module_dn2 = __webpack_require__(/*! ./dn */ \"./dn.ts\");\nvar module_bx3 = __webpack_require__(/*! ./bx */ \"./bx.ts\");\nvar module_dp4 = __webpack_require__(/*! ./dp */ \"./dp.ts\");\nvar module_cy5 = __webpack_require__(/*! ./cy */ \"./cy.ts\");\nvar module_cs6 = __webpack_require__(/*! ./cs */ \"./cs.ts\");\nvar module_bo7 = __webpack_require__(/*! ./bo */ \"./bo.ts\");\nvar module_ca8 = __webpack_require__(/*! ./ca */ \"./ca.ts\");\nvar module_du9 = __webpack_require__(/*! ./du */ \"./du.ts\");\nM.doSomething();\nQ.doSomething();\nA.doSomething();\nmodule_bw0.doSomething();\nmodule_dn1.doSomething();\nmodule_dn2.doSomething();\nmodule_bx3.doSomething();\nmodule_dp4.doSomething();\nmodule_cy5.doSomething();\nmodule_cs6.doSomething();\nmodule_bo7.doSomething();\nmodule_ca8.doSomething();\nmodule_du9.doSomething();\nfunction doSomething() { }\nexports.doSomething = doSomething;\n\n\n//# sourceURL=webpack:///./bl.ts?");
+
+/***/ }),
+
+/***/ "./bm.ts":
+/*!***************!*\
+ !*** ./bm.ts ***!
+ \***************/
+/*! no static exports found */
+/***/ (function(module, exports, __webpack_require__) {
+
+"use strict";
+eval("\nexports.__esModule = true;\n/// \n/// \n/// \nvar module_cn0 = __webpack_require__(/*! ./cn */ \"./cn.ts\");\nvar module_dt1 = __webpack_require__(/*! ./dt */ \"./dt.ts\");\nvar module_ce2 = __webpack_require__(/*! ./ce */ \"./ce.ts\");\nvar module_ce3 = __webpack_require__(/*! ./ce */ \"./ce.ts\");\nvar module_dj4 = __webpack_require__(/*! ./dj */ \"./dj.ts\");\nvar module_cy5 = __webpack_require__(/*! ./cy */ \"./cy.ts\");\nvar module_cu6 = __webpack_require__(/*! ./cu */ \"./cu.ts\");\nvar module_cu7 = __webpack_require__(/*! ./cu */ \"./cu.ts\");\nvar module_bz8 = __webpack_require__(/*! ./bz */ \"./bz.ts\");\nvar module_dc9 = __webpack_require__(/*! ./dc */ \"./dc.ts\");\nN.doSomething();\nL.doSomething();\nD.doSomething();\nmodule_cn0.doSomething();\nmodule_dt1.doSomething();\nmodule_ce2.doSomething();\nmodule_ce3.doSomething();\nmodule_dj4.doSomething();\nmodule_cy5.doSomething();\nmodule_cu6.doSomething();\nmodule_cu7.doSomething();\nmodule_bz8.doSomething();\nmodule_dc9.doSomething();\nfunction doSomething() { }\nexports.doSomething = doSomething;\n\n\n//# sourceURL=webpack:///./bm.ts?");
+
+/***/ }),
+
+/***/ "./bn.ts":
+/*!***************!*\
+ !*** ./bn.ts ***!
+ \***************/
+/*! no static exports found */
+/***/ (function(module, exports, __webpack_require__) {
+
+"use strict";
+eval("\nexports.__esModule = true;\n/// \n/// \n/// \nvar module_de0 = __webpack_require__(/*! ./de */ \"./de.ts\");\nvar module_bz1 = __webpack_require__(/*! ./bz */ \"./bz.ts\");\nvar module_cw2 = __webpack_require__(/*! ./cw */ \"./cw.ts\");\nvar module_dq3 = __webpack_require__(/*! ./dq */ \"./dq.ts\");\nvar module_bq4 = __webpack_require__(/*! ./bq */ \"./bq.ts\");\nvar module_cf5 = __webpack_require__(/*! ./cf */ \"./cf.ts\");\nvar module_co6 = __webpack_require__(/*! ./co */ \"./co.ts\");\nvar module_dl7 = __webpack_require__(/*! ./dl */ \"./dl.ts\");\nvar module_cn8 = __webpack_require__(/*! ./cn */ \"./cn.ts\");\nvar module_bq9 = __webpack_require__(/*! ./bq */ \"./bq.ts\");\nD.doSomething();\nK.doSomething();\nF.doSomething();\nmodule_de0.doSomething();\nmodule_bz1.doSomething();\nmodule_cw2.doSomething();\nmodule_dq3.doSomething();\nmodule_bq4.doSomething();\nmodule_cf5.doSomething();\nmodule_co6.doSomething();\nmodule_dl7.doSomething();\nmodule_cn8.doSomething();\nmodule_bq9.doSomething();\nfunction doSomething() { }\nexports.doSomething = doSomething;\n\n\n//# sourceURL=webpack:///./bn.ts?");
+
+/***/ }),
+
+/***/ "./bo.ts":
+/*!***************!*\
+ !*** ./bo.ts ***!
+ \***************/
+/*! no static exports found */
+/***/ (function(module, exports, __webpack_require__) {
+
+"use strict";
+eval("\nexports.__esModule = true;\n/// \n/// \n/// \nvar module_dh0 = __webpack_require__(/*! ./dh */ \"./dh.ts\");\nvar module_cc1 = __webpack_require__(/*! ./cc */ \"./cc.ts\");\nvar module_bq2 = __webpack_require__(/*! ./bq */ \"./bq.ts\");\nvar module_cz3 = __webpack_require__(/*! ./cz */ \"./cz.ts\");\nvar module_cm4 = __webpack_require__(/*! ./cm */ \"./cm.ts\");\nvar module_df5 = __webpack_require__(/*! ./df */ \"./df.ts\");\nvar module_by6 = __webpack_require__(/*! ./by */ \"./by.ts\");\nvar module_bz7 = __webpack_require__(/*! ./bz */ \"./bz.ts\");\nvar module_dt8 = __webpack_require__(/*! ./dt */ \"./dt.ts\");\nvar module_cm9 = __webpack_require__(/*! ./cm */ \"./cm.ts\");\nG.doSomething();\nP.doSomething();\nP.doSomething();\nmodule_dh0.doSomething();\nmodule_cc1.doSomething();\nmodule_bq2.doSomething();\nmodule_cz3.doSomething();\nmodule_cm4.doSomething();\nmodule_df5.doSomething();\nmodule_by6.doSomething();\nmodule_bz7.doSomething();\nmodule_dt8.doSomething();\nmodule_cm9.doSomething();\nfunction doSomething() { }\nexports.doSomething = doSomething;\n\n\n//# sourceURL=webpack:///./bo.ts?");
+
+/***/ }),
+
+/***/ "./bp.ts":
+/*!***************!*\
+ !*** ./bp.ts ***!
+ \***************/
+/*! no static exports found */
+/***/ (function(module, exports, __webpack_require__) {
+
+"use strict";
+eval("\nexports.__esModule = true;\n/// \n/// \n/// \nvar module_ct0 = __webpack_require__(/*! ./ct */ \"./ct.ts\");\nvar module_dv1 = __webpack_require__(/*! ./dv */ \"./dv.ts\");\nvar module_cc2 = __webpack_require__(/*! ./cc */ \"./cc.ts\");\nvar module_bu3 = __webpack_require__(/*! ./bu */ \"./bu.ts\");\nvar module_cr4 = __webpack_require__(/*! ./cr */ \"./cr.ts\");\nvar module_dd5 = __webpack_require__(/*! ./dd */ \"./dd.ts\");\nvar module_du6 = __webpack_require__(/*! ./du */ \"./du.ts\");\nvar module_cw7 = __webpack_require__(/*! ./cw */ \"./cw.ts\");\nvar module_dv8 = __webpack_require__(/*! ./dv */ \"./dv.ts\");\nvar module_bz9 = __webpack_require__(/*! ./bz */ \"./bz.ts\");\nB.doSomething();\nO.doSomething();\nI.doSomething();\nmodule_ct0.doSomething();\nmodule_dv1.doSomething();\nmodule_cc2.doSomething();\nmodule_bu3.doSomething();\nmodule_cr4.doSomething();\nmodule_dd5.doSomething();\nmodule_du6.doSomething();\nmodule_cw7.doSomething();\nmodule_dv8.doSomething();\nmodule_bz9.doSomething();\nfunction doSomething() { }\nexports.doSomething = doSomething;\n\n\n//# sourceURL=webpack:///./bp.ts?");
+
+/***/ }),
+
+/***/ "./bq.ts":
+/*!***************!*\
+ !*** ./bq.ts ***!
+ \***************/
+/*! no static exports found */
+/***/ (function(module, exports, __webpack_require__) {
+
+"use strict";
+eval("\nexports.__esModule = true;\n/// \n/// \n/// \nvar module_ca0 = __webpack_require__(/*! ./ca */ \"./ca.ts\");\nvar module_cy1 = __webpack_require__(/*! ./cy */ \"./cy.ts\");\nvar module_by2 = __webpack_require__(/*! ./by */ \"./by.ts\");\nvar module_bv3 = __webpack_require__(/*! ./bv */ \"./bv.ts\");\nvar module_by4 = __webpack_require__(/*! ./by */ \"./by.ts\");\nvar module_dm5 = __webpack_require__(/*! ./dm */ \"./dm.ts\");\nvar module_cz6 = __webpack_require__(/*! ./cz */ \"./cz.ts\");\nvar module_db7 = __webpack_require__(/*! ./db */ \"./db.ts\");\nvar module_br8 = __webpack_require__(/*! ./br */ \"./br.ts\");\nvar module_bw9 = __webpack_require__(/*! ./bw */ \"./bw.ts\");\nN.doSomething();\nM.doSomething();\nM.doSomething();\nmodule_ca0.doSomething();\nmodule_cy1.doSomething();\nmodule_by2.doSomething();\nmodule_bv3.doSomething();\nmodule_by4.doSomething();\nmodule_dm5.doSomething();\nmodule_cz6.doSomething();\nmodule_db7.doSomething();\nmodule_br8.doSomething();\nmodule_bw9.doSomething();\nfunction doSomething() { }\nexports.doSomething = doSomething;\n\n\n//# sourceURL=webpack:///./bq.ts?");
+
+/***/ }),
+
+/***/ "./br.ts":
+/*!***************!*\
+ !*** ./br.ts ***!
+ \***************/
+/*! no static exports found */
+/***/ (function(module, exports, __webpack_require__) {
+
+"use strict";
+eval("\nexports.__esModule = true;\n/// \n/// \n/// \nvar module_bw0 = __webpack_require__(/*! ./bw */ \"./bw.ts\");\nvar module_cm1 = __webpack_require__(/*! ./cm */ \"./cm.ts\");\nvar module_bw2 = __webpack_require__(/*! ./bw */ \"./bw.ts\");\nvar module_dh3 = __webpack_require__(/*! ./dh */ \"./dh.ts\");\nvar module_ct4 = __webpack_require__(/*! ./ct */ \"./ct.ts\");\nvar module_cr5 = __webpack_require__(/*! ./cr */ \"./cr.ts\");\nvar module_dg6 = __webpack_require__(/*! ./dg */ \"./dg.ts\");\nvar module_ct7 = __webpack_require__(/*! ./ct */ \"./ct.ts\");\nvar module_db8 = __webpack_require__(/*! ./db */ \"./db.ts\");\nvar module_by9 = __webpack_require__(/*! ./by */ \"./by.ts\");\nD.doSomething();\nH.doSomething();\nP.doSomething();\nmodule_bw0.doSomething();\nmodule_cm1.doSomething();\nmodule_bw2.doSomething();\nmodule_dh3.doSomething();\nmodule_ct4.doSomething();\nmodule_cr5.doSomething();\nmodule_dg6.doSomething();\nmodule_ct7.doSomething();\nmodule_db8.doSomething();\nmodule_by9.doSomething();\nfunction doSomething() { }\nexports.doSomething = doSomething;\n\n\n//# sourceURL=webpack:///./br.ts?");
+
+/***/ }),
+
+/***/ "./bt.ts":
+/*!***************!*\
+ !*** ./bt.ts ***!
+ \***************/
+/*! no static exports found */
+/***/ (function(module, exports, __webpack_require__) {
+
+"use strict";
+eval("\nexports.__esModule = true;\n/// \n/// \n/// \nvar module_dm0 = __webpack_require__(/*! ./dm */ \"./dm.ts\");\nvar module_co1 = __webpack_require__(/*! ./co */ \"./co.ts\");\nvar module_da2 = __webpack_require__(/*! ./da */ \"./da.ts\");\nvar module_dc3 = __webpack_require__(/*! ./dc */ \"./dc.ts\");\nvar module_cx4 = __webpack_require__(/*! ./cx */ \"./cx.ts\");\nvar module_dl5 = __webpack_require__(/*! ./dl */ \"./dl.ts\");\nvar module_cs6 = __webpack_require__(/*! ./cs */ \"./cs.ts\");\nvar module_cy7 = __webpack_require__(/*! ./cy */ \"./cy.ts\");\nvar module_cq8 = __webpack_require__(/*! ./cq */ \"./cq.ts\");\nvar module_cg9 = __webpack_require__(/*! ./cg */ \"./cg.ts\");\nQ.doSomething();\nJ.doSomething();\nG.doSomething();\nmodule_dm0.doSomething();\nmodule_co1.doSomething();\nmodule_da2.doSomething();\nmodule_dc3.doSomething();\nmodule_cx4.doSomething();\nmodule_dl5.doSomething();\nmodule_cs6.doSomething();\nmodule_cy7.doSomething();\nmodule_cq8.doSomething();\nmodule_cg9.doSomething();\nfunction doSomething() { }\nexports.doSomething = doSomething;\n\n\n//# sourceURL=webpack:///./bt.ts?");
+
+/***/ }),
+
+/***/ "./bu.ts":
+/*!***************!*\
+ !*** ./bu.ts ***!
+ \***************/
+/*! no static exports found */
+/***/ (function(module, exports, __webpack_require__) {
+
+"use strict";
+eval("\nexports.__esModule = true;\n/// \n/// \n/// \nvar module_bx0 = __webpack_require__(/*! ./bx */ \"./bx.ts\");\nvar module_dk1 = __webpack_require__(/*! ./dk */ \"./dk.ts\");\nvar module_dn2 = __webpack_require__(/*! ./dn */ \"./dn.ts\");\nvar module_cf3 = __webpack_require__(/*! ./cf */ \"./cf.ts\");\nvar module_dd4 = __webpack_require__(/*! ./dd */ \"./dd.ts\");\nvar module_dd5 = __webpack_require__(/*! ./dd */ \"./dd.ts\");\nvar module_dl6 = __webpack_require__(/*! ./dl */ \"./dl.ts\");\nvar module_cj7 = __webpack_require__(/*! ./cj */ \"./cj.ts\");\nvar module_ce8 = __webpack_require__(/*! ./ce */ \"./ce.ts\");\nvar module_bz9 = __webpack_require__(/*! ./bz */ \"./bz.ts\");\nE.doSomething();\nQ.doSomething();\nE.doSomething();\nmodule_bx0.doSomething();\nmodule_dk1.doSomething();\nmodule_dn2.doSomething();\nmodule_cf3.doSomething();\nmodule_dd4.doSomething();\nmodule_dd5.doSomething();\nmodule_dl6.doSomething();\nmodule_cj7.doSomething();\nmodule_ce8.doSomething();\nmodule_bz9.doSomething();\nfunction doSomething() { }\nexports.doSomething = doSomething;\n\n\n//# sourceURL=webpack:///./bu.ts?");
+
+/***/ }),
+
+/***/ "./bv.ts":
+/*!***************!*\
+ !*** ./bv.ts ***!
+ \***************/
+/*! no static exports found */
+/***/ (function(module, exports, __webpack_require__) {
+
+"use strict";
+eval("\nexports.__esModule = true;\n/// \n/// \n/// \nvar module_dm0 = __webpack_require__(/*! ./dm */ \"./dm.ts\");\nvar module_cb1 = __webpack_require__(/*! ./cb */ \"./cb.ts\");\nvar module_bw2 = __webpack_require__(/*! ./bw */ \"./bw.ts\");\nvar module_ck3 = __webpack_require__(/*! ./ck */ \"./ck.ts\");\nvar module_cx4 = __webpack_require__(/*! ./cx */ \"./cx.ts\");\nvar module_dj5 = __webpack_require__(/*! ./dj */ \"./dj.ts\");\nvar module_db6 = __webpack_require__(/*! ./db */ \"./db.ts\");\nvar module_dc7 = __webpack_require__(/*! ./dc */ \"./dc.ts\");\nvar module_cx8 = __webpack_require__(/*! ./cx */ \"./cx.ts\");\nvar module_co9 = __webpack_require__(/*! ./co */ \"./co.ts\");\nG.doSomething();\nH.doSomething();\nA.doSomething();\nmodule_dm0.doSomething();\nmodule_cb1.doSomething();\nmodule_bw2.doSomething();\nmodule_ck3.doSomething();\nmodule_cx4.doSomething();\nmodule_dj5.doSomething();\nmodule_db6.doSomething();\nmodule_dc7.doSomething();\nmodule_cx8.doSomething();\nmodule_co9.doSomething();\nfunction doSomething() { }\nexports.doSomething = doSomething;\n\n\n//# sourceURL=webpack:///./bv.ts?");
+
+/***/ }),
+
+/***/ "./bw.ts":
+/*!***************!*\
+ !*** ./bw.ts ***!
+ \***************/
+/*! no static exports found */
+/***/ (function(module, exports, __webpack_require__) {
+
+"use strict";
+eval("\nexports.__esModule = true;\n/// \n/// \n/// \nvar module_cl0 = __webpack_require__(/*! ./cl */ \"./cl.ts\");\nvar module_co1 = __webpack_require__(/*! ./co */ \"./co.ts\");\nvar module_dm2 = __webpack_require__(/*! ./dm */ \"./dm.ts\");\nvar module_da3 = __webpack_require__(/*! ./da */ \"./da.ts\");\nvar module_dg4 = __webpack_require__(/*! ./dg */ \"./dg.ts\");\nvar module_dk5 = __webpack_require__(/*! ./dk */ \"./dk.ts\");\nvar module_cs6 = __webpack_require__(/*! ./cs */ \"./cs.ts\");\nvar module_cp7 = __webpack_require__(/*! ./cp */ \"./cp.ts\");\nvar module_cz8 = __webpack_require__(/*! ./cz */ \"./cz.ts\");\nvar module_cl9 = __webpack_require__(/*! ./cl */ \"./cl.ts\");\nD.doSomething();\nN.doSomething();\nK.doSomething();\nmodule_cl0.doSomething();\nmodule_co1.doSomething();\nmodule_dm2.doSomething();\nmodule_da3.doSomething();\nmodule_dg4.doSomething();\nmodule_dk5.doSomething();\nmodule_cs6.doSomething();\nmodule_cp7.doSomething();\nmodule_cz8.doSomething();\nmodule_cl9.doSomething();\nfunction doSomething() { }\nexports.doSomething = doSomething;\n\n\n//# sourceURL=webpack:///./bw.ts?");
+
+/***/ }),
+
+/***/ "./bx.ts":
+/*!***************!*\
+ !*** ./bx.ts ***!
+ \***************/
+/*! no static exports found */
+/***/ (function(module, exports, __webpack_require__) {
+
+"use strict";
+eval("\nexports.__esModule = true;\n/// \n/// \n/// \nvar module_cu0 = __webpack_require__(/*! ./cu */ \"./cu.ts\");\nvar module_cz1 = __webpack_require__(/*! ./cz */ \"./cz.ts\");\nvar module_dq2 = __webpack_require__(/*! ./dq */ \"./dq.ts\");\nvar module_dr3 = __webpack_require__(/*! ./dr */ \"./dr.ts\");\nvar module_cq4 = __webpack_require__(/*! ./cq */ \"./cq.ts\");\nvar module_du5 = __webpack_require__(/*! ./du */ \"./du.ts\");\nvar module_bz6 = __webpack_require__(/*! ./bz */ \"./bz.ts\");\nvar module_ci7 = __webpack_require__(/*! ./ci */ \"./ci.ts\");\nvar module_bz8 = __webpack_require__(/*! ./bz */ \"./bz.ts\");\nvar module_cy9 = __webpack_require__(/*! ./cy */ \"./cy.ts\");\nD.doSomething();\nF.doSomething();\nJ.doSomething();\nmodule_cu0.doSomething();\nmodule_cz1.doSomething();\nmodule_dq2.doSomething();\nmodule_dr3.doSomething();\nmodule_cq4.doSomething();\nmodule_du5.doSomething();\nmodule_bz6.doSomething();\nmodule_ci7.doSomething();\nmodule_bz8.doSomething();\nmodule_cy9.doSomething();\nfunction doSomething() { }\nexports.doSomething = doSomething;\n\n\n//# sourceURL=webpack:///./bx.ts?");
+
+/***/ }),
+
+/***/ "./by.ts":
+/*!***************!*\
+ !*** ./by.ts ***!
+ \***************/
+/*! no static exports found */
+/***/ (function(module, exports, __webpack_require__) {
+
+"use strict";
+eval("\nexports.__esModule = true;\n/// \n/// \n/// \nvar module_ca0 = __webpack_require__(/*! ./ca */ \"./ca.ts\");\nvar module_da1 = __webpack_require__(/*! ./da */ \"./da.ts\");\nvar module_cs2 = __webpack_require__(/*! ./cs */ \"./cs.ts\");\nvar module_ci3 = __webpack_require__(/*! ./ci */ \"./ci.ts\");\nvar module_dd4 = __webpack_require__(/*! ./dd */ \"./dd.ts\");\nvar module_cg5 = __webpack_require__(/*! ./cg */ \"./cg.ts\");\nvar module_cp6 = __webpack_require__(/*! ./cp */ \"./cp.ts\");\nvar module_dh7 = __webpack_require__(/*! ./dh */ \"./dh.ts\");\nvar module_cg8 = __webpack_require__(/*! ./cg */ \"./cg.ts\");\nvar module_df9 = __webpack_require__(/*! ./df */ \"./df.ts\");\nD.doSomething();\nG.doSomething();\nR.doSomething();\nmodule_ca0.doSomething();\nmodule_da1.doSomething();\nmodule_cs2.doSomething();\nmodule_ci3.doSomething();\nmodule_dd4.doSomething();\nmodule_cg5.doSomething();\nmodule_cp6.doSomething();\nmodule_dh7.doSomething();\nmodule_cg8.doSomething();\nmodule_df9.doSomething();\nfunction doSomething() { }\nexports.doSomething = doSomething;\n\n\n//# sourceURL=webpack:///./by.ts?");
+
+/***/ }),
+
+/***/ "./bz.ts":
+/*!***************!*\
+ !*** ./bz.ts ***!
+ \***************/
+/*! no static exports found */
+/***/ (function(module, exports, __webpack_require__) {
+
+"use strict";
+eval("\nexports.__esModule = true;\n/// \n/// \n/// \nvar module_cd0 = __webpack_require__(/*! ./cd */ \"./cd.ts\");\nvar module_du1 = __webpack_require__(/*! ./du */ \"./du.ts\");\nvar module_de2 = __webpack_require__(/*! ./de */ \"./de.ts\");\nvar module_cw3 = __webpack_require__(/*! ./cw */ \"./cw.ts\");\nvar module_cj4 = __webpack_require__(/*! ./cj */ \"./cj.ts\");\nvar module_dq5 = __webpack_require__(/*! ./dq */ \"./dq.ts\");\nvar module_do6 = __webpack_require__(/*! ./do */ \"./do.ts\");\nvar module_di7 = __webpack_require__(/*! ./di */ \"./di.ts\");\nvar module_cn8 = __webpack_require__(/*! ./cn */ \"./cn.ts\");\nvar module_df9 = __webpack_require__(/*! ./df */ \"./df.ts\");\nR.doSomething();\nF.doSomething();\nL.doSomething();\nmodule_cd0.doSomething();\nmodule_du1.doSomething();\nmodule_de2.doSomething();\nmodule_cw3.doSomething();\nmodule_cj4.doSomething();\nmodule_dq5.doSomething();\nmodule_do6.doSomething();\nmodule_di7.doSomething();\nmodule_cn8.doSomething();\nmodule_df9.doSomething();\nfunction doSomething() { }\nexports.doSomething = doSomething;\n\n\n//# sourceURL=webpack:///./bz.ts?");
+
+/***/ }),
+
+/***/ "./ca.ts":
+/*!***************!*\
+ !*** ./ca.ts ***!
+ \***************/
+/*! no static exports found */
+/***/ (function(module, exports, __webpack_require__) {
+
+"use strict";
+eval("\nexports.__esModule = true;\n/// \n/// \n/// \nvar module_cu0 = __webpack_require__(/*! ./cu */ \"./cu.ts\");\nvar module_dq1 = __webpack_require__(/*! ./dq */ \"./dq.ts\");\nvar module_cs2 = __webpack_require__(/*! ./cs */ \"./cs.ts\");\nvar module_ce3 = __webpack_require__(/*! ./ce */ \"./ce.ts\");\nvar module_dm4 = __webpack_require__(/*! ./dm */ \"./dm.ts\");\nvar module_cg5 = __webpack_require__(/*! ./cg */ \"./cg.ts\");\nvar module_cc6 = __webpack_require__(/*! ./cc */ \"./cc.ts\");\nvar module_dq7 = __webpack_require__(/*! ./dq */ \"./dq.ts\");\nvar module_dr8 = __webpack_require__(/*! ./dr */ \"./dr.ts\");\nvar module_cg9 = __webpack_require__(/*! ./cg */ \"./cg.ts\");\nR.doSomething();\nE.doSomething();\nS.doSomething();\nmodule_cu0.doSomething();\nmodule_dq1.doSomething();\nmodule_cs2.doSomething();\nmodule_ce3.doSomething();\nmodule_dm4.doSomething();\nmodule_cg5.doSomething();\nmodule_cc6.doSomething();\nmodule_dq7.doSomething();\nmodule_dr8.doSomething();\nmodule_cg9.doSomething();\nfunction doSomething() { }\nexports.doSomething = doSomething;\n\n\n//# sourceURL=webpack:///./ca.ts?");
+
+/***/ }),
+
+/***/ "./cb.ts":
+/*!***************!*\
+ !*** ./cb.ts ***!
+ \***************/
+/*! no static exports found */
+/***/ (function(module, exports, __webpack_require__) {
+
+"use strict";
+eval("\nexports.__esModule = true;\n/// \n/// \n/// \nvar module_dn0 = __webpack_require__(/*! ./dn */ \"./dn.ts\");\nvar module_cw1 = __webpack_require__(/*! ./cw */ \"./cw.ts\");\nvar module_dg2 = __webpack_require__(/*! ./dg */ \"./dg.ts\");\nvar module_cc3 = __webpack_require__(/*! ./cc */ \"./cc.ts\");\nvar module_dq4 = __webpack_require__(/*! ./dq */ \"./dq.ts\");\nvar module_cm5 = __webpack_require__(/*! ./cm */ \"./cm.ts\");\nvar module_dr6 = __webpack_require__(/*! ./dr */ \"./dr.ts\");\nvar module_di7 = __webpack_require__(/*! ./di */ \"./di.ts\");\nvar module_co8 = __webpack_require__(/*! ./co */ \"./co.ts\");\nvar module_cr9 = __webpack_require__(/*! ./cr */ \"./cr.ts\");\nP.doSomething();\nQ.doSomething();\nF.doSomething();\nmodule_dn0.doSomething();\nmodule_cw1.doSomething();\nmodule_dg2.doSomething();\nmodule_cc3.doSomething();\nmodule_dq4.doSomething();\nmodule_cm5.doSomething();\nmodule_dr6.doSomething();\nmodule_di7.doSomething();\nmodule_co8.doSomething();\nmodule_cr9.doSomething();\nfunction doSomething() { }\nexports.doSomething = doSomething;\n\n\n//# sourceURL=webpack:///./cb.ts?");
+
+/***/ }),
+
+/***/ "./cc.ts":
+/*!***************!*\
+ !*** ./cc.ts ***!
+ \***************/
+/*! no static exports found */
+/***/ (function(module, exports, __webpack_require__) {
+
+"use strict";
+eval("\nexports.__esModule = true;\n/// \n/// \n/// \nvar module_df0 = __webpack_require__(/*! ./df */ \"./df.ts\");\nvar module_cm1 = __webpack_require__(/*! ./cm */ \"./cm.ts\");\nvar module_dl2 = __webpack_require__(/*! ./dl */ \"./dl.ts\");\nvar module_de3 = __webpack_require__(/*! ./de */ \"./de.ts\");\nvar module_de4 = __webpack_require__(/*! ./de */ \"./de.ts\");\nvar module_ce5 = __webpack_require__(/*! ./ce */ \"./ce.ts\");\nvar module_dj6 = __webpack_require__(/*! ./dj */ \"./dj.ts\");\nvar module_de7 = __webpack_require__(/*! ./de */ \"./de.ts\");\nvar module_dd8 = __webpack_require__(/*! ./dd */ \"./dd.ts\");\nvar module_ds9 = __webpack_require__(/*! ./ds */ \"./ds.ts\");\nL.doSomething();\nO.doSomething();\nI.doSomething();\nmodule_df0.doSomething();\nmodule_cm1.doSomething();\nmodule_dl2.doSomething();\nmodule_de3.doSomething();\nmodule_de4.doSomething();\nmodule_ce5.doSomething();\nmodule_dj6.doSomething();\nmodule_de7.doSomething();\nmodule_dd8.doSomething();\nmodule_ds9.doSomething();\nfunction doSomething() { }\nexports.doSomething = doSomething;\n\n\n//# sourceURL=webpack:///./cc.ts?");
+
+/***/ }),
+
+/***/ "./cd.ts":
+/*!***************!*\
+ !*** ./cd.ts ***!
+ \***************/
+/*! no static exports found */
+/***/ (function(module, exports, __webpack_require__) {
+
+"use strict";
+eval("\nexports.__esModule = true;\n/// \n/// \n/// \nvar module_df0 = __webpack_require__(/*! ./df */ \"./df.ts\");\nvar module_cq1 = __webpack_require__(/*! ./cq */ \"./cq.ts\");\nvar module_ci2 = __webpack_require__(/*! ./ci */ \"./ci.ts\");\nvar module_dm3 = __webpack_require__(/*! ./dm */ \"./dm.ts\");\nvar module_cn4 = __webpack_require__(/*! ./cn */ \"./cn.ts\");\nvar module_ck5 = __webpack_require__(/*! ./ck */ \"./ck.ts\");\nvar module_cw6 = __webpack_require__(/*! ./cw */ \"./cw.ts\");\nvar module_cv7 = __webpack_require__(/*! ./cv */ \"./cv.ts\");\nvar module_dp8 = __webpack_require__(/*! ./dp */ \"./dp.ts\");\nvar module_db9 = __webpack_require__(/*! ./db */ \"./db.ts\");\nI.doSomething();\nG.doSomething();\nJ.doSomething();\nmodule_df0.doSomething();\nmodule_cq1.doSomething();\nmodule_ci2.doSomething();\nmodule_dm3.doSomething();\nmodule_cn4.doSomething();\nmodule_ck5.doSomething();\nmodule_cw6.doSomething();\nmodule_cv7.doSomething();\nmodule_dp8.doSomething();\nmodule_db9.doSomething();\nfunction doSomething() { }\nexports.doSomething = doSomething;\n\n\n//# sourceURL=webpack:///./cd.ts?");
+
+/***/ }),
+
+/***/ "./ce.ts":
+/*!***************!*\
+ !*** ./ce.ts ***!
+ \***************/
+/*! no static exports found */
+/***/ (function(module, exports, __webpack_require__) {
+
+"use strict";
+eval("\nexports.__esModule = true;\n/// \n/// \n/// \nvar module_dr0 = __webpack_require__(/*! ./dr */ \"./dr.ts\");\nvar module_cz1 = __webpack_require__(/*! ./cz */ \"./cz.ts\");\nvar module_cz2 = __webpack_require__(/*! ./cz */ \"./cz.ts\");\nvar module_ci3 = __webpack_require__(/*! ./ci */ \"./ci.ts\");\nvar module_du4 = __webpack_require__(/*! ./du */ \"./du.ts\");\nvar module_de5 = __webpack_require__(/*! ./de */ \"./de.ts\");\nvar module_cz6 = __webpack_require__(/*! ./cz */ \"./cz.ts\");\nvar module_co7 = __webpack_require__(/*! ./co */ \"./co.ts\");\nvar module_dm8 = __webpack_require__(/*! ./dm */ \"./dm.ts\");\nvar module_cm9 = __webpack_require__(/*! ./cm */ \"./cm.ts\");\nH.doSomething();\nN.doSomething();\nE.doSomething();\nmodule_dr0.doSomething();\nmodule_cz1.doSomething();\nmodule_cz2.doSomething();\nmodule_ci3.doSomething();\nmodule_du4.doSomething();\nmodule_de5.doSomething();\nmodule_cz6.doSomething();\nmodule_co7.doSomething();\nmodule_dm8.doSomething();\nmodule_cm9.doSomething();\nfunction doSomething() { }\nexports.doSomething = doSomething;\n\n\n//# sourceURL=webpack:///./ce.ts?");
+
+/***/ }),
+
+/***/ "./cf.ts":
+/*!***************!*\
+ !*** ./cf.ts ***!
+ \***************/
+/*! no static exports found */
+/***/ (function(module, exports, __webpack_require__) {
+
+"use strict";
+eval("\nexports.__esModule = true;\n/// \n/// \n/// \nvar module_dg0 = __webpack_require__(/*! ./dg */ \"./dg.ts\");\nvar module_cl1 = __webpack_require__(/*! ./cl */ \"./cl.ts\");\nvar module_cj2 = __webpack_require__(/*! ./cj */ \"./cj.ts\");\nvar module_cq3 = __webpack_require__(/*! ./cq */ \"./cq.ts\");\nvar module_ck4 = __webpack_require__(/*! ./ck */ \"./ck.ts\");\nvar module_dk5 = __webpack_require__(/*! ./dk */ \"./dk.ts\");\nvar module_cn6 = __webpack_require__(/*! ./cn */ \"./cn.ts\");\nvar module_dc7 = __webpack_require__(/*! ./dc */ \"./dc.ts\");\nvar module_de8 = __webpack_require__(/*! ./de */ \"./de.ts\");\nvar module_dg9 = __webpack_require__(/*! ./dg */ \"./dg.ts\");\nP.doSomething();\nC.doSomething();\nG.doSomething();\nmodule_dg0.doSomething();\nmodule_cl1.doSomething();\nmodule_cj2.doSomething();\nmodule_cq3.doSomething();\nmodule_ck4.doSomething();\nmodule_dk5.doSomething();\nmodule_cn6.doSomething();\nmodule_dc7.doSomething();\nmodule_de8.doSomething();\nmodule_dg9.doSomething();\nfunction doSomething() { }\nexports.doSomething = doSomething;\n\n\n//# sourceURL=webpack:///./cf.ts?");
+
+/***/ }),
+
+/***/ "./cg.ts":
+/*!***************!*\
+ !*** ./cg.ts ***!
+ \***************/
+/*! no static exports found */
+/***/ (function(module, exports, __webpack_require__) {
+
+"use strict";
+eval("\nexports.__esModule = true;\n/// \n/// \n/// \nvar module_cj0 = __webpack_require__(/*! ./cj */ \"./cj.ts\");\nvar module_dh1 = __webpack_require__(/*! ./dh */ \"./dh.ts\");\nvar module_dp2 = __webpack_require__(/*! ./dp */ \"./dp.ts\");\nvar module_dl3 = __webpack_require__(/*! ./dl */ \"./dl.ts\");\nvar module_co4 = __webpack_require__(/*! ./co */ \"./co.ts\");\nvar module_dj5 = __webpack_require__(/*! ./dj */ \"./dj.ts\");\nvar module_df6 = __webpack_require__(/*! ./df */ \"./df.ts\");\nvar module_cz7 = __webpack_require__(/*! ./cz */ \"./cz.ts\");\nvar module_ch8 = __webpack_require__(/*! ./ch */ \"./ch.ts\");\nvar module_co9 = __webpack_require__(/*! ./co */ \"./co.ts\");\nH.doSomething();\nM.doSomething();\nC.doSomething();\nmodule_cj0.doSomething();\nmodule_dh1.doSomething();\nmodule_dp2.doSomething();\nmodule_dl3.doSomething();\nmodule_co4.doSomething();\nmodule_dj5.doSomething();\nmodule_df6.doSomething();\nmodule_cz7.doSomething();\nmodule_ch8.doSomething();\nmodule_co9.doSomething();\nfunction doSomething() { }\nexports.doSomething = doSomething;\n\n\n//# sourceURL=webpack:///./cg.ts?");
+
+/***/ }),
+
+/***/ "./ch.ts":
+/*!***************!*\
+ !*** ./ch.ts ***!
+ \***************/
+/*! no static exports found */
+/***/ (function(module, exports, __webpack_require__) {
+
+"use strict";
+eval("\nexports.__esModule = true;\n/// \n/// \n/// \nvar module_di0 = __webpack_require__(/*! ./di */ \"./di.ts\");\nvar module_df1 = __webpack_require__(/*! ./df */ \"./df.ts\");\nvar module_co2 = __webpack_require__(/*! ./co */ \"./co.ts\");\nvar module_db3 = __webpack_require__(/*! ./db */ \"./db.ts\");\nvar module_dt4 = __webpack_require__(/*! ./dt */ \"./dt.ts\");\nvar module_dr5 = __webpack_require__(/*! ./dr */ \"./dr.ts\");\nvar module_db6 = __webpack_require__(/*! ./db */ \"./db.ts\");\nvar module_dv7 = __webpack_require__(/*! ./dv */ \"./dv.ts\");\nvar module_dm8 = __webpack_require__(/*! ./dm */ \"./dm.ts\");\nvar module_ct9 = __webpack_require__(/*! ./ct */ \"./ct.ts\");\nP.doSomething();\nS.doSomething();\nG.doSomething();\nmodule_di0.doSomething();\nmodule_df1.doSomething();\nmodule_co2.doSomething();\nmodule_db3.doSomething();\nmodule_dt4.doSomething();\nmodule_dr5.doSomething();\nmodule_db6.doSomething();\nmodule_dv7.doSomething();\nmodule_dm8.doSomething();\nmodule_ct9.doSomething();\nfunction doSomething() { }\nexports.doSomething = doSomething;\n\n\n//# sourceURL=webpack:///./ch.ts?");
+
+/***/ }),
+
+/***/ "./ci.ts":
+/*!***************!*\
+ !*** ./ci.ts ***!
+ \***************/
+/*! no static exports found */
+/***/ (function(module, exports, __webpack_require__) {
+
+"use strict";
+eval("\nexports.__esModule = true;\n/// \n/// \n/// \nvar module_dh0 = __webpack_require__(/*! ./dh */ \"./dh.ts\");\nvar module_dl1 = __webpack_require__(/*! ./dl */ \"./dl.ts\");\nvar module_df2 = __webpack_require__(/*! ./df */ \"./df.ts\");\nvar module_cq3 = __webpack_require__(/*! ./cq */ \"./cq.ts\");\nvar module_ct4 = __webpack_require__(/*! ./ct */ \"./ct.ts\");\nvar module_cv5 = __webpack_require__(/*! ./cv */ \"./cv.ts\");\nvar module_ck6 = __webpack_require__(/*! ./ck */ \"./ck.ts\");\nvar module_df7 = __webpack_require__(/*! ./df */ \"./df.ts\");\nvar module_dq8 = __webpack_require__(/*! ./dq */ \"./dq.ts\");\nvar module_do9 = __webpack_require__(/*! ./do */ \"./do.ts\");\nH.doSomething();\nN.doSomething();\nQ.doSomething();\nmodule_dh0.doSomething();\nmodule_dl1.doSomething();\nmodule_df2.doSomething();\nmodule_cq3.doSomething();\nmodule_ct4.doSomething();\nmodule_cv5.doSomething();\nmodule_ck6.doSomething();\nmodule_df7.doSomething();\nmodule_dq8.doSomething();\nmodule_do9.doSomething();\nfunction doSomething() { }\nexports.doSomething = doSomething;\n\n\n//# sourceURL=webpack:///./ci.ts?");
+
+/***/ }),
+
+/***/ "./cj.ts":
+/*!***************!*\
+ !*** ./cj.ts ***!
+ \***************/
+/*! no static exports found */
+/***/ (function(module, exports, __webpack_require__) {
+
+"use strict";
+eval("\nexports.__esModule = true;\n/// \n/// \n/// \nvar module_cq0 = __webpack_require__(/*! ./cq */ \"./cq.ts\");\nvar module_dg1 = __webpack_require__(/*! ./dg */ \"./dg.ts\");\nvar module_ck2 = __webpack_require__(/*! ./ck */ \"./ck.ts\");\nvar module_dk3 = __webpack_require__(/*! ./dk */ \"./dk.ts\");\nvar module_cu4 = __webpack_require__(/*! ./cu */ \"./cu.ts\");\nvar module_du5 = __webpack_require__(/*! ./du */ \"./du.ts\");\nvar module_cy6 = __webpack_require__(/*! ./cy */ \"./cy.ts\");\nvar module_cm7 = __webpack_require__(/*! ./cm */ \"./cm.ts\");\nvar module_cm8 = __webpack_require__(/*! ./cm */ \"./cm.ts\");\nvar module_dn9 = __webpack_require__(/*! ./dn */ \"./dn.ts\");\nJ.doSomething();\nN.doSomething();\nD.doSomething();\nmodule_cq0.doSomething();\nmodule_dg1.doSomething();\nmodule_ck2.doSomething();\nmodule_dk3.doSomething();\nmodule_cu4.doSomething();\nmodule_du5.doSomething();\nmodule_cy6.doSomething();\nmodule_cm7.doSomething();\nmodule_cm8.doSomething();\nmodule_dn9.doSomething();\nfunction doSomething() { }\nexports.doSomething = doSomething;\n\n\n//# sourceURL=webpack:///./cj.ts?");
+
+/***/ }),
+
+/***/ "./ck.ts":
+/*!***************!*\
+ !*** ./ck.ts ***!
+ \***************/
+/*! no static exports found */
+/***/ (function(module, exports, __webpack_require__) {
+
+"use strict";
+eval("\nexports.__esModule = true;\n/// \n/// \n/// \nvar module_dq0 = __webpack_require__(/*! ./dq */ \"./dq.ts\");\nvar module_do1 = __webpack_require__(/*! ./do */ \"./do.ts\");\nvar module_cx2 = __webpack_require__(/*! ./cx */ \"./cx.ts\");\nvar module_da3 = __webpack_require__(/*! ./da */ \"./da.ts\");\nvar module_cs4 = __webpack_require__(/*! ./cs */ \"./cs.ts\");\nvar module_dd5 = __webpack_require__(/*! ./dd */ \"./dd.ts\");\nvar module_dv6 = __webpack_require__(/*! ./dv */ \"./dv.ts\");\nvar module_da7 = __webpack_require__(/*! ./da */ \"./da.ts\");\nvar module_da8 = __webpack_require__(/*! ./da */ \"./da.ts\");\nvar module_cn9 = __webpack_require__(/*! ./cn */ \"./cn.ts\");\nK.doSomething();\nN.doSomething();\nT.doSomething();\nmodule_dq0.doSomething();\nmodule_do1.doSomething();\nmodule_cx2.doSomething();\nmodule_da3.doSomething();\nmodule_cs4.doSomething();\nmodule_dd5.doSomething();\nmodule_dv6.doSomething();\nmodule_da7.doSomething();\nmodule_da8.doSomething();\nmodule_cn9.doSomething();\nfunction doSomething() { }\nexports.doSomething = doSomething;\n\n\n//# sourceURL=webpack:///./ck.ts?");
+
+/***/ }),
+
+/***/ "./cl.ts":
+/*!***************!*\
+ !*** ./cl.ts ***!
+ \***************/
+/*! no static exports found */
+/***/ (function(module, exports, __webpack_require__) {
+
+"use strict";
+eval("\nexports.__esModule = true;\n/// \n/// \n/// \nvar module_do0 = __webpack_require__(/*! ./do */ \"./do.ts\");\nvar module_cs1 = __webpack_require__(/*! ./cs */ \"./cs.ts\");\nvar module_cr2 = __webpack_require__(/*! ./cr */ \"./cr.ts\");\nvar module_cn3 = __webpack_require__(/*! ./cn */ \"./cn.ts\");\nvar module_dh4 = __webpack_require__(/*! ./dh */ \"./dh.ts\");\nvar module_dh5 = __webpack_require__(/*! ./dh */ \"./dh.ts\");\nvar module_de6 = __webpack_require__(/*! ./de */ \"./de.ts\");\nvar module_dh7 = __webpack_require__(/*! ./dh */ \"./dh.ts\");\nvar module_cq8 = __webpack_require__(/*! ./cq */ \"./cq.ts\");\nvar module_dh9 = __webpack_require__(/*! ./dh */ \"./dh.ts\");\nT.doSomething();\nD.doSomething();\nG.doSomething();\nmodule_do0.doSomething();\nmodule_cs1.doSomething();\nmodule_cr2.doSomething();\nmodule_cn3.doSomething();\nmodule_dh4.doSomething();\nmodule_dh5.doSomething();\nmodule_de6.doSomething();\nmodule_dh7.doSomething();\nmodule_cq8.doSomething();\nmodule_dh9.doSomething();\nfunction doSomething() { }\nexports.doSomething = doSomething;\n\n\n//# sourceURL=webpack:///./cl.ts?");
+
+/***/ }),
+
+/***/ "./cm.ts":
+/*!***************!*\
+ !*** ./cm.ts ***!
+ \***************/
+/*! no static exports found */
+/***/ (function(module, exports, __webpack_require__) {
+
+"use strict";
+eval("\nexports.__esModule = true;\n/// \n/// \n/// \nvar module_dd0 = __webpack_require__(/*! ./dd */ \"./dd.ts\");\nvar module_dc1 = __webpack_require__(/*! ./dc */ \"./dc.ts\");\nvar module_du2 = __webpack_require__(/*! ./du */ \"./du.ts\");\nvar module_dk3 = __webpack_require__(/*! ./dk */ \"./dk.ts\");\nvar module_dm4 = __webpack_require__(/*! ./dm */ \"./dm.ts\");\nvar module_cy5 = __webpack_require__(/*! ./cy */ \"./cy.ts\");\nvar module_dc6 = __webpack_require__(/*! ./dc */ \"./dc.ts\");\nvar module_du7 = __webpack_require__(/*! ./du */ \"./du.ts\");\nvar module_du8 = __webpack_require__(/*! ./du */ \"./du.ts\");\nvar module_cq9 = __webpack_require__(/*! ./cq */ \"./cq.ts\");\nI.doSomething();\nB.doSomething();\nB.doSomething();\nmodule_dd0.doSomething();\nmodule_dc1.doSomething();\nmodule_du2.doSomething();\nmodule_dk3.doSomething();\nmodule_dm4.doSomething();\nmodule_cy5.doSomething();\nmodule_dc6.doSomething();\nmodule_du7.doSomething();\nmodule_du8.doSomething();\nmodule_cq9.doSomething();\nfunction doSomething() { }\nexports.doSomething = doSomething;\n\n\n//# sourceURL=webpack:///./cm.ts?");
+
+/***/ }),
+
+/***/ "./cn.ts":
+/*!***************!*\
+ !*** ./cn.ts ***!
+ \***************/
+/*! no static exports found */
+/***/ (function(module, exports, __webpack_require__) {
+
+"use strict";
+eval("\nexports.__esModule = true;\n/// \n/// \n/// \nvar module_cv0 = __webpack_require__(/*! ./cv */ \"./cv.ts\");\nvar module_cx1 = __webpack_require__(/*! ./cx */ \"./cx.ts\");\nvar module_ct2 = __webpack_require__(/*! ./ct */ \"./ct.ts\");\nvar module_dh3 = __webpack_require__(/*! ./dh */ \"./dh.ts\");\nvar module_dh4 = __webpack_require__(/*! ./dh */ \"./dh.ts\");\nvar module_cy5 = __webpack_require__(/*! ./cy */ \"./cy.ts\");\nvar module_dv6 = __webpack_require__(/*! ./dv */ \"./dv.ts\");\nvar module_dn7 = __webpack_require__(/*! ./dn */ \"./dn.ts\");\nvar module_du8 = __webpack_require__(/*! ./du */ \"./du.ts\");\nvar module_cr9 = __webpack_require__(/*! ./cr */ \"./cr.ts\");\nF.doSomething();\nB.doSomething();\nB.doSomething();\nmodule_cv0.doSomething();\nmodule_cx1.doSomething();\nmodule_ct2.doSomething();\nmodule_dh3.doSomething();\nmodule_dh4.doSomething();\nmodule_cy5.doSomething();\nmodule_dv6.doSomething();\nmodule_dn7.doSomething();\nmodule_du8.doSomething();\nmodule_cr9.doSomething();\nfunction doSomething() { }\nexports.doSomething = doSomething;\n\n\n//# sourceURL=webpack:///./cn.ts?");
+
+/***/ }),
+
+/***/ "./co.ts":
+/*!***************!*\
+ !*** ./co.ts ***!
+ \***************/
+/*! no static exports found */
+/***/ (function(module, exports, __webpack_require__) {
+
+"use strict";
+eval("\nexports.__esModule = true;\n/// \n/// \n/// \nvar module_dc0 = __webpack_require__(/*! ./dc */ \"./dc.ts\");\nvar module_dk1 = __webpack_require__(/*! ./dk */ \"./dk.ts\");\nvar module_cv2 = __webpack_require__(/*! ./cv */ \"./cv.ts\");\nvar module_di3 = __webpack_require__(/*! ./di */ \"./di.ts\");\nvar module_dd4 = __webpack_require__(/*! ./dd */ \"./dd.ts\");\nvar module_cs5 = __webpack_require__(/*! ./cs */ \"./cs.ts\");\nvar module_di6 = __webpack_require__(/*! ./di */ \"./di.ts\");\nvar module_dv7 = __webpack_require__(/*! ./dv */ \"./dv.ts\");\nvar module_dk8 = __webpack_require__(/*! ./dk */ \"./dk.ts\");\nvar module_df9 = __webpack_require__(/*! ./df */ \"./df.ts\");\nH.doSomething();\nN.doSomething();\nB.doSomething();\nmodule_dc0.doSomething();\nmodule_dk1.doSomething();\nmodule_cv2.doSomething();\nmodule_di3.doSomething();\nmodule_dd4.doSomething();\nmodule_cs5.doSomething();\nmodule_di6.doSomething();\nmodule_dv7.doSomething();\nmodule_dk8.doSomething();\nmodule_df9.doSomething();\nfunction doSomething() { }\nexports.doSomething = doSomething;\n\n\n//# sourceURL=webpack:///./co.ts?");
+
+/***/ }),
+
+/***/ "./cp.ts":
+/*!***************!*\
+ !*** ./cp.ts ***!
+ \***************/
+/*! no static exports found */
+/***/ (function(module, exports, __webpack_require__) {
+
+"use strict";
+eval("\nexports.__esModule = true;\n/// \n/// \n/// \nvar module_dt0 = __webpack_require__(/*! ./dt */ \"./dt.ts\");\nvar module_dc1 = __webpack_require__(/*! ./dc */ \"./dc.ts\");\nvar module_du2 = __webpack_require__(/*! ./du */ \"./du.ts\");\nvar module_cx3 = __webpack_require__(/*! ./cx */ \"./cx.ts\");\nvar module_df4 = __webpack_require__(/*! ./df */ \"./df.ts\");\nvar module_cr5 = __webpack_require__(/*! ./cr */ \"./cr.ts\");\nvar module_cr6 = __webpack_require__(/*! ./cr */ \"./cr.ts\");\nvar module_cv7 = __webpack_require__(/*! ./cv */ \"./cv.ts\");\nvar module_cz8 = __webpack_require__(/*! ./cz */ \"./cz.ts\");\nvar module_cv9 = __webpack_require__(/*! ./cv */ \"./cv.ts\");\nM.doSomething();\nJ.doSomething();\nQ.doSomething();\nmodule_dt0.doSomething();\nmodule_dc1.doSomething();\nmodule_du2.doSomething();\nmodule_cx3.doSomething();\nmodule_df4.doSomething();\nmodule_cr5.doSomething();\nmodule_cr6.doSomething();\nmodule_cv7.doSomething();\nmodule_cz8.doSomething();\nmodule_cv9.doSomething();\nfunction doSomething() { }\nexports.doSomething = doSomething;\n\n\n//# sourceURL=webpack:///./cp.ts?");
+
+/***/ }),
+
+/***/ "./cq.ts":
+/*!***************!*\
+ !*** ./cq.ts ***!
+ \***************/
+/*! no static exports found */
+/***/ (function(module, exports, __webpack_require__) {
+
+"use strict";
+eval("\nexports.__esModule = true;\n/// \n/// \n/// \nvar module_df0 = __webpack_require__(/*! ./df */ \"./df.ts\");\nvar module_dk1 = __webpack_require__(/*! ./dk */ \"./dk.ts\");\nvar module_cu2 = __webpack_require__(/*! ./cu */ \"./cu.ts\");\nvar module_dm3 = __webpack_require__(/*! ./dm */ \"./dm.ts\");\nvar module_dp4 = __webpack_require__(/*! ./dp */ \"./dp.ts\");\nvar module_cy5 = __webpack_require__(/*! ./cy */ \"./cy.ts\");\nvar module_dn6 = __webpack_require__(/*! ./dn */ \"./dn.ts\");\nvar module_dl7 = __webpack_require__(/*! ./dl */ \"./dl.ts\");\nvar module_cz8 = __webpack_require__(/*! ./cz */ \"./cz.ts\");\nvar module_db9 = __webpack_require__(/*! ./db */ \"./db.ts\");\nA.doSomething();\nC.doSomething();\nD.doSomething();\nmodule_df0.doSomething();\nmodule_dk1.doSomething();\nmodule_cu2.doSomething();\nmodule_dm3.doSomething();\nmodule_dp4.doSomething();\nmodule_cy5.doSomething();\nmodule_dn6.doSomething();\nmodule_dl7.doSomething();\nmodule_cz8.doSomething();\nmodule_db9.doSomething();\nfunction doSomething() { }\nexports.doSomething = doSomething;\n\n\n//# sourceURL=webpack:///./cq.ts?");
+
+/***/ }),
+
+/***/ "./cr.ts":
+/*!***************!*\
+ !*** ./cr.ts ***!
+ \***************/
+/*! no static exports found */
+/***/ (function(module, exports, __webpack_require__) {
+
+"use strict";
+eval("\nexports.__esModule = true;\n/// \n/// \n/// \nvar module_dk0 = __webpack_require__(/*! ./dk */ \"./dk.ts\");\nvar module_ct1 = __webpack_require__(/*! ./ct */ \"./ct.ts\");\nvar module_db2 = __webpack_require__(/*! ./db */ \"./db.ts\");\nvar module_di3 = __webpack_require__(/*! ./di */ \"./di.ts\");\nvar module_cw4 = __webpack_require__(/*! ./cw */ \"./cw.ts\");\nvar module_dh5 = __webpack_require__(/*! ./dh */ \"./dh.ts\");\nvar module_dm6 = __webpack_require__(/*! ./dm */ \"./dm.ts\");\nvar module_dk7 = __webpack_require__(/*! ./dk */ \"./dk.ts\");\nvar module_dn8 = __webpack_require__(/*! ./dn */ \"./dn.ts\");\nvar module_db9 = __webpack_require__(/*! ./db */ \"./db.ts\");\nF.doSomething();\nO.doSomething();\nA.doSomething();\nmodule_dk0.doSomething();\nmodule_ct1.doSomething();\nmodule_db2.doSomething();\nmodule_di3.doSomething();\nmodule_cw4.doSomething();\nmodule_dh5.doSomething();\nmodule_dm6.doSomething();\nmodule_dk7.doSomething();\nmodule_dn8.doSomething();\nmodule_db9.doSomething();\nfunction doSomething() { }\nexports.doSomething = doSomething;\n\n\n//# sourceURL=webpack:///./cr.ts?");
+
+/***/ }),
+
+/***/ "./cs.ts":
+/*!***************!*\
+ !*** ./cs.ts ***!
+ \***************/
+/*! no static exports found */
+/***/ (function(module, exports, __webpack_require__) {
+
+"use strict";
+eval("\nexports.__esModule = true;\n/// \n/// \n/// \nvar module_dk0 = __webpack_require__(/*! ./dk */ \"./dk.ts\");\nvar module_dk1 = __webpack_require__(/*! ./dk */ \"./dk.ts\");\nvar module_dn2 = __webpack_require__(/*! ./dn */ \"./dn.ts\");\nvar module_dh3 = __webpack_require__(/*! ./dh */ \"./dh.ts\");\nvar module_cx4 = __webpack_require__(/*! ./cx */ \"./cx.ts\");\nvar module_dk5 = __webpack_require__(/*! ./dk */ \"./dk.ts\");\nvar module_dl6 = __webpack_require__(/*! ./dl */ \"./dl.ts\");\nvar module_dv7 = __webpack_require__(/*! ./dv */ \"./dv.ts\");\nvar module_dh8 = __webpack_require__(/*! ./dh */ \"./dh.ts\");\nvar module_dp9 = __webpack_require__(/*! ./dp */ \"./dp.ts\");\nN.doSomething();\nK.doSomething();\nR.doSomething();\nmodule_dk0.doSomething();\nmodule_dk1.doSomething();\nmodule_dn2.doSomething();\nmodule_dh3.doSomething();\nmodule_cx4.doSomething();\nmodule_dk5.doSomething();\nmodule_dl6.doSomething();\nmodule_dv7.doSomething();\nmodule_dh8.doSomething();\nmodule_dp9.doSomething();\nfunction doSomething() { }\nexports.doSomething = doSomething;\n\n\n//# sourceURL=webpack:///./cs.ts?");
+
+/***/ }),
+
+/***/ "./ct.ts":
+/*!***************!*\
+ !*** ./ct.ts ***!
+ \***************/
+/*! no static exports found */
+/***/ (function(module, exports, __webpack_require__) {
+
+"use strict";
+eval("\nexports.__esModule = true;\n/// \n/// \n/// \nvar module_dk0 = __webpack_require__(/*! ./dk */ \"./dk.ts\");\nvar module_dj1 = __webpack_require__(/*! ./dj */ \"./dj.ts\");\nvar module_da2 = __webpack_require__(/*! ./da */ \"./da.ts\");\nvar module_dk3 = __webpack_require__(/*! ./dk */ \"./dk.ts\");\nvar module_dm4 = __webpack_require__(/*! ./dm */ \"./dm.ts\");\nvar module_cz5 = __webpack_require__(/*! ./cz */ \"./cz.ts\");\nvar module_du6 = __webpack_require__(/*! ./du */ \"./du.ts\");\nvar module_dg7 = __webpack_require__(/*! ./dg */ \"./dg.ts\");\nvar module_db8 = __webpack_require__(/*! ./db */ \"./db.ts\");\nvar module_cy9 = __webpack_require__(/*! ./cy */ \"./cy.ts\");\nL.doSomething();\nL.doSomething();\nD.doSomething();\nmodule_dk0.doSomething();\nmodule_dj1.doSomething();\nmodule_da2.doSomething();\nmodule_dk3.doSomething();\nmodule_dm4.doSomething();\nmodule_cz5.doSomething();\nmodule_du6.doSomething();\nmodule_dg7.doSomething();\nmodule_db8.doSomething();\nmodule_cy9.doSomething();\nfunction doSomething() { }\nexports.doSomething = doSomething;\n\n\n//# sourceURL=webpack:///./ct.ts?");
+
+/***/ }),
+
+/***/ "./cu.ts":
+/*!***************!*\
+ !*** ./cu.ts ***!
+ \***************/
+/*! no static exports found */
+/***/ (function(module, exports, __webpack_require__) {
+
+"use strict";
+eval("\nexports.__esModule = true;\n/// \n/// \n/// \nvar module_ds0 = __webpack_require__(/*! ./ds */ \"./ds.ts\");\nvar module_da1 = __webpack_require__(/*! ./da */ \"./da.ts\");\nvar module_dp2 = __webpack_require__(/*! ./dp */ \"./dp.ts\");\nvar module_dt3 = __webpack_require__(/*! ./dt */ \"./dt.ts\");\nvar module_da4 = __webpack_require__(/*! ./da */ \"./da.ts\");\nvar module_df5 = __webpack_require__(/*! ./df */ \"./df.ts\");\nvar module_cy6 = __webpack_require__(/*! ./cy */ \"./cy.ts\");\nvar module_dd7 = __webpack_require__(/*! ./dd */ \"./dd.ts\");\nvar module_dn8 = __webpack_require__(/*! ./dn */ \"./dn.ts\");\nvar module_di9 = __webpack_require__(/*! ./di */ \"./di.ts\");\nA.doSomething();\nB.doSomething();\nB.doSomething();\nmodule_ds0.doSomething();\nmodule_da1.doSomething();\nmodule_dp2.doSomething();\nmodule_dt3.doSomething();\nmodule_da4.doSomething();\nmodule_df5.doSomething();\nmodule_cy6.doSomething();\nmodule_dd7.doSomething();\nmodule_dn8.doSomething();\nmodule_di9.doSomething();\nfunction doSomething() { }\nexports.doSomething = doSomething;\n\n\n//# sourceURL=webpack:///./cu.ts?");
+
+/***/ }),
+
+/***/ "./cv.ts":
+/*!***************!*\
+ !*** ./cv.ts ***!
+ \***************/
+/*! no static exports found */
+/***/ (function(module, exports, __webpack_require__) {
+
+"use strict";
+eval("\nexports.__esModule = true;\n/// \n/// \n/// \nvar module_dm0 = __webpack_require__(/*! ./dm */ \"./dm.ts\");\nvar module_du1 = __webpack_require__(/*! ./du */ \"./du.ts\");\nvar module_di2 = __webpack_require__(/*! ./di */ \"./di.ts\");\nvar module_du3 = __webpack_require__(/*! ./du */ \"./du.ts\");\nvar module_dr4 = __webpack_require__(/*! ./dr */ \"./dr.ts\");\nvar module_du5 = __webpack_require__(/*! ./du */ \"./du.ts\");\nvar module_du6 = __webpack_require__(/*! ./du */ \"./du.ts\");\nvar module_ds7 = __webpack_require__(/*! ./ds */ \"./ds.ts\");\nvar module_dm8 = __webpack_require__(/*! ./dm */ \"./dm.ts\");\nvar module_dl9 = __webpack_require__(/*! ./dl */ \"./dl.ts\");\nM.doSomething();\nE.doSomething();\nF.doSomething();\nmodule_dm0.doSomething();\nmodule_du1.doSomething();\nmodule_di2.doSomething();\nmodule_du3.doSomething();\nmodule_dr4.doSomething();\nmodule_du5.doSomething();\nmodule_du6.doSomething();\nmodule_ds7.doSomething();\nmodule_dm8.doSomething();\nmodule_dl9.doSomething();\nfunction doSomething() { }\nexports.doSomething = doSomething;\n\n\n//# sourceURL=webpack:///./cv.ts?");
+
+/***/ }),
+
+/***/ "./cw.ts":
+/*!***************!*\
+ !*** ./cw.ts ***!
+ \***************/
+/*! no static exports found */
+/***/ (function(module, exports, __webpack_require__) {
+
+"use strict";
+eval("\nexports.__esModule = true;\n/// \n/// \n/// \nvar module_dt0 = __webpack_require__(/*! ./dt */ \"./dt.ts\");\nvar module_du1 = __webpack_require__(/*! ./du */ \"./du.ts\");\nvar module_dt2 = __webpack_require__(/*! ./dt */ \"./dt.ts\");\nvar module_cy3 = __webpack_require__(/*! ./cy */ \"./cy.ts\");\nvar module_du4 = __webpack_require__(/*! ./du */ \"./du.ts\");\nvar module_dm5 = __webpack_require__(/*! ./dm */ \"./dm.ts\");\nvar module_dt6 = __webpack_require__(/*! ./dt */ \"./dt.ts\");\nvar module_dt7 = __webpack_require__(/*! ./dt */ \"./dt.ts\");\nvar module_dq8 = __webpack_require__(/*! ./dq */ \"./dq.ts\");\nvar module_dg9 = __webpack_require__(/*! ./dg */ \"./dg.ts\");\nD.doSomething();\nJ.doSomething();\nL.doSomething();\nmodule_dt0.doSomething();\nmodule_du1.doSomething();\nmodule_dt2.doSomething();\nmodule_cy3.doSomething();\nmodule_du4.doSomething();\nmodule_dm5.doSomething();\nmodule_dt6.doSomething();\nmodule_dt7.doSomething();\nmodule_dq8.doSomething();\nmodule_dg9.doSomething();\nfunction doSomething() { }\nexports.doSomething = doSomething;\n\n\n//# sourceURL=webpack:///./cw.ts?");
+
+/***/ }),
+
+/***/ "./cx.ts":
+/*!***************!*\
+ !*** ./cx.ts ***!
+ \***************/
+/*! no static exports found */
+/***/ (function(module, exports, __webpack_require__) {
+
+"use strict";
+eval("\nexports.__esModule = true;\n/// \n/// \n/// \nvar module_dq0 = __webpack_require__(/*! ./dq */ \"./dq.ts\");\nvar module_db1 = __webpack_require__(/*! ./db */ \"./db.ts\");\nvar module_dk2 = __webpack_require__(/*! ./dk */ \"./dk.ts\");\nvar module_di3 = __webpack_require__(/*! ./di */ \"./di.ts\");\nvar module_di4 = __webpack_require__(/*! ./di */ \"./di.ts\");\nvar module_di5 = __webpack_require__(/*! ./di */ \"./di.ts\");\nvar module_dd6 = __webpack_require__(/*! ./dd */ \"./dd.ts\");\nvar module_do7 = __webpack_require__(/*! ./do */ \"./do.ts\");\nvar module_dl8 = __webpack_require__(/*! ./dl */ \"./dl.ts\");\nvar module_dd9 = __webpack_require__(/*! ./dd */ \"./dd.ts\");\nE.doSomething();\nB.doSomething();\nG.doSomething();\nmodule_dq0.doSomething();\nmodule_db1.doSomething();\nmodule_dk2.doSomething();\nmodule_di3.doSomething();\nmodule_di4.doSomething();\nmodule_di5.doSomething();\nmodule_dd6.doSomething();\nmodule_do7.doSomething();\nmodule_dl8.doSomething();\nmodule_dd9.doSomething();\nfunction doSomething() { }\nexports.doSomething = doSomething;\n\n\n//# sourceURL=webpack:///./cx.ts?");
+
+/***/ }),
+
+/***/ "./cy.ts":
+/*!***************!*\
+ !*** ./cy.ts ***!
+ \***************/
+/*! no static exports found */
+/***/ (function(module, exports, __webpack_require__) {
+
+"use strict";
+eval("\nexports.__esModule = true;\n/// \n/// \n/// \nvar module_du0 = __webpack_require__(/*! ./du */ \"./du.ts\");\nvar module_db1 = __webpack_require__(/*! ./db */ \"./db.ts\");\nvar module_dr2 = __webpack_require__(/*! ./dr */ \"./dr.ts\");\nvar module_dg3 = __webpack_require__(/*! ./dg */ \"./dg.ts\");\nvar module_de4 = __webpack_require__(/*! ./de */ \"./de.ts\");\nvar module_dg5 = __webpack_require__(/*! ./dg */ \"./dg.ts\");\nvar module_df6 = __webpack_require__(/*! ./df */ \"./df.ts\");\nvar module_di7 = __webpack_require__(/*! ./di */ \"./di.ts\");\nvar module_dr8 = __webpack_require__(/*! ./dr */ \"./dr.ts\");\nvar module_dt9 = __webpack_require__(/*! ./dt */ \"./dt.ts\");\nG.doSomething();\nH.doSomething();\nH.doSomething();\nmodule_du0.doSomething();\nmodule_db1.doSomething();\nmodule_dr2.doSomething();\nmodule_dg3.doSomething();\nmodule_de4.doSomething();\nmodule_dg5.doSomething();\nmodule_df6.doSomething();\nmodule_di7.doSomething();\nmodule_dr8.doSomething();\nmodule_dt9.doSomething();\nfunction doSomething() { }\nexports.doSomething = doSomething;\n\n\n//# sourceURL=webpack:///./cy.ts?");
+
+/***/ }),
+
+/***/ "./cz.ts":
+/*!***************!*\
+ !*** ./cz.ts ***!
+ \***************/
+/*! no static exports found */
+/***/ (function(module, exports, __webpack_require__) {
+
+"use strict";
+eval("\nexports.__esModule = true;\n/// \n/// \n/// \nvar module_dq0 = __webpack_require__(/*! ./dq */ \"./dq.ts\");\nvar module_db1 = __webpack_require__(/*! ./db */ \"./db.ts\");\nvar module_dn2 = __webpack_require__(/*! ./dn */ \"./dn.ts\");\nvar module_ds3 = __webpack_require__(/*! ./ds */ \"./ds.ts\");\nvar module_dp4 = __webpack_require__(/*! ./dp */ \"./dp.ts\");\nvar module_dj5 = __webpack_require__(/*! ./dj */ \"./dj.ts\");\nvar module_ds6 = __webpack_require__(/*! ./ds */ \"./ds.ts\");\nvar module_db7 = __webpack_require__(/*! ./db */ \"./db.ts\");\nvar module_dj8 = __webpack_require__(/*! ./dj */ \"./dj.ts\");\nvar module_dn9 = __webpack_require__(/*! ./dn */ \"./dn.ts\");\nN.doSomething();\nL.doSomething();\nB.doSomething();\nmodule_dq0.doSomething();\nmodule_db1.doSomething();\nmodule_dn2.doSomething();\nmodule_ds3.doSomething();\nmodule_dp4.doSomething();\nmodule_dj5.doSomething();\nmodule_ds6.doSomething();\nmodule_db7.doSomething();\nmodule_dj8.doSomething();\nmodule_dn9.doSomething();\nfunction doSomething() { }\nexports.doSomething = doSomething;\n\n\n//# sourceURL=webpack:///./cz.ts?");
+
+/***/ }),
+
+/***/ "./da.ts":
+/*!***************!*\
+ !*** ./da.ts ***!
+ \***************/
+/*! no static exports found */
+/***/ (function(module, exports, __webpack_require__) {
+
+"use strict";
+eval("\nexports.__esModule = true;\n/// \n/// \n/// \nvar module_do0 = __webpack_require__(/*! ./do */ \"./do.ts\");\nvar module_dg1 = __webpack_require__(/*! ./dg */ \"./dg.ts\");\nvar module_dm2 = __webpack_require__(/*! ./dm */ \"./dm.ts\");\nvar module_dd3 = __webpack_require__(/*! ./dd */ \"./dd.ts\");\nvar module_dq4 = __webpack_require__(/*! ./dq */ \"./dq.ts\");\nvar module_de5 = __webpack_require__(/*! ./de */ \"./de.ts\");\nvar module_do6 = __webpack_require__(/*! ./do */ \"./do.ts\");\nvar module_dq7 = __webpack_require__(/*! ./dq */ \"./dq.ts\");\nvar module_dp8 = __webpack_require__(/*! ./dp */ \"./dp.ts\");\nvar module_ds9 = __webpack_require__(/*! ./ds */ \"./ds.ts\");\nH.doSomething();\nE.doSomething();\nA.doSomething();\nmodule_do0.doSomething();\nmodule_dg1.doSomething();\nmodule_dm2.doSomething();\nmodule_dd3.doSomething();\nmodule_dq4.doSomething();\nmodule_de5.doSomething();\nmodule_do6.doSomething();\nmodule_dq7.doSomething();\nmodule_dp8.doSomething();\nmodule_ds9.doSomething();\nfunction doSomething() { }\nexports.doSomething = doSomething;\n\n\n//# sourceURL=webpack:///./da.ts?");
+
+/***/ }),
+
+/***/ "./db.ts":
+/*!***************!*\
+ !*** ./db.ts ***!
+ \***************/
+/*! no static exports found */
+/***/ (function(module, exports, __webpack_require__) {
+
+"use strict";
+eval("\nexports.__esModule = true;\n/// \n/// \n/// \nvar module_dn0 = __webpack_require__(/*! ./dn */ \"./dn.ts\");\nvar module_de1 = __webpack_require__(/*! ./de */ \"./de.ts\");\nvar module_dm2 = __webpack_require__(/*! ./dm */ \"./dm.ts\");\nvar module_dr3 = __webpack_require__(/*! ./dr */ \"./dr.ts\");\nvar module_dm4 = __webpack_require__(/*! ./dm */ \"./dm.ts\");\nvar module_di5 = __webpack_require__(/*! ./di */ \"./di.ts\");\nvar module_du6 = __webpack_require__(/*! ./du */ \"./du.ts\");\nvar module_dc7 = __webpack_require__(/*! ./dc */ \"./dc.ts\");\nvar module_dv8 = __webpack_require__(/*! ./dv */ \"./dv.ts\");\nvar module_dn9 = __webpack_require__(/*! ./dn */ \"./dn.ts\");\nS.doSomething();\nG.doSomething();\nT.doSomething();\nmodule_dn0.doSomething();\nmodule_de1.doSomething();\nmodule_dm2.doSomething();\nmodule_dr3.doSomething();\nmodule_dm4.doSomething();\nmodule_di5.doSomething();\nmodule_du6.doSomething();\nmodule_dc7.doSomething();\nmodule_dv8.doSomething();\nmodule_dn9.doSomething();\nfunction doSomething() { }\nexports.doSomething = doSomething;\n\n\n//# sourceURL=webpack:///./db.ts?");
+
+/***/ }),
+
+/***/ "./dc.ts":
+/*!***************!*\
+ !*** ./dc.ts ***!
+ \***************/
+/*! no static exports found */
+/***/ (function(module, exports, __webpack_require__) {
+
+"use strict";
+eval("\nexports.__esModule = true;\n/// \n/// \n/// \nvar module_dd0 = __webpack_require__(/*! ./dd */ \"./dd.ts\");\nvar module_de1 = __webpack_require__(/*! ./de */ \"./de.ts\");\nvar module_dt2 = __webpack_require__(/*! ./dt */ \"./dt.ts\");\nvar module_dn3 = __webpack_require__(/*! ./dn */ \"./dn.ts\");\nvar module_di4 = __webpack_require__(/*! ./di */ \"./di.ts\");\nvar module_ds5 = __webpack_require__(/*! ./ds */ \"./ds.ts\");\nvar module_dn6 = __webpack_require__(/*! ./dn */ \"./dn.ts\");\nvar module_dv7 = __webpack_require__(/*! ./dv */ \"./dv.ts\");\nvar module_dt8 = __webpack_require__(/*! ./dt */ \"./dt.ts\");\nvar module_dm9 = __webpack_require__(/*! ./dm */ \"./dm.ts\");\nQ.doSomething();\nF.doSomething();\nH.doSomething();\nmodule_dd0.doSomething();\nmodule_de1.doSomething();\nmodule_dt2.doSomething();\nmodule_dn3.doSomething();\nmodule_di4.doSomething();\nmodule_ds5.doSomething();\nmodule_dn6.doSomething();\nmodule_dv7.doSomething();\nmodule_dt8.doSomething();\nmodule_dm9.doSomething();\nfunction doSomething() { }\nexports.doSomething = doSomething;\n\n\n//# sourceURL=webpack:///./dc.ts?");
+
+/***/ }),
+
+/***/ "./dd.ts":
+/*!***************!*\
+ !*** ./dd.ts ***!
+ \***************/
+/*! no static exports found */
+/***/ (function(module, exports, __webpack_require__) {
+
+"use strict";
+eval("\nexports.__esModule = true;\n/// \n/// \n/// \nvar module_dq0 = __webpack_require__(/*! ./dq */ \"./dq.ts\");\nvar module_dh1 = __webpack_require__(/*! ./dh */ \"./dh.ts\");\nvar module_dv2 = __webpack_require__(/*! ./dv */ \"./dv.ts\");\nvar module_dn3 = __webpack_require__(/*! ./dn */ \"./dn.ts\");\nvar module_do4 = __webpack_require__(/*! ./do */ \"./do.ts\");\nvar module_df5 = __webpack_require__(/*! ./df */ \"./df.ts\");\nvar module_dk6 = __webpack_require__(/*! ./dk */ \"./dk.ts\");\nvar module_dh7 = __webpack_require__(/*! ./dh */ \"./dh.ts\");\nvar module_df8 = __webpack_require__(/*! ./df */ \"./df.ts\");\nvar module_ds9 = __webpack_require__(/*! ./ds */ \"./ds.ts\");\nB.doSomething();\nK.doSomething();\nA.doSomething();\nmodule_dq0.doSomething();\nmodule_dh1.doSomething();\nmodule_dv2.doSomething();\nmodule_dn3.doSomething();\nmodule_do4.doSomething();\nmodule_df5.doSomething();\nmodule_dk6.doSomething();\nmodule_dh7.doSomething();\nmodule_df8.doSomething();\nmodule_ds9.doSomething();\nfunction doSomething() { }\nexports.doSomething = doSomething;\n\n\n//# sourceURL=webpack:///./dd.ts?");
+
+/***/ }),
+
+/***/ "./de.ts":
+/*!***************!*\
+ !*** ./de.ts ***!
+ \***************/
+/*! no static exports found */
+/***/ (function(module, exports, __webpack_require__) {
+
+"use strict";
+eval("\nexports.__esModule = true;\n/// \n/// \n/// \nvar module_dv0 = __webpack_require__(/*! ./dv */ \"./dv.ts\");\nvar module_dj1 = __webpack_require__(/*! ./dj */ \"./dj.ts\");\nvar module_dm2 = __webpack_require__(/*! ./dm */ \"./dm.ts\");\nvar module_do3 = __webpack_require__(/*! ./do */ \"./do.ts\");\nvar module_dp4 = __webpack_require__(/*! ./dp */ \"./dp.ts\");\nvar module_dv5 = __webpack_require__(/*! ./dv */ \"./dv.ts\");\nvar module_du6 = __webpack_require__(/*! ./du */ \"./du.ts\");\nvar module_dv7 = __webpack_require__(/*! ./dv */ \"./dv.ts\");\nvar module_dn8 = __webpack_require__(/*! ./dn */ \"./dn.ts\");\nvar module_ds9 = __webpack_require__(/*! ./ds */ \"./ds.ts\");\nI.doSomething();\nN.doSomething();\nM.doSomething();\nmodule_dv0.doSomething();\nmodule_dj1.doSomething();\nmodule_dm2.doSomething();\nmodule_do3.doSomething();\nmodule_dp4.doSomething();\nmodule_dv5.doSomething();\nmodule_du6.doSomething();\nmodule_dv7.doSomething();\nmodule_dn8.doSomething();\nmodule_ds9.doSomething();\nfunction doSomething() { }\nexports.doSomething = doSomething;\n\n\n//# sourceURL=webpack:///./de.ts?");
+
+/***/ }),
+
+/***/ "./df.ts":
+/*!***************!*\
+ !*** ./df.ts ***!
+ \***************/
+/*! no static exports found */
+/***/ (function(module, exports, __webpack_require__) {
+
+"use strict";
+eval("\nexports.__esModule = true;\n/// \n/// \n/// \nvar module_dk0 = __webpack_require__(/*! ./dk */ \"./dk.ts\");\nvar module_dl1 = __webpack_require__(/*! ./dl */ \"./dl.ts\");\nvar module_di2 = __webpack_require__(/*! ./di */ \"./di.ts\");\nvar module_dv3 = __webpack_require__(/*! ./dv */ \"./dv.ts\");\nvar module_dm4 = __webpack_require__(/*! ./dm */ \"./dm.ts\");\nvar module_dq5 = __webpack_require__(/*! ./dq */ \"./dq.ts\");\nvar module_dm6 = __webpack_require__(/*! ./dm */ \"./dm.ts\");\nvar module_dp7 = __webpack_require__(/*! ./dp */ \"./dp.ts\");\nvar module_dt8 = __webpack_require__(/*! ./dt */ \"./dt.ts\");\nvar module_do9 = __webpack_require__(/*! ./do */ \"./do.ts\");\nQ.doSomething();\nR.doSomething();\nE.doSomething();\nmodule_dk0.doSomething();\nmodule_dl1.doSomething();\nmodule_di2.doSomething();\nmodule_dv3.doSomething();\nmodule_dm4.doSomething();\nmodule_dq5.doSomething();\nmodule_dm6.doSomething();\nmodule_dp7.doSomething();\nmodule_dt8.doSomething();\nmodule_do9.doSomething();\nfunction doSomething() { }\nexports.doSomething = doSomething;\n\n\n//# sourceURL=webpack:///./df.ts?");
+
+/***/ }),
+
+/***/ "./dg.ts":
+/*!***************!*\
+ !*** ./dg.ts ***!
+ \***************/
+/*! no static exports found */
+/***/ (function(module, exports, __webpack_require__) {
+
+"use strict";
+eval("\nexports.__esModule = true;\n/// \n/// \n/// \nvar module_dp0 = __webpack_require__(/*! ./dp */ \"./dp.ts\");\nvar module_dv1 = __webpack_require__(/*! ./dv */ \"./dv.ts\");\nvar module_du2 = __webpack_require__(/*! ./du */ \"./du.ts\");\nvar module_dv3 = __webpack_require__(/*! ./dv */ \"./dv.ts\");\nvar module_dq4 = __webpack_require__(/*! ./dq */ \"./dq.ts\");\nvar module_du5 = __webpack_require__(/*! ./du */ \"./du.ts\");\nvar module_dr6 = __webpack_require__(/*! ./dr */ \"./dr.ts\");\nvar module_dn7 = __webpack_require__(/*! ./dn */ \"./dn.ts\");\nvar module_dt8 = __webpack_require__(/*! ./dt */ \"./dt.ts\");\nvar module_do9 = __webpack_require__(/*! ./do */ \"./do.ts\");\nQ.doSomething();\nA.doSomething();\nD.doSomething();\nmodule_dp0.doSomething();\nmodule_dv1.doSomething();\nmodule_du2.doSomething();\nmodule_dv3.doSomething();\nmodule_dq4.doSomething();\nmodule_du5.doSomething();\nmodule_dr6.doSomething();\nmodule_dn7.doSomething();\nmodule_dt8.doSomething();\nmodule_do9.doSomething();\nfunction doSomething() { }\nexports.doSomething = doSomething;\n\n\n//# sourceURL=webpack:///./dg.ts?");
+
+/***/ }),
+
+/***/ "./dh.ts":
+/*!***************!*\
+ !*** ./dh.ts ***!
+ \***************/
+/*! no static exports found */
+/***/ (function(module, exports, __webpack_require__) {
+
+"use strict";
+eval("\nexports.__esModule = true;\n/// \n/// \n/// \nvar module_dj0 = __webpack_require__(/*! ./dj */ \"./dj.ts\");\nvar module_do1 = __webpack_require__(/*! ./do */ \"./do.ts\");\nvar module_dp2 = __webpack_require__(/*! ./dp */ \"./dp.ts\");\nvar module_dk3 = __webpack_require__(/*! ./dk */ \"./dk.ts\");\nvar module_dj4 = __webpack_require__(/*! ./dj */ \"./dj.ts\");\nvar module_dl5 = __webpack_require__(/*! ./dl */ \"./dl.ts\");\nvar module_du6 = __webpack_require__(/*! ./du */ \"./du.ts\");\nvar module_di7 = __webpack_require__(/*! ./di */ \"./di.ts\");\nvar module_du8 = __webpack_require__(/*! ./du */ \"./du.ts\");\nvar module_dq9 = __webpack_require__(/*! ./dq */ \"./dq.ts\");\nC.doSomething();\nL.doSomething();\nE.doSomething();\nmodule_dj0.doSomething();\nmodule_do1.doSomething();\nmodule_dp2.doSomething();\nmodule_dk3.doSomething();\nmodule_dj4.doSomething();\nmodule_dl5.doSomething();\nmodule_du6.doSomething();\nmodule_di7.doSomething();\nmodule_du8.doSomething();\nmodule_dq9.doSomething();\nfunction doSomething() { }\nexports.doSomething = doSomething;\n\n\n//# sourceURL=webpack:///./dh.ts?");
+
+/***/ }),
+
+/***/ "./di.ts":
+/*!***************!*\
+ !*** ./di.ts ***!
+ \***************/
+/*! no static exports found */
+/***/ (function(module, exports, __webpack_require__) {
+
+"use strict";
+eval("\nexports.__esModule = true;\n/// \n/// \n/// \nvar module_dq0 = __webpack_require__(/*! ./dq */ \"./dq.ts\");\nvar module_dl1 = __webpack_require__(/*! ./dl */ \"./dl.ts\");\nvar module_dn2 = __webpack_require__(/*! ./dn */ \"./dn.ts\");\nvar module_dv3 = __webpack_require__(/*! ./dv */ \"./dv.ts\");\nvar module_do4 = __webpack_require__(/*! ./do */ \"./do.ts\");\nvar module_dl5 = __webpack_require__(/*! ./dl */ \"./dl.ts\");\nvar module_dq6 = __webpack_require__(/*! ./dq */ \"./dq.ts\");\nvar module_do7 = __webpack_require__(/*! ./do */ \"./do.ts\");\nvar module_dl8 = __webpack_require__(/*! ./dl */ \"./dl.ts\");\nvar module_do9 = __webpack_require__(/*! ./do */ \"./do.ts\");\nM.doSomething();\nK.doSomething();\nO.doSomething();\nmodule_dq0.doSomething();\nmodule_dl1.doSomething();\nmodule_dn2.doSomething();\nmodule_dv3.doSomething();\nmodule_do4.doSomething();\nmodule_dl5.doSomething();\nmodule_dq6.doSomething();\nmodule_do7.doSomething();\nmodule_dl8.doSomething();\nmodule_do9.doSomething();\nfunction doSomething() { }\nexports.doSomething = doSomething;\n\n\n//# sourceURL=webpack:///./di.ts?");
+
+/***/ }),
+
+/***/ "./dj.ts":
+/*!***************!*\
+ !*** ./dj.ts ***!
+ \***************/
+/*! no static exports found */
+/***/ (function(module, exports, __webpack_require__) {
+
+"use strict";
+eval("\nexports.__esModule = true;\n/// \n/// \n/// \nvar module_dq0 = __webpack_require__(/*! ./dq */ \"./dq.ts\");\nvar module_ds1 = __webpack_require__(/*! ./ds */ \"./ds.ts\");\nvar module_dr2 = __webpack_require__(/*! ./dr */ \"./dr.ts\");\nvar module_do3 = __webpack_require__(/*! ./do */ \"./do.ts\");\nvar module_dn4 = __webpack_require__(/*! ./dn */ \"./dn.ts\");\nvar module_dv5 = __webpack_require__(/*! ./dv */ \"./dv.ts\");\nvar module_dm6 = __webpack_require__(/*! ./dm */ \"./dm.ts\");\nvar module_dt7 = __webpack_require__(/*! ./dt */ \"./dt.ts\");\nvar module_dv8 = __webpack_require__(/*! ./dv */ \"./dv.ts\");\nvar module_dv9 = __webpack_require__(/*! ./dv */ \"./dv.ts\");\nN.doSomething();\nR.doSomething();\nS.doSomething();\nmodule_dq0.doSomething();\nmodule_ds1.doSomething();\nmodule_dr2.doSomething();\nmodule_do3.doSomething();\nmodule_dn4.doSomething();\nmodule_dv5.doSomething();\nmodule_dm6.doSomething();\nmodule_dt7.doSomething();\nmodule_dv8.doSomething();\nmodule_dv9.doSomething();\nfunction doSomething() { }\nexports.doSomething = doSomething;\n\n\n//# sourceURL=webpack:///./dj.ts?");
+
+/***/ }),
+
+/***/ "./dk.ts":
+/*!***************!*\
+ !*** ./dk.ts ***!
+ \***************/
+/*! no static exports found */
+/***/ (function(module, exports, __webpack_require__) {
+
+"use strict";
+eval("\nexports.__esModule = true;\n/// \n/// \n/// \nvar module_dm0 = __webpack_require__(/*! ./dm */ \"./dm.ts\");\nvar module_ds1 = __webpack_require__(/*! ./ds */ \"./ds.ts\");\nvar module_ds2 = __webpack_require__(/*! ./ds */ \"./ds.ts\");\nvar module_dv3 = __webpack_require__(/*! ./dv */ \"./dv.ts\");\nvar module_ds4 = __webpack_require__(/*! ./ds */ \"./ds.ts\");\nvar module_dm5 = __webpack_require__(/*! ./dm */ \"./dm.ts\");\nvar module_du6 = __webpack_require__(/*! ./du */ \"./du.ts\");\nvar module_dp7 = __webpack_require__(/*! ./dp */ \"./dp.ts\");\nvar module_dl8 = __webpack_require__(/*! ./dl */ \"./dl.ts\");\nvar module_dn9 = __webpack_require__(/*! ./dn */ \"./dn.ts\");\nT.doSomething();\nD.doSomething();\nR.doSomething();\nmodule_dm0.doSomething();\nmodule_ds1.doSomething();\nmodule_ds2.doSomething();\nmodule_dv3.doSomething();\nmodule_ds4.doSomething();\nmodule_dm5.doSomething();\nmodule_du6.doSomething();\nmodule_dp7.doSomething();\nmodule_dl8.doSomething();\nmodule_dn9.doSomething();\nfunction doSomething() { }\nexports.doSomething = doSomething;\n\n\n//# sourceURL=webpack:///./dk.ts?");
+
+/***/ }),
+
+/***/ "./dl.ts":
+/*!***************!*\
+ !*** ./dl.ts ***!
+ \***************/
+/*! no static exports found */
+/***/ (function(module, exports, __webpack_require__) {
+
+"use strict";
+eval("\nexports.__esModule = true;\n/// \n/// \n/// \nvar module_do0 = __webpack_require__(/*! ./do */ \"./do.ts\");\nvar module_dt1 = __webpack_require__(/*! ./dt */ \"./dt.ts\");\nvar module_dr2 = __webpack_require__(/*! ./dr */ \"./dr.ts\");\nvar module_dm3 = __webpack_require__(/*! ./dm */ \"./dm.ts\");\nvar module_du4 = __webpack_require__(/*! ./du */ \"./du.ts\");\nvar module_dv5 = __webpack_require__(/*! ./dv */ \"./dv.ts\");\nvar module_ds6 = __webpack_require__(/*! ./ds */ \"./ds.ts\");\nvar module_du7 = __webpack_require__(/*! ./du */ \"./du.ts\");\nvar module_dm8 = __webpack_require__(/*! ./dm */ \"./dm.ts\");\nvar module_dr9 = __webpack_require__(/*! ./dr */ \"./dr.ts\");\nK.doSomething();\nM.doSomething();\nO.doSomething();\nmodule_do0.doSomething();\nmodule_dt1.doSomething();\nmodule_dr2.doSomething();\nmodule_dm3.doSomething();\nmodule_du4.doSomething();\nmodule_dv5.doSomething();\nmodule_ds6.doSomething();\nmodule_du7.doSomething();\nmodule_dm8.doSomething();\nmodule_dr9.doSomething();\nfunction doSomething() { }\nexports.doSomething = doSomething;\n\n\n//# sourceURL=webpack:///./dl.ts?");
+
+/***/ }),
+
+/***/ "./dm.ts":
+/*!***************!*\
+ !*** ./dm.ts ***!
+ \***************/
+/*! no static exports found */
+/***/ (function(module, exports, __webpack_require__) {
+
+"use strict";
+eval("\nexports.__esModule = true;\n/// \n/// \n/// \nvar module_dn0 = __webpack_require__(/*! ./dn */ \"./dn.ts\");\nvar module_dp1 = __webpack_require__(/*! ./dp */ \"./dp.ts\");\nvar module_dv2 = __webpack_require__(/*! ./dv */ \"./dv.ts\");\nvar module_dr3 = __webpack_require__(/*! ./dr */ \"./dr.ts\");\nvar module_dv4 = __webpack_require__(/*! ./dv */ \"./dv.ts\");\nvar module_ds5 = __webpack_require__(/*! ./ds */ \"./ds.ts\");\nvar module_dv6 = __webpack_require__(/*! ./dv */ \"./dv.ts\");\nvar module_dp7 = __webpack_require__(/*! ./dp */ \"./dp.ts\");\nvar module_ds8 = __webpack_require__(/*! ./ds */ \"./ds.ts\");\nQ.doSomething();\nF.doSomething();\nJ.doSomething();\nmodule_dn0.doSomething();\nmodule_dp1.doSomething();\nmodule_dv2.doSomething();\nmodule_dr3.doSomething();\nmodule_dv4.doSomething();\nmodule_ds5.doSomething();\nmodule_dv6.doSomething();\nmodule_dp7.doSomething();\nmodule_ds8.doSomething();\nfunction doSomething() { }\nexports.doSomething = doSomething;\n\n\n//# sourceURL=webpack:///./dm.ts?");
+
+/***/ }),
+
+/***/ "./dn.ts":
+/*!***************!*\
+ !*** ./dn.ts ***!
+ \***************/
+/*! no static exports found */
+/***/ (function(module, exports, __webpack_require__) {
+
+"use strict";
+eval("\nexports.__esModule = true;\n/// \n/// \n/// \nvar module_dv0 = __webpack_require__(/*! ./dv */ \"./dv.ts\");\nvar module_dt1 = __webpack_require__(/*! ./dt */ \"./dt.ts\");\nvar module_du2 = __webpack_require__(/*! ./du */ \"./du.ts\");\nvar module_dv3 = __webpack_require__(/*! ./dv */ \"./dv.ts\");\nvar module_dt4 = __webpack_require__(/*! ./dt */ \"./dt.ts\");\nvar module_dp5 = __webpack_require__(/*! ./dp */ \"./dp.ts\");\nvar module_dr6 = __webpack_require__(/*! ./dr */ \"./dr.ts\");\nvar module_dp7 = __webpack_require__(/*! ./dp */ \"./dp.ts\");\nH.doSomething();\nE.doSomething();\nD.doSomething();\nmodule_dv0.doSomething();\nmodule_dt1.doSomething();\nmodule_du2.doSomething();\nmodule_dv3.doSomething();\nmodule_dt4.doSomething();\nmodule_dp5.doSomething();\nmodule_dr6.doSomething();\nmodule_dp7.doSomething();\nfunction doSomething() { }\nexports.doSomething = doSomething;\n\n\n//# sourceURL=webpack:///./dn.ts?");
+
+/***/ }),
+
+/***/ "./do.ts":
+/*!***************!*\
+ !*** ./do.ts ***!
+ \***************/
+/*! no static exports found */
+/***/ (function(module, exports, __webpack_require__) {
+
+"use strict";
+eval("\nexports.__esModule = true;\n/// \n/// \n/// \nvar module_dq0 = __webpack_require__(/*! ./dq */ \"./dq.ts\");\nvar module_dv1 = __webpack_require__(/*! ./dv */ \"./dv.ts\");\nvar module_dq2 = __webpack_require__(/*! ./dq */ \"./dq.ts\");\nvar module_dq3 = __webpack_require__(/*! ./dq */ \"./dq.ts\");\nvar module_dv4 = __webpack_require__(/*! ./dv */ \"./dv.ts\");\nvar module_du5 = __webpack_require__(/*! ./du */ \"./du.ts\");\nvar module_dt6 = __webpack_require__(/*! ./dt */ \"./dt.ts\");\nM.doSomething();\nH.doSomething();\nK.doSomething();\nmodule_dq0.doSomething();\nmodule_dv1.doSomething();\nmodule_dq2.doSomething();\nmodule_dq3.doSomething();\nmodule_dv4.doSomething();\nmodule_du5.doSomething();\nmodule_dt6.doSomething();\nfunction doSomething() { }\nexports.doSomething = doSomething;\n\n\n//# sourceURL=webpack:///./do.ts?");
+
+/***/ }),
+
+/***/ "./dp.ts":
+/*!***************!*\
+ !*** ./dp.ts ***!
+ \***************/
+/*! no static exports found */
+/***/ (function(module, exports, __webpack_require__) {
+
+"use strict";
+eval("\nexports.__esModule = true;\n/// \n/// \n/// \nvar module_du0 = __webpack_require__(/*! ./du */ \"./du.ts\");\nvar module_ds1 = __webpack_require__(/*! ./ds */ \"./ds.ts\");\nvar module_ds2 = __webpack_require__(/*! ./ds */ \"./ds.ts\");\nvar module_du3 = __webpack_require__(/*! ./du */ \"./du.ts\");\nvar module_dr4 = __webpack_require__(/*! ./dr */ \"./dr.ts\");\nvar module_dr5 = __webpack_require__(/*! ./dr */ \"./dr.ts\");\nK.doSomething();\nP.doSomething();\nC.doSomething();\nmodule_du0.doSomething();\nmodule_ds1.doSomething();\nmodule_ds2.doSomething();\nmodule_du3.doSomething();\nmodule_dr4.doSomething();\nmodule_dr5.doSomething();\nfunction doSomething() { }\nexports.doSomething = doSomething;\n\n\n//# sourceURL=webpack:///./dp.ts?");
+
+/***/ }),
+
+/***/ "./dq.ts":
+/*!***************!*\
+ !*** ./dq.ts ***!
+ \***************/
+/*! no static exports found */
+/***/ (function(module, exports, __webpack_require__) {
+
+"use strict";
+eval("\nexports.__esModule = true;\n/// \n/// \n/// \nvar module_du0 = __webpack_require__(/*! ./du */ \"./du.ts\");\nvar module_dt1 = __webpack_require__(/*! ./dt */ \"./dt.ts\");\nvar module_dt2 = __webpack_require__(/*! ./dt */ \"./dt.ts\");\nvar module_dr3 = __webpack_require__(/*! ./dr */ \"./dr.ts\");\nvar module_dt4 = __webpack_require__(/*! ./dt */ \"./dt.ts\");\nD.doSomething();\nN.doSomething();\nC.doSomething();\nmodule_du0.doSomething();\nmodule_dt1.doSomething();\nmodule_dt2.doSomething();\nmodule_dr3.doSomething();\nmodule_dt4.doSomething();\nfunction doSomething() { }\nexports.doSomething = doSomething;\n\n\n//# sourceURL=webpack:///./dq.ts?");
+
+/***/ }),
+
+/***/ "./dr.ts":
+/*!***************!*\
+ !*** ./dr.ts ***!
+ \***************/
+/*! no static exports found */
+/***/ (function(module, exports, __webpack_require__) {
+
+"use strict";
+eval("\nexports.__esModule = true;\n/// \n/// \n/// \nvar module_ds0 = __webpack_require__(/*! ./ds */ \"./ds.ts\");\nvar module_du1 = __webpack_require__(/*! ./du */ \"./du.ts\");\nvar module_du2 = __webpack_require__(/*! ./du */ \"./du.ts\");\nvar module_dt3 = __webpack_require__(/*! ./dt */ \"./dt.ts\");\nI.doSomething();\nL.doSomething();\nE.doSomething();\nmodule_ds0.doSomething();\nmodule_du1.doSomething();\nmodule_du2.doSomething();\nmodule_dt3.doSomething();\nfunction doSomething() { }\nexports.doSomething = doSomething;\n\n\n//# sourceURL=webpack:///./dr.ts?");
+
+/***/ }),
+
+/***/ "./ds.ts":
+/*!***************!*\
+ !*** ./ds.ts ***!
+ \***************/
+/*! no static exports found */
+/***/ (function(module, exports, __webpack_require__) {
+
+"use strict";
+eval("\nexports.__esModule = true;\n/// \n/// \n/// \nvar module_dv0 = __webpack_require__(/*! ./dv */ \"./dv.ts\");\nvar module_dt1 = __webpack_require__(/*! ./dt */ \"./dt.ts\");\nvar module_dv2 = __webpack_require__(/*! ./dv */ \"./dv.ts\");\nF.doSomething();\nS.doSomething();\nB.doSomething();\nmodule_dv0.doSomething();\nmodule_dt1.doSomething();\nmodule_dv2.doSomething();\nfunction doSomething() { }\nexports.doSomething = doSomething;\n\n\n//# sourceURL=webpack:///./ds.ts?");
+
+/***/ }),
+
+/***/ "./dt.ts":
+/*!***************!*\
+ !*** ./dt.ts ***!
+ \***************/
+/*! no static exports found */
+/***/ (function(module, exports, __webpack_require__) {
+
+"use strict";
+eval("\nexports.__esModule = true;\n/// \n/// \n/// \nvar module_du0 = __webpack_require__(/*! ./du */ \"./du.ts\");\nvar module_dv1 = __webpack_require__(/*! ./dv */ \"./dv.ts\");\nF.doSomething();\nN.doSomething();\nR.doSomething();\nmodule_du0.doSomething();\nmodule_dv1.doSomething();\nfunction doSomething() { }\nexports.doSomething = doSomething;\n\n\n//# sourceURL=webpack:///./dt.ts?");
+
+/***/ }),
+
+/***/ "./du.ts":
+/*!***************!*\
+ !*** ./du.ts ***!
+ \***************/
+/*! no static exports found */
+/***/ (function(module, exports, __webpack_require__) {
+
+"use strict";
+eval("\nexports.__esModule = true;\n/// \n/// \n/// \nvar module_dv0 = __webpack_require__(/*! ./dv */ \"./dv.ts\");\nS.doSomething();\nQ.doSomething();\nL.doSomething();\nmodule_dv0.doSomething();\nfunction doSomething() { }\nexports.doSomething = doSomething;\n\n\n//# sourceURL=webpack:///./du.ts?");
+
+/***/ }),
+
+/***/ "./dv.ts":
+/*!***************!*\
+ !*** ./dv.ts ***!
+ \***************/
+/*! no static exports found */
+/***/ (function(module, exports, __webpack_require__) {
+
+"use strict";
+eval("\n/// \n/// \n/// \nexports.__esModule = true;\nN.doSomething();\nN.doSomething();\nB.doSomething();\nfunction doSomething() { }\nexports.doSomething = doSomething;\n\n\n//# sourceURL=webpack:///./dv.ts?");
+
+/***/ }),
+
+/***/ "./k.ts":
+/*!**************!*\
+ !*** ./k.ts ***!
+ \**************/
+/*! no static exports found */
+/***/ (function(module, exports, __webpack_require__) {
+
+"use strict";
+eval("\nexports.__esModule = true;\n/// \n/// \n/// \nvar module_bh0 = __webpack_require__(/*! ./bh */ \"./bh.ts\");\nvar module_cu1 = __webpack_require__(/*! ./cu */ \"./cu.ts\");\nvar module_cs2 = __webpack_require__(/*! ./cs */ \"./cs.ts\");\nvar module_dj3 = __webpack_require__(/*! ./dj */ \"./dj.ts\");\nvar module_cb4 = __webpack_require__(/*! ./cb */ \"./cb.ts\");\nvar module_de5 = __webpack_require__(/*! ./de */ \"./de.ts\");\nvar module_bu6 = __webpack_require__(/*! ./bu */ \"./bu.ts\");\nvar module_cw7 = __webpack_require__(/*! ./cw */ \"./cw.ts\");\nvar module_p8 = __webpack_require__(/*! ./p */ \"./p.ts\");\nvar module_ch9 = __webpack_require__(/*! ./ch */ \"./ch.ts\");\nT.doSomething();\nQ.doSomething();\nN.doSomething();\nmodule_bh0.doSomething();\nmodule_cu1.doSomething();\nmodule_cs2.doSomething();\nmodule_dj3.doSomething();\nmodule_cb4.doSomething();\nmodule_de5.doSomething();\nmodule_bu6.doSomething();\nmodule_cw7.doSomething();\nmodule_p8.doSomething();\nmodule_ch9.doSomething();\nfunction doSomething() { }\nexports.doSomething = doSomething;\n\n\n//# sourceURL=webpack:///./k.ts?");
+
+/***/ }),
+
+/***/ "./p.ts":
+/*!**************!*\
+ !*** ./p.ts ***!
+ \**************/
+/*! no static exports found */
+/***/ (function(module, exports, __webpack_require__) {
+
+"use strict";
+eval("\nexports.__esModule = true;\n/// \n/// \n/// \nvar module_q0 = __webpack_require__(/*! ./q */ \"./q.ts\");\nvar module_s1 = __webpack_require__(/*! ./s */ \"./s.ts\");\nvar module_y2 = __webpack_require__(/*! ./y */ \"./y.ts\");\nvar module_bf3 = __webpack_require__(/*! ./bf */ \"./bf.ts\");\nvar module_y4 = __webpack_require__(/*! ./y */ \"./y.ts\");\nvar module_bh5 = __webpack_require__(/*! ./bh */ \"./bh.ts\");\nvar module_s6 = __webpack_require__(/*! ./s */ \"./s.ts\");\nvar module_cm7 = __webpack_require__(/*! ./cm */ \"./cm.ts\");\nvar module_dr8 = __webpack_require__(/*! ./dr */ \"./dr.ts\");\nvar module_cv9 = __webpack_require__(/*! ./cv */ \"./cv.ts\");\nG.doSomething();\nB.doSomething();\nE.doSomething();\nmodule_q0.doSomething();\nmodule_s1.doSomething();\nmodule_y2.doSomething();\nmodule_bf3.doSomething();\nmodule_y4.doSomething();\nmodule_bh5.doSomething();\nmodule_s6.doSomething();\nmodule_cm7.doSomething();\nmodule_dr8.doSomething();\nmodule_cv9.doSomething();\nfunction doSomething() { }\nexports.doSomething = doSomething;\n\n\n//# sourceURL=webpack:///./p.ts?");
+
+/***/ }),
+
+/***/ "./q.ts":
+/*!**************!*\
+ !*** ./q.ts ***!
+ \**************/
+/*! no static exports found */
+/***/ (function(module, exports, __webpack_require__) {
+
+"use strict";
+eval("\nexports.__esModule = true;\n/// \n/// \n/// \nvar module_ci0 = __webpack_require__(/*! ./ci */ \"./ci.ts\");\nvar module_bp1 = __webpack_require__(/*! ./bp */ \"./bp.ts\");\nvar module_dv2 = __webpack_require__(/*! ./dv */ \"./dv.ts\");\nvar module_cc3 = __webpack_require__(/*! ./cc */ \"./cc.ts\");\nvar module_cn4 = __webpack_require__(/*! ./cn */ \"./cn.ts\");\nvar module_bg5 = __webpack_require__(/*! ./bg */ \"./bg.ts\");\nvar module_db6 = __webpack_require__(/*! ./db */ \"./db.ts\");\nvar module_dj7 = __webpack_require__(/*! ./dj */ \"./dj.ts\");\nvar module_du8 = __webpack_require__(/*! ./du */ \"./du.ts\");\nvar module_bx9 = __webpack_require__(/*! ./bx */ \"./bx.ts\");\nN.doSomething();\nD.doSomething();\nK.doSomething();\nmodule_ci0.doSomething();\nmodule_bp1.doSomething();\nmodule_dv2.doSomething();\nmodule_cc3.doSomething();\nmodule_cn4.doSomething();\nmodule_bg5.doSomething();\nmodule_db6.doSomething();\nmodule_dj7.doSomething();\nmodule_du8.doSomething();\nmodule_bx9.doSomething();\nfunction doSomething() { }\nexports.doSomething = doSomething;\n\n\n//# sourceURL=webpack:///./q.ts?");
+
+/***/ }),
+
+/***/ "./s.ts":
+/*!**************!*\
+ !*** ./s.ts ***!
+ \**************/
+/*! no static exports found */
+/***/ (function(module, exports, __webpack_require__) {
+
+"use strict";
+eval("\nexports.__esModule = true;\n/// \n/// \n/// \nvar module_bm0 = __webpack_require__(/*! ./bm */ \"./bm.ts\");\nvar module_do1 = __webpack_require__(/*! ./do */ \"./do.ts\");\nvar module_cd2 = __webpack_require__(/*! ./cd */ \"./cd.ts\");\nvar module_cq3 = __webpack_require__(/*! ./cq */ \"./cq.ts\");\nvar module_dm4 = __webpack_require__(/*! ./dm */ \"./dm.ts\");\nvar module_do5 = __webpack_require__(/*! ./do */ \"./do.ts\");\nvar module_cs6 = __webpack_require__(/*! ./cs */ \"./cs.ts\");\nvar module_dl7 = __webpack_require__(/*! ./dl */ \"./dl.ts\");\nvar module_cp8 = __webpack_require__(/*! ./cp */ \"./cp.ts\");\nvar module_y9 = __webpack_require__(/*! ./y */ \"./y.ts\");\nR.doSomething();\nN.doSomething();\nI.doSomething();\nmodule_bm0.doSomething();\nmodule_do1.doSomething();\nmodule_cd2.doSomething();\nmodule_cq3.doSomething();\nmodule_dm4.doSomething();\nmodule_do5.doSomething();\nmodule_cs6.doSomething();\nmodule_dl7.doSomething();\nmodule_cp8.doSomething();\nmodule_y9.doSomething();\nfunction doSomething() { }\nexports.doSomething = doSomething;\n\n\n//# sourceURL=webpack:///./s.ts?");
+
+/***/ }),
+
+/***/ "./t.ts":
+/*!**************!*\
+ !*** ./t.ts ***!
+ \**************/
+/*! no static exports found */
+/***/ (function(module, exports, __webpack_require__) {
+
+"use strict";
+eval("\nexports.__esModule = true;\n/// \n/// \n/// \nvar module_y0 = __webpack_require__(/*! ./y */ \"./y.ts\");\nvar module_bd1 = __webpack_require__(/*! ./bd */ \"./bd.ts\");\nvar module_bm2 = __webpack_require__(/*! ./bm */ \"./bm.ts\");\nvar module_dv3 = __webpack_require__(/*! ./dv */ \"./dv.ts\");\nvar module_ba4 = __webpack_require__(/*! ./ba */ \"./ba.ts\");\nvar module_dp5 = __webpack_require__(/*! ./dp */ \"./dp.ts\");\nvar module_cc6 = __webpack_require__(/*! ./cc */ \"./cc.ts\");\nvar module_bw7 = __webpack_require__(/*! ./bw */ \"./bw.ts\");\nvar module_dq8 = __webpack_require__(/*! ./dq */ \"./dq.ts\");\nvar module_bz9 = __webpack_require__(/*! ./bz */ \"./bz.ts\");\nK.doSomething();\nH.doSomething();\nO.doSomething();\nmodule_y0.doSomething();\nmodule_bd1.doSomething();\nmodule_bm2.doSomething();\nmodule_dv3.doSomething();\nmodule_ba4.doSomething();\nmodule_dp5.doSomething();\nmodule_cc6.doSomething();\nmodule_bw7.doSomething();\nmodule_dq8.doSomething();\nmodule_bz9.doSomething();\nfunction doSomething() { }\nexports.doSomething = doSomething;\n\n\n//# sourceURL=webpack:///./t.ts?");
+
+/***/ }),
+
+/***/ "./y.ts":
+/*!**************!*\
+ !*** ./y.ts ***!
+ \**************/
+/*! no static exports found */
+/***/ (function(module, exports, __webpack_require__) {
+
+"use strict";
+eval("\nexports.__esModule = true;\n/// \n/// \n/// \nvar module_dm0 = __webpack_require__(/*! ./dm */ \"./dm.ts\");\nvar module_cc1 = __webpack_require__(/*! ./cc */ \"./cc.ts\");\nvar module_cc2 = __webpack_require__(/*! ./cc */ \"./cc.ts\");\nvar module_br3 = __webpack_require__(/*! ./br */ \"./br.ts\");\nvar module_cg4 = __webpack_require__(/*! ./cg */ \"./cg.ts\");\nvar module_bf5 = __webpack_require__(/*! ./bf */ \"./bf.ts\");\nvar module_bi6 = __webpack_require__(/*! ./bi */ \"./bi.ts\");\nvar module_ba7 = __webpack_require__(/*! ./ba */ \"./ba.ts\");\nvar module_bz8 = __webpack_require__(/*! ./bz */ \"./bz.ts\");\nvar module_cu9 = __webpack_require__(/*! ./cu */ \"./cu.ts\");\nS.doSomething();\nB.doSomething();\nG.doSomething();\nmodule_dm0.doSomething();\nmodule_cc1.doSomething();\nmodule_cc2.doSomething();\nmodule_br3.doSomething();\nmodule_cg4.doSomething();\nmodule_bf5.doSomething();\nmodule_bi6.doSomething();\nmodule_ba7.doSomething();\nmodule_bz8.doSomething();\nmodule_cu9.doSomething();\nfunction doSomething() { }\nexports.doSomething = doSomething;\n\n\n//# sourceURL=webpack:///./y.ts?");
+
+/***/ })
+
+/******/ });
\ No newline at end of file
diff --git a/test/comparison-tests/large/expectedOutput-2.8/output.transpiled.txt b/test/comparison-tests/large/expectedOutput-2.8/output.transpiled.txt
new file mode 100644
index 000000000..4100ea158
--- /dev/null
+++ b/test/comparison-tests/large/expectedOutput-2.8/output.transpiled.txt
@@ -0,0 +1,20 @@
+Built at: 2018-3-18 09:19:13
+ Asset Size Chunks Chunk Names
+bundle.js 107 KiB main [emitted] main
+Entrypoint main = bundle.js
+[./a.ts] 844 bytes {main} [built]
+[./bb.ts] 850 bytes {main} [built]
+[./bl.ts] 850 bytes {main} [built]
+[./bm.ts] 850 bytes {main} [built]
+[./bn.ts] 850 bytes {main} [built]
+[./cg.ts] 850 bytes {main} [built]
+[./cp.ts] 850 bytes {main} [built]
+[./cx.ts] 850 bytes {main} [built]
+[./db.ts] 850 bytes {main} [built]
+[./dg.ts] 850 bytes {main} [built]
+[./di.ts] 850 bytes {main} [built]
+[./dt.ts] 370 bytes {main} [built]
+[./du.ts] 310 bytes {main} [built]
+[./k.ts] 847 bytes {main} [built]
+[./t.ts] 847 bytes {main} [built]
+ + 65 hidden modules
\ No newline at end of file
diff --git a/test/comparison-tests/large/expectedOutput-2.8/output.txt b/test/comparison-tests/large/expectedOutput-2.8/output.txt
new file mode 100644
index 000000000..74ce8bbd8
--- /dev/null
+++ b/test/comparison-tests/large/expectedOutput-2.8/output.txt
@@ -0,0 +1,20 @@
+Built at: 2018-3-18 09:19:10
+ Asset Size Chunks Chunk Names
+bundle.js 107 KiB main [emitted] main
+Entrypoint main = bundle.js
+[./a.ts] 844 bytes {main} [built]
+[./bb.ts] 850 bytes {main} [built]
+[./bl.ts] 850 bytes {main} [built]
+[./bm.ts] 850 bytes {main} [built]
+[./bn.ts] 850 bytes {main} [built]
+[./cg.ts] 850 bytes {main} [built]
+[./cp.ts] 850 bytes {main} [built]
+[./cx.ts] 850 bytes {main} [built]
+[./db.ts] 850 bytes {main} [built]
+[./dg.ts] 850 bytes {main} [built]
+[./di.ts] 850 bytes {main} [built]
+[./dt.ts] 370 bytes {main} [built]
+[./du.ts] 310 bytes {main} [built]
+[./k.ts] 847 bytes {main} [built]
+[./t.ts] 847 bytes {main} [built]
+ + 65 hidden modules
\ No newline at end of file
diff --git a/test/comparison-tests/localTsImplementationOfTypings/expectedOutput-2.8/bundle.js b/test/comparison-tests/localTsImplementationOfTypings/expectedOutput-2.8/bundle.js
new file mode 100644
index 000000000..c3e89bb91
--- /dev/null
+++ b/test/comparison-tests/localTsImplementationOfTypings/expectedOutput-2.8/bundle.js
@@ -0,0 +1,98 @@
+/******/ (function(modules) { // webpackBootstrap
+/******/ // The module cache
+/******/ var installedModules = {};
+/******/
+/******/ // The require function
+/******/ function __webpack_require__(moduleId) {
+/******/
+/******/ // Check if module is in cache
+/******/ if(installedModules[moduleId]) {
+/******/ return installedModules[moduleId].exports;
+/******/ }
+/******/ // Create a new module (and put it into the cache)
+/******/ var module = installedModules[moduleId] = {
+/******/ i: moduleId,
+/******/ l: false,
+/******/ exports: {}
+/******/ };
+/******/
+/******/ // Execute the module function
+/******/ modules[moduleId].call(module.exports, module, module.exports, __webpack_require__);
+/******/
+/******/ // Flag the module as loaded
+/******/ module.l = true;
+/******/
+/******/ // Return the exports of the module
+/******/ return module.exports;
+/******/ }
+/******/
+/******/
+/******/ // expose the modules object (__webpack_modules__)
+/******/ __webpack_require__.m = modules;
+/******/
+/******/ // expose the module cache
+/******/ __webpack_require__.c = installedModules;
+/******/
+/******/ // define getter function for harmony exports
+/******/ __webpack_require__.d = function(exports, name, getter) {
+/******/ if(!__webpack_require__.o(exports, name)) {
+/******/ Object.defineProperty(exports, name, {
+/******/ configurable: false,
+/******/ enumerable: true,
+/******/ get: getter
+/******/ });
+/******/ }
+/******/ };
+/******/
+/******/ // define __esModule on exports
+/******/ __webpack_require__.r = function(exports) {
+/******/ Object.defineProperty(exports, '__esModule', { value: true });
+/******/ };
+/******/
+/******/ // getDefaultExport function for compatibility with non-harmony modules
+/******/ __webpack_require__.n = function(module) {
+/******/ var getter = module && module.__esModule ?
+/******/ function getDefault() { return module['default']; } :
+/******/ function getModuleExports() { return module; };
+/******/ __webpack_require__.d(getter, 'a', getter);
+/******/ return getter;
+/******/ };
+/******/
+/******/ // Object.prototype.hasOwnProperty.call
+/******/ __webpack_require__.o = function(object, property) { return Object.prototype.hasOwnProperty.call(object, property); };
+/******/
+/******/ // __webpack_public_path__
+/******/ __webpack_require__.p = "";
+/******/
+/******/
+/******/ // Load entry module and return exports
+/******/ return __webpack_require__(__webpack_require__.s = "./app.ts");
+/******/ })
+/************************************************************************/
+/******/ ({
+
+/***/ "./app.ts":
+/*!****************!*\
+ !*** ./app.ts ***!
+ \****************/
+/*! no static exports found */
+/***/ (function(module, exports, __webpack_require__) {
+
+"use strict";
+eval("\nexports.__esModule = true;\nvar myComponent = __webpack_require__(/*! api */ \"./fake.ts\");\nconsole.log(myComponent);\n\n\n//# sourceURL=webpack:///./app.ts?");
+
+/***/ }),
+
+/***/ "./fake.ts":
+/*!*****************!*\
+ !*** ./fake.ts ***!
+ \*****************/
+/*! no static exports found */
+/***/ (function(module, exports, __webpack_require__) {
+
+"use strict";
+eval("\nexports.__esModule = true;\nfunction sayHello(name) {\n return \"Hello, \" + name + \"!\";\n}\nexports.sayHello = sayHello;\n\n\n//# sourceURL=webpack:///./fake.ts?");
+
+/***/ })
+
+/******/ });
\ No newline at end of file
diff --git a/test/comparison-tests/localTsImplementationOfTypings/expectedOutput-2.8/output.transpiled.txt b/test/comparison-tests/localTsImplementationOfTypings/expectedOutput-2.8/output.transpiled.txt
new file mode 100644
index 000000000..cd84e12f1
--- /dev/null
+++ b/test/comparison-tests/localTsImplementationOfTypings/expectedOutput-2.8/output.transpiled.txt
@@ -0,0 +1,6 @@
+Built at: 2018-2-11 17:54:32
+ Asset Size Chunks Chunk Names
+bundle.js 3.3 KiB main [emitted] main
+Entrypoint main = bundle.js
+[./app.ts] 101 bytes {main} [built]
+[./fake.ts] 133 bytes {main} [built]
\ No newline at end of file
diff --git a/test/comparison-tests/localTsImplementationOfTypings/expectedOutput-2.8/output.txt b/test/comparison-tests/localTsImplementationOfTypings/expectedOutput-2.8/output.txt
new file mode 100644
index 000000000..fdb26b0a6
--- /dev/null
+++ b/test/comparison-tests/localTsImplementationOfTypings/expectedOutput-2.8/output.txt
@@ -0,0 +1,6 @@
+Built at: 2018-3-18 09:19:17
+ Asset Size Chunks Chunk Names
+bundle.js 3.3 KiB main [emitted] main
+Entrypoint main = bundle.js
+[./app.ts] 101 bytes {main} [built]
+[./fake.ts] 133 bytes {main} [built]
\ No newline at end of file
diff --git a/test/comparison-tests/node/expectedOutput-2.8/bundle.js b/test/comparison-tests/node/expectedOutput-2.8/bundle.js
new file mode 100644
index 000000000..d4a45aa10
--- /dev/null
+++ b/test/comparison-tests/node/expectedOutput-2.8/bundle.js
@@ -0,0 +1,85 @@
+/******/ (function(modules) { // webpackBootstrap
+/******/ // The module cache
+/******/ var installedModules = {};
+/******/
+/******/ // The require function
+/******/ function __webpack_require__(moduleId) {
+/******/
+/******/ // Check if module is in cache
+/******/ if(installedModules[moduleId]) {
+/******/ return installedModules[moduleId].exports;
+/******/ }
+/******/ // Create a new module (and put it into the cache)
+/******/ var module = installedModules[moduleId] = {
+/******/ i: moduleId,
+/******/ l: false,
+/******/ exports: {}
+/******/ };
+/******/
+/******/ // Execute the module function
+/******/ modules[moduleId].call(module.exports, module, module.exports, __webpack_require__);
+/******/
+/******/ // Flag the module as loaded
+/******/ module.l = true;
+/******/
+/******/ // Return the exports of the module
+/******/ return module.exports;
+/******/ }
+/******/
+/******/
+/******/ // expose the modules object (__webpack_modules__)
+/******/ __webpack_require__.m = modules;
+/******/
+/******/ // expose the module cache
+/******/ __webpack_require__.c = installedModules;
+/******/
+/******/ // define getter function for harmony exports
+/******/ __webpack_require__.d = function(exports, name, getter) {
+/******/ if(!__webpack_require__.o(exports, name)) {
+/******/ Object.defineProperty(exports, name, {
+/******/ configurable: false,
+/******/ enumerable: true,
+/******/ get: getter
+/******/ });
+/******/ }
+/******/ };
+/******/
+/******/ // define __esModule on exports
+/******/ __webpack_require__.r = function(exports) {
+/******/ Object.defineProperty(exports, '__esModule', { value: true });
+/******/ };
+/******/
+/******/ // getDefaultExport function for compatibility with non-harmony modules
+/******/ __webpack_require__.n = function(module) {
+/******/ var getter = module && module.__esModule ?
+/******/ function getDefault() { return module['default']; } :
+/******/ function getModuleExports() { return module; };
+/******/ __webpack_require__.d(getter, 'a', getter);
+/******/ return getter;
+/******/ };
+/******/
+/******/ // Object.prototype.hasOwnProperty.call
+/******/ __webpack_require__.o = function(object, property) { return Object.prototype.hasOwnProperty.call(object, property); };
+/******/
+/******/ // __webpack_public_path__
+/******/ __webpack_require__.p = "";
+/******/
+/******/
+/******/ // Load entry module and return exports
+/******/ return __webpack_require__(__webpack_require__.s = "./app.ts");
+/******/ })
+/************************************************************************/
+/******/ ({
+
+/***/ "./app.ts":
+/*!****************!*\
+ !*** ./app.ts ***!
+ \****************/
+/*! no static exports found */
+/***/ (function(module, exports) {
+
+eval("/// \n\n\n//# sourceURL=webpack:///./app.ts?");
+
+/***/ })
+
+/******/ });
\ No newline at end of file
diff --git a/test/comparison-tests/node/expectedOutput-2.8/output.txt b/test/comparison-tests/node/expectedOutput-2.8/output.txt
new file mode 100644
index 000000000..6ccc9ece5
--- /dev/null
+++ b/test/comparison-tests/node/expectedOutput-2.8/output.txt
@@ -0,0 +1,5 @@
+Built at: 2018-3-18 09:19:22
+ Asset Size Chunks Chunk Names
+bundle.js 2.84 KiB main [emitted] main
+Entrypoint main = bundle.js
+[./app.ts] 67 bytes {main} [built]
\ No newline at end of file
diff --git a/test/comparison-tests/nodeModulesMeaningfulErrorWhenImportingTs/expectedOutput-2.8/bundle.js b/test/comparison-tests/nodeModulesMeaningfulErrorWhenImportingTs/expectedOutput-2.8/bundle.js
new file mode 100644
index 000000000..c1758738d
--- /dev/null
+++ b/test/comparison-tests/nodeModulesMeaningfulErrorWhenImportingTs/expectedOutput-2.8/bundle.js
@@ -0,0 +1,97 @@
+/******/ (function(modules) { // webpackBootstrap
+/******/ // The module cache
+/******/ var installedModules = {};
+/******/
+/******/ // The require function
+/******/ function __webpack_require__(moduleId) {
+/******/
+/******/ // Check if module is in cache
+/******/ if(installedModules[moduleId]) {
+/******/ return installedModules[moduleId].exports;
+/******/ }
+/******/ // Create a new module (and put it into the cache)
+/******/ var module = installedModules[moduleId] = {
+/******/ i: moduleId,
+/******/ l: false,
+/******/ exports: {}
+/******/ };
+/******/
+/******/ // Execute the module function
+/******/ modules[moduleId].call(module.exports, module, module.exports, __webpack_require__);
+/******/
+/******/ // Flag the module as loaded
+/******/ module.l = true;
+/******/
+/******/ // Return the exports of the module
+/******/ return module.exports;
+/******/ }
+/******/
+/******/
+/******/ // expose the modules object (__webpack_modules__)
+/******/ __webpack_require__.m = modules;
+/******/
+/******/ // expose the module cache
+/******/ __webpack_require__.c = installedModules;
+/******/
+/******/ // define getter function for harmony exports
+/******/ __webpack_require__.d = function(exports, name, getter) {
+/******/ if(!__webpack_require__.o(exports, name)) {
+/******/ Object.defineProperty(exports, name, {
+/******/ configurable: false,
+/******/ enumerable: true,
+/******/ get: getter
+/******/ });
+/******/ }
+/******/ };
+/******/
+/******/ // define __esModule on exports
+/******/ __webpack_require__.r = function(exports) {
+/******/ Object.defineProperty(exports, '__esModule', { value: true });
+/******/ };
+/******/
+/******/ // getDefaultExport function for compatibility with non-harmony modules
+/******/ __webpack_require__.n = function(module) {
+/******/ var getter = module && module.__esModule ?
+/******/ function getDefault() { return module['default']; } :
+/******/ function getModuleExports() { return module; };
+/******/ __webpack_require__.d(getter, 'a', getter);
+/******/ return getter;
+/******/ };
+/******/
+/******/ // Object.prototype.hasOwnProperty.call
+/******/ __webpack_require__.o = function(object, property) { return Object.prototype.hasOwnProperty.call(object, property); };
+/******/
+/******/ // __webpack_public_path__
+/******/ __webpack_require__.p = "";
+/******/
+/******/
+/******/ // Load entry module and return exports
+/******/ return __webpack_require__(__webpack_require__.s = "./app.ts");
+/******/ })
+/************************************************************************/
+/******/ ({
+
+/***/ "./app.ts":
+/*!****************!*\
+ !*** ./app.ts ***!
+ \****************/
+/*! no static exports found */
+/***/ (function(module, exports, __webpack_require__) {
+
+"use strict";
+eval("\nexports.__esModule = true;\nvar a = __webpack_require__(/*! a */ \"./node_modules/a/index.ts\");\nconsole.log(a);\n\n\n//# sourceURL=webpack:///./app.ts?");
+
+/***/ }),
+
+/***/ "./node_modules/a/index.ts":
+/*!*********************************!*\
+ !*** ./node_modules/a/index.ts ***!
+ \*********************************/
+/*! no static exports found */
+/***/ (function(module, exports) {
+
+eval("throw new Error(\"Module build failed: Error: Typescript emitted no output for C://source//ts-loader//.test//nodeModulesMeaningfulErrorWhenImportingTs//node_modules//a//index.ts./nYou should not need to recompile .ts files in node_modules./nPlease contact the package author to advise them to use --declaration --outDir./nMore https://github.com/Microsoft/TypeScript/issues/12358/n at successLoader (C://source//ts-loader//dist//index.js:39:15)/n at Object.loader (C://source//ts-loader//dist//index.js:21:12)\");\n\n//# sourceURL=webpack:///./node_modules/a/index.ts?");
+
+/***/ })
+
+/******/ });
\ No newline at end of file
diff --git a/test/comparison-tests/nodeModulesMeaningfulErrorWhenImportingTs/expectedOutput-2.8/bundle.transpiled.js b/test/comparison-tests/nodeModulesMeaningfulErrorWhenImportingTs/expectedOutput-2.8/bundle.transpiled.js
new file mode 100644
index 000000000..9c84bd3b2
--- /dev/null
+++ b/test/comparison-tests/nodeModulesMeaningfulErrorWhenImportingTs/expectedOutput-2.8/bundle.transpiled.js
@@ -0,0 +1,98 @@
+/******/ (function(modules) { // webpackBootstrap
+/******/ // The module cache
+/******/ var installedModules = {};
+/******/
+/******/ // The require function
+/******/ function __webpack_require__(moduleId) {
+/******/
+/******/ // Check if module is in cache
+/******/ if(installedModules[moduleId]) {
+/******/ return installedModules[moduleId].exports;
+/******/ }
+/******/ // Create a new module (and put it into the cache)
+/******/ var module = installedModules[moduleId] = {
+/******/ i: moduleId,
+/******/ l: false,
+/******/ exports: {}
+/******/ };
+/******/
+/******/ // Execute the module function
+/******/ modules[moduleId].call(module.exports, module, module.exports, __webpack_require__);
+/******/
+/******/ // Flag the module as loaded
+/******/ module.l = true;
+/******/
+/******/ // Return the exports of the module
+/******/ return module.exports;
+/******/ }
+/******/
+/******/
+/******/ // expose the modules object (__webpack_modules__)
+/******/ __webpack_require__.m = modules;
+/******/
+/******/ // expose the module cache
+/******/ __webpack_require__.c = installedModules;
+/******/
+/******/ // define getter function for harmony exports
+/******/ __webpack_require__.d = function(exports, name, getter) {
+/******/ if(!__webpack_require__.o(exports, name)) {
+/******/ Object.defineProperty(exports, name, {
+/******/ configurable: false,
+/******/ enumerable: true,
+/******/ get: getter
+/******/ });
+/******/ }
+/******/ };
+/******/
+/******/ // define __esModule on exports
+/******/ __webpack_require__.r = function(exports) {
+/******/ Object.defineProperty(exports, '__esModule', { value: true });
+/******/ };
+/******/
+/******/ // getDefaultExport function for compatibility with non-harmony modules
+/******/ __webpack_require__.n = function(module) {
+/******/ var getter = module && module.__esModule ?
+/******/ function getDefault() { return module['default']; } :
+/******/ function getModuleExports() { return module; };
+/******/ __webpack_require__.d(getter, 'a', getter);
+/******/ return getter;
+/******/ };
+/******/
+/******/ // Object.prototype.hasOwnProperty.call
+/******/ __webpack_require__.o = function(object, property) { return Object.prototype.hasOwnProperty.call(object, property); };
+/******/
+/******/ // __webpack_public_path__
+/******/ __webpack_require__.p = "";
+/******/
+/******/
+/******/ // Load entry module and return exports
+/******/ return __webpack_require__(__webpack_require__.s = "./app.ts");
+/******/ })
+/************************************************************************/
+/******/ ({
+
+/***/ "./app.ts":
+/*!****************!*\
+ !*** ./app.ts ***!
+ \****************/
+/*! no static exports found */
+/***/ (function(module, exports, __webpack_require__) {
+
+"use strict";
+eval("\nexports.__esModule = true;\nvar a = __webpack_require__(/*! a */ \"./node_modules/a/index.ts\");\nconsole.log(a);\n\n\n//# sourceURL=webpack:///./app.ts?");
+
+/***/ }),
+
+/***/ "./node_modules/a/index.ts":
+/*!*********************************!*\
+ !*** ./node_modules/a/index.ts ***!
+ \*********************************/
+/*! no static exports found */
+/***/ (function(module, exports, __webpack_require__) {
+
+"use strict";
+eval("\nvar elephant = \"In the room\";\nmodule.exports = elephant;\n\n\n//# sourceURL=webpack:///./node_modules/a/index.ts?");
+
+/***/ })
+
+/******/ });
\ No newline at end of file
diff --git a/test/comparison-tests/nodeModulesMeaningfulErrorWhenImportingTs/expectedOutput-2.8/output.transpiled.txt b/test/comparison-tests/nodeModulesMeaningfulErrorWhenImportingTs/expectedOutput-2.8/output.transpiled.txt
new file mode 100644
index 000000000..ebde470ea
--- /dev/null
+++ b/test/comparison-tests/nodeModulesMeaningfulErrorWhenImportingTs/expectedOutput-2.8/output.transpiled.txt
@@ -0,0 +1,6 @@
+Built at: 2018-3-18 09:19:28
+ Asset Size Chunks Chunk Names
+bundle.js 3.3 KiB main [emitted] main
+Entrypoint main = bundle.js
+[./app.ts] 79 bytes {main} [built]
+[./node_modules/a/index.ts] 71 bytes {main} [built]
\ No newline at end of file
diff --git a/test/comparison-tests/nodeModulesMeaningfulErrorWhenImportingTs/expectedOutput-2.8/output.txt b/test/comparison-tests/nodeModulesMeaningfulErrorWhenImportingTs/expectedOutput-2.8/output.txt
new file mode 100644
index 000000000..e4fd2371b
--- /dev/null
+++ b/test/comparison-tests/nodeModulesMeaningfulErrorWhenImportingTs/expectedOutput-2.8/output.txt
@@ -0,0 +1,15 @@
+Built at: 2018-3-18 09:19:27
+ Asset Size Chunks Chunk Names
+bundle.js 3.75 KiB main [emitted] main
+Entrypoint main = bundle.js
+[./app.ts] 79 bytes {main} [built]
+[./node_modules/a/index.ts] 517 bytes {main} [built] [failed] [1 error]
+
+ERROR in ./node_modules/a/index.ts
+Module build failed: Error: Typescript emitted no output for node_modules\a\index.ts.
+You should not need to recompile .ts files in node_modules.
+Please contact the package author to advise them to use --declaration --outDir.
+More https://github.com/Microsoft/TypeScript/issues/12358
+ at successLoader (dist\index.js:39:15)
+ at Object.loader (dist\index.js:21:12)
+ @ ./app.ts 3:8-20
\ No newline at end of file
diff --git a/test/comparison-tests/nodeResolution/expectedOutput-2.8/bundle.js b/test/comparison-tests/nodeResolution/expectedOutput-2.8/bundle.js
new file mode 100644
index 000000000..cac2a9335
--- /dev/null
+++ b/test/comparison-tests/nodeResolution/expectedOutput-2.8/bundle.js
@@ -0,0 +1,97 @@
+/******/ (function(modules) { // webpackBootstrap
+/******/ // The module cache
+/******/ var installedModules = {};
+/******/
+/******/ // The require function
+/******/ function __webpack_require__(moduleId) {
+/******/
+/******/ // Check if module is in cache
+/******/ if(installedModules[moduleId]) {
+/******/ return installedModules[moduleId].exports;
+/******/ }
+/******/ // Create a new module (and put it into the cache)
+/******/ var module = installedModules[moduleId] = {
+/******/ i: moduleId,
+/******/ l: false,
+/******/ exports: {}
+/******/ };
+/******/
+/******/ // Execute the module function
+/******/ modules[moduleId].call(module.exports, module, module.exports, __webpack_require__);
+/******/
+/******/ // Flag the module as loaded
+/******/ module.l = true;
+/******/
+/******/ // Return the exports of the module
+/******/ return module.exports;
+/******/ }
+/******/
+/******/
+/******/ // expose the modules object (__webpack_modules__)
+/******/ __webpack_require__.m = modules;
+/******/
+/******/ // expose the module cache
+/******/ __webpack_require__.c = installedModules;
+/******/
+/******/ // define getter function for harmony exports
+/******/ __webpack_require__.d = function(exports, name, getter) {
+/******/ if(!__webpack_require__.o(exports, name)) {
+/******/ Object.defineProperty(exports, name, {
+/******/ configurable: false,
+/******/ enumerable: true,
+/******/ get: getter
+/******/ });
+/******/ }
+/******/ };
+/******/
+/******/ // define __esModule on exports
+/******/ __webpack_require__.r = function(exports) {
+/******/ Object.defineProperty(exports, '__esModule', { value: true });
+/******/ };
+/******/
+/******/ // getDefaultExport function for compatibility with non-harmony modules
+/******/ __webpack_require__.n = function(module) {
+/******/ var getter = module && module.__esModule ?
+/******/ function getDefault() { return module['default']; } :
+/******/ function getModuleExports() { return module; };
+/******/ __webpack_require__.d(getter, 'a', getter);
+/******/ return getter;
+/******/ };
+/******/
+/******/ // Object.prototype.hasOwnProperty.call
+/******/ __webpack_require__.o = function(object, property) { return Object.prototype.hasOwnProperty.call(object, property); };
+/******/
+/******/ // __webpack_public_path__
+/******/ __webpack_require__.p = "";
+/******/
+/******/
+/******/ // Load entry module and return exports
+/******/ return __webpack_require__(__webpack_require__.s = "./app.ts");
+/******/ })
+/************************************************************************/
+/******/ ({
+
+/***/ "./app.ts":
+/*!****************!*\
+ !*** ./app.ts ***!
+ \****************/
+/*! no static exports found */
+/***/ (function(module, exports, __webpack_require__) {
+
+"use strict";
+eval("\nexports.__esModule = true;\nvar a = __webpack_require__(/*! a */ \"./node_modules/a/index.js\");\nconsole.log(a);\n\n\n//# sourceURL=webpack:///./app.ts?");
+
+/***/ }),
+
+/***/ "./node_modules/a/index.js":
+/*!*********************************!*\
+ !*** ./node_modules/a/index.js ***!
+ \*********************************/
+/*! no static exports found */
+/***/ (function(module, exports) {
+
+eval("module.exports = 'a';\n\n//# sourceURL=webpack:///./node_modules/a/index.js?");
+
+/***/ })
+
+/******/ });
\ No newline at end of file
diff --git a/test/comparison-tests/nodeResolution/expectedOutput-2.8/output.transpiled.txt b/test/comparison-tests/nodeResolution/expectedOutput-2.8/output.transpiled.txt
new file mode 100644
index 000000000..2996c1ede
--- /dev/null
+++ b/test/comparison-tests/nodeResolution/expectedOutput-2.8/output.transpiled.txt
@@ -0,0 +1,6 @@
+Built at: 2018-3-18 09:19:34
+ Asset Size Chunks Chunk Names
+bundle.js 3.23 KiB main [emitted] main
+Entrypoint main = bundle.js
+[./app.ts] 79 bytes {main} [built]
+[./node_modules/a/index.js] 21 bytes {main} [built]
\ No newline at end of file
diff --git a/test/comparison-tests/nodeResolution/expectedOutput-2.8/output.txt b/test/comparison-tests/nodeResolution/expectedOutput-2.8/output.txt
new file mode 100644
index 000000000..86e6e0681
--- /dev/null
+++ b/test/comparison-tests/nodeResolution/expectedOutput-2.8/output.txt
@@ -0,0 +1,6 @@
+Built at: 2018-3-18 09:19:33
+ Asset Size Chunks Chunk Names
+bundle.js 3.23 KiB main [emitted] main
+Entrypoint main = bundle.js
+[./app.ts] 79 bytes {main} [built]
+[./node_modules/a/index.js] 21 bytes {main} [built]
\ No newline at end of file
diff --git a/test/comparison-tests/nolib/expectedOutput-2.8/bundle.js b/test/comparison-tests/nolib/expectedOutput-2.8/bundle.js
new file mode 100644
index 000000000..fe1569ba9
--- /dev/null
+++ b/test/comparison-tests/nolib/expectedOutput-2.8/bundle.js
@@ -0,0 +1,85 @@
+/******/ (function(modules) { // webpackBootstrap
+/******/ // The module cache
+/******/ var installedModules = {};
+/******/
+/******/ // The require function
+/******/ function __webpack_require__(moduleId) {
+/******/
+/******/ // Check if module is in cache
+/******/ if(installedModules[moduleId]) {
+/******/ return installedModules[moduleId].exports;
+/******/ }
+/******/ // Create a new module (and put it into the cache)
+/******/ var module = installedModules[moduleId] = {
+/******/ i: moduleId,
+/******/ l: false,
+/******/ exports: {}
+/******/ };
+/******/
+/******/ // Execute the module function
+/******/ modules[moduleId].call(module.exports, module, module.exports, __webpack_require__);
+/******/
+/******/ // Flag the module as loaded
+/******/ module.l = true;
+/******/
+/******/ // Return the exports of the module
+/******/ return module.exports;
+/******/ }
+/******/
+/******/
+/******/ // expose the modules object (__webpack_modules__)
+/******/ __webpack_require__.m = modules;
+/******/
+/******/ // expose the module cache
+/******/ __webpack_require__.c = installedModules;
+/******/
+/******/ // define getter function for harmony exports
+/******/ __webpack_require__.d = function(exports, name, getter) {
+/******/ if(!__webpack_require__.o(exports, name)) {
+/******/ Object.defineProperty(exports, name, {
+/******/ configurable: false,
+/******/ enumerable: true,
+/******/ get: getter
+/******/ });
+/******/ }
+/******/ };
+/******/
+/******/ // define __esModule on exports
+/******/ __webpack_require__.r = function(exports) {
+/******/ Object.defineProperty(exports, '__esModule', { value: true });
+/******/ };
+/******/
+/******/ // getDefaultExport function for compatibility with non-harmony modules
+/******/ __webpack_require__.n = function(module) {
+/******/ var getter = module && module.__esModule ?
+/******/ function getDefault() { return module['default']; } :
+/******/ function getModuleExports() { return module; };
+/******/ __webpack_require__.d(getter, 'a', getter);
+/******/ return getter;
+/******/ };
+/******/
+/******/ // Object.prototype.hasOwnProperty.call
+/******/ __webpack_require__.o = function(object, property) { return Object.prototype.hasOwnProperty.call(object, property); };
+/******/
+/******/ // __webpack_public_path__
+/******/ __webpack_require__.p = "";
+/******/
+/******/
+/******/ // Load entry module and return exports
+/******/ return __webpack_require__(__webpack_require__.s = "./app.ts");
+/******/ })
+/************************************************************************/
+/******/ ({
+
+/***/ "./app.ts":
+/*!****************!*\
+ !*** ./app.ts ***!
+ \****************/
+/*! no static exports found */
+/***/ (function(module, exports) {
+
+eval("parseInt('10');\n\n\n//# sourceURL=webpack:///./app.ts?");
+
+/***/ })
+
+/******/ });
\ No newline at end of file
diff --git a/test/comparison-tests/nolib/expectedOutput-2.8/output.transpiled.txt b/test/comparison-tests/nolib/expectedOutput-2.8/output.transpiled.txt
new file mode 100644
index 000000000..fc4988959
--- /dev/null
+++ b/test/comparison-tests/nolib/expectedOutput-2.8/output.transpiled.txt
@@ -0,0 +1,5 @@
+Built at: 2018-3-18 09:19:39
+ Asset Size Chunks Chunk Names
+bundle.js 2.79 KiB main [emitted] main
+Entrypoint main = bundle.js
+[./app.ts] 16 bytes {main} [built]
\ No newline at end of file
diff --git a/test/comparison-tests/nolib/expectedOutput-2.8/output.txt b/test/comparison-tests/nolib/expectedOutput-2.8/output.txt
new file mode 100644
index 000000000..eb8bfeb66
--- /dev/null
+++ b/test/comparison-tests/nolib/expectedOutput-2.8/output.txt
@@ -0,0 +1,38 @@
+Built at: 2018-3-18 09:19:39
+ Asset Size Chunks Chunk Names
+bundle.js 2.79 KiB main [emitted] main
+Entrypoint main = bundle.js
+[./app.ts] 16 bytes {main} [built] [1 error]
+
+ERROR in tsconfig.json
+[90m[tsl] [39m[1m[31mERROR[39m[22m
+[1m[31m TS2318: Cannot find global type 'Array'.[39m[22m
+
+ERROR in tsconfig.json
+[90m[tsl] [39m[1m[31mERROR[39m[22m
+[1m[31m TS2318: Cannot find global type 'Boolean'.[39m[22m
+
+ERROR in tsconfig.json
+[90m[tsl] [39m[1m[31mERROR[39m[22m
+[1m[31m TS2318: Cannot find global type 'Function'.[39m[22m
+
+ERROR in tsconfig.json
+[90m[tsl] [39m[1m[31mERROR[39m[22m
+[1m[31m TS2318: Cannot find global type 'IArguments'.[39m[22m
+
+ERROR in tsconfig.json
+[90m[tsl] [39m[1m[31mERROR[39m[22m
+[1m[31m TS2318: Cannot find global type 'Number'.[39m[22m
+
+ERROR in tsconfig.json
+[90m[tsl] [39m[1m[31mERROR[39m[22m
+[1m[31m TS2318: Cannot find global type 'Object'.[39m[22m
+
+ERROR in tsconfig.json
+[90m[tsl] [39m[1m[31mERROR[39m[22m
+[1m[31m TS2318: Cannot find global type 'RegExp'.[39m[22m
+
+ERROR in app.ts
+./app.ts
+[90m[tsl] [39m[1m[31mERROR[39m[22m[1m[31m in [39m[22m[1m[36mapp.ts(1,1)[39m[22m
+[1m[31m TS2304: Cannot find name 'parseInt'.[39m[22m
\ No newline at end of file
diff --git a/test/comparison-tests/npmLink/expectedOutput-2.8/bundle.js b/test/comparison-tests/npmLink/expectedOutput-2.8/bundle.js
new file mode 100644
index 000000000..83af703b1
--- /dev/null
+++ b/test/comparison-tests/npmLink/expectedOutput-2.8/bundle.js
@@ -0,0 +1,98 @@
+/******/ (function(modules) { // webpackBootstrap
+/******/ // The module cache
+/******/ var installedModules = {};
+/******/
+/******/ // The require function
+/******/ function __webpack_require__(moduleId) {
+/******/
+/******/ // Check if module is in cache
+/******/ if(installedModules[moduleId]) {
+/******/ return installedModules[moduleId].exports;
+/******/ }
+/******/ // Create a new module (and put it into the cache)
+/******/ var module = installedModules[moduleId] = {
+/******/ i: moduleId,
+/******/ l: false,
+/******/ exports: {}
+/******/ };
+/******/
+/******/ // Execute the module function
+/******/ modules[moduleId].call(module.exports, module, module.exports, __webpack_require__);
+/******/
+/******/ // Flag the module as loaded
+/******/ module.l = true;
+/******/
+/******/ // Return the exports of the module
+/******/ return module.exports;
+/******/ }
+/******/
+/******/
+/******/ // expose the modules object (__webpack_modules__)
+/******/ __webpack_require__.m = modules;
+/******/
+/******/ // expose the module cache
+/******/ __webpack_require__.c = installedModules;
+/******/
+/******/ // define getter function for harmony exports
+/******/ __webpack_require__.d = function(exports, name, getter) {
+/******/ if(!__webpack_require__.o(exports, name)) {
+/******/ Object.defineProperty(exports, name, {
+/******/ configurable: false,
+/******/ enumerable: true,
+/******/ get: getter
+/******/ });
+/******/ }
+/******/ };
+/******/
+/******/ // define __esModule on exports
+/******/ __webpack_require__.r = function(exports) {
+/******/ Object.defineProperty(exports, '__esModule', { value: true });
+/******/ };
+/******/
+/******/ // getDefaultExport function for compatibility with non-harmony modules
+/******/ __webpack_require__.n = function(module) {
+/******/ var getter = module && module.__esModule ?
+/******/ function getDefault() { return module['default']; } :
+/******/ function getModuleExports() { return module; };
+/******/ __webpack_require__.d(getter, 'a', getter);
+/******/ return getter;
+/******/ };
+/******/
+/******/ // Object.prototype.hasOwnProperty.call
+/******/ __webpack_require__.o = function(object, property) { return Object.prototype.hasOwnProperty.call(object, property); };
+/******/
+/******/ // __webpack_public_path__
+/******/ __webpack_require__.p = "";
+/******/
+/******/
+/******/ // Load entry module and return exports
+/******/ return __webpack_require__(__webpack_require__.s = "./app.ts");
+/******/ })
+/************************************************************************/
+/******/ ({
+
+/***/ "../../test/comparison-tests/testLib/foo.ts":
+/*!****************************************************************!*\
+ !*** C:/source/ts-loader/test/comparison-tests/testLib/foo.ts ***!
+ \****************************************************************/
+/*! no static exports found */
+/***/ (function(module, exports, __webpack_require__) {
+
+"use strict";
+eval("\nexports.__esModule = true;\nexports[\"default\"] = 'foo';\n\n\n//# sourceURL=webpack:///C:/source/ts-loader/test/comparison-tests/testLib/foo.ts?");
+
+/***/ }),
+
+/***/ "./app.ts":
+/*!****************!*\
+ !*** ./app.ts ***!
+ \****************/
+/*! no static exports found */
+/***/ (function(module, exports, __webpack_require__) {
+
+"use strict";
+eval("\nexports.__esModule = true;\nvar foo_1 = __webpack_require__(/*! lib/foo */ \"../../test/comparison-tests/testLib/foo.ts\");\nconsole.log(foo_1[\"default\"]);\n\n\n//# sourceURL=webpack:///./app.ts?");
+
+/***/ })
+
+/******/ });
\ No newline at end of file
diff --git a/test/comparison-tests/npmLink/expectedOutput-2.8/output.transpiled.txt b/test/comparison-tests/npmLink/expectedOutput-2.8/output.transpiled.txt
new file mode 100644
index 000000000..d0d55bde5
--- /dev/null
+++ b/test/comparison-tests/npmLink/expectedOutput-2.8/output.transpiled.txt
@@ -0,0 +1,6 @@
+Built at: 2018-3-18 09:19:44
+ Asset Size Chunks Chunk Names
+bundle.js 3.48 KiB main [emitted] main
+Entrypoint main = bundle.js
+[../../test/comparison-tests/testLib/foo.ts] /test/comparison-tests/testLib/foo.ts 69 bytes {main} [built]
+[./app.ts] 104 bytes {main} [built]
\ No newline at end of file
diff --git a/test/comparison-tests/npmLink/expectedOutput-2.8/output.txt b/test/comparison-tests/npmLink/expectedOutput-2.8/output.txt
new file mode 100644
index 000000000..f41cd0c02
--- /dev/null
+++ b/test/comparison-tests/npmLink/expectedOutput-2.8/output.txt
@@ -0,0 +1,6 @@
+Built at: 2018-3-18 09:19:43
+ Asset Size Chunks Chunk Names
+bundle.js 3.48 KiB main [emitted] main
+Entrypoint main = bundle.js
+[../../test/comparison-tests/testLib/foo.ts] /test/comparison-tests/testLib/foo.ts 69 bytes {main} [built]
+[./app.ts] 104 bytes {main} [built]
\ No newline at end of file
diff --git a/test/comparison-tests/onlyCompileBundledFiles/expectedOutput-2.8/bundle.js b/test/comparison-tests/onlyCompileBundledFiles/expectedOutput-2.8/bundle.js
new file mode 100644
index 000000000..cd4249da3
--- /dev/null
+++ b/test/comparison-tests/onlyCompileBundledFiles/expectedOutput-2.8/bundle.js
@@ -0,0 +1,109 @@
+/******/ (function(modules) { // webpackBootstrap
+/******/ // The module cache
+/******/ var installedModules = {};
+/******/
+/******/ // The require function
+/******/ function __webpack_require__(moduleId) {
+/******/
+/******/ // Check if module is in cache
+/******/ if(installedModules[moduleId]) {
+/******/ return installedModules[moduleId].exports;
+/******/ }
+/******/ // Create a new module (and put it into the cache)
+/******/ var module = installedModules[moduleId] = {
+/******/ i: moduleId,
+/******/ l: false,
+/******/ exports: {}
+/******/ };
+/******/
+/******/ // Execute the module function
+/******/ modules[moduleId].call(module.exports, module, module.exports, __webpack_require__);
+/******/
+/******/ // Flag the module as loaded
+/******/ module.l = true;
+/******/
+/******/ // Return the exports of the module
+/******/ return module.exports;
+/******/ }
+/******/
+/******/
+/******/ // expose the modules object (__webpack_modules__)
+/******/ __webpack_require__.m = modules;
+/******/
+/******/ // expose the module cache
+/******/ __webpack_require__.c = installedModules;
+/******/
+/******/ // define getter function for harmony exports
+/******/ __webpack_require__.d = function(exports, name, getter) {
+/******/ if(!__webpack_require__.o(exports, name)) {
+/******/ Object.defineProperty(exports, name, {
+/******/ configurable: false,
+/******/ enumerable: true,
+/******/ get: getter
+/******/ });
+/******/ }
+/******/ };
+/******/
+/******/ // define __esModule on exports
+/******/ __webpack_require__.r = function(exports) {
+/******/ Object.defineProperty(exports, '__esModule', { value: true });
+/******/ };
+/******/
+/******/ // getDefaultExport function for compatibility with non-harmony modules
+/******/ __webpack_require__.n = function(module) {
+/******/ var getter = module && module.__esModule ?
+/******/ function getDefault() { return module['default']; } :
+/******/ function getModuleExports() { return module; };
+/******/ __webpack_require__.d(getter, 'a', getter);
+/******/ return getter;
+/******/ };
+/******/
+/******/ // Object.prototype.hasOwnProperty.call
+/******/ __webpack_require__.o = function(object, property) { return Object.prototype.hasOwnProperty.call(object, property); };
+/******/
+/******/ // __webpack_public_path__
+/******/ __webpack_require__.p = "";
+/******/
+/******/
+/******/ // Load entry module and return exports
+/******/ return __webpack_require__(__webpack_require__.s = "./app.ts");
+/******/ })
+/************************************************************************/
+/******/ ({
+
+/***/ "./app.ts":
+/*!****************!*\
+ !*** ./app.ts ***!
+ \****************/
+/*! no static exports found */
+/***/ (function(module, exports, __webpack_require__) {
+
+"use strict";
+eval("\nexports.__esModule = true;\nvar submodule = __webpack_require__(/*! ./submodule/submodule */ \"./submodule/submodule.ts\");\nvar externalLib = __webpack_require__(/*! externalLib */ \"./lib/externalLib.js\");\nexternalLib.doSomething(submodule);\n\n\n//# sourceURL=webpack:///./app.ts?");
+
+/***/ }),
+
+/***/ "./lib/externalLib.js":
+/*!****************************!*\
+ !*** ./lib/externalLib.js ***!
+ \****************************/
+/*! no static exports found */
+/***/ (function(module, exports) {
+
+eval("module.exports = {\n doSomething: function() { } \n}\n\n//# sourceURL=webpack:///./lib/externalLib.js?");
+
+/***/ }),
+
+/***/ "./submodule/submodule.ts":
+/*!********************************!*\
+ !*** ./submodule/submodule.ts ***!
+ \********************************/
+/*! no static exports found */
+/***/ (function(module, exports, __webpack_require__) {
+
+"use strict";
+eval("\nvar externalLib = __webpack_require__(/*! externalLib */ \"./lib/externalLib.js\");\nexternalLib.doSomething(\"\");\nvar message = \"Hello from submodule\";\nmodule.exports = message;\n\n\n//# sourceURL=webpack:///./submodule/submodule.ts?");
+
+/***/ })
+
+/******/ });
\ No newline at end of file
diff --git a/test/comparison-tests/onlyCompileBundledFiles/expectedOutput-2.8/output.transpiled.txt b/test/comparison-tests/onlyCompileBundledFiles/expectedOutput-2.8/output.transpiled.txt
new file mode 100644
index 000000000..c193eb168
--- /dev/null
+++ b/test/comparison-tests/onlyCompileBundledFiles/expectedOutput-2.8/output.transpiled.txt
@@ -0,0 +1,7 @@
+Built at: 2018-3-18 09:19:54
+ Asset Size Chunks Chunk Names
+bundle.js 3.87 KiB main [emitted] main
+Entrypoint main = bundle.js
+[./app.ts] 169 bytes {main} [built]
+[./lib/externalLib.js] 55 bytes {main} [built]
+[./submodule/submodule.ts] 149 bytes {main} [built]
\ No newline at end of file
diff --git a/test/comparison-tests/onlyCompileBundledFiles/expectedOutput-2.8/output.txt b/test/comparison-tests/onlyCompileBundledFiles/expectedOutput-2.8/output.txt
new file mode 100644
index 000000000..839550248
--- /dev/null
+++ b/test/comparison-tests/onlyCompileBundledFiles/expectedOutput-2.8/output.txt
@@ -0,0 +1,7 @@
+Built at: 2018-3-18 09:19:48
+ Asset Size Chunks Chunk Names
+bundle.js 3.87 KiB main [emitted] main
+Entrypoint main = bundle.js
+[./app.ts] 169 bytes {main} [built]
+[./lib/externalLib.js] 55 bytes {main} [built]
+[./submodule/submodule.ts] 149 bytes {main} [built]
\ No newline at end of file
diff --git a/test/comparison-tests/onlyCompileBundledFiles/expectedOutput-2.8/patch0/bundle.js b/test/comparison-tests/onlyCompileBundledFiles/expectedOutput-2.8/patch0/bundle.js
new file mode 100644
index 000000000..8fd50ab48
--- /dev/null
+++ b/test/comparison-tests/onlyCompileBundledFiles/expectedOutput-2.8/patch0/bundle.js
@@ -0,0 +1,109 @@
+/******/ (function(modules) { // webpackBootstrap
+/******/ // The module cache
+/******/ var installedModules = {};
+/******/
+/******/ // The require function
+/******/ function __webpack_require__(moduleId) {
+/******/
+/******/ // Check if module is in cache
+/******/ if(installedModules[moduleId]) {
+/******/ return installedModules[moduleId].exports;
+/******/ }
+/******/ // Create a new module (and put it into the cache)
+/******/ var module = installedModules[moduleId] = {
+/******/ i: moduleId,
+/******/ l: false,
+/******/ exports: {}
+/******/ };
+/******/
+/******/ // Execute the module function
+/******/ modules[moduleId].call(module.exports, module, module.exports, __webpack_require__);
+/******/
+/******/ // Flag the module as loaded
+/******/ module.l = true;
+/******/
+/******/ // Return the exports of the module
+/******/ return module.exports;
+/******/ }
+/******/
+/******/
+/******/ // expose the modules object (__webpack_modules__)
+/******/ __webpack_require__.m = modules;
+/******/
+/******/ // expose the module cache
+/******/ __webpack_require__.c = installedModules;
+/******/
+/******/ // define getter function for harmony exports
+/******/ __webpack_require__.d = function(exports, name, getter) {
+/******/ if(!__webpack_require__.o(exports, name)) {
+/******/ Object.defineProperty(exports, name, {
+/******/ configurable: false,
+/******/ enumerable: true,
+/******/ get: getter
+/******/ });
+/******/ }
+/******/ };
+/******/
+/******/ // define __esModule on exports
+/******/ __webpack_require__.r = function(exports) {
+/******/ Object.defineProperty(exports, '__esModule', { value: true });
+/******/ };
+/******/
+/******/ // getDefaultExport function for compatibility with non-harmony modules
+/******/ __webpack_require__.n = function(module) {
+/******/ var getter = module && module.__esModule ?
+/******/ function getDefault() { return module['default']; } :
+/******/ function getModuleExports() { return module; };
+/******/ __webpack_require__.d(getter, 'a', getter);
+/******/ return getter;
+/******/ };
+/******/
+/******/ // Object.prototype.hasOwnProperty.call
+/******/ __webpack_require__.o = function(object, property) { return Object.prototype.hasOwnProperty.call(object, property); };
+/******/
+/******/ // __webpack_public_path__
+/******/ __webpack_require__.p = "";
+/******/
+/******/
+/******/ // Load entry module and return exports
+/******/ return __webpack_require__(__webpack_require__.s = "./app.ts");
+/******/ })
+/************************************************************************/
+/******/ ({
+
+/***/ "./app.ts":
+/*!****************!*\
+ !*** ./app.ts ***!
+ \****************/
+/*! no static exports found */
+/***/ (function(module, exports, __webpack_require__) {
+
+"use strict";
+eval("\nexports.__esModule = true;\nvar submodule = __webpack_require__(/*! ./submodule/submodule */ \"./submodule/submodule.ts\");\nvar externalLib = __webpack_require__(/*! externalLib */ \"./lib/externalLib.js\");\nexternalLib.doSomething2(submodule);\n\n\n//# sourceURL=webpack:///./app.ts?");
+
+/***/ }),
+
+/***/ "./lib/externalLib.js":
+/*!****************************!*\
+ !*** ./lib/externalLib.js ***!
+ \****************************/
+/*! no static exports found */
+/***/ (function(module, exports) {
+
+eval("module.exports = {\n doSomething: function() { } \n}\n\n//# sourceURL=webpack:///./lib/externalLib.js?");
+
+/***/ }),
+
+/***/ "./submodule/submodule.ts":
+/*!********************************!*\
+ !*** ./submodule/submodule.ts ***!
+ \********************************/
+/*! no static exports found */
+/***/ (function(module, exports, __webpack_require__) {
+
+"use strict";
+eval("\nvar externalLib = __webpack_require__(/*! externalLib */ \"./lib/externalLib.js\");\nexternalLib.doSomething(\"\");\nvar message = \"Hello from submodule\";\nmodule.exports = message;\n\n\n//# sourceURL=webpack:///./submodule/submodule.ts?");
+
+/***/ })
+
+/******/ });
\ No newline at end of file
diff --git a/test/comparison-tests/onlyCompileBundledFiles/expectedOutput-2.8/patch0/output.transpiled.txt b/test/comparison-tests/onlyCompileBundledFiles/expectedOutput-2.8/patch0/output.transpiled.txt
new file mode 100644
index 000000000..931e770e8
--- /dev/null
+++ b/test/comparison-tests/onlyCompileBundledFiles/expectedOutput-2.8/patch0/output.transpiled.txt
@@ -0,0 +1,7 @@
+Built at: 2018-3-18 09:19:57
+ Asset Size Chunks Chunk Names
+bundle.js 3.87 KiB main [emitted] main
+Entrypoint main = bundle.js
+[./app.ts] 170 bytes {main} [built]
+[./lib/externalLib.js] 55 bytes {main}
+[./submodule/submodule.ts] 149 bytes {main}
\ No newline at end of file
diff --git a/test/comparison-tests/onlyCompileBundledFiles/expectedOutput-2.8/patch0/output.txt b/test/comparison-tests/onlyCompileBundledFiles/expectedOutput-2.8/patch0/output.txt
new file mode 100644
index 000000000..ce913a9b0
--- /dev/null
+++ b/test/comparison-tests/onlyCompileBundledFiles/expectedOutput-2.8/patch0/output.txt
@@ -0,0 +1,12 @@
+Built at: 2018-3-18 09:19:51
+ Asset Size Chunks Chunk Names
+bundle.js 3.87 KiB main [emitted] main
+Entrypoint main = bundle.js
+[./app.ts] 170 bytes {main} [built] [1 error]
+[./lib/externalLib.js] 55 bytes {main}
+[./submodule/submodule.ts] 149 bytes {main}
+
+ERROR in app.ts
+./app.ts
+[90m[tsl] [39m[1m[31mERROR[39m[22m[1m[31m in [39m[22m[1m[36mapp.ts(3,13)[39m[22m
+[1m[31m TS2551: Property 'doSomething2' does not exist on type 'typeof externalLib'. Did you mean 'doSomething'?[39m[22m
\ No newline at end of file
diff --git a/test/comparison-tests/onlyCompileBundledFiles/expectedOutput-2.8/patch1/bundle.js b/test/comparison-tests/onlyCompileBundledFiles/expectedOutput-2.8/patch1/bundle.js
new file mode 100644
index 000000000..cd4249da3
--- /dev/null
+++ b/test/comparison-tests/onlyCompileBundledFiles/expectedOutput-2.8/patch1/bundle.js
@@ -0,0 +1,109 @@
+/******/ (function(modules) { // webpackBootstrap
+/******/ // The module cache
+/******/ var installedModules = {};
+/******/
+/******/ // The require function
+/******/ function __webpack_require__(moduleId) {
+/******/
+/******/ // Check if module is in cache
+/******/ if(installedModules[moduleId]) {
+/******/ return installedModules[moduleId].exports;
+/******/ }
+/******/ // Create a new module (and put it into the cache)
+/******/ var module = installedModules[moduleId] = {
+/******/ i: moduleId,
+/******/ l: false,
+/******/ exports: {}
+/******/ };
+/******/
+/******/ // Execute the module function
+/******/ modules[moduleId].call(module.exports, module, module.exports, __webpack_require__);
+/******/
+/******/ // Flag the module as loaded
+/******/ module.l = true;
+/******/
+/******/ // Return the exports of the module
+/******/ return module.exports;
+/******/ }
+/******/
+/******/
+/******/ // expose the modules object (__webpack_modules__)
+/******/ __webpack_require__.m = modules;
+/******/
+/******/ // expose the module cache
+/******/ __webpack_require__.c = installedModules;
+/******/
+/******/ // define getter function for harmony exports
+/******/ __webpack_require__.d = function(exports, name, getter) {
+/******/ if(!__webpack_require__.o(exports, name)) {
+/******/ Object.defineProperty(exports, name, {
+/******/ configurable: false,
+/******/ enumerable: true,
+/******/ get: getter
+/******/ });
+/******/ }
+/******/ };
+/******/
+/******/ // define __esModule on exports
+/******/ __webpack_require__.r = function(exports) {
+/******/ Object.defineProperty(exports, '__esModule', { value: true });
+/******/ };
+/******/
+/******/ // getDefaultExport function for compatibility with non-harmony modules
+/******/ __webpack_require__.n = function(module) {
+/******/ var getter = module && module.__esModule ?
+/******/ function getDefault() { return module['default']; } :
+/******/ function getModuleExports() { return module; };
+/******/ __webpack_require__.d(getter, 'a', getter);
+/******/ return getter;
+/******/ };
+/******/
+/******/ // Object.prototype.hasOwnProperty.call
+/******/ __webpack_require__.o = function(object, property) { return Object.prototype.hasOwnProperty.call(object, property); };
+/******/
+/******/ // __webpack_public_path__
+/******/ __webpack_require__.p = "";
+/******/
+/******/
+/******/ // Load entry module and return exports
+/******/ return __webpack_require__(__webpack_require__.s = "./app.ts");
+/******/ })
+/************************************************************************/
+/******/ ({
+
+/***/ "./app.ts":
+/*!****************!*\
+ !*** ./app.ts ***!
+ \****************/
+/*! no static exports found */
+/***/ (function(module, exports, __webpack_require__) {
+
+"use strict";
+eval("\nexports.__esModule = true;\nvar submodule = __webpack_require__(/*! ./submodule/submodule */ \"./submodule/submodule.ts\");\nvar externalLib = __webpack_require__(/*! externalLib */ \"./lib/externalLib.js\");\nexternalLib.doSomething(submodule);\n\n\n//# sourceURL=webpack:///./app.ts?");
+
+/***/ }),
+
+/***/ "./lib/externalLib.js":
+/*!****************************!*\
+ !*** ./lib/externalLib.js ***!
+ \****************************/
+/*! no static exports found */
+/***/ (function(module, exports) {
+
+eval("module.exports = {\n doSomething: function() { } \n}\n\n//# sourceURL=webpack:///./lib/externalLib.js?");
+
+/***/ }),
+
+/***/ "./submodule/submodule.ts":
+/*!********************************!*\
+ !*** ./submodule/submodule.ts ***!
+ \********************************/
+/*! no static exports found */
+/***/ (function(module, exports, __webpack_require__) {
+
+"use strict";
+eval("\nvar externalLib = __webpack_require__(/*! externalLib */ \"./lib/externalLib.js\");\nexternalLib.doSomething(\"\");\nvar message = \"Hello from submodule\";\nmodule.exports = message;\n\n\n//# sourceURL=webpack:///./submodule/submodule.ts?");
+
+/***/ })
+
+/******/ });
\ No newline at end of file
diff --git a/test/comparison-tests/onlyCompileBundledFiles/expectedOutput-2.8/patch1/output.transpiled.txt b/test/comparison-tests/onlyCompileBundledFiles/expectedOutput-2.8/patch1/output.transpiled.txt
new file mode 100644
index 000000000..82b944346
--- /dev/null
+++ b/test/comparison-tests/onlyCompileBundledFiles/expectedOutput-2.8/patch1/output.transpiled.txt
@@ -0,0 +1,7 @@
+Built at: 2018-3-18 09:19:59
+ Asset Size Chunks Chunk Names
+bundle.js 3.87 KiB main [emitted] main
+Entrypoint main = bundle.js
+[./app.ts] 169 bytes {main} [built]
+[./lib/externalLib.js] 55 bytes {main}
+[./submodule/submodule.ts] 149 bytes {main}
\ No newline at end of file
diff --git a/test/comparison-tests/onlyCompileBundledFiles/expectedOutput-2.8/patch1/output.txt b/test/comparison-tests/onlyCompileBundledFiles/expectedOutput-2.8/patch1/output.txt
new file mode 100644
index 000000000..5e1b3f1b3
--- /dev/null
+++ b/test/comparison-tests/onlyCompileBundledFiles/expectedOutput-2.8/patch1/output.txt
@@ -0,0 +1,7 @@
+Built at: 2018-3-18 09:19:54
+ Asset Size Chunks Chunk Names
+bundle.js 3.87 KiB main [emitted] main
+Entrypoint main = bundle.js
+[./app.ts] 169 bytes {main} [built]
+[./lib/externalLib.js] 55 bytes {main}
+[./submodule/submodule.ts] 149 bytes {main}
\ No newline at end of file
diff --git a/test/comparison-tests/production/expectedOutput-2.8/bundle.transpiled.js b/test/comparison-tests/production/expectedOutput-2.8/bundle.transpiled.js
new file mode 100644
index 000000000..cceaffd4f
--- /dev/null
+++ b/test/comparison-tests/production/expectedOutput-2.8/bundle.transpiled.js
@@ -0,0 +1 @@
+!function(e){var n={};function r(t){if(n[t])return n[t].exports;var o=n[t]={i:t,l:!1,exports:{}};return e[t].call(o.exports,o,o.exports,r),o.l=!0,o.exports}r.m=e,r.c=n,r.d=function(e,n,t){r.o(e,n)||Object.defineProperty(e,n,{configurable:!1,enumerable:!0,get:t})},r.r=function(e){Object.defineProperty(e,"__esModule",{value:!0})},r.n=function(e){var n=e&&e.__esModule?function(){return e.default}:function(){return e};return r.d(n,"a",n),n},r.o=function(e,n){return Object.prototype.hasOwnProperty.call(e,n)},r.p="",r(r.s=0)}([function(e,n){}]);
\ No newline at end of file
diff --git a/test/comparison-tests/production/expectedOutput-2.8/output.transpiled.txt b/test/comparison-tests/production/expectedOutput-2.8/output.transpiled.txt
new file mode 100644
index 000000000..d5959e215
--- /dev/null
+++ b/test/comparison-tests/production/expectedOutput-2.8/output.transpiled.txt
@@ -0,0 +1,5 @@
+Built at: 2018-3-18 09:20:06
+ Asset Size Chunks Chunk Names
+bundle.js 545 bytes 0 [emitted] main
+Entrypoint main = bundle.js
+ [0] ./app.ts 27 bytes {0} [built]
\ No newline at end of file
diff --git a/test/comparison-tests/production/expectedOutput-2.8/output.txt b/test/comparison-tests/production/expectedOutput-2.8/output.txt
new file mode 100644
index 000000000..d95000b8b
--- /dev/null
+++ b/test/comparison-tests/production/expectedOutput-2.8/output.txt
@@ -0,0 +1,10 @@
+Built at: 2018-3-18 09:20:05
+ Asset Size Chunks Chunk Names
+bundle.js 545 bytes 0 main
+Entrypoint main = bundle.js
+ [0] ./app.ts 27 bytes {0} [built] [1 error]
+
+ERROR in app.ts
+./app.ts
+[90m[tsl] [39m[1m[31mERROR[39m[22m[1m[31m in [39m[22m[1m[36mapp.ts(4,1)[39m[22m
+[1m[31m TS2322: Type 'string' is not assignable to type 'number'.[39m[22m
\ No newline at end of file
diff --git a/test/comparison-tests/replacement/expectedOutput-2.8/bundle.js b/test/comparison-tests/replacement/expectedOutput-2.8/bundle.js
new file mode 100644
index 000000000..fdf9ab5a5
--- /dev/null
+++ b/test/comparison-tests/replacement/expectedOutput-2.8/bundle.js
@@ -0,0 +1,110 @@
+/******/ (function(modules) { // webpackBootstrap
+/******/ // The module cache
+/******/ var installedModules = {};
+/******/
+/******/ // The require function
+/******/ function __webpack_require__(moduleId) {
+/******/
+/******/ // Check if module is in cache
+/******/ if(installedModules[moduleId]) {
+/******/ return installedModules[moduleId].exports;
+/******/ }
+/******/ // Create a new module (and put it into the cache)
+/******/ var module = installedModules[moduleId] = {
+/******/ i: moduleId,
+/******/ l: false,
+/******/ exports: {}
+/******/ };
+/******/
+/******/ // Execute the module function
+/******/ modules[moduleId].call(module.exports, module, module.exports, __webpack_require__);
+/******/
+/******/ // Flag the module as loaded
+/******/ module.l = true;
+/******/
+/******/ // Return the exports of the module
+/******/ return module.exports;
+/******/ }
+/******/
+/******/
+/******/ // expose the modules object (__webpack_modules__)
+/******/ __webpack_require__.m = modules;
+/******/
+/******/ // expose the module cache
+/******/ __webpack_require__.c = installedModules;
+/******/
+/******/ // define getter function for harmony exports
+/******/ __webpack_require__.d = function(exports, name, getter) {
+/******/ if(!__webpack_require__.o(exports, name)) {
+/******/ Object.defineProperty(exports, name, {
+/******/ configurable: false,
+/******/ enumerable: true,
+/******/ get: getter
+/******/ });
+/******/ }
+/******/ };
+/******/
+/******/ // define __esModule on exports
+/******/ __webpack_require__.r = function(exports) {
+/******/ Object.defineProperty(exports, '__esModule', { value: true });
+/******/ };
+/******/
+/******/ // getDefaultExport function for compatibility with non-harmony modules
+/******/ __webpack_require__.n = function(module) {
+/******/ var getter = module && module.__esModule ?
+/******/ function getDefault() { return module['default']; } :
+/******/ function getModuleExports() { return module; };
+/******/ __webpack_require__.d(getter, 'a', getter);
+/******/ return getter;
+/******/ };
+/******/
+/******/ // Object.prototype.hasOwnProperty.call
+/******/ __webpack_require__.o = function(object, property) { return Object.prototype.hasOwnProperty.call(object, property); };
+/******/
+/******/ // __webpack_public_path__
+/******/ __webpack_require__.p = "";
+/******/
+/******/
+/******/ // Load entry module and return exports
+/******/ return __webpack_require__(__webpack_require__.s = "./app.ts");
+/******/ })
+/************************************************************************/
+/******/ ({
+
+/***/ "./a.ts":
+/*!**************!*\
+ !*** ./a.ts ***!
+ \**************/
+/*! no static exports found */
+/***/ (function(module, exports, __webpack_require__) {
+
+"use strict";
+eval("\nvar dep = __webpack_require__(/*! ./dep */ \"./sub/dep.ts\");\nmodule.exports = dep;\n\n\n//# sourceURL=webpack:///./a.ts?");
+
+/***/ }),
+
+/***/ "./app.ts":
+/*!****************!*\
+ !*** ./app.ts ***!
+ \****************/
+/*! no static exports found */
+/***/ (function(module, exports, __webpack_require__) {
+
+"use strict";
+eval("\nexports.__esModule = true;\nvar a = __webpack_require__(/*! ./a */ \"./a.ts\");\nconsole.log(a);\n\n\n//# sourceURL=webpack:///./app.ts?");
+
+/***/ }),
+
+/***/ "./sub/dep.ts":
+/*!********************!*\
+ !*** ./sub/dep.ts ***!
+ \********************/
+/*! no static exports found */
+/***/ (function(module, exports, __webpack_require__) {
+
+"use strict";
+eval("\nvar dep = 'replacement';\nmodule.exports = dep;\n\n\n//# sourceURL=webpack:///./sub/dep.ts?");
+
+/***/ })
+
+/******/ });
\ No newline at end of file
diff --git a/test/comparison-tests/replacement/expectedOutput-2.8/output.transpiled.txt b/test/comparison-tests/replacement/expectedOutput-2.8/output.transpiled.txt
new file mode 100644
index 000000000..8561c3f55
--- /dev/null
+++ b/test/comparison-tests/replacement/expectedOutput-2.8/output.transpiled.txt
@@ -0,0 +1,7 @@
+Built at: 2018-3-18 09:20:11
+ Asset Size Chunks Chunk Names
+bundle.js 3.53 KiB main [emitted] main
+Entrypoint main = bundle.js
+[./a.ts] 64 bytes {main} [built]
+[./app.ts] 81 bytes {main} [built]
+[./sub/dep.ts] 61 bytes {main} [built]
\ No newline at end of file
diff --git a/test/comparison-tests/replacement/expectedOutput-2.8/output.txt b/test/comparison-tests/replacement/expectedOutput-2.8/output.txt
new file mode 100644
index 000000000..afc88b8e5
--- /dev/null
+++ b/test/comparison-tests/replacement/expectedOutput-2.8/output.txt
@@ -0,0 +1,7 @@
+Built at: 2018-3-18 09:20:10
+ Asset Size Chunks Chunk Names
+bundle.js 3.53 KiB main [emitted] main
+Entrypoint main = bundle.js
+[./a.ts] 64 bytes {main} [built]
+[./app.ts] 81 bytes {main} [built]
+[./sub/dep.ts] 61 bytes {main} [built]
\ No newline at end of file
diff --git a/test/comparison-tests/reportFiles/expectedOutput-2.8/bundle.js b/test/comparison-tests/reportFiles/expectedOutput-2.8/bundle.js
new file mode 100644
index 000000000..72f2c28d3
--- /dev/null
+++ b/test/comparison-tests/reportFiles/expectedOutput-2.8/bundle.js
@@ -0,0 +1,98 @@
+/******/ (function(modules) { // webpackBootstrap
+/******/ // The module cache
+/******/ var installedModules = {};
+/******/
+/******/ // The require function
+/******/ function __webpack_require__(moduleId) {
+/******/
+/******/ // Check if module is in cache
+/******/ if(installedModules[moduleId]) {
+/******/ return installedModules[moduleId].exports;
+/******/ }
+/******/ // Create a new module (and put it into the cache)
+/******/ var module = installedModules[moduleId] = {
+/******/ i: moduleId,
+/******/ l: false,
+/******/ exports: {}
+/******/ };
+/******/
+/******/ // Execute the module function
+/******/ modules[moduleId].call(module.exports, module, module.exports, __webpack_require__);
+/******/
+/******/ // Flag the module as loaded
+/******/ module.l = true;
+/******/
+/******/ // Return the exports of the module
+/******/ return module.exports;
+/******/ }
+/******/
+/******/
+/******/ // expose the modules object (__webpack_modules__)
+/******/ __webpack_require__.m = modules;
+/******/
+/******/ // expose the module cache
+/******/ __webpack_require__.c = installedModules;
+/******/
+/******/ // define getter function for harmony exports
+/******/ __webpack_require__.d = function(exports, name, getter) {
+/******/ if(!__webpack_require__.o(exports, name)) {
+/******/ Object.defineProperty(exports, name, {
+/******/ configurable: false,
+/******/ enumerable: true,
+/******/ get: getter
+/******/ });
+/******/ }
+/******/ };
+/******/
+/******/ // define __esModule on exports
+/******/ __webpack_require__.r = function(exports) {
+/******/ Object.defineProperty(exports, '__esModule', { value: true });
+/******/ };
+/******/
+/******/ // getDefaultExport function for compatibility with non-harmony modules
+/******/ __webpack_require__.n = function(module) {
+/******/ var getter = module && module.__esModule ?
+/******/ function getDefault() { return module['default']; } :
+/******/ function getModuleExports() { return module; };
+/******/ __webpack_require__.d(getter, 'a', getter);
+/******/ return getter;
+/******/ };
+/******/
+/******/ // Object.prototype.hasOwnProperty.call
+/******/ __webpack_require__.o = function(object, property) { return Object.prototype.hasOwnProperty.call(object, property); };
+/******/
+/******/ // __webpack_public_path__
+/******/ __webpack_require__.p = "";
+/******/
+/******/
+/******/ // Load entry module and return exports
+/******/ return __webpack_require__(__webpack_require__.s = "./app.ts");
+/******/ })
+/************************************************************************/
+/******/ ({
+
+/***/ "./app.ts":
+/*!****************!*\
+ !*** ./app.ts ***!
+ \****************/
+/*! no static exports found */
+/***/ (function(module, exports, __webpack_require__) {
+
+"use strict";
+eval("\nexports.__esModule = true;\n__webpack_require__(/*! ./skip */ \"./skip.ts\");\nexports.a = '10';\n\n\n//# sourceURL=webpack:///./app.ts?");
+
+/***/ }),
+
+/***/ "./skip.ts":
+/*!*****************!*\
+ !*** ./skip.ts ***!
+ \*****************/
+/*! no static exports found */
+/***/ (function(module, exports, __webpack_require__) {
+
+"use strict";
+eval("\nexports.__esModule = true;\nexports.a = '10';\n\n\n//# sourceURL=webpack:///./skip.ts?");
+
+/***/ })
+
+/******/ });
\ No newline at end of file
diff --git a/test/comparison-tests/reportFiles/expectedOutput-2.8/output.transpiled.txt b/test/comparison-tests/reportFiles/expectedOutput-2.8/output.transpiled.txt
new file mode 100644
index 000000000..a8731c122
--- /dev/null
+++ b/test/comparison-tests/reportFiles/expectedOutput-2.8/output.transpiled.txt
@@ -0,0 +1,6 @@
+Built at: 2018-3-18 09:20:17
+ Asset Size Chunks Chunk Names
+bundle.js 3.2 KiB main [emitted] main
+Entrypoint main = bundle.js
+[./app.ts] 78 bytes {main} [built]
+[./skip.ts] 59 bytes {main} [built]
\ No newline at end of file
diff --git a/test/comparison-tests/reportFiles/expectedOutput-2.8/output.txt b/test/comparison-tests/reportFiles/expectedOutput-2.8/output.txt
new file mode 100644
index 000000000..5dcb28e5e
--- /dev/null
+++ b/test/comparison-tests/reportFiles/expectedOutput-2.8/output.txt
@@ -0,0 +1,11 @@
+Built at: 2018-3-18 09:20:17
+ Asset Size Chunks Chunk Names
+bundle.js 3.2 KiB main [emitted] main
+Entrypoint main = bundle.js
+[./app.ts] 78 bytes {main} [built] [1 error]
+[./skip.ts] 59 bytes {main} [built]
+
+ERROR in app.ts
+./app.ts
+[90m[tsl] [39m[1m[31mERROR[39m[22m[1m[31m in [39m[22m[1m[36mapp.ts(3,1)[39m[22m
+[1m[31m TS2322: Type '"10"' is not assignable to type 'number'.[39m[22m
\ No newline at end of file
diff --git a/test/comparison-tests/run-tests.js b/test/comparison-tests/run-tests.js
index e6381cdd0..3dbe1a43e 100644
--- a/test/comparison-tests/run-tests.js
+++ b/test/comparison-tests/run-tests.js
@@ -7,7 +7,7 @@ var execSync = require('child_process').execSync;
// We only want to run comparison tests for the latest released version
var typescriptVersion = parseFloat(semver.major(typescript.version) + '.' + semver.minor(typescript.version));
-if (typescriptVersion < 2.7 || typescriptVersion > 2.7) return;
+if (typescriptVersion < 2.8 || typescriptVersion > 2.8) return;
// Parse command line arguments
var saveOutputMode = process.argv.indexOf('--save-output') !== -1;
diff --git a/test/comparison-tests/simpleDependency/expectedOutput-2.8/bundle.js b/test/comparison-tests/simpleDependency/expectedOutput-2.8/bundle.js
new file mode 100644
index 000000000..504a3b869
--- /dev/null
+++ b/test/comparison-tests/simpleDependency/expectedOutput-2.8/bundle.js
@@ -0,0 +1,110 @@
+/******/ (function(modules) { // webpackBootstrap
+/******/ // The module cache
+/******/ var installedModules = {};
+/******/
+/******/ // The require function
+/******/ function __webpack_require__(moduleId) {
+/******/
+/******/ // Check if module is in cache
+/******/ if(installedModules[moduleId]) {
+/******/ return installedModules[moduleId].exports;
+/******/ }
+/******/ // Create a new module (and put it into the cache)
+/******/ var module = installedModules[moduleId] = {
+/******/ i: moduleId,
+/******/ l: false,
+/******/ exports: {}
+/******/ };
+/******/
+/******/ // Execute the module function
+/******/ modules[moduleId].call(module.exports, module, module.exports, __webpack_require__);
+/******/
+/******/ // Flag the module as loaded
+/******/ module.l = true;
+/******/
+/******/ // Return the exports of the module
+/******/ return module.exports;
+/******/ }
+/******/
+/******/
+/******/ // expose the modules object (__webpack_modules__)
+/******/ __webpack_require__.m = modules;
+/******/
+/******/ // expose the module cache
+/******/ __webpack_require__.c = installedModules;
+/******/
+/******/ // define getter function for harmony exports
+/******/ __webpack_require__.d = function(exports, name, getter) {
+/******/ if(!__webpack_require__.o(exports, name)) {
+/******/ Object.defineProperty(exports, name, {
+/******/ configurable: false,
+/******/ enumerable: true,
+/******/ get: getter
+/******/ });
+/******/ }
+/******/ };
+/******/
+/******/ // define __esModule on exports
+/******/ __webpack_require__.r = function(exports) {
+/******/ Object.defineProperty(exports, '__esModule', { value: true });
+/******/ };
+/******/
+/******/ // getDefaultExport function for compatibility with non-harmony modules
+/******/ __webpack_require__.n = function(module) {
+/******/ var getter = module && module.__esModule ?
+/******/ function getDefault() { return module['default']; } :
+/******/ function getModuleExports() { return module; };
+/******/ __webpack_require__.d(getter, 'a', getter);
+/******/ return getter;
+/******/ };
+/******/
+/******/ // Object.prototype.hasOwnProperty.call
+/******/ __webpack_require__.o = function(object, property) { return Object.prototype.hasOwnProperty.call(object, property); };
+/******/
+/******/ // __webpack_public_path__
+/******/ __webpack_require__.p = "";
+/******/
+/******/
+/******/ // Load entry module and return exports
+/******/ return __webpack_require__(__webpack_require__.s = "./app.ts");
+/******/ })
+/************************************************************************/
+/******/ ({
+
+/***/ "./app.ts":
+/*!****************!*\
+ !*** ./app.ts ***!
+ \****************/
+/*! no static exports found */
+/***/ (function(module, exports, __webpack_require__) {
+
+"use strict";
+eval("\nexports.__esModule = true;\nvar dep = __webpack_require__(/*! ./dep */ \"./dep.ts\");\ndep('');\n\n\n//# sourceURL=webpack:///./app.ts?");
+
+/***/ }),
+
+/***/ "./deeperDep.ts":
+/*!**********************!*\
+ !*** ./deeperDep.ts ***!
+ \**********************/
+/*! no static exports found */
+/***/ (function(module, exports, __webpack_require__) {
+
+"use strict";
+eval("\nfunction doSomething(input) {\n}\nmodule.exports = doSomething;\n\n\n//# sourceURL=webpack:///./deeperDep.ts?");
+
+/***/ }),
+
+/***/ "./dep.ts":
+/*!****************!*\
+ !*** ./dep.ts ***!
+ \****************/
+/*! no static exports found */
+/***/ (function(module, exports, __webpack_require__) {
+
+"use strict";
+eval("\nvar dep = __webpack_require__(/*! ./deeperDep */ \"./deeperDep.ts\");\nmodule.exports = dep;\n\n\n//# sourceURL=webpack:///./dep.ts?");
+
+/***/ })
+
+/******/ });
\ No newline at end of file
diff --git a/test/comparison-tests/simpleDependency/expectedOutput-2.8/output.transpiled.txt b/test/comparison-tests/simpleDependency/expectedOutput-2.8/output.transpiled.txt
new file mode 100644
index 000000000..8d6c75bd0
--- /dev/null
+++ b/test/comparison-tests/simpleDependency/expectedOutput-2.8/output.transpiled.txt
@@ -0,0 +1,7 @@
+Built at: 2018-3-18 09:20:28
+ Asset Size Chunks Chunk Names
+bundle.js 3.57 KiB main [emitted] main
+Entrypoint main = bundle.js
+[./app.ts] 78 bytes {main} [built]
+[./deeperDep.ts] 76 bytes {main} [built]
+[./dep.ts] 70 bytes {main} [built]
\ No newline at end of file
diff --git a/test/comparison-tests/simpleDependency/expectedOutput-2.8/output.txt b/test/comparison-tests/simpleDependency/expectedOutput-2.8/output.txt
new file mode 100644
index 000000000..399fbf3d1
--- /dev/null
+++ b/test/comparison-tests/simpleDependency/expectedOutput-2.8/output.txt
@@ -0,0 +1,7 @@
+Built at: 2018-3-18 09:20:23
+ Asset Size Chunks Chunk Names
+bundle.js 3.57 KiB main [emitted] main
+Entrypoint main = bundle.js
+[./app.ts] 78 bytes {main} [built]
+[./deeperDep.ts] 76 bytes {main} [built]
+[./dep.ts] 70 bytes {main} [built]
\ No newline at end of file
diff --git a/test/comparison-tests/simpleDependency/expectedOutput-2.8/patch0/bundle.js b/test/comparison-tests/simpleDependency/expectedOutput-2.8/patch0/bundle.js
new file mode 100644
index 000000000..504a3b869
--- /dev/null
+++ b/test/comparison-tests/simpleDependency/expectedOutput-2.8/patch0/bundle.js
@@ -0,0 +1,110 @@
+/******/ (function(modules) { // webpackBootstrap
+/******/ // The module cache
+/******/ var installedModules = {};
+/******/
+/******/ // The require function
+/******/ function __webpack_require__(moduleId) {
+/******/
+/******/ // Check if module is in cache
+/******/ if(installedModules[moduleId]) {
+/******/ return installedModules[moduleId].exports;
+/******/ }
+/******/ // Create a new module (and put it into the cache)
+/******/ var module = installedModules[moduleId] = {
+/******/ i: moduleId,
+/******/ l: false,
+/******/ exports: {}
+/******/ };
+/******/
+/******/ // Execute the module function
+/******/ modules[moduleId].call(module.exports, module, module.exports, __webpack_require__);
+/******/
+/******/ // Flag the module as loaded
+/******/ module.l = true;
+/******/
+/******/ // Return the exports of the module
+/******/ return module.exports;
+/******/ }
+/******/
+/******/
+/******/ // expose the modules object (__webpack_modules__)
+/******/ __webpack_require__.m = modules;
+/******/
+/******/ // expose the module cache
+/******/ __webpack_require__.c = installedModules;
+/******/
+/******/ // define getter function for harmony exports
+/******/ __webpack_require__.d = function(exports, name, getter) {
+/******/ if(!__webpack_require__.o(exports, name)) {
+/******/ Object.defineProperty(exports, name, {
+/******/ configurable: false,
+/******/ enumerable: true,
+/******/ get: getter
+/******/ });
+/******/ }
+/******/ };
+/******/
+/******/ // define __esModule on exports
+/******/ __webpack_require__.r = function(exports) {
+/******/ Object.defineProperty(exports, '__esModule', { value: true });
+/******/ };
+/******/
+/******/ // getDefaultExport function for compatibility with non-harmony modules
+/******/ __webpack_require__.n = function(module) {
+/******/ var getter = module && module.__esModule ?
+/******/ function getDefault() { return module['default']; } :
+/******/ function getModuleExports() { return module; };
+/******/ __webpack_require__.d(getter, 'a', getter);
+/******/ return getter;
+/******/ };
+/******/
+/******/ // Object.prototype.hasOwnProperty.call
+/******/ __webpack_require__.o = function(object, property) { return Object.prototype.hasOwnProperty.call(object, property); };
+/******/
+/******/ // __webpack_public_path__
+/******/ __webpack_require__.p = "";
+/******/
+/******/
+/******/ // Load entry module and return exports
+/******/ return __webpack_require__(__webpack_require__.s = "./app.ts");
+/******/ })
+/************************************************************************/
+/******/ ({
+
+/***/ "./app.ts":
+/*!****************!*\
+ !*** ./app.ts ***!
+ \****************/
+/*! no static exports found */
+/***/ (function(module, exports, __webpack_require__) {
+
+"use strict";
+eval("\nexports.__esModule = true;\nvar dep = __webpack_require__(/*! ./dep */ \"./dep.ts\");\ndep('');\n\n\n//# sourceURL=webpack:///./app.ts?");
+
+/***/ }),
+
+/***/ "./deeperDep.ts":
+/*!**********************!*\
+ !*** ./deeperDep.ts ***!
+ \**********************/
+/*! no static exports found */
+/***/ (function(module, exports, __webpack_require__) {
+
+"use strict";
+eval("\nfunction doSomething(input) {\n}\nmodule.exports = doSomething;\n\n\n//# sourceURL=webpack:///./deeperDep.ts?");
+
+/***/ }),
+
+/***/ "./dep.ts":
+/*!****************!*\
+ !*** ./dep.ts ***!
+ \****************/
+/*! no static exports found */
+/***/ (function(module, exports, __webpack_require__) {
+
+"use strict";
+eval("\nvar dep = __webpack_require__(/*! ./deeperDep */ \"./deeperDep.ts\");\nmodule.exports = dep;\n\n\n//# sourceURL=webpack:///./dep.ts?");
+
+/***/ })
+
+/******/ });
\ No newline at end of file
diff --git a/test/comparison-tests/simpleDependency/expectedOutput-2.8/patch0/output.transpiled.txt b/test/comparison-tests/simpleDependency/expectedOutput-2.8/patch0/output.transpiled.txt
new file mode 100644
index 000000000..1acc63258
--- /dev/null
+++ b/test/comparison-tests/simpleDependency/expectedOutput-2.8/patch0/output.transpiled.txt
@@ -0,0 +1,7 @@
+Built at: 2018-3-18 09:20:31
+ Asset Size Chunks Chunk Names
+bundle.js 3.57 KiB main [emitted] main
+Entrypoint main = bundle.js
+[./app.ts] 78 bytes {main}
+[./deeperDep.ts] 76 bytes {main} [built]
+[./dep.ts] 70 bytes {main}
\ No newline at end of file
diff --git a/test/comparison-tests/simpleDependency/expectedOutput-2.8/patch0/output.txt b/test/comparison-tests/simpleDependency/expectedOutput-2.8/patch0/output.txt
new file mode 100644
index 000000000..b8cb0f61e
--- /dev/null
+++ b/test/comparison-tests/simpleDependency/expectedOutput-2.8/patch0/output.txt
@@ -0,0 +1,12 @@
+Built at: 2018-3-18 09:20:25
+ Asset Size Chunks Chunk Names
+bundle.js 3.57 KiB main [emitted] main
+Entrypoint main = bundle.js
+[./app.ts] 78 bytes {main} [1 error]
+[./deeperDep.ts] 76 bytes {main} [built]
+[./dep.ts] 70 bytes {main} [built]
+
+ERROR in app.ts
+./app.ts
+[90m[tsl] [39m[1m[31mERROR[39m[22m[1m[31m in [39m[22m[1m[36mapp.ts(3,5)[39m[22m
+[1m[31m TS2345: Argument of type '""' is not assignable to parameter of type 'number'.[39m[22m
\ No newline at end of file
diff --git a/test/comparison-tests/simpleDependency/expectedOutput-2.8/patch1/bundle.js b/test/comparison-tests/simpleDependency/expectedOutput-2.8/patch1/bundle.js
new file mode 100644
index 000000000..504a3b869
--- /dev/null
+++ b/test/comparison-tests/simpleDependency/expectedOutput-2.8/patch1/bundle.js
@@ -0,0 +1,110 @@
+/******/ (function(modules) { // webpackBootstrap
+/******/ // The module cache
+/******/ var installedModules = {};
+/******/
+/******/ // The require function
+/******/ function __webpack_require__(moduleId) {
+/******/
+/******/ // Check if module is in cache
+/******/ if(installedModules[moduleId]) {
+/******/ return installedModules[moduleId].exports;
+/******/ }
+/******/ // Create a new module (and put it into the cache)
+/******/ var module = installedModules[moduleId] = {
+/******/ i: moduleId,
+/******/ l: false,
+/******/ exports: {}
+/******/ };
+/******/
+/******/ // Execute the module function
+/******/ modules[moduleId].call(module.exports, module, module.exports, __webpack_require__);
+/******/
+/******/ // Flag the module as loaded
+/******/ module.l = true;
+/******/
+/******/ // Return the exports of the module
+/******/ return module.exports;
+/******/ }
+/******/
+/******/
+/******/ // expose the modules object (__webpack_modules__)
+/******/ __webpack_require__.m = modules;
+/******/
+/******/ // expose the module cache
+/******/ __webpack_require__.c = installedModules;
+/******/
+/******/ // define getter function for harmony exports
+/******/ __webpack_require__.d = function(exports, name, getter) {
+/******/ if(!__webpack_require__.o(exports, name)) {
+/******/ Object.defineProperty(exports, name, {
+/******/ configurable: false,
+/******/ enumerable: true,
+/******/ get: getter
+/******/ });
+/******/ }
+/******/ };
+/******/
+/******/ // define __esModule on exports
+/******/ __webpack_require__.r = function(exports) {
+/******/ Object.defineProperty(exports, '__esModule', { value: true });
+/******/ };
+/******/
+/******/ // getDefaultExport function for compatibility with non-harmony modules
+/******/ __webpack_require__.n = function(module) {
+/******/ var getter = module && module.__esModule ?
+/******/ function getDefault() { return module['default']; } :
+/******/ function getModuleExports() { return module; };
+/******/ __webpack_require__.d(getter, 'a', getter);
+/******/ return getter;
+/******/ };
+/******/
+/******/ // Object.prototype.hasOwnProperty.call
+/******/ __webpack_require__.o = function(object, property) { return Object.prototype.hasOwnProperty.call(object, property); };
+/******/
+/******/ // __webpack_public_path__
+/******/ __webpack_require__.p = "";
+/******/
+/******/
+/******/ // Load entry module and return exports
+/******/ return __webpack_require__(__webpack_require__.s = "./app.ts");
+/******/ })
+/************************************************************************/
+/******/ ({
+
+/***/ "./app.ts":
+/*!****************!*\
+ !*** ./app.ts ***!
+ \****************/
+/*! no static exports found */
+/***/ (function(module, exports, __webpack_require__) {
+
+"use strict";
+eval("\nexports.__esModule = true;\nvar dep = __webpack_require__(/*! ./dep */ \"./dep.ts\");\ndep('');\n\n\n//# sourceURL=webpack:///./app.ts?");
+
+/***/ }),
+
+/***/ "./deeperDep.ts":
+/*!**********************!*\
+ !*** ./deeperDep.ts ***!
+ \**********************/
+/*! no static exports found */
+/***/ (function(module, exports, __webpack_require__) {
+
+"use strict";
+eval("\nfunction doSomething(input) {\n}\nmodule.exports = doSomething;\n\n\n//# sourceURL=webpack:///./deeperDep.ts?");
+
+/***/ }),
+
+/***/ "./dep.ts":
+/*!****************!*\
+ !*** ./dep.ts ***!
+ \****************/
+/*! no static exports found */
+/***/ (function(module, exports, __webpack_require__) {
+
+"use strict";
+eval("\nvar dep = __webpack_require__(/*! ./deeperDep */ \"./deeperDep.ts\");\nmodule.exports = dep;\n\n\n//# sourceURL=webpack:///./dep.ts?");
+
+/***/ })
+
+/******/ });
\ No newline at end of file
diff --git a/test/comparison-tests/simpleDependency/expectedOutput-2.8/patch1/output.transpiled.txt b/test/comparison-tests/simpleDependency/expectedOutput-2.8/patch1/output.transpiled.txt
new file mode 100644
index 000000000..1c3719086
--- /dev/null
+++ b/test/comparison-tests/simpleDependency/expectedOutput-2.8/patch1/output.transpiled.txt
@@ -0,0 +1,7 @@
+Built at: 2018-3-18 09:20:34
+ Asset Size Chunks Chunk Names
+bundle.js 3.57 KiB main [emitted] main
+Entrypoint main = bundle.js
+[./app.ts] 78 bytes {main}
+[./deeperDep.ts] 76 bytes {main} [built]
+[./dep.ts] 70 bytes {main}
\ No newline at end of file
diff --git a/test/comparison-tests/simpleDependency/expectedOutput-2.8/patch1/output.txt b/test/comparison-tests/simpleDependency/expectedOutput-2.8/patch1/output.txt
new file mode 100644
index 000000000..dfb6aafc7
--- /dev/null
+++ b/test/comparison-tests/simpleDependency/expectedOutput-2.8/patch1/output.txt
@@ -0,0 +1,7 @@
+Built at: 2018-3-18 09:20:28
+ Asset Size Chunks Chunk Names
+bundle.js 3.57 KiB main [emitted] main
+Entrypoint main = bundle.js
+[./app.ts] 78 bytes {main}
+[./deeperDep.ts] 76 bytes {main} [built]
+[./dep.ts] 70 bytes {main} [built]
\ No newline at end of file
diff --git a/test/comparison-tests/sourceMaps/expectedOutput-2.8/bundle.js b/test/comparison-tests/sourceMaps/expectedOutput-2.8/bundle.js
new file mode 100644
index 000000000..87f1c8aee
--- /dev/null
+++ b/test/comparison-tests/sourceMaps/expectedOutput-2.8/bundle.js
@@ -0,0 +1,87 @@
+/******/ (function(modules) { // webpackBootstrap
+/******/ // The module cache
+/******/ var installedModules = {};
+/******/
+/******/ // The require function
+/******/ function __webpack_require__(moduleId) {
+/******/
+/******/ // Check if module is in cache
+/******/ if(installedModules[moduleId]) {
+/******/ return installedModules[moduleId].exports;
+/******/ }
+/******/ // Create a new module (and put it into the cache)
+/******/ var module = installedModules[moduleId] = {
+/******/ i: moduleId,
+/******/ l: false,
+/******/ exports: {}
+/******/ };
+/******/
+/******/ // Execute the module function
+/******/ modules[moduleId].call(module.exports, module, module.exports, __webpack_require__);
+/******/
+/******/ // Flag the module as loaded
+/******/ module.l = true;
+/******/
+/******/ // Return the exports of the module
+/******/ return module.exports;
+/******/ }
+/******/
+/******/
+/******/ // expose the modules object (__webpack_modules__)
+/******/ __webpack_require__.m = modules;
+/******/
+/******/ // expose the module cache
+/******/ __webpack_require__.c = installedModules;
+/******/
+/******/ // define getter function for harmony exports
+/******/ __webpack_require__.d = function(exports, name, getter) {
+/******/ if(!__webpack_require__.o(exports, name)) {
+/******/ Object.defineProperty(exports, name, {
+/******/ configurable: false,
+/******/ enumerable: true,
+/******/ get: getter
+/******/ });
+/******/ }
+/******/ };
+/******/
+/******/ // define __esModule on exports
+/******/ __webpack_require__.r = function(exports) {
+/******/ Object.defineProperty(exports, '__esModule', { value: true });
+/******/ };
+/******/
+/******/ // getDefaultExport function for compatibility with non-harmony modules
+/******/ __webpack_require__.n = function(module) {
+/******/ var getter = module && module.__esModule ?
+/******/ function getDefault() { return module['default']; } :
+/******/ function getModuleExports() { return module; };
+/******/ __webpack_require__.d(getter, 'a', getter);
+/******/ return getter;
+/******/ };
+/******/
+/******/ // Object.prototype.hasOwnProperty.call
+/******/ __webpack_require__.o = function(object, property) { return Object.prototype.hasOwnProperty.call(object, property); };
+/******/
+/******/ // __webpack_public_path__
+/******/ __webpack_require__.p = "";
+/******/
+/******/
+/******/ // Load entry module and return exports
+/******/ return __webpack_require__(__webpack_require__.s = "./a.ts");
+/******/ })
+/************************************************************************/
+/******/ ({
+
+/***/ "./a.ts":
+/*!**************!*\
+ !*** ./a.ts ***!
+ \**************/
+/*! no static exports found */
+/***/ (function(module, exports) {
+
+console.log('Hello world');
+
+
+/***/ })
+
+/******/ });
+//# sourceMappingURL=bundle.js.map
\ No newline at end of file
diff --git a/test/comparison-tests/sourceMaps/expectedOutput-2.8/bundle.js.map b/test/comparison-tests/sourceMaps/expectedOutput-2.8/bundle.js.map
new file mode 100644
index 000000000..91616eda5
--- /dev/null
+++ b/test/comparison-tests/sourceMaps/expectedOutput-2.8/bundle.js.map
@@ -0,0 +1 @@
+{"version":3,"sources":["webpack:///webpack/bootstrap","webpack:///./a.ts"],"names":[],"mappings":";AAAA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;;AAGA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAK;AACL;AACA;;AAEA;AACA;AACA,yDAAiD,cAAc;AAC/D;;AAEA;AACA;AACA;AACA,mCAA2B,0BAA0B,EAAE;AACvD,yCAAiC,eAAe;AAChD;AACA;AACA;;AAEA;AACA,8DAAsD,+DAA+D;;AAErH;AACA;;;AAGA;AACA;;;;;;;;;;;;ACnEA,OAAO,CAAC,GAAG,CAAC,aAAa,CAAC","file":"bundle.js","sourcesContent":[" \t// The module cache\n \tvar installedModules = {};\n\n \t// The require function\n \tfunction __webpack_require__(moduleId) {\n\n \t\t// Check if module is in cache\n \t\tif(installedModules[moduleId]) {\n \t\t\treturn installedModules[moduleId].exports;\n \t\t}\n \t\t// Create a new module (and put it into the cache)\n \t\tvar module = installedModules[moduleId] = {\n \t\t\ti: moduleId,\n \t\t\tl: false,\n \t\t\texports: {}\n \t\t};\n\n \t\t// Execute the module function\n \t\tmodules[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n\n \t\t// Flag the module as loaded\n \t\tmodule.l = true;\n\n \t\t// Return the exports of the module\n \t\treturn module.exports;\n \t}\n\n\n \t// expose the modules object (__webpack_modules__)\n \t__webpack_require__.m = modules;\n\n \t// expose the module cache\n \t__webpack_require__.c = installedModules;\n\n \t// define getter function for harmony exports\n \t__webpack_require__.d = function(exports, name, getter) {\n \t\tif(!__webpack_require__.o(exports, name)) {\n \t\t\tObject.defineProperty(exports, name, {\n \t\t\t\tconfigurable: false,\n \t\t\t\tenumerable: true,\n \t\t\t\tget: getter\n \t\t\t});\n \t\t}\n \t};\n\n \t// define __esModule on exports\n \t__webpack_require__.r = function(exports) {\n \t\tObject.defineProperty(exports, '__esModule', { value: true });\n \t};\n\n \t// getDefaultExport function for compatibility with non-harmony modules\n \t__webpack_require__.n = function(module) {\n \t\tvar getter = module && module.__esModule ?\n \t\t\tfunction getDefault() { return module['default']; } :\n \t\t\tfunction getModuleExports() { return module; };\n \t\t__webpack_require__.d(getter, 'a', getter);\n \t\treturn getter;\n \t};\n\n \t// Object.prototype.hasOwnProperty.call\n \t__webpack_require__.o = function(object, property) { return Object.prototype.hasOwnProperty.call(object, property); };\n\n \t// __webpack_public_path__\n \t__webpack_require__.p = \"\";\n\n\n \t// Load entry module and return exports\n \treturn __webpack_require__(__webpack_require__.s = \"./a.ts\");\n","console.log('Hello world')"],"sourceRoot":""}
\ No newline at end of file
diff --git a/test/comparison-tests/sourceMaps/expectedOutput-2.8/output.txt b/test/comparison-tests/sourceMaps/expectedOutput-2.8/output.txt
new file mode 100644
index 000000000..a501d6012
--- /dev/null
+++ b/test/comparison-tests/sourceMaps/expectedOutput-2.8/output.txt
@@ -0,0 +1,6 @@
+Built at: 2018-3-18 09:20:38
+ Asset Size Chunks Chunk Names
+ bundle.js 2.78 KiB main [emitted] main
+bundle.js.map 2.61 KiB main [emitted] main
+Entrypoint main = bundle.js bundle.js.map
+[./a.ts] 28 bytes {main} [built]
\ No newline at end of file
diff --git a/test/comparison-tests/stub-new-version.js b/test/comparison-tests/stub-new-version.js
index 68de7bb52..056316195 100644
--- a/test/comparison-tests/stub-new-version.js
+++ b/test/comparison-tests/stub-new-version.js
@@ -9,8 +9,8 @@ fs.readdirSync(__dirname).forEach(function(test) {
if (test === 'testLib') return;
// update this manually when a new version comes out
- var expectedOutput = path.join(testPath, 'expectedOutput-2.6'),
- newExpectedOutput = path.join(testPath, 'expectedOutput-2.7');
+ var expectedOutput = path.join(testPath, 'expectedOutput-2.7'),
+ newExpectedOutput = path.join(testPath, 'expectedOutput-2.8');
mkdirp.sync(newExpectedOutput);
fs.copySync(expectedOutput, newExpectedOutput);
diff --git a/test/comparison-tests/tsconfigInvalid/expectedOutput-2.8/bundle.js b/test/comparison-tests/tsconfigInvalid/expectedOutput-2.8/bundle.js
new file mode 100644
index 000000000..71a0c1455
--- /dev/null
+++ b/test/comparison-tests/tsconfigInvalid/expectedOutput-2.8/bundle.js
@@ -0,0 +1,85 @@
+/******/ (function(modules) { // webpackBootstrap
+/******/ // The module cache
+/******/ var installedModules = {};
+/******/
+/******/ // The require function
+/******/ function __webpack_require__(moduleId) {
+/******/
+/******/ // Check if module is in cache
+/******/ if(installedModules[moduleId]) {
+/******/ return installedModules[moduleId].exports;
+/******/ }
+/******/ // Create a new module (and put it into the cache)
+/******/ var module = installedModules[moduleId] = {
+/******/ i: moduleId,
+/******/ l: false,
+/******/ exports: {}
+/******/ };
+/******/
+/******/ // Execute the module function
+/******/ modules[moduleId].call(module.exports, module, module.exports, __webpack_require__);
+/******/
+/******/ // Flag the module as loaded
+/******/ module.l = true;
+/******/
+/******/ // Return the exports of the module
+/******/ return module.exports;
+/******/ }
+/******/
+/******/
+/******/ // expose the modules object (__webpack_modules__)
+/******/ __webpack_require__.m = modules;
+/******/
+/******/ // expose the module cache
+/******/ __webpack_require__.c = installedModules;
+/******/
+/******/ // define getter function for harmony exports
+/******/ __webpack_require__.d = function(exports, name, getter) {
+/******/ if(!__webpack_require__.o(exports, name)) {
+/******/ Object.defineProperty(exports, name, {
+/******/ configurable: false,
+/******/ enumerable: true,
+/******/ get: getter
+/******/ });
+/******/ }
+/******/ };
+/******/
+/******/ // define __esModule on exports
+/******/ __webpack_require__.r = function(exports) {
+/******/ Object.defineProperty(exports, '__esModule', { value: true });
+/******/ };
+/******/
+/******/ // getDefaultExport function for compatibility with non-harmony modules
+/******/ __webpack_require__.n = function(module) {
+/******/ var getter = module && module.__esModule ?
+/******/ function getDefault() { return module['default']; } :
+/******/ function getModuleExports() { return module; };
+/******/ __webpack_require__.d(getter, 'a', getter);
+/******/ return getter;
+/******/ };
+/******/
+/******/ // Object.prototype.hasOwnProperty.call
+/******/ __webpack_require__.o = function(object, property) { return Object.prototype.hasOwnProperty.call(object, property); };
+/******/
+/******/ // __webpack_public_path__
+/******/ __webpack_require__.p = "";
+/******/
+/******/
+/******/ // Load entry module and return exports
+/******/ return __webpack_require__(__webpack_require__.s = "./app.ts");
+/******/ })
+/************************************************************************/
+/******/ ({
+
+/***/ "./app.ts":
+/*!****************!*\
+ !*** ./app.ts ***!
+ \****************/
+/*! no static exports found */
+/***/ (function(module, exports) {
+
+eval("throw new Error(\"Module build failed: /u001b[31merror while parsing tsconfig.json/u001b[39m\");\n\n//# sourceURL=webpack:///./app.ts?");
+
+/***/ })
+
+/******/ });
\ No newline at end of file
diff --git a/test/comparison-tests/tsconfigInvalid/expectedOutput-2.8/output.txt b/test/comparison-tests/tsconfigInvalid/expectedOutput-2.8/output.txt
new file mode 100644
index 000000000..9b9cd226d
--- /dev/null
+++ b/test/comparison-tests/tsconfigInvalid/expectedOutput-2.8/output.txt
@@ -0,0 +1,16 @@
+Built at: 2018-3-18 09:20:43
+ Asset Size Chunks Chunk Names
+bundle.js 2.87 KiB main [emitted] main
+Entrypoint main = bundle.js
+[./app.ts] 94 bytes {main} [built] [failed] [3 errors]
+
+ERROR in tsconfig.json
+[90m[tsl] [39m[1m[31mERROR[39m[22m
+[1m[31m TS5024: Compiler option 'sourceMap' requires a value of type boolean.[39m[22m
+
+ERROR in tsconfig.json
+[90m[tsl] [39m[1m[31mERROR[39m[22m
+[1m[31m TS6046: Argument for '--target' option must be: 'es3', 'es5', 'es6', 'es2015', 'es2016', 'es2017', 'es2018', 'esnext'.[39m[22m
+
+ERROR in ./app.ts
+Module build failed: [31merror while parsing tsconfig.json[39m
\ No newline at end of file
diff --git a/test/comparison-tests/tsconfigInvalidFile/expectedOutput-2.8/bundle.js b/test/comparison-tests/tsconfigInvalidFile/expectedOutput-2.8/bundle.js
new file mode 100644
index 000000000..00efc2f99
--- /dev/null
+++ b/test/comparison-tests/tsconfigInvalidFile/expectedOutput-2.8/bundle.js
@@ -0,0 +1,85 @@
+/******/ (function(modules) { // webpackBootstrap
+/******/ // The module cache
+/******/ var installedModules = {};
+/******/
+/******/ // The require function
+/******/ function __webpack_require__(moduleId) {
+/******/
+/******/ // Check if module is in cache
+/******/ if(installedModules[moduleId]) {
+/******/ return installedModules[moduleId].exports;
+/******/ }
+/******/ // Create a new module (and put it into the cache)
+/******/ var module = installedModules[moduleId] = {
+/******/ i: moduleId,
+/******/ l: false,
+/******/ exports: {}
+/******/ };
+/******/
+/******/ // Execute the module function
+/******/ modules[moduleId].call(module.exports, module, module.exports, __webpack_require__);
+/******/
+/******/ // Flag the module as loaded
+/******/ module.l = true;
+/******/
+/******/ // Return the exports of the module
+/******/ return module.exports;
+/******/ }
+/******/
+/******/
+/******/ // expose the modules object (__webpack_modules__)
+/******/ __webpack_require__.m = modules;
+/******/
+/******/ // expose the module cache
+/******/ __webpack_require__.c = installedModules;
+/******/
+/******/ // define getter function for harmony exports
+/******/ __webpack_require__.d = function(exports, name, getter) {
+/******/ if(!__webpack_require__.o(exports, name)) {
+/******/ Object.defineProperty(exports, name, {
+/******/ configurable: false,
+/******/ enumerable: true,
+/******/ get: getter
+/******/ });
+/******/ }
+/******/ };
+/******/
+/******/ // define __esModule on exports
+/******/ __webpack_require__.r = function(exports) {
+/******/ Object.defineProperty(exports, '__esModule', { value: true });
+/******/ };
+/******/
+/******/ // getDefaultExport function for compatibility with non-harmony modules
+/******/ __webpack_require__.n = function(module) {
+/******/ var getter = module && module.__esModule ?
+/******/ function getDefault() { return module['default']; } :
+/******/ function getModuleExports() { return module; };
+/******/ __webpack_require__.d(getter, 'a', getter);
+/******/ return getter;
+/******/ };
+/******/
+/******/ // Object.prototype.hasOwnProperty.call
+/******/ __webpack_require__.o = function(object, property) { return Object.prototype.hasOwnProperty.call(object, property); };
+/******/
+/******/ // __webpack_public_path__
+/******/ __webpack_require__.p = "";
+/******/
+/******/
+/******/ // Load entry module and return exports
+/******/ return __webpack_require__(__webpack_require__.s = "./app.ts");
+/******/ })
+/************************************************************************/
+/******/ ({
+
+/***/ "./app.ts":
+/*!****************!*\
+ !*** ./app.ts ***!
+ \****************/
+/*! no static exports found */
+/***/ (function(module, exports) {
+
+eval("throw new Error(\"Module build failed: /u001b[31mA file specified in tsconfig.json could not be found: C://source//ts-loader//.test//tsconfigInvalidFile//i-am-a-file-what-does-not-exist.ts/u001b[39m\");\n\n//# sourceURL=webpack:///./app.ts?");
+
+/***/ })
+
+/******/ });
\ No newline at end of file
diff --git a/test/comparison-tests/tsconfigInvalidFile/expectedOutput-2.8/bundle.transpiled.js b/test/comparison-tests/tsconfigInvalidFile/expectedOutput-2.8/bundle.transpiled.js
new file mode 100644
index 000000000..9cb87268a
--- /dev/null
+++ b/test/comparison-tests/tsconfigInvalidFile/expectedOutput-2.8/bundle.transpiled.js
@@ -0,0 +1,85 @@
+/******/ (function(modules) { // webpackBootstrap
+/******/ // The module cache
+/******/ var installedModules = {};
+/******/
+/******/ // The require function
+/******/ function __webpack_require__(moduleId) {
+/******/
+/******/ // Check if module is in cache
+/******/ if(installedModules[moduleId]) {
+/******/ return installedModules[moduleId].exports;
+/******/ }
+/******/ // Create a new module (and put it into the cache)
+/******/ var module = installedModules[moduleId] = {
+/******/ i: moduleId,
+/******/ l: false,
+/******/ exports: {}
+/******/ };
+/******/
+/******/ // Execute the module function
+/******/ modules[moduleId].call(module.exports, module, module.exports, __webpack_require__);
+/******/
+/******/ // Flag the module as loaded
+/******/ module.l = true;
+/******/
+/******/ // Return the exports of the module
+/******/ return module.exports;
+/******/ }
+/******/
+/******/
+/******/ // expose the modules object (__webpack_modules__)
+/******/ __webpack_require__.m = modules;
+/******/
+/******/ // expose the module cache
+/******/ __webpack_require__.c = installedModules;
+/******/
+/******/ // define getter function for harmony exports
+/******/ __webpack_require__.d = function(exports, name, getter) {
+/******/ if(!__webpack_require__.o(exports, name)) {
+/******/ Object.defineProperty(exports, name, {
+/******/ configurable: false,
+/******/ enumerable: true,
+/******/ get: getter
+/******/ });
+/******/ }
+/******/ };
+/******/
+/******/ // define __esModule on exports
+/******/ __webpack_require__.r = function(exports) {
+/******/ Object.defineProperty(exports, '__esModule', { value: true });
+/******/ };
+/******/
+/******/ // getDefaultExport function for compatibility with non-harmony modules
+/******/ __webpack_require__.n = function(module) {
+/******/ var getter = module && module.__esModule ?
+/******/ function getDefault() { return module['default']; } :
+/******/ function getModuleExports() { return module; };
+/******/ __webpack_require__.d(getter, 'a', getter);
+/******/ return getter;
+/******/ };
+/******/
+/******/ // Object.prototype.hasOwnProperty.call
+/******/ __webpack_require__.o = function(object, property) { return Object.prototype.hasOwnProperty.call(object, property); };
+/******/
+/******/ // __webpack_public_path__
+/******/ __webpack_require__.p = "";
+/******/
+/******/
+/******/ // Load entry module and return exports
+/******/ return __webpack_require__(__webpack_require__.s = "./app.ts");
+/******/ })
+/************************************************************************/
+/******/ ({
+
+/***/ "./app.ts":
+/*!****************!*\
+ !*** ./app.ts ***!
+ \****************/
+/*! no static exports found */
+/***/ (function(module, exports) {
+
+eval("\n\n//# sourceURL=webpack:///./app.ts?");
+
+/***/ })
+
+/******/ });
\ No newline at end of file
diff --git a/test/comparison-tests/tsconfigInvalidFile/expectedOutput-2.8/output.transpiled.txt b/test/comparison-tests/tsconfigInvalidFile/expectedOutput-2.8/output.transpiled.txt
new file mode 100644
index 000000000..b4d53a502
--- /dev/null
+++ b/test/comparison-tests/tsconfigInvalidFile/expectedOutput-2.8/output.transpiled.txt
@@ -0,0 +1,5 @@
+Built at: 2018-3-18 09:20:47
+ Asset Size Chunks Chunk Names
+bundle.js 2.77 KiB main [emitted] main
+Entrypoint main = bundle.js
+[./app.ts] 0 bytes {main} [built]
\ No newline at end of file
diff --git a/test/comparison-tests/tsconfigInvalidFile/expectedOutput-2.8/output.txt b/test/comparison-tests/tsconfigInvalidFile/expectedOutput-2.8/output.txt
new file mode 100644
index 000000000..5639563bc
--- /dev/null
+++ b/test/comparison-tests/tsconfigInvalidFile/expectedOutput-2.8/output.txt
@@ -0,0 +1,8 @@
+Built at: 2018-3-18 09:20:46
+ Asset Size Chunks Chunk Names
+bundle.js 2.98 KiB main [emitted] main
+Entrypoint main = bundle.js
+[./app.ts] 200 bytes {main} [built] [failed] [1 error]
+
+ERROR in ./app.ts
+Module build failed: [31mA file specified in tsconfig.json could not be found: i-am-a-file-what-does-not-exist.ts[39m
\ No newline at end of file
diff --git a/test/comparison-tests/tsconfigNotReadable/expectedOutput-2.8/bundle.js b/test/comparison-tests/tsconfigNotReadable/expectedOutput-2.8/bundle.js
new file mode 100644
index 000000000..d8c523090
--- /dev/null
+++ b/test/comparison-tests/tsconfigNotReadable/expectedOutput-2.8/bundle.js
@@ -0,0 +1,85 @@
+/******/ (function(modules) { // webpackBootstrap
+/******/ // The module cache
+/******/ var installedModules = {};
+/******/
+/******/ // The require function
+/******/ function __webpack_require__(moduleId) {
+/******/
+/******/ // Check if module is in cache
+/******/ if(installedModules[moduleId]) {
+/******/ return installedModules[moduleId].exports;
+/******/ }
+/******/ // Create a new module (and put it into the cache)
+/******/ var module = installedModules[moduleId] = {
+/******/ i: moduleId,
+/******/ l: false,
+/******/ exports: {}
+/******/ };
+/******/
+/******/ // Execute the module function
+/******/ modules[moduleId].call(module.exports, module, module.exports, __webpack_require__);
+/******/
+/******/ // Flag the module as loaded
+/******/ module.l = true;
+/******/
+/******/ // Return the exports of the module
+/******/ return module.exports;
+/******/ }
+/******/
+/******/
+/******/ // expose the modules object (__webpack_modules__)
+/******/ __webpack_require__.m = modules;
+/******/
+/******/ // expose the module cache
+/******/ __webpack_require__.c = installedModules;
+/******/
+/******/ // define getter function for harmony exports
+/******/ __webpack_require__.d = function(exports, name, getter) {
+/******/ if(!__webpack_require__.o(exports, name)) {
+/******/ Object.defineProperty(exports, name, {
+/******/ configurable: false,
+/******/ enumerable: true,
+/******/ get: getter
+/******/ });
+/******/ }
+/******/ };
+/******/
+/******/ // define __esModule on exports
+/******/ __webpack_require__.r = function(exports) {
+/******/ Object.defineProperty(exports, '__esModule', { value: true });
+/******/ };
+/******/
+/******/ // getDefaultExport function for compatibility with non-harmony modules
+/******/ __webpack_require__.n = function(module) {
+/******/ var getter = module && module.__esModule ?
+/******/ function getDefault() { return module['default']; } :
+/******/ function getModuleExports() { return module; };
+/******/ __webpack_require__.d(getter, 'a', getter);
+/******/ return getter;
+/******/ };
+/******/
+/******/ // Object.prototype.hasOwnProperty.call
+/******/ __webpack_require__.o = function(object, property) { return Object.prototype.hasOwnProperty.call(object, property); };
+/******/
+/******/ // __webpack_public_path__
+/******/ __webpack_require__.p = "";
+/******/
+/******/
+/******/ // Load entry module and return exports
+/******/ return __webpack_require__(__webpack_require__.s = "./app.ts");
+/******/ })
+/************************************************************************/
+/******/ ({
+
+/***/ "./app.ts":
+/*!****************!*\
+ !*** ./app.ts ***!
+ \****************/
+/*! no static exports found */
+/***/ (function(module, exports) {
+
+eval("throw new Error(\"Module build failed: /u001b[31merror while reading tsconfig.json:/u001b[39m/r/n/u001b[31m/u001b[90m[tsl] /u001b[31m/u001b[1m/u001b[31mERROR/u001b[31m/u001b[22m/u001b[1m/u001b[31m in /u001b[31m/u001b[22m/u001b[1m/u001b[36mC://source//ts-loader//.test//tsconfigNotReadable//tsconfig.json(5,2)/u001b[31m/u001b[22m/u001b[39m/r/n/u001b[31m/u001b[1m/u001b[31m TS1109: Expression expected./u001b[31m/u001b[22m/u001b[39m\");\n\n//# sourceURL=webpack:///./app.ts?");
+
+/***/ })
+
+/******/ });
\ No newline at end of file
diff --git a/test/comparison-tests/tsconfigNotReadable/expectedOutput-2.8/bundle.transpiled.js b/test/comparison-tests/tsconfigNotReadable/expectedOutput-2.8/bundle.transpiled.js
new file mode 100644
index 000000000..cc95a330e
--- /dev/null
+++ b/test/comparison-tests/tsconfigNotReadable/expectedOutput-2.8/bundle.transpiled.js
@@ -0,0 +1,85 @@
+/******/ (function(modules) { // webpackBootstrap
+/******/ // The module cache
+/******/ var installedModules = {};
+/******/
+/******/ // The require function
+/******/ function __webpack_require__(moduleId) {
+/******/
+/******/ // Check if module is in cache
+/******/ if(installedModules[moduleId]) {
+/******/ return installedModules[moduleId].exports;
+/******/ }
+/******/ // Create a new module (and put it into the cache)
+/******/ var module = installedModules[moduleId] = {
+/******/ i: moduleId,
+/******/ l: false,
+/******/ exports: {}
+/******/ };
+/******/
+/******/ // Execute the module function
+/******/ modules[moduleId].call(module.exports, module, module.exports, __webpack_require__);
+/******/
+/******/ // Flag the module as loaded
+/******/ module.l = true;
+/******/
+/******/ // Return the exports of the module
+/******/ return module.exports;
+/******/ }
+/******/
+/******/
+/******/ // expose the modules object (__webpack_modules__)
+/******/ __webpack_require__.m = modules;
+/******/
+/******/ // expose the module cache
+/******/ __webpack_require__.c = installedModules;
+/******/
+/******/ // define getter function for harmony exports
+/******/ __webpack_require__.d = function(exports, name, getter) {
+/******/ if(!__webpack_require__.o(exports, name)) {
+/******/ Object.defineProperty(exports, name, {
+/******/ configurable: false,
+/******/ enumerable: true,
+/******/ get: getter
+/******/ });
+/******/ }
+/******/ };
+/******/
+/******/ // define __esModule on exports
+/******/ __webpack_require__.r = function(exports) {
+/******/ Object.defineProperty(exports, '__esModule', { value: true });
+/******/ };
+/******/
+/******/ // getDefaultExport function for compatibility with non-harmony modules
+/******/ __webpack_require__.n = function(module) {
+/******/ var getter = module && module.__esModule ?
+/******/ function getDefault() { return module['default']; } :
+/******/ function getModuleExports() { return module; };
+/******/ __webpack_require__.d(getter, 'a', getter);
+/******/ return getter;
+/******/ };
+/******/
+/******/ // Object.prototype.hasOwnProperty.call
+/******/ __webpack_require__.o = function(object, property) { return Object.prototype.hasOwnProperty.call(object, property); };
+/******/
+/******/ // __webpack_public_path__
+/******/ __webpack_require__.p = "";
+/******/
+/******/
+/******/ // Load entry module and return exports
+/******/ return __webpack_require__(__webpack_require__.s = "./app.ts");
+/******/ })
+/************************************************************************/
+/******/ ({
+
+/***/ "./app.ts":
+/*!****************!*\
+ !*** ./app.ts ***!
+ \****************/
+/*! no static exports found */
+/***/ (function(module, exports) {
+
+eval("throw new Error(\"Module build failed: /u001b[31merror while reading tsconfig.json:/u001b[39m/r/n/u001b[31m/u001b[90m[tsl] /u001b[31m/u001b[1m/u001b[31mERROR/u001b[31m/u001b[22m/u001b[1m/u001b[31m in /u001b[31m/u001b[22m/u001b[1m/u001b[36mC://source//ts-loader//.test//tsconfigNotReadable.transpile//tsconfig.json(5,2)/u001b[31m/u001b[22m/u001b[39m/r/n/u001b[31m/u001b[1m/u001b[31m TS1109: Expression expected./u001b[31m/u001b[22m/u001b[39m\");\n\n//# sourceURL=webpack:///./app.ts?");
+
+/***/ })
+
+/******/ });
\ No newline at end of file
diff --git a/test/comparison-tests/tsconfigNotReadable/expectedOutput-2.8/output.transpiled.txt b/test/comparison-tests/tsconfigNotReadable/expectedOutput-2.8/output.transpiled.txt
new file mode 100644
index 000000000..71c825c48
--- /dev/null
+++ b/test/comparison-tests/tsconfigNotReadable/expectedOutput-2.8/output.transpiled.txt
@@ -0,0 +1,10 @@
+Built at: 2018-3-18 09:20:50
+ Asset Size Chunks Chunk Names
+bundle.js 3.25 KiB main [emitted] main
+Entrypoint main = bundle.js
+[./app.ts] 447 bytes {main} [built] [failed] [1 error]
+
+ERROR in ./app.ts
+Module build failed: [31merror while reading tsconfig.json:[39m
+[31m[90m[tsl] [31m[1m[31mERROR[31m[22m[1m[31m in [31m[22m[1m[36mtsconfig.json(5,2)[31m[22m[39m
+[31m[1m[31m TS1109: Expression expected.[31m[22m[39m
\ No newline at end of file
diff --git a/test/comparison-tests/tsconfigNotReadable/expectedOutput-2.8/output.txt b/test/comparison-tests/tsconfigNotReadable/expectedOutput-2.8/output.txt
new file mode 100644
index 000000000..29dbad29a
--- /dev/null
+++ b/test/comparison-tests/tsconfigNotReadable/expectedOutput-2.8/output.txt
@@ -0,0 +1,10 @@
+Built at: 2018-3-18 09:20:49
+ Asset Size Chunks Chunk Names
+bundle.js 3.24 KiB main [emitted] main
+Entrypoint main = bundle.js
+[./app.ts] 437 bytes {main} [built] [failed] [1 error]
+
+ERROR in ./app.ts
+Module build failed: [31merror while reading tsconfig.json:[39m
+[31m[90m[tsl] [31m[1m[31mERROR[31m[22m[1m[31m in [31m[22m[1m[36mtsconfig.json(5,2)[31m[22m[39m
+[31m[1m[31m TS1109: Expression expected.[31m[22m[39m
\ No newline at end of file
diff --git a/test/comparison-tests/tsconfigSearch/expectedOutput-2.8/bundle.js b/test/comparison-tests/tsconfigSearch/expectedOutput-2.8/bundle.js
new file mode 100644
index 000000000..9f9727d7a
--- /dev/null
+++ b/test/comparison-tests/tsconfigSearch/expectedOutput-2.8/bundle.js
@@ -0,0 +1,97 @@
+/******/ (function(modules) { // webpackBootstrap
+/******/ // The module cache
+/******/ var installedModules = {};
+/******/
+/******/ // The require function
+/******/ function __webpack_require__(moduleId) {
+/******/
+/******/ // Check if module is in cache
+/******/ if(installedModules[moduleId]) {
+/******/ return installedModules[moduleId].exports;
+/******/ }
+/******/ // Create a new module (and put it into the cache)
+/******/ var module = installedModules[moduleId] = {
+/******/ i: moduleId,
+/******/ l: false,
+/******/ exports: {}
+/******/ };
+/******/
+/******/ // Execute the module function
+/******/ modules[moduleId].call(module.exports, module, module.exports, __webpack_require__);
+/******/
+/******/ // Flag the module as loaded
+/******/ module.l = true;
+/******/
+/******/ // Return the exports of the module
+/******/ return module.exports;
+/******/ }
+/******/
+/******/
+/******/ // expose the modules object (__webpack_modules__)
+/******/ __webpack_require__.m = modules;
+/******/
+/******/ // expose the module cache
+/******/ __webpack_require__.c = installedModules;
+/******/
+/******/ // define getter function for harmony exports
+/******/ __webpack_require__.d = function(exports, name, getter) {
+/******/ if(!__webpack_require__.o(exports, name)) {
+/******/ Object.defineProperty(exports, name, {
+/******/ configurable: false,
+/******/ enumerable: true,
+/******/ get: getter
+/******/ });
+/******/ }
+/******/ };
+/******/
+/******/ // define __esModule on exports
+/******/ __webpack_require__.r = function(exports) {
+/******/ Object.defineProperty(exports, '__esModule', { value: true });
+/******/ };
+/******/
+/******/ // getDefaultExport function for compatibility with non-harmony modules
+/******/ __webpack_require__.n = function(module) {
+/******/ var getter = module && module.__esModule ?
+/******/ function getDefault() { return module['default']; } :
+/******/ function getModuleExports() { return module; };
+/******/ __webpack_require__.d(getter, 'a', getter);
+/******/ return getter;
+/******/ };
+/******/
+/******/ // Object.prototype.hasOwnProperty.call
+/******/ __webpack_require__.o = function(object, property) { return Object.prototype.hasOwnProperty.call(object, property); };
+/******/
+/******/ // __webpack_public_path__
+/******/ __webpack_require__.p = "";
+/******/
+/******/
+/******/ // Load entry module and return exports
+/******/ return __webpack_require__(__webpack_require__.s = "./src/app.ts");
+/******/ })
+/************************************************************************/
+/******/ ({
+
+/***/ "./lib/externalLib.js":
+/*!****************************!*\
+ !*** ./lib/externalLib.js ***!
+ \****************************/
+/*! no static exports found */
+/***/ (function(module, exports) {
+
+eval("module.exports = {\n doSomething: function() { } \n}\n\n//# sourceURL=webpack:///./lib/externalLib.js?");
+
+/***/ }),
+
+/***/ "./src/app.ts":
+/*!********************!*\
+ !*** ./src/app.ts ***!
+ \********************/
+/*! no static exports found */
+/***/ (function(module, exports, __webpack_require__) {
+
+"use strict";
+eval("\nexports.__esModule = true;\nvar externalLib = __webpack_require__(/*! externalLib */ \"./lib/externalLib.js\");\nexternalLib.doSomething('');\n\n\n//# sourceURL=webpack:///./src/app.ts?");
+
+/***/ })
+
+/******/ });
\ No newline at end of file
diff --git a/test/comparison-tests/tsconfigSearch/expectedOutput-2.8/output.transpiled.txt b/test/comparison-tests/tsconfigSearch/expectedOutput-2.8/output.transpiled.txt
new file mode 100644
index 000000000..8110ad6c0
--- /dev/null
+++ b/test/comparison-tests/tsconfigSearch/expectedOutput-2.8/output.transpiled.txt
@@ -0,0 +1,6 @@
+Built at: 2018-3-18 09:20:55
+ Asset Size Chunks Chunk Names
+bundle.js 3.29 KiB main [emitted] main
+Entrypoint main = bundle.js
+[./lib/externalLib.js] 55 bytes {main} [built]
+[./src/app.ts] 112 bytes {main} [built]
\ No newline at end of file
diff --git a/test/comparison-tests/tsconfigSearch/expectedOutput-2.8/output.txt b/test/comparison-tests/tsconfigSearch/expectedOutput-2.8/output.txt
new file mode 100644
index 000000000..fdb9518ba
--- /dev/null
+++ b/test/comparison-tests/tsconfigSearch/expectedOutput-2.8/output.txt
@@ -0,0 +1,6 @@
+Built at: 2018-3-18 09:20:54
+ Asset Size Chunks Chunk Names
+bundle.js 3.29 KiB main [emitted] main
+Entrypoint main = bundle.js
+[./lib/externalLib.js] 55 bytes {main} [built]
+[./src/app.ts] 112 bytes {main} [built]
\ No newline at end of file
diff --git a/test/comparison-tests/typeSystemWatch/expectedOutput-2.8/bundle.js b/test/comparison-tests/typeSystemWatch/expectedOutput-2.8/bundle.js
new file mode 100644
index 000000000..f7bcce84d
--- /dev/null
+++ b/test/comparison-tests/typeSystemWatch/expectedOutput-2.8/bundle.js
@@ -0,0 +1,85 @@
+/******/ (function(modules) { // webpackBootstrap
+/******/ // The module cache
+/******/ var installedModules = {};
+/******/
+/******/ // The require function
+/******/ function __webpack_require__(moduleId) {
+/******/
+/******/ // Check if module is in cache
+/******/ if(installedModules[moduleId]) {
+/******/ return installedModules[moduleId].exports;
+/******/ }
+/******/ // Create a new module (and put it into the cache)
+/******/ var module = installedModules[moduleId] = {
+/******/ i: moduleId,
+/******/ l: false,
+/******/ exports: {}
+/******/ };
+/******/
+/******/ // Execute the module function
+/******/ modules[moduleId].call(module.exports, module, module.exports, __webpack_require__);
+/******/
+/******/ // Flag the module as loaded
+/******/ module.l = true;
+/******/
+/******/ // Return the exports of the module
+/******/ return module.exports;
+/******/ }
+/******/
+/******/
+/******/ // expose the modules object (__webpack_modules__)
+/******/ __webpack_require__.m = modules;
+/******/
+/******/ // expose the module cache
+/******/ __webpack_require__.c = installedModules;
+/******/
+/******/ // define getter function for harmony exports
+/******/ __webpack_require__.d = function(exports, name, getter) {
+/******/ if(!__webpack_require__.o(exports, name)) {
+/******/ Object.defineProperty(exports, name, {
+/******/ configurable: false,
+/******/ enumerable: true,
+/******/ get: getter
+/******/ });
+/******/ }
+/******/ };
+/******/
+/******/ // define __esModule on exports
+/******/ __webpack_require__.r = function(exports) {
+/******/ Object.defineProperty(exports, '__esModule', { value: true });
+/******/ };
+/******/
+/******/ // getDefaultExport function for compatibility with non-harmony modules
+/******/ __webpack_require__.n = function(module) {
+/******/ var getter = module && module.__esModule ?
+/******/ function getDefault() { return module['default']; } :
+/******/ function getModuleExports() { return module; };
+/******/ __webpack_require__.d(getter, 'a', getter);
+/******/ return getter;
+/******/ };
+/******/
+/******/ // Object.prototype.hasOwnProperty.call
+/******/ __webpack_require__.o = function(object, property) { return Object.prototype.hasOwnProperty.call(object, property); };
+/******/
+/******/ // __webpack_public_path__
+/******/ __webpack_require__.p = "";
+/******/
+/******/
+/******/ // Load entry module and return exports
+/******/ return __webpack_require__(__webpack_require__.s = "./app.ts");
+/******/ })
+/************************************************************************/
+/******/ ({
+
+/***/ "./app.ts":
+/*!****************!*\
+ !*** ./app.ts ***!
+ \****************/
+/*! no static exports found */
+/***/ (function(module, exports) {
+
+eval("var Foo = /** @class */ (function () {\n function Foo() {\n }\n Foo.prototype.getSomething = function () {\n return null;\n };\n return Foo;\n}());\nvar foo = new Foo();\nvar x = foo.getSomething();\n\n\n//# sourceURL=webpack:///./app.ts?");
+
+/***/ })
+
+/******/ });
\ No newline at end of file
diff --git a/test/comparison-tests/typeSystemWatch/expectedOutput-2.8/output.transpiled.txt b/test/comparison-tests/typeSystemWatch/expectedOutput-2.8/output.transpiled.txt
new file mode 100644
index 000000000..224591c27
--- /dev/null
+++ b/test/comparison-tests/typeSystemWatch/expectedOutput-2.8/output.transpiled.txt
@@ -0,0 +1,5 @@
+Built at: 2018-3-18 09:21:05
+ Asset Size Chunks Chunk Names
+bundle.js 2.99 KiB main [emitted] main
+Entrypoint main = bundle.js
+[./app.ts] 212 bytes {main} [built]
\ No newline at end of file
diff --git a/test/comparison-tests/typeSystemWatch/expectedOutput-2.8/output.txt b/test/comparison-tests/typeSystemWatch/expectedOutput-2.8/output.txt
new file mode 100644
index 000000000..1b009dec4
--- /dev/null
+++ b/test/comparison-tests/typeSystemWatch/expectedOutput-2.8/output.txt
@@ -0,0 +1,5 @@
+Built at: 2018-3-18 09:20:59
+ Asset Size Chunks Chunk Names
+bundle.js 2.99 KiB main [emitted] main
+Entrypoint main = bundle.js
+[./app.ts] 212 bytes {main} [built]
\ No newline at end of file
diff --git a/test/comparison-tests/typeSystemWatch/expectedOutput-2.8/patch0/bundle.js b/test/comparison-tests/typeSystemWatch/expectedOutput-2.8/patch0/bundle.js
new file mode 100644
index 000000000..f7bcce84d
--- /dev/null
+++ b/test/comparison-tests/typeSystemWatch/expectedOutput-2.8/patch0/bundle.js
@@ -0,0 +1,85 @@
+/******/ (function(modules) { // webpackBootstrap
+/******/ // The module cache
+/******/ var installedModules = {};
+/******/
+/******/ // The require function
+/******/ function __webpack_require__(moduleId) {
+/******/
+/******/ // Check if module is in cache
+/******/ if(installedModules[moduleId]) {
+/******/ return installedModules[moduleId].exports;
+/******/ }
+/******/ // Create a new module (and put it into the cache)
+/******/ var module = installedModules[moduleId] = {
+/******/ i: moduleId,
+/******/ l: false,
+/******/ exports: {}
+/******/ };
+/******/
+/******/ // Execute the module function
+/******/ modules[moduleId].call(module.exports, module, module.exports, __webpack_require__);
+/******/
+/******/ // Flag the module as loaded
+/******/ module.l = true;
+/******/
+/******/ // Return the exports of the module
+/******/ return module.exports;
+/******/ }
+/******/
+/******/
+/******/ // expose the modules object (__webpack_modules__)
+/******/ __webpack_require__.m = modules;
+/******/
+/******/ // expose the module cache
+/******/ __webpack_require__.c = installedModules;
+/******/
+/******/ // define getter function for harmony exports
+/******/ __webpack_require__.d = function(exports, name, getter) {
+/******/ if(!__webpack_require__.o(exports, name)) {
+/******/ Object.defineProperty(exports, name, {
+/******/ configurable: false,
+/******/ enumerable: true,
+/******/ get: getter
+/******/ });
+/******/ }
+/******/ };
+/******/
+/******/ // define __esModule on exports
+/******/ __webpack_require__.r = function(exports) {
+/******/ Object.defineProperty(exports, '__esModule', { value: true });
+/******/ };
+/******/
+/******/ // getDefaultExport function for compatibility with non-harmony modules
+/******/ __webpack_require__.n = function(module) {
+/******/ var getter = module && module.__esModule ?
+/******/ function getDefault() { return module['default']; } :
+/******/ function getModuleExports() { return module; };
+/******/ __webpack_require__.d(getter, 'a', getter);
+/******/ return getter;
+/******/ };
+/******/
+/******/ // Object.prototype.hasOwnProperty.call
+/******/ __webpack_require__.o = function(object, property) { return Object.prototype.hasOwnProperty.call(object, property); };
+/******/
+/******/ // __webpack_public_path__
+/******/ __webpack_require__.p = "";
+/******/
+/******/
+/******/ // Load entry module and return exports
+/******/ return __webpack_require__(__webpack_require__.s = "./app.ts");
+/******/ })
+/************************************************************************/
+/******/ ({
+
+/***/ "./app.ts":
+/*!****************!*\
+ !*** ./app.ts ***!
+ \****************/
+/*! no static exports found */
+/***/ (function(module, exports) {
+
+eval("var Foo = /** @class */ (function () {\n function Foo() {\n }\n Foo.prototype.getSomething = function () {\n return null;\n };\n return Foo;\n}());\nvar foo = new Foo();\nvar x = foo.getSomething();\n\n\n//# sourceURL=webpack:///./app.ts?");
+
+/***/ })
+
+/******/ });
\ No newline at end of file
diff --git a/test/comparison-tests/typeSystemWatch/expectedOutput-2.8/patch0/output.transpiled.txt b/test/comparison-tests/typeSystemWatch/expectedOutput-2.8/patch0/output.transpiled.txt
new file mode 100644
index 000000000..494c89038
--- /dev/null
+++ b/test/comparison-tests/typeSystemWatch/expectedOutput-2.8/patch0/output.transpiled.txt
@@ -0,0 +1,5 @@
+Built at: 2018-3-18 09:21:07
+ Asset Size Chunks Chunk Names
+bundle.js 2.99 KiB main [emitted] main
+Entrypoint main = bundle.js
+[./app.ts] 212 bytes {main} [built]
\ No newline at end of file
diff --git a/test/comparison-tests/typeSystemWatch/expectedOutput-2.8/patch0/output.txt b/test/comparison-tests/typeSystemWatch/expectedOutput-2.8/patch0/output.txt
new file mode 100644
index 000000000..d3b26ea8c
--- /dev/null
+++ b/test/comparison-tests/typeSystemWatch/expectedOutput-2.8/patch0/output.txt
@@ -0,0 +1,11 @@
+Built at: 2018-3-18 09:21:02
+ Asset Size Chunks Chunk Names
+bundle.js 2.99 KiB main [emitted] main
+Entrypoint main = bundle.js
+[./app.ts] 212 bytes {main} [built] [1 error]
+
+ERROR in app.ts
+./app.ts
+[90m[tsl] [39m[1m[31mERROR[39m[22m[1m[31m in [39m[22m[1m[36mapp.ts(11,5)[39m[22m
+[1m[31m TS2322: Type 'AType' is not assignable to type 'BType'.[39m[22m
+[1m[31m Property 'b' is missing in type 'AType'.[39m[22m
\ No newline at end of file
diff --git a/test/comparison-tests/typeSystemWatch/expectedOutput-2.8/patch1/bundle.js b/test/comparison-tests/typeSystemWatch/expectedOutput-2.8/patch1/bundle.js
new file mode 100644
index 000000000..f7bcce84d
--- /dev/null
+++ b/test/comparison-tests/typeSystemWatch/expectedOutput-2.8/patch1/bundle.js
@@ -0,0 +1,85 @@
+/******/ (function(modules) { // webpackBootstrap
+/******/ // The module cache
+/******/ var installedModules = {};
+/******/
+/******/ // The require function
+/******/ function __webpack_require__(moduleId) {
+/******/
+/******/ // Check if module is in cache
+/******/ if(installedModules[moduleId]) {
+/******/ return installedModules[moduleId].exports;
+/******/ }
+/******/ // Create a new module (and put it into the cache)
+/******/ var module = installedModules[moduleId] = {
+/******/ i: moduleId,
+/******/ l: false,
+/******/ exports: {}
+/******/ };
+/******/
+/******/ // Execute the module function
+/******/ modules[moduleId].call(module.exports, module, module.exports, __webpack_require__);
+/******/
+/******/ // Flag the module as loaded
+/******/ module.l = true;
+/******/
+/******/ // Return the exports of the module
+/******/ return module.exports;
+/******/ }
+/******/
+/******/
+/******/ // expose the modules object (__webpack_modules__)
+/******/ __webpack_require__.m = modules;
+/******/
+/******/ // expose the module cache
+/******/ __webpack_require__.c = installedModules;
+/******/
+/******/ // define getter function for harmony exports
+/******/ __webpack_require__.d = function(exports, name, getter) {
+/******/ if(!__webpack_require__.o(exports, name)) {
+/******/ Object.defineProperty(exports, name, {
+/******/ configurable: false,
+/******/ enumerable: true,
+/******/ get: getter
+/******/ });
+/******/ }
+/******/ };
+/******/
+/******/ // define __esModule on exports
+/******/ __webpack_require__.r = function(exports) {
+/******/ Object.defineProperty(exports, '__esModule', { value: true });
+/******/ };
+/******/
+/******/ // getDefaultExport function for compatibility with non-harmony modules
+/******/ __webpack_require__.n = function(module) {
+/******/ var getter = module && module.__esModule ?
+/******/ function getDefault() { return module['default']; } :
+/******/ function getModuleExports() { return module; };
+/******/ __webpack_require__.d(getter, 'a', getter);
+/******/ return getter;
+/******/ };
+/******/
+/******/ // Object.prototype.hasOwnProperty.call
+/******/ __webpack_require__.o = function(object, property) { return Object.prototype.hasOwnProperty.call(object, property); };
+/******/
+/******/ // __webpack_public_path__
+/******/ __webpack_require__.p = "";
+/******/
+/******/
+/******/ // Load entry module and return exports
+/******/ return __webpack_require__(__webpack_require__.s = "./app.ts");
+/******/ })
+/************************************************************************/
+/******/ ({
+
+/***/ "./app.ts":
+/*!****************!*\
+ !*** ./app.ts ***!
+ \****************/
+/*! no static exports found */
+/***/ (function(module, exports) {
+
+eval("var Foo = /** @class */ (function () {\n function Foo() {\n }\n Foo.prototype.getSomething = function () {\n return null;\n };\n return Foo;\n}());\nvar foo = new Foo();\nvar x = foo.getSomething();\n\n\n//# sourceURL=webpack:///./app.ts?");
+
+/***/ })
+
+/******/ });
\ No newline at end of file
diff --git a/test/comparison-tests/typeSystemWatch/expectedOutput-2.8/patch1/output.transpiled.txt b/test/comparison-tests/typeSystemWatch/expectedOutput-2.8/patch1/output.transpiled.txt
new file mode 100644
index 000000000..e1e2984fc
--- /dev/null
+++ b/test/comparison-tests/typeSystemWatch/expectedOutput-2.8/patch1/output.transpiled.txt
@@ -0,0 +1,5 @@
+Built at: 2018-3-18 09:21:10
+ Asset Size Chunks Chunk Names
+bundle.js 2.99 KiB main [emitted] main
+Entrypoint main = bundle.js
+[./app.ts] 212 bytes {main} [built]
\ No newline at end of file
diff --git a/test/comparison-tests/typeSystemWatch/expectedOutput-2.8/patch1/output.txt b/test/comparison-tests/typeSystemWatch/expectedOutput-2.8/patch1/output.txt
new file mode 100644
index 000000000..3bfab2f63
--- /dev/null
+++ b/test/comparison-tests/typeSystemWatch/expectedOutput-2.8/patch1/output.txt
@@ -0,0 +1,5 @@
+Built at: 2018-3-18 09:21:04
+ Asset Size Chunks Chunk Names
+bundle.js 2.99 KiB main [emitted] main
+Entrypoint main = bundle.js
+[./app.ts] 212 bytes {main} [built]
\ No newline at end of file
diff --git a/test/comparison-tests/validateLoaderOptionNames/expectedOutput-2.8/bundle.js b/test/comparison-tests/validateLoaderOptionNames/expectedOutput-2.8/bundle.js
new file mode 100644
index 000000000..34d564b72
--- /dev/null
+++ b/test/comparison-tests/validateLoaderOptionNames/expectedOutput-2.8/bundle.js
@@ -0,0 +1,85 @@
+/******/ (function(modules) { // webpackBootstrap
+/******/ // The module cache
+/******/ var installedModules = {};
+/******/
+/******/ // The require function
+/******/ function __webpack_require__(moduleId) {
+/******/
+/******/ // Check if module is in cache
+/******/ if(installedModules[moduleId]) {
+/******/ return installedModules[moduleId].exports;
+/******/ }
+/******/ // Create a new module (and put it into the cache)
+/******/ var module = installedModules[moduleId] = {
+/******/ i: moduleId,
+/******/ l: false,
+/******/ exports: {}
+/******/ };
+/******/
+/******/ // Execute the module function
+/******/ modules[moduleId].call(module.exports, module, module.exports, __webpack_require__);
+/******/
+/******/ // Flag the module as loaded
+/******/ module.l = true;
+/******/
+/******/ // Return the exports of the module
+/******/ return module.exports;
+/******/ }
+/******/
+/******/
+/******/ // expose the modules object (__webpack_modules__)
+/******/ __webpack_require__.m = modules;
+/******/
+/******/ // expose the module cache
+/******/ __webpack_require__.c = installedModules;
+/******/
+/******/ // define getter function for harmony exports
+/******/ __webpack_require__.d = function(exports, name, getter) {
+/******/ if(!__webpack_require__.o(exports, name)) {
+/******/ Object.defineProperty(exports, name, {
+/******/ configurable: false,
+/******/ enumerable: true,
+/******/ get: getter
+/******/ });
+/******/ }
+/******/ };
+/******/
+/******/ // define __esModule on exports
+/******/ __webpack_require__.r = function(exports) {
+/******/ Object.defineProperty(exports, '__esModule', { value: true });
+/******/ };
+/******/
+/******/ // getDefaultExport function for compatibility with non-harmony modules
+/******/ __webpack_require__.n = function(module) {
+/******/ var getter = module && module.__esModule ?
+/******/ function getDefault() { return module['default']; } :
+/******/ function getModuleExports() { return module; };
+/******/ __webpack_require__.d(getter, 'a', getter);
+/******/ return getter;
+/******/ };
+/******/
+/******/ // Object.prototype.hasOwnProperty.call
+/******/ __webpack_require__.o = function(object, property) { return Object.prototype.hasOwnProperty.call(object, property); };
+/******/
+/******/ // __webpack_public_path__
+/******/ __webpack_require__.p = "";
+/******/
+/******/
+/******/ // Load entry module and return exports
+/******/ return __webpack_require__(__webpack_require__.s = "./app.ts");
+/******/ })
+/************************************************************************/
+/******/ ({
+
+/***/ "./app.ts":
+/*!****************!*\
+ !*** ./app.ts ***!
+ \****************/
+/*! no static exports found */
+/***/ (function(module, exports) {
+
+eval("throw new Error(\"Module build failed: Error: ts-loader was supplied with an unexpected loader option: notRealOption/n/nPlease take a look at the options you are supplying; the following are valid options:/nsilent / logLevel / logInfoToStdOut / instance / compiler / context / configFile / transpileOnly / ignoreDiagnostics / errorFormatter / colors / compilerOptions / appendTsSuffixTo / appendTsxSuffixTo / onlyCompileBundledFiles / happyPackMode / getCustomTransformers / reportFiles / experimentalWatchApi/n/n at validateLoaderOptions (C://source//ts-loader//dist//index.js:103:19)/n at getLoaderOptions (C://source//ts-loader//dist//index.js:66:5)/n at Object.loader (C://source//ts-loader//dist//index.js:15:21)\");\n\n//# sourceURL=webpack:///./app.ts?");
+
+/***/ })
+
+/******/ });
\ No newline at end of file
diff --git a/test/comparison-tests/validateLoaderOptionNames/expectedOutput-2.8/output.txt b/test/comparison-tests/validateLoaderOptionNames/expectedOutput-2.8/output.txt
new file mode 100644
index 000000000..a88647f54
--- /dev/null
+++ b/test/comparison-tests/validateLoaderOptionNames/expectedOutput-2.8/output.txt
@@ -0,0 +1,15 @@
+Built at: 2018-3-18 09:21:14
+ Asset Size Chunks Chunk Names
+bundle.js 3.51 KiB main [emitted] main
+Entrypoint main = bundle.js
+[./app.ts] 728 bytes {main} [built] [failed] [1 error]
+
+ERROR in ./app.ts
+Module build failed: Error: ts-loader was supplied with an unexpected loader option: notRealOption
+
+Please take a look at the options you are supplying; the following are valid options:
+silent / logLevel / logInfoToStdOut / instance / compiler / context / configFile / transpileOnly / ignoreDiagnostics / errorFormatter / colors / compilerOptions / appendTsSuffixTo / appendTsxSuffixTo / onlyCompileBundledFiles / happyPackMode / getCustomTransformers / reportFiles / experimentalWatchApi
+
+ at validateLoaderOptions (dist\index.js:103:19)
+ at getLoaderOptions (dist\index.js:66:5)
+ at Object.loader (dist\index.js:15:21)
\ No newline at end of file
diff --git a/yarn.lock b/yarn.lock
index b25dfd3d2..36081677d 100644
--- a/yarn.lock
+++ b/yarn.lock
@@ -5677,8 +5677,8 @@ typedarray@^0.0.6, typedarray@~0.0.5:
resolved "https://registry.yarnpkg.com/typedarray/-/typedarray-0.0.6.tgz#867ac74e3864187b1d3d47d996a78ec5c8830777"
typescript@^2.7.2:
- version "2.7.2"
- resolved "https://registry.yarnpkg.com/typescript/-/typescript-2.7.2.tgz#2d615a1ef4aee4f574425cdff7026edf81919836"
+ version "2.8.1"
+ resolved "https://registry.yarnpkg.com/typescript/-/typescript-2.8.1.tgz#6160e4f8f195d5ba81d4876f9c0cc1fbc0820624"
uglify-es@^3.3.4:
version "3.3.9"