1'use strict'; 2 3// Flags: --experimental-vm-modules 4 5const common = require('../common'); 6 7const assert = require('assert'); 8 9const { types } = require('util'); 10const { SourceTextModule } = require('vm'); 11 12async function getNamespace() { 13 const m = new SourceTextModule(''); 14 await m.link(() => 0); 15 await m.evaluate(); 16 return m.namespace; 17} 18 19(async () => { 20 const namespace = await getNamespace(); 21 const m = new SourceTextModule('export const A = "A"; import("");', { 22 importModuleDynamically: common.mustCall((specifier, wrap) => { 23 return namespace; 24 }) 25 }); 26 await m.link(() => 0); 27 const { result } = await m.evaluate(); 28 const ns = await result; 29 assert.ok(types.isModuleNamespaceObject(ns)); 30})().then(common.mustCall()); 31