patch 8.2.3215: Vim9: argument types are not checked at compile time

Problem:    Vim9: argument types are not checked at compile time.
Solution:   Add several more type checks. Sort the argument lists.
            (Yegappan Lakshmanan, closes #8626)
diff --git a/src/testing.c b/src/testing.c
index 5b2f7af..9f3c294 100644
--- a/src/testing.c
+++ b/src/testing.c
@@ -1193,6 +1193,11 @@
     int		dragging;
     scrollbar_T *sb = NULL;
 
+    if (check_for_string_arg(argvars, 0) == FAIL
+	    || check_for_number_arg(argvars, 1) == FAIL
+	    || check_for_number_arg(argvars, 2) == FAIL)
+	return;
+
     if (argvars[0].v_type != VAR_STRING
 	    || (argvars[1].v_type) != VAR_NUMBER
 	    || (argvars[2].v_type) != VAR_NUMBER)
@@ -1281,14 +1286,11 @@
     list_T	*l;
     listitem_T	*li;
 
-    if (argvars[0].v_type != VAR_LIST
-	    || (argvars[1].v_type) != VAR_NUMBER
-	    || (argvars[2].v_type) != VAR_NUMBER
-	    || (argvars[3].v_type) != VAR_NUMBER)
-    {
-	emsg(_(e_invarg));
+    if (check_for_list_arg(argvars, 0) == FAIL
+	    || check_for_number_arg(argvars, 1) == FAIL
+	    || check_for_number_arg(argvars, 2) == FAIL
+	    || check_for_number_arg(argvars, 3) == FAIL)
 	return;
-    }
 
     row = tv_get_number(&argvars[1]);
     col = tv_get_number(&argvars[2]);