Fixed object expression keys transformation when of sequence expressions, when identifier is referenced on the same expression

This commit is contained in:
sanex3339
2020-01-26 17:07:23 +03:00
parent 87c8c612b8
commit 5011d89eee
9 changed files with 71 additions and 38 deletions
@@ -188,8 +188,6 @@ export class ObjectExpressionKeysTransformer extends AbstractNodeTransformer {
// should mark node as prohibited if identifier of node is referenced somewhere inside other nodes
for (const nodeToSearch of nodesToSearch) {
const identifierNamesSetForCurrentNode: string[] = [];
estraverse.traverse(nodeToSearch, {
enter: (node: ESTree.Node): void | estraverse.VisitorOption => {
if (node === objectExpressionNode) {
@@ -201,7 +199,7 @@ export class ObjectExpressionKeysTransformer extends AbstractNodeTransformer {
}
if (!isCurrentNode) {
identifierNamesSetForCurrentNode.push(node.name);
identifierNamesSet.push(node.name);
} else if (identifierNamesSet.includes(node.name)) {
isReferencedIdentifierName = true;
@@ -212,8 +210,6 @@ export class ObjectExpressionKeysTransformer extends AbstractNodeTransformer {
if (isCurrentNode || isReferencedIdentifierName) {
break;
} else {
identifierNamesSet.push(...identifierNamesSetForCurrentNode);
}
}