patch 8.2.1720: Vim9: memory leak with heredoc that isn't executed

Problem:    Vim9: memory leak with heredoc that isn't executed. (Dominique
            Pellé)
Solution:   Don't clear the list items. (closes #6991)
diff --git a/src/testdir/test_vim9_script.vim b/src/testdir/test_vim9_script.vim
index 42eaab0..c00df6b 100644
--- a/src/testdir/test_vim9_script.vim
+++ b/src/testdir/test_vim9_script.vim
@@ -259,6 +259,14 @@
   let w: number
   w = 123
   assert_equal(123, w)
+
+
+  # this should not leak
+  if 0
+    let text =<< trim END
+      some text
+    END
+  endif
 enddef
 
 def Test_vim9_single_char_vars()
diff --git a/src/version.c b/src/version.c
index 15c4976..a5cb6a8 100644
--- a/src/version.c
+++ b/src/version.c
@@ -751,6 +751,8 @@
 static int included_patches[] =
 {   /* Add new patch number below this line */
 /**/
+    1720,
+/**/
     1719,
 /**/
     1718,
diff --git a/src/vim9compile.c b/src/vim9compile.c
index 1edf48c..52651f3 100644
--- a/src/vim9compile.c
+++ b/src/vim9compile.c
@@ -4622,15 +4622,18 @@
 	eap->cookie = cctx;
 	l = heredoc_get(eap, op + 3, FALSE);
 
-	// Push each line and the create the list.
-	FOR_ALL_LIST_ITEMS(l, li)
+	if (cctx->ctx_skip != SKIP_YES)
 	{
-	    generate_PUSHS(cctx, li->li_tv.vval.v_string);
-	    li->li_tv.vval.v_string = NULL;
+	    // Push each line and the create the list.
+	    FOR_ALL_LIST_ITEMS(l, li)
+	    {
+		generate_PUSHS(cctx, li->li_tv.vval.v_string);
+		li->li_tv.vval.v_string = NULL;
+	    }
+	    generate_NEWLIST(cctx, l->lv_len);
+	    type = &t_list_string;
+	    member_type = &t_list_string;
 	}
-	generate_NEWLIST(cctx, l->lv_len);
-	type = &t_list_string;
-	member_type = &t_list_string;
 	list_free(l);
 	p += STRLEN(p);
 	end = p;