mirror of
https://github.com/nodejs/node.git
synced 2025-08-17 22:58:52 +02:00

PR-URL: https://github.com/nodejs/node/pull/52592 Reviewed-By: Yagiz Nizipli <yagiz.nizipli@sentry.io> Reviewed-By: Jacob Smith <jacob@frende.me> Reviewed-By: Moshe Atlow <moshe@atlow.co.il>
31 lines
1.2 KiB
JavaScript
31 lines
1.2 KiB
JavaScript
'use strict';
|
|
|
|
const {
|
|
RegExpPrototypeExec,
|
|
} = primordials;
|
|
|
|
const {
|
|
prepareMainThreadExecution,
|
|
markBootstrapComplete,
|
|
} = require('internal/process/pre_execution');
|
|
const { getOptionValue } = require('internal/options');
|
|
|
|
const mainEntry = prepareMainThreadExecution(true);
|
|
|
|
markBootstrapComplete();
|
|
|
|
// Necessary to reset RegExp statics before user code runs.
|
|
RegExpPrototypeExec(/^/, '');
|
|
|
|
if (getOptionValue('--experimental-default-type') === 'module') {
|
|
require('internal/modules/run_main').executeUserEntryPoint(mainEntry);
|
|
} else {
|
|
/**
|
|
* To support legacy monkey-patching of `Module.runMain`, we call `runMain` here to have the CommonJS loader begin
|
|
* the execution of the main entry point, even if the ESM loader immediately takes over because the main entry is an
|
|
* ES module or one of the other opt-in conditions (such as the use of `--import`) are met. Users can monkey-patch
|
|
* before the main entry point is loaded by doing so via scripts loaded through `--require`. This monkey-patchability
|
|
* is undesirable and is removed in `--experimental-default-type=module` mode.
|
|
*/
|
|
require('internal/modules/cjs/loader').Module.runMain(mainEntry);
|
|
}
|