| // Flags: --experimental-vm-modules |
| 'use strict'; |
| |
| // This tests the result of evaluating a vm.Module while it is evaluating. |
| const common = require('../common'); |
| |
| const assert = require('assert'); |
| const vm = require('vm'); |
| |
| { |
| let mod; |
| globalThis.evaluate = common.mustCall(() => { |
| assert.rejects(() => mod.evaluate(), { |
| code: 'ERR_VM_MODULE_STATUS' |
| }).then(common.mustCall()); |
| }); |
| common.allowGlobals(globalThis.evaluate); |
| mod = new vm.SourceTextModule(` |
| globalThis.evaluate(); |
| export const a = 42; |
| `); |
| mod.linkRequests([]); |
| mod.instantiate(); |
| mod.evaluate(); |
| } |
| |
| { |
| const mod = new vm.SyntheticModule(['a'], common.mustCall(() => { |
| assert.rejects(() => mod.evaluate(), { |
| code: 'ERR_VM_MODULE_STATUS' |
| }).then(common.mustCall()); |
| })); |
| mod.evaluate(); |
| } |