patch 8.2.1504: Vim9: white space checks are only done for a :def function

Problem:    Vim9: white space checks are only done for a :def function.
Solution:   Also do checks at the script level.  Adjust the name of a few
            error messages.
diff --git a/src/userfunc.c b/src/userfunc.c
index 0f6388d..f3c04b2 100644
--- a/src/userfunc.c
+++ b/src/userfunc.c
@@ -119,7 +119,7 @@
 	    ++p;
 	    if (!VIM_ISWHITE(*p))
 	    {
-		semsg(_(e_white_space_required_after), ":");
+		semsg(_(e_white_space_required_after_str), ":");
 		return arg;
 	    }
 	    type = skipwhite(p);
@@ -276,7 +276,7 @@
 		if (!skip && in_vim9script()
 				      && !IS_WHITE_OR_NUL(*p) && *p != endchar)
 		{
-		    semsg(_(e_white_space_required_after), ",");
+		    semsg(_(e_white_space_required_after_str), ",");
 		    goto err_ret;
 		}
 	    }
@@ -623,6 +623,7 @@
     int		ret = OK;
     typval_T	argvars[MAX_FUNC_ARGS + 1];	// vars for arguments
     int		argcount = 0;		// number of arguments found
+    int		vim9script = in_vim9script();
 
     /*
      * Get the arguments.
@@ -644,10 +645,25 @@
 	++argcount;
 	// The comma should come right after the argument, but this wasn't
 	// checked previously, thus only enforce it in Vim9 script.
-	if (!in_vim9script())
+	if (vim9script)
+	{
+	    if (*argp != ',' && *skipwhite(argp) == ',')
+	    {
+		semsg(_(e_no_white_space_allowed_before_str), ",");
+		ret = FAIL;
+		break;
+	    }
+	}
+	else
 	    argp = skipwhite(argp);
 	if (*argp != ',')
 	    break;
+	if (vim9script && !IS_WHITE_OR_NUL(argp[1]))
+	{
+	    semsg(_(e_white_space_required_after_str), ",");
+	    ret = FAIL;
+	    break;
+	}
     }
     argp = skipwhite_and_linebreak(argp, evalarg);
     if (*argp == ')')
@@ -3275,7 +3291,7 @@
 			  || fp->uf_script_ctx.sc_seq == current_sctx.sc_seq)))
 	    {
 		if (vim9script)
-		    emsg_funcname(e_name_already_defined, name);
+		    emsg_funcname(e_name_already_defined_str, name);
 		else
 		    emsg_funcname(e_funcexts, name);
 		goto erret;