• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
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