WXL
3 天以前 9bce51f651aad297ef9eb6df832bfdaf1de05d84
node_modules/webpack/lib/dependencies/RequireEnsureDependenciesBlockParserPlugin.js
@@ -10,16 +10,20 @@
const RequireEnsureItemDependency = require("./RequireEnsureItemDependency");
const getFunctionExpression = require("./getFunctionExpression");
/** @typedef {import("estree").Expression} Expression */
/** @typedef {import("estree").SpreadElement} SpreadElement */
/** @typedef {import("../AsyncDependenciesBlock").GroupOptions} GroupOptions */
/** @typedef {import("../Dependency").DependencyLocation} DependencyLocation */
/** @typedef {import("../javascript/BasicEvaluatedExpression")} BasicEvaluatedExpression */
/** @typedef {import("../javascript/JavascriptParser")} JavascriptParser */
/** @typedef {import("../javascript/JavascriptParser").Range} Range */
/** @typedef {import("./getFunctionExpression").FunctionExpressionResult} FunctionExpressionResult */
const PLUGIN_NAME = "RequireEnsureDependenciesBlockParserPlugin";
module.exports = class RequireEnsureDependenciesBlockParserPlugin {
   /**
    * Applies the plugin by registering its hooks on the compiler.
    * @param {JavascriptParser} parser the parser
    * @returns {void}
    */
@@ -27,8 +31,10 @@
      parser.hooks.call.for("require.ensure").tap(PLUGIN_NAME, (expr) => {
         /** @type {string | GroupOptions | null} */
         let chunkName = null;
         let errorExpressionArg = null;
         let errorExpression = null;
         /** @type {undefined | Expression | SpreadElement} */
         let errorExpressionArg;
         /** @type {undefined | FunctionExpressionResult} */
         let errorExpression;
         switch (expr.arguments.length) {
            case 4: {
               const chunkNameExpr = parser.evaluateExpression(expr.arguments[3]);
@@ -88,7 +94,7 @@
               parser.state.current = /** @type {EXPECTED_ANY} */ (depBlock);
               try {
                  let failed = false;
                  parser.inScope([], () => {
                  parser.inFunctionScope(true, [], () => {
                     for (const ee of dependenciesItems) {
                        if (ee.isString()) {
                           const ensureDependency = new RequireEnsureItemDependency(