1// Flags: --experimental-vm-modules --max-old-space-size=16 --trace-gc
2'use strict';
3
4// This tests that vm.SourceTextModule() does not leak.
5// See: https://github.com/nodejs/node/issues/33439
6require('../common');
7const { checkIfCollectable } = require('../common/gc');
8const vm = require('vm');
9
10async function createSourceTextModule() {
11  // Try to reach the maximum old space size.
12  const m = new vm.SourceTextModule(`
13    const bar = new Array(512).fill("----");
14    export { bar };
15  `);
16  await m.link(() => {});
17  await m.evaluate();
18  return m;
19}
20
21checkIfCollectable(createSourceTextModule, 4096, 1024);
22