diff --git a/lib/internal/bootstrap_node.js b/lib/internal/bootstrap_node.js index 21f71206771a38..58d78b5490bc9a 100644 --- a/lib/internal/bootstrap_node.js +++ b/lib/internal/bootstrap_node.js @@ -8,7 +8,6 @@ 'use strict'; (function(process) { - this.global = this; function startup() { var EventEmitter = NativeModule.require('events'); @@ -211,7 +210,6 @@ function setupGlobalVariables() { global.process = process; - global.global = global; const util = NativeModule.require('util'); // Deprecate GLOBAL and root diff --git a/src/node.cc b/src/node.cc index fa9c3626aa95f3..1cf8e354614307 100644 --- a/src/node.cc +++ b/src/node.cc @@ -118,6 +118,7 @@ using v8::Locker; using v8::MaybeLocal; using v8::Message; using v8::Name; +using v8::Null; using v8::Number; using v8::Object; using v8::ObjectTemplate; @@ -3321,8 +3322,12 @@ void LoadEnvironment(Environment* env) { env->SetMethod(env->process_object(), "_rawDebug", RawDebug); + // Expose the global object as a property on itself + // (Allows you to set stuff on `global` from anywhere in JavaScript.) + global->Set(FIXED_ONE_BYTE_STRING(env->isolate(), "global"), global); + Local arg = env->process_object(); - f->Call(global, 1, &arg); + f->Call(Null(env->isolate()), ARRAY_SIZE(&arg), &arg); } static void PrintHelp();