Skip to content

Commit 965b726

Browse files
committed
move more ConstDependencies to toConstantDependency
1 parent b066507 commit 965b726

11 files changed

+21
-111
lines changed

lib/APIPlugin.js

Lines changed: 1 addition & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -37,13 +37,7 @@ class APIPlugin {
3737

3838
params.normalModuleFactory.plugin("parser", parser => {
3939
Object.keys(REPLACEMENTS).forEach(key => {
40-
parser.plugin(`expression ${key}`, expr => {
41-
const dep = new ConstDependency(REPLACEMENTS[key], expr.range);
42-
dep.loc = expr.loc;
43-
parser.state.current.addDependency(dep);
44-
return true;
45-
});
46-
40+
parser.plugin(`expression ${key}`, ParserHelpers.toConstantDependency(REPLACEMENTS[key]));
4741
parser.plugin(`evaluate typeof ${key}`, ParserHelpers.evaluateToString(REPLACEMENT_TYPES[key]));
4842
});
4943
IGNORES.forEach(key => {

lib/DefinePlugin.js

Lines changed: 4 additions & 22 deletions
Original file line numberDiff line numberDiff line change
@@ -73,12 +73,7 @@ class DefinePlugin {
7373
res.setRange(expr.range);
7474
return res;
7575
});
76-
parser.plugin("expression " + key, (expr) => {
77-
let dep = new ConstDependency(code, expr.range);
78-
dep.loc = expr.loc;
79-
parser.state.current.addDependency(dep);
80-
return true;
81-
});
76+
parser.plugin("expression " + key, ParserHelpers.toConstantDependency(code));
8277
}
8378
let typeofCode = isTypeof ? code : "typeof (" + code + ")";
8479
parser.plugin("evaluate typeof " + key, (expr) => {
@@ -91,10 +86,7 @@ class DefinePlugin {
9186
parser.plugin("typeof " + key, (expr) => {
9287
let res = parser.evaluate(typeofCode);
9388
if(!res.isString()) return;
94-
let dep = new ConstDependency(JSON.stringify(res.string), expr.range);
95-
dep.loc = expr.loc;
96-
parser.state.current.addDependency(dep);
97-
return true;
89+
return ParserHelpers.toConstantDependency(JSON.stringify(res.string)).bind(parser)(expr);
9890
});
9991
}
10092

@@ -103,18 +95,8 @@ class DefinePlugin {
10395
parser.plugin("can-rename " + key, () => true);
10496
parser.plugin("evaluate Identifier " + key, (expr) => new BasicEvaluatedExpression().setRange(expr.range));
10597
parser.plugin("evaluate typeof " + key, ParserHelpers.evaluateToString("object"));
106-
parser.plugin("expression " + key, (expr) => {
107-
let dep = new ConstDependency(code, expr.range);
108-
dep.loc = expr.loc;
109-
parser.state.current.addDependency(dep);
110-
return true;
111-
});
112-
parser.plugin("typeof " + key, (expr) => {
113-
let dep = new ConstDependency("\"object\"", expr.range);
114-
dep.loc = expr.loc;
115-
parser.state.current.addDependency(dep);
116-
return true;
117-
});
98+
parser.plugin("expression " + key, ParserHelpers.toConstantDependency(code));
99+
parser.plugin("typeof " + key, ParserHelpers.toConstantDependency(JSON.stringify("object")));
118100
}
119101
});
120102
});

lib/ExtendedAPIPlugin.js

Lines changed: 1 addition & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -34,12 +34,7 @@ ExtendedAPIPlugin.prototype.apply = function(compiler) {
3434

3535
params.normalModuleFactory.plugin("parser", function(parser, parserOptions) {
3636
Object.keys(REPLACEMENTS).forEach(function(key) {
37-
parser.plugin("expression " + key, function(expr) {
38-
var dep = new ConstDependency(REPLACEMENTS[key], expr.range);
39-
dep.loc = expr.loc;
40-
this.state.current.addDependency(dep);
41-
return true;
42-
});
37+
parser.plugin("expression " + key, ParserHelpers.toConstantDependency(REPLACEMENTS[key]));
4338
parser.plugin("evaluate typeof " + key, ParserHelpers.evaluateToString(REPLACEMENT_TYPES[key]));
4439
});
4540
});

lib/HotModuleReplacementPlugin.js

Lines changed: 1 addition & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -197,12 +197,7 @@ HotModuleReplacementPlugin.prototype.apply = function(compiler) {
197197
});
198198

199199
params.normalModuleFactory.plugin("parser", function(parser, parserOptions) {
200-
parser.plugin("expression __webpack_hash__", function(expr) {
201-
var dep = new ConstDependency("__webpack_require__.h()", expr.range);
202-
dep.loc = expr.loc;
203-
this.state.current.addDependency(dep);
204-
return true;
205-
});
200+
parser.plugin("expression __webpack_hash__", ParserHelpers.toConstantDependency("__webpack_require__.h()"));
206201
parser.plugin("evaluate typeof __webpack_hash__", ParserHelpers.evaluateToString("string"));
207202
parser.plugin("evaluate Identifier module.hot", function(expr) {
208203
return new BasicEvaluatedExpression()

lib/NodeStuffPlugin.js

Lines changed: 3 additions & 18 deletions
Original file line numberDiff line numberDiff line change
@@ -72,28 +72,13 @@ NodeStuffPlugin.prototype.apply = function(compiler) {
7272
res.setRange(expr.range);
7373
return res;
7474
});
75-
parser.plugin("expression require.main", function(expr) {
76-
var dep = new ConstDependency("__webpack_require__.c[__webpack_require__.s]", expr.range);
77-
dep.loc = expr.loc;
78-
this.state.current.addDependency(dep);
79-
return true;
80-
});
75+
parser.plugin("expression require.main", ParserHelpers.toConstantDependency("__webpack_require__.c[__webpack_require__.s]"));
8176
parser.plugin(
8277
"expression require.extensions",
8378
ParserHelpers.expressionIsUnsupported("require.extensions is not supported by webpack. Use a loader instead.")
8479
);
85-
parser.plugin("expression module.loaded", function(expr) {
86-
var dep = new ConstDependency("module.l", expr.range);
87-
dep.loc = expr.loc;
88-
this.state.current.addDependency(dep);
89-
return true;
90-
});
91-
parser.plugin("expression module.id", function(expr) {
92-
var dep = new ConstDependency("module.i", expr.range);
93-
dep.loc = expr.loc;
94-
this.state.current.addDependency(dep);
95-
return true;
96-
});
80+
parser.plugin("expression module.loaded", ParserHelpers.toConstantDependency("module.l"));
81+
parser.plugin("expression module.id", ParserHelpers.toConstantDependency("module.i"));
9782
parser.plugin("expression module.exports", function() {
9883
var module = this.state.module;
9984
var isHarmony = module.meta && module.meta.harmonyModule;

lib/ProvidePlugin.js

Lines changed: 1 addition & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -44,9 +44,7 @@ ProvidePlugin.prototype.apply = function(compiler) {
4444
return false;
4545
}
4646
if(scopedName) {
47-
var dep = new ConstDependency(nameIdentifier, expr.range);
48-
dep.loc = expr.loc;
49-
this.state.current.addDependency(dep);
47+
ParserHelpers.toConstantDependency(nameIdentifier).bind(this)(expr);
5048
}
5149
return true;
5250
});

lib/RequireJsStuffPlugin.js

Lines changed: 5 additions & 20 deletions
Original file line numberDiff line numberDiff line change
@@ -4,6 +4,7 @@
44
*/
55
"use strict";
66

7+
const ParserHelpers = require("./ParserHelpers");
78
const ConstDependency = require("./dependencies/ConstDependency");
89
const NullFactory = require("./NullFactory");
910

@@ -18,27 +19,11 @@ module.exports = class RequireJsStuffPlugin {
1819
if(typeof parserOptions.requireJs !== "undefined" && !parserOptions.requireJs)
1920
return;
2021

21-
function remove(expr) {
22-
var dep = new ConstDependency(";", expr.range);
23-
dep.loc = expr.loc;
24-
this.state.current.addDependency(dep);
25-
return true;
26-
}
27-
parser.plugin("call require.config", remove);
28-
parser.plugin("call requirejs.config", remove);
22+
parser.plugin("call require.config", ParserHelpers.toConstantDependency(";"));
23+
parser.plugin("call requirejs.config", ParserHelpers.toConstantDependency(";"));
2924

30-
parser.plugin("expression require.version", function(expr) {
31-
var dep = new ConstDependency(JSON.stringify("0.0.0"), expr.range);
32-
dep.loc = expr.loc;
33-
this.state.current.addDependency(dep);
34-
return true;
35-
});
36-
parser.plugin("expression requirejs.onError", function(expr) {
37-
var dep = new ConstDependency(JSON.stringify("__webpack_require__.oe"), expr.range);
38-
dep.loc = expr.loc;
39-
this.state.current.addDependency(dep);
40-
return true;
41-
});
25+
parser.plugin("expression require.version", ParserHelpers.toConstantDependency(JSON.stringify("0.0.0")));
26+
parser.plugin("expression requirejs.onError", ParserHelpers.toConstantDependency(JSON.stringify("__webpack_require__.oe")));
4227
});
4328
});
4429
}

lib/dependencies/CommonJsRequireDependencyParserPlugin.js

Lines changed: 2 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -2,13 +2,13 @@
22
MIT License http://www.opensource.org/licenses/mit-license.php
33
Author Tobias Koppers @sokra
44
*/
5-
var ConstDependency = require("./ConstDependency");
65
var CommonJsRequireDependency = require("./CommonJsRequireDependency");
76
var CommonJsRequireContextDependency = require("./CommonJsRequireContextDependency");
87
var RequireHeaderDependency = require("./RequireHeaderDependency");
98
var LocalModuleDependency = require("./LocalModuleDependency");
109
var ContextDependencyHelpers = require("./ContextDependencyHelpers");
1110
var LocalModulesHelpers = require("./LocalModulesHelpers");
11+
var ParserHelpers = require("../ParserHelpers");
1212

1313
function CommonJsRequireDependencyParserPlugin(options) {
1414
this.options = options;
@@ -18,12 +18,7 @@ module.exports = CommonJsRequireDependencyParserPlugin;
1818

1919
CommonJsRequireDependencyParserPlugin.prototype.apply = function(parser) {
2020
var options = this.options;
21-
parser.plugin("expression require.cache", function(expr) {
22-
var dep = new ConstDependency("__webpack_require__.c", expr.range);
23-
dep.loc = expr.loc;
24-
this.state.current.addDependency(dep);
25-
return true;
26-
});
21+
parser.plugin("expression require.cache", ParserHelpers.toConstantDependency("__webpack_require__.c"));
2722
parser.plugin("expression require", function(expr) {
2823
var dep = new CommonJsRequireContextDependency(options.unknownContextRequest, options.unknownContextRecursive, options.unknownContextRegExp, expr.range);
2924
dep.critical = options.unknownContextCritical && "require function is used in a way in which dependencies cannot be statically extracted";

lib/dependencies/RequireEnsurePlugin.js

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

77
const RequireEnsureItemDependency = require("./RequireEnsureItemDependency");
88
const RequireEnsureDependency = require("./RequireEnsureDependency");
9-
const ConstDependency = require("./ConstDependency");
109

1110
const NullFactory = require("../NullFactory");
1211

@@ -33,12 +32,7 @@ class RequireEnsurePlugin {
3332

3433
parser.apply(new RequireEnsureDependenciesBlockParserPlugin());
3534
parser.plugin("evaluate typeof require.ensure", ParserHelpers.evaluateToString("function"));
36-
parser.plugin("typeof require.ensure", (expr) => {
37-
const dep = new ConstDependency("'function'", expr.range);
38-
dep.loc = expr.loc;
39-
parser.state.current.addDependency(dep);
40-
return true;
41-
});
35+
parser.plugin("typeof require.ensure", ParserHelpers.toConstantDependency(JSON.stringify("function")));
4236
});
4337
});
4438
}

lib/dependencies/RequireIncludePlugin.js

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

77
const RequireIncludeDependency = require("./RequireIncludeDependency");
88
const RequireIncludeDependencyParserPlugin = require("./RequireIncludeDependencyParserPlugin");
9-
const ConstDependency = require("./ConstDependency");
109

1110
const ParserHelpers = require("../ParserHelpers");
1211

@@ -26,13 +25,7 @@ class RequireIncludePlugin {
2625

2726
parser.apply(new RequireIncludeDependencyParserPlugin());
2827
parser.plugin("evaluate typeof require.include", ParserHelpers.evaluateToString("function"));
29-
parser.plugin("typeof require.include", (expr) => {
30-
const dep = new ConstDependency("'function'", expr.range);
31-
dep.loc = expr.loc;
32-
parser.state.current.addDependency(dep);
33-
return true;
34-
});
35-
28+
parser.plugin("typeof require.include", ParserHelpers.toConstantDependency(JSON.stringify("function")));
3629
});
3730
});
3831
}

0 commit comments

Comments
 (0)