summaryrefslogtreecommitdiff
path: root/tools/node_modules/eslint/node_modules/eslint-utils
diff options
context:
space:
mode:
Diffstat (limited to 'tools/node_modules/eslint/node_modules/eslint-utils')
-rw-r--r--tools/node_modules/eslint/node_modules/eslint-utils/README.md10
-rw-r--r--tools/node_modules/eslint/node_modules/eslint-utils/index.js56
-rw-r--r--tools/node_modules/eslint/node_modules/eslint-utils/index.mjs56
-rw-r--r--tools/node_modules/eslint/node_modules/eslint-utils/package.json35
4 files changed, 111 insertions, 46 deletions
diff --git a/tools/node_modules/eslint/node_modules/eslint-utils/README.md b/tools/node_modules/eslint/node_modules/eslint-utils/README.md
index 7069f04f73..0358380624 100644
--- a/tools/node_modules/eslint/node_modules/eslint-utils/README.md
+++ b/tools/node_modules/eslint/node_modules/eslint-utils/README.md
@@ -2,7 +2,7 @@
[![npm version](https://img.shields.io/npm/v/eslint-utils.svg)](https://www.npmjs.com/package/eslint-utils)
[![Downloads/month](https://img.shields.io/npm/dm/eslint-utils.svg)](http://www.npmtrends.com/eslint-utils)
-[![Build Status](https://travis-ci.org/mysticatea/eslint-utils.svg?branch=master)](https://travis-ci.org/mysticatea/eslint-utils)
+[![Build Status](https://github.com/mysticatea/eslint-utils/workflows/CI/badge.svg)](https://github.com/mysticatea/eslint-utils/actions)
[![Coverage Status](https://codecov.io/gh/mysticatea/eslint-utils/branch/master/graph/badge.svg)](https://codecov.io/gh/mysticatea/eslint-utils)
[![Dependency Status](https://david-dm.org/mysticatea/eslint-utils.svg)](https://david-dm.org/mysticatea/eslint-utils)
@@ -12,13 +12,13 @@ This package provides utility functions and classes for make ESLint custom rules
For examples:
-- [getStaticValue](https://mysticatea.github.io/eslint-utils/api/ast-utils.html#getstaticvalue) evaluates static value on AST.
-- [PatternMatcher](https://mysticatea.github.io/eslint-utils/api/ast-utils.html#patternmatcher-class) finds a regular expression pattern as handling escape sequences.
-- [ReferenceTracker](https://mysticatea.github.io/eslint-utils/api/scope-utils.html#referencetracker-class) checks the members of modules/globals as handling assignments and destructuring.
+- [getStaticValue](https://eslint-utils.mysticatea.dev/api/ast-utils.html#getstaticvalue) evaluates static value on AST.
+- [PatternMatcher](https://eslint-utils.mysticatea.dev/api/ast-utils.html#patternmatcher-class) finds a regular expression pattern as handling escape sequences.
+- [ReferenceTracker](https://eslint-utils.mysticatea.dev/api/scope-utils.html#referencetracker-class) checks the members of modules/globals as handling assignments and destructuring.
## 📖 Usage
-See [documentation](https://mysticatea.github.io/eslint-utils/).
+See [documentation](https://eslint-utils.mysticatea.dev/).
## 📰 Changelog
diff --git a/tools/node_modules/eslint/node_modules/eslint-utils/index.js b/tools/node_modules/eslint/node_modules/eslint-utils/index.js
index 7805b05ef3..f5d3f3e609 100644
--- a/tools/node_modules/eslint/node_modules/eslint-utils/index.js
+++ b/tools/node_modules/eslint/node_modules/eslint-utils/index.js
@@ -240,7 +240,18 @@ function getFunctionHeadLocation(node, sourceCode) {
}
}
-/* globals BigInt */
+/* globals BigInt, globalThis, global, self, window */
+
+const globalObject =
+ typeof globalThis !== "undefined"
+ ? globalThis
+ : typeof self !== "undefined"
+ ? self
+ : typeof window !== "undefined"
+ ? window
+ : typeof global !== "undefined"
+ ? global
+ : {};
const builtinNames = Object.freeze(
new Set([
@@ -316,13 +327,13 @@ const callAllowed = new Set(
Number.parseFloat,
Number.parseInt,
Object,
- Object.entries, //eslint-disable-line @mysticatea/node/no-unsupported-features/es-builtins
+ Object.entries,
Object.is,
Object.isExtensible,
Object.isFrozen,
Object.isSealed,
Object.keys,
- Object.values, //eslint-disable-line @mysticatea/node/no-unsupported-features/es-builtins
+ Object.values,
parseFloat,
parseInt,
RegExp,
@@ -534,9 +545,9 @@ const operations = Object.freeze({
variable != null &&
variable.defs.length === 0 &&
builtinNames.has(variable.name) &&
- variable.name in global
+ variable.name in globalObject
) {
- return { value: global[variable.name] }
+ return { value: globalObject[variable.name] }
}
// Constants.
@@ -1287,7 +1298,6 @@ class PatternMatcher {
}
}
-const SENTINEL_TYPE = /^(?:.+?Statement|.+?Declaration|(?:Array|ArrowFunction|Assignment|Call|Class|Function|Member|New|Object)Expression|AssignmentPattern|Program|VariableDeclarator)$/u;
const IMPORT_TYPE = /^(?:Import|Export(?:All|Default|Named))Declaration$/u;
const has = Function.call.bind(Object.hasOwnProperty);
@@ -1312,6 +1322,28 @@ function isModifiedGlobal(variable) {
}
/**
+ * Check if the value of a given node is passed through to the parent syntax as-is.
+ * For example, `a` and `b` in (`a || b` and `c ? a : b`) are passed through.
+ * @param {Node} node A node to check.
+ * @returns {boolean} `true` if the node is passed through.
+ */
+function isPassThrough(node) {
+ const parent = node.parent;
+
+ switch (parent && parent.type) {
+ case "ConditionalExpression":
+ return parent.consequent === node || parent.alternate === node
+ case "LogicalExpression":
+ return true
+ case "SequenceExpression":
+ return parent.expressions[parent.expressions.length - 1] === node
+
+ default:
+ return false
+ }
+}
+
+/**
* The reference tracker.
*/
class ReferenceTracker {
@@ -1447,11 +1479,11 @@ class ReferenceTracker {
esm
? nextTraceMap
: this.mode === "legacy"
- ? Object.assign(
- { default: nextTraceMap },
- nextTraceMap
- )
- : { default: nextTraceMap }
+ ? Object.assign(
+ { default: nextTraceMap },
+ nextTraceMap
+ )
+ : { default: nextTraceMap }
);
if (esm) {
@@ -1512,7 +1544,7 @@ class ReferenceTracker {
//eslint-disable-next-line complexity
*_iteratePropertyReferences(rootNode, path, traceMap) {
let node = rootNode;
- while (!SENTINEL_TYPE.test(node.parent.type)) {
+ while (isPassThrough(node)) {
node = node.parent;
}
diff --git a/tools/node_modules/eslint/node_modules/eslint-utils/index.mjs b/tools/node_modules/eslint/node_modules/eslint-utils/index.mjs
index 2e6391e9b3..4b2a20edf5 100644
--- a/tools/node_modules/eslint/node_modules/eslint-utils/index.mjs
+++ b/tools/node_modules/eslint/node_modules/eslint-utils/index.mjs
@@ -234,7 +234,18 @@ function getFunctionHeadLocation(node, sourceCode) {
}
}
-/* globals BigInt */
+/* globals BigInt, globalThis, global, self, window */
+
+const globalObject =
+ typeof globalThis !== "undefined"
+ ? globalThis
+ : typeof self !== "undefined"
+ ? self
+ : typeof window !== "undefined"
+ ? window
+ : typeof global !== "undefined"
+ ? global
+ : {};
const builtinNames = Object.freeze(
new Set([
@@ -310,13 +321,13 @@ const callAllowed = new Set(
Number.parseFloat,
Number.parseInt,
Object,
- Object.entries, //eslint-disable-line @mysticatea/node/no-unsupported-features/es-builtins
+ Object.entries,
Object.is,
Object.isExtensible,
Object.isFrozen,
Object.isSealed,
Object.keys,
- Object.values, //eslint-disable-line @mysticatea/node/no-unsupported-features/es-builtins
+ Object.values,
parseFloat,
parseInt,
RegExp,
@@ -528,9 +539,9 @@ const operations = Object.freeze({
variable != null &&
variable.defs.length === 0 &&
builtinNames.has(variable.name) &&
- variable.name in global
+ variable.name in globalObject
) {
- return { value: global[variable.name] }
+ return { value: globalObject[variable.name] }
}
// Constants.
@@ -1281,7 +1292,6 @@ class PatternMatcher {
}
}
-const SENTINEL_TYPE = /^(?:.+?Statement|.+?Declaration|(?:Array|ArrowFunction|Assignment|Call|Class|Function|Member|New|Object)Expression|AssignmentPattern|Program|VariableDeclarator)$/u;
const IMPORT_TYPE = /^(?:Import|Export(?:All|Default|Named))Declaration$/u;
const has = Function.call.bind(Object.hasOwnProperty);
@@ -1306,6 +1316,28 @@ function isModifiedGlobal(variable) {
}
/**
+ * Check if the value of a given node is passed through to the parent syntax as-is.
+ * For example, `a` and `b` in (`a || b` and `c ? a : b`) are passed through.
+ * @param {Node} node A node to check.
+ * @returns {boolean} `true` if the node is passed through.
+ */
+function isPassThrough(node) {
+ const parent = node.parent;
+
+ switch (parent && parent.type) {
+ case "ConditionalExpression":
+ return parent.consequent === node || parent.alternate === node
+ case "LogicalExpression":
+ return true
+ case "SequenceExpression":
+ return parent.expressions[parent.expressions.length - 1] === node
+
+ default:
+ return false
+ }
+}
+
+/**
* The reference tracker.
*/
class ReferenceTracker {
@@ -1441,11 +1473,11 @@ class ReferenceTracker {
esm
? nextTraceMap
: this.mode === "legacy"
- ? Object.assign(
- { default: nextTraceMap },
- nextTraceMap
- )
- : { default: nextTraceMap }
+ ? Object.assign(
+ { default: nextTraceMap },
+ nextTraceMap
+ )
+ : { default: nextTraceMap }
);
if (esm) {
@@ -1506,7 +1538,7 @@ class ReferenceTracker {
//eslint-disable-next-line complexity
*_iteratePropertyReferences(rootNode, path, traceMap) {
let node = rootNode;
- while (!SENTINEL_TYPE.test(node.parent.type)) {
+ while (isPassThrough(node)) {
node = node.parent;
}
diff --git a/tools/node_modules/eslint/node_modules/eslint-utils/package.json b/tools/node_modules/eslint/node_modules/eslint-utils/package.json
index bbade790ea..5b9b668f29 100644
--- a/tools/node_modules/eslint/node_modules/eslint-utils/package.json
+++ b/tools/node_modules/eslint/node_modules/eslint-utils/package.json
@@ -7,24 +7,25 @@
},
"bundleDependencies": false,
"dependencies": {
- "eslint-visitor-keys": "^1.0.0"
+ "eslint-visitor-keys": "^1.1.0"
},
"deprecated": false,
"description": "Utilities for ESLint plugins.",
"devDependencies": {
- "@mysticatea/eslint-plugin": "^10.0.3",
- "codecov": "^3.0.2",
+ "@mysticatea/eslint-plugin": "^12.0.0",
+ "codecov": "^3.6.1",
"dot-prop": "^4.2.0",
- "eslint": "^5.16.0",
- "esm": "^3.0.55",
- "espree": "^5.0.1",
- "mocha": "^5.2.0",
- "nyc": "^13.0.1",
- "opener": "^1.4.3",
- "rimraf": "^2.6.2",
- "rollup": "^1.16.7",
+ "eslint": "^6.5.1",
+ "esm": "^3.2.25",
+ "espree": "^6.1.1",
+ "mocha": "^6.2.2",
+ "npm-run-all": "^4.1.5",
+ "nyc": "^14.1.1",
+ "opener": "^1.5.1",
+ "rimraf": "^3.0.0",
+ "rollup": "^1.25.0",
"rollup-plugin-sourcemaps": "^0.4.2",
- "vuepress": "^0.14.4",
+ "vuepress": "^1.2.0",
"warun": "^1.0.0"
},
"engines": {
@@ -49,18 +50,18 @@
"build": "rollup -c",
"clean": "rimraf .nyc_output coverage index.*",
"codecov": "nyc report -r lcovonly && codecov",
- "coverage": "nyc report -r lcov && opener ./coverage/lcov-report/index.html",
+ "coverage": "opener ./coverage/lcov-report/index.html",
"docs:build": "vuepress build docs",
"docs:watch": "vuepress dev docs",
"lint": "eslint src test",
"postversion": "git push && git push --tags",
"prebuild": "npm run -s clean",
- "pretest": "npm run -s lint && npm run -s build",
"preversion": "npm test && npm run -s build",
"prewatch": "npm run -s clean",
- "test": "nyc mocha --reporter dot \"test/*.js\"",
- "watch": "warun \"{src,test}/**/*.js\" -- nyc --reporter lcov mocha --reporter dot \"test/*.js\""
+ "test": "run-s lint build test:mocha",
+ "test:mocha": "nyc mocha --reporter dot \"test/*.js\"",
+ "watch": "warun \"{src,test}/**/*.js\" -- npm run -s test:mocha"
},
"sideEffects": false,
- "version": "1.4.2"
+ "version": "1.4.3"
} \ No newline at end of file