mirror of
https://github.com/neovim/neovim.git
synced 2025-09-06 03:18:16 +00:00
lua: Fix crash on unprotected lua errors (#12658)
Can be reproduced with a script like this: -- in some lua file vim.fn.timer_start(10, function() error("uh....") end) -- will cause neovim to crash with the following error. PANIC: unprotected error in call to Lua API (nlua_CFunction_func_call failed.) After this, it will instead print the error message from the top of the stack, like so. tmp/error_nvim.lua:10: uh... Also added an example test. Previously this test caused the embedded nvim to panic.
This commit is contained in:
@@ -255,6 +255,18 @@ describe('luaeval()', function()
|
||||
]])
|
||||
end)
|
||||
|
||||
it('can handle functions with errors', function()
|
||||
eq(true, exec_lua [[
|
||||
vim.fn.timer_start(10, function()
|
||||
error("dead function")
|
||||
end)
|
||||
|
||||
vim.wait(1000, function() return false end)
|
||||
|
||||
return true
|
||||
]])
|
||||
end)
|
||||
|
||||
it('should handle passing functions around', function()
|
||||
command [[
|
||||
function VimCanCallLuaCallbacks(Concat, Cb)
|
||||
|
Reference in New Issue
Block a user