Repository: node
Issue: Sourcemaps don't work in vm.Script scripts
Labels: vm,source maps

### Version

v21.7.1

### Platform

Linux ecls 6.5.0-25-generic #25~22.04.1-Ubuntu SMP PREEMPT_DYNAMIC Tue Feb 20 16:09:15 UTC 2 x86_64 x86_64 x86_64 GNU/Linux

### Subsystem

source_map

### What steps will reproduce the bug?

This example is adapted from https://github.com/nodejs/node/issues/43047

```
import vm from 'node:vm';

const comment = '//#';
const code = `// Generated by CoffeeScript 2.7.0
(function() {
  throw new Error('hello');

}).call(this);

${comment} sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2ltcGxlLmpzIiwic291cmNlUm9vdCI6IlxcIiwic291cmNlcyI6WyJzaW1wbGUuY29mZmVlIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7QUFBQTtFQUFBLE1BQU0sSUFBSSxLQUFKLENBQVUsT0FBVjtBQUFOIiwic291cmNlc0NvbnRlbnQiOlsidGhyb3cgbmV3IEVycm9yICdoZWxsbydcbiJdfQ==
${comment} sourceURL=simple.coffee
`;
// eval(code);

const script = new vm.Script(code, {filename: 'simple.js'})
console.log(script.sourceMapURL)
script.runInNewContext()
```

### How often does it reproduce? Is there a required condition?

Always.

### What is the expected behavior? Why is that the expected behavior?

The expected behavior is shown if I uncomment the `eval` call in `foo.js` and run the code:

```
$ node --enable-source-maps foo.js
/simple.coffee:1
throw new Error 'hello'
      ^


Error: hello
    at eval (/simple.coffee:1:7)
    at eval (/simple.coffee:1:1)
    at file:///home/rrt/Software/ursa/foo.js:13:1
    at ModuleJob.run (node:internal/modules/esm/module_job:218:25)
    at async ModuleLoader.import (node:internal/modules/esm/loader:329:24)
    at async loadESM (node:internal/process/esm_loader:28:7)
    at async handleMainPromise (node:internal/modules/run_main:113:12)
```

Now, the traceback shows the error in the CoffeeScript code.

### What do you see instead?

Running this code from file `foo.js` gives:

```
$ node --enable-source-maps foo.js
node --enable-source-maps foo.js
data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2ltcGxlLmpzIiwic291cmNlUm9vdCI6IlxcIiwic291cmNlcyI6WyJzaW1wbGUuY29mZmVlIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7QUFBQTtFQUFBLE1BQU0sSUFBSSxLQUFKLENBQVUsT0FBVjtBQUFOIiwic291cmNlc0NvbnRlbnQiOlsidGhyb3cgbmV3IEVycm9yICdoZWxsbydcbiJdfQ==
simple.coffee:3
  throw new Error('hello');
  ^

Error: hello
    at simple.coffee:3:9
    at simple.coffee:5:4
    at Script.runInContext (node:vm:133:12)
    at Script.runInNewContext (node:vm:138:17)
    at file:///home/rrt/Software/ursa/foo.js:17:8
    at ModuleJob.run (node:internal/modules/esm/module_job:218:25)
    at async ModuleLoader.import (node:internal/modules/esm/loader:329:24)
    at async loadESM (node:internal/process/esm_loader:28:7)
    at async handleMainPromise (node:internal/modules/run_main:113:12)
```

Note that the traceback shows the JavaScript source, not the CoffeeScript source.

### Additional information

Note that the `vm.Script` module correctly parses the `sourceMappingURL` comment, and displays its contents. This led me to believe that the source map would be supported during execution!

I'm sorry if I have overlooked other issues in this area; I have only found the issue I referred to above about adding support for source maps to `eval`.