patch 9.0.1719: if_lua: crash for for Lua functions invoked via Vim callbacks

Problem: if_lua: crash for Lua functions invoked via Vim callbacks
Solution: Use Lua registry rather than upvalues for udata cache

closes: #12785

Signed-off-by: Christian Brabandt <cb@256bit.org>
Co-authored-by: Jesse Pavel <jpavel@alum.mit.edu>
diff --git a/src/testdir/test_lua.vim b/src/testdir/test_lua.vim
index 81e9262..dd95e9f 100644
--- a/src/testdir/test_lua.vim
+++ b/src/testdir/test_lua.vim
@@ -1232,4 +1232,11 @@
   call StopVimInTerminal(buf)
 endfunc
 
+" Test for a crash when a Lua funcref is invoked with parameters from Vim
+func Test_lua_funcref_with_params()
+  let Lua_funcref = luaeval('function(d) local s = "in Lua callback" end')
+  call Lua_funcref({'a' : 'b'})
+  call assert_true(v:true)
+endfunc
+
 " vim: shiftwidth=2 sts=2 expandtab