Ограничения в использовании некоторых функций

Следующие функции имеют особенности реализации, которые накладывают определённые ограничения на их использование в макросах:

  1. Если макрос создаёт корутины с помощью coroutine.wrap(f), то вышеперечисленные функции не будут работать, будучи вызванными из тела функции f.

    Данного ограничения нет, если корутины создаются с помощью coroutine.create(f).

  2. Вышеперечисленные функции, будучи вызванными прямо или косвенно посредством функции pcall, приведут к немедленному возврату pcall с результатом false.

    Данного ограничения нет при использовании LuaJIT 2.x.

  3. Вышеперечисленные функции работают только, будучи вызванными из тела макроса (обычно это функция action).

    Это значит, что данные функции не будут работать, будучи вызванными из:

Ограничения пункта 3 не имеют места, если вышеперечисленные функции вызываются не напрямую, а посредством mf.postmacro или far.MacroPost.