Appearance
变更日志
提示
来自deepseek解释
原文链接:https://nginx.org/en/docs/njs/changes.html
njs 0.9.9 版本的变更
发布日期:2026 年 5 月 19 日
nginx 模块:
- 安全:当
js_fetch_proxy指令的值包含源自客户端请求的 nginx 变量($http_*、$arg_*、$cookie_*等),且该 location 的 JS 处理程序调用了ngx.fetch()时,工作进程中可能发生堆缓冲区溢出(CVE-2026-8711)。该问题引入于 dea83189(0.9.4)。 - 特性:新增
js_access指令。 - 特性:新增
r.readRequestText()、r.readRequestArrayBuffer()和r.readRequestJSON()异步方法,用于读取请求体,可在js_access和js_content指令中使用。 - 特性:新增
r.readRequestForm()异步方法,用于解析来自 HTML 表单(application/x-www-form-urlencoded和multipart/form-data)提交的请求体,并返回结构化的访问器对象。该方法可在js_access和js_content指令中使用。 - 特性:新增
jsVarNames()方法,返回通过js_var声明的变量名称。
核心:
njs 0.9.8 版本的变更
发布日期:2026 年 4 月 23 日
nginx 模块:
njs 0.9.7 版本的变更
发布日期:2026 年 4 月 21 日
nginx 模块:
- 特性:改进了共享字典的驱逐策略。
- 特性:为共享字典新增
ttl()方法。 - 错误修复:移除了配置解析期间发出的虚假 njs VM 初始化通知日志。
- 错误修复:修复了从只读路径中移除共享字典过期条目的问题。
- 错误修复:修复了带驱逐功能的共享字典更新时的 double-free 问题。
- 错误修复:修复了调用
incr()时每条目 TTL 重置的问题。
核心:
- 特性:为 WebCrypto 新增 Ed25519 和 X25519 支持。
- 特性:新增
crypto.randomUUID()。 - 特性:允许在标签模板和调用参数中使用
await表达式。 - 改进:将内置 crypto 模块的哈希功能切换到 OpenSSL EVP。
- 错误修复:修复了调用参数的求值问题。
njs 0.9.6 版本的变更
发布日期:2026 年 3 月 3 日
nginx 模块:
- 错误修复:修复了共享字典状态文件中 expire 字段截断的问题。毫秒级时间戳被静默截断为 10 位数字,导致重启后恢复的条目显示为已过期。
- 错误修复:压制了可驱逐共享字典区域的 slab 日志
log_nomem。启用驱逐时,内存分配失败是预期行为,由驱逐旧条目处理。 - 错误修复:修复了 qjs 引擎下
ngx.fetch()异常的堆栈跟踪。
核心:
- 特性:新增可选链(optional chaining)支持。
- 特性:新增空值合并赋值运算符(
??=)。 - 特性:新增逻辑赋值运算符(
||=和&&=)。 - 改进:使
SyntaxError报告与其他 JS 引擎保持一致。此前文件名是错误消息的一部分,现在通过stack属性报告。 - 改进:改进了
Error.stack堆栈跟踪。堆栈跟踪现在附加在错误构造函数中。Error.stack的性能提升了约 100 倍。 - 错误修复:修复了作用域值哈希中字符串偏移映射损坏的问题。该问题导致包含超过 32 个字符的多字节 UTF-8 字符串常量在访问索引 >= 32 的字符时(例如通过
.replace()或括号表示法)发生 SEGV/SIGBUS 崩溃。该问题引入于 e7caa46d(0.9.5)。 - 错误修复:修复了由
Symbol()引起的原子哈希堆缓冲区溢出。 - 错误修复:修复了 WebCrypto
importKey()在 JWK 密钥类型不匹配时的崩溃问题。 - 错误修复:修复了管道标准输入的交互模式检测。
- 错误修复:修复了 MacOS 上的构建问题。
- 错误修复:修复了与新版 BFD 库的
PTR宏兼容性问题。 - 错误修复:
auto/cc:使用可移植的command -v代替which。感谢 Zurab Kvachadze。
njs 0.9.5 版本的变更
发布日期:2026 年 1 月 13 日
nginx 模块:
- 特性:为 qjs 引擎新增对 http 和 stream 的原生模块支持。
- 错误修复:修复了 qjs 引擎下
js_body_filter处理多个数据块的问题。 - 错误修复:修复了
js_body_filter在if块中的buffer_type继承问题。此前,当js_body_filter在if块内使用时,data参数接收的是Buffer类型,而不是预期的String类型。 - 错误修复:修复了数据不在内存中时
js_body_filter的问题。此前,当上游数据来自 nginx 缓存时,js_body_filter无法正确处理。 - 错误修复:改进了
r.subrequest()的错误处理。修复了当 njs 处理程序从 Lua 处理程序作为子请求调用时,丢失写事件的问题。
核心:
- 错误修复:修复了
XMLAttr对象的问题。当父级XMLNode被修改时,xmlAttr指针可能失效。 - 错误修复:修复了
XMLNode更新问题。 - 错误修复:修复了带分离缓冲区的
ArrayBuffer问题。 - 错误修复:添加了缺失的分离数组检查。
- 错误修复:修复了
fs.mkdir()及相关函数的问题。 - 错误修复:修复了
fs.mkdir()及相关函数在错误时的路径恢复问题。 - 错误修复:修复了 promise 代码中缺失的内存分配检查。
njs 0.9.4 版本的变更
发布日期:2025 年 10 月 28 日
nginx 模块:
- 特性:为
ngx.fetch()API 新增 HTTP 正向代理支持。
核心:
- 错误修复:修复了 QuickJS 下
r.subrequest()到带有 JS 处理程序的 location 的问题。该问题在 bellard/quickjs@42eb2795 之后变得可见。
njs 0.9.3 版本的变更
发布日期:2025 年 10 月 7 日
nginx 模块:
- 错误修复:修复了模块加载时的堆-use-after-free 问题。
- 错误修复:修复了日志阶段使用的
js_set处理程序中的堆-use-after-free 问题。该问题引入于 04f6dfb(0.9.2)。
njs 0.9.2 版本的变更
发布日期:2025 年 9 月 23 日
nginx 模块:
- 特性:为
ngx.fetch()API 新增 HTTP keepalive 支持。 - 改进:当未为 http 或 stream 指定
js_import指令时,添加了配置时检查。 - 错误修复:修复了 http 和 stream 中
js_path指令的合并问题。 - 错误修复:修复了当
ngx_http_ssl_module和ngx_stream_ssl_module模块不可用时的构建问题。
核心:
- 变更:将 njs VM 的默认堆栈大小增加到 160k。
- 特性:为 qjs 引擎新增
njs.on(‘exit’)API。 - 改进:优化了 qjs 中流式处理时的内存消耗。
- 错误修复:修复了使用 clang 19 构建 qjs 引擎的问题。
- 错误修复:修复了使用 GCC 15 和 O3 优化级别时的构建问题。
njs 0.9.1 版本的变更
发布日期:2025 年 7 月 10 日
nginx 模块:
- 特性:为 QuickJS 引擎新增 Fetch API。
- 特性:为共享字典新增状态文件。
- 错误修复:修复了在 Fetch API 中提供 body 时
Content-Length头的处理问题。 - 错误修复:修复了 bellard/quickjs@458c34d2 之后的 qjs 引擎问题。
- 错误修复:修复了处理
If-Match和If-Unmodified-Since头时的空指针解引用问题。
核心:
- 特性:为 WebCrypto 新增 ECDH 支持。
- 改进:减少了对象哈希的内存消耗。新哈希每个元素内存消耗减少 42%。
- 改进:减少了数字和字符串拼接的内存消耗。
- 改进:减少了带标量值的
String.prototype.concat()的内存消耗。 - 错误修复:修复了
njs_property_query()中的段错误。该问题引入于 b28e50b1(0.9.0)。 - 错误修复:修复了
Function构造函数的模板注入问题。 - 错误修复:修复了 GCC 在 O3 优化级别下的编译问题。
- 错误修复:修复了 MIPS
-mabi=n32上常量过大的long警告。 - 错误修复:修复了 GCC 4.1 的编译问题。
- 错误修复:修复了当缓冲区被 mapper 分离时
%TypedArray%.from()的问题。 - 错误修复:修复了带重叠缓冲区的
%TypedArray%.prototype.slice()的问题。 - 错误修复:修复了 typed array 对分离缓冲区的处理。
- 错误修复:修复了带闭包的异步函数的帧保存问题。
- 错误修复:修复了包含转义
[字符的正则表达式编译问题。
njs 0.9.0 版本的变更
发布日期:2025 年 5 月 6 日
核心:
- 特性:重构了内置字符串、符号和小整数的处理。性能提升(arewefastyet/benchmarks/v8-v7 基准测试):
- Richards:+57%(631 → 989)
- Crypto:+7%(1445 → 1551)
- RayTrace:+37%(562 → 772)
- NavierStokes:+20%(2062 → 2465)
- 总分:+29%(1014 → 1307)
- 错误修复:修复了
RegExp.prototype[Symbol.split]()中捕获组为undefined值的处理问题。 - 错误修复:修复了 GCC 15 的
-Wunterminated-string-initialization构建错误。
njs 0.8.10 版本的变更
发布日期:2025 年 4 月 8 日
nginx 模块:
- 特性:支持从临时文件读取
r.requestText或r.requestBuffer。此前,如果客户端请求体大小超过client_body_buffer_size,访问r.requestText或r.requestBuffer时会抛出异常。 - 改进:改进了未处理的 promise 拒绝的报告。
- 错误修复:修复了变量和头处理中的名称损坏问题。
- 错误修复:修复了 QuickJS 引擎下共享字典的
incr()方法在init参数为空时的问题。 - 错误修复:在 Fetch API 中接受带有下划线字符的响应头。
核心:
- 变更:修复了
serializeToString()。此前,serializeToString()实际上是exclusiveC14n(),返回的是字符串而非Buffer。根据已发布的文档,它应该是c14n()。 - 特性:为 QuickJS 引擎新增 WebCrypto API。
- 特性:为 QuickJS 引擎新增
querystring模块。 - 特性:为 QuickJS 引擎新增
crypto模块。 - 特性:为 QuickJS 引擎新增
xml模块。 - 特性:新增对 QuickJS-NG 库的支持。
- 错误修复:修复了 QuickJS 中
Buffer.concat()带单个参数的问题。 - 错误修复:添加了模板字面量中
await缺失的语法错误。 - 错误修复:修复了 QuickJS 引擎异常中非 NULL 终止字符串的格式化问题。
- 错误修复:修复了与 QuickJS 和 QuickJS-NG 最近变更的兼容性问题。
njs 0.8.9 版本的变更
发布日期:2025 年 1 月 14 日
nginx 模块:
- 错误修复:移除了每个 server 多余的 VM 创建。此前,当在 http 或 stream 块中声明
js_import时,会为每个 server 块创建额外的 VM 实例副本。这是不必要的,并且在包含大量 server 块的配置中消耗了大量内存。该问题引入于 0.8.6,并在 0.8.7 中仅对 location 块进行了部分修复。
核心:
njs 0.8.8 版本的变更
发布日期:2024 年 12 月 10 日
nginx 模块:
- 特性:为 QuickJS 引擎实现了共享字典。
- 改进:重构了
js_preload_object。 - 错误修复:修复了限制速率输出问题。
- 错误修复:优化了
js_fetch_trusted_certificate指令对 SSL 上下文的使用。
核心:
- 特性:为 QuickJS 引擎实现了
process对象。 - 特性:实现了
process.kill()方法。 - 错误修复:修复了与 libxml2 2.13 及更高版本的 XML 测试问题。
- 错误修复:修复了当
Promise被继承时的 promise 解析问题。 - 错误修复:修复了克隆 VM 中的绝对作用域问题。
njs 0.8.7 版本的变更
发布日期:2024 年 10 月 22 日
nginx 模块:
- 错误修复:消除了不必要的 VM 创建。此前,njs 消耗的内存与 nginx location 数量成正比。该问题引入于 0.8.6。
- 改进:为
js_body_filter添加了严格的语法验证。 - 改进:改进了模块加载失败时的错误消息。
核心:
- 特性:实现了
fs.readlinkSync()。 - 改进:实现了延迟堆栈符号化。
- 错误修复:修复了
Buffer.prototype.indexOf()中的堆缓冲区溢出。该问题引入于 0.8.6。 - 错误修复:修复了当提供
from参数时Buffer.prototype.lastIndexOf()的问题。
njs 0.8.6 版本的变更
发布日期:2024 年 10 月 2 日
nginx 模块:
- 特性:引入了 QuickJS 引擎。
- 特性:为 http 和 stream 的
js_set指令添加了可选的nocache标志。感谢 Thomas P. - 特性:在 HTTP 模块中暴露了捕获组变量。感谢 Thomas P.
核心:
- 特性:为 QuickJS 引擎添加了
Buffer模块。 - 错误修复:修复了函数中空标签语句的处理问题。
- 错误修复:修复了不带参数调用
Function构造函数的处理问题。 - 错误修复:修复了
Buffer.prototype.writeInt8()及相关函数。 - 错误修复:修复了
Buffer.prototype.writeFloat()及相关函数。 - 错误修复:修复了
Buffer.prototype.lastIndexOf()。 - 错误修复:修复了
Buffer.prototype.write()。 - 错误修复:修复了错误创建中可能未初始化的警告。
- 错误修复:修复了 UTF-8 解码中
ctx.codepoint的初始化问题。 - 错误修复:修复了
Array.prototype.pop()中长度的初始化问题。 - 错误修复:修复了
fs.readdir()和fs.realpath()中encode参数的处理问题。
njs 0.8.5 版本的变更
发布日期:2024 年 6 月 25 日
nginx 模块:
- 变更:UTF-8 编码中的无效字节现在转换为替换字符。处理二进制数据时,请使用:上游或下游事件类型用于
s.on(),以及js_body_filter的buffer_type=buffer。 - 特性:为共享字典的
add()、set()和incr()方法新增了超时参数。 - 错误修复:修复了重复
js_set变量的检查问题。 - 错误修复:修复了端口非标准时请求
Host头的问题。 - 错误修复:修复了
ngx.fetch()和r.subrequest()中零长度请求体的处理问题。 - 错误修复:修复了
Headers.get()中的堆缓冲区溢出。 - 错误修复:修复了
r.subrequest()的错误处理。
核心:
- 特性:为 QuickJS 引擎新增了
zlib模块。 - 错误修复:修复了
zlib.inflate()。 - 错误修复:修复了带零长度参数的
String.prototype.replaceAll()。 - 错误修复:修复了
Array.prototype.toSpliced()、Array.prototype.toReversed()、Array.prototype.toSorted()中异常后的返回值处理。 - 错误修复:修复了包含
$‘、$`` 和 Unicode 字符的替换字符串的RegExp.prototype@@replace`。 - 错误修复:修复了
decodeURI()和decodeURIComponent()中的一字节越界读取。 - 错误修复:修复了参数作用域的跟踪问题。
- 错误修复:修复了
Date.parse()中的整数溢出问题。
njs 0.8.4 版本的变更
发布日期:2024 年 4 月 16 日
nginx 模块:
- 特性:可以设置出站头的
Server头。 - 改进:在
r.subrequest()中验证 URI 和 args 参数。 - 改进:检查重复的
js_set变量。 - 错误修复:修复了 0.8.3 中引入的共享字典
clear()方法在未设置超时时的问��。 - 错误修复:修复了带
Buffer参数的共享字典r.send()方法。
核心:
- 特性:在 CLI 中添加了 QuickJS 引擎支持。
- 错误修复:修复了带非填充 base64 字符串的
atob()。
njs 0.8.3 版本的变更
发布日期:2024 年 2 月 7 日
nginx 模块:
- 错误修复:修复了
Headers.set()。 - 错误修复:修复了带
Buffer值的js_set。 - 错误修复:修复了未指定超时时共享字典
clear()方法的问题。 - 错误修复:修复了启用
js_periodic时的stub_status统计信息。
核心:
- 错误修复:修复了与 libxml2 2.12 及更高版本的构建问题。
- 错误修复:修复了溢出和 NaN 值的
Date构造函数。 - 错误修复:修复了
querystring.parse()中的下溢问题。 - 错误修复:修复了
String.prototype.match()中潜在的缓冲区越界读取。 - 错误修复:修复了
for-in循环的解析问题。 - 错误修复:修复了无数字的十六进制、八进制和二进制字面量的解析问题。
njs 0.8.2 版本的变更
发布日期:2023 年 10 月 24 日
nginx 模块:
- 特性:引入了
console对象。新增了以下方法:error()、info()、log()、time()、timeEnd()、warn()。 - 错误修复:修复了 Fetch API 中带大
Content-Length的 HEAD 响应处理。 - 错误修复:修复了共享字典的
items()方法。 - 错误修复:修复了共享字典的
delete()方法。
核心:
- 特性:扩展了
fs模块。新增了fs.existsSync()。 - 错误修复:修复了
xml模块。修复了xml.parse()方法中 XML 异常处理损坏的问题。 - 错误修复:修复了带全局正则表达式和 Unicode 输入的
Regexp.prototype.exec()。
njs 0.8.1 版本的变更
发布日期:2023 年 9 月 12 日
nginx 模块:
- 特性:为 http 和 stream 引入了
js_periodic指令,允许指定按固定时间间隔运行的 JS 处理程序。 - 特性:实现了共享字典的
items()方法。该方法返回所有未过期的键值对。 - 错误修复:修复了共享字典的
size()和keys()方法。 - 错误修复:修复了 0.8.0 中引入的
r.internalRedirect()错误异常问题。
核心:
- 错误修复:修复了
Object.getOwnPropertyNames()中键的顺序不正确的问题。
njs 0.8.0 版本的变更
发布日期:2023 年 7 月 6 日
nginx 模块:
- 变更:移除了 0.7.10 中引入的 Fetch API 中对禁止头的特殊处理。
- 变更:在 http 模块的过滤过程中,
r.internalRedirect()现在抛出异常。 - 特性:引入了更多全局
nginx属性:ngx.build、ngx.conf_file_path、ngx.error_log_path、ngx.prefix、ngx.version、ngx.version_number和ngx.worker_id。 - 特性:为 http 和 stream 引入了
js_shared_dict_zone指令,允许声明在工作进程间共享的字典。 - 特性:引入了用于操作共享字典的全局
nginx.shared方法和属性。 - 改进:添加了编译时选项以禁用 njs 模块。例如,禁用 libxslt 相关代码:
NJS_LIBXSLT=NO ./configure .. --add-module=/path/to/njs/module - 错误修复:修复了在 http 模块过滤时
r.status设置器的问题。 - 错误修复:修复了在 http 模块中设置
Location头的问题。
核心:
- 变更:原生方法现在提供
retval参数。此变更破坏了与 njs C 扩展的兼容性,需要修改代码。 - 变更:移除了不符合规范的已弃用
String方法。移除的方法包括:String.bytesFrom()、String.prototype.fromBytes()、String.prototype.fromUTF8()、String.prototype.toBytes()、String.prototype.toUTF8()、String.prototype.toString(encoding)。 - 变更:移除了对 GNU readline 构建的支持。
- 特性:新增了符合 ES13 的
Array方法:Array.from()、Array.prototype.toSorted()、Array.prototype.toSpliced()、Array.prototype.toReversed()。 - 特性:新增了符合 ES13 的
TypedArray方法:%TypedArray%.prototype.toSorted()、%TypedArray%.prototype.toSpliced()、%TypedArray%.prototype.toReversed()。 - 错误修复:修复了
crypto.getRandomValues()的返回值。 - 错误修复:修复了带函数表达式的计算属性名的求值问题。
- 错误修复:修复了数组中声明的函数表达式的隐式名称问题。
- 错误修复:修复了
for-in循环的解析问题。 - 错误修复:修复了带 ISO-8601 格式和 UTC 时区偏移的
Date.parse()。
njs 0.7.12 版本的变更
发布日期:2023 年 4 月 10 日
nginx 模块:
- 错误修复:修复了 Fetch API 中的
Headers()构造函数。
核心:
- 特性:在 crypto 模块中添加了
Hash.copy()方法。 - 特性:新增了
zlib模块。 - 改进:添加了对
export {name as default}语句的支持。 - 错误修复:修复了符合规范的
Number构造函数。
njs 0.7.11 版本的变更
发布日期:2023 年 3 月 9 日
nginx 模块:
核心:
- 特性:新增了用于修改 XML 文档的 XMLNode API。
- 变更:由于安全影响,移除了 XML 文档解析期间的
XML_PARSE_DTDVALID。该问题引入于 0.7.10。当启用XML_PARSE_DTDVALID时,libxml2 会解析并执行 XML 文档中存在的外部实体。 - 错误修复:修复了参数中
await的检测问题。 - 错误修复:修复了当 “name” 属性不是原始类型时
Error()实例的转储问题。 - 错误修复:修复了带 getter 属性的数组实例的转储问题。
- 错误修复:修复了带
NJS_WHITEOUT属性的njs_object_property()。 - 错误修复:修复了带 “name” 作为 getter 的函数实例转储问题。
- 错误修复:修复了将堆栈附加到错误对象的问题。
- 错误修复:修复了包含 “$‘” 和 “$
” 替换内容的String.prototype.replace()`。
njs 0.7.10 版本的变更
发布日期:2023 年 2 月 7 日
nginx 模块:
- 错误修复:修复了主进程中调用的 nginx 日志回调函数。
核心:
- 特性:在 CLI 中添加了信号支持。
- 特性:新增了用于处理 XML 文档的
xml模块。 - 特性:扩展了对 WebCrypto 中对称和非对称密钥的支持。最值得注意的是,为
importKey()添加了 JWK 格式。 - 特性:扩展了对 WebCrypto API 中对称和非对称密钥的支持。最值得注意的是,添加了
importKey()的 JWK 格式。同时还实现了generateKey()和exportKey()。 - 特性:新增了
String.prototype.replaceAll()。 - 错误修复:修复了
for(expr1;条件语法错误处理。 - 错误修复:修复了外部对象的
Object.values()和Object.entries()。 - 错误修复:修复了
RegExp.prototype[@@replace]()。
njs 0.7.9 版本的变更
发布日期:2022 年 11 月 17 日
nginx 模块:
- 错误修复:修复了 Fetch
Response原型重新初始化的问题。当在 HTTP 和 Stream 中都声明了至少一个js_import指令时,ngx.fetch()在 Stream 中返回了不适当的响应。该问题引入于 0.7.7。
核心:
- 错误修复:如果
re.exec()返回非扁平数组,修复了String.prototype.replace(re)。 - 错误修复:当起始对象改变
this时,修复了Array.prototype.fill()。 - 错误修复:修复了
fs.mkdir()和fs.rmdir()方法的描述。 - 错误修复:当
s元素改变this时,修复了%TypedArray%.prototype.set(s)。 - 错误修复:当
d在求值期间调整this大小时,修复了Array.prototype.splice(s,d)。 - 错误修复:修复了带左右表达式的
for-in循环。
njs 0.7.8 版本的变更
发布日期:2022 年 10 月 25 日
nginx 模块:
- 特性:新增了
js_preload_object指令。 - 特性:新增了
ngx.conf_prefix属性。 - 特性:在 stream 模块中新增了
s.sendUpstream()和s.sendDownstream()。 - 特性:在 Fetch API 中新增了对
HEAD方法的支持。 - 改进:改进了 stream 模块中
s.send()的异步回调支持。
核心:
- 特性:为函数对象新增了
name实例属性。 - 特性:新增了
njs.memoryStats对象。 - 错误修复:修复了带 Unicode 字符串的
String.prototype.trimEnd()。 - 错误修复:修复了带快速数组的
Object.freeze()。 - 错误修复:修复了带快速数组的
Object.defineProperty()。 - 错误修复:修复了作为对象属性名称的异步令牌。
- 错误修复:修复了当键修改基础绑定时属性设置指令的问题。
- 错误修复:修复了复杂赋值问题。
- 错误修复:修复了未处理的 promise 拒绝的处理。
- 错误修复:修复了存在重复环境变量时的
process.env。 - 错误修复:修复了模块中的双重声明检测。
- 错误修复:修复了符合规范的绑定函数调用。
- 错误修复:修复了
if语句的break标签。 - 错误修复:修复了带标签的空语句。
njs 0.7.7 版本的变更
发布日期:2022 年 8 月 30 日
nginx 模块:
- 特性:扩展了可以指定 js 指令的 nginx 配置上下文数量。
- 特性:新增了
r.internal属性。 - 错误修复:修复了 Fetch API 中响应体的读取问题。
- 错误修复:修复了 stream 中的
js_fetch_timeout。 - 错误修复:修复了 fetch 超时为 0 时的 socket 泄漏问题。
核心:
- 实现了
FileHandle的以下属性:fd、read()、stat()、write()、close()。 - 错误修复:修复了不带参数的
parseInt()、parseFloat()、Symbol.for()。
njs 0.7.6 版本的变更
发布日期:2022 年 7 月 19 日
nginx 模块:
- 特性:改进了
r.args{}对象。添加了对相同键多个参数的支持。添加了键的大小写敏感性。键和值现在进行百分号解码。 - 错误修复:修复了特殊头的
r.headersOut{}设置器。
核心:
- 特性:新增了
Symbol.for()和Symbol.keyfor()。 - 错误修复:修复了大非十进制字面量。
- 错误修复:修复了
parseInt()中的 Unicode 参数修剪。 - 错误修复:修复了
try-catch块中的break指令。 - 错误修复:修复了 CLI 中的异步函数声明。
njs 0.7.5 版本的变更
发布日期:2022 年 6 月 21 日
nginx 模块:
- 变更:适应 nginx 头结构的变化。
- 错误修复:修复了当值不存在时
r.headersOut{}特殊 getter 的问题。 - 变更:当头不存在时,返回
undefined值而不是空字符串作为Content-Type。
核心:
- 错误修复:修复了从
await函数抛出异常的捕获问题。 - 错误修复:修复了函数值的初始化问题。
- 错误修复:修复了
await失败时的解释器问题。 - 错误修复:修复了源数组在迭代过程中改变时的 typed-array 构造函数。
- 错误修复:修复了带字节字符串的
String.prototype.replace()。 - 错误修复:修复了模板字面量生成字节字符串的问题。
- 错误修复:修复了带稀疏数组的数组迭代器。
- 错误修复:修复了将扁平数组转换为慢数组时的内存释放问题。
- 错误修复:正确处理 promise 原生函数中的
NJS_DECLINE。 - 错误修复:修复了
Promise.all()及相关函数中类数组对象的处理。
njs 0.7.4 版本的变更
发布日期:2022 年 5 月 24 日
nginx 模块:
- 特性:新增了用于配置 Fetch API 的扩展指令。为 http 和 stream 添加了以下指令:
- 变更:
r.internalRedirect()现在接受转义后的 URI。 - 错误修复:修复了 Fetch API 中超过 8 个头的
Response解析问题。
核心:
- 特性:新增了
njs.version_number属性。 - 特性:为 WebCrypto API 添加了与 BoringSSL 的兼容性。
- 错误修复:修复了当比较器中数组大小改变时的
Array.prototype.sort()。 - 错误修复:修复了带慢
this参数的Array.prototype.slice()。 - 错误修复:修复了
Promise构造函数的聚合方法。