summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMichaƫl Zasso <targos@protonmail.com>2019-03-31 13:30:12 +0200
committerZYSzys <zyszys98@gmail.com>2019-04-03 21:36:08 +0800
commit0817840f775032169ddd70c85ac059f18ffcc81c (patch)
treec34b2577637895064116a86b8a1d095d2d26e1a3
parent8a6dcd040f35b023f0cc0208c4bc553fcc7e6a4d (diff)
downloadandroid-node-v8-0817840f775032169ddd70c85ac059f18ffcc81c.tar.gz
android-node-v8-0817840f775032169ddd70c85ac059f18ffcc81c.tar.bz2
android-node-v8-0817840f775032169ddd70c85ac059f18ffcc81c.zip
lib: force using primordials for JSON, Math and Reflect
Use the "no-restricted-globals" ESLint rule to lint for it. PR-URL: https://github.com/nodejs/node/pull/27027 Reviewed-By: Anna Henningsen <anna@addaleax.net> Reviewed-By: Joyee Cheung <joyeec9h3@gmail.com> Reviewed-By: Colin Ihrig <cjihrig@gmail.com> Reviewed-By: Ruben Bridgewater <ruben@bridgewater.de> Reviewed-By: Gus Caplan <me@gus.host> Reviewed-By: Luigi Pinca <luigipinca@gmail.com>
-rw-r--r--lib/.eslintrc.yaml1
-rw-r--r--lib/_http_common.js2
-rw-r--r--lib/async_hooks.js2
-rw-r--r--lib/buffer.js2
-rw-r--r--lib/domain.js2
-rw-r--r--lib/events.js2
-rw-r--r--lib/fs.js2
-rw-r--r--lib/inspector.js2
-rw-r--r--lib/internal/assert/assertion_error.js2
-rw-r--r--lib/internal/async_hooks.js2
-rw-r--r--lib/internal/bootstrap/node.js3
-rw-r--r--lib/internal/bootstrap/primordials.js2
-rw-r--r--lib/internal/buffer.js2
-rw-r--r--lib/internal/child_process.js2
-rw-r--r--lib/internal/cli_table.js2
-rw-r--r--lib/internal/console/constructor.js2
-rw-r--r--lib/internal/console/global.js2
-rw-r--r--lib/internal/crypto/random.js2
-rw-r--r--lib/internal/freeze_intrinsics.js2
-rw-r--r--lib/internal/fs/promises.js2
-rw-r--r--lib/internal/fs/read_file_context.js2
-rw-r--r--lib/internal/fs/streams.js2
-rw-r--r--lib/internal/fs/utils.js2
-rw-r--r--lib/internal/http2/compat.js2
-rw-r--r--lib/internal/http2/core.js2
-rw-r--r--lib/internal/http2/util.js2
-rw-r--r--lib/internal/main/print_help.js2
-rw-r--r--lib/internal/modules/cjs/loader.js2
-rw-r--r--lib/internal/process/execution.js2
-rw-r--r--lib/internal/process/policy.js2
-rw-r--r--lib/internal/process/task_queues.js2
-rw-r--r--lib/internal/profiler.js2
-rw-r--r--lib/internal/streams/state.js2
-rw-r--r--lib/internal/timers.js2
-rw-r--r--lib/internal/url.js2
-rw-r--r--lib/internal/util.js2
-rw-r--r--lib/internal/util/inspect.js2
-rw-r--r--lib/internal/v8_prof_processor.js2
-rw-r--r--lib/readline.js2
-rw-r--r--lib/repl.js2
-rw-r--r--lib/timers.js2
-rw-r--r--lib/util.js2
-rw-r--r--lib/zlib.js2
43 files changed, 83 insertions, 3 deletions
diff --git a/lib/.eslintrc.yaml b/lib/.eslintrc.yaml
index 0e869e0958..029d7ad177 100644
--- a/lib/.eslintrc.yaml
+++ b/lib/.eslintrc.yaml
@@ -1,6 +1,7 @@
rules:
prefer-object-spread: error
no-buffer-constructor: error
+ no-restricted-globals: ["error", "JSON", "Math", "Reflect"]
no-restricted-syntax:
# Config copied from .eslintrc.js
- error
diff --git a/lib/_http_common.js b/lib/_http_common.js
index bf88516157..a6efa5a832 100644
--- a/lib/_http_common.js
+++ b/lib/_http_common.js
@@ -21,6 +21,8 @@
'use strict';
+const { Math } = primordials;
+
const { getOptionValue } = require('internal/options');
const { methods, HTTPParser } =
diff --git a/lib/async_hooks.js b/lib/async_hooks.js
index 107c92c97d..88b8fd705a 100644
--- a/lib/async_hooks.js
+++ b/lib/async_hooks.js
@@ -1,5 +1,7 @@
'use strict';
+const { Reflect } = primordials;
+
const {
ERR_ASYNC_CALLBACK,
ERR_INVALID_ASYNC_ID
diff --git a/lib/buffer.js b/lib/buffer.js
index b5d89625b2..3cc9e77a6c 100644
--- a/lib/buffer.js
+++ b/lib/buffer.js
@@ -21,6 +21,8 @@
'use strict';
+const { Math } = primordials;
+
const {
byteLengthUtf8,
copy: _copy,
diff --git a/lib/domain.js b/lib/domain.js
index 27d72eb20c..608d5daceb 100644
--- a/lib/domain.js
+++ b/lib/domain.js
@@ -26,6 +26,8 @@
// No new pull requests targeting this module will be accepted
// unless they address existing, critical bugs.
+const { Reflect } = primordials;
+
const util = require('util');
const EventEmitter = require('events');
const {
diff --git a/lib/events.js b/lib/events.js
index 1eb4fc50f6..847074206e 100644
--- a/lib/events.js
+++ b/lib/events.js
@@ -21,6 +21,8 @@
'use strict';
+const { Math, Reflect } = primordials;
+
var spliceOne;
const {
diff --git a/lib/fs.js b/lib/fs.js
index b27b7f8916..fbdddb2f8c 100644
--- a/lib/fs.js
+++ b/lib/fs.js
@@ -24,6 +24,8 @@
'use strict';
+const { Math, Reflect } = primordials;
+
const { fs: constants } = internalBinding('constants');
const {
S_IFIFO,
diff --git a/lib/inspector.js b/lib/inspector.js
index 43cdd53bf0..793e63ff39 100644
--- a/lib/inspector.js
+++ b/lib/inspector.js
@@ -1,5 +1,7 @@
'use strict';
+const { JSON } = primordials;
+
const {
ERR_INSPECTOR_ALREADY_CONNECTED,
ERR_INSPECTOR_CLOSED,
diff --git a/lib/internal/assert/assertion_error.js b/lib/internal/assert/assertion_error.js
index 18c6e8cf99..5cefbf568f 100644
--- a/lib/internal/assert/assertion_error.js
+++ b/lib/internal/assert/assertion_error.js
@@ -1,5 +1,7 @@
'use strict';
+const { Math } = primordials;
+
const { inspect } = require('internal/util/inspect');
const { codes: {
ERR_INVALID_ARG_TYPE
diff --git a/lib/internal/async_hooks.js b/lib/internal/async_hooks.js
index fac887d0a5..a9bf1a49ac 100644
--- a/lib/internal/async_hooks.js
+++ b/lib/internal/async_hooks.js
@@ -1,5 +1,7 @@
'use strict';
+const { Reflect } = primordials;
+
const {
ERR_ASYNC_TYPE,
ERR_INVALID_ASYNC_ID
diff --git a/lib/internal/bootstrap/node.js b/lib/internal/bootstrap/node.js
index abd88afce0..a94dcfc4d1 100644
--- a/lib/internal/bootstrap/node.js
+++ b/lib/internal/bootstrap/node.js
@@ -34,9 +34,8 @@
// This file is compiled as if it's wrapped in a function with arguments
// passed by node::RunBootstrapping()
/* global process, require, internalBinding, isMainThread, ownsProcessState */
-/* global primordials */
-const { Object, Symbol } = primordials;
+const { JSON, Object, Symbol } = primordials;
const config = internalBinding('config');
const { deprecate } = require('internal/util');
diff --git a/lib/internal/bootstrap/primordials.js b/lib/internal/bootstrap/primordials.js
index df399dc173..e1fef7f886 100644
--- a/lib/internal/bootstrap/primordials.js
+++ b/lib/internal/bootstrap/primordials.js
@@ -1,6 +1,6 @@
'use strict';
-/* global primordials */
+/* eslint-disable no-restricted-globals */
// This file subclasses and stores the JS builtins that come from the VM
// so that Node.js's builtin modules do not need to later look these up from
diff --git a/lib/internal/buffer.js b/lib/internal/buffer.js
index 56b73f5489..64c026002c 100644
--- a/lib/internal/buffer.js
+++ b/lib/internal/buffer.js
@@ -1,5 +1,7 @@
'use strict';
+const { Math } = primordials;
+
const {
ERR_BUFFER_OUT_OF_BOUNDS,
ERR_INVALID_ARG_TYPE,
diff --git a/lib/internal/child_process.js b/lib/internal/child_process.js
index 840a1f16e0..86736b1bd8 100644
--- a/lib/internal/child_process.js
+++ b/lib/internal/child_process.js
@@ -1,5 +1,7 @@
'use strict';
+const { JSON } = primordials;
+
const {
errnoException,
codes: {
diff --git a/lib/internal/cli_table.js b/lib/internal/cli_table.js
index 71d322ee9e..b2d2779e5f 100644
--- a/lib/internal/cli_table.js
+++ b/lib/internal/cli_table.js
@@ -1,5 +1,7 @@
'use strict';
+const { Math } = primordials;
+
const { Buffer } = require('buffer');
const { removeColors } = require('internal/util');
const HasOwnProperty = Function.call.bind(Object.prototype.hasOwnProperty);
diff --git a/lib/internal/console/constructor.js b/lib/internal/console/constructor.js
index 86ef83994e..9e75dce3af 100644
--- a/lib/internal/console/constructor.js
+++ b/lib/internal/console/constructor.js
@@ -3,6 +3,8 @@
// The Console constructor is not actually used to construct the global
// console. It's exported for backwards compatibility.
+const { Reflect } = primordials;
+
const { trace } = internalBinding('trace_events');
const {
isStackOverflowError,
diff --git a/lib/internal/console/global.js b/lib/internal/console/global.js
index 614941eba6..aac67fde15 100644
--- a/lib/internal/console/global.js
+++ b/lib/internal/console/global.js
@@ -12,6 +12,8 @@
// Therefore, the console.Console.prototype is not
// in the global console prototype chain anymore.
+const { Reflect } = primordials;
+
const {
Console,
kBindStreamsLazy,
diff --git a/lib/internal/crypto/random.js b/lib/internal/crypto/random.js
index d6b6f47b20..d26eab7559 100644
--- a/lib/internal/crypto/random.js
+++ b/lib/internal/crypto/random.js
@@ -1,5 +1,7 @@
'use strict';
+const { Math } = primordials;
+
const { AsyncWrap, Providers } = internalBinding('async_wrap');
const { Buffer, kMaxLength } = require('buffer');
const { randomBytes: _randomBytes } = internalBinding('crypto');
diff --git a/lib/internal/freeze_intrinsics.js b/lib/internal/freeze_intrinsics.js
index 5d58121a25..ef32a8dc35 100644
--- a/lib/internal/freeze_intrinsics.js
+++ b/lib/internal/freeze_intrinsics.js
@@ -20,7 +20,9 @@
// https://github.com/tc39/proposal-frozen-realms/blob/91ac390e3451da92b5c27e354b39e52b7636a437/shim/src/deep-freeze.js
/* global WebAssembly, SharedArrayBuffer, console */
+/* eslint-disable no-restricted-globals */
'use strict';
+
module.exports = function() {
const intrinsics = [
diff --git a/lib/internal/fs/promises.js b/lib/internal/fs/promises.js
index 93c8fc0f88..ae7d616503 100644
--- a/lib/internal/fs/promises.js
+++ b/lib/internal/fs/promises.js
@@ -1,5 +1,7 @@
'use strict';
+const { Math } = primordials;
+
const {
F_OK,
O_SYMLINK,
diff --git a/lib/internal/fs/read_file_context.js b/lib/internal/fs/read_file_context.js
index 4961ee820a..a4e7a3563b 100644
--- a/lib/internal/fs/read_file_context.js
+++ b/lib/internal/fs/read_file_context.js
@@ -1,5 +1,7 @@
'use strict';
+const { Math } = primordials;
+
const { Buffer } = require('buffer');
const { FSReqCallback, close, read } = internalBinding('fs');
diff --git a/lib/internal/fs/streams.js b/lib/internal/fs/streams.js
index 24c79dffb5..3b797edc58 100644
--- a/lib/internal/fs/streams.js
+++ b/lib/internal/fs/streams.js
@@ -1,5 +1,7 @@
'use strict';
+const { Math } = primordials;
+
const {
FSReqCallback,
writeBuffers
diff --git a/lib/internal/fs/utils.js b/lib/internal/fs/utils.js
index 99e820d294..a6157f7684 100644
--- a/lib/internal/fs/utils.js
+++ b/lib/internal/fs/utils.js
@@ -1,5 +1,7 @@
'use strict';
+const { Reflect } = primordials;
+
const { Buffer, kMaxLength } = require('buffer');
const {
codes: {
diff --git a/lib/internal/http2/compat.js b/lib/internal/http2/compat.js
index 84630a3717..2ba1f49757 100644
--- a/lib/internal/http2/compat.js
+++ b/lib/internal/http2/compat.js
@@ -1,5 +1,7 @@
'use strict';
+const { Reflect } = primordials;
+
const assert = require('internal/assert');
const Stream = require('stream');
const Readable = Stream.Readable;
diff --git a/lib/internal/http2/core.js b/lib/internal/http2/core.js
index 3c4e6b5594..51385156d1 100644
--- a/lib/internal/http2/core.js
+++ b/lib/internal/http2/core.js
@@ -2,6 +2,8 @@
/* eslint-disable no-use-before-define */
+const { Math, Reflect } = primordials;
+
const {
assertCrypto,
customInspectSymbol: kInspect,
diff --git a/lib/internal/http2/util.js b/lib/internal/http2/util.js
index 80422cdc8b..d22310f19d 100644
--- a/lib/internal/http2/util.js
+++ b/lib/internal/http2/util.js
@@ -1,5 +1,7 @@
'use strict';
+const { Math } = primordials;
+
const binding = internalBinding('http2');
const {
codes: {
diff --git a/lib/internal/main/print_help.js b/lib/internal/main/print_help.js
index 451f0c1383..406c13eeff 100644
--- a/lib/internal/main/print_help.js
+++ b/lib/internal/main/print_help.js
@@ -1,5 +1,7 @@
'use strict';
+/* eslint-disable no-restricted-globals */
+
const { types } = internalBinding('options');
const hasCrypto = Boolean(process.versions.openssl);
diff --git a/lib/internal/modules/cjs/loader.js b/lib/internal/modules/cjs/loader.js
index e03cece3ad..c2d57f0be6 100644
--- a/lib/internal/modules/cjs/loader.js
+++ b/lib/internal/modules/cjs/loader.js
@@ -21,6 +21,8 @@
'use strict';
+const { JSON, Reflect } = primordials;
+
const { NativeModule } = require('internal/bootstrap/loaders');
const { pathToFileURL } = require('internal/url');
const { deprecate } = require('internal/util');
diff --git a/lib/internal/process/execution.js b/lib/internal/process/execution.js
index 070410ef6f..5712b80eaf 100644
--- a/lib/internal/process/execution.js
+++ b/lib/internal/process/execution.js
@@ -1,5 +1,7 @@
'use strict';
+const { JSON } = primordials;
+
const path = require('path');
const {
diff --git a/lib/internal/process/policy.js b/lib/internal/process/policy.js
index 823130e3c1..98c535f870 100644
--- a/lib/internal/process/policy.js
+++ b/lib/internal/process/policy.js
@@ -1,5 +1,7 @@
'use strict';
+const { JSON, Reflect } = primordials;
+
const {
ERR_MANIFEST_TDZ,
} = require('internal/errors').codes;
diff --git a/lib/internal/process/task_queues.js b/lib/internal/process/task_queues.js
index 9e4fba6d9d..f06a4de535 100644
--- a/lib/internal/process/task_queues.js
+++ b/lib/internal/process/task_queues.js
@@ -1,5 +1,7 @@
'use strict';
+const { Reflect } = primordials;
+
const {
// For easy access to the nextTick state in the C++ land,
// and to avoid unnecessary calls into JS land.
diff --git a/lib/internal/profiler.js b/lib/internal/profiler.js
index 1042f126dd..5e8e13038b 100644
--- a/lib/internal/profiler.js
+++ b/lib/internal/profiler.js
@@ -3,6 +3,8 @@
// Implements coverage collection exposed by the `NODE_V8_COVERAGE`
// environment variable which can also be used in the user land.
+const { JSON } = primordials;
+
let coverageDirectory;
function writeCoverage() {
diff --git a/lib/internal/streams/state.js b/lib/internal/streams/state.js
index c54c8230c7..c2fa2d364c 100644
--- a/lib/internal/streams/state.js
+++ b/lib/internal/streams/state.js
@@ -1,5 +1,7 @@
'use strict';
+const { Math } = primordials;
+
const { ERR_INVALID_OPT_VALUE } = require('internal/errors').codes;
function highWaterMarkFrom(options, isDuplex, duplexKey) {
diff --git a/lib/internal/timers.js b/lib/internal/timers.js
index 9a1b0dea0b..239b00129f 100644
--- a/lib/internal/timers.js
+++ b/lib/internal/timers.js
@@ -72,6 +72,8 @@
// timers within (or creation of a new list). However, these operations combined
// have shown to be trivial in comparison to other timers architectures.
+const { Math, Reflect } = primordials;
+
const {
scheduleTimer,
toggleTimerRef,
diff --git a/lib/internal/url.js b/lib/internal/url.js
index 0771dab13a..6ef2ad3017 100644
--- a/lib/internal/url.js
+++ b/lib/internal/url.js
@@ -1,5 +1,7 @@
'use strict';
+const { Reflect } = primordials;
+
const { inspect } = require('internal/util/inspect');
const {
encodeStr,
diff --git a/lib/internal/util.js b/lib/internal/util.js
index 2800f6122f..ba332f7e85 100644
--- a/lib/internal/util.js
+++ b/lib/internal/util.js
@@ -1,5 +1,7 @@
'use strict';
+const { Reflect } = primordials;
+
const {
ERR_INVALID_ARG_TYPE,
ERR_NO_CRYPTO,
diff --git a/lib/internal/util/inspect.js b/lib/internal/util/inspect.js
index 87e53d62f6..52924a4f70 100644
--- a/lib/internal/util/inspect.js
+++ b/lib/internal/util/inspect.js
@@ -1,5 +1,7 @@
'use strict';
+const { JSON, Math } = primordials;
+
const {
getOwnNonIndexProperties,
getPromiseDetails,
diff --git a/lib/internal/v8_prof_processor.js b/lib/internal/v8_prof_processor.js
index 6c741ea330..a39fbf4743 100644
--- a/lib/internal/v8_prof_processor.js
+++ b/lib/internal/v8_prof_processor.js
@@ -1,5 +1,7 @@
'use strict';
+const { JSON } = primordials;
+
const vm = require('vm');
const scriptFiles = [
diff --git a/lib/readline.js b/lib/readline.js
index 2247796fe2..e621cde309 100644
--- a/lib/readline.js
+++ b/lib/readline.js
@@ -27,6 +27,8 @@
'use strict';
+const { Math } = primordials;
+
const {
ERR_INVALID_CURSOR_POS,
ERR_INVALID_OPT_VALUE
diff --git a/lib/repl.js b/lib/repl.js
index 288278687c..c22d450539 100644
--- a/lib/repl.js
+++ b/lib/repl.js
@@ -42,6 +42,8 @@
'use strict';
+const { Math } = primordials;
+
const {
builtinLibs,
makeRequireFunction,
diff --git a/lib/timers.js b/lib/timers.js
index 8dc8b8877b..1e34b0388a 100644
--- a/lib/timers.js
+++ b/lib/timers.js
@@ -21,6 +21,8 @@
'use strict';
+const { Math } = primordials;
+
const {
immediateInfo,
toggleImmediateRef
diff --git a/lib/util.js b/lib/util.js
index f58f0e7a3e..a508c3cead 100644
--- a/lib/util.js
+++ b/lib/util.js
@@ -21,6 +21,8 @@
'use strict';
+const { Reflect } = primordials;
+
const {
codes: {
ERR_FALSY_VALUE_REJECTION,
diff --git a/lib/zlib.js b/lib/zlib.js
index 2d73b0e552..1d19210d70 100644
--- a/lib/zlib.js
+++ b/lib/zlib.js
@@ -21,6 +21,8 @@
'use strict';
+const { Math } = primordials;
+
const {
codes: {
ERR_BROTLI_INVALID_PARAM,