patch 8.2.1367: Vim9: no error for missing white space around operator

Problem:    Vim9: no error for missing white space around operator.
Solution:   Check for white space around *, / and %.
diff --git a/src/eval.c b/src/eval.c
index 3c4e5bd..b8367e0 100644
--- a/src/eval.c
+++ b/src/eval.c
@@ -2586,13 +2586,14 @@
 	    break;
 
 	evaluate = evalarg == NULL ? 0 : (evalarg->eval_flags & EVAL_EVALUATE);
+	oplen = (concat && p[1] == '.') ? 2 : 1;
 	if (getnext)
 	    *arg = eval_next_line(evalarg);
 	else
 	{
 	    if (evaluate && in_vim9script() && !VIM_ISWHITE(**arg))
 	    {
-		error_white_both(p, 1);
+		error_white_both(p, oplen);
 		clear_tv(rettv);
 		return FAIL;
 	    }
@@ -2622,7 +2623,6 @@
 	/*
 	 * Get the second variable.
 	 */
-	oplen = (op == '.' && *(*arg + 1) == '.') ? 2 : 1;
 	if (evaluate && in_vim9script() && !IS_WHITE_OR_NUL((*arg)[oplen]))
 	{
 	    error_white_both(p, oplen);
@@ -2796,17 +2796,25 @@
 	if (op != '*' && op != '/' && op != '%')
 	    break;
 
+	evaluate = evalarg == NULL ? 0 : (evalarg->eval_flags & EVAL_EVALUATE);
 	if (getnext)
 	    *arg = eval_next_line(evalarg);
 	else
+	{
+	    if (evaluate && in_vim9script() && !VIM_ISWHITE(**arg))
+	    {
+		error_white_both(p, 1);
+		clear_tv(rettv);
+		return FAIL;
+	    }
 	    *arg = p;
+	}
 
 #ifdef FEAT_FLOAT
 	f1 = 0;
 	f2 = 0;
 #endif
 	error = FALSE;
-	evaluate = evalarg == NULL ? 0 : (evalarg->eval_flags & EVAL_EVALUATE);
 	if (evaluate)
 	{
 #ifdef FEAT_FLOAT
@@ -2829,7 +2837,13 @@
 	/*
 	 * Get the second variable.
 	 */
-	*arg = skipwhite(*arg + 1);
+	if (evaluate && in_vim9script() && !IS_WHITE_OR_NUL((*arg)[1]))
+	{
+	    error_white_both(p, 1);
+	    clear_tv(rettv);
+	    return FAIL;
+	}
+	*arg = skipwhite_and_linebreak(*arg + 1, evalarg);
 	if (eval7(arg, &var2, evalarg, FALSE) == FAIL)
 	    return FAIL;
 
diff --git a/src/testdir/test_vim9_expr.vim b/src/testdir/test_vim9_expr.vim
index 7e53a28..ab274a1 100644
--- a/src/testdir/test_vim9_expr.vim
+++ b/src/testdir/test_vim9_expr.vim
@@ -843,6 +843,15 @@
 
   lines =<< trim END
       vim9script
+      let var = 11 +
+		  77 -
+		  22
+      assert_equal(66, var)
+  END
+  CheckScriptSuccess(lines)
+
+  lines =<< trim END
+      vim9script
       let var = 'one'
       		.. 'two'
       assert_equal('onetwo', var)
@@ -999,7 +1008,7 @@
 enddef
 
 def Test_expr6_vim9script()
-  # only checks line continuation
+  # check line continuation
   let lines =<< trim END
       vim9script
       let var = 11
@@ -1016,6 +1025,32 @@
       assert_equal(5, var)
   END
   CheckScriptSuccess(lines)
+
+  lines =<< trim END
+      vim9script
+      let var = 11 *
+      		22 /
+		3
+      assert_equal(80, var)
+  END
+  CheckScriptSuccess(lines)
+
+  # check white space
+  lines =<< trim END
+      vim9script
+      echo 5*6
+  END
+  CheckScriptFailure(lines, 'E1004:')
+  lines =<< trim END
+      vim9script
+      echo 5 *6
+  END
+  CheckScriptFailure(lines, 'E1004:')
+  lines =<< trim END
+      vim9script
+      echo 5* 6
+  END
+  CheckScriptFailure(lines, 'E1004:')
 enddef
 
 def Test_expr6_float()
diff --git a/src/version.c b/src/version.c
index 97bdb24..7ec5d2d 100644
--- a/src/version.c
+++ b/src/version.c
@@ -755,6 +755,8 @@
 static int included_patches[] =
 {   /* Add new patch number below this line */
 /**/
+    1367,
+/**/
     1366,
 /**/
     1365,