From fe4efe8cdf8314e59f8f6d00547c06924a33c835 Mon Sep 17 00:00:00 2001 From: Bill Ticehurst Date: Mon, 14 Mar 2016 12:56:48 -0700 Subject: [PATCH] Safety guard and couple of comments --- src/services/navigationBar.ts | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/src/services/navigationBar.ts b/src/services/navigationBar.ts index 1061cc99d6b..05dfe1045c7 100644 --- a/src/services/navigationBar.ts +++ b/src/services/navigationBar.ts @@ -566,7 +566,7 @@ namespace ts.NavigationBar { } // Add a level if traversing into a container - if (isFunctionLike(node) || isClassLike(node)) { + if (newItem && (isFunctionLike(node) || isClassLike(node))) { const lastTop = topItem; indent++; topItem = newItem; @@ -606,6 +606,7 @@ namespace ts.NavigationBar { case SyntaxKind.Constructor: case SyntaxKind.GetAccessor: case SyntaxKind.SetAccessor: + // "export default function().." looks just like a regular function/class declaration, except with the 'default' flag set const name = node.flags && (node.flags & NodeFlags.Default) ? "default" : node.kind === SyntaxKind.Constructor ? "constructor" : declarationNameToString((node as (Declaration)).name); @@ -633,6 +634,7 @@ namespace ts.NavigationBar { ScriptElementKind.memberFunctionElement, [getNodeSpan(node)]); case SyntaxKind.ExportAssignment: + // e.g. "export default " return getNavBarItem("default", ScriptElementKind.variableElement, [getNodeSpan(node)]); case SyntaxKind.ImportClause: // e.g. 'def' in: import def from 'mod' (in ImportDeclaration) if (!(node as ImportClause).name) {