From a5a71693b73031130fb74c9322c23ee79db2aef2 Mon Sep 17 00:00:00 2001 From: Kanchalai Tanglertsampan Date: Thu, 29 Sep 2016 18:02:59 -0700 Subject: [PATCH] Address PR --- src/compiler/binder.ts | 15 ++++++--------- 1 file changed, 6 insertions(+), 9 deletions(-) diff --git a/src/compiler/binder.ts b/src/compiler/binder.ts index 5e065a00d2f..65034476aa1 100644 --- a/src/compiler/binder.ts +++ b/src/compiler/binder.ts @@ -358,16 +358,13 @@ namespace ts { } else { // This is to properly report an error in the case "export default { }" is after export default of class declaration or function declaration. - for (const declaration of symbol.declarations) { - // Error on multiple export default in the following case: - // 1. multiple export default of class declaration or function declaration by checking NodeFlags.Default - // 2. multiple export default of export assignment. This one doesn't have NodeFlags.Default on (as export default doesn't considered as modifiers) - if ((declaration.flags & NodeFlags.Default) || - (declaration.kind === SyntaxKind.ExportAssignment && !(node).isExportEquals)) { + // Error on multiple export default in the following case: + // 1. multiple export default of class declaration or function declaration by checking NodeFlags.Default + // 2. multiple export default of export assignment. This one doesn't have NodeFlags.Default on (as export default doesn't considered as modifiers) + if (symbol.declarations && symbol.declarations.length && + (isDefaultExport || (node.kind === SyntaxKind.ExportAssignment && !(node).isExportEquals))) { message = Diagnostics.A_module_cannot_have_multiple_default_exports; - break; - } - } + } } }