Closures
hookmetamethod
value 上の metamethod function を検索し、その function を hookfunction で hook します。first argument は raw metafield lookup が受け付ける任意の value です。second argument は string metamethod name、third argument は function replacement である必要があります。raw metafield lookup が named metafield を見つけられない場合、この function は argument 2 に対して “Metamethod doesn’t exist” を発生させます。metafield が存在しても function でない場合、argument 2 に対して “Metamethod isn’t a function” を発生させます。metafield が function の場合、hookmetamethod は found metamethod function を target として hookfunction を呼び、hookfunction の cloned original closure を返します。