WebAssembly source phase imports
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
This should ideally be implemented along with the ESM instance imports and should likely also go with unflagging --experimental-wasm-modules.
There's not much reason to care about ESM instance imports without also having worker_threads support instantiating workers from a ModuleSource - which is worth doing, but is probably a bigger topic than wasm source phase imports (which are immediately useful).
Emscripten would love to start using this feature as soon as its available: https://github.com/emscripten-core/emscripten/issues/23047
This landed in #56919.