Skip to content

Commit

Permalink
consistent order
Browse files Browse the repository at this point in the history
  • Loading branch information
sokra committed Jun 14, 2017
1 parent 5d4ba56 commit 28f826a
Show file tree
Hide file tree
Showing 2 changed files with 13 additions and 2 deletions.
13 changes: 12 additions & 1 deletion lib/optimize/ModuleConcatenationPlugin.js
Expand Up @@ -74,7 +74,7 @@ class ModuleConcatenationPlugin {
if(nonHarmonyReasons.length > 0) {
const importingModules = new Set(nonHarmonyReasons.map(r => r.module));
setBailoutReason(module, "ModuleConcatenation (inner)", (requestShortener) => {
const names = Array.from(importingModules).map(m => m.readableIdentifier(requestShortener));
const names = Array.from(importingModules).map(m => m.readableIdentifier(requestShortener)).sort();
return `module is used with non-harmony imports from ${names.join(", ")}`;
});
continue;
Expand Down Expand Up @@ -132,6 +132,7 @@ class ModuleConcatenationPlugin {
const orderedModules = new Set();
this.addInOrder(concatConfiguration.rootModule, concatConfiguration.modules, orderedModules);
const newModule = new ConcatenatedModule(concatConfiguration.rootModule, Array.from(orderedModules));
concatConfiguration.sortWarnings();
for(const warning of concatConfiguration.warnings) {
newModule.optimizationBailout.push((requestShortener) => {
const reason = getBailoutReason(warning[0], requestShortener);
Expand Down Expand Up @@ -274,6 +275,16 @@ class ConcatConfiguration {
this.warnings.set(module, problem);
}

sortWarnings() {
this.warnings = new Map(Array.from(this.warnings).sort((a, b) => {
const ai = a[0].identifier();
const bi = b[0].identifier();
if(ai < bi) return -1;
if(ai > bi) return 1;
return 0;
}));
}

clone() {
const clone = new ConcatConfiguration(this.rootModule);
for(const module of this.modules)
Expand Down
2 changes: 1 addition & 1 deletion test/statsCases/scope-hoisting-multi/expected.txt
Expand Up @@ -23,8 +23,8 @@ Child
[3] (webpack)/test/statsCases/scope-hoisting-multi/common_lazy.js 25 bytes {1} {2} [built]
[4] (webpack)/test/statsCases/scope-hoisting-multi/first.js + 1 modules 238 bytes {4} [built]
ModuleConcatenation (inner): module is an entrypoint
ModuleConcatenation: Cannot concat with (webpack)/test/statsCases/scope-hoisting-multi/vendor.js: module is an entrypoint
ModuleConcatenation: Cannot concat with (webpack)/test/statsCases/scope-hoisting-multi/common.js
ModuleConcatenation: Cannot concat with (webpack)/test/statsCases/scope-hoisting-multi/vendor.js: module is an entrypoint
[5] (webpack)/test/statsCases/scope-hoisting-multi/lazy_shared.js 31 bytes {0} [built]
ModuleConcatenation (inner): module is used with non-harmony imports from (webpack)/test/statsCases/scope-hoisting-multi/first.js, (webpack)/test/statsCases/scope-hoisting-multi/second.js
[6] (webpack)/test/statsCases/scope-hoisting-multi/second.js 177 bytes {3} [built]
Expand Down

0 comments on commit 28f826a

Please sign in to comment.