Движок JavaScript
Начиная с версии 0.8.6
поддерживается несколько JS-движков.
Для выбора движка используется директива js_engine
в
http
и
stream.
По умолчанию используется движок njs.
Движок njs
njs — встроенный движок JavaScript, разработанный как часть модуля njs. Подробнее см. в разделе Совместимость.
Движок QuickJS
QuickJS — компактный встроенный движок JavaScript, который поддерживает спецификацию ES2023, включая модули, асинхронные генераторы, прокси и BigInt.
Начиная с 0.8.6 доступна оперативная замена njs/nginx objects для обеспечения совместимости с движком njs, но с некоторыми исключениями:
-
API njs:
njs.dump()
,njs.on()
,console.dump()
. -
устаревшее API:
require()
, вместо необходимо использовать утверждениеimport
. -
директива
js_preload_object
для http и stream.
статус встроенных модулей njs:
-
buffer
: начиная с 0.8.6. -
crypto
: TBD. -
fs
: начиная с 0.8.9. -
querystring
: TBD. -
WebCrypto
: TBD. -
xml
: TBD. -
zlib
: начиная с 0.8.5.
статус встроенных объектов njs:
-
process
: начиная с 0.8.8. -
TextDecoder
: TBD. -
TextEncoder
: TBD.
статус встроенных объектов nginx:
-
ngx.fetch
: TBD. -
shared dictionary
: начиная с 0.8.8.