Skip to content

Commit 93ac8e9

Browse files
authored
Merge pull request webpack#4205 from timse/use-let-const-as-blockscoped-variables
Use let const as blockscoped variables
2 parents 073d783 + bc86763 commit 93ac8e9

52 files changed

Lines changed: 350 additions & 266 deletions

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

lib/AmdMainTemplatePlugin.js

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -13,19 +13,19 @@ class AmdMainTemplatePlugin {
1313
}
1414

1515
apply(compilation) {
16-
let mainTemplate = compilation.mainTemplate;
16+
const mainTemplate = compilation.mainTemplate;
1717

1818
compilation.templatesPlugin("render-with-entry", (source, chunk, hash) => {
19-
let externals = chunk.modules.filter((m) => m.external);
20-
let externalsDepsArray = JSON.stringify(externals.map((m) =>
19+
const externals = chunk.modules.filter((m) => m.external);
20+
const externalsDepsArray = JSON.stringify(externals.map((m) =>
2121
typeof m.request === "object" ? m.request.amd : m.request
2222
));
23-
let externalsArguments = externals.map((m) =>
23+
const externalsArguments = externals.map((m) =>
2424
`__WEBPACK_EXTERNAL_MODULE_${m.id}__`
2525
).join(", ");
2626

2727
if(this.name) {
28-
let name = mainTemplate.applyPluginsWaterfall("asset-path", this.name, {
28+
const name = mainTemplate.applyPluginsWaterfall("asset-path", this.name, {
2929
hash,
3030
chunk
3131
});

lib/BannerPlugin.js

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -26,8 +26,8 @@ class BannerPlugin {
2626
}
2727

2828
apply(compiler) {
29-
let options = this.options;
30-
let banner = this.banner;
29+
const options = this.options;
30+
const banner = this.banner;
3131

3232
compiler.plugin("compilation", (compilation) => {
3333
compilation.plugin("optimize-chunk-assets", (chunks, callback) => {

lib/CaseSensitiveModulesWarning.js

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -10,8 +10,8 @@ module.exports = class CaseSensitiveModulesWarning extends Error {
1010
Error.captureStackTrace(this, CaseSensitiveModulesWarning);
1111
this.name = "CaseSensitiveModulesWarning";
1212

13-
let sortedModules = this._sort(modules);
14-
let modulesList = this._moduleMessages(sortedModules);
13+
const sortedModules = this._sort(modules);
14+
const modulesList = this._moduleMessages(sortedModules);
1515
this.message = "There are multiple modules with names that only differ in casing.\n" +
1616
"This can lead to unexpected behavior when compiling on a filesystem with other case-semantic.\n" +
1717
`Use equal casing. Compare these module identifiers:\n${modulesList}`;
@@ -34,7 +34,7 @@ module.exports = class CaseSensitiveModulesWarning extends Error {
3434
_moduleMessages(modules) {
3535
return modules.map((m) => {
3636
let message = `* ${m.identifier()}`;
37-
let validReasons = m.reasons.filter((reason) => reason.module);
37+
const validReasons = m.reasons.filter((reason) => reason.module);
3838

3939
if(validReasons.length > 0) {
4040
message += `\n Used by ${validReasons.length} module(s), i. e.`;

lib/ChunkTemplate.js

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -13,8 +13,8 @@ module.exports = class ChunkTemplate extends Template {
1313
}
1414

1515
render(chunk, moduleTemplate, dependencyTemplates) {
16-
let modules = this.renderChunkModules(chunk, moduleTemplate, dependencyTemplates);
17-
let core = this.applyPluginsWaterfall("modules", modules, chunk, moduleTemplate, dependencyTemplates);
16+
const modules = this.renderChunkModules(chunk, moduleTemplate, dependencyTemplates);
17+
const core = this.applyPluginsWaterfall("modules", modules, chunk, moduleTemplate, dependencyTemplates);
1818
let source = this.applyPluginsWaterfall("render", core, chunk, moduleTemplate, dependencyTemplates);
1919
if(chunk.hasEntryModule()) {
2020
source = this.applyPluginsWaterfall("render-with-entry", source, chunk);

lib/Compilation.js

Lines changed: 10 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -199,7 +199,7 @@ class Compilation extends Tapable {
199199
let _this = this;
200200
const start = _this.profile && +new Date();
201201

202-
let factories = [];
202+
const factories = [];
203203
for(let i = 0; i < dependencies.length; i++) {
204204
const factory = _this.dependencyFactories.get(dependencies[i][0].constructor);
205205
if(!factory) {
@@ -685,17 +685,16 @@ class Compilation extends Tapable {
685685
}
686686

687687
addChunk(name, module, loc) {
688-
let chunk;
689688
if(name) {
690689
if(Object.prototype.hasOwnProperty.call(this.namedChunks, name)) {
691-
chunk = this.namedChunks[name];
690+
const chunk = this.namedChunks[name];
692691
if(module) {
693692
chunk.addOrigin(module, loc);
694693
}
695694
return chunk;
696695
}
697696
}
698-
chunk = new Chunk(name, module, loc);
697+
const chunk = new Chunk(name, module, loc);
699698
this.chunks.push(chunk);
700699
if(name) {
701700
this.namedChunks[name] = chunk;
@@ -1098,7 +1097,6 @@ class Compilation extends Tapable {
10981097
this.children.forEach(function(child) {
10991098
hash.update(child.hash);
11001099
});
1101-
let chunk;
11021100
// clone needed as sort below is inplace mutation
11031101
const chunks = this.chunks.slice();
11041102
/**
@@ -1114,7 +1112,7 @@ class Compilation extends Tapable {
11141112
return 0;
11151113
});
11161114
for(let i = 0; i < chunks.length; i++) {
1117-
chunk = chunks[i];
1115+
const chunk = chunks[i];
11181116
const chunkHash = crypto.createHash(hashFunction);
11191117
if(outputOptions.hashSalt)
11201118
chunkHash.update(outputOptions.hashSalt);
@@ -1146,18 +1144,14 @@ class Compilation extends Tapable {
11461144
}
11471145

11481146
createModuleAssets() {
1149-
let module;
1150-
1151-
function cacheAssetsAndApplyPlugins(name) {
1152-
const file = this.getPath(name);
1153-
this.assets[file] = module.assets[name];
1154-
this.applyPlugins2("module-asset", module, file);
1155-
}
1156-
11571147
for(let i = 0; i < this.modules.length; i++) {
1158-
module = this.modules[i];
1148+
const module = this.modules[i];
11591149
if(module.assets) {
1160-
Object.keys(module.assets).forEach(cacheAssetsAndApplyPlugins, this);
1150+
Object.keys(module.assets).forEach((assetName) => {
1151+
const fileName = this.getPath(assetName);
1152+
this.assets[fileName] = module.assets[assetName];
1153+
this.applyPlugins2("module-asset", module, fileName);
1154+
});
11611155
}
11621156
}
11631157
}

lib/DefinePlugin.js

Lines changed: 27 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -15,15 +15,15 @@ class DefinePlugin {
1515
}
1616

1717
apply(compiler) {
18-
let definitions = this.definitions;
18+
const definitions = this.definitions;
1919
compiler.plugin("compilation", (compilation, params) => {
2020
compilation.dependencyFactories.set(ConstDependency, new NullFactory());
2121
compilation.dependencyTemplates.set(ConstDependency, new ConstDependency.Template());
2222

2323
params.normalModuleFactory.plugin("parser", (parser) => {
2424
(function walkDefinitions(definitions, prefix) {
2525
Object.keys(definitions).forEach((key) => {
26-
let code = definitions[key];
26+
const code = definitions[key];
2727
if(code && typeof code === "object" && !(code instanceof RegExp)) {
2828
walkDefinitions(code, prefix + key + ".");
2929
applyObjectDefine(prefix + key, code);
@@ -36,7 +36,7 @@ class DefinePlugin {
3636

3737
function stringifyObj(obj) {
3838
return "__webpack_require__.i({" + Object.keys(obj).map((key) => {
39-
let code = obj[key];
39+
const code = obj[key];
4040
return JSON.stringify(key) + ":" + toCode(code);
4141
}).join(",") + "})";
4242
}
@@ -59,39 +59,57 @@ class DefinePlugin {
5959
}
6060

6161
function applyDefine(key, code) {
62-
let isTypeof = /^typeof\s+/.test(key);
62+
const isTypeof = /^typeof\s+/.test(key);
6363
if(isTypeof) key = key.replace(/^typeof\s+/, "");
6464
let recurse = false;
6565
let recurseTypeof = false;
6666
code = toCode(code);
6767
if(!isTypeof) {
6868
parser.plugin("can-rename " + key, ParserHelpers.approve);
6969
parser.plugin("evaluate Identifier " + key, (expr) => {
70+
/**
71+
* this is needed in case there is a recursion in the DefinePlugin
72+
* to prevent an endless recursion
73+
* e.g.: new DefinePlugin({
74+
* "a": "b",
75+
* "b": "a"
76+
* });
77+
*/
7078
if(recurse) return;
71-
let res = parser.evaluate(code);
79+
recurse = true;
80+
const res = parser.evaluate(code);
7281
recurse = false;
7382
res.setRange(expr.range);
7483
return res;
7584
});
7685
parser.plugin("expression " + key, ParserHelpers.toConstantDependency(code));
7786
}
78-
let typeofCode = isTypeof ? code : "typeof (" + code + ")";
87+
const typeofCode = isTypeof ? code : "typeof (" + code + ")";
7988
parser.plugin("evaluate typeof " + key, (expr) => {
89+
/**
90+
* this is needed in case there is a recursion in the DefinePlugin
91+
* to prevent an endless recursion
92+
* e.g.: new DefinePlugin({
93+
* "typeof a": "tyepof b",
94+
* "typeof b": "typeof a"
95+
* });
96+
*/
8097
if(recurseTypeof) return;
81-
let res = parser.evaluate(typeofCode);
98+
recurseTypeof = true;
99+
const res = parser.evaluate(typeofCode);
82100
recurseTypeof = false;
83101
res.setRange(expr.range);
84102
return res;
85103
});
86104
parser.plugin("typeof " + key, (expr) => {
87-
let res = parser.evaluate(typeofCode);
105+
const res = parser.evaluate(typeofCode);
88106
if(!res.isString()) return;
89107
return ParserHelpers.toConstantDependency(JSON.stringify(res.string)).bind(parser)(expr);
90108
});
91109
}
92110

93111
function applyObjectDefine(key, obj) {
94-
let code = stringifyObj(obj);
112+
const code = stringifyObj(obj);
95113
parser.plugin("can-rename " + key, ParserHelpers.approve);
96114
parser.plugin("evaluate Identifier " + key, (expr) => new BasicEvaluatedExpression().setRange(expr.range));
97115
parser.plugin("evaluate typeof " + key, ParserHelpers.evaluateToString("object"));

lib/DllEntryPlugin.js

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -17,16 +17,16 @@ class DllEntryPlugin {
1717

1818
apply(compiler) {
1919
compiler.plugin("compilation", (compilation, params) => {
20-
let dllModuleFactory = new DllModuleFactory();
21-
let normalModuleFactory = params.normalModuleFactory;
20+
const dllModuleFactory = new DllModuleFactory();
21+
const normalModuleFactory = params.normalModuleFactory;
2222

2323
compilation.dependencyFactories.set(DllEntryDependency, dllModuleFactory);
2424

2525
compilation.dependencyFactories.set(SingleEntryDependency, normalModuleFactory);
2626
});
2727
compiler.plugin("make", (compilation, callback) => {
2828
compilation.addEntry(this.context, new DllEntryDependency(this.entries.map((e, idx) => {
29-
let dep = new SingleEntryDependency(e);
29+
const dep = new SingleEntryDependency(e);
3030
dep.loc = `${this.name}:${idx}`;
3131
return dep;
3232
}), this.name), this.name, callback);

lib/DllModuleFactory.js

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -12,7 +12,7 @@ class DllModuleFactory extends Tapable {
1212
super();
1313
}
1414
create(data, callback) {
15-
let dependency = data.dependencies[0];
15+
const dependency = data.dependencies[0];
1616
callback(null, new DllModule(data.context, dependency.dependencies, dependency.name, dependency.type));
1717
}
1818
}

lib/DllReferencePlugin.js

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -15,12 +15,12 @@ class DllReferencePlugin {
1515

1616
apply(compiler) {
1717
compiler.plugin("compilation", (compilation, params) => {
18-
let normalModuleFactory = params.normalModuleFactory;
18+
const normalModuleFactory = params.normalModuleFactory;
1919
compilation.dependencyFactories.set(DelegatedSourceDependency, normalModuleFactory);
2020
});
2121

2222
compiler.plugin("before-compile", (params, callback) => {
23-
let manifest = this.options.manifest;
23+
const manifest = this.options.manifest;
2424
if(typeof manifest === "string") {
2525
params.compilationDependencies.push(manifest);
2626
compiler.inputFileSystem.readFile(manifest, function(err, result) {
@@ -38,10 +38,10 @@ class DllReferencePlugin {
3838
if(typeof manifest === "string") {
3939
manifest = params["dll reference " + manifest];
4040
}
41-
let name = this.options.name || manifest.name;
42-
let sourceType = this.options.sourceType || "var";
43-
let externals = {};
44-
let source = "dll-reference " + name;
41+
const name = this.options.name || manifest.name;
42+
const sourceType = this.options.sourceType || "var";
43+
const externals = {};
44+
const source = "dll-reference " + name;
4545
externals[source] = name;
4646
params.normalModuleFactory.apply(new ExternalModuleFactoryPlugin(sourceType, externals));
4747
params.normalModuleFactory.apply(new DelegatedModuleFactoryPlugin({

lib/Entrypoint.js

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -26,7 +26,7 @@ class Entrypoint {
2626
}
2727

2828
getFiles() {
29-
let files = [];
29+
const files = [];
3030

3131
for(let chunkIdx = 0; chunkIdx < this.chunks.length; chunkIdx++) {
3232
for(let fileIdx = 0; fileIdx < this.chunks[chunkIdx].files.length; fileIdx++) {

0 commit comments

Comments
 (0)