mirror of
https://github.com/nodejs/node.git
synced 2026-10-14 10:26:26 -04:00
node: --no-browser-globals configure flag
Introduce `--no-browser-globals` configure flag. With this flag set, following globals won't be exported: - `setTimeout`, `clearTimeout`, `setInterval`, `clearInterval`, `setImmediate`, `clearImmediate` - `console` These are provided by the DOM implementation in browser, so the `--no-browser-globals` flag may be helpful when embedding node.js within chromium/webkit. Inspired-By: https://github.com/atom/node/commit/82e10ce94f3c90234dac187f04a47d4d357ffd31 PR-URL: https://github.com/nodejs/node/pull/5853 Reviewed-By: James M Snell <jasnell@gmail.com> Reviewed-By: Rod Vagg <rod@vagg.org>
This commit is contained in:
1 parent
53a95a5b12
commit
8363ede855
4 files changed
+21
-2
No files matched your search
@@ -373,6 +373,12 @@ parser.add_option('--enable-static',
|
||||
dest='enable_static',
|
||||
help='build as static library')
|
||||
|
||||
parser.add_option('--no-browser-globals',
|
||||
action='store_true',
|
||||
dest='no_browser_globals',
|
||||
help='do not export browser globals like setTimeout, console, etc. ' +
|
||||
'(This mode is not officially supported for regular applications)')
|
||||
|
||||
(options, args) = parser.parse_args()
|
||||
|
||||
# Expand ~ in the install prefix now, it gets written to multiple files.
|
||||
@@ -762,6 +768,8 @@ def configure_node(o):
|
||||
if options.enable_static:
|
||||
o['variables']['node_target_type'] = 'static_library'
|
||||
|
||||
o['variables']['node_no_browser_globals'] = b(options.no_browser_globals)
|
||||
|
||||
if options.linked_module:
|
||||
o['variables']['library_files'] = options.linked_module
|
||||
|
||||
|
||||
Vendored
+4
-2
@@ -40,8 +40,10 @@
|
||||
setupProcessFatal();
|
||||
|
||||
setupGlobalVariables();
|
||||
setupGlobalTimeouts();
|
||||
setupGlobalConsole();
|
||||
if (!process._noBrowserGlobals) {
|
||||
setupGlobalTimeouts();
|
||||
setupGlobalConsole();
|
||||
}
|
||||
|
||||
const _process = NativeModule.require('internal/process');
|
||||
|
||||
|
||||
@@ -5,6 +5,7 @@
|
||||
'node_use_lttng%': 'false',
|
||||
'node_use_etw%': 'false',
|
||||
'node_use_perfctr%': 'false',
|
||||
'node_no_browser_globals%': 'false',
|
||||
'node_has_winsdk%': 'false',
|
||||
'node_shared_zlib%': 'false',
|
||||
'node_shared_http_parser%': 'false',
|
||||
@@ -367,6 +368,9 @@
|
||||
'tools/msvs/genfiles/node_perfctr_provider.rc',
|
||||
]
|
||||
} ],
|
||||
[ 'node_no_browser_globals=="true"', {
|
||||
'defines': [ 'NODE_NO_BROWSER_GLOBALS' ],
|
||||
} ],
|
||||
[ 'v8_postmortem_support=="true"', {
|
||||
'dependencies': [ 'deps/v8/tools/gyp/v8.gyp:postmortem-metadata' ],
|
||||
'conditions': [
|
||||
|
||||
@@ -3070,6 +3070,11 @@ void SetupProcessObject(Environment* env,
|
||||
READONLY_PROPERTY(process, "throwDeprecation", True(env->isolate()));
|
||||
}
|
||||
|
||||
#ifdef NODE_NO_BROWSER_GLOBALS
|
||||
// configure --no-browser-globals
|
||||
READONLY_PROPERTY(process, "_noBrowserGlobals", True(env->isolate()));
|
||||
#endif // NODE_NO_BROWSER_GLOBALS
|
||||
|
||||
// --prof-process
|
||||
if (prof_process) {
|
||||
READONLY_PROPERTY(process, "profProcess", True(env->isolate()));
|
||||
|
||||
Reference in new issue
Block a user