WXL
3 天以前 9bce51f651aad297ef9eb6df832bfdaf1de05d84
node_modules/webpack/lib/dependencies/AMDRequireDependenciesBlockParserPlugin.js
@@ -25,15 +25,18 @@
/** @typedef {import("estree").SourceLocation} SourceLocation */
/** @typedef {import("estree").SpreadElement} SpreadElement */
/** @typedef {import("../../declarations/WebpackOptions").JavascriptParserOptions} JavascriptParserOptions */
/** @typedef {import("../Dependency")} Dependency */
/** @typedef {import("../Dependency").DependencyLocation} DependencyLocation */
/** @typedef {import("../javascript/BasicEvaluatedExpression")} BasicEvaluatedExpression */
/** @typedef {import("../javascript/JavascriptParser")} JavascriptParser */
/** @typedef {import("../javascript/JavascriptParser").Range} Range */
/** @typedef {import("./LocalModule")} LocalModule */
const PLUGIN_NAME = "AMDRequireDependenciesBlockParserPlugin";
class AMDRequireDependenciesBlockParserPlugin {
   /**
    * Creates an instance of AMDRequireDependenciesBlockParserPlugin.
    * @param {JavascriptParserOptions} options parserOptions
    */
   constructor(options) {
@@ -41,6 +44,7 @@
   }
   /**
    * Process function argument.
    * @param {JavascriptParser} parser the parser
    * @param {Expression | SpreadElement} expression expression
    * @returns {boolean} need bind this
@@ -49,7 +53,8 @@
      let bindThis = true;
      const fnData = getFunctionExpression(expression);
      if (fnData) {
         parser.inScope(
         parser.inFunctionScope(
            true,
            fnData.fn.params.filter(
               (i) =>
                  !["require", "module", "exports"].includes(
@@ -75,6 +80,7 @@
   }
   /**
    * Applies the plugin by registering its hooks on the compiler.
    * @param {JavascriptParser} parser the parser
    * @returns {void}
    */
@@ -85,6 +91,7 @@
   }
   /**
    * Processes the provided parser.
    * @param {JavascriptParser} parser the parser
    * @param {CallExpression} expr call expression
    * @param {BasicEvaluatedExpression} param param
@@ -102,8 +109,10 @@
      } else if (param.isConstArray()) {
         /** @type {(string | LocalModuleDependency | AMDRequireItemDependency)[]} */
         const deps = [];
         for (const request of /** @type {EXPECTED_ANY[]} */ (param.array)) {
         for (const request of /** @type {string[]} */ (param.array)) {
            /** @type {string | LocalModuleDependency | AMDRequireItemDependency} */
            let dep;
            /** @type {undefined | null | LocalModule} */
            let localModule;
            if (request === "require") {
               dep = RuntimeGlobals.require;
@@ -135,6 +144,7 @@
   }
   /**
    * Processes the provided parser.
    * @param {JavascriptParser} parser the parser
    * @param {CallExpression} expr call expression
    * @param {BasicEvaluatedExpression} param param
@@ -152,7 +162,9 @@
         }
         return true;
      } else if (param.isString()) {
         /** @type {Dependency} */
         let dep;
         /** @type {LocalModule | null | undefined} */
         let localModule;
         if (param.string === "require") {
            dep = new ConstDependency(
@@ -202,6 +214,7 @@
   }
   /**
    * Processes the provided parser.
    * @param {JavascriptParser} parser the parser
    * @param {CallExpression} expr call expression
    * @param {BasicEvaluatedExpression} param param
@@ -228,6 +241,7 @@
   }
   /**
    * Process array for request string.
    * @param {BasicEvaluatedExpression} param param
    * @returns {string | undefined} result
    */
@@ -243,6 +257,7 @@
   }
   /**
    * Process item for request string.
    * @param {BasicEvaluatedExpression} param param
    * @returns {string | undefined} result
    */
@@ -258,6 +273,7 @@
   }
   /**
    * Process call require.
    * @param {JavascriptParser} parser the parser
    * @param {CallExpression} expr call expression
    * @returns {boolean | undefined} result
@@ -299,7 +315,7 @@
      }
      if (expr.arguments.length === 1) {
         parser.inScope([], () => {
         parser.inFunctionScope(true, [], () => {
            result = this.processArray(
               parser,
               expr,
@@ -318,7 +334,7 @@
      if (expr.arguments.length === 2 || expr.arguments.length === 3) {
         try {
            parser.inScope([], () => {
            parser.inFunctionScope(true, [], () => {
               result = this.processArray(
                  parser,
                  expr,
@@ -368,6 +384,7 @@
   }
   /**
    * New require dependencies block.
    * @param {DependencyLocation} loc location
    * @param {string=} request request
    * @returns {AMDRequireDependenciesBlock} AMDRequireDependenciesBlock
@@ -377,6 +394,7 @@
   }
   /**
    * New require dependency.
    * @param {Range} outerRange outer range
    * @param {Range} arrayRange array range
    * @param {Range | null} functionRange function range
@@ -398,6 +416,7 @@
   }
   /**
    * New require item dependency.
    * @param {string} request request
    * @param {Range=} range range
    * @returns {AMDRequireItemDependency} AMDRequireItemDependency
@@ -407,6 +426,7 @@
   }
   /**
    * New require array dependency.
    * @param {(string | LocalModuleDependency | AMDRequireItemDependency)[]} depsArray deps array
    * @param {Range} range range
    * @returns {AMDRequireArrayDependency} AMDRequireArrayDependency