Skip to content

Commit

Permalink
fix incorrect optimization bailout messages
Browse files Browse the repository at this point in the history
fixes #6570
  • Loading branch information
sokra committed Feb 26, 2018
1 parent 213226e commit e7aba18
Show file tree
Hide file tree
Showing 7 changed files with 28 additions and 19 deletions.
15 changes: 5 additions & 10 deletions lib/optimize/ModuleConcatenationPlugin.js
Expand Up @@ -375,21 +375,16 @@ class ModuleConcatenationPlugin {
}
}

// Commit experimental changes
config.set(testConfig);

// Eagerly try to add imports too if possible
for (const imp of this.getImports(module)) {
const problem = this.tryToAdd(
testConfig,
imp,
possibleModules,
failureCache
);
const problem = this.tryToAdd(config, imp, possibleModules, failureCache);
if (problem) {
config.addWarning(module, problem);
config.addWarning(imp, problem);
}
}

// Commit experimental changes
config.set(testConfig);
return null;
}
}
Expand Down
1 change: 1 addition & 0 deletions test/statsCases/scope-hoisting-bailouts/concatenated.js
@@ -0,0 +1 @@
import "./concatenated1";
1 change: 1 addition & 0 deletions test/statsCases/scope-hoisting-bailouts/concatenated1.js
@@ -0,0 +1 @@
import { x } from "./concatenated2";
2 changes: 2 additions & 0 deletions test/statsCases/scope-hoisting-bailouts/concatenated2.js
@@ -0,0 +1,2 @@
import { y } from "external";
export var x = y;
26 changes: 17 additions & 9 deletions test/statsCases/scope-hoisting-bailouts/expected.txt
@@ -1,21 +1,29 @@
Hash: 2f9dacd48c09c3072b04
Hash: 123228577e0595ae0a8e
Time: Xms
Built at: Thu Jan 01 1970 00:00:00 GMT
Entrypoint index = index.js
Entrypoint entry = entry.js
[0] ./entry.js 32 bytes {0} {1} [built]
[0] ./entry.js 32 bytes {1} {2} [built]
ModuleConcatenation bailout: Module is an entry point
[1] ./ref-from-cjs.js 45 bytes {0} [built]
[1] ./ref-from-cjs.js 45 bytes {1} [built]
ModuleConcatenation bailout: Module is referenced from these modules with unsupported syntax: ./cjs.js (referenced with cjs require)
[2] ./index.js 150 bytes {0} [built]
[2] external "external" 42 bytes {1} [built]
ModuleConcatenation bailout: Module is not an ECMAScript module
[3] ./concatenated.js + 2 modules 116 bytes {0} [built]
ModuleConcatenation bailout: Cannot concat with external "external" (<- Module is not an ECMAScript module)
| ./concatenated.js 26 bytes [built]
| ModuleConcatenation bailout: Module is referenced from these modules with unsupported syntax: ./index.js (referenced with import())
| ./concatenated1.js 37 bytes [built]
| ./concatenated2.js 48 bytes [built]
[4] ./index.js 176 bytes {1} [built]
ModuleConcatenation bailout: Module is an entry point
[3] ./cjs.js 59 bytes {0} [built]
[5] ./cjs.js 59 bytes {1} [built]
ModuleConcatenation bailout: Module is not an ECMAScript module
[4] ./eval.js 35 bytes {0} [built]
[6] ./eval.js 35 bytes {1} [built]
ModuleConcatenation bailout: Module uses eval()
[5] ./injected-vars.js 40 bytes {0} [built]
[7] ./injected-vars.js 40 bytes {1} [built]
ModuleConcatenation bailout: Module uses injected variables (__dirname, __filename)
[6] ./module-id.js 26 bytes {0} [built]
[8] ./module-id.js 26 bytes {1} [built]
ModuleConcatenation bailout: Module uses module.id
[7] ./module-loaded.js 30 bytes {0} [built]
[9] ./module-loaded.js 30 bytes {1} [built]
ModuleConcatenation bailout: Module uses module.loaded
1 change: 1 addition & 0 deletions test/statsCases/scope-hoisting-bailouts/index.js
Expand Up @@ -5,3 +5,4 @@ import "./injected-vars";
import "./module-id";
import "./module-loaded";
import "./ref-from-cjs";
import("./concatenated");
1 change: 1 addition & 0 deletions test/statsCases/scope-hoisting-bailouts/webpack.config.js
Expand Up @@ -8,6 +8,7 @@ module.exports = {
output: {
filename: "[name].js"
},
externals: ["external"],
stats: {
assets: false,
optimizationBailout: true
Expand Down

0 comments on commit e7aba18

Please sign in to comment.