Skip to content

Commit 7112943

Browse files
authored
Merge pull request webpack#6298 from EugeneHlushko/refactor/indexof-to-includes
Refactor/indexof to includes
2 parents e3c2f73 + 2aab060 commit 7112943

21 files changed

+51
-59
lines changed

lib/BannerPlugin.js

Lines changed: 3 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -53,12 +53,9 @@ class BannerPlugin {
5353
query = filename.substr(querySplit);
5454
filename = filename.substr(0, querySplit);
5555
}
56-
57-
if(filename.indexOf("/") < 0) {
58-
basename = filename;
59-
} else {
60-
basename = filename.substr(filename.lastIndexOf("/") + 1);
61-
}
56+
basename = filename.includes("/") ?
57+
filename.substr(filename.lastIndexOf("/") + 1) :
58+
filename;
6259

6360
const comment = compilation.getPath(banner, {
6461
hash,

lib/Chunk.js

Lines changed: 1 addition & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -207,11 +207,7 @@ class Chunk {
207207
}
208208

209209
addToCollection(collection, item) {
210-
if(item === this) {
211-
return false;
212-
}
213-
214-
if(collection.indexOf(item) > -1) {
210+
if(item === this || collection.includes(item)) {
215211
return false;
216212
}
217213

lib/Compiler.js

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -372,7 +372,7 @@ class Compiler extends Tapable {
372372
plugins.forEach(plugin => plugin.apply(childCompiler));
373373
}
374374
for(const name in this.hooks) {
375-
if(["make", "compile", "emit", "afterEmit", "invalid", "done", "thisCompilation"].indexOf(name) < 0) {
375+
if(!["make", "compile", "emit", "afterEmit", "invalid", "done", "thisCompilation"].includes(name)) {
376376
if(childCompiler.hooks[name])
377377
childCompiler.hooks[name].taps = this.hooks[name].taps.slice();
378378
}

lib/ConstPlugin.js

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -9,7 +9,7 @@ const ParserHelpers = require("./ParserHelpers");
99

1010
const getQuery = (request) => {
1111
const i = request.indexOf("?");
12-
return request.indexOf("?") < 0 ? "" : request.substr(i);
12+
return request.includes("?") ? request.substr(i) : "";
1313
};
1414

1515
class ConstPlugin {

lib/ErrorHelpers.js

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -11,7 +11,7 @@ const webpackOptionsFlag = "WEBPACK_OPTIONS";
1111
exports.cutOffByFlag = (stack, flag) => {
1212
stack = stack.split("\n");
1313
for(let i = 0; i < stack.length; i++)
14-
if(stack[i].indexOf(flag) >= 0)
14+
if(stack[i].includes(flag))
1515
stack.length = i;
1616
return stack.join("\n");
1717
};
@@ -24,7 +24,7 @@ exports.cutOffMultilineMessage = (stack, message) => {
2424
stack = stack.split("\n");
2525
message = message.split("\n");
2626

27-
return stack.reduce((acc, line, idx) => line.indexOf(message[idx]) < 0 ? acc.concat(line) : acc, []).join("\n");
27+
return stack.reduce((acc, line, idx) => line.includes(message[idx]) ? acc : acc.concat(line), []).join("\n");
2828
};
2929

3030
exports.cutOffMessage = (stack, message) => {

lib/FlagDependencyUsagePlugin.js

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,7 @@
66

77
const addToSet = (a, b) => {
88
b.forEach(item => {
9-
if(a.indexOf(item) < 0)
9+
if(!a.includes(item))
1010
a.push(item);
1111
});
1212
return a;

lib/HotModuleReplacement.runtime.js

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -19,13 +19,13 @@ module.exports = function() {
1919
var fn = function(request) {
2020
if(me.hot.active) {
2121
if(installedModules[request]) {
22-
if(installedModules[request].parents.indexOf(moduleId) < 0)
22+
if(!installedModules[request].parents.includes(moduleId))
2323
installedModules[request].parents.push(moduleId);
2424
} else {
2525
hotCurrentParents = [moduleId];
2626
hotCurrentChildModule = request;
2727
}
28-
if(me.children.indexOf(request) < 0)
28+
if(!me.children.includes(request))
2929
me.children.push(request);
3030
} else {
3131
console.warn("[HMR] unexpected require(" + request + ") from disposed module " + moduleId);
@@ -305,7 +305,7 @@ module.exports = function() {
305305
parentId: parentId
306306
};
307307
}
308-
if(outdatedModules.indexOf(parentId) >= 0) continue;
308+
if(outdatedModules.includes(parentId)) continue;
309309
if(parent.hot._acceptedDependencies[moduleId]) {
310310
if(!outdatedDependencies[parentId])
311311
outdatedDependencies[parentId] = [];
@@ -332,7 +332,7 @@ module.exports = function() {
332332
function addAllToSet(a, b) {
333333
for(var i = 0; i < b.length; i++) {
334334
var item = b[i];
335-
if(a.indexOf(item) < 0)
335+
if(!a.includes(item))
336336
a.push(item);
337337
}
338338
}
@@ -517,7 +517,7 @@ module.exports = function() {
517517
dependency = moduleOutdatedDependencies[i];
518518
cb = module.hot._acceptedDependencies[dependency];
519519
if(cb) {
520-
if(callbacks.indexOf(cb) >= 0) continue;
520+
if(callbacks.includes(cb)) continue;
521521
callbacks.push(cb);
522522
}
523523
}

lib/Module.js

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -253,7 +253,7 @@ class Module extends DependenciesBlock {
253253
if(this.isProvided(exportName)) {
254254
if(this.buildMeta.exportsType === "namespace")
255255
return Template.numberToIdentifer(idx);
256-
else if(this.buildMeta.exportsType === "named" && this.usedExports.indexOf("default") < 0)
256+
else if(this.buildMeta.exportsType === "named" && !this.usedExports.includes("default"))
257257
return Template.numberToIdentifer(idx);
258258
}
259259
return exportName;
@@ -262,7 +262,7 @@ class Module extends DependenciesBlock {
262262
isProvided(exportName) {
263263
if(!Array.isArray(this.buildMeta.providedExports))
264264
return null;
265-
return this.buildMeta.providedExports.indexOf(exportName) >= 0;
265+
return this.buildMeta.providedExports.includes(exportName);
266266
}
267267

268268
toString() {

lib/ProvidePlugin.js

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -33,7 +33,7 @@ class ProvidePlugin {
3333
}
3434
parser.hooks.expression.for(name).tap("ProvidePlugin", expr => {
3535
let nameIdentifier = name;
36-
const scopedName = name.indexOf(".") >= 0;
36+
const scopedName = name.includes(".");
3737
let expression = `require(${JSON.stringify(request[0])})`;
3838
if(scopedName) {
3939
nameIdentifier = `__webpack_provided_${name.replace(/\./g, "_dot_")}`;

lib/RuleSet.js

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -229,7 +229,7 @@ module.exports = class RuleSet {
229229
newRule.oneOf = RuleSet.normalizeRules(rule.oneOf, refs, `${ident}-oneOf`);
230230

231231
const keys = Object.keys(rule).filter((key) => {
232-
return ["resource", "resourceQuery", "compiler", "test", "include", "exclude", "issuer", "loader", "options", "query", "loaders", "use", "rules", "oneOf"].indexOf(key) < 0;
232+
return !["resource", "resourceQuery", "compiler", "test", "include", "exclude", "issuer", "loader", "options", "query", "loaders", "use", "rules", "oneOf"].includes(key);
233233
});
234234
keys.forEach((key) => {
235235
newRule[key] = rule[key];
@@ -301,7 +301,7 @@ module.exports = class RuleSet {
301301
}
302302

303303
const keys = Object.keys(item).filter(function(key) {
304-
return ["options", "query"].indexOf(key) < 0;
304+
return !["options", "query"].includes(key);
305305
});
306306

307307
keys.forEach(function(key) {
@@ -393,7 +393,7 @@ module.exports = class RuleSet {
393393

394394
// apply
395395
const keys = Object.keys(rule).filter((key) => {
396-
return ["resource", "resourceQuery", "compiler", "issuer", "rules", "oneOf", "use", "enforce"].indexOf(key) < 0;
396+
return !["resource", "resourceQuery", "compiler", "issuer", "rules", "oneOf", "use", "enforce"].includes(key);
397397
});
398398
keys.forEach((key) => {
399399
result.push({

lib/SourceMapDevToolPlugin.js

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -15,7 +15,7 @@ const validateOptions = require("schema-utils");
1515
const schema = require("../schemas/plugins/SourceMapDevToolPlugin.json");
1616

1717
const basename = (name) => {
18-
if(name.indexOf("/") < 0) return name;
18+
if(!name.includes("/")) return name;
1919
return name.substr(name.lastIndexOf("/") + 1);
2020
};
2121

@@ -212,7 +212,7 @@ class SourceMapDevToolPlugin {
212212
query,
213213
basename: basename(filename)
214214
});
215-
if(sourceMapFile.indexOf("[contenthash]") !== -1) {
215+
if(sourceMapFile.includes("[contenthash]")) {
216216
sourceMapFile = sourceMapFile.replace(/\[contenthash\]/g, createHash("md5").update(sourceMapString).digest("hex"));
217217
}
218218
const sourceMapUrl = options.publicPath ? options.publicPath + sourceMapFile.replace(/\\/g, "/") : path.relative(path.dirname(file), sourceMapFile).replace(/\\/g, "/");

lib/Stats.js

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -31,7 +31,7 @@ class Stats {
3131
// if they return "true" a warning should be surpressed
3232
const normalizedWarningsFilters = [].concat(warningsFilter).map(filter => {
3333
if(typeof filter === "string") {
34-
return warning => warning.indexOf(filter) > -1;
34+
return warning => warning.includes(filter);
3535
}
3636

3737
if(filter instanceof RegExp) {

lib/WebpackOptionsApply.js

Lines changed: 12 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -203,15 +203,15 @@ class WebpackOptionsApply extends OptionsApply {
203203
let legacy;
204204
let modern;
205205
let comment;
206-
if(options.devtool && (options.devtool.indexOf("sourcemap") >= 0 || options.devtool.indexOf("source-map") >= 0)) {
207-
const hidden = options.devtool.indexOf("hidden") >= 0;
208-
const inline = options.devtool.indexOf("inline") >= 0;
209-
const evalWrapped = options.devtool.indexOf("eval") >= 0;
210-
const cheap = options.devtool.indexOf("cheap") >= 0;
211-
const moduleMaps = options.devtool.indexOf("module") >= 0;
212-
noSources = options.devtool.indexOf("nosources") >= 0;
213-
legacy = options.devtool.indexOf("@") >= 0;
214-
modern = options.devtool.indexOf("#") >= 0;
206+
if(options.devtool && (options.devtool.includes("sourcemap") || options.devtool.includes("source-map"))) {
207+
const hidden = options.devtool.includes("hidden");
208+
const inline = options.devtool.includes("inline");
209+
const evalWrapped = options.devtool.includes("eval");
210+
const cheap = options.devtool.includes("cheap");
211+
const moduleMaps = options.devtool.includes("module");
212+
noSources = options.devtool.includes("nosources");
213+
legacy = options.devtool.includes("@");
214+
modern = options.devtool.includes("#");
215215
comment = legacy && modern ? "\n/*\n//@ source" + "MappingURL=[url]\n//# source" + "MappingURL=[url]\n*/" :
216216
legacy ? "\n/*\n//@ source" + "MappingURL=[url]\n*/" :
217217
modern ? "\n//# source" + "MappingURL=[url]" :
@@ -228,9 +228,9 @@ class WebpackOptionsApply extends OptionsApply {
228228
noSources: noSources,
229229
namespace: options.output.devtoolNamespace
230230
}).apply(compiler);
231-
} else if(options.devtool && options.devtool.indexOf("eval") >= 0) {
232-
legacy = options.devtool.indexOf("@") >= 0;
233-
modern = options.devtool.indexOf("#") >= 0;
231+
} else if(options.devtool && options.devtool.includes("eval")) {
232+
legacy = options.devtool.includes("@");
233+
modern = options.devtool.includes("#");
234234
comment = legacy && modern ? "\n//@ sourceURL=[url]\n//# sourceURL=[url]" :
235235
legacy ? "\n//@ sourceURL=[url]" :
236236
modern ? "\n//# sourceURL=[url]" :

lib/WebpackOptionsDefaulter.js

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -74,8 +74,8 @@ class WebpackOptionsDefaulter extends OptionsDefaulter {
7474
this.set("output.filename", "[name].js");
7575
this.set("output.chunkFilename", "make", options => {
7676
const filename = options.output.filename;
77-
const hasName = filename.indexOf("[name]") >= 0;
78-
const hasChunkHash = filename.indexOf("[chunkhash]") >= 0;
77+
const hasName = filename.includes("[name]");
78+
const hasChunkHash = filename.includes("[chunkhash]");
7979
// Anything with [chunkhash] is already fine
8080
if(hasChunkHash) return filename;
8181
// Replace [name] with [id] because it doesn't require a name map

lib/WebpackOptionsValidationError.js

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -76,7 +76,7 @@ class WebpackOptionsValidationError extends WebpackError {
7676

7777
const formatInnerSchema = (innerSchema, addSelf) => {
7878
if(!addSelf) return WebpackOptionsValidationError.formatSchema(innerSchema, prevSchemas);
79-
if(prevSchemas.indexOf(innerSchema) >= 0) return "(recursive)";
79+
if(prevSchemas.includes(innerSchema)) return "(recursive)";
8080
return WebpackOptionsValidationError.formatSchema(innerSchema, prevSchemas.concat(schema));
8181
};
8282

@@ -94,7 +94,7 @@ class WebpackOptionsValidationError extends WebpackError {
9494
if(schema.properties) {
9595
const required = schema.required || [];
9696
return `object { ${Object.keys(schema.properties).map(property => {
97-
if(required.indexOf(property) < 0) return property + "?";
97+
if(!required.includes(property)) return property + "?";
9898
return property;
9999
}).concat(schema.additionalProperties ? ["..."] : []).join(", ")} }`;
100100
}

lib/dependencies/AMDDefineDependencyParserPlugin.js

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -50,7 +50,7 @@ class AMDDefineDependencyParserPlugin {
5050
const processArray = (expr, param, identifiers, namedModule) => {
5151
if(param.isArray()) {
5252
param.items.forEach((param, idx) => {
53-
if(param.isString() && ["require", "module", "exports"].indexOf(param.string) >= 0)
53+
if(param.isString() && ["require", "module", "exports"].includes(param.string))
5454
identifiers[idx] = param.string;
5555
const result = processItem(expr, param, namedModule);
5656
if(result === undefined) {
@@ -66,7 +66,7 @@ class AMDDefineDependencyParserPlugin {
6666
if(request === "require") {
6767
identifiers[idx] = request;
6868
dep = "__webpack_require__";
69-
} else if(["exports", "module"].indexOf(request) >= 0) {
69+
} else if(["exports", "module"].includes(request)) {
7070
identifiers[idx] = request;
7171
dep = request;
7272
} else if(localModule = LocalModulesHelpers.getLocalModule(parser.state, request)) { // eslint-disable-line no-cond-assign
@@ -101,7 +101,7 @@ class AMDDefineDependencyParserPlugin {
101101
let dep, localModule;
102102
if(param.string === "require") {
103103
dep = new ConstDependency("__webpack_require__", param.range);
104-
} else if(["require", "exports", "module"].indexOf(param.string) >= 0) {
104+
} else if(["require", "exports", "module"].includes(param.string)) {
105105
dep = new ConstDependency(param.string, param.range);
106106
} else if(localModule = LocalModulesHelpers.getLocalModule(parser.state, param.string, namedModule)) { // eslint-disable-line no-cond-assign
107107
dep = new LocalModuleDependency(localModule, param.range);
@@ -235,7 +235,7 @@ class AMDDefineDependencyParserPlugin {
235235
});
236236
} else if(fn && isBoundFunctionExpression(fn)) {
237237
inTry = parser.scope.inTry;
238-
parser.inScope(fn.callee.object.params.filter((i) => ["require", "module", "exports"].indexOf(i.name) < 0), () => {
238+
parser.inScope(fn.callee.object.params.filter((i) => !["require", "module", "exports"].includes(i.name)), () => {
239239
parser.scope.renames = fnRenames;
240240
parser.scope.inTry = inTry;
241241
if(fn.callee.object.body.type === "BlockStatement")

lib/dependencies/AMDRequireDependenciesBlockParserPlugin.js

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -26,7 +26,7 @@ class AMDRequireDependenciesBlockParserPlugin {
2626
const fnData = getFunctionExpression(expression);
2727
if(fnData) {
2828
parser.inScope(fnData.fn.params.filter((i) => {
29-
return ["require", "module", "exports"].indexOf(i.name) < 0;
29+
return !["require", "module", "exports"].includes(i.name);
3030
}), () => {
3131
if(fnData.fn.body.type === "BlockStatement")
3232
parser.walkStatement(fnData.fn.body);
@@ -61,7 +61,7 @@ class AMDRequireDependenciesBlockParserPlugin {
6161
let dep, localModule;
6262
if(request === "require") {
6363
dep = "__webpack_require__";
64-
} else if(["exports", "module"].indexOf(request) >= 0) {
64+
} else if(["exports", "module"].includes(request)) {
6565
dep = request;
6666
} else if(localModule = LocalModulesHelpers.getLocalModule(parser.state, request)) { // eslint-disable-line no-cond-assign
6767
dep = new LocalModuleDependency(localModule);

lib/dependencies/HarmonyExportImportedSpecifierDependency.js

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -106,8 +106,7 @@ class HarmonyExportImportedSpecifierDependency extends HarmonyImportDependency {
106106
if(id === "default") return false;
107107
if(this.activeExports.has(id)) return false;
108108
if(activeFromOtherStarExports.has(id)) return false;
109-
if(importedModule.buildMeta.providedExports.indexOf(id) < 0) return false;
110-
109+
if(!importedModule.buildMeta.providedExports.includes(id)) return false;
111110
return true;
112111
}).map(item => [item, item]));
113112

lib/node/NodeWatchFileSystem.js

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -43,9 +43,9 @@ class NodeWatchFileSystem {
4343
}
4444
const times = this.watcher.getTimes();
4545
callback(null,
46-
changes.filter(file => files.indexOf(file) >= 0).sort(),
47-
changes.filter(file => dirs.indexOf(file) >= 0).sort(),
48-
changes.filter(file => missing.indexOf(file) >= 0).sort(), times, times);
46+
changes.filter(file => files.includes(file)).sort(),
47+
changes.filter(file => dirs.includes(file)).sort(),
48+
changes.filter(file => missing.includes(file)).sort(), times, times);
4949
});
5050

5151
this.watcher.watch(files.concat(missing), dirs.concat(missing), startTime);

lib/optimize/AggressiveSplittingPlugin.js

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -25,7 +25,7 @@ const copyWithReason = obj => {
2525
Object.keys(obj).forEach(key => {
2626
newObj[key] = obj[key];
2727
});
28-
if(!newObj.reasons || newObj.reasons.indexOf("aggressive-splitted") < 0)
28+
if(!newObj.reasons || !newObj.reasons.includes("aggressive-splitted"))
2929
newObj.reasons = (newObj.reasons || []).concat("aggressive-splitted");
3030
return newObj;
3131
};

lib/optimize/ChunkModuleIdRangePlugin.js

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -34,7 +34,7 @@ class ChunkModuleIdRangePlugin {
3434

3535
} else {
3636
chunkModules = modules.filter((m) => {
37-
return m.chunks.indexOf(chunk) >= 0;
37+
return m.chunks.includes(chunk);
3838
});
3939
}
4040

0 commit comments

Comments
 (0)