aboutsummaryrefslogtreecommitdiff
path: root/node_modules/babel-traverse/lib/path/evaluation.js
diff options
context:
space:
mode:
Diffstat (limited to 'node_modules/babel-traverse/lib/path/evaluation.js')
-rw-r--r--node_modules/babel-traverse/lib/path/evaluation.js44
1 files changed, 43 insertions, 1 deletions
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;