mirror of https://github.com/webpack/webpack.git
				
				
				
			move more ConstDependencies to `toConstantDependency`
This commit is contained in:
		
							parent
							
								
									b0665075da
								
							
						
					
					
						commit
						965b7261fa
					
				|  | @ -37,13 +37,7 @@ class APIPlugin { | ||||||
| 
 | 
 | ||||||
| 			params.normalModuleFactory.plugin("parser", parser => { | 			params.normalModuleFactory.plugin("parser", parser => { | ||||||
| 				Object.keys(REPLACEMENTS).forEach(key => { | 				Object.keys(REPLACEMENTS).forEach(key => { | ||||||
| 					parser.plugin(`expression ${key}`, expr => { | 					parser.plugin(`expression ${key}`, ParserHelpers.toConstantDependency(REPLACEMENTS[key])); | ||||||
| 						const dep = new ConstDependency(REPLACEMENTS[key], expr.range); |  | ||||||
| 						dep.loc = expr.loc; |  | ||||||
| 						parser.state.current.addDependency(dep); |  | ||||||
| 						return true; |  | ||||||
| 					}); |  | ||||||
| 
 |  | ||||||
| 					parser.plugin(`evaluate typeof ${key}`, ParserHelpers.evaluateToString(REPLACEMENT_TYPES[key])); | 					parser.plugin(`evaluate typeof ${key}`, ParserHelpers.evaluateToString(REPLACEMENT_TYPES[key])); | ||||||
| 				}); | 				}); | ||||||
| 				IGNORES.forEach(key => { | 				IGNORES.forEach(key => { | ||||||
|  |  | ||||||
|  | @ -73,12 +73,7 @@ class DefinePlugin { | ||||||
| 							res.setRange(expr.range); | 							res.setRange(expr.range); | ||||||
| 							return res; | 							return res; | ||||||
| 						}); | 						}); | ||||||
| 						parser.plugin("expression " + key, (expr) => { | 						parser.plugin("expression " + key, ParserHelpers.toConstantDependency(code)); | ||||||
| 							let dep = new ConstDependency(code, expr.range); |  | ||||||
| 							dep.loc = expr.loc; |  | ||||||
| 							parser.state.current.addDependency(dep); |  | ||||||
| 							return true; |  | ||||||
| 						}); |  | ||||||
| 					} | 					} | ||||||
| 					let typeofCode = isTypeof ? code : "typeof (" + code + ")"; | 					let typeofCode = isTypeof ? code : "typeof (" + code + ")"; | ||||||
| 					parser.plugin("evaluate typeof " + key, (expr) => { | 					parser.plugin("evaluate typeof " + key, (expr) => { | ||||||
|  | @ -91,10 +86,7 @@ class DefinePlugin { | ||||||
| 					parser.plugin("typeof " + key, (expr) => { | 					parser.plugin("typeof " + key, (expr) => { | ||||||
| 						let res = parser.evaluate(typeofCode); | 						let res = parser.evaluate(typeofCode); | ||||||
| 						if(!res.isString()) return; | 						if(!res.isString()) return; | ||||||
| 						let dep = new ConstDependency(JSON.stringify(res.string), expr.range); | 						return ParserHelpers.toConstantDependency(JSON.stringify(res.string)).bind(parser)(expr); | ||||||
| 						dep.loc = expr.loc; |  | ||||||
| 						parser.state.current.addDependency(dep); |  | ||||||
| 						return true; |  | ||||||
| 					}); | 					}); | ||||||
| 				} | 				} | ||||||
| 
 | 
 | ||||||
|  | @ -103,18 +95,8 @@ class DefinePlugin { | ||||||
| 					parser.plugin("can-rename " + key, () => true); | 					parser.plugin("can-rename " + key, () => true); | ||||||
| 					parser.plugin("evaluate Identifier " + key, (expr) => new BasicEvaluatedExpression().setRange(expr.range)); | 					parser.plugin("evaluate Identifier " + key, (expr) => new BasicEvaluatedExpression().setRange(expr.range)); | ||||||
| 					parser.plugin("evaluate typeof " + key, ParserHelpers.evaluateToString("object")); | 					parser.plugin("evaluate typeof " + key, ParserHelpers.evaluateToString("object")); | ||||||
| 					parser.plugin("expression " + key, (expr) => { | 					parser.plugin("expression " + key, ParserHelpers.toConstantDependency(code)); | ||||||
| 						let dep = new ConstDependency(code, expr.range); | 					parser.plugin("typeof " + key, ParserHelpers.toConstantDependency(JSON.stringify("object"))); | ||||||
| 						dep.loc = expr.loc; |  | ||||||
| 						parser.state.current.addDependency(dep); |  | ||||||
| 						return true; |  | ||||||
| 					}); |  | ||||||
| 					parser.plugin("typeof " + key, (expr) => { |  | ||||||
| 						let dep = new ConstDependency("\"object\"", expr.range); |  | ||||||
| 						dep.loc = expr.loc; |  | ||||||
| 						parser.state.current.addDependency(dep); |  | ||||||
| 						return true; |  | ||||||
| 					}); |  | ||||||
| 				} | 				} | ||||||
| 			}); | 			}); | ||||||
| 		}); | 		}); | ||||||
|  |  | ||||||
|  | @ -34,12 +34,7 @@ ExtendedAPIPlugin.prototype.apply = function(compiler) { | ||||||
| 
 | 
 | ||||||
| 		params.normalModuleFactory.plugin("parser", function(parser, parserOptions) { | 		params.normalModuleFactory.plugin("parser", function(parser, parserOptions) { | ||||||
| 			Object.keys(REPLACEMENTS).forEach(function(key) { | 			Object.keys(REPLACEMENTS).forEach(function(key) { | ||||||
| 				parser.plugin("expression " + key, function(expr) { | 				parser.plugin("expression " + key, ParserHelpers.toConstantDependency(REPLACEMENTS[key])); | ||||||
| 					var dep = new ConstDependency(REPLACEMENTS[key], expr.range); |  | ||||||
| 					dep.loc = expr.loc; |  | ||||||
| 					this.state.current.addDependency(dep); |  | ||||||
| 					return true; |  | ||||||
| 				}); |  | ||||||
| 				parser.plugin("evaluate typeof " + key, ParserHelpers.evaluateToString(REPLACEMENT_TYPES[key])); | 				parser.plugin("evaluate typeof " + key, ParserHelpers.evaluateToString(REPLACEMENT_TYPES[key])); | ||||||
| 			}); | 			}); | ||||||
| 		}); | 		}); | ||||||
|  |  | ||||||
|  | @ -197,12 +197,7 @@ HotModuleReplacementPlugin.prototype.apply = function(compiler) { | ||||||
| 		}); | 		}); | ||||||
| 
 | 
 | ||||||
| 		params.normalModuleFactory.plugin("parser", function(parser, parserOptions) { | 		params.normalModuleFactory.plugin("parser", function(parser, parserOptions) { | ||||||
| 			parser.plugin("expression __webpack_hash__", function(expr) { | 			parser.plugin("expression __webpack_hash__", ParserHelpers.toConstantDependency("__webpack_require__.h()")); | ||||||
| 				var dep = new ConstDependency("__webpack_require__.h()", expr.range); |  | ||||||
| 				dep.loc = expr.loc; |  | ||||||
| 				this.state.current.addDependency(dep); |  | ||||||
| 				return true; |  | ||||||
| 			}); |  | ||||||
| 			parser.plugin("evaluate typeof __webpack_hash__", ParserHelpers.evaluateToString("string")); | 			parser.plugin("evaluate typeof __webpack_hash__", ParserHelpers.evaluateToString("string")); | ||||||
| 			parser.plugin("evaluate Identifier module.hot", function(expr) { | 			parser.plugin("evaluate Identifier module.hot", function(expr) { | ||||||
| 				return new BasicEvaluatedExpression() | 				return new BasicEvaluatedExpression() | ||||||
|  |  | ||||||
|  | @ -72,28 +72,13 @@ NodeStuffPlugin.prototype.apply = function(compiler) { | ||||||
| 				res.setRange(expr.range); | 				res.setRange(expr.range); | ||||||
| 				return res; | 				return res; | ||||||
| 			}); | 			}); | ||||||
| 			parser.plugin("expression require.main", function(expr) { | 			parser.plugin("expression require.main", ParserHelpers.toConstantDependency("__webpack_require__.c[__webpack_require__.s]")); | ||||||
| 				var dep = new ConstDependency("__webpack_require__.c[__webpack_require__.s]", expr.range); |  | ||||||
| 				dep.loc = expr.loc; |  | ||||||
| 				this.state.current.addDependency(dep); |  | ||||||
| 				return true; |  | ||||||
| 			}); |  | ||||||
| 			parser.plugin( | 			parser.plugin( | ||||||
| 				"expression require.extensions", | 				"expression require.extensions", | ||||||
| 				ParserHelpers.expressionIsUnsupported("require.extensions is not supported by webpack. Use a loader instead.") | 				ParserHelpers.expressionIsUnsupported("require.extensions is not supported by webpack. Use a loader instead.") | ||||||
| 			); | 			); | ||||||
| 			parser.plugin("expression module.loaded", function(expr) { | 			parser.plugin("expression module.loaded", ParserHelpers.toConstantDependency("module.l")); | ||||||
| 				var dep = new ConstDependency("module.l", expr.range); | 			parser.plugin("expression module.id", ParserHelpers.toConstantDependency("module.i")); | ||||||
| 				dep.loc = expr.loc; |  | ||||||
| 				this.state.current.addDependency(dep); |  | ||||||
| 				return true; |  | ||||||
| 			}); |  | ||||||
| 			parser.plugin("expression module.id", function(expr) { |  | ||||||
| 				var dep = new ConstDependency("module.i", expr.range); |  | ||||||
| 				dep.loc = expr.loc; |  | ||||||
| 				this.state.current.addDependency(dep); |  | ||||||
| 				return true; |  | ||||||
| 			}); |  | ||||||
| 			parser.plugin("expression module.exports", function() { | 			parser.plugin("expression module.exports", function() { | ||||||
| 				var module = this.state.module; | 				var module = this.state.module; | ||||||
| 				var isHarmony = module.meta && module.meta.harmonyModule; | 				var isHarmony = module.meta && module.meta.harmonyModule; | ||||||
|  |  | ||||||
|  | @ -44,9 +44,7 @@ ProvidePlugin.prototype.apply = function(compiler) { | ||||||
| 						return false; | 						return false; | ||||||
| 					} | 					} | ||||||
| 					if(scopedName) { | 					if(scopedName) { | ||||||
| 						var dep = new ConstDependency(nameIdentifier, expr.range); | 						ParserHelpers.toConstantDependency(nameIdentifier).bind(this)(expr); | ||||||
| 						dep.loc = expr.loc; |  | ||||||
| 						this.state.current.addDependency(dep); |  | ||||||
| 					} | 					} | ||||||
| 					return true; | 					return true; | ||||||
| 				}); | 				}); | ||||||
|  |  | ||||||
|  | @ -4,6 +4,7 @@ | ||||||
| */ | */ | ||||||
| "use strict"; | "use strict"; | ||||||
| 
 | 
 | ||||||
|  | const ParserHelpers = require("./ParserHelpers"); | ||||||
| const ConstDependency = require("./dependencies/ConstDependency"); | const ConstDependency = require("./dependencies/ConstDependency"); | ||||||
| const NullFactory = require("./NullFactory"); | const NullFactory = require("./NullFactory"); | ||||||
| 
 | 
 | ||||||
|  | @ -18,27 +19,11 @@ module.exports = class RequireJsStuffPlugin { | ||||||
| 				if(typeof parserOptions.requireJs !== "undefined" && !parserOptions.requireJs) | 				if(typeof parserOptions.requireJs !== "undefined" && !parserOptions.requireJs) | ||||||
| 					return; | 					return; | ||||||
| 
 | 
 | ||||||
| 				function remove(expr) { | 				parser.plugin("call require.config", ParserHelpers.toConstantDependency(";")); | ||||||
| 					var dep = new ConstDependency(";", expr.range); | 				parser.plugin("call requirejs.config", ParserHelpers.toConstantDependency(";")); | ||||||
| 					dep.loc = expr.loc; |  | ||||||
| 					this.state.current.addDependency(dep); |  | ||||||
| 					return true; |  | ||||||
| 				} |  | ||||||
| 				parser.plugin("call require.config", remove); |  | ||||||
| 				parser.plugin("call requirejs.config", remove); |  | ||||||
| 
 | 
 | ||||||
| 				parser.plugin("expression require.version", function(expr) { | 				parser.plugin("expression require.version", ParserHelpers.toConstantDependency(JSON.stringify("0.0.0"))); | ||||||
| 					var dep = new ConstDependency(JSON.stringify("0.0.0"), expr.range); | 				parser.plugin("expression requirejs.onError", ParserHelpers.toConstantDependency(JSON.stringify("__webpack_require__.oe"))); | ||||||
| 					dep.loc = expr.loc; |  | ||||||
| 					this.state.current.addDependency(dep); |  | ||||||
| 					return true; |  | ||||||
| 				}); |  | ||||||
| 				parser.plugin("expression requirejs.onError", function(expr) { |  | ||||||
| 					var dep = new ConstDependency(JSON.stringify("__webpack_require__.oe"), expr.range); |  | ||||||
| 					dep.loc = expr.loc; |  | ||||||
| 					this.state.current.addDependency(dep); |  | ||||||
| 					return true; |  | ||||||
| 				}); |  | ||||||
| 			}); | 			}); | ||||||
| 		}); | 		}); | ||||||
| 	} | 	} | ||||||
|  |  | ||||||
|  | @ -2,13 +2,13 @@ | ||||||
| 	MIT License http://www.opensource.org/licenses/mit-license.php
 | 	MIT License http://www.opensource.org/licenses/mit-license.php
 | ||||||
| 	Author Tobias Koppers @sokra | 	Author Tobias Koppers @sokra | ||||||
| */ | */ | ||||||
| var ConstDependency = require("./ConstDependency"); |  | ||||||
| var CommonJsRequireDependency = require("./CommonJsRequireDependency"); | var CommonJsRequireDependency = require("./CommonJsRequireDependency"); | ||||||
| var CommonJsRequireContextDependency = require("./CommonJsRequireContextDependency"); | var CommonJsRequireContextDependency = require("./CommonJsRequireContextDependency"); | ||||||
| var RequireHeaderDependency = require("./RequireHeaderDependency"); | var RequireHeaderDependency = require("./RequireHeaderDependency"); | ||||||
| var LocalModuleDependency = require("./LocalModuleDependency"); | var LocalModuleDependency = require("./LocalModuleDependency"); | ||||||
| var ContextDependencyHelpers = require("./ContextDependencyHelpers"); | var ContextDependencyHelpers = require("./ContextDependencyHelpers"); | ||||||
| var LocalModulesHelpers = require("./LocalModulesHelpers"); | var LocalModulesHelpers = require("./LocalModulesHelpers"); | ||||||
|  | var ParserHelpers = require("../ParserHelpers"); | ||||||
| 
 | 
 | ||||||
| function CommonJsRequireDependencyParserPlugin(options) { | function CommonJsRequireDependencyParserPlugin(options) { | ||||||
| 	this.options = options; | 	this.options = options; | ||||||
|  | @ -18,12 +18,7 @@ module.exports = CommonJsRequireDependencyParserPlugin; | ||||||
| 
 | 
 | ||||||
| CommonJsRequireDependencyParserPlugin.prototype.apply = function(parser) { | CommonJsRequireDependencyParserPlugin.prototype.apply = function(parser) { | ||||||
| 	var options = this.options; | 	var options = this.options; | ||||||
| 	parser.plugin("expression require.cache", function(expr) { | 	parser.plugin("expression require.cache", ParserHelpers.toConstantDependency("__webpack_require__.c")); | ||||||
| 		var dep = new ConstDependency("__webpack_require__.c", expr.range); |  | ||||||
| 		dep.loc = expr.loc; |  | ||||||
| 		this.state.current.addDependency(dep); |  | ||||||
| 		return true; |  | ||||||
| 	}); |  | ||||||
| 	parser.plugin("expression require", function(expr) { | 	parser.plugin("expression require", function(expr) { | ||||||
| 		var dep = new CommonJsRequireContextDependency(options.unknownContextRequest, options.unknownContextRecursive, options.unknownContextRegExp, expr.range); | 		var dep = new CommonJsRequireContextDependency(options.unknownContextRequest, options.unknownContextRecursive, options.unknownContextRegExp, expr.range); | ||||||
| 		dep.critical = options.unknownContextCritical && "require function is used in a way in which dependencies cannot be statically extracted"; | 		dep.critical = options.unknownContextCritical && "require function is used in a way in which dependencies cannot be statically extracted"; | ||||||
|  |  | ||||||
|  | @ -6,7 +6,6 @@ | ||||||
| 
 | 
 | ||||||
| const RequireEnsureItemDependency = require("./RequireEnsureItemDependency"); | const RequireEnsureItemDependency = require("./RequireEnsureItemDependency"); | ||||||
| const RequireEnsureDependency = require("./RequireEnsureDependency"); | const RequireEnsureDependency = require("./RequireEnsureDependency"); | ||||||
| const ConstDependency = require("./ConstDependency"); |  | ||||||
| 
 | 
 | ||||||
| const NullFactory = require("../NullFactory"); | const NullFactory = require("../NullFactory"); | ||||||
| 
 | 
 | ||||||
|  | @ -33,12 +32,7 @@ class RequireEnsurePlugin { | ||||||
| 
 | 
 | ||||||
| 				parser.apply(new RequireEnsureDependenciesBlockParserPlugin()); | 				parser.apply(new RequireEnsureDependenciesBlockParserPlugin()); | ||||||
| 				parser.plugin("evaluate typeof require.ensure", ParserHelpers.evaluateToString("function")); | 				parser.plugin("evaluate typeof require.ensure", ParserHelpers.evaluateToString("function")); | ||||||
| 				parser.plugin("typeof require.ensure", (expr) => { | 				parser.plugin("typeof require.ensure", ParserHelpers.toConstantDependency(JSON.stringify("function"))); | ||||||
| 					const dep = new ConstDependency("'function'", expr.range); |  | ||||||
| 					dep.loc = expr.loc; |  | ||||||
| 					parser.state.current.addDependency(dep); |  | ||||||
| 					return true; |  | ||||||
| 				}); |  | ||||||
| 			}); | 			}); | ||||||
| 		}); | 		}); | ||||||
| 	} | 	} | ||||||
|  |  | ||||||
|  | @ -6,7 +6,6 @@ | ||||||
| 
 | 
 | ||||||
| const RequireIncludeDependency = require("./RequireIncludeDependency"); | const RequireIncludeDependency = require("./RequireIncludeDependency"); | ||||||
| const RequireIncludeDependencyParserPlugin = require("./RequireIncludeDependencyParserPlugin"); | const RequireIncludeDependencyParserPlugin = require("./RequireIncludeDependencyParserPlugin"); | ||||||
| const ConstDependency = require("./ConstDependency"); |  | ||||||
| 
 | 
 | ||||||
| const ParserHelpers = require("../ParserHelpers"); | const ParserHelpers = require("../ParserHelpers"); | ||||||
| 
 | 
 | ||||||
|  | @ -26,13 +25,7 @@ class RequireIncludePlugin { | ||||||
| 
 | 
 | ||||||
| 				parser.apply(new RequireIncludeDependencyParserPlugin()); | 				parser.apply(new RequireIncludeDependencyParserPlugin()); | ||||||
| 				parser.plugin("evaluate typeof require.include", ParserHelpers.evaluateToString("function")); | 				parser.plugin("evaluate typeof require.include", ParserHelpers.evaluateToString("function")); | ||||||
| 				parser.plugin("typeof require.include", (expr) => { | 				parser.plugin("typeof require.include", ParserHelpers.toConstantDependency(JSON.stringify("function"))); | ||||||
| 					const dep = new ConstDependency("'function'", expr.range); |  | ||||||
| 					dep.loc = expr.loc; |  | ||||||
| 					parser.state.current.addDependency(dep); |  | ||||||
| 					return true; |  | ||||||
| 				}); |  | ||||||
| 
 |  | ||||||
| 			}); | 			}); | ||||||
| 		}); | 		}); | ||||||
| 	} | 	} | ||||||
|  |  | ||||||
|  | @ -4,7 +4,6 @@ | ||||||
| */ | */ | ||||||
| "use strict"; | "use strict"; | ||||||
| 
 | 
 | ||||||
| const ConstDependency = require("./ConstDependency"); |  | ||||||
| const ParserHelpers = require("../ParserHelpers"); | const ParserHelpers = require("../ParserHelpers"); | ||||||
| 
 | 
 | ||||||
| class SystemPlugin { | class SystemPlugin { | ||||||
|  | @ -35,12 +34,7 @@ class SystemPlugin { | ||||||
| 				setNotSupported("System.set"); | 				setNotSupported("System.set"); | ||||||
| 				setNotSupported("System.get"); | 				setNotSupported("System.get"); | ||||||
| 				setNotSupported("System.register"); | 				setNotSupported("System.register"); | ||||||
| 				parser.plugin("expression System", (expr) => { | 				parser.plugin("expression System", ParserHelpers.toConstantDependency("{}")); | ||||||
| 					const dep = new ConstDependency("{}", expr.range); |  | ||||||
| 					dep.loc = expr.loc; |  | ||||||
| 					parser.state.current.addDependency(dep); |  | ||||||
| 					return true; |  | ||||||
| 				}); |  | ||||||
| 			}); | 			}); | ||||||
| 		}); | 		}); | ||||||
| 	} | 	} | ||||||
|  |  | ||||||
		Loading…
	
		Reference in New Issue