From 80584bd1969e131a51fe83d336bf696aff9f7e06 Mon Sep 17 00:00:00 2001 From: Eric Mandel Date: Thu, 20 Jun 2019 11:00:39 -0400 Subject: [PATCH 1/2] add extended Node feature check to fix issue #8816 --- src/shell.js | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/src/shell.js b/src/shell.js index 1e5c92f9bc49c..0ddd080740fa4 100644 --- a/src/shell.js +++ b/src/shell.js @@ -71,7 +71,8 @@ ENVIRONMENT_IS_WORKER = typeof importScripts === 'function'; // A web environment like Electron.js can have Node enabled, so we must // distinguish between Node-enabled environments and Node environments per se. // This will allow the former to do things like mount NODEFS. -ENVIRONMENT_HAS_NODE = typeof process === 'object' && typeof require === 'function'; +// Extended check using process.versions added to fix issue #8816. +ENVIRONMENT_HAS_NODE = typeof process === 'object' && typeof process.versions === 'object' && typeof process.versions.node === "string" && typeof require === 'function'; ENVIRONMENT_IS_NODE = ENVIRONMENT_HAS_NODE && !ENVIRONMENT_IS_WEB && !ENVIRONMENT_IS_WORKER; ENVIRONMENT_IS_SHELL = !ENVIRONMENT_IS_WEB && !ENVIRONMENT_IS_NODE && !ENVIRONMENT_IS_WORKER; #endif // ENVIRONMENT From c14e0b0189ce3292a136988893c03a71d6e92fdb Mon Sep 17 00:00:00 2001 From: Eric Mandel Date: Wed, 3 Jul 2019 16:41:15 -0400 Subject: [PATCH 2/2] remove redundant check on 'require' when determining if Node support is present --- src/shell.js | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/src/shell.js b/src/shell.js index 0ddd080740fa4..d7c17226ab3b1 100644 --- a/src/shell.js +++ b/src/shell.js @@ -71,8 +71,9 @@ ENVIRONMENT_IS_WORKER = typeof importScripts === 'function'; // A web environment like Electron.js can have Node enabled, so we must // distinguish between Node-enabled environments and Node environments per se. // This will allow the former to do things like mount NODEFS. -// Extended check using process.versions added to fix issue #8816. -ENVIRONMENT_HAS_NODE = typeof process === 'object' && typeof process.versions === 'object' && typeof process.versions.node === "string" && typeof require === 'function'; +// Extended check using process.versions fixes issue #8816. +// (Also makes redundant the original check that 'require' is a function.) +ENVIRONMENT_HAS_NODE = typeof process === 'object' && typeof process.versions === 'object' && typeof process.versions.node === 'string'; ENVIRONMENT_IS_NODE = ENVIRONMENT_HAS_NODE && !ENVIRONMENT_IS_WEB && !ENVIRONMENT_IS_WORKER; ENVIRONMENT_IS_SHELL = !ENVIRONMENT_IS_WEB && !ENVIRONMENT_IS_NODE && !ENVIRONMENT_IS_WORKER; #endif // ENVIRONMENT