From fdc30c6b818f118757ef49437bd50b24997b9446 Mon Sep 17 00:00:00 2001 From: DeeDeeG Date: Sun, 11 Apr 2021 14:04:19 -0400 Subject: [PATCH 1/2] lib: deep-copy process.config during configure Makes it entirely sure that we won't modify the original process.config. (Modifying process.config or its children is deprecated as of Node 16.) --- lib/configure.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/lib/configure.js b/lib/configure.js index 7992b658a4..822987050d 100644 --- a/lib/configure.js +++ b/lib/configure.js @@ -96,7 +96,7 @@ function configure (gyp, argv, callback) { log.verbose('build/' + configFilename, 'creating config file') - var config = Object.assign({}, process.config) + var config = JSON.parse(JSON.stringify(process.config)) var defaults = config.target_defaults var variables = config.variables From eb24896f4ac642505cd1884f6ceec0be6c200f8e Mon Sep 17 00:00:00 2001 From: DeeDeeG Date: Sun, 11 Apr 2021 15:35:23 -0400 Subject: [PATCH 2/2] lib: set empty object if no process.config Avoids errors in JSON.parse if process.config has been deleted --- lib/configure.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/lib/configure.js b/lib/configure.js index 822987050d..2fe760c775 100644 --- a/lib/configure.js +++ b/lib/configure.js @@ -96,7 +96,7 @@ function configure (gyp, argv, callback) { log.verbose('build/' + configFilename, 'creating config file') - var config = JSON.parse(JSON.stringify(process.config)) + var config = process.config ? JSON.parse(JSON.stringify(process.config)) : {} var defaults = config.target_defaults var variables = config.variables