MCPcopy Create free account
hub / github.com/nodejs/node / destructuringNeedsFlattening

Function destructuringNeedsFlattening

test/fixtures/snapshot/typescript.js:104755–104800  ·  view source on GitHub ↗
(node)

Source from the content-addressed store, hash-verified

104753 return visitorWorker(node, /*valueIsDiscarded*/ true);
104754 }
104755 function destructuringNeedsFlattening(node) {
104756 if (ts.isObjectLiteralExpression(node)) {
104757 for (var _i = 0, _a = node.properties; _i < _a.length; _i++) {
104758 var elem = _a[_i];
104759 switch (elem.kind) {
104760 case 296 /* SyntaxKind.PropertyAssignment */:
104761 if (destructuringNeedsFlattening(elem.initializer)) {
104762 return true;
104763 }
104764 break;
104765 case 297 /* SyntaxKind.ShorthandPropertyAssignment */:
104766 if (destructuringNeedsFlattening(elem.name)) {
104767 return true;
104768 }
104769 break;
104770 case 298 /* SyntaxKind.SpreadAssignment */:
104771 if (destructuringNeedsFlattening(elem.expression)) {
104772 return true;
104773 }
104774 break;
104775 case 169 /* SyntaxKind.MethodDeclaration */:
104776 case 172 /* SyntaxKind.GetAccessor */:
104777 case 173 /* SyntaxKind.SetAccessor */:
104778 return false;
104779 default: ts.Debug.assertNever(elem, "Unhandled object member kind");
104780 }
104781 }
104782 }
104783 else if (ts.isArrayLiteralExpression(node)) {
104784 for (var _b = 0, _c = node.elements; _b < _c.length; _b++) {
104785 var elem = _c[_b];
104786 if (ts.isSpreadElement(elem)) {
104787 if (destructuringNeedsFlattening(elem.expression)) {
104788 return true;
104789 }
104790 }
104791 else if (destructuringNeedsFlattening(elem)) {
104792 return true;
104793 }
104794 }
104795 }
104796 else if (ts.isIdentifier(node)) {
104797 return ts.length(getExports(node)) > (ts.isExportName(node) ? 1 : 0);
104798 }
104799 return false;
104800 }
104801 function visitDestructuringAssignment(node, valueIsDiscarded) {
104802 if (destructuringNeedsFlattening(node.left)) {
104803 return ts.flattenDestructuringAssignment(node, visitor, context, 0 /* FlattenLevel.All */, !valueIsDiscarded, createAllExportExpressions);

Callers 1

Calls 2

getExportsFunction · 0.70
lengthMethod · 0.45

Tested by

no test coverage detected