From c6ba06eea6b113a15aa3fbeb00be371df5069af0 Mon Sep 17 00:00:00 2001 From: min Date: Tue, 9 Jun 2026 10:22:06 +0300 Subject: [PATCH] =?UTF-8?q?debug(lua):=20log=20start/end/error=20=D0=B2=20?= =?UTF-8?q?handler?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/editor/engine/lua/RobloxShim.js | 16 +++++++++------- 1 file changed, 9 insertions(+), 7 deletions(-) diff --git a/src/editor/engine/lua/RobloxShim.js b/src/editor/engine/lua/RobloxShim.js index 97c498f..d1ba24b 100644 --- a/src/editor/engine/lua/RobloxShim.js +++ b/src/editor/engine/lua/RobloxShim.js @@ -1748,19 +1748,21 @@ export function registerRobloxShim(lua, opts) { debug.sethook(function() coroutine.yield(0.016) end, "", 20000) - -- ВНУТРЕННИЙ pcall: игнорирует runtime errors handler'а - -- ВНЕШНИЙ pcall: ловит yield-across-C-boundary - -- Все возвращаемые значения отбрасываем (не возвращаем из coroutine - -- что-либо, чтобы wasmoon Promise-detection не сработал на null). - pcall(function() pcall(fn, a1, a2, a3, a4) end) - return 1 -- возвращаем НЕ-nil чтобы wasmoon не падал на null.then + __log("warn", "[lua-handler] " .. handlerId .. " starting") + local ok, err = pcall(fn, a1, a2, a3, a4) + if ok then + __log("warn", "[lua-handler] " .. handlerId .. " finished OK") + else + __log("error", "[lua-handler] " .. handlerId .. " ERROR: " .. tostring(err)) + end + return 1 end) __rbxl_register_coroutine(handlerId, co) pcall(coroutine.resume, co) if coroutine.status(co) == 'dead' then __rbxl_unregister_coroutine(handlerId) end - return 1 -- возвращаем НЕ-nil + return 1 end `); // Кешируем ссылку на Lua-функцию запуска handler'а