summaryrefslogtreecommitdiff
path: root/lib/internal/bootstrap/pre_execution.js
diff options
context:
space:
mode:
Diffstat (limited to 'lib/internal/bootstrap/pre_execution.js')
-rw-r--r--lib/internal/bootstrap/pre_execution.js18
1 files changed, 15 insertions, 3 deletions
diff --git a/lib/internal/bootstrap/pre_execution.js b/lib/internal/bootstrap/pre_execution.js
index ab7e169d7a..297aea9dd7 100644
--- a/lib/internal/bootstrap/pre_execution.js
+++ b/lib/internal/bootstrap/pre_execution.js
@@ -3,9 +3,9 @@
const { getOptionValue } = require('internal/options');
const { Buffer } = require('buffer');
-function prepareMainThreadExecution() {
+function prepareMainThreadExecution(expandArgv1 = false) {
// Patch the process object with legacy properties and normalizations
- patchProcessObject();
+ patchProcessObject(expandArgv1);
setupTraceCategoryState();
setupInspectorHooks();
setupWarningHandler();
@@ -48,7 +48,13 @@ function prepareMainThreadExecution() {
loadPreloadModules();
}
-function patchProcessObject() {
+function patchProcessObject(expandArgv1) {
+ const {
+ patchProcessObject: patchProcessObjectNative
+ } = internalBinding('process_methods');
+
+ patchProcessObjectNative(process);
+
Object.defineProperty(process, 'argv0', {
enumerable: true,
configurable: false,
@@ -56,6 +62,12 @@ function patchProcessObject() {
});
process.argv[0] = process.execPath;
+ if (expandArgv1 && process.argv[1] && !process.argv[1].startsWith('-')) {
+ // Expand process.argv[1] into a full path.
+ const path = require('path');
+ process.argv[1] = path.resolve(process.argv[1]);
+ }
+
// TODO(joyeecheung): most of these should be deprecated and removed,
// execpt some that we need to be able to mutate during run time.
addReadOnlyProcessAlias('_eval', '--eval');