code: function getSpecialPropertyAssignmentKind(expression) {
          if (!isInJavaScriptFile(expression)) {
              return 0 /* None */;
          }
          if (expression.kind !== 187 /* BinaryExpression */) {
              return 0 /* None */;
          }
          var expr = expression;
          if (expr.operatorToken.kind !== 56 /* EqualsToken */ || expr.left.kind !== 172 /* PropertyAccessExpression */) {
              return 0 /* None */;
          }
          var lhs = expr.left;
          if (lhs.expression.kind === 69 /* Identifier */) {
              var lhsId = lhs.expression;
              if (lhsId.text === "exports") {
                  // exports.name = expr
                  return 1 /* ExportsProperty */;
              }
              else if (lhsId.text === "module" && lhs.name.text === "exports") {
                  // module.exports = expr
                  return 2 /* ModuleExports */;
              }
          }
          else if (lhs.expression.kind === 97 /* ThisKeyword */) {
              return 4 /* ThisProperty */;
          }
          else if (lhs.expression.kind === 172 /* PropertyAccessExpression */) {
              // chained dot, e.g. x.y.z = expr; this var is the 'x.y' part
              var innerPropertyAccess = lhs.expression;
              if (innerPropertyAccess.expression.kind === 69 /* Identifier */) {
                  // module.exports.name = expr
                  var innerPropertyAccessIdentifier = innerPropertyAccess.expression;
                  if (innerPropertyAccessIdentifier.text === "module" && innerPropertyAccess.name.text === "exports") {
                      return 1 /* ExportsProperty */;
                  }
                  if (innerPropertyAccess.name.text === "prototype") {
                      return 3 /* PrototypeProperty */;
                  }
              }
          }
          return 0 /* None */;
      }
docs: / Given a BinaryExpression, returns SpecialPropertyAssignmentKind for the various kinds of property / assignments we treat as special in the binder