patch 8.2.1516: Vim9: error for :exe has wrong line number

Problem:    Vim9: error for :exe has wrong line number.
Solution:   Set line number before calling do_cmdline_cmd(). (closes #6774)
diff --git a/src/testdir/test_vim9_script.vim b/src/testdir/test_vim9_script.vim
index 05b4e9f..6417d21 100644
--- a/src/testdir/test_vim9_script.vim
+++ b/src/testdir/test_vim9_script.vim
@@ -2159,8 +2159,9 @@
   echomsg [1, 2, 3] #{a: 1, b: 2}
   assert_match('^\[1, 2, 3\] {''a'': 1, ''b'': 2}$', Screenline(&lines))
 
-  call CheckDefFailure(['execute xxx'], 'E1001:')
-  call CheckDefFailure(['execute "cmd"# comment'], 'E488:')
+  call CheckDefFailure(['execute xxx'], 'E1001:', 1)
+  call CheckDefExecFailure(['execute "tabnext " .. 8'], 'E475:', 1)
+  call CheckDefFailure(['execute "cmd"# comment'], 'E488:', 1)
 enddef
 
 def Test_execute_cmd_vimscript()
diff --git a/src/version.c b/src/version.c
index 65b9d0f..4c2794a 100644
--- a/src/version.c
+++ b/src/version.c
@@ -755,6 +755,8 @@
 static int included_patches[] =
 {   /* Add new patch number below this line */
 /**/
+    1516,
+/**/
     1515,
 /**/
     1514,
diff --git a/src/vim9execute.c b/src/vim9execute.c
index a49f3d7..53a748e 100644
--- a/src/vim9execute.c
+++ b/src/vim9execute.c
@@ -1062,7 +1062,10 @@
 		    if (ga.ga_data != NULL)
 		    {
 			if (iptr->isn_type == ISN_EXECUTE)
+			{
+			    SOURCING_LNUM = iptr->isn_lnum;
 			    do_cmdline_cmd((char_u *)ga.ga_data);
+			}
 			else
 			{
 			    msg_sb_eol();