From 5b38cb9a6975c0a72526db4a92190dcbf483eb29 Mon Sep 17 00:00:00 2001 From: Vladimir Matveev Date: Tue, 16 Dec 2014 00:34:51 -0800 Subject: [PATCH] harden 'get import declaration' logic --- src/compiler/checker.ts | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) diff --git a/src/compiler/checker.ts b/src/compiler/checker.ts index 24f5a2f528d..20033d4c80b 100644 --- a/src/compiler/checker.ts +++ b/src/compiler/checker.ts @@ -4742,7 +4742,9 @@ module ts { nodeLinks.importOnRightSide = undefined; getSymbolLinks(rightSide).referenced = true; - nodeLinks = getNodeLinks(rightSide.declarations[0]) + Debug.assert((rightSide.flags & SymbolFlags.Import) !== 0); + + nodeLinks = getNodeLinks(getDeclarationOfKind(rightSide, SyntaxKind.ImportDeclaration)) } } @@ -4773,7 +4775,7 @@ module ts { } if (symbolLinks.referenced) { - markLinkedImportsAsReferenced(symbol.declarations[0]); + markLinkedImportsAsReferenced(getDeclarationOfKind(symbol, SyntaxKind.ImportDeclaration)); } } @@ -8906,7 +8908,7 @@ module ts { // Mark the import as referenced so that we emit it in the final .js file. getSymbolLinks(symbol).referenced = true; // mark any import declarations that depend upon this import as referenced - markLinkedImportsAsReferenced(symbol.declarations[0]) + markLinkedImportsAsReferenced(getDeclarationOfKind(symbol, SyntaxKind.ImportDeclaration)) } }