From f4f9d899fd09823d358628cd17df0db788064b8b Mon Sep 17 00:00:00 2001 From: Paul van Brenk Date: Wed, 15 Jun 2016 11:54:39 -0700 Subject: [PATCH] Port 8369: Support module.exports.name = expr format for JavaScript module --- src/compiler/utilities.ts | 11 +++++++++-- 1 file changed, 9 insertions(+), 2 deletions(-) diff --git a/src/compiler/utilities.ts b/src/compiler/utilities.ts index 9d1aa877cf0..929fedb0c58 100644 --- a/src/compiler/utilities.ts +++ b/src/compiler/utilities.ts @@ -1135,8 +1135,15 @@ namespace ts { else if (lhs.expression.kind === SyntaxKind.PropertyAccessExpression) { // chained dot, e.g. x.y.z = expr; this var is the 'x.y' part const innerPropertyAccess = lhs.expression; - if (innerPropertyAccess.expression.kind === SyntaxKind.Identifier && innerPropertyAccess.name.text === "prototype") { - return SpecialPropertyAssignmentKind.PrototypeProperty; + if (innerPropertyAccess.expression.kind === SyntaxKind.Identifier) { + // module.exports.name = expr + const innerPropertyAccessIdentifier = innerPropertyAccess.expression; + if (innerPropertyAccessIdentifier.text === "module" && innerPropertyAccess.name.text === "exports") { + return SpecialPropertyAssignmentKind.ExportsProperty; + } + if (innerPropertyAccess.name.text === "prototype") { + return SpecialPropertyAssignmentKind.PrototypeProperty; + } } }