patch 8.2.4309: Vim9: crash when using a partial in the wrong context

Problem:    Vim9: crash when using a partial in the wrong context.
Solution:   Don't use an NULL outer pointer. (closes #9706)
diff --git a/src/testdir/test_vim9_func.vim b/src/testdir/test_vim9_func.vim
index 55297cb..e781a21 100644
--- a/src/testdir/test_vim9_func.vim
+++ b/src/testdir/test_vim9_func.vim
@@ -3125,6 +3125,35 @@
   v9.CheckScriptFailure(lines, 'E1235:')
 enddef
 
+" Using "idx" from a legacy global function does not work.
+" This caused a crash when called from legacy context.
+func Test_partial_call_fails()
+  let lines =<< trim END
+      vim9script
+
+      var l = ['a', 'b', 'c']
+      def Iter(container: any): any
+        var idx = -1
+        var obj = {state: container}
+        def g:__NextItem__(self: dict<any>): any
+          ++idx
+          return self.state[idx]
+        enddef
+        obj.__next__ = function('g:__NextItem__', [obj])
+        return obj
+      enddef
+
+      var it = Iter(l)
+      echo it.__next__()
+  END
+  call writefile(lines, 'XpartialCall')
+  try
+    source XpartialCall
+  catch /E1248:/
+  endtry
+  call delete('XpartialCall')
+endfunc
+
 def Test_cmd_modifier()
   tab echo '0'
   v9.CheckDefFailure(['5tab echo 3'], 'E16:')