aboutsummaryrefslogtreecommitdiff
path: root/node_modules/babel-traverse/lib/scope/index.js
diff options
context:
space:
mode:
Diffstat (limited to 'node_modules/babel-traverse/lib/scope/index.js')
-rw-r--r--node_modules/babel-traverse/lib/scope/index.js177
1 files changed, 86 insertions, 91 deletions
diff --git a/node_modules/babel-traverse/lib/scope/index.js b/node_modules/babel-traverse/lib/scope/index.js
index 36cfb3429..c960a7322 100644
--- a/node_modules/babel-traverse/lib/scope/index.js
+++ b/node_modules/babel-traverse/lib/scope/index.js
@@ -93,21 +93,76 @@ function getCache(path, parentScope, self) {
}
}
+function gatherNodeParts(node, parts) {
+ if (t.isModuleDeclaration(node)) {
+ if (node.source) {
+ gatherNodeParts(node.source, parts);
+ } else if (node.specifiers && node.specifiers.length) {
+ for (var _iterator2 = node.specifiers, _isArray2 = Array.isArray(_iterator2), _i2 = 0, _iterator2 = _isArray2 ? _iterator2 : (0, _getIterator3.default)(_iterator2);;) {
+ var _ref2;
+
+ if (_isArray2) {
+ if (_i2 >= _iterator2.length) break;
+ _ref2 = _iterator2[_i2++];
+ } else {
+ _i2 = _iterator2.next();
+ if (_i2.done) break;
+ _ref2 = _i2.value;
+ }
+
+ var specifier = _ref2;
+
+ gatherNodeParts(specifier, parts);
+ }
+ } else if (node.declaration) {
+ gatherNodeParts(node.declaration, parts);
+ }
+ } else if (t.isModuleSpecifier(node)) {
+ gatherNodeParts(node.local, parts);
+ } else if (t.isMemberExpression(node)) {
+ gatherNodeParts(node.object, parts);
+ gatherNodeParts(node.property, parts);
+ } else if (t.isIdentifier(node)) {
+ parts.push(node.name);
+ } else if (t.isLiteral(node)) {
+ parts.push(node.value);
+ } else if (t.isCallExpression(node)) {
+ gatherNodeParts(node.callee, parts);
+ } else if (t.isObjectExpression(node) || t.isObjectPattern(node)) {
+ for (var _iterator3 = node.properties, _isArray3 = Array.isArray(_iterator3), _i3 = 0, _iterator3 = _isArray3 ? _iterator3 : (0, _getIterator3.default)(_iterator3);;) {
+ var _ref3;
+
+ if (_isArray3) {
+ if (_i3 >= _iterator3.length) break;
+ _ref3 = _iterator3[_i3++];
+ } else {
+ _i3 = _iterator3.next();
+ if (_i3.done) break;
+ _ref3 = _i3.value;
+ }
+
+ var prop = _ref3;
+
+ gatherNodeParts(prop.key || prop.argument, parts);
+ }
+ }
+}
+
var collectorVisitor = {
For: function For(path) {
- for (var _iterator2 = t.FOR_INIT_KEYS, _isArray2 = Array.isArray(_iterator2), _i2 = 0, _iterator2 = _isArray2 ? _iterator2 : (0, _getIterator3.default)(_iterator2);;) {
- var _ref2;
+ for (var _iterator4 = t.FOR_INIT_KEYS, _isArray4 = Array.isArray(_iterator4), _i4 = 0, _iterator4 = _isArray4 ? _iterator4 : (0, _getIterator3.default)(_iterator4);;) {
+ var _ref4;
- if (_isArray2) {
- if (_i2 >= _iterator2.length) break;
- _ref2 = _iterator2[_i2++];
+ if (_isArray4) {
+ if (_i4 >= _iterator4.length) break;
+ _ref4 = _iterator4[_i4++];
} else {
- _i2 = _iterator2.next();
- if (_i2.done) break;
- _ref2 = _i2.value;
+ _i4 = _iterator4.next();
+ if (_i4.done) break;
+ _ref4 = _i4.value;
}
- var key = _ref2;
+ var key = _ref4;
var declar = path.get(key);
if (declar.isVar()) path.scope.getFunctionParent().registerBinding("var", declar);
@@ -133,8 +188,8 @@ var collectorVisitor = {
ExportDeclaration: {
exit: function exit(path) {
- var node = path.node;
- var scope = path.scope;
+ var node = path.node,
+ scope = path.scope;
var declar = node.declaration;
if (t.isClassDeclaration(declar) || t.isFunctionDeclaration(declar)) {
@@ -144,19 +199,19 @@ var collectorVisitor = {
var binding = scope.getBinding(_id.name);
if (binding) binding.reference(path);
} else if (t.isVariableDeclaration(declar)) {
- for (var _iterator3 = declar.declarations, _isArray3 = Array.isArray(_iterator3), _i3 = 0, _iterator3 = _isArray3 ? _iterator3 : (0, _getIterator3.default)(_iterator3);;) {
- var _ref3;
+ for (var _iterator5 = declar.declarations, _isArray5 = Array.isArray(_iterator5), _i5 = 0, _iterator5 = _isArray5 ? _iterator5 : (0, _getIterator3.default)(_iterator5);;) {
+ var _ref5;
- if (_isArray3) {
- if (_i3 >= _iterator3.length) break;
- _ref3 = _iterator3[_i3++];
+ if (_isArray5) {
+ if (_i5 >= _iterator5.length) break;
+ _ref5 = _iterator5[_i5++];
} else {
- _i3 = _iterator3.next();
- if (_i3.done) break;
- _ref3 = _i3.value;
+ _i5 = _iterator5.next();
+ if (_i5.done) break;
+ _ref5 = _i5.value;
}
- var decl = _ref3;
+ var decl = _ref5;
var ids = t.getBindingIdentifiers(decl);
for (var name in ids) {
@@ -197,19 +252,19 @@ var collectorVisitor = {
},
Block: function Block(path) {
var paths = path.get("body");
- for (var _iterator4 = paths, _isArray4 = Array.isArray(_iterator4), _i4 = 0, _iterator4 = _isArray4 ? _iterator4 : (0, _getIterator3.default)(_iterator4);;) {
- var _ref4;
+ for (var _iterator6 = paths, _isArray6 = Array.isArray(_iterator6), _i6 = 0, _iterator6 = _isArray6 ? _iterator6 : (0, _getIterator3.default)(_iterator6);;) {
+ var _ref6;
- if (_isArray4) {
- if (_i4 >= _iterator4.length) break;
- _ref4 = _iterator4[_i4++];
+ if (_isArray6) {
+ if (_i6 >= _iterator6.length) break;
+ _ref6 = _iterator6[_i6++];
} else {
- _i4 = _iterator4.next();
- if (_i4.done) break;
- _ref4 = _i4.value;
+ _i6 = _iterator6.next();
+ if (_i6.done) break;
+ _ref6 = _i6.value;
}
- var bodyPath = _ref4;
+ var bodyPath = _ref6;
if (bodyPath.isFunctionDeclaration()) {
path.scope.getBlockParent().registerDeclaration(bodyPath);
@@ -297,63 +352,7 @@ var Scope = function () {
}
var parts = [];
-
- var add = function add(node) {
- if (t.isModuleDeclaration(node)) {
- if (node.source) {
- add(node.source);
- } else if (node.specifiers && node.specifiers.length) {
- for (var _iterator5 = node.specifiers, _isArray5 = Array.isArray(_iterator5), _i5 = 0, _iterator5 = _isArray5 ? _iterator5 : (0, _getIterator3.default)(_iterator5);;) {
- var _ref5;
-
- if (_isArray5) {
- if (_i5 >= _iterator5.length) break;
- _ref5 = _iterator5[_i5++];
- } else {
- _i5 = _iterator5.next();
- if (_i5.done) break;
- _ref5 = _i5.value;
- }
-
- var specifier = _ref5;
-
- add(specifier);
- }
- } else if (node.declaration) {
- add(node.declaration);
- }
- } else if (t.isModuleSpecifier(node)) {
- add(node.local);
- } else if (t.isMemberExpression(node)) {
- add(node.object);
- add(node.property);
- } else if (t.isIdentifier(node)) {
- parts.push(node.name);
- } else if (t.isLiteral(node)) {
- parts.push(node.value);
- } else if (t.isCallExpression(node)) {
- add(node.callee);
- } else if (t.isObjectExpression(node) || t.isObjectPattern(node)) {
- for (var _iterator6 = node.properties, _isArray6 = Array.isArray(_iterator6), _i6 = 0, _iterator6 = _isArray6 ? _iterator6 : (0, _getIterator3.default)(_iterator6);;) {
- var _ref6;
-
- if (_isArray6) {
- if (_i6 >= _iterator6.length) break;
- _ref6 = _iterator6[_i6++];
- } else {
- _i6 = _iterator6.next();
- if (_i6.done) break;
- _ref6 = _i6.value;
- }
-
- var prop = _ref6;
-
- add(prop.key || prop.argument);
- }
- }
- };
-
- add(node);
+ gatherNodeParts(node, parts);
var id = parts.join("$");
id = id.replace(/^_/, "") || defaultName || "ref";
@@ -393,11 +392,7 @@ var Scope = function () {
if (kind === "hoisted" && local.kind === "let") return;
- var duplicate = false;
-
- if (!duplicate) duplicate = kind === "let" || local.kind === "let" || local.kind === "const" || local.kind === "module";
-
- if (!duplicate) duplicate = local.kind === "param" && (kind === "let" || kind === "const");
+ var duplicate = kind === "let" || local.kind === "let" || local.kind === "const" || local.kind === "module" || local.kind === "param" && (kind === "let" || kind === "const");
if (duplicate) {
throw this.hub.file.buildCodeFrameError(id, messages.get("scopeDuplicateDeclaration", name), TypeError);