aboutsummaryrefslogtreecommitdiff
path: root/node_modules/babel-traverse/lib
diff options
context:
space:
mode:
Diffstat (limited to 'node_modules/babel-traverse/lib')
-rw-r--r--node_modules/babel-traverse/lib/path/context.js2
-rw-r--r--node_modules/babel-traverse/lib/path/evaluation.js44
-rw-r--r--node_modules/babel-traverse/lib/path/index.js2
-rw-r--r--node_modules/babel-traverse/lib/path/inference/index.js2
-rw-r--r--node_modules/babel-traverse/lib/path/inference/inferers.js9
-rw-r--r--node_modules/babel-traverse/lib/path/lib/virtual-types.js2
-rw-r--r--node_modules/babel-traverse/lib/path/modification.js2
-rw-r--r--node_modules/babel-traverse/lib/scope/index.js30
-rw-r--r--node_modules/babel-traverse/lib/visitors.js2
9 files changed, 80 insertions, 15 deletions
diff --git a/node_modules/babel-traverse/lib/path/context.js b/node_modules/babel-traverse/lib/path/context.js
index bbb0c337e..961e66e0c 100644
--- a/node_modules/babel-traverse/lib/path/context.js
+++ b/node_modules/babel-traverse/lib/path/context.js
@@ -246,7 +246,7 @@ function setKey(key) {
}
function requeue() {
- var pathToQueue = arguments.length <= 0 || arguments[0] === undefined ? this : arguments[0];
+ var pathToQueue = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : this;
if (pathToQueue.removed) return;
diff --git a/node_modules/babel-traverse/lib/path/evaluation.js b/node_modules/babel-traverse/lib/path/evaluation.js
index 77fcf488a..724d4728e 100644
--- a/node_modules/babel-traverse/lib/path/evaluation.js
+++ b/node_modules/babel-traverse/lib/path/evaluation.js
@@ -230,7 +230,49 @@ function evaluate() {
return arr;
}
- if (path.isObjectExpression()) {}
+ if (path.isObjectExpression()) {
+ var obj = {};
+ var props = path.get("properties");
+ for (var _iterator3 = props, _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;
+
+ if (prop.isObjectMethod() || prop.isSpreadProperty()) {
+ return deopt(prop);
+ }
+ var keyPath = prop.get("key");
+ var key = keyPath;
+ if (prop.node.computed) {
+ key = key.evaluate();
+ if (!key.confident) {
+ return deopt(keyPath);
+ }
+ key = key.value;
+ } else if (key.isIdentifier()) {
+ key = key.node.name;
+ } else {
+ key = key.node.value;
+ }
+ var valuePath = prop.get("value");
+ var _value2 = valuePath.evaluate();
+ if (!_value2.confident) {
+ return deopt(valuePath);
+ }
+ _value2 = _value2.value;
+ obj[key] = _value2;
+ }
+ return obj;
+ }
if (path.isLogicalExpression()) {
var wasConfident = confident;
diff --git a/node_modules/babel-traverse/lib/path/index.js b/node_modules/babel-traverse/lib/path/index.js
index d257dac5b..d97a3d190 100644
--- a/node_modules/babel-traverse/lib/path/index.js
+++ b/node_modules/babel-traverse/lib/path/index.js
@@ -135,7 +135,7 @@ var NodePath = function () {
};
NodePath.prototype.buildCodeFrameError = function buildCodeFrameError(msg) {
- var Error = arguments.length <= 1 || arguments[1] === undefined ? SyntaxError : arguments[1];
+ var Error = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : SyntaxError;
return this.hub.file.buildCodeFrameError(this.node, msg, Error);
};
diff --git a/node_modules/babel-traverse/lib/path/inference/index.js b/node_modules/babel-traverse/lib/path/inference/index.js
index 4f6a7edce..d93966378 100644
--- a/node_modules/babel-traverse/lib/path/inference/index.js
+++ b/node_modules/babel-traverse/lib/path/inference/index.js
@@ -85,6 +85,8 @@ function _isBaseType(baseName, type, soft) {
return t.isAnyTypeAnnotation(type);
} else if (baseName === "mixed") {
return t.isMixedTypeAnnotation(type);
+ } else if (baseName === "empty") {
+ return t.isEmptyTypeAnnotation(type);
} else if (baseName === "void") {
return t.isVoidTypeAnnotation(type);
} else {
diff --git a/node_modules/babel-traverse/lib/path/inference/inferers.js b/node_modules/babel-traverse/lib/path/inference/inferers.js
index 5fe093b23..ecce2b482 100644
--- a/node_modules/babel-traverse/lib/path/inference/inferers.js
+++ b/node_modules/babel-traverse/lib/path/inference/inferers.js
@@ -1,7 +1,7 @@
"use strict";
exports.__esModule = true;
-exports.Class = exports.Function = exports.Identifier = undefined;
+exports.ClassDeclaration = exports.ClassExpression = exports.FunctionDeclaration = exports.ArrowFunctionExpression = exports.FunctionExpression = exports.Identifier = undefined;
var _infererReference = require("./inferer-reference");
@@ -163,8 +163,11 @@ function Func() {
return t.genericTypeAnnotation(t.identifier("Function"));
}
-exports.Function = Func;
-exports.Class = Func;
+exports.FunctionExpression = Func;
+exports.ArrowFunctionExpression = Func;
+exports.FunctionDeclaration = Func;
+exports.ClassExpression = Func;
+exports.ClassDeclaration = Func;
function CallExpression() {
return resolveCall(this.get("callee"));
}
diff --git a/node_modules/babel-traverse/lib/path/lib/virtual-types.js b/node_modules/babel-traverse/lib/path/lib/virtual-types.js
index c4261da70..1cb61cc8c 100644
--- a/node_modules/babel-traverse/lib/path/lib/virtual-types.js
+++ b/node_modules/babel-traverse/lib/path/lib/virtual-types.js
@@ -15,7 +15,7 @@ var ReferencedIdentifier = exports.ReferencedIdentifier = {
var node = _ref.node;
var parent = _ref.parent;
- if (!t.isIdentifier(node, opts)) {
+ if (!t.isIdentifier(node, opts) && !t.isJSXMemberExpression(parent, opts)) {
if (t.isJSXIdentifier(node, opts)) {
if (_babelTypes.react.isCompatTag(node.name)) return false;
} else {
diff --git a/node_modules/babel-traverse/lib/path/modification.js b/node_modules/babel-traverse/lib/path/modification.js
index 9c8c7d3e5..a763f6d7b 100644
--- a/node_modules/babel-traverse/lib/path/modification.js
+++ b/node_modules/babel-traverse/lib/path/modification.js
@@ -257,7 +257,7 @@ function pushContainer(listKey, nodes) {
}
function hoist() {
- var scope = arguments.length <= 0 || arguments[0] === undefined ? this.scope : arguments[0];
+ var scope = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : this.scope;
var hoister = new _hoister2.default(this, scope);
return hoister.run();
diff --git a/node_modules/babel-traverse/lib/scope/index.js b/node_modules/babel-traverse/lib/scope/index.js
index a1146e3ab..36cfb3429 100644
--- a/node_modules/babel-traverse/lib/scope/index.js
+++ b/node_modules/babel-traverse/lib/scope/index.js
@@ -10,6 +10,10 @@ var _create = require("babel-runtime/core-js/object/create");
var _create2 = _interopRequireDefault(_create);
+var _map = require("babel-runtime/core-js/map");
+
+var _map2 = _interopRequireDefault(_map);
+
var _classCallCheck2 = require("babel-runtime/helpers/classCallCheck");
var _classCallCheck3 = _interopRequireDefault(_classCallCheck2);
@@ -234,6 +238,8 @@ var Scope = function () {
this.parentBlock = path.parent;
this.block = path.node;
this.path = path;
+
+ this.labels = new _map2.default();
}
Scope.prototype.traverse = function traverse(node, opts, state) {
@@ -241,7 +247,7 @@ var Scope = function () {
};
Scope.prototype.generateDeclaredUidIdentifier = function generateDeclaredUidIdentifier() {
- var name = arguments.length <= 0 || arguments[0] === undefined ? "temp" : arguments[0];
+ var name = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : "temp";
var id = this.generateUidIdentifier(name);
this.push({ id: id });
@@ -249,13 +255,13 @@ var Scope = function () {
};
Scope.prototype.generateUidIdentifier = function generateUidIdentifier() {
- var name = arguments.length <= 0 || arguments[0] === undefined ? "temp" : arguments[0];
+ var name = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : "temp";
return t.identifier(this.generateUid(name));
};
Scope.prototype.generateUid = function generateUid() {
- var name = arguments.length <= 0 || arguments[0] === undefined ? "temp" : arguments[0];
+ var name = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : "temp";
name = t.toIdentifier(name).replace(/^_+/, "").replace(/[0-9]+$/g, "");
@@ -264,7 +270,7 @@ var Scope = function () {
do {
uid = this._generateUid(name, i);
i++;
- } while (this.hasBinding(uid) || this.hasGlobal(uid) || this.hasReference(uid));
+ } while (this.hasLabel(uid) || this.hasBinding(uid) || this.hasGlobal(uid) || this.hasReference(uid));
var program = this.getProgramParent();
program.references[uid] = true;
@@ -459,9 +465,21 @@ var Scope = function () {
return t.callExpression(file.addHelper(helperName), args);
};
+ Scope.prototype.hasLabel = function hasLabel(name) {
+ return !!this.getLabel(name);
+ };
+
+ Scope.prototype.getLabel = function getLabel(name) {
+ return this.labels.get(name);
+ };
+
+ Scope.prototype.registerLabel = function registerLabel(path) {
+ this.labels.set(path.node.label.name, path);
+ };
+
Scope.prototype.registerDeclaration = function registerDeclaration(path) {
if (path.isLabeledStatement()) {
- this.registerBinding("label", path);
+ this.registerLabel(path);
} else if (path.isFunctionDeclaration()) {
this.registerBinding("hoisted", path.get("id"), path);
} else if (path.isVariableDeclaration()) {
@@ -529,7 +547,7 @@ var Scope = function () {
};
Scope.prototype.registerBinding = function registerBinding(kind, path) {
- var bindingPath = arguments.length <= 2 || arguments[2] === undefined ? path : arguments[2];
+ var bindingPath = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : path;
if (!kind) throw new ReferenceError("no `kind`");
diff --git a/node_modules/babel-traverse/lib/visitors.js b/node_modules/babel-traverse/lib/visitors.js
index a3b145d1c..dadf5d061 100644
--- a/node_modules/babel-traverse/lib/visitors.js
+++ b/node_modules/babel-traverse/lib/visitors.js
@@ -234,7 +234,7 @@ function validateVisitorMethods(path, val) {
}
function merge(visitors) {
- var states = arguments.length <= 1 || arguments[1] === undefined ? [] : arguments[1];
+ var states = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : [];
var wrapper = arguments[2];
var rootVisitor = {};