Skip to content

Commit

Permalink
More nodes
Browse files Browse the repository at this point in the history
  • Loading branch information
jridgewell committed Mar 14, 2020
1 parent 51dbcbb commit 00a5c05
Show file tree
Hide file tree
Showing 2 changed files with 32 additions and 24 deletions.
@@ -1,13 +1,13 @@
"use strict";

var _a, _param, _foo, _x, _param2, _bar, _param3, _obj$baz, _obj;
var _a, _b, _foo, _x, _y, _bar, _d, _obj$baz, _obj;

const q = (_foo = foo, _a = a, _param = [...b], function foo(_argPlaceholder) {
return _foo(_a, ..._param, _argPlaceholder);
const q = (_foo = foo, _a = a, _b = [...b], function foo(_argPlaceholder) {
return _foo(_a, ..._b, _argPlaceholder);
});
const w = (_bar = bar, _x = x, _param2 = [...y], function bar(_argPlaceholder2, _argPlaceholder3) {
return _bar(1, _x, _argPlaceholder2, ..._param2, _argPlaceholder3, 2);
const w = (_bar = bar, _x = x, _y = [...y], function bar(_argPlaceholder2, _argPlaceholder3) {
return _bar(1, _x, _argPlaceholder2, ..._y, _argPlaceholder3, 2);
});
const z = (_obj = obj, _obj$baz = _obj.baz, _param3 = [...d], function baz(_argPlaceholder4) {
return _obj$baz.call(_obj, _argPlaceholder4, ..._param3);
const z = (_obj = obj, _obj$baz = _obj.baz, _d = [...d], function baz(_argPlaceholder4) {
return _obj$baz.call(_obj, _argPlaceholder4, ..._d);
});
42 changes: 25 additions & 17 deletions packages/babel-traverse/src/scope/index.js
Expand Up @@ -49,10 +49,24 @@ function gatherNodeParts(node: Object, parts: Array) {
case "ObjectExpression":
case "ObjectPattern":
for (const e of node.properties) {
gatherNodeParts(e.key || e.argument, parts);
gatherNodeParts(e, parts);
}
break;

case "SpreadElement":
case "RestElement":
gatherNodeParts(node.argument, parts);
break;

case "ObjectProperty":
case "ObjectMethod":
case "ClassProperty":
case "ClassMethod":
case "ClassPrivateProperty":
case "ClassPrivateMethod":
gatherNodeParts(node.key, parts);
break;

case "ThisExpression":
parts.push("this");
break;
Expand Down Expand Up @@ -83,10 +97,17 @@ function gatherNodeParts(node: Object, parts: Array) {
gatherNodeParts(node.left, parts);
break;

case "VariableDeclarator":
gatherNodeParts(node.id, parts);
break;

case "FunctionExpression":
case "FunctionDeclaration":
case "ClassExpression":
case "ClassDeclaration":
gatherNodeParts(node.id, parts);
break;

case "PrivateName":
gatherNodeParts(node.id, parts);
break;
Expand Down Expand Up @@ -350,17 +371,7 @@ export default class Scope {
return `_${id}`;
}

generateUidBasedOnNode(parent: Object, defaultName?: String) {
let node = parent;

if (t.isAssignmentExpression(parent)) {
node = parent.left;
} else if (t.isVariableDeclarator(parent)) {
node = parent.id;
} else if (t.isObjectProperty(node) || t.isObjectMethod(node)) {
node = node.key;
}

generateUidBasedOnNode(node: Object, defaultName?: String) {
const parts = [];
gatherNodeParts(node, parts);

Expand All @@ -374,11 +385,8 @@ export default class Scope {
* Generate a unique identifier based on a node.
*/

generateUidIdentifierBasedOnNode(
parent: Object,
defaultName?: String,
): Object {
return t.identifier(this.generateUidBasedOnNode(parent, defaultName));
generateUidIdentifierBasedOnNode(node: Object, defaultName?: String): Object {
return t.identifier(this.generateUidBasedOnNode(node, defaultName));
}

/**
Expand Down

0 comments on commit 00a5c05

Please sign in to comment.