WXL
3 天以前 9bce51f651aad297ef9eb6df832bfdaf1de05d84
node_modules/webpack/lib/web/FetchCompileWasmPlugin.js
@@ -13,22 +13,31 @@
/** @typedef {import("../Compiler")} Compiler */
/**
 * Options that influence how synchronous WebAssembly modules are emitted for
 * the fetch-based wasm loading runtime.
 * @typedef {object} FetchCompileWasmPluginOptions
 * @property {boolean=} mangleImports mangle imports
 */
const PLUGIN_NAME = "FetchCompileWasmPlugin";
/**
 * Enables synchronous WebAssembly chunk loading that fetches `.wasm` files and
 * compiles them in browser-like environments.
 */
class FetchCompileWasmPlugin {
   /**
    * Stores options that affect generated synchronous WebAssembly runtime code.
    * @param {FetchCompileWasmPluginOptions=} options options
    */
   constructor(options = {}) {
      /** @type {FetchCompileWasmPluginOptions} */
      this.options = options;
   }
   /**
    * Apply the plugin
    * Registers compilation hooks that attach the fetch-based synchronous wasm
    * runtime module to chunks containing sync WebAssembly modules.
    * @param {Compiler} compiler the compiler instance
    * @returns {void}
    */
@@ -36,6 +45,8 @@
      compiler.hooks.thisCompilation.tap(PLUGIN_NAME, (compilation) => {
         const globalWasmLoading = compilation.outputOptions.wasmLoading;
         /**
          * Determines whether the chunk should load synchronous WebAssembly
          * binaries through the `fetch` backend.
          * @param {Chunk} chunk chunk
          * @returns {boolean} true, if wasm loading is enabled for the chunk
          */
@@ -48,6 +59,8 @@
            return wasmLoading === "fetch";
         };
         /**
          * Generates the runtime expression that downloads the emitted wasm
          * binary for a module.
          * @param {string} path path to the wasm file
          * @returns {string} code to load the wasm file
          */