node icon indicating copy to clipboard operation
node copied to clipboard

WebAssembly source phase imports

Open legendecas opened this issue 3 months ago • 3 comments

TC39 proposal source phase imports reached to stage 3 and has been implemented in V8 (starting from M131).

import source FooModule from "./foo.wasm";
FooModule instanceof WebAssembly.Module; // true

The feature requires Node.js integration to support WebAssembly source phase imports. TLDR, if a SourceTextModule imports a source-phase WebAssembly module, create a module source object with v8::WasmModuleObject::Compile and return the WebAssembly.Module object from v8::Module::ResolveSourceCallback, and v8::HostImportModuleWithPhaseDynamicallyCallback.

See design doc for details.

WPT: https://github.com/web-platform-tests/wpt/blob/master/wasm/webapi/esm-integration/source-phase.tentative.html

/cc @guybedford

legendecas avatar Nov 28 '24 15:11 legendecas