mirror of https://github.com/nodejs/node.git
35 lines
815 B
JavaScript
35 lines
815 B
JavaScript
'use strict';
|
|
|
|
// Flags: --experimental-vm-modules --js-source-phase-imports
|
|
|
|
require('../common');
|
|
|
|
const assert = require('assert');
|
|
|
|
const { SourceTextModule } = require('vm');
|
|
const test = require('node:test');
|
|
|
|
test('deep linking', async function depth() {
|
|
const foo = new SourceTextModule('export default 5');
|
|
foo.linkRequests([]);
|
|
foo.instantiate();
|
|
|
|
function getProxy(parentName, parentModule) {
|
|
const mod = new SourceTextModule(`
|
|
import ${parentName} from '${parentName}';
|
|
export default ${parentName};
|
|
`);
|
|
mod.linkRequests([parentModule]);
|
|
mod.instantiate();
|
|
return mod;
|
|
}
|
|
|
|
const bar = getProxy('foo', foo);
|
|
const baz = getProxy('bar', bar);
|
|
const barz = getProxy('baz', baz);
|
|
|
|
await barz.evaluate();
|
|
|
|
assert.strictEqual(barz.namespace.default, 5);
|
|
});
|