Сначала речь идет о параметрах функций:
__args[]: список, полученный из всех параметров
__arg[index]: параметр, полученный по указанному индексу
__args-length[]: количество параметров
Затем идут специальные примитивы для специальных функций:
__yield: приостановить выполнение функции
__then,__catch,__finally: привязать обещания (может быть реализовано в расширениях)
__for-of: перебрать значения итератора
__next: вычислить следующее значение итератора
Анонимные функции могут переключаться на разные режимы функций в зависимости от начальной строки выражения и соответствующего поля functionType.
Примеры:
Обычная функция: [-> repeat 3[show 1]report 0]
Генераторная функция: [-> __ignore "generator" repeat 3[yield i]report 0]
Асинхронная функция: [-> __ignore "async" yield user-input "ts" report 0]
Анонимные функции после определения проходят через функцию checked, что позволяет легко реализовать генераторы и асинхронные функции.
Однако, создание приостановки выполнения NL во время выполнения требует расширений.
Вход Перед тем как оставить комментарий