mirror of https://github.com/webpack/webpack.git
move methods from Module into ModuleGraph
This commit is contained in:
parent
c21d59f783
commit
3bb5263bfd
|
|
@ -791,7 +791,7 @@ class Compilation {
|
|||
dependentModule.profile = currentProfile;
|
||||
}
|
||||
|
||||
dependentModule.setIssuer(this.moduleGraph, module);
|
||||
this.moduleGraph.setIssuer(dependentModule, module);
|
||||
} else {
|
||||
if (this.profile) {
|
||||
if (module.profile) {
|
||||
|
|
|
|||
|
|
@ -51,14 +51,14 @@ class FlagDependencyUsagePlugin {
|
|||
* @returns {void}
|
||||
*/
|
||||
const processModule = (module, usedExports) => {
|
||||
let ue = module.getUsedExports(moduleGraph);
|
||||
let ue = moduleGraph.getUsedExports(module);
|
||||
if (ue === true) return;
|
||||
if (usedExports === true) {
|
||||
module.setUsedExports(moduleGraph, (ue = true));
|
||||
moduleGraph.setUsedExports(module, (ue = true));
|
||||
} else if (Array.isArray(usedExports)) {
|
||||
if (!ue) {
|
||||
module.setUsedExports(
|
||||
moduleGraph,
|
||||
moduleGraph.setUsedExports(
|
||||
module,
|
||||
(ue = new SortableSet(usedExports))
|
||||
);
|
||||
} else {
|
||||
|
|
@ -72,7 +72,7 @@ class FlagDependencyUsagePlugin {
|
|||
}
|
||||
} else {
|
||||
if (ue !== false) return;
|
||||
module.setUsedExports(moduleGraph, (ue = new SortableSet()));
|
||||
moduleGraph.setUsedExports(module, (ue = new SortableSet()));
|
||||
}
|
||||
|
||||
// for a module without side effects we stop tracking usage here when no export is used
|
||||
|
|
@ -109,7 +109,7 @@ class FlagDependencyUsagePlugin {
|
|||
if (!reference) return;
|
||||
const referenceModule = reference.module;
|
||||
const importedNames = reference.importedNames;
|
||||
const oldUsedExports = referenceModule.getUsedExports(moduleGraph);
|
||||
const oldUsedExports = moduleGraph.getUsedExports(referenceModule);
|
||||
if (
|
||||
!oldUsedExports ||
|
||||
!isContained(oldUsedExports, importedNames)
|
||||
|
|
@ -119,7 +119,7 @@ class FlagDependencyUsagePlugin {
|
|||
};
|
||||
|
||||
for (const module of modules) {
|
||||
module.setUsedExports(moduleGraph, false);
|
||||
moduleGraph.setUsedExports(module, false);
|
||||
}
|
||||
|
||||
/** @type {[Module, DependenciesBlock, UsedExports][]} */
|
||||
|
|
|
|||
|
|
@ -30,7 +30,7 @@ class FlagInitialModulesAsUsedPlugin {
|
|||
return;
|
||||
}
|
||||
for (const module of chunkGraph.getChunkModulesIterable(chunk)) {
|
||||
module.setUsedExports(moduleGraph, true);
|
||||
moduleGraph.setUsedExports(module, true);
|
||||
moduleGraph.addExtraReason(module, this.explanation);
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -75,7 +75,7 @@ class FunctionModuleTemplatePlugin {
|
|||
} else if (module.buildMeta.providedExports) {
|
||||
source.add(Template.toComment("no static exports found") + "\n");
|
||||
}
|
||||
const usedExports = module.getUsedExports(moduleGraph);
|
||||
const usedExports = moduleGraph.getUsedExports(module);
|
||||
if (usedExports === true) {
|
||||
source.add(Template.toComment("all exports used") + "\n");
|
||||
} else if (usedExports === false) {
|
||||
|
|
@ -91,8 +91,8 @@ class FunctionModuleTemplatePlugin {
|
|||
);
|
||||
}
|
||||
}
|
||||
const optimizationBailout = module.getOptimizationBailout(
|
||||
this.moduleGraph
|
||||
const optimizationBailout = this.moduleGraph.getOptimizationBailout(
|
||||
module
|
||||
);
|
||||
if (optimizationBailout) {
|
||||
for (const text of optimizationBailout) {
|
||||
|
|
|
|||
|
|
@ -45,9 +45,6 @@ const Template = require("./Template");
|
|||
/** @typedef {KnownBuildMeta & Record<string, any>} BuildMeta */
|
||||
|
||||
const EMPTY_RESOLVE_OPTIONS = {};
|
||||
const optimizationBailoutSymbol = Symbol("optimization bailout");
|
||||
const usedExportsSymbol = Symbol("used exports");
|
||||
const issuerSymbol = Symbol("issuer");
|
||||
|
||||
let debugId = 1000;
|
||||
|
||||
|
|
@ -138,61 +135,6 @@ class Module extends DependenciesBlock {
|
|||
return (this.buildInfo && this.buildInfo.moduleArgument) || "module";
|
||||
}
|
||||
|
||||
/**
|
||||
* @param {ModuleGraph} moduleGraph the module graph
|
||||
* @returns {Module | null} the issuer module
|
||||
*/
|
||||
getIssuer(moduleGraph) {
|
||||
const meta = moduleGraph.getMeta(this);
|
||||
return meta[issuerSymbol];
|
||||
}
|
||||
|
||||
/**
|
||||
* @param {ModuleGraph} moduleGraph the module graph
|
||||
* @param {Module | null} issuer the issuer module
|
||||
* @returns {void}
|
||||
*/
|
||||
setIssuer(moduleGraph, issuer) {
|
||||
const meta = moduleGraph.getMeta(this);
|
||||
meta[issuerSymbol] = issuer;
|
||||
}
|
||||
|
||||
/**
|
||||
* @param {ModuleGraph} moduleGraph the module graph
|
||||
* @returns {(string | OptimizationBailoutFunction)[]} optimization bailouts
|
||||
*/
|
||||
getOptimizationBailout(moduleGraph) {
|
||||
const meta = moduleGraph.getMeta(this);
|
||||
const list = meta[optimizationBailoutSymbol];
|
||||
if (list === undefined) {
|
||||
return (meta[optimizationBailoutSymbol] = []);
|
||||
}
|
||||
return list;
|
||||
}
|
||||
|
||||
/**
|
||||
* @param {ModuleGraph} moduleGraph the module graph
|
||||
* @returns {false | true | SortableSet<string> | null} the used exports
|
||||
* false: module is not used at all.
|
||||
* true: the module namespace/object export is used.
|
||||
* SortableSet<string>: these export names are used.
|
||||
* empty SortableSet<string>: module is used but no export.
|
||||
* null: unknown, worst case should be assumed.
|
||||
*/
|
||||
getUsedExports(moduleGraph) {
|
||||
const value = moduleGraph.getMeta(this)[usedExportsSymbol];
|
||||
return value === undefined ? null : value;
|
||||
}
|
||||
|
||||
/**
|
||||
* @param {ModuleGraph} moduleGraph the module graph
|
||||
* @param {false | true | SortableSet<string>} usedExports the used exports
|
||||
* @returns {void}
|
||||
*/
|
||||
setUsedExports(moduleGraph, usedExports) {
|
||||
moduleGraph.getMeta(this)[usedExportsSymbol] = usedExports;
|
||||
}
|
||||
|
||||
/**
|
||||
* disconnect the module from the graph
|
||||
* @returns {void}
|
||||
|
|
@ -309,7 +251,7 @@ class Module extends DependenciesBlock {
|
|||
* @returns {boolean} true, if the module is used
|
||||
*/
|
||||
isModuleUsed(moduleGraph) {
|
||||
return this.getUsedExports(moduleGraph) !== false;
|
||||
return moduleGraph.getUsedExports(this) !== false;
|
||||
}
|
||||
|
||||
/**
|
||||
|
|
@ -318,7 +260,7 @@ class Module extends DependenciesBlock {
|
|||
* @returns {boolean} true, if the export is used
|
||||
*/
|
||||
isExportUsed(moduleGraph, exportName) {
|
||||
const usedExports = this.getUsedExports(moduleGraph);
|
||||
const usedExports = moduleGraph.getUsedExports(this);
|
||||
if (usedExports === null || usedExports === true) return true;
|
||||
if (usedExports === false) return false;
|
||||
return usedExports.has(exportName);
|
||||
|
|
@ -331,7 +273,7 @@ class Module extends DependenciesBlock {
|
|||
* string, the mangled export name when used.
|
||||
*/
|
||||
getUsedName(moduleGraph, exportName) {
|
||||
const usedExports = this.getUsedExports(moduleGraph);
|
||||
const usedExports = moduleGraph.getUsedExports(this);
|
||||
if (usedExports === null || usedExports === true) return exportName;
|
||||
if (usedExports === false) return false;
|
||||
if (!usedExports.has(exportName)) return false;
|
||||
|
|
@ -391,7 +333,7 @@ class Module extends DependenciesBlock {
|
|||
*/
|
||||
updateHash(hash, compilation) {
|
||||
hash.update(`${this.id}`);
|
||||
const usedExports = this.getUsedExports(compilation.moduleGraph);
|
||||
const usedExports = compilation.moduleGraph.getUsedExports(this);
|
||||
if (typeof usedExports === "boolean") {
|
||||
hash.update(JSON.stringify(usedExports));
|
||||
} else if (!usedExports) {
|
||||
|
|
@ -522,22 +464,26 @@ Object.defineProperty(Module.prototype, "isUsed", {
|
|||
|
||||
Object.defineProperty(Module.prototype, "used", {
|
||||
get() {
|
||||
throw new Error("Module.used was refactored (use getUsedExports instead)");
|
||||
throw new Error(
|
||||
"Module.used was refactored (use ModuleGraph.getUsedExports instead)"
|
||||
);
|
||||
},
|
||||
set(value) {
|
||||
throw new Error("Module.used was refactored (use setUsedExports instead)");
|
||||
throw new Error(
|
||||
"Module.used was refactored (use ModuleGraph.setUsedExports instead)"
|
||||
);
|
||||
}
|
||||
});
|
||||
|
||||
Object.defineProperty(Module.prototype, "usedExports", {
|
||||
get() {
|
||||
throw new Error(
|
||||
"Module.usedExports was refactored (use getUsedExports instead)"
|
||||
"Module.usedExports was refactored (use ModuleGraph.getUsedExports instead)"
|
||||
);
|
||||
},
|
||||
set(value) {
|
||||
throw new Error(
|
||||
"Module.usedExports was refactored (use setUsedExports instead)"
|
||||
"Module.usedExports was refactored (use ModuleGraph.setUsedExports instead)"
|
||||
);
|
||||
}
|
||||
});
|
||||
|
|
|
|||
|
|
@ -10,12 +10,31 @@ const ModuleGraphConnection = require("./ModuleGraphConnection");
|
|||
/** @typedef {import("./DependenciesBlock")} DependenciesBlock */
|
||||
/** @typedef {import("./Dependency")} Dependency */
|
||||
/** @typedef {import("./Module")} Module */
|
||||
/** @typedef {import("./RequestShortener")} RequestShortener */
|
||||
/** @template T @typedef {import("./util/SortableSet")<T>} SortableSet<T> */
|
||||
|
||||
/** @typedef {(requestShortener: RequestShortener) => string} OptimizationBailoutFunction */
|
||||
|
||||
class ModuleGraphModule {
|
||||
constructor() {
|
||||
/** @type {Set<ModuleGraphConnection>} */
|
||||
this.incomingConnections = new Set();
|
||||
/** @type {Set<ModuleGraphConnection>} */
|
||||
this.outgoingConnections = new Set();
|
||||
/** @type {Module | null} */
|
||||
this.issuer = null;
|
||||
/** @type {(string | OptimizationBailoutFunction)[]} */
|
||||
this.optimizationBailout = [];
|
||||
/** @type {false | true | SortableSet<string> | null} */
|
||||
this.usedExports = null;
|
||||
}
|
||||
}
|
||||
|
||||
class ModuleGraph {
|
||||
constructor() {
|
||||
/** @type {Map<Dependency, ModuleGraphConnection>} */
|
||||
this._dependencyMap = new Map();
|
||||
/** @type {Map<Module, Set<ModuleGraphConnection>>} */
|
||||
/** @type {Map<Module, ModuleGraphModule>} */
|
||||
this._moduleMap = new Map();
|
||||
/** @type {Map<Module, Set<ModuleGraphConnection>>} */
|
||||
this._originMap = new Map();
|
||||
|
|
@ -25,22 +44,17 @@ class ModuleGraph {
|
|||
this._parentsMap = new Map();
|
||||
}
|
||||
|
||||
_getModuleSet(module) {
|
||||
let connections = this._moduleMap.get(module);
|
||||
if (connections === undefined) {
|
||||
connections = new Set();
|
||||
this._moduleMap.set(module, connections);
|
||||
/**
|
||||
* @param {Module} module the module
|
||||
* @returns {ModuleGraphModule} the internal module
|
||||
*/
|
||||
_getModuleGraphModule(module) {
|
||||
let mgm = this._moduleMap.get(module);
|
||||
if (mgm === undefined) {
|
||||
mgm = new ModuleGraphModule();
|
||||
this._moduleMap.set(module, mgm);
|
||||
}
|
||||
return connections;
|
||||
}
|
||||
|
||||
_getOriginSet(module) {
|
||||
let connections = this._originMap.get(module);
|
||||
if (connections === undefined) {
|
||||
connections = new Set();
|
||||
this._originMap.set(module, connections);
|
||||
}
|
||||
return connections;
|
||||
return mgm;
|
||||
}
|
||||
|
||||
/**
|
||||
|
|
@ -84,9 +98,10 @@ class ModuleGraph {
|
|||
module
|
||||
);
|
||||
this._dependencyMap.set(dependency, connection);
|
||||
const connections = this._getModuleSet(module);
|
||||
const connections = this._getModuleGraphModule(module).incomingConnections;
|
||||
connections.add(connection);
|
||||
const originConnections = this._getOriginSet(originModule);
|
||||
const originConnections = this._getModuleGraphModule(originModule)
|
||||
.outgoingConnections;
|
||||
originConnections.add(connection);
|
||||
}
|
||||
|
||||
|
|
@ -98,11 +113,11 @@ class ModuleGraph {
|
|||
updateModule(dependency, module) {
|
||||
const connection = this._dependencyMap.get(dependency);
|
||||
if (connection.module === module) return;
|
||||
const oldSet = this._moduleMap.get(connection.module);
|
||||
oldSet.delete(connection);
|
||||
const oldMgm = this._getModuleGraphModule(connection.module);
|
||||
oldMgm.incomingConnections.delete(connection);
|
||||
connection.module = module;
|
||||
const newSet = this._moduleMap.get(module);
|
||||
newSet.add(connection);
|
||||
const newMgm = this._getModuleGraphModule(module);
|
||||
newMgm.incomingConnections.add(connection);
|
||||
}
|
||||
|
||||
/**
|
||||
|
|
@ -123,8 +138,10 @@ class ModuleGraph {
|
|||
*/
|
||||
replaceModule(oldModule, newModule, filterConnection) {
|
||||
if (oldModule === newModule) return;
|
||||
const oldConnections = this._getOriginSet(oldModule);
|
||||
const newConnections = this._getOriginSet(newModule);
|
||||
const oldMgm = this._getModuleGraphModule(oldModule);
|
||||
const newMgm = this._getModuleGraphModule(newModule);
|
||||
const oldConnections = oldMgm.outgoingConnections;
|
||||
const newConnections = newMgm.outgoingConnections;
|
||||
for (const connection of oldConnections) {
|
||||
if (filterConnection(connection)) {
|
||||
connection.originModule = newModule;
|
||||
|
|
@ -132,8 +149,8 @@ class ModuleGraph {
|
|||
oldConnections.delete(connection);
|
||||
}
|
||||
}
|
||||
const oldConnections2 = this._getModuleSet(oldModule);
|
||||
const newConnections2 = this._getModuleSet(newModule);
|
||||
const oldConnections2 = oldMgm.incomingConnections;
|
||||
const newConnections2 = newMgm.incomingConnections;
|
||||
for (const connection of oldConnections2) {
|
||||
if (filterConnection(connection)) {
|
||||
connection.module = newModule;
|
||||
|
|
@ -149,7 +166,7 @@ class ModuleGraph {
|
|||
* @returns {void}
|
||||
*/
|
||||
addExtraReason(module, explanation) {
|
||||
const connections = this._getModuleSet(module);
|
||||
const connections = this._getModuleGraphModule(module).incomingConnections;
|
||||
connections.add(new ModuleGraphConnection(null, null, module, explanation));
|
||||
}
|
||||
|
||||
|
|
@ -203,7 +220,7 @@ class ModuleGraph {
|
|||
* @returns {ModuleGraphConnection[]} reasons why a module is included
|
||||
*/
|
||||
getIncomingConnections(module) {
|
||||
const connections = this._getModuleSet(module);
|
||||
const connections = this._getModuleGraphModule(module).incomingConnections;
|
||||
return Array.from(connections);
|
||||
}
|
||||
|
||||
|
|
@ -212,10 +229,62 @@ class ModuleGraph {
|
|||
* @returns {ModuleGraphConnection[]} list of outgoing connections
|
||||
*/
|
||||
getOutgoingConnection(module) {
|
||||
const connections = this._getOriginSet(module);
|
||||
const connections = this._getModuleGraphModule(module).outgoingConnections;
|
||||
return Array.from(connections);
|
||||
}
|
||||
|
||||
/**
|
||||
* @param {Module} module the module
|
||||
* @returns {Module | null} the issuer module
|
||||
*/
|
||||
getIssuer(module) {
|
||||
const mgm = this._getModuleGraphModule(module);
|
||||
return mgm.issuer;
|
||||
}
|
||||
|
||||
/**
|
||||
* @param {Module} module the module
|
||||
* @param {Module | null} issuer the issuer module
|
||||
* @returns {void}
|
||||
*/
|
||||
setIssuer(module, issuer) {
|
||||
const mgm = this._getModuleGraphModule(module);
|
||||
mgm.issuer = issuer;
|
||||
}
|
||||
|
||||
/**
|
||||
* @param {Module} module the module
|
||||
* @returns {(string | OptimizationBailoutFunction)[]} optimization bailouts
|
||||
*/
|
||||
getOptimizationBailout(module) {
|
||||
const mgm = this._getModuleGraphModule(module);
|
||||
return mgm.optimizationBailout;
|
||||
}
|
||||
|
||||
/**
|
||||
* @param {Module} module the module
|
||||
* @returns {false | true | SortableSet<string> | null} the used exports
|
||||
* false: module is not used at all.
|
||||
* true: the module namespace/object export is used.
|
||||
* SortableSet<string>: these export names are used.
|
||||
* empty SortableSet<string>: module is used but no export.
|
||||
* null: unknown, worst case should be assumed.
|
||||
*/
|
||||
getUsedExports(module) {
|
||||
const mgm = this._getModuleGraphModule(module);
|
||||
return mgm.usedExports;
|
||||
}
|
||||
|
||||
/**
|
||||
* @param {Module} module the module
|
||||
* @param {false | true | SortableSet<string>} usedExports the used exports
|
||||
* @returns {void}
|
||||
*/
|
||||
setUsedExports(module, usedExports) {
|
||||
const mgm = this._getModuleGraphModule(module);
|
||||
mgm.usedExports = usedExports;
|
||||
}
|
||||
|
||||
/**
|
||||
* @param {any} thing any thing
|
||||
* @returns {Object} metadata
|
||||
|
|
|
|||
16
lib/Stats.js
16
lib/Stats.js
|
|
@ -324,7 +324,7 @@ class Stats {
|
|||
if (showErrorDetails && e.missing) {
|
||||
text += e.missing.map(item => `\n[${item}]`).join("");
|
||||
}
|
||||
const origin = e.origin || (e.module && e.module.getIssuer(moduleGraph));
|
||||
const origin = e.origin || (e.module && moduleGraph.getIssuer(e.module));
|
||||
if (showModuleTrace && origin) {
|
||||
text += `\n @ ${this.formatFilePath(
|
||||
origin.readableIdentifier(requestShortener)
|
||||
|
|
@ -342,10 +342,10 @@ class Stats {
|
|||
text += ` ${locInfo}`;
|
||||
}
|
||||
}
|
||||
let current = origin.getIssuer(moduleGraph);
|
||||
let current = moduleGraph.getIssuer(origin);
|
||||
while (current) {
|
||||
text += `\n @ ${current.readableIdentifier(requestShortener)}`;
|
||||
current = current.getIssuer(moduleGraph);
|
||||
current = moduleGraph.getIssuer(current);
|
||||
}
|
||||
}
|
||||
return text;
|
||||
|
|
@ -507,11 +507,11 @@ class Stats {
|
|||
|
||||
const fnModule = (module, nested) => {
|
||||
const path = [];
|
||||
const issuer = module.getIssuer(moduleGraph);
|
||||
const issuer = moduleGraph.getIssuer(module);
|
||||
let current = issuer;
|
||||
while (current) {
|
||||
path.push(current);
|
||||
current = current.getIssuer(moduleGraph);
|
||||
current = moduleGraph.getIssuer(current);
|
||||
}
|
||||
path.reverse();
|
||||
const obj = {
|
||||
|
|
@ -601,7 +601,7 @@ class Stats {
|
|||
});
|
||||
}
|
||||
if (showUsedExports) {
|
||||
const usedExports = module.getUsedExports(moduleGraph);
|
||||
const usedExports = moduleGraph.getUsedExports(module);
|
||||
if (usedExports === null) {
|
||||
obj.usedExports = null;
|
||||
} else if (typeof usedExports === "boolean") {
|
||||
|
|
@ -616,8 +616,8 @@ class Stats {
|
|||
: null;
|
||||
}
|
||||
if (showOptimizationBailout) {
|
||||
obj.optimizationBailout = module
|
||||
.getOptimizationBailout(moduleGraph)
|
||||
obj.optimizationBailout = moduleGraph
|
||||
.getOptimizationBailout(module)
|
||||
.map(item => {
|
||||
if (typeof item === "function") return item(requestShortener);
|
||||
return item;
|
||||
|
|
|
|||
|
|
@ -36,7 +36,7 @@ HarmonyCompatibilityDependency.Template = class HarmonyExportDependencyTemplate
|
|||
* @returns {InitFragment[]|null} the init fragments
|
||||
*/
|
||||
getInitFragments(dependency, { module, runtimeTemplate, moduleGraph }) {
|
||||
const usedExports = module.getUsedExports(moduleGraph);
|
||||
const usedExports = moduleGraph.getUsedExports(module);
|
||||
if (usedExports === true || usedExports === null) {
|
||||
const content = runtimeTemplate.defineEsModuleFlagStatement({
|
||||
exportsArgument: module.exportsArgument
|
||||
|
|
|
|||
|
|
@ -35,7 +35,7 @@ const getHashValue = (moduleGraph, importedModule) => {
|
|||
return "";
|
||||
}
|
||||
|
||||
const usedExports = importedModule.getUsedExports(moduleGraph);
|
||||
const usedExports = moduleGraph.getUsedExports(importedModule);
|
||||
const stringifiedUsedExports = JSON.stringify(usedExports);
|
||||
const stringifiedProvidedExports = JSON.stringify(
|
||||
importedModule.buildMeta.providedExports
|
||||
|
|
@ -96,7 +96,7 @@ class HarmonyExportImportedSpecifierDependency extends HarmonyImportDependency {
|
|||
const id = this.id;
|
||||
const parentModule = moduleGraph.getParentModule(this);
|
||||
const used = parentModule.getUsedName(moduleGraph, name);
|
||||
const usedExports = parentModule.getUsedExports(moduleGraph);
|
||||
const usedExports = moduleGraph.getUsedExports(parentModule);
|
||||
const importedModule = moduleGraph.getModule(this);
|
||||
|
||||
if (!importedModule) {
|
||||
|
|
@ -495,7 +495,7 @@ HarmonyExportImportedSpecifierDependency.Template = class HarmonyExportImportedS
|
|||
const activeFromOtherStarExports = dep._discoverActiveExportsFromOtherStartExports(
|
||||
moduleGraph
|
||||
);
|
||||
const usedExports = module.getUsedExports(moduleGraph);
|
||||
const usedExports = moduleGraph.getUsedExports(module);
|
||||
|
||||
if (usedExports && usedExports !== true) {
|
||||
// we know which exports are used
|
||||
|
|
|
|||
|
|
@ -173,7 +173,7 @@ class HarmonyImportSpecifierDependency extends HarmonyImportDependency {
|
|||
""
|
||||
);
|
||||
if (importedModule) {
|
||||
const usedExports = importedModule.getUsedExports(moduleGraph);
|
||||
const usedExports = moduleGraph.getUsedExports(importedModule);
|
||||
const stringifyUsedExports = JSON.stringify(usedExports);
|
||||
hash.update(stringifyUsedExports);
|
||||
}
|
||||
|
|
|
|||
|
|
@ -326,7 +326,7 @@ class ConcatenatedModule extends Module {
|
|||
this.depth = rootModule.depth;
|
||||
|
||||
// Info from Optimization
|
||||
this.setUsedExports(moduleGraph, rootModule.getUsedExports(moduleGraph));
|
||||
moduleGraph.setUsedExports(this, moduleGraph.getUsedExports(rootModule));
|
||||
|
||||
const modulesArray = Array.from(modules);
|
||||
|
||||
|
|
@ -1145,7 +1145,7 @@ class ConcatenatedModule extends Module {
|
|||
const result = new ConcatSource();
|
||||
|
||||
// add harmony compatibility flag (must be first because of possible circular dependencies)
|
||||
const usedExports = this.rootModule.getUsedExports(moduleGraph);
|
||||
const usedExports = moduleGraph.getUsedExports(this.rootModule);
|
||||
if (usedExports === true) {
|
||||
result.add(
|
||||
runtimeTemplate.defineEsModuleFlagStatement({
|
||||
|
|
|
|||
|
|
@ -58,8 +58,8 @@ class ModuleConcatenationPlugin {
|
|||
|
||||
const setBailoutReason = (module, reason) => {
|
||||
setInnerBailoutReason(module, reason);
|
||||
module
|
||||
.getOptimizationBailout(moduleGraph)
|
||||
moduleGraph
|
||||
.getOptimizationBailout(module)
|
||||
.push(
|
||||
typeof reason === "function"
|
||||
? rs => formatBailoutReason(reason(rs))
|
||||
|
|
@ -308,8 +308,8 @@ class ModuleConcatenationPlugin {
|
|||
}
|
||||
} else {
|
||||
for (const warning of currentConfiguration.getWarningsSorted()) {
|
||||
currentRoot
|
||||
.getOptimizationBailout(moduleGraph)
|
||||
moduleGraph
|
||||
.getOptimizationBailout(currentRoot)
|
||||
.push(formatBailoutWarning(warning[0], warning[1]));
|
||||
}
|
||||
}
|
||||
|
|
@ -332,8 +332,8 @@ class ModuleConcatenationPlugin {
|
|||
compilation
|
||||
);
|
||||
for (const warning of concatConfiguration.getWarningsSorted()) {
|
||||
newModule
|
||||
.getOptimizationBailout(moduleGraph)
|
||||
moduleGraph
|
||||
.getOptimizationBailout(newModule)
|
||||
.push(formatBailoutWarning(warning[0], warning[1]));
|
||||
}
|
||||
for (const m of modules) {
|
||||
|
|
|
|||
|
|
@ -400,7 +400,7 @@ class WebAssemblyGenerator extends Generator {
|
|||
let bin = /** @type {ArrayBuffer} */ (sourceAsAny);
|
||||
bin = preprocess(bin);
|
||||
|
||||
const usedExports = module.getUsedExports(moduleGraph);
|
||||
const usedExports = moduleGraph.getUsedExports(module);
|
||||
const initFuncId = t.identifier(
|
||||
usedExports && usedExports !== true
|
||||
? Template.numberToIdentifer(usedExports.size)
|
||||
|
|
|
|||
|
|
@ -24,7 +24,7 @@ class WebAssemblyJavascriptGenerator extends Generator {
|
|||
* @returns {Source} generated code
|
||||
*/
|
||||
generate(module, { runtimeTemplate, moduleGraph }) {
|
||||
const usedExports = module.getUsedExports(moduleGraph);
|
||||
const usedExports = moduleGraph.getUsedExports(module);
|
||||
const initIdentifer =
|
||||
usedExports && usedExports !== true
|
||||
? Template.numberToIdentifer(usedExports.size)
|
||||
|
|
|
|||
Loading…
Reference in New Issue