patch 8.2.4970: "eval 123" gives an error, "eval 'abc'" does not

Problem:    "eval 123" gives an error, "eval 'abc'" does not.
Solution:   Also give an error when evaluating only a string. (closes #10434)
diff --git a/src/ex_eval.c b/src/ex_eval.c
index f3e2ca2..61d2881 100644
--- a/src/ex_eval.c
+++ b/src/ex_eval.c
@@ -888,8 +888,8 @@
 }
 
 /*
- * Return TRUE if "arg" is only a variable, register, environment variable or
- * option name.
+ * Return TRUE if "arg" is only a variable, register, environment variable,
+ * option name or string.
  */
     int
 cmd_is_name_only(char_u *arg)
@@ -904,6 +904,17 @@
 	if (*p != NUL)
 	    ++p;
     }
+    else if (*p == '\'' || *p == '"')
+    {
+	int	    r;
+
+	if (*p == '"')
+	    r = eval_string(&p, NULL, FALSE, FALSE);
+	else
+	    r = eval_lit_string(&p, NULL, FALSE, FALSE);
+	if (r == FAIL)
+	    return FALSE;
+    }
     else
     {
 	if (*p == '&')
diff --git a/src/testdir/test_vim9_cmd.vim b/src/testdir/test_vim9_cmd.vim
index 50719e1..77e1d8a 100644
--- a/src/testdir/test_vim9_cmd.vim
+++ b/src/testdir/test_vim9_cmd.vim
@@ -697,6 +697,16 @@
   END
   v9.CheckDefAndScriptFailure(lines, 'E1207:', 2)
   $SomeEnv = ''
+
+  lines =<< trim END
+      eval 'value'
+  END
+  v9.CheckDefAndScriptFailure(lines, 'E1207:', 1)
+
+  lines =<< trim END
+      eval "value"
+  END
+  v9.CheckDefAndScriptFailure(lines, 'E1207:', 1)
 enddef
 
 def Test_environment_use_linebreak()
diff --git a/src/version.c b/src/version.c
index 485e257..7bdf346 100644
--- a/src/version.c
+++ b/src/version.c
@@ -747,6 +747,8 @@
 static int included_patches[] =
 {   /* Add new patch number below this line */
 /**/
+    4970,
+/**/
     4969,
 /**/
     4968,