Skip to content

Commit 590e8d3

Browse files
ryzokukenMylesBorins
authored andcommitted
module: use compileFunction over Module.wrap
Use vm.compileFunction (which is a binding for v8::CompileFunctionInContext) instead of Module.wrap internally in Module._compile for the cjs loader. Fixes: #17396 Backport-PR-URL: #27124 PR-URL: #21573 Reviewed-By: James M Snell <[email protected]> Reviewed-By: Ruben Bridgewater <[email protected]> Reviewed-By: Gus Caplan <[email protected]> Reviewed-By: Joyee Cheung <[email protected]> Reviewed-By: Anna Henningsen <[email protected]>
1 parent 51ec21c commit 590e8d3

File tree

1 file changed

+7
-13
lines changed

1 file changed

+7
-13
lines changed

lib/internal/modules/cjs/loader.js

+7-13
Original file line numberDiff line numberDiff line change
@@ -673,19 +673,13 @@ Module.prototype._compile = function(content, filename) {
673673

674674
content = stripShebang(content);
675675

676-
// create wrapper function
677-
var wrapper = Module.wrap(content);
678-
679-
var compiledWrapper = vm.runInThisContext(wrapper, {
680-
filename: filename,
681-
lineOffset: 0,
682-
displayErrors: true,
683-
importModuleDynamically: experimentalModules ? async (specifier) => {
684-
if (asyncESM === undefined) lazyLoadESM();
685-
const loader = await asyncESM.loaderPromise;
686-
return loader.import(specifier, normalizeReferrerURL(filename));
687-
} : undefined,
688-
});
676+
const compiledWrapper = vm.compileFunction(content, [
677+
'exports',
678+
'require',
679+
'module',
680+
'__filename',
681+
'__dirname',
682+
], { filename });
689683

690684
var inspectorWrapper = null;
691685
if (process._breakFirstLine && process._eval == null) {

0 commit comments

Comments
 (0)