patch 8.2.3657: Vim9: debug text misses one line of return statement

Problem:    Vim9: debug text misses one line of return statement.
Solution:   Add a line when not at a debug instruction. (closes #9137)
diff --git a/src/testdir/test_debugger.vim b/src/testdir/test_debugger.vim
index 86d0b4c..6f01917 100644
--- a/src/testdir/test_debugger.vim
+++ b/src/testdir/test_debugger.vim
@@ -373,6 +373,29 @@
   call delete('Xtest.vim')
 enddef
 
+def Test_Debugger_break_at_return()
+  var lines =<< trim END
+      vim9script
+      def g:GetNum(): number
+        return 1
+          + 2
+          + 3
+      enddef
+      breakadd func GetNum
+  END
+  writefile(lines, 'Xtest.vim')
+
+  # Start Vim in a terminal
+  var buf = RunVimInTerminal('-S Xtest.vim', {wait_for_ruler: 0})
+  call TermWait(buf)
+
+  RunDbgCmd(buf, ':call GetNum()',
+     ['line 1: return 1  + 2  + 3'], {match: 'pattern'})
+
+  call StopVimInTerminal(buf)
+  call delete('Xtest.vim')
+enddef
+
 func Test_Backtrace_Through_Source()
   CheckCWD
   let file1 =<< trim END
diff --git a/src/version.c b/src/version.c
index e479630..baca0af 100644
--- a/src/version.c
+++ b/src/version.c
@@ -758,6 +758,8 @@
 static int included_patches[] =
 {   /* Add new patch number below this line */
 /**/
+    3657,
+/**/
     3656,
 /**/
     3655,
diff --git a/src/vim9execute.c b/src/vim9execute.c
index 8a14a85..5593f58 100644
--- a/src/vim9execute.c
+++ b/src/vim9execute.c
@@ -1602,7 +1602,7 @@
 		  || ni->isn_type == ISN_RETURN
 		  || ni->isn_type == ISN_RETURN_VOID)
 	{
-	    end_lnum = ni->isn_lnum;
+	    end_lnum = ni->isn_lnum + (ni->isn_type == ISN_DEBUG ? 0 : 1);
 	    break;
 	}