diff --git a/test/common/README.md b/test/common/README.md
index 08d7bbb762fbb4..111ce45b00360c 100644
--- a/test/common/README.md
+++ b/test/common/README.md
@@ -150,11 +150,6 @@ Attempts to get a valid TTY file descriptor. Returns `-1` if it fails.
 
 The TTY file descriptor is assumed to be capable of being writable.
 
-### globalCheck
-* [<boolean>]
-
-Set to `false` if the test should not check for global leaks.
-
 ### hasCrypto
 * [<boolean>]
 
diff --git a/test/common/index.js b/test/common/index.js
index 743bf15fb8301d..85d11ec093414c 100644
--- a/test/common/index.js
+++ b/test/common/index.js
@@ -366,21 +366,15 @@ function leakedGlobals() {
 }
 exports.leakedGlobals = leakedGlobals;
 
-// Turn this off if the test should not check for global leaks.
-exports.globalCheck = true;
-
 process.on('exit', function() {
-  if (!exports.globalCheck) return;
   const leaked = leakedGlobals();
   if (leaked.length > 0) {
     assert.fail(`Unexpected global(s) found: ${leaked.join(', ')}`);
   }
 });
 
-
 const mustCallChecks = [];
 
-
 function runCallChecks(exitCode) {
   if (exitCode !== 0) return;
 
diff --git a/test/common/index.mjs b/test/common/index.mjs
index dd4ee2146e0720..b7ac556bca52c3 100644
--- a/test/common/index.mjs
+++ b/test/common/index.mjs
@@ -63,11 +63,7 @@ export function leakedGlobals() {
   }
 }
 
-// Turn this off if the test should not check for global leaks.
-export let globalCheck = true;  // eslint-disable-line
-
 process.on('exit', function() {
-  if (!globalCheck) return;
   const leaked = leakedGlobals();
   if (leaked.length > 0) {
     assert.fail(`Unexpected global(s) found: ${leaked.join(', ')}`);
diff --git a/test/parallel/test-domain-crypto.js b/test/parallel/test-domain-crypto.js
index 3890a7b4641ade..26ee6b888efb2d 100644
--- a/test/parallel/test-domain-crypto.js
+++ b/test/parallel/test-domain-crypto.js
@@ -29,7 +29,7 @@ if (!common.hasCrypto)
 const crypto = require('crypto');
 
 // Pollution of global is intentional as part of test.
-common.globalCheck = false;
+common.allowGlobals(require('domain'));
 // See https://github.com/nodejs/node/commit/d1eff9ab
 global.domain = require('domain');
 
diff --git a/test/parallel/test-global.js b/test/parallel/test-global.js
index 46db72eeceb586..b139a6287488d2 100644
--- a/test/parallel/test-global.js
+++ b/test/parallel/test-global.js
@@ -28,7 +28,7 @@ const fixtures = require('../common/fixtures');
 
 const assert = require('assert');
 
-common.globalCheck = false;
+common.allowGlobals('bar', 'foo');
 
 baseFoo = 'foo'; // eslint-disable-line no-undef
 global.baseBar = 'bar';
diff --git a/test/parallel/test-repl-autolibs.js b/test/parallel/test-repl-autolibs.js
index 52234deb5e732e..024dd971bf44e1 100644
--- a/test/parallel/test-repl-autolibs.js
+++ b/test/parallel/test-repl-autolibs.js
@@ -25,9 +25,6 @@ const assert = require('assert');
 const util = require('util');
 const repl = require('repl');
 
-// This test adds global variables
-common.globalCheck = false;
-
 const putIn = new common.ArrayStream();
 repl.start('', putIn, null, true);
 
@@ -65,6 +62,7 @@ function test2() {
   };
   const val = {};
   global.url = val;
+  common.allowGlobals(val);
   assert(!gotWrite);
   putIn.run(['url']);
   assert(gotWrite);
diff --git a/test/parallel/test-repl-envvars.js b/test/parallel/test-repl-envvars.js
index d29e7b3574c1f2..d6a45a664fa3b7 100644
--- a/test/parallel/test-repl-envvars.js
+++ b/test/parallel/test-repl-envvars.js
@@ -2,7 +2,7 @@
 
 // Flags: --expose-internals
 
-const common = require('../common');
+require('../common');
 const stream = require('stream');
 const REPL = require('internal/repl');
 const assert = require('assert');
@@ -47,9 +47,6 @@ function run(test) {
   REPL.createInternalRepl(env, opts, function(err, repl) {
     assert.ifError(err);
 
-    // The REPL registers 'module' and 'require' globals
-    common.allowGlobals(repl.context.module, repl.context.require);
-
     assert.strictEqual(expected.terminal, repl.terminal,
                        `Expected ${inspect(expected)} with ${inspect(env)}`);
     assert.strictEqual(expected.useColors, repl.useColors,
diff --git a/test/parallel/test-repl-history-perm.js b/test/parallel/test-repl-history-perm.js
index b125fa551dc858..03ce1435d9ba4e 100644
--- a/test/parallel/test-repl-history-perm.js
+++ b/test/parallel/test-repl-history-perm.js
@@ -38,9 +38,6 @@ const replHistoryPath = path.join(tmpdir.path, '.node_repl_history');
 const checkResults = common.mustCall(function(err, r) {
   assert.ifError(err);
 
-  // The REPL registers 'module' and 'require' globals
-  common.allowGlobals(r.context.module, r.context.require);
-
   r.input.end();
   const stat = fs.statSync(replHistoryPath);
   const fileMode = stat.mode & 0o777;
diff --git a/test/parallel/test-repl-persistent-history.js b/test/parallel/test-repl-persistent-history.js
index 4d0330272ab3c6..bb10085eccfcf6 100644
--- a/test/parallel/test-repl-persistent-history.js
+++ b/test/parallel/test-repl-persistent-history.js
@@ -216,9 +216,6 @@ function runTest(assertCleaned) {
       throw err;
     }
 
-    // The REPL registers 'module' and 'require' globals
-    common.allowGlobals(repl.context.module, repl.context.require);
-
     repl.once('close', () => {
       if (repl._flushing) {
         repl.once('flushHistory', onClose);
diff --git a/test/parallel/test-repl-reset-event.js b/test/parallel/test-repl-reset-event.js
index 4b3a04aeeb88c5..96d1d199af34c9 100644
--- a/test/parallel/test-repl-reset-event.js
+++ b/test/parallel/test-repl-reset-event.js
@@ -26,6 +26,8 @@ const assert = require('assert');
 const repl = require('repl');
 const util = require('util');
 
+common.allowGlobals(42);
+
 // Create a dummy stream that does nothing
 const dummy = new common.ArrayStream();
 
diff --git a/test/parallel/test-repl-use-global.js b/test/parallel/test-repl-use-global.js
index c76505272b2682..947adc7f255035 100644
--- a/test/parallel/test-repl-use-global.js
+++ b/test/parallel/test-repl-use-global.js
@@ -18,9 +18,6 @@ const globalTest = (useGlobal, cb, output) => (err, repl) => {
   if (err)
     return cb(err);
 
-  // The REPL registers 'module' and 'require' globals
-  common.allowGlobals(repl.context.module, repl.context.require);
-
   let str = '';
   output.on('data', (data) => (str += data));
   global.lunch = 'tacos';
diff --git a/test/parallel/test-repl.js b/test/parallel/test-repl.js
index b9c92c3cd63bc0..9aaf366c6807f0 100644
--- a/test/parallel/test-repl.js
+++ b/test/parallel/test-repl.js
@@ -26,7 +26,6 @@ const assert = require('assert');
 const net = require('net');
 const repl = require('repl');
 
-common.globalCheck = false;
 common.crashOnUnhandledRejection();
 
 const message = 'Read, Eval, Print Loop';
@@ -41,7 +40,6 @@ global.invoke_me = function(arg) {
   return `invoked ${arg}`;
 };
 
-
 // Helpers for describing the expected output:
 const kArrow = /^ *\^+ *$/;  // Arrow of ^ pointing to syntax error location
 const kSource = Symbol('kSource');  // Placeholder standing for input readback
@@ -779,6 +777,7 @@ const tcpTests = [
 
     socket.end();
   }
+  common.allowGlobals(...Object.values(global));
 })();
 
 function startTCPRepl() {
diff --git a/test/parallel/test-require-deps-deprecation.js b/test/parallel/test-require-deps-deprecation.js
index 24a2e86e6a42ee..80bf66d7f6b74f 100644
--- a/test/parallel/test-require-deps-deprecation.js
+++ b/test/parallel/test-require-deps-deprecation.js
@@ -2,8 +2,6 @@
 
 const common = require('../common');
 const assert = require('assert');
-// The v8 modules when imported leak globals. Disable global check.
-common.globalCheck = false;
 
 const deprecatedModules = [
   'node-inspect/lib/_inspect',
@@ -53,3 +51,6 @@ for (const m of deps) {
   }
   assert.notStrictEqual(path, m);
 }
+
+// The V8 modules add the WebInspector to the globals.
+common.allowGlobals(global.WebInspector);
diff --git a/test/parallel/test-timer-immediate.js b/test/parallel/test-timer-immediate.js
index 385fa4baca4ee5..b0f52db1b713d3 100644
--- a/test/parallel/test-timer-immediate.js
+++ b/test/parallel/test-timer-immediate.js
@@ -1,5 +1,5 @@
 'use strict';
 const common = require('../common');
-common.globalCheck = false;
 global.process = {};  // Boom!
+common.allowGlobals(global.process);
 setImmediate(common.mustCall());
diff --git a/test/parallel/test-vm-new-script-this-context.js b/test/parallel/test-vm-new-script-this-context.js
index 6da47e67249c2b..2c0c21690e1821 100644
--- a/test/parallel/test-vm-new-script-this-context.js
+++ b/test/parallel/test-vm-new-script-this-context.js
@@ -24,8 +24,6 @@ const common = require('../common');
 const assert = require('assert');
 const Script = require('vm').Script;
 
-common.globalCheck = false;
-
 // Run a string
 let script = new Script('\'passed\';');
 const result = script.runInThisContext(script);
@@ -60,3 +58,11 @@ global.f = function() { global.foo = 100; };
 script = new Script('f()');
 script.runInThisContext(script);
 assert.strictEqual(100, global.foo);
+
+common.allowGlobals(
+  global.hello,
+  global.code,
+  global.foo,
+  global.obj,
+  global.f
+);
diff --git a/test/parallel/test-vm-run-in-new-context.js b/test/parallel/test-vm-run-in-new-context.js
index 1edb061ea6a871..e844cd6816bba3 100644
--- a/test/parallel/test-vm-run-in-new-context.js
+++ b/test/parallel/test-vm-run-in-new-context.js
@@ -29,8 +29,6 @@ const vm = require('vm');
 assert.strictEqual(typeof global.gc, 'function',
                    'Run this test with --expose-gc');
 
-common.globalCheck = false;
-
 // Run a string
 const result = vm.runInNewContext('\'passed\';');
 assert.strictEqual(result, 'passed');
@@ -93,3 +91,10 @@ fn();
     return true;
   });
 }
+
+common.allowGlobals(
+  global.hello,
+  global.code,
+  global.foo,
+  global.obj
+);
diff --git a/test/parallel/test-vm-static-this.js b/test/parallel/test-vm-static-this.js
index 5306e31dc0e4a7..d4530604dc06f0 100644
--- a/test/parallel/test-vm-static-this.js
+++ b/test/parallel/test-vm-static-this.js
@@ -24,8 +24,6 @@ const common = require('../common');
 const assert = require('assert');
 const vm = require('vm');
 
-common.globalCheck = false;
-
 // Run a string
 const result = vm.runInThisContext('\'passed\';');
 assert.strictEqual('passed', result);
@@ -58,3 +56,10 @@ assert.strictEqual(1, global.foo);
 global.f = function() { global.foo = 100; };
 vm.runInThisContext('f()');
 assert.strictEqual(100, global.foo);
+
+common.allowGlobals(
+  global.hello,
+  global.foo,
+  global.obj,
+  global.f
+);