patch 8.2.3267: Vim9: crash when disassembling using deleted script variable

Problem:    Vim9: crash when disassembling a function that uses a deleted
            script variable.
Solution:   Check the variable still exists. (closes #8683)
diff --git a/src/testdir/test_vim9_disassemble.vim b/src/testdir/test_vim9_disassemble.vim
index b151cb4..1530c90 100644
--- a/src/testdir/test_vim9_disassemble.vim
+++ b/src/testdir/test_vim9_disassemble.vim
@@ -2241,5 +2241,53 @@
         res)
 enddef
 
+def Test_disassemble_after_reload()
+    var lines =<< trim END
+        vim9script
+        if exists('g:ThisFunc')
+          finish
+        endif
+        var name: any
+        def g:ThisFunc(): number
+          g:name = name
+          return 0
+        enddef
+        def g:ThatFunc(): number
+          name = g:name
+          return 0
+        enddef
+    END
+    lines->writefile('Xreload.vim')
+
+    source Xreload.vim
+    g:ThisFunc()
+    g:ThatFunc()
+
+    source Xreload.vim
+    var res = execute('disass g:ThisFunc')
+    assert_match('ThisFunc\_s*' ..
+          'g:name = name\_s*' ..
+          '\d LOADSCRIPT \[deleted\] from .*/Xreload.vim\_s*' ..
+          '\d STOREG g:name\_s*' ..
+          'return 0\_s*' ..
+          '\d PUSHNR 0\_s*' ..
+          '\d RETURN\_s*',
+          res)
+
+    res = execute('disass g:ThatFunc')
+    assert_match('ThatFunc\_s*' ..
+          'name = g:name\_s*' ..
+          '\d LOADG g:name\_s*' ..
+          '\d STORESCRIPT \[deleted\] in .*/Xreload.vim\_s*' ..
+          'return 0\_s*' ..
+          '\d PUSHNR 0\_s*' ..
+          '\d RETURN\_s*',
+          res)
+
+    delete('Xreload.vim')
+    delfunc g:ThisFunc
+    delfunc g:ThatFunc
+enddef
+
 
 " vim: ts=8 sw=2 sts=2 expandtab tw=80 fdm=marker