@@ -90,6 +90,8 @@ const {
90
90
91
91
const MAX_BUFFER = 1024 * 1024 ;
92
92
93
+ const isZOS = process . platform === 'os390' ;
94
+
93
95
/**
94
96
* Spawns a new Node.js process + fork.
95
97
* @param {string|URL } modulePath
@@ -514,6 +516,14 @@ ObjectDefineProperty(execFile, promisify.custom, {
514
516
value : customPromiseExecFunction ( execFile )
515
517
} ) ;
516
518
519
+ function copyProcessEnvToEnv ( env , name , optionEnv ) {
520
+ if ( process . env [ name ] &&
521
+ ( ! optionEnv ||
522
+ ! ObjectPrototypeHasOwnProperty ( optionEnv , name ) ) ) {
523
+ env [ name ] = process . env [ name ] ;
524
+ }
525
+ }
526
+
517
527
function normalizeSpawnArguments ( file , args , options ) {
518
528
validateString ( file , 'file' ) ;
519
529
@@ -620,9 +630,19 @@ function normalizeSpawnArguments(file, args, options) {
620
630
621
631
// process.env.NODE_V8_COVERAGE always propagates, making it possible to
622
632
// collect coverage for programs that spawn with white-listed environment.
623
- if ( process . env . NODE_V8_COVERAGE &&
624
- ! ObjectPrototypeHasOwnProperty ( options . env || { } , 'NODE_V8_COVERAGE' ) ) {
625
- env . NODE_V8_COVERAGE = process . env . NODE_V8_COVERAGE ;
633
+ copyProcessEnvToEnv ( env , 'NODE_V8_COVERAGE' , options . env ) ;
634
+
635
+ if ( isZOS ) {
636
+ // The following environment variables must always propagate if set.
637
+ copyProcessEnvToEnv ( env , '_BPXK_AUTOCVT' , options . env ) ;
638
+ copyProcessEnvToEnv ( env , '_CEE_RUNOPTS' , options . env ) ;
639
+ copyProcessEnvToEnv ( env , '_TAG_REDIR_ERR' , options . env ) ;
640
+ copyProcessEnvToEnv ( env , '_TAG_REDIR_IN' , options . env ) ;
641
+ copyProcessEnvToEnv ( env , '_TAG_REDIR_OUT' , options . env ) ;
642
+ copyProcessEnvToEnv ( env , 'STEPLIB' , options . env ) ;
643
+ copyProcessEnvToEnv ( env , 'LIBPATH' , options . env ) ;
644
+ copyProcessEnvToEnv ( env , '_EDC_SIG_DFLT' , options . env ) ;
645
+ copyProcessEnvToEnv ( env , '_EDC_SUSV3' , options . env ) ;
626
646
}
627
647
628
648
let envKeys = [ ] ;
0 commit comments