Софт LuaJIT Decompiler v2

Tema05

Известный
1,429
396
Нашёл баг. Декомпилятор почему-то с ошибкой декомпилирует определённый код. Пытался, но не смог нормально сформулировать причину) Думаю из примеров ясно. Это единственный барьер к запускаемому коду после декомпиляции. Но можно легко поправить вручную
Lua:
--исходник
function foo1()
    local data = "text"
    data = data:match("(.+)") or data:match("(.+)")
    return data
end

function foo2()
    local data = 0
    data = F(data) or F(data)
    return data
end

function foo3()
    local data = 0
    data = data:F() or data:F()
    return data
end

function foo4()
    local data = 0
    data = data or data:F()
    return data
end

function foo5()
    local data = 0
    data = data:F() or data
    return data
end

function foo6()
    local data = 0
    data = data or data
    return data
end

function foo7()
    local data = 0
    data = F(data) or F(data)
end
Lua:
--компиляция и декомпиляция
function foo1()
    local var_1_0 = ("text"):match("(.+)") or :match("(.+)")

    return var_1_0
end

function foo2()
    local var_2_0 = 0
    local var_2_1 = F(var_2_0) or F()

    return var_2_1
end

function foo3()
    return (0):F() or :F()
end

function foo4()
    local var_4_0 = 0 or :F()

    return var_4_0
end

function foo5()
    local var_5_0 = 0

    var_5_0 = var_5_0:F() or var_5_0

    return var_5_0
end

function foo6()
    local var_6_0 = 0

    if not var_6_0 then
        -- block empty
    end

    return var_6_0
end

function foo7()
    local var_7_0 = 0

    var_7_0 = F(var_7_0) or F(var_7_0)
end
есть предположение, что это проблема на уровне байткода самого луа а не ошибка декомпилятора. Может кто-то знает почему так происходит
 

paulohardy

вы еще постите говно? тогда я иду к вам
Всефорумный модератор
1,891
1,254
Последнее редактирование:

Tema05

Известный
1,429
396
Последнее редактирование:

stach

Известный
611
229
дайте аргументы чтоб в кириллицу декомпилил нормально