summaryrefslogtreecommitdiff
path: root/tools/node_modules/babel-eslint/node_modules/@babel/types/lib/validators/isReferenced.js
diff options
context:
space:
mode:
Diffstat (limited to 'tools/node_modules/babel-eslint/node_modules/@babel/types/lib/validators/isReferenced.js')
-rw-r--r--tools/node_modules/babel-eslint/node_modules/@babel/types/lib/validators/isReferenced.js99
1 files changed, 99 insertions, 0 deletions
diff --git a/tools/node_modules/babel-eslint/node_modules/@babel/types/lib/validators/isReferenced.js b/tools/node_modules/babel-eslint/node_modules/@babel/types/lib/validators/isReferenced.js
new file mode 100644
index 0000000000..5bb68b4ad4
--- /dev/null
+++ b/tools/node_modules/babel-eslint/node_modules/@babel/types/lib/validators/isReferenced.js
@@ -0,0 +1,99 @@
+"use strict";
+
+exports.__esModule = true;
+exports.default = isReferenced;
+
+function isReferenced(node, parent) {
+ switch (parent.type) {
+ case "BindExpression":
+ return parent.object === node || parent.callee === node;
+
+ case "MemberExpression":
+ case "JSXMemberExpression":
+ if (parent.property === node && parent.computed) {
+ return true;
+ } else if (parent.object === node) {
+ return true;
+ } else {
+ return false;
+ }
+
+ case "MetaProperty":
+ return false;
+
+ case "ObjectProperty":
+ if (parent.key === node) {
+ return parent.computed;
+ }
+
+ case "VariableDeclarator":
+ return parent.id !== node;
+
+ case "ArrowFunctionExpression":
+ case "FunctionDeclaration":
+ case "FunctionExpression":
+ var _arr = parent.params;
+
+ for (var _i = 0; _i < _arr.length; _i++) {
+ var param = _arr[_i];
+ if (param === node) return false;
+ }
+
+ return parent.id !== node;
+
+ case "ExportSpecifier":
+ if (parent.source) {
+ return false;
+ } else {
+ return parent.local === node;
+ }
+
+ case "ExportNamespaceSpecifier":
+ case "ExportDefaultSpecifier":
+ return false;
+
+ case "JSXAttribute":
+ return parent.name !== node;
+
+ case "ClassProperty":
+ if (parent.key === node) {
+ return parent.computed;
+ } else {
+ return parent.value === node;
+ }
+
+ case "ImportDefaultSpecifier":
+ case "ImportNamespaceSpecifier":
+ case "ImportSpecifier":
+ return false;
+
+ case "ClassDeclaration":
+ case "ClassExpression":
+ return parent.id !== node;
+
+ case "ClassMethod":
+ case "ObjectMethod":
+ return parent.key === node && parent.computed;
+
+ case "LabeledStatement":
+ return false;
+
+ case "CatchClause":
+ return parent.param !== node;
+
+ case "RestElement":
+ return false;
+
+ case "AssignmentExpression":
+ return parent.right === node;
+
+ case "AssignmentPattern":
+ return parent.right === node;
+
+ case "ObjectPattern":
+ case "ArrayPattern":
+ return false;
+ }
+
+ return true;
+} \ No newline at end of file