变更
njs 0.8.7 的变更
发布日期:2024 年 10 月 22 日
nginx 模块
-
Bug 修复:消除了不必要的 VM 创建。之前,njs 消耗的内存与 nginx location 的数量成正比。此问题是在 0.8.6 中引入的。
-
改进:为 js_body_filter 添加了严格的语法验证。
-
改进:改进了模块加载失败时的错误消息。
核心
-
功能:实现了
fs.readlinkSync()
。 -
改进:实现了延迟栈符号化。
-
Bug 修复:修复了
Buffer.prototype.indexOf()
中的堆缓冲区溢出。此问题是在 0.8.6 中引入的。 -
Bug 修复:修复了提供 `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
模块。 -
Bug 修复:修复了函数中处理空标签语句的问题。
-
Bug 修复:修复了在不带参数的情况下调用
Function
构造函数时的处理问题。 -
Bug 修复:修复了
Buffer.prototype.writeInt8()
及其相关函数。 -
Bug 修复:修复了
Buffer.prototype.writeFloat()
及其相关函数。 -
Bug 修复:修复了
Buffer.prototype.lastIndexOf()
。 -
Bug 修复:修复了
Buffer.prototype.write()
。 -
Bug 修复:修复了错误创建中的可能未初始化警告。
-
Bug 修复:修复了 UTF-8 解码中
ctx.codepoint
的初始化。 -
Bug 修复:修复了
Array.prototype.pop()
中length
的初始化。 -
Bug 修复:修复了
fs.readdir()
和fs.realpath()
中encode
参数的处理。
njs 0.8.5 的变更
发布日期:2024 年 6 月 25 日
nginx 模块
-
变更:在
-
r.variables.var
、r.requestText
、r.responseText
、s.variables.var
、 -
带有
upload
或download
事件类型的s.on()
回调的data
参数、 -
js_body_filter
指令的data
参数中,将 UTF-8 编码中无效的字节转换为替换字符。
处理二进制数据时,请使用
-
r.rawVariables.var
、r.requestBuffer
、r.responseBuffer
、s.rawVariables.var
、 -
s.on()
的upstream
或downstream
事件类型、 -
js_body_filter
的buffer_type
=buffer
。
-
-
Bug 修复:修复了检查重复
js_set
变量的问题。 -
Bug 修复:修复了端口非标准时请求的
Host
标头。 -
Bug 修复:修复了
ngx.fetch()
和r.subrequest()
中处理零长度请求体的问题。 -
Bug 修复:修复了
Headers.get()
中的堆缓冲区溢出。 -
Bug 修复:修复了
r.subrequest()
错误处理。
核心
-
功能:为
QuickJS
引擎添加了zlib
模块。 -
Bug 修复:修复了
zlib.inflate()
。 -
Bug 修复:修复了使用零长度参数的
String.prototype.replaceAll()
。 -
Bug 修复:修复了
Array.prototype.toSpliced()
、Array.prototype.toReversed()
、Array.prototype.toSorted()
中异常后的retval
处理。 -
Bug 修复:修复了
RegExp.prototype[@@replace]()
,其中替换包含$'
、$`
和包含 Unicode 字符的字符串。 -
Bug 修复:修复了
decodeURI()
和decodeURIComponent()
中的一字节过读。 -
Bug 修复:修复了参数作用域的跟踪。
-
Bug 修复:修复了
Date.parse()
中的整数溢出。
njs 0.8.4 的变更
发布日期:2024 年 4 月 16 日
nginx 模块
-
功能:可以设置传出标头的
Server
标头。 -
改进:验证
r.subrequest()
中的 URI 和 args 参数。 -
改进:检查重复的 js_set 变量。
-
Bug 修复:修复了不带超时时间且带有
Buffer
参数的共享字典的r.send()
方法。
核心
-
功能:在 CLI 中添加了
QuickJS
引擎支持。 -
Bug 修复:修复了使用非填充
base64
字符串的atob()
。
njs 0.8.3 的变更
发布日期:2024 年 2 月 7 日
nginx 模块
-
Bug 修复:修复了
Headers.set()
。 -
Bug 修复:修复了使用
Buffer
值的 js_set。 -
Bug 修复:修复了未指定超时时间时共享字典的
clear()
方法。 -
Bug 修复:修复了启用 js_periodic 时 stub_status 统计信息。
核心
-
Bug 修复:修复了使用 libxml2 2.12 及更高版本进行构建的问题。
-
Bug 修复:修复了
Date
构造函数的溢出和NaN
值问题。 -
Bug 修复:修复了
querystring.parse()
中的下溢。 -
Bug 修复:修复了
String.prototype.match()
中潜在的缓冲区过读。 -
Bug 修复:修复了
for-in
循环的解析。 -
Bug 修复:修复了没有数字的十六进制、八进制和二进制字面量的解析。
njs 0.8.2 的变更
发布日期:2023 年 10 月 24 日
nginx 模块
-
功能:引入了 console 对象。引入了以下方法:
error()
、info()
、log()
、time()
、timeEnd()
、warn()
。 -
Bug 修复:修复了 Fetch API 中
HEAD
响应处理中 Content-Length 过大的问题。 -
Bug 修复:修复了共享字典的
items()
方法。 -
Bug 修复:修复了共享字典的
delete()
方法。
核心
-
功能:扩展了
fs
模块。添加了fs.existsSync()
。 -
Bug 修复:修复了
xml
模块。修复了xml.parse()
方法中损坏的 XML 异常处理。 -
Bug 修复:修复了使用全局正则表达式和 Unicode 输入的
Regexp.prototype.exec()
。
njs 0.8.1 的变更
发布日期:2023 年 9 月 12 日
nginx 模块
-
Bug 修复:修复了 0.8.0 中引入的
r.internalRedirect()
中的错误异常。
核心
-
Bug 修复:修复了
Object.getOwnPropertyNames()
中键的错误顺序。
njs 0.8.0 的变更
发布日期:2023 年 7 月 6 日
nginx 模块
-
变更:删除了自 0.5.0 起弃用的
r.requestBody
和r.responseBody
(在http
模块中)。 -
变更:在
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
-
Bug 修复:修复了在
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()
。 -
特性:在 WebCrypto API 中添加了
CryptoKey
属性。添加了以下属性:algorithm
、extractable
、type
、usages
。 -
Bug 修复:修复了
сrypto.getRandomValues()
的retval
。 -
Bug 修复:修复了使用函数表达式计算属性名的评估。
-
Bug 修复:修复了在数组中声明的函数表达式的隐式名称。
-
Bug 修复:修复了
for-in
循环的解析。 -
Bug 修复:修复了
Date.parse()
处理 ISO-8601 格式和 UTC 时间偏移的问题。
njs 0.7.12 的更改
发布日期:2023 年 4 月 10 日
nginx 模块
-
Bug 修复:修复了 Fetch API 中
Headers()
构造函数。
核心
-
特性:在 crypto 模块中添加了
Hash.copy()
方法。 -
特性:添加了 zlib 模块。
-
改进:添加了对
export {name as default}
语句的支持。 -
Bug 修复:根据规范修复了
Number
构造函数。
njs 0.7.11 的更改
发布日期:2023 年 3 月 9 日
nginx 模块
核心
-
特性:添加了 XMLNode API 用于修改 XML 文档。
-
更改:由于安全隐患,在解析 XML 文档期间删除了
XML_PARSE_DTDVALID
。此问题是在 0.7.10 中引入的。启用XML_PARSE_DTDVALID
时,libxml2 会解析并执行 XML 文档中存在的外部实体。 -
Bug 修复:修复了对参数中
await
的检测。 -
Bug 修复:修复了当“
name
”属性不是基本类型时Error()
实例的转储。 -
Bug 修复:修复了具有
getter
属性的数组实例的转储。 -
Bug 修复:修复了
njs_object_property()
处理NJS_WHITEOUT
属性的问题。 -
Bug 修复:修复了当“
name
”为 getter 时func
实例的转储。 -
Bug 修复:修复了将堆栈附加到错误对象的问题。
-
Bug 修复:修复了
String.prototype.replace()
处理替换字符串中包含“$'
”、“$`
”的问题。
njs 0.7.10 的更改
发布日期:2023 年 2 月 7 日
nginx 模块
核心
-
特性:在 CLI 中添加了信号支持。
-
特性:添加了
xml
模块用于处理 XML 文档。 -
特性:扩展了对 WebCrypto 中对称和非对称密钥的支持。最值得注意的是,添加了
importKey()
的JWK
格式。 -
特性:扩展了对 WebCrypto API 中对称和非对称密钥的支持。最值得注意的是,添加了
importKey()
的JWK
格式。还实现了generateKey()
和exportKey()
。 -
特性:添加了
String.prototype.replaceAll()
。 -
Bug 修复:修复了
for(expr1;
条件语法错误的处理。 -
Bug 修复:修复了
Object.values()
和Object.entries()
处理外部对象的问题。 -
Bug 修复:修复了
RegExp.prototype[@@replace]()
。
njs 0.7.9 的更改
发布日期:2022 年 11 月 17 日
nginx 模块
-
Bug 修复:修复了
Fetch
Response 原型的重新初始化。当在 HTTP 和 Stream 中都声明了至少一个js_import
指令时,ngx.fetch()
在 Stream 中返回了不正确的响应。此错误是在 0.7.7 中引入的。
核心
-
Bug 修复:修复了如果
re.exec()
返回非扁平数组,则String.prototype.replace(re)
的问题。 -
Bug 修复:修复了当
start
对象更改this
时Array.prototype.fill()
的问题。 -
Bug 修复:修复了
fs.mkdir()
和fs.rmdir()
方法的描述。 -
Bug 修复:修复了当
s
元素更改this
时%TypedArray%.prototype.set(s)
的问题。 -
Bug 修复:修复了当
d
在 eval 期间调整this
大小时Array.prototype.splice(s,d)
的问题。 -
Bug 修复:修复了带有左右表达式
for-in
循环的问题。
njs 0.7.8 的更改
发布日期:2022 年 10 月 25 日
nginx 模块
-
特性:添加了 js_preload_object 指令。
-
特性:添加了
ngx.conf_prefix
属性。
-
特性:在 stream 模块中添加了
s.sendUpstream()
和s.sendDownstream()
。 -
特性:在 Fetch API 中添加了对
HEAD
方法的支持。
核心
-
特性:为函数对象添加了
name
实例属性。 -
特性:添加了
njs.memoryStats
对象。 -
Bug 修复:修复了
String.prototype.trimEnd()
处理 Unicode 字符串的问题。 -
Bug 修复:修复了
Object.freeze()
处理快速数组的问题。 -
Bug 修复:修复了
Object.defineProperty()
处理快速数组的问题。 -
Bug 修复:修复了
async
标记作为对象属性名的问题。 -
Bug 修复:修复了当键修改基本绑定时的属性设置指令。
-
Bug 修复:修复了复杂赋值的问题。
-
Bug 修复:修复了未处理的 promise 拒绝的处理。
-
Bug 修复:修复了当存在重复环境变量时
process.env
的问题。 -
Bug 修复:修复了模块中的重复声明检测。
-
Bug 修复:根据规范修复了绑定函数调用的问题。
-
Bug 修复:修复了
if
语句的break
标签。 -
Bug 修复:修复了带标签的空语句。
njs 0.7.7 的更改
发布日期:2022 年 8 月 30 日
nginx 模块
-
特性:扩展了可以指定 js 指令的 nginx 配置上下文数量。
-
HTTP:在
server
和location
上下文中允许使用 js_import、js_path、js_set 和 js_var 指令。在 if 上下文中允许使用 js_content、js_body_filter 和 js_header_filter。
-
-
特性:添加了
r.internal
属性。 -
Bug 修复:修复了在 Fetch API 中读取响应体的问题。
-
Bug 修复:修复了 stream 中的 js_fetch_timeout。
-
Bug 修复:修复了
0
fetch 超时导致的套接字泄漏。
核心
-
特性:扩展了
fs
模块。添加了fs.openSync()
、fs.promises.open()
、fs.fstatSync()
、fs.readSync()
、fs.writeSync()
。实现了
FileHandle
的以下属性:fd
、read()
、stat()
、write()
、close()
。 -
Bug 修复:修复了
parseInt()
、parseFloat()
、Symbol.for()
在没有参数时的问题。
njs 0.7.6 的更改
发布日期:2022 年 7 月 19 日
nginx 模块
-
特性:改进了
r.args{}
对象。添加了对具有相同键的多个参数的支持。添加了键的大小写敏感性。键和值现在都进行了百分比解码。 -
Bug 修复:修复了
r.headersOut{}
设置器处理特殊标头的问题。
核心
-
特性:添加了
Symbol.for()
和Symbol.keyfor()
。 -
Bug 修复:修复了大型非十进制字面量的问题。
-
Bug 修复:修复了
parseInt()
中 Unicode 参数修剪的问题。 -
Bug 修复:修复了
try-catch
块中的break
指令。 -
Bug 修复:修复了 CLI 中
async
函数声明的问题。
njs 0.7.5 的更改
发布日期:2022 年 6 月 21 日
nginx 模块
-
更改:适应 nginx 标头结构的更改。
-
Bug 修复:修复了当值不存在时
r.headersOut{}
特殊 getter 的问题。 -
更改:当标头不存在时,返回 undefined 值而不是空字符串作为
Content-Type
。
核心
-
Bug 修复:修复了捕获从等待的函数抛出的异常的问题。
-
Bug 修复:修复了函数值初始化的问题。
-
Bug 修复:修复了
await
失败时的解释器。 -
Bug 修复:修复了当源数组在迭代时更改时的类型化数组构造函数。
-
Bug 修复:修复了
String.prototype.replace()
处理字节字符串的问题。 -
Bug 修复:修复了模板字面量生成字节字符串的问题。
-
Bug 修复:修复了稀疏数组的数组迭代器。
-
Bug 修复:修复了将扁平数组转换为慢速数组时内存释放的问题。
-
Bug 修复:正确处理
promise
本地函数中的NJS_DECLINE
。 -
Bug 修复:修复了在
Promise.all()
及其相关函数中处理类数组对象的问题。
njs 0.7.4 的更改
发布日期:2022 年 5 月 24 日
nginx 模块
-
特性:添加了用于配置 Fetch API 的扩展指令。为 http 和 stream 添加了以下指令
-
更改:
r.internalRedirect()
现在接受转义的 URI。
核心
-
特性:添加了
njs.version_number
属性。 -
特性:添加了对 WebCrypto API 使用 BoringSSL 的兼容性。
-
Bugfix: 修复了当比较器中修改数组大小时的
Array.prototype.sort()
。 -
Bugfix: 修复了
this
参数为慢速数组时的Array.prototype.slice()
。 -
Bugfix: 修复了
Promise
构造函数的聚合方法在类数组对象上的使用。 -
Bugfix: 修复了
this
为 Unicode 字符串时的String.prototype.lastIndexOf()
。 -
Bugfix: 修复了提供
reviver
函数时的JSON.parse()
。 -
Bugfix: 修复了提供递归描述符时的
Object.defineProperty()
。 -
Bugfix: 修复了类型化数组的
Array.prototype.fill()
。 -
Bugfix: 按照规范使函数表达式绑定不可变。
-
Bugfix: 修复了在
Object.defineProperty()
中重新定义特殊属性的问题。
njs 0.7.3 的变更
发布日期: 2022年4月12日
核心
-
特性: 添加了模块解析回调的支持。此特性允许宿主环境控制导入模块的加载方式。
-
Bugfix: 修复了遍历导入的用户模块时的回溯信息。
-
Bugfix: 修复了
this
为慢速数组时的Array.prototype.concat()
。 -
Bugfix: 修复了从 await 帧分配帧的问题。
-
Bugfix: 修复了大型数组字面量的分配问题。
-
Bugfix: 修复了
toString
转换失败时的解释器。
njs 0.7.2 的变更
发布日期: 2022年1月25日
核心
-
Bugfix: 修复了在迭代过程中修改数组时的
Array.prototype.join()
。 -
Bugfix: 修复了在迭代过程中修改数组时的
Array.prototype.slice()
。 -
Bugfix: 修复了在迭代过程中修改数组时的
Array.prototype.concat()
。 -
Bugfix: 修复了在迭代过程中修改数组时的
Array.prototype.reverse()
。 -
Bugfix: 修复了
Buffer.concat()
对子数组的使用。感谢 Sylvain Etienne。 -
Bugfix: 修复了解析 Promise 时的类型混淆错误。
-
Bugfix: 修复了
Function.prototype.apply()
使用大型数组参数的问题。 -
Bugfix: 修复了递归
async
函数调用。 -
Bugfix: 修复了函数重新声明的问题。此错误在 0.7.0 中引入。
njs 0.7.1 的变更
发布日期: 2021年12月28日
nginx 模块
-
变更: 自 0.4.0 起弃用的 js_include 指令已被移除。
-
变更: PCRE/PCRE2 特定的代码已移动到模块中。这确保了 njs 使用与 nginx 相同的 RegExp 库。
核心
-
Bugfix: 修复了
decodeURI()
和decodeURIComponent()
在处理无效字节字符串时的错误。此错误在 0.4.3 中引入。 -
Bugfix: 修复了
await
帧中的堆使用后释放错误。此错误在 0.7.0 中引入。 -
Bugfix: 修复了 OpenSSL 3.0 中 WebCrypto 的
sign()
和verify()
方法。 -
Bugfix: 修复了 RegExp 匹配失败时抛出异常的问题。此错误在 0.1.15 中引入。
-
Bugfix: 修复了捕获
async
函数try
块中抛出的异常的问题。此错误在 0.7.0 中引入。 -
Bugfix: 修复了在同步上下文中执行
async
函数的问题。此错误在 0.7.0 中引入。 -
Bugfix: 修复了 CLI 在交互模式下函数重新声明的问题。此错误在 0.6.2 中引入。
-
Bugfix: 修复了
typeof
运算符对DataView
对象的使用。 -
Bugfix: 消除了
Buffer.from()
中的信息泄漏。
njs 0.7.0 的变更
发布日期: 2021年10月19日
nginx 模块
核心
-
特性: 引入了
Async/Await
实现。 -
特性: 添加了 WebCrypto API 实现。
-
Bugfix: 修复了已声明函数的闭包复制问题。此错误在 0.6.0 中引入。
-
Bugfix: 修复了处理事件中未处理的
promise
拒绝。 -
Bugfix: 修复了 Fetch API 中 Response.headers 获取器。
njs 0.6.2 的变更
发布日期: 2021年8月31日
nginx 模块
-
Bugfix: 修复了在两个方向都注册
js_filter
时导致的 CPU 占用过高问题。
核心
-
特性: 引入了
AggregateError
实现。 -
特性: 添加了剩余的
Promise
构造函数方法。添加了以下方法:Promise.all()
、Promise.allSettled()
、Promise.any()
、Promise.race()
。 -
改进: 从代码生成器中移除了递归。
-
Bugfix: 修复了未绑定标识符时的剩余参数解析。
-
Bugfix: 修复了
Promise.prototype.finally()
的 resolve/reject 回调。 -
Bugfix: 修复了分离缓冲区时的
%TypedArray%.prototype.join()
。 -
Bugfix: 修复了交互式 Shell 中的内存泄漏。
njs 0.6.1 的变更
发布日期: 2021年6月29日
-
Bugfix: 修复了仅使用 UTF-8 正则表达式的
RegExpBuiltinExec()
。此错误在 0.4.2 中引入。 -
Bugfix: 修复了使用非赋值表达式的导出默认声明的解析问题。感谢 Artem S. Povalyukhin。
njs 0.6.0 的变更
发布日期: 2021年6月15日
核心
-
特性: 添加了
let
和const
声明的支持。 -
特性: 添加了
RegExp.prototype[Symbol.split]
。 -
特性: 添加了 RegExp 的粘性标志支持。
-
Bugfix: 修复了
String.prototype.lastIndexOf()
中的堆缓冲区溢出错误。 -
Bugfix: 按照规范修复了
RegExp.prototype.test()
。 -
Bugfix: 按照规范修复了
String.prototype.split()
。 -
Bugfix: 修复了跟踪被拒绝的 Promise 时的未初始化值的使用错误。
-
Bugfix: 修复了具有循环引用的对象的
njs.dump()
。
njs 0.5.3 的变更
发布日期: 2021年3月30日
nginx 模块
njs 0.5.2 的变更
发布日期: 2021年3月9日
nginx 模块
-
特性: 添加了
js_body_filter
指令。
核心
-
特性: 添加了
njs.on
(exit
) 回调支持。 -
Bugfix: 修复了不可扩展对象属性描述符的重用问题。感谢 Artem S. Povalyukhin。
-
Bugfix: 按照规范修复了
Object.freeze()
等方法。感谢 Artem S. Povalyukhin。 -
Bugfix: 修复了 CLI 模式下的
Function()
。 -
Bugfix: 修复了类型化数组值的
for-in
迭代。感谢 Artem S. Povalyukhin。
njs 0.5.1 的变更
发布日期: 2021年2月16日
nginx 模块
-
特性: 引入了实现了 Fetch API 的
ngx.fetch()
方法。实现了
Response
对象的以下属性和方法:arrayBuffer()
、bodyUsed
、json()
、headers
、ok
、redirect
、status
、statusText
、text()
、type
、url
。显著限制: 仅支持
http://
方案,不处理重定向。与 洪志道 (Hong Zhi Dao) 合作。
-
特性: 添加了
js_header_filter
指令。 -
Bugfix: 修复了 stream 模块中主体过滤器处理缓冲数据的错误。
核心
-
Bugfix: 修复了
Function
构造函数中的安全模式绕过。 -
Bugfix: 修复了无效日期值时的
Date.prototype.toISOString()
。
njs 0.5.0 的变更
发布日期: 2020年12月1日
nginx 模块
-
特性: 引入了全局
ngx
对象。添加了以下方法
添加了以下属性
-
ngx.INFO
、ngx.WARN
、ngx.ERR
。
-
-
特性: 添加了在期望字符串时使用
Buffer
对象的支持。 -
特性: 添加了现有属性的 Buffer 版本。
添加了以下属性
-
r.requestBuffer
(r.requestBody
)、r.responseBuffer
(r.responseBody
)、r.rawVariables
(r.variables
)、s.rawVariables
(s.variables
).
在 stream 模块中添加了以下事件
-
upstream
(上传)、downstream
(下载)。
-
-
改进: 为现有属性添加了别名。
添加了以下属性
-
改进: 为子请求的
r.internalRedirect()
中抛出异常。 -
Bugfix: 修复了使用
error_page
重定向的 promiser.subrequest()
。 -
Bugfix: 修复了
promise
事件的处理。
核心
-
特性: 为内置模块添加了
TypeScript
定义。感谢 Jakub Jirutka。 -
特性: 跟踪未处理的
promise
拒绝。 -
特性: 添加了初始迭代器支持。感谢 Artem S. Povalyukhin。
-
改进: 重构了
TypeScript
定义。感谢 Jakub Jirutka。 -
改进: 添加了在
Buffer.from()
中遗漏的Object.prototype.valueOf()
支持。 -
Bugfix: 修复了
JSON.parse()
中的堆使用后释放错误。 -
Bugfix: 修复了
JSON.stringify()
中的堆使用后释放错误。 -
Bugfix: 修复了通过 getter 调整大小的数组的
JSON.stringify()
。 -
Bugfix: 修复了
RegExp.prototype[Symbol.replace]
的堆缓冲区溢出错误。 -
Bugfix: 修复了
Buffer.prototype.write*
函数的返回值。 -
Bugfix: 修复了
querystring.stringify()
。感谢 Artem S. Povalyukhin。 -
Bugfix: 修复了
Promise.prototype.finally()
的 catch 处理程序。 -
Bugfix: 修复了
querystring.parse()
。
njs 0.4.4 的变更
发布日期: 2020年9月29日
nginx 模块
-
Bugfix: 修复了位置合并。
-
Bugfix: 修复了 HTTP/2 的
r.httpVersion
。
核心
-
特性: 添加了数字分隔符 (ES12) 的支持。
-
特性: 添加了
%TypedArray%.prototype
的剩余方法。添加了以下方法:every()
、filter()
、find()
、findIndex()
、forEach()
、includes()
、indexOf()
、lastIndexOf()
、map()
、reduce()
、reduceRight()
、reverse()
、some()
。 -
特性: 添加了
%TypedArray%
的剩余方法。添加了以下方法:from()
、of()
。 -
特性: 添加了
DataView
对象。 -
特性: 添加了
Buffer
对象的实现。 -
特性: 添加了在
TextDecoder.prototype.decode()
中使用ArrayBuffer
的支持。 -
特性: 添加了在
crypto
方法中使用Buffer
对象的支持。 -
特性: 添加了在
fs
方法中使用Buffer
对象的支持。 -
变更:
Hash.prototype.digest()
和Hmac.prototype.digest()
在未提供编码时现在返回Buffer
实例而不是字节字符串。 -
变更:
fs.readFile()
等方法在未提供编码时现在返回Buffer
实例而不是字节字符串。 -
Bugfix: 修复了设置函数
prototype
属性时的处理程序。 -
Bugfix: 修复了设置函数
constructor
属性时的处理程序。 -
Bugfix: 修复了字节字符串的
String.prototype.indexOf()
。 -
Bugfix: 修复了带有全局标志和字节字符串的
RegExpBuiltinExec()
。 -
Bugfix: 修复了替换值为函数时的
RegExp.prototype[Symbol.replace]
。 -
Bugfix: 修复了非零
TypedArray
偏移量的TextDecoder.prototype.decode()
。
njs 0.4.3 的变更
发布日期: 2020年8月11日
核心
-
特性: 添加了
查询字符串
模块。 -
特性: 改进了
fs.mkdir()
以支持递归目录创建。感谢 Artem S. Povalyukhin。 -
特性: 改进了
fs.rmdir()
以支持递归目录删除。感谢 Artem S. Povalyukhin。 -
特性:根据 WHATWG 编码规范引入了 UTF-8 解码器。
-
特性:添加了
TextDecoder()
和TextEncoder()
实现。 -
Bug 修复:修复了不带分号的 return 语句解析。
-
Bug 修复:修复了大端平台上的
njs_number_to_int32()
。 -
Bug 修复:修复了大端平台上的单元测试。
-
Bug 修复:修复了包含“
=
”字符的正则表达式字面量解析。 -
Bug 修复:修复了赋值操作中的前/后自增/自减。
njs 0.4.2 的更改
发布日期:2020 年 7 月 7 日
核心
-
特性:添加了
RegExp.prototype[Symbol.replace]
。 -
特性:引入了行级回溯。
-
特性:添加了
%TypedArray%.prototype.sort()
。 -
改进:解析器重构。
-
Bug 修复:修复了 HTTP 头部 TypedScript API 描述。
-
Bug 修复:修复了
NjsByteString
类型 TypedScript API 描述。 -
Bug 修复:根据规范修复了
String.prototype.repeat()
。 -
Bug 修复:根据规范修复了
String.prototype.replace()
。 -
Bug 修复:修复了正则表达式字面量的标志解析。
-
Bug 修复:修复了生成器中全局对象的索引生成。
-
Bug 修复:修复了
%TypedArray%.prototype.copyWithin()
在非零字节偏移量的情况。 -
Bug 修复:修复了稀疏数组的
Array.prototype.splice()
。 -
Bug 修复:修复了稀疏数组的
Array.prototype.reverse()
。 -
Bug 修复:修复了稀疏数组的
Array.prototype.sort()
。
njs 0.4.1 的更改
发布日期:2020 年 5 月 19 日
nginx 模块
-
特性:在
r.headersIn{}
中添加了对多值头的支持。 -
特性:引入了
raw headers
API:r.rawHeadersIn[]
和r.rawHeadersOut[]
。 -
特性:添加了 TypeScript API 描述。
核心
-
Bug 修复:修复了稀疏数组的
Array.prototype.slice()
。
njs 0.4.0 的更改
发布日期:2020 年 4 月 23 日
nginx 模块
-
特性:在
r.headersOut{}
中添加了对多值头的支持。 -
改进:改进了使用特殊头的
r.headersOut{}
的迭代。 -
改进:改进了使用重复头的
r.headersOut{}
的迭代。 -
更改:
r.responseBody
属性处理程序现在返回undefined
而不是在响应主体不可用时抛出异常。
核心
-
特性:在 CLI 中添加了脚本参数支持。
-
特性:将外部值转换为原生 js 对象。
-
Bug 修复:修复了
__proto__
属性处理程序中的空指针解除引用。 -
Bug 修复:修复了脚本末尾没有换行符的处理。
-
Bug 修复:修复了空模式和非空标志的
RegExp()
构造函数。 -
Bug 修复:修复了函数返回非字符串时
String.prototype.replace()
。 -
Bug 修复:修复了
fs
中伪文件的读取。
njs 0.3.9 的更改
发布日期:2020 年 3 月 3 日
nginx 模块
-
特性:为
r.subrequest()
添加了分离模式。分离子请求的响应将被忽略。与普通子请求不同,分离子请求可以在变量处理程序内部创建。
核心
-
特性:为
fs
模块添加了promises
API。感谢 Artem S. Povalyukhin。 -
特性:扩展了
fs
模块。添加了access()
、symlink()
、unlink()
、realpath()
等。感谢 Artem S. Povalyukhin。 -
改进:引入了内存高效的普通数组。
-
改进:词法分析器重构。
-
Bug 修复:修复了回溯中本机函数的匹配。
-
Bug 修复:修复了
fs
模块中的回调调用。感谢 Artem S. Povalyukhin。 -
Bug 修复:修复了
Object.getOwnPropertySymbols()
。 -
Bug 修复:修复了
njs_json_append_string()
中的堆缓冲区溢出。 -
Bug 修复:根据规范修复了
encodeURI()
和decodeURI()
。 -
Bug 修复:修复了
Number.prototype.toPrecision()
。 -
Bug 修复:修复了
JSON.stringify()
中空格参数的处理。 -
Bug 修复:修复了
JSON.stringify()
中Number()
和String()
对象的问题。 -
Bug 修复:根据规范修复了
JSON.stringify()
中的 Unicode 转义。 -
Bug 修复:修复了非原生模块导入。感谢 洪志道 (Hong Zhi Dao)。
-
Bug 修复:修复了
njs.dump()
在容器中使用Date()
实例时的问题。
njs 0.3.8 的更改
发布日期:2020 年 1 月 21 日
nginx 模块
-
特性:为
r.subrequest()
添加了Promise
支持。如果未提供回调,r.subrequest()
将返回一个普通Promise
对象,该对象解析为子请求响应对象。 -
更改:
r.parent
属性处理程序现在返回undefined
而不是在父对象不可用时抛出异常。
核心
-
特性:添加了
Promise
支持。根据规范实现,不包括:Promise.all()
、Promise.allSettled()
、Promise.race()
。 -
特性:添加了初始的 Typed 数组支持。感谢 Tiago Natel de Moura。
-
特性:添加了
ArrayBuffer
支持。感谢 Tiago Natel de Moura。 -
特性:添加了初始的
Symbol
支持。感谢 Artem S. Povalyukhin。 -
特性:为
JSON.stringify()
添加了外部支持。 -
特性:添加了
Object.is()
。感谢 Artem S. Povalyukhin。 -
特性:添加了
Object.setPrototypeOf()
。感谢 Artem S. Povalyukhin。 -
特性:引入了空值合并运算符。
-
Bug 修复:根据规范修复了
Object.getPrototypeOf()
。 -
Bug 修复:根据规范修复了
Object.prototype.valueOf()
。 -
Bug 修复:修复了
JSON.stringify()
在处理不可打印值和替换函数时的错误。 -
Bug 修复:根据规范修复了
in
运算符。 -
Bug 修复:根据规范修复了
Object.defineProperties()
。 -
Bug 修复:根据规范修复了
Object.create()
。感谢 Artem S. Povalyukhin。 -
Bug 修复:启用了快速数学时修复了
Number.prototype.toString(radix)
。 -
Bug 修复:修复了
RegExp()
实例属性。 -
Bug 修复:修复了导入段错误。感谢 洪志道 (Hong Zhi Dao)。
njs 0.3.7 的更改
发布日期:2019 年 11 月 19 日
nginx 模块
-
改进:重构了外部对象的迭代。
核心
-
特性:添加了
Object.assign()
。 -
特性:添加了
Array.prototype.copyWithin()
。 -
特性:在
console.time()
中添加了对标签的支持。 -
更改:从 CLI 中删除了
console.help()
。 -
改进:将构造函数和顶级对象移动到全局对象。
-
改进:配置脚本的参数验证。
-
改进:重构了 JSON 方法。
-
Bug 修复:修复了
njs_array_reverse_iterator()
函数中的堆缓冲区溢出。以下函数受到影响:Array.prototype.lastIndexOf()
、Array.prototype.reduceRight()
。 -
Bug 修复:修复了
NativeErrors
的[[Prototype]]
槽。 -
Bug 修复:修复了
NativeError.prototype.message
属性。 -
Bug 修复:在
Array.prototype functions
中添加了this
值到对象的转换。 -
Bug 修复:修复了
Array.prototype.find()
和Array.prototype.findIndex()
函数的迭代器。 -
Bug 修复:修复了
Array.prototype.includes()
和Array.prototype.join()
在使用undefined
参数时的错误。 -
Bug 修复:修复了
Hash
和Hmac
对象的constructor
属性。 -
Bug 修复:修复了 getter 和 setter 的
__proto__
属性。 -
Bug 修复:修复了
Date
对象的字符串格式化。 -
Bug 修复:修复了
Math.min()
和Math.max()
在处理NaN
和-0
参数时的错误。 -
Bug 修复:根据规范修复了
Math.round()
。 -
Bug 修复:根据规范重新实现了
bound
函数。
njs 0.3.6 的更改
发布日期:2019 年 10 月 22 日
nginx 模块
-
改进:从
r.headersIn{}
获取特殊头部。
核心
-
特性:添加了新的
Function()
支持。 -
特性:添加了
Number.prototype.toFixed()
。 -
特性:添加了
Number.prototype.toPrecision()
。 -
特性:添加了
Number.prototype.toExponential()
。 -
改进:使函数实例的
prototype
属性可写。 -
改进:限制编译时的递归深度。
-
改进:将全局函数移动到全局对象。
-
Bug 修复:修复了对象字面量的原型变异。
-
Bug 修复:修复了解析正则表达式字面量时的堆缓冲区溢出。
-
Bug 修复:修复了解析数字字面量指数时的整数溢出。
-
Bug 修复:修复了
parseFloat()
。 -
Bug 修复:根据规范修复了
Array.prototype
函数。以下函数已修复:every
、includes
、indexOf
、filter
、find
、findIndex
、forEach
、lastIndexOf
、map
、pop
、push
、reduce
、reduceRight
、shift
、some
、unshift
。 -
Bug 修复:修复了
Object.freeze()
中访问器描述符的处理。 -
Bug 修复:修复了第一个参数不是字符串时
String.prototype.replace()
。 -
Bug 修复:修复了
Array.prototype.map()
中的栈使用后作用域。 -
Bug 修复:
Date.prototype.toUTCString()
格式已对齐到 ES9。 -
Bug 修复:修复了
Number.prototype.toString(radix)
中的缓冲区溢出。 -
Bug 修复:修复了带有反向引用的正则表达式的
Regexp.prototype.test()
。 -
Bug 修复:修复了具有不存在值的对象的
Array.prototype.map()
。 -
Bug 修复:修复了稀疏对象的
Array.prototype.pop()
和shift()
。 -
Bug 修复:根据规范修复了
Date.UTC()
。 -
Bug 修复:根据规范修复了
Date()
构造函数。 -
Bug 修复:修复了
Date.prototype
的类型。感谢 Artem S. Povalyukhin。 -
Bug 修复:修复了
Date.prototype.setTime()
。感谢 Artem S. Povalyukhin。 -
Bug 修复:修复了内置函数期望的默认参数数量。
-
Bug 修复:修复了函数实例的
caller
和arguments
属性。感谢 Artem S. Povalyukhin。
njs 0.3.5 的更改
发布日期:2019 年 8 月 15 日
核心
-
Bug 修复:修复了使用
require()
导入模块的问题。此错误是在 0.3.4 中引入的。 -
Bug 修复:修复了
[[SetPrototypeOf]]
。
njs 0.3.4 的更改
发布日期:2019 年 8 月 13 日
核心
-
特性:添加了
Object
简写方法和计算属性名。感谢 洪志道 (Hong Zhi Dao) 和 Artem S. Povalyukhin。 -
特性:添加了 getter/setter 字面量支持。感谢 洪志道 (Hong Zhi Dao) 和 Artem S. Povalyukhin。
-
特性:添加了
fs.renameSync()
。 -
特性:添加了
String.prototype.trimEnd()
和String.prototype.trimStart()
。 -
改进:添加了内存消毒器支持。
-
改进:Unicode 大小写表格更新到 12.1 版。
-
改进:为字符串字面量添加了 UTF8 验证。
-
Bug 修复:修复了
fs.readFileSync()
中读取大小为零的文件的问题。 -
Bug 修复:扩展了
String.prototype.trim()
中空格分隔符的列表。 -
Bug 修复:修复了
String.prototype.padStart()
中使用未初始化值的问题。 -
Bug 修复:修复了
String.prototype.replace()
在$0
和$&
替换字符串时的错误。 -
Bug 修复:修复了使用正则表达式参数的字节字符串
String.prototype.replace()
。 -
Bug 修复:修复了使用正则表达式参数的
String.prototype.replace()
中的全局匹配。 -
Bug 修复:修复了基本类型的
Array.prototype.slice()
。 -
Bug 修复:修复了导入模块时的堆缓冲区溢出。
-
Bug 修复:修复了 UTF-8 字符转义。
-
Bug 修复:修复了共享对象的
Object.values()
和Object.entries()
。 -
Bug 修复:修复了
String.prototype.match()
中的未初始化内存访问。 -
Bugfix:修复了当正则表达式作为参数时,
String.prototype.match()
对字节字符串的操作。 -
Bugfix:修复了当参数为 undefined 时,
Array.prototype.lastIndexOf()
的操作。 -
Bugfix:修复了当子字符串为空时,
String.prototype.substring()
的操作。 -
Bugfix:修复了
String.prototype.substring()
中的无效内存访问。 -
Bugfix:修复了当代码点大于
65535
和NaN
时,String.fromCharCode()
的操作。 -
Bugfix:修复了
String.prototype.toLowerCase()
和String.prototype.toUpperCase()
的操作。 -
Bugfix:修复了当没有参数时,
Error()
构造函数的操作。 -
Bugfix:修复了对于具有访问器描述符的值,
in
运算符的操作。 -
Bugfix:修复了对于非布尔型描述符属性,
Object.defineProperty()
的操作。 -
Bugfix:修复了当属性为 UTF8 字符串时,
Error.prototype.toString()
的操作。 -
Bugfix:修复了当
name
和message
属性值为非字符串类型时,Error.prototype.toString()
的操作。
njs 0.3.3 的变更
发布日期:2019年6月25日
nginx 模块
-
改进:获取
r.headersOut{}
中的特殊响应头。 -
改进:在
r.subrequest()
中处理未知方法。 -
改进:添加了对
r.subrequest()
的第二个参数为 null 的支持。 -
Bugfix:修复了流体过滤器中处理空输出链的问题。
核心
-
特性:添加了对属性 getter/setter 的运行时支持。感谢洪志道和 Artem S. Povalyukhin。
-
特性:添加了全局对象
process
。 -
特性:大多数内置属性和方法可写。
-
特性:添加了
Array.prototype.fill()
的通用实现。 -
Bugfix:修复了
String.prototype.concat()
中的整数溢出问题。 -
Bugfix:修复了对象属性设置的问题。
-
Bugfix:修复了
Array.prototype.toString()
的操作。 -
Bugfix:修复了
Date.prototype.toJSON()
的操作。 -
Bugfix:修复了覆盖内置原型“constructor”属性的问题。
-
Bugfix:修复了处理字符串中无效代理对的问题。
-
Bugfix:修复了处理 JSON 字符串中无效代理对的问题。
-
Bugfix:修复了
toUpperCase()
和toLowerCase()
中的堆缓冲区溢出问题。 -
Bugfix:修复了
RegExp()
构造函数中转义的单独的右方括号的问题。 -
Bugfix:修复了处理正则表达式模式字符串中零字节字符的问题。
-
Bugfix:修复了
String.prototype.toBytes()
对 ASCII 字符串的操作。 -
Bugfix:修复了
JSON.parse()
中 JSON 数字的真值问题。 -
Bugfix:修复了
njs_string_replace_join()
中使用未初始化值的错误。 -
Bugfix:修复了
parseInt('-0')
的问题。感谢 Artem S. Povalyukhin。
njs 0.3.2 的变更
发布日期:2019年5月21日
核心
-
特性:添加了对模板字面量的支持。感谢洪志道和 Artem S. Povalyukhin。
-
特性:从命令行参数执行命令。
-
特性:添加了对 RegExp
groups
对象(ES9)的支持。 -
特性:添加了块级作用域函数定义的支持。
-
特性:添加了使用 GNU Readline 库构建的支持。
-
特性:使
length
、name
和大多数内置方法可配置。 -
特性:所有构造函数属性都可配置。
-
Bugfix:修复了
Regexp.prototype.exec()
对仅 Unicode 正则表达式的操作。 -
Bugfix:修复了当值为空字符串时,
njs_vm_value_dump()
的操作。 -
Bugfix:修复了当参数为正则表达式值时,RegExp 构造函数的操作。
-
Bugfix:修复了在遍历对象时遍历原型链的问题。
-
Bugfix:修复了
Array.prototype.concat()
中的溢出问题。 -
Bugfix:修复了包含转义字符的 UTF-8 字符串的长度计算。
-
Bugfix:修复了作为 UTF-16 转义序列存在的代理对的解析。
-
Bugfix:修复了
String.prototype.match()
中“*”量词的处理。 -
Bugfix:修复了当只有一个参数时,
Date()
构造函数的操作。 -
Bugfix:修复了数组扩展的问题。
-
Bugfix:修复了
String.prototype.replace()
中的堆缓冲区溢出问题。 -
Bugfix: 修复了
String.prototype.lastIndexOf()
中的堆缓冲区溢出错误。 -
Bugfix:修复了使用转义的反斜杠和方括号内的反斜杠解析正则表达式字面量的问题。
-
Bugfix:修复了带有单独的右方括号的正则表达式字面量的问题。
-
Bugfix:修复了
Object.defineProperties()
中的未初始化内存访问问题。 -
Bugfix:修复了
String.prototype.replace()
中“*”量词的处理。 -
Bugfix:修复了
Array.prototype.slice()
对 UTF8 无效字节字符串的操作。 -
Bugfix:修复了
String.prototype.split()
对 UTF8 无效字节字符串的操作。 -
Bugfix:修复了处理空块语句的问题。
njs 0.3.1 的变更
发布日期:2019年4月16日
核心
-
特性:添加了箭头函数的支持。感谢洪志道和 Artem S. Povalyukhin。
-
特性:添加了
Object.getOwnPropertyNames()
。感谢 Artem S. Povalyukhin。 -
特性:添加了
Object.getOwnPropertyDescriptors()
。感谢 Artem S. Povalyukhin。 -
特性:使
Object
实例的__proto__
访问器描述符可变。 -
特性:添加了 CLI 中的 shebang 支持。
-
特性:添加了 CLI 中模块模式执行的支持。在模块模式下,全局 this 不可访问。
-
Bugfix:修复了 editline 检测的问题。
-
Bugfix:修复了
Function.prototype.bind()
的操作。感谢洪志道。 -
Bugfix:修复了检查函数参数重复的问题。感谢洪志道。
-
Bugfix:修复了函数声明与变量同名的问题。感谢洪志道。
-
改进:重构了与对象、变量和函数解析相关的代码。感谢洪志道。
-
改进:改进了
console.log()
中大值输出。 -
改进:以兼容的方式改进了
console.log()
中的字符串输出(不转义和加引号)。 -
改进:使用 ES6 版本的
ToInt32()
、ToUint32()
、ToLength()
。
njs 0.3.0 的变更
发布日期:2019年3月26日
nginx 模块
-
变更:在以下对象中,对于不存在的属性,返回 undefined 值而不是空字符串:
r.args{}
、r.headersIn{}
、r.headersOut{}
、r.variables{}
、s.variables{}
。 -
变更:当请求体不可用时,返回 undefined 值而不是为
r.requestBody
抛出异常。 -
Bugfix:修复了当键值对中缺少值时,遍历
r.args{}
导致崩溃的问题。
核心
-
特性:添加了初始的 ES6 模块支持。支持默认导入和默认导出语句。感谢洪志道。
-
特性:添加了
Object.prototype.propertyIsEnumerable()
。 -
特性:在反汇编输出中报告文件名和函数名。
-
Bugfix:修复了交互式 shell 中函数重新声明的问题。感谢洪志道。
-
Bugfix:修复了正则表达式字面量的解析。
-
Bugfix:修复了在
fs.readFileSync()
中设置 UTF8 字符串长度的问题。 -
Bugfix:修复了当路径没有目录组件时,
nxt_file_dirname()
的操作。
njs 0.2.8 的变更
发布日期:2019年2月26日
nginx 模块
-
变更:删除了在 0.2.2 中弃用的 HTTP 请求属性。
-
特性:添加了对
r.headersOut{}
中删除操作的支持。 -
特性:添加了对设置 nginx 变量的支持。
-
Bugfix:修复了当主体值为为空时,
r.subrequest()
的操作。 -
改进:设置
r.headersOut{}
中的特殊响应头。
核心
-
特性:添加了标签支持。
-
特性:添加了
setImmediate()
方法。 -
特性:添加了对对象字面量简写属性名的支持。
-
Bugfix:修复了
Function.prototype.bind()
的操作。 -
Bugfix:修复了包含换行符的字符串字面量的解析。
-
Bugfix:修复了报告变量引用错误的行号。
-
Bugfix:修复了创建长 UTF8 字符串的问题。
-
Bugfix:修复了在
String.prototype.split()
中设置 Unicode 字符串的特殊响应头的问题。 -
Bugfix:修复了
String.prototype.split()
中的堆缓冲区溢出问题。 -
Bugfix:修复了
Array.prototype.fill()
的操作。感谢 Artem S. Povalyukhin。 -
改进:重构了与函数调用相关的代码。感谢洪志道。
-
改进:重构了与变量相关的代码。感谢洪志道。
-
改进:重构了解析器。感谢洪志道。
-
改进:在异常中报告文件名。
njs 0.2.7 的变更
发布日期:2018年12月25日
核心
-
特性:剩余参数语法(不支持解构)。感谢 Alexander Pyshchev。
-
特性:添加了
Object.entries()
方法。 -
特性:添加了
Object.values()
方法。 -
改进:重构和简化了代码生成器。
-
Bugfix:修复了自动分号插入的问题。
-
Bugfix:修复了复合赋值的赋值表达式。
-
Bugfix:修复了字节字符串和 UTF8 字符串的比较。
-
Bugfix:修复了
for-in
循环中使用数组值时迭代变量的类型。 -
Bugfix:修复了在没有 librt 的平台上构建的问题。
-
Bugfix:修复了各种错误。
njs 0.2.6 的变更
发布日期:2018年11月27日
核心
-
特性:使内置原型可变。
-
特性:使全局对象可变。
-
特性:
console.time()
和console.timeEnd()
方法。 -
特性:允许重新声明变量和函数。
-
特性:扩展了
Object.defineProperty()
规范的符合性。 -
特性:为 CLI 引入了静默模式,用于处理来自 stdin 的简单表达式。
-
特性:引入了紧凑形式的反向跟踪以处理堆栈溢出。
-
改进:改进了各种异常的措辞。
-
Bugfix:修复了闭包值处理的问题。
-
Bugfix:修复了各种值类型的相等运算符。
-
Bugfix:修复了在各种作用域中处理
this
关键字的问题。 -
Bugfix:修复了在
Object.keys()
中处理非对象值的问题。 -
Bugfix:修复了在
if
语句中解析 throw 语句的问题。 -
Bugfix:修复了 throw 语句后解析换行符的问题。
-
Bugfix:修复了在没有换行符的情况下解析 if 语句中的语句的问题。
-
Bugfix:修复了
njs_array_expand()
中uint32_t
大小溢出的问题。 -
Bugfix:修复了
object_value
类型typeof
运算符的问题。 -
Bugfix:修复了各种错误。
njs 0.2.5 的变更
发布日期:2018年10月30日
nginx 模块
-
Bugfix:修复了流模块中计算挂起事件的问题。
-
Bugfix:修复了流模块中的
s.off()
的操作。 -
错误修复:修复了流模块中
js_filter
处理数据块的问题。 -
错误修复:修复了http模块中
status
和contentType
获取器。 -
错误修复:修复了http模块中的http响应和父级获取器。
核心
-
功能:支持arguments对象。
-
功能:支持非整数分数。
-
改进:处理
Array.prototype.slice()
中的非数组值。 -
错误修复:修复了
Array.prototype.length
设置器 -
错误修复:修复了长度大于2**31时
njs_array_alloc()
。 -
错误修复:处理32位架构上
njs_array_alloc()
中的整数溢出。 -
错误修复:修复了代码大小不匹配的错误消息。
-
错误修复:修复了循环中的delete运算符。
-
错误修复:修复了复杂对象(继承自
Array
和string
值)的Object.getOwnPropertyDescriptor()
。 -
错误修复:修复了非对象属性的
Object.prototype.hasOwnProperty()
-
Bugfix:修复了各种错误。
njs 0.2.4中的更改
发布日期:2018年9月18日
nginx 模块
-
更改:流模块处理程序重构。
新的方法和属性:
s.on()
,s.off()
,s.allow()
,s.done()
,s.decline()
,s.deny()
。已删除Stream对象的属性:
s.OK
,s.ABORT
,s.AGAIN
,s.DECLINED
,s.ERROR
(替换为s.allow()
,s.done()
,s.deny()
)。s.buffer
(用于读取替换为相应回调的数据参数,用于写入使用s.send()
)。s.fromUpstream
(替换为相应事件的回调)。s.eof
(替换为flags.last
)。
核心
-
功能:添加了
Function.prototype.length
。 -
功能:引入了沙箱模式。
-
改进:在适当的地方添加了异常字符串。
-
改进:改进了原始类型转换异常的措辞。
-
错误修复:尝试更改冻结属性时抛出
TypeError
。 -
错误修复:修复了现有属性的
Object.defineProperty()
。 -
错误修复:在使用for in迭代时尊重可枚举属性。
-
错误修复:尊重属性处理程序的可写属性。
-
错误修复:修复了函数参数中的异常处理。
-
错误修复:修复了不同值类型的
Object.prototype.toString
。 -
错误修复:修复了对象类型参数的
Object()
构造函数。 -
错误修复:修复了对象和字符串的比较。
-
错误修复:修复了未定义参数的
String.slice()
。 -
Bugfix:修复了各种错误。
njs 0.2.3中的更改
发布日期:2018年7月31日
nginx 模块
-
错误修复:从
Reply
对象发出子请求会导致分段错误。 -
错误修复:获取主HTTP请求对象的父级属性会导致分段错误。
核心
-
功能:为值添加了漂亮的字符串表示形式。
-
功能:正确打印浮点数。
-
功能:正确解析浮点数。
-
功能:
String.bytesFrom()
方法(将hex
,base64
,base64url
解码为字节字符串)。 -
功能:
String.padStart()
和String.padEnd()
方法。 -
功能:添加了对二进制字面量的支持。
-
改进:添加了有关数字解析中非法标记的信息。
-
改进:允许在八进制字面量值中使用大写
O
。 -
改进:在
console.log()
中添加了对多个参数的支持。 -
错误修复:修复了将
call()
应用于外部值的方法。 -
错误修复:修复了应用于对象的加法运算符。
-
错误修复:修复了
njs_vm_value_to_ext_string()
中的异常处理。 -
错误修复:修复了带有布尔值、null和未定义参数的
Number()
。 -
错误修复:修复了设置非数字
Array.length
的错误处理。 -
错误修复:修复了全局对象的自动完成。
-
Bugfix:修复了各种错误。
njs 0.2.2中的更改
发布日期:2018年6月19日
nginx 模块
-
更改:将HTTP
Response
和Reply
合并到HTTP请求中。Request
的新成员-
req.status
(res.status
) -
req.parent
(reply.parent
) -
req.requestBody
(req.body
) -
req.responseBody
(reply.body
) -
req.headersIn
(req.headers
) -
req.headersOut
(res.headers
) -
req.sendHeader()
(res.sendHeader()
) -
req.send()
(res.send()
) -
req.finish()
(res.finish()
) -
req.return()
(res.return()
)
已弃用的
Request
成员-
req.body
(使用req.requestBody
或req.responseBody
) -
req.headers
(使用req.headersIn
或req.headersOut
) -
req.response
已弃用的
Response
成员-
res.contentLength
(使用req.headersOut
['Content-Length']
) -
res.contentType
(使用req.headersOut
['Content-Type']
)
将在下一个版本中删除已弃用的属性。
-
-
功能:HTTP internalRedirect()方法。
核心
-
错误修复:修复了
crypto.createHmac()
中的堆缓冲区溢出。
njs 0.2.1中的更改
发布日期:2018年5月31日
nginx 模块
-
功能:HTTP请求体获取器。
-
改进:将njs vm移至
main
配置。 -
改进:改进了js_set和js_content指令的日志记录。
-
改进:在js_content处理程序中默认将状态代码设置为500
-
改进:在js_content处理程序中添加了返回状态代码的调试信息
-
错误修复:修复了js_include中的错误日志记录。
核心
-
功能:添加了数组长度设置器。
-
改进:公共头文件
cleanup. njscript.h
重命名为njs.h
。 -
错误修复:修复了调用
digest()
后crypto.update()
方法。 -
错误修复:修复了密钥大小小于等于算法大小且大于64的
crypto.createHmac()
。 -
错误修复:修复了带有空单元格的数组的
JSON.stringify()
。 -
错误修复:修复了
JSON.stringify()
中不支持类型的异常类型。 -
错误修复:修复了函数的未定义参数的处理。
-
错误修复:修复了
Object.getOwnPropertyDescriptor()
缺少arg
的处理。 -
错误修复:修复了
Object.getOwnPropertyDescriptor()
中属性的处理。 -
错误修复:修复了
Array.length
属性的可写标志。 -
错误修复:修复了
clearTimeout()
的返回值类型。 -
错误修复:修复了
njs_vm_external_bind()
。 -
Bugfix:修复了各种错误。
njs 0.2.0中的更改
发布日期:2018年4月3日
-
功能:通过CLI报告njs版本。
-
功能:类型转换异常的文本描述。
- 功能:
setTimeout()
和clearTimeout()
方法。 -
功能:字节字符串到
hex
,base64
,base64url
编码。 -
功能:Node.js风格的
Crypto
方法。 -
功能:HTTP和流的
warn()
和error()
方法。 -
功能:HTTP
subrequest()
方法。 -
功能:HTTP
return()
方法。 -
错误修复:核心和交互式shell中已修复各种错误。
njs 0.1.15中的更改
发布日期:2017年11月20日
-
功能:
Error
,EvalError
,InternalError
,RangeError
,ReferenceError
,SyntaxError
,TypeError
,URIError
对象。 -
功能:支持八进制字面量。
-
功能:Node.js风格的文件系统访问方法:
fs.readFile()
,fs.readFileSync()
,fs.appendFile()
,fs.appendFileSync()
,fs.writeFile()
,fs.writeFileSync()
。 -
功能:nginx模块在异常时打印回溯。
-
Bugfix:修复了各种错误。
njs 0.1.14中的更改
发布日期:2017年10月9日
-
功能:JSON对象。
-
功能:交互式shell中的对象级自动完成。
-
功能:各种配置改进。
-
错误修复:核心和交互式shell中已修复各种错误。
njs 0.1.13中的更改
发布日期:2017年8月31日
-
功能:交互式shell中的
console.log()
和console.help()
方法。 -
功能:交互式shell在异常时打印回溯。
-
功能:如果可用,则默认情况下使用交互式shell
libedit
。 -
错误修复:处理命令行模式下来自
stdin
的大文件。 -
错误修复:改进了
editline
检测。
njs 0.1.12中的更改
发布日期:2017年8月8日
-
功能:交互式shell。
-
错误修复:
Object.isSealed()
中的错误。
njs 0.1.11中的更改
发布日期:2017年6月27日
-
功能:
Object.keys()
,Object.prototype.hasOwnProperty()
方法。 -
功能:
Object.defineProperty()
,Object.defineProperties()
,Object.getOwnPropertyDescriptor()
方法。 -
功能:
Object.getPrototypeOf()
,Object.prototype.isPrototypeOf()
方法。 -
功能:
Object.preventExtensions()
,Object.isExtensible()
,Object.freeze()
,Object.isFrozen()
,Object.seal()
,Object.isSealed()
方法。 -
功能:支持科学计数法(
3.35e10
)字面量。 -
功能:支持十六进制(
0x1123
)字面量。 -
错误修复:处理大型数组索引。
-
错误修复:
parseInt()
和Date.parse()
中的错误。
njs 0.1.10中的更改
发布日期:2017年4月4日
-
功能:嵌套函数和函数闭包。
-
功能:
Array.of()
,Array.prototype.fill()
,Array.prototype.find()
,Array.prototype.findIndex()
方法。 -
错误修复:已修复各种错误和分段错误。
njs 0.1.9中的更改
发布日期:2017年2月1日
-
错误修复:在nginx中使用njs时,全局变量未初始化。
njs 0.1.8中的更改
发布日期:2017年1月24日
-
更改:强制执行
strict
模式,必须显式声明变量。 -
功能:
for
和for-in
循环支持变量声明。 -
错误修复:已修复全局和函数作用域。
-
错误修复:现在
for-in
循环不会丢弃属性变量的最后一个值。 -
错误修复:已修复各种错误和分段错误。
njs 0.1.7中的更改
发布日期:2016年12月27日
-
更改:已禁用服务器和位置级别上的js_include指令。
-
功能:指数运算符。
-
错误修复:已修复各种错误和分段错误。
njs 0.1.6中的更改
发布日期:2016年12月13日
-
更改:已禁用服务器和位置级别上的js_set指令。
-
功能:ES6
Math
方法。 -
错误修复:已修复各种错误和分段错误。