code: function emitAssignment(name, value, shouldEmitCommaBeforeAssignment, nodeForSourceMap) {
                  if (shouldEmitCommaBeforeAssignment) {
                      write(", ");
                  }
                  var exportChanged = isNameOfExportedSourceLevelDeclarationInSystemExternalModule(name);
                  if (exportChanged) {
                      write(exportFunctionForFile + "(\"");
                      emitNodeWithCommentsAndWithoutSourcemap(name);
                      write("\", ");
                  }
                  var isVariableDeclarationOrBindingElement = name.parent && (name.parent.kind === 218 /* VariableDeclaration */ || name.parent.kind === 169 /* BindingElement */);
                  // If this is first var declaration, we need to start at var/let/const keyword instead
                  // otherwise use nodeForSourceMap as the start position
                  emitStart(isFirstVariableDeclaration(nodeForSourceMap) ? nodeForSourceMap.parent : nodeForSourceMap);
                  withTemporaryNoSourceMap(function () {
                      if (isVariableDeclarationOrBindingElement) {
                          emitModuleMemberName(name.parent);
                      }
                      else {
                          emit(name);
                      }
                      write(" = ");
                      emit(value);
                  });
                  emitEnd(nodeForSourceMap, /*stopOverridingSpan*/ true);
                  if (exportChanged) {
                      write(")");
                  }
              }
docs: Emit an assignment to a given identifier, 'name', with a given expression, 'value'.
  @param name an identifier as a left-hand-side operand of the assignment
  @param value an expression as a right-hand-side operand of the assignment
  @param shouldEmitCommaBeforeAssignment a boolean indicating whether to prefix an assignment with comma