Closures
hookmetamethod
تبحث عن metamethod function على value وتعمل hook لتلك function عبر hookfunction. يمكن أن يكون first argument أي value يقبلها raw metafield lookup. يجب أن يكون second argument عبارة عن string metamethod name، ويجب أن يكون third argument عبارة عن function replacement. إذا لم يجد raw metafield lookup الـ named metafield، ترفع function “Metamethod doesn’t exist” للـ argument 2. إذا كان metafield موجودا لكنه ليس function، ترفع “Metamethod isn’t a function” للـ argument 2. عندما يكون metafield عبارة عن function، تستدعي hookmetamethod hookfunction باستخدام found metamethod function كـ target وتعيد cloned original closure الخاصة بـ hookfunction.
any
مطلوب
Value يتم فحص methods الخاص بها باستخدام raw metafield lookup.
string
مطلوب
Metafield name يتم تمريره إلى raw metafield lookup.
function
مطلوب
Function يتم تمريرها إلى hookfunction كـ replacement للـ found metamethod function.
function
Cloned original metamethod closure تعيدها hookfunction.