Module:LuaCall: Difference between revisions

From Test Wiki
Content deleted Content added
. Undid revision 982949235 by Ans (talk)
re-factoring
Line 50: Line 50:
end
end


local function callWithPairs(f, ...)
local function pairs2Array(...)
local args = {}
local args = {}
for _, v in ... do
for _, v in ... do
table.insert(args, v)
table.insert(args, v)
end
end
return (f(unpack(args)))
return args
end
end


Line 121: Line 121:
-- unpack() not work on metatable
-- unpack() not work on metatable
--return get(frame.args[1])(unpack(frame.args, 2))
--return get(frame.args[1])(unpack(frame.args, 2))
return callWithPairs(get(frame.args[1]),
return get(frame.args[1])(
ipairsAtOffset(frame.args, 1)
unpack(pairs2Array(ipairsAtOffset(frame.args, 1)))
)
)
end
end