Module:LuaCall: Difference between revisions

From Test Wiki
Content deleted Content added
+call_n()
+call(s, args, ret)
Line 79: Line 79:
end
end
return G
return G
end

function call(s, args, ret)
if ret then
return ({get(s)(unpack(args))})[ret]
end
return get(s)(unpack(args))
end
end


Line 106: Line 113:
--]]
--]]
function p.call(frame)
function p.call(frame)
-- enclosing result in (), so that it will return only 1st element of result
return get(frame.args[1])(
return (get(frame.args[1])(
unpack(pairs2ArrayWithFunc(tonumberOrString, ipairsAtOffset(frame.args, 1)))
unpack(pairs2ArrayWithFunc(tonumberOrString, ipairsAtOffset(frame.args, 1)))
)
))
end
end



--[[
--[[
Line 120: Line 127:
--]]
--]]
function p.call_n(frame)
function p.call_n(frame)
return get(frame.args[1])(
return (get(frame.args[1])(
unpack(pairs2ArrayWithFunc(tonumber, ipairsAtOffset(frame.args, 1)))
unpack(pairs2ArrayWithFunc(tonumber, ipairsAtOffset(frame.args, 1)))
)
))
end
end


Line 134: Line 141:
function p.call_s(frame)
function p.call_s(frame)
-- 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 get(frame.args[1])(
return (get(frame.args[1])(
unpack(pairs2Array(ipairsAtOffset(frame.args, 1)))
unpack(pairs2Array(ipairsAtOffset(frame.args, 1)))
)
))
end
end