diff options
| author | littleblack111 <littleblack11111@gmail.com> | 2026-05-18 23:10:59 +0800 |
|---|---|---|
| committer | littleblack111 <littleblack11111@gmail.com> | 2026-05-18 23:41:44 +0800 |
| commit | fc87c009806dcc98867f6b58efe29b042aa01dee (patch) | |
| tree | 8f59b3f4a5b66e9dfef2d40c8d318e258a521228 /node_modules/webpack/lib/wasm-async/AsyncWebAssemblyParser.js | |
| parent | 3336b2356ee6152d9c6ae59bd9b87ccbc0958407 (diff) | |
node: updatemain
Diffstat (limited to 'node_modules/webpack/lib/wasm-async/AsyncWebAssemblyParser.js')
| -rw-r--r-- | node_modules/webpack/lib/wasm-async/AsyncWebAssemblyParser.js | 88 |
1 files changed, 0 insertions, 88 deletions
diff --git a/node_modules/webpack/lib/wasm-async/AsyncWebAssemblyParser.js b/node_modules/webpack/lib/wasm-async/AsyncWebAssemblyParser.js deleted file mode 100644 index 40f1c79e..00000000 --- a/node_modules/webpack/lib/wasm-async/AsyncWebAssemblyParser.js +++ /dev/null @@ -1,88 +0,0 @@ -/* - MIT License http://www.opensource.org/licenses/mit-license.php - Author Tobias Koppers @sokra -*/ - -"use strict"; - -const t = require("@webassemblyjs/ast"); -const { decode } = require("@webassemblyjs/wasm-parser"); -const EnvironmentNotSupportAsyncWarning = require("../EnvironmentNotSupportAsyncWarning"); -const Parser = require("../Parser"); -const StaticExportsDependency = require("../dependencies/StaticExportsDependency"); -const WebAssemblyImportDependency = require("../dependencies/WebAssemblyImportDependency"); - -/** @typedef {import("../Module").BuildInfo} BuildInfo */ -/** @typedef {import("../Module").BuildMeta} BuildMeta */ -/** @typedef {import("../Parser").ParserState} ParserState */ -/** @typedef {import("../Parser").PreparsedAst} PreparsedAst */ - -const decoderOpts = { - ignoreCodeSection: true, - ignoreDataSection: true, - - // this will avoid having to lookup with identifiers in the ModuleContext - ignoreCustomNameSection: true -}; - -class WebAssemblyParser extends Parser { - /** - * @param {{}=} options parser options - */ - constructor(options) { - super(); - this.hooks = Object.freeze({}); - this.options = options; - } - - /** - * @param {string | Buffer | PreparsedAst} source the source to parse - * @param {ParserState} state the parser state - * @returns {ParserState} the parser state - */ - parse(source, state) { - if (!Buffer.isBuffer(source)) { - throw new Error("WebAssemblyParser input must be a Buffer"); - } - - // flag it as async module - const buildInfo = /** @type {BuildInfo} */ (state.module.buildInfo); - buildInfo.strict = true; - const BuildMeta = /** @type {BuildMeta} */ (state.module.buildMeta); - BuildMeta.exportsType = "namespace"; - BuildMeta.async = true; - EnvironmentNotSupportAsyncWarning.check( - state.module, - state.compilation.runtimeTemplate, - "asyncWebAssembly" - ); - - // parse it - const program = decode(source, decoderOpts); - const module = program.body[0]; - /** @type {Array<string>} */ - const exports = []; - t.traverse(module, { - ModuleExport({ node }) { - exports.push(node.name); - }, - - ModuleImport({ node }) { - const dep = new WebAssemblyImportDependency( - node.module, - node.name, - node.descr, - false - ); - - state.module.addDependency(dep); - } - }); - - state.module.addDependency(new StaticExportsDependency(exports, false)); - - return state; - } -} - -module.exports = WebAssemblyParser; |
