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

Function getResolvedMembersOrExportsOfSymbol

test/fixtures/snapshot/typescript.js:57816–57859  ·  view source on GitHub ↗
(symbol, resolutionKind)

Source from the content-addressed store, hash-verified

57814 return links.resolvedSymbol;
57815 }
57816 function getResolvedMembersOrExportsOfSymbol(symbol, resolutionKind) {
57817 var links = getSymbolLinks(symbol);
57818 if (!links[resolutionKind]) {
57819 var isStatic_1 = resolutionKind === "resolvedExports" /* MembersOrExportsResolutionKind.resolvedExports */;
57820 var earlySymbols = !isStatic_1 ? symbol.members :
57821 symbol.flags & 1536 /* SymbolFlags.Module */ ? getExportsOfModuleWorker(symbol) :
57822 symbol.exports;
57823 // In the event we recursively resolve the members/exports of the symbol, we
57824 // set the initial value of resolvedMembers/resolvedExports to the early-bound
57825 // members/exports of the symbol.
57826 links[resolutionKind] = earlySymbols || emptySymbols;
57827 // fill in any as-yet-unresolved late-bound members.
57828 var lateSymbols = ts.createSymbolTable();
57829 for (var _i = 0, _a = symbol.declarations || ts.emptyArray; _i < _a.length; _i++) {
57830 var decl = _a[_i];
57831 var members = ts.getMembersOfDeclaration(decl);
57832 if (members) {
57833 for (var _b = 0, members_5 = members; _b < members_5.length; _b++) {
57834 var member = members_5[_b];
57835 if (isStatic_1 === ts.hasStaticModifier(member) && hasLateBindableName(member)) {
57836 lateBindMember(symbol, earlySymbols, lateSymbols, member);
57837 }
57838 }
57839 }
57840 }
57841 var assignments = symbol.assignmentDeclarationMembers;
57842 if (assignments) {
57843 var decls = ts.arrayFrom(assignments.values());
57844 for (var _c = 0, decls_1 = decls; _c < decls_1.length; _c++) {
57845 var member = decls_1[_c];
57846 var assignmentKind = ts.getAssignmentDeclarationKind(member);
57847 var isInstanceMember = assignmentKind === 3 /* AssignmentDeclarationKind.PrototypeProperty */
57848 || ts.isBinaryExpression(member) && isPossiblyAliasedThisProperty(member, assignmentKind)
57849 || assignmentKind === 9 /* AssignmentDeclarationKind.ObjectDefinePrototypeProperty */
57850 || assignmentKind === 6 /* AssignmentDeclarationKind.Prototype */; // A straight `Prototype` assignment probably can never have a computed name
57851 if (isStatic_1 === !isInstanceMember && hasLateBindableName(member)) {
57852 lateBindMember(symbol, earlySymbols, lateSymbols, member);
57853 }
57854 }
57855 }
57856 links[resolutionKind] = combineSymbolTables(earlySymbols, lateSymbols) || emptySymbols;
57857 }
57858 return links[resolutionKind];
57859 }
57860 /**
57861 * Gets a SymbolTable containing both the early- and late-bound members of a symbol.
57862 *

Callers 3

mergeModuleAugmentationFunction · 0.85
getExportsOfSymbolFunction · 0.85
getMembersOfSymbolFunction · 0.85

Calls 7

getSymbolLinksFunction · 0.85
getExportsOfModuleWorkerFunction · 0.85
hasLateBindableNameFunction · 0.85
lateBindMemberFunction · 0.85
combineSymbolTablesFunction · 0.85
valuesMethod · 0.45

Tested by

no test coverage detected