Чтобы облегчить интеграцию ECMAScript в среду хоста, эта спецификация переносит определение определенных средств (например, абстрактных операций), полностью или частично, на источник за пределами этой спецификации. Редакционно эта спецификация различает следующие виды отсрочек.
Реализация (implementation) — это внешний источник, который дополнительно определяет средства, перечисленные в Приложении D, или те, которые помечены как определяемые реализацией (implementation-defined) или приближенные к реализации (implementation-approximated). В неформальном использовании под реализацией понимается конкретный артефакт, такой как конкретный веб-браузер (web browser).
Определяемое реализацией средство (implementation-defined facility) — это средство, которое откладывает свое определение до внешнего источника без дополнительных уточнений. Эта спецификация не дает никаких рекомендаций для конкретного поведения, и соответствующие реализации могут свободно выбирать любое поведение в рамках ограничений, установленных данной спецификацией.
Средство, приближенное к реализации (implementation-approximated facility) — это средство, которое откладывает свое определение до внешнего источника, рекомендуя при этом идеальное поведение. Хотя соответствующие реализации могут свободно выбирать любое поведение в рамках ограничений, установленных данной спецификацией, им рекомендуется стремиться приблизиться к идеалу. Некоторые математические операции, такие как Math.exp, аппроксимируются реализацией.
Хост (host) — это внешний источник, который дополнительно определяет средства, перечисленные в Приложении D, но не дополнительно определяет другие средства, определяемые реализацией или приближенные к реализации. В неформальном использовании хостом называется набор всех реализаций, таких как набор всех веб-браузеров, которые взаимодействуют с этой спецификацией таким же образом через Приложение D. Хост часто является внешней спецификацией, такой как WHATWG HTML (https : //html.spec.whatwg.org/). Другими словами, средства, определяемые хостом (host-defined), часто дополнительно определяются во внешних спецификациях.
Крюк хоста (host hook) — это абстрактная операция, которая полностью или частично определяется внешним источником. Все крюки хоста должны быть перечислены в Приложении D.
Определяемое хостом средство (host-defined facility) — это средство, определение которого передается внешнему источнику без дополнительной квалификации, и оно перечислено в Приложении D. Реализации, которые не являются хостами, также могут предоставлять определения для определяемых средств хоста.
Среда хоста (host environment) — это частный выбор определения для всех определяемых хостом средств. Среда хоста обычно включает в себя объекты или функции, которые позволяют получать ввод и предоставлять вывод в виде определяемых хостом свойств глобального объекта.
Эта спецификация следует редакционному соглашению о том, что всегда используются наиболее конкретные термины. Например, если средство определяется хостом (host-defined), его не следует называть определяемым реализацией (implementation-defined).
И хосты, и реализации могут взаимодействовать с этой спецификацией через типы языка, типы спецификаций, абстрактные операции, грамматические конструкции, внутренние объекты и внутренние символы, определенные здесь.
Информационные ссылки
Стандарт ECMAScript — Раздел «4 Overview» — https://tc39.es/ecma262/#sec-overview
Стандарт ECMAScript — Раздел «4.2 Hosts and Implementations» — https://tc39.es/ecma262/#sec-hosts-and-implementations