Skip to content

Commit dda27f7

Browse files
author
Andy Hanson
committed
Respond to PR comments
1 parent 86cce79 commit dda27f7

File tree

1 file changed

+12
-10
lines changed

1 file changed

+12
-10
lines changed

src/services/navigationBar.ts

Lines changed: 12 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -139,19 +139,21 @@ namespace ts.NavigationBar {
139139

140140
function sortNodes(nodes: Node[]): Node[] {
141141
const sortedCopy = nodes.slice(0);
142-
doSortNodes(sortedCopy);
142+
sortNodesInPlace(sortedCopy);
143143
return sortedCopy;
144144
}
145145

146-
function doSortNodes(nodes: Node[]): void {
147-
nodes.sort((n1: Declaration, n2: Declaration) => {
148-
if (n1.name && n2.name) {
149-
return getPropertyNameForPropertyNameNode(n1.name).localeCompare(getPropertyNameForPropertyNameNode(n2.name));
146+
function sortNodesInPlace(nodes: Node[]): void {
147+
nodes.sort((n1, n2) => {
148+
// Get the name if it exists. OK if node is not a declaration.
149+
const name1 = (<Declaration> n1).name, name2 = (<Declaration> n2).name;
150+
if (name1 && name2) {
151+
return getPropertyNameForPropertyNameNode(name1).localeCompare(getPropertyNameForPropertyNameNode(name2));
150152
}
151-
else if (n1.name) {
153+
else if (name1) {
152154
return 1;
153155
}
154-
else if (n2.name) {
156+
else if (name2) {
155157
return -1;
156158
}
157159
else {
@@ -160,14 +162,14 @@ namespace ts.NavigationBar {
160162
});
161163
}
162164

163-
// Add nodes in a single "level" of top-level nodes (as in, methods in a class.)
165+
// Add nodes in a single "level" of top-level nodes (e.g. methods in a class.)
164166
// Nodes in a single "level" are sorted together.
165167
function addTopLevelNodes(nodes: Node[], higherLevel: Node[]): void {
166168
const thisLevel: Node[] = [];
167169
for (const node of nodes) {
168170
addTopLevelNode(node, thisLevel);
169171
}
170-
doSortNodes(thisLevel);
172+
sortNodesInPlace(thisLevel);
171173

172174
for (const node of thisLevel) {
173175
higherLevel.push(node);
@@ -183,7 +185,7 @@ namespace ts.NavigationBar {
183185
if (member.kind === SyntaxKind.MethodDeclaration || member.kind === SyntaxKind.Constructor) {
184186
type FunctionLikeMember = MethodDeclaration | ConstructorDeclaration;
185187
if ((<FunctionLikeMember>member).body) {
186-
// We do not include methods that does not have child functions in it, because of duplications.
188+
// We do not include methods that do not have child functions in them, because of duplications.
187189
if (hasNamedFunctionDeclarations((<Block>(<FunctionLikeMember>member).body).statements)) {
188190
thisLevel.push(member);
189191
}

0 commit comments

Comments
 (0)