patch 8.2.1065: Vim9: no line break allowed inside a list

Problem:    Vim9: no line break allowed inside a list.
Solution:   Handle line break inside a list in Vim9 script.
diff --git a/src/list.c b/src/list.c
index cf0c99f..611171d 100644
--- a/src/list.c
+++ b/src/list.c
@@ -1156,19 +1156,19 @@
 
 /*
  * Allocate a variable for a List and fill it from "*arg".
+ * "*arg" points to the "[".
  * Return OK or FAIL.
  */
     int
-get_list_tv(char_u **arg, typval_T *rettv, int flags, int do_error)
+get_list_tv(char_u **arg, typval_T *rettv, evalarg_T *evalarg, int do_error)
 {
-    int		evaluate = flags & EVAL_EVALUATE;
+    int		evaluate = evalarg == NULL ? FALSE
+					 : evalarg->eval_flags & EVAL_EVALUATE;
+    int		getnext;
     list_T	*l = NULL;
     typval_T	tv;
     listitem_T	*item;
-    evalarg_T	evalarg;
-
-    CLEAR_FIELD(evalarg);
-    evalarg.eval_flags = flags;
+    int		had_comma;
 
     if (evaluate)
     {
@@ -1178,9 +1178,12 @@
     }
 
     *arg = skipwhite(*arg + 1);
+    eval_next_non_blank(*arg, evalarg, &getnext);
+    if (getnext)
+	*arg = eval_next_line(evalarg);
     while (**arg != ']' && **arg != NUL)
     {
-	if (eval1(arg, &tv, &evalarg) == FAIL)	// recursive!
+	if (eval1(arg, &tv, evalarg) == FAIL)	// recursive!
 	    goto failret;
 	if (evaluate)
 	{
@@ -1195,15 +1198,24 @@
 		clear_tv(&tv);
 	}
 
+	// the comma must comma after the value
+	had_comma = **arg == ',';
+	if (had_comma)
+	    *arg = skipwhite(*arg + 1);
+
+	// the "]" can be on the next line
+	eval_next_non_blank(*arg, evalarg, &getnext);
+	if (getnext)
+	    *arg = eval_next_line(evalarg);
 	if (**arg == ']')
 	    break;
-	if (**arg != ',')
+
+	if (!had_comma)
 	{
 	    if (do_error)
 		semsg(_("E696: Missing comma in List: %s"), *arg);
 	    goto failret;
 	}
-	*arg = skipwhite(*arg + 1);
     }
 
     if (**arg != ']')