patch 8.2.4737: // in JavaScript string recognized as comment

Problem:    // in JavaScript string recognized as comment.
Solution:   Only check for linecomment if 'cindent' is set. (closes #10151)
diff --git a/src/change.c b/src/change.c
index bc9195b..259f076 100644
--- a/src/change.c
+++ b/src/change.c
@@ -1659,7 +1659,7 @@
 	lead_len = get_leader_len(saved_line, &lead_flags,
 							dir == BACKWARD, TRUE);
 #ifdef FEAT_CINDENT
-	if (lead_len == 0 && do_cindent && dir == FORWARD)
+	if (lead_len == 0 && curbuf->b_p_cin && do_cindent && dir == FORWARD)
 	{
 	    // Check for a line comment after code.
 	    comment_start = check_linecomment(saved_line);
diff --git a/src/testdir/test_textformat.vim b/src/testdir/test_textformat.vim
index 3850213..1d4ade9 100644
--- a/src/testdir/test_textformat.vim
+++ b/src/testdir/test_textformat.vim
@@ -278,12 +278,25 @@
                       //
   END
   call assert_equal(expected, getline(1, '$'))
+
+  " using 'indentexpr' instead of 'cindent' does not repeat a comment
+  setl nocindent indentexpr=2
+  3delete
+  normal 2Gox
+  let expected =<< trim END
+      nop;
+      val = val;      // This is a comment
+        x
+  END
+  call assert_equal(expected, getline(1, '$'))
+  setl cindent indentexpr=
+  3delete
+
   normal 2GO
   let expected =<< trim END
       nop;
 
       val = val;      // This is a comment
-                      //
   END
   call assert_equal(expected, getline(1, '$'))
 
diff --git a/src/version.c b/src/version.c
index 737b54b..f119983 100644
--- a/src/version.c
+++ b/src/version.c
@@ -747,6 +747,8 @@
 static int included_patches[] =
 {   /* Add new patch number below this line */
 /**/
+    4737,
+/**/
     4736,
 /**/
     4735,