变化
njs 0.8.9 的更改
发布日期: 14 一月 2025
nginx 模块:
-
错误修正:删除了每个服务器的额外 VM 创建。 以前,当
js_import
在 HTTP 或 Stream 块中声明,则会为每个服务器块创建一个额外的 VM 实例副本。 这不是必需的,并且对于具有许多 server 块。 此问题在 0.8.6 中引入,并且是 仅在 0.8.7 中部分修复了位置块的问题。
核心:
njs 0.8.8 的更改
发布日期: 10 十二月 2024
nginx 模块:
-
改进:js_preload_object 已重构。
-
错误修正:修复极限额定输出。
-
错误修正:优化了 js_fetch_trusted_certificate 指令的 SSL 上下文的使用。
核心:
-
特征: 为 QuickJS 引擎实现的 process 对象。
-
特征: 实现了 process.kill() 方法。
-
错误修正:修复了 libxml2 2.13 的 XML 测试 以及后来。
-
修正:修复了 Promise 被继承时 Promise 解析的问题。
-
修正:修复了克隆 VM 中的绝对范围。
njs 0.8.7 的更改
发布日期: 22 10月 2024
nginx 模块:
-
修正:消除了不必要的 VM 创建。 以前,njs 消耗 memory 与 nginx 位置的数量成正比。 该问题在 0.8.6 中引入。
-
改进:为 js_body_filter 添加了严格的语法验证。
-
改进:改进了模块加载失败的错误消息。
核心:
-
特点:已实现
fs.readlinkSync()
. -
改进:实现了惰性堆栈符号化。
-
Bugfix:修复了 heap-buffer-overflow 中的
Buffer.prototype.indexOf()
. 该问题在 0.8.6 中引入。 -
Bugfix: 修复
Buffer.prototype.lastIndexOf()
当 'from' 为 提供。
njs 0.8.6 的更改
发布日期: 02 10月 2024
nginx 模块:
核心:
-
特征: 添加
Buffer
模块。 -
错误修正: 修复了函数中空 labelled 语句的处理。
-
错误修正: 固定
Function
调用 Null 时 Constructor Handling 参数。 -
错误修正: 固定
Buffer.prototype.writeInt8()
和朋友。 -
错误修正: 固定
Buffer.prototype.writeFloat()
和朋友。 -
错误修正: 固定
Buffer.prototype.lastIndexOf()
. -
错误修正: 固定
Buffer.prototype.write()
. -
错误修正: 修复了错误创建中可能未初始化的警告。
-
错误修正: 固定
ctx.codepoint
UTF-8 解码中的初始化。 -
错误修正: 固定
length
初始化Array.prototype.pop()
. -
错误修正: 固定处理
encode
arg 在fs.readdir()
和fs.realpath()
.
njs 0.8.5 的更改
发布日期: 25 六月 2024
nginx 模块:
-
改变: UTF-8 编码中无效的字节将转换为以下字符中的替换字符:
-
r.variables.var
,r.requestText
,r.responseText
,s.variables.var
, -
这
data
参数的s.on()
回调 跟upload
或download
事件类型, -
这
data
参数的js_body_filter
命令。
使用二进制数据时,请使用:
-
r.rawVariables.var
,r.requestBuffer
,r.responseBuffer
,s.rawVariables.var
, -
这
upstream
或downstream
事件类型 为s.on()
, -
buffer_type
=buffer
为js_body_filter
.
-
-
错误修正: 固定重复检查
js_set
变量。 -
错误修正: 固定请求
Host
header(如果端口为非标准端口)。 -
错误修正: 修复了 中零长度请求正文的处理
ngx.fetch()
和r.subrequest()
. -
错误修正: 修复了 中的 heap-buffer-overflow
Headers.get()
. -
错误修正: 固定
r.subrequest()
错误处理。
核心:
-
特征: 添加
zlib
module 的QuickJS
发动机。 -
错误修正: 固定
zlib.inflate()
. -
错误修正: 固定
String.prototype.replaceAll()
替换为 0 长度的参数。 -
错误修正: 固定
retval
中异常后的处理Array.prototype.toSpliced()
,Array.prototype.toReversed()
,Array.prototype.toSorted()
. -
错误修正: 固定
RegExp.prototype[@@replace]()
带替换 包含 和 带有 Unicode 字符的字符串。$'
$`
-
错误修正: 修复了
decodeURI()
和decodeURIComponent()
. -
错误修正: 修复了参数范围的跟踪。
-
错误修正: 修复了 中的整数溢出
Date.parse()
.
njs 0.8.4 的更改
发布日期: 16 四月 2024
nginx 模块:
-
特征: 这
Server
header for outgoing header 可以设置。 -
起色: 验证 URI 和 args 参数
r.subrequest()
. -
起色: 检查重复的 js_set 变量。
-
错误修正: 固定
r.send()
没有超时的共享字典的方法 跟Buffer
论点。
核心:
-
特征: 添加
QuickJS
CLI 中的 engine 支持。 -
错误修正: 固定
atob()
带非衬垫base64
字符串。
njs 0.8.3 的变化
发布日期: 07 二月 2024
nginx 模块:
-
错误修正: 固定
Headers.set()
. -
错误修正: 固定js_set
Buffer
值。 -
错误修正: 固定
clear()
方法。 -
错误修正: 修复了启用 js_periodic 时stub_status统计信息。
核心:
-
错误修正: 使用 libxml2 2.12 修复构建 以及后来。
-
错误修正: 固定
Date
overflows 的构造函数 和NaN
值。 -
错误修正: 固定下溢
querystring.parse()
. -
错误修正: 修复了潜在的缓冲区过读
String.prototype.match()
. -
错误修正: 固定解析
for-in
循环。 -
错误修正: 固定解析 没有数字的十六进制、八进制和二进制文本。
njs 0.8.2 的变化
发布日期: 24 10月 2023
nginx 模块:
-
特征: 引入了 console 对象。 引入了以下方法:
error()
,info()
,log()
,time()
,timeEnd()
,warn()
. -
错误修正: 固定
HEAD
Fetch API 中具有较大 Content-Length 的响应处理。 -
错误修正: 固定
items()
方法。 -
错误修正: 固定
delete()
方法。
核心:
-
特征: 扩展
fs
模块。 添加fs.existsSync()
. -
错误修正: 固定
xml
模块。 中的 XML 异常处理中断xml.parse()
方法已修复。 -
错误修正: 固定
Regexp.prototype.exec()
使用全局 regexp 和 Unicode 输入。
njs 0.8.1 的更改
发布日期: 12 九月 2023
nginx 模块:
-
错误修正: 修复了 中的错误异常
r.internalRedirect()
在 0.8.0 中引入。
核心:
-
错误修正: 修复了 Key 的顺序错误
Object.getOwnPropertyNames()
.
njs 0.8.0 的变化
发布日期: 06 七月 2023
nginx 模块:
-
改变: 自 0.5.0 起已删除
r.requestBody
和r.responseBody
在http
模块。 -
改变: 在 中引发异常
r.internalRedirect()
在http
模块。 -
特征: 引入更多全球
nginx
性能:ngx.build
,ngx.conf_file_path
,ngx.error_log_path
,ngx.prefix
,ngx.version
,ngx.version_number
, 和ngx.worker_id
. -
特征: 引入了
js_shared_dict_zone
HTTP 和 Stream 的指令,允许声明在 worker 进程之间共享的字典。 -
特征: 引入全球
nginx.shared
方法和属性。 -
起色: 添加了 compile-time 选项以禁用 njs 模块。 例如,要禁用与 libxslt 相关的代码,请执行以下作:
NJS_LIBXSLT=NO ./configure .. --add-module=/path/to/njs/module
-
错误修正: 修复了 中 Location 标头的设置
http
模块。
核心:
-
改变: 本机方法由
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()
. -
特征: 添加
CryptoKey
属性。 添加了以下属性:algorithm
,extractable
,type
,usages
. -
错误修正: 固定
retval
之сrypto.getRandomValues()
. -
错误修正: 修复了使用函数表达式计算属性名称的计算。
-
错误修正: 修复了在数组中声明的函数表达式的隐式名称。
-
错误修正: 固定解析
for-in
循环。 -
错误修正: 固定
Date.parse()
使用 ISO-8601 格式和 UTC 时间偏移量。
njs 0.7.12 的更改
发布日期: 10 四月 2023
nginx 模块:
-
错误修正: 固定
Headers()
constructor 中的 constructor 进行访问。
核心:
-
特征: 添加
Hash.copy()
方法。 -
特征: 新增 zlib 模块。
-
起色: 添加了对
export {name as default}
陈述。 -
错误修正: 固定
Number
构造函数。
njs 0.7.11 的更改
发布日期: 09 三月 2023
nginx 模块:
核心:
-
特征: 添加了 XMLNode API 以修改 XML 文档。
-
改变: 删除
XML_PARSE_DTDVALID
在解析 XML 文档期间 由于安全隐患。 该漏洞在 0.7.10 中引入。 什么时候XML_PARSE_DTDVALID
启用时,libxml2 将解析并执行 XML 文档中存在的外部实体。 -
错误修正: 修复了
await
in 参数。 -
错误修正: 固定
Error()
实例转储 当”name
“ prop 不是原始的。 -
错误修正: fixed 数组实例替换为
getter
property dumping (属性转储)。 -
错误修正: 固定
njs_object_property()
跟NJS_WHITEOUT
性能。 -
错误修正: 固定
func
实例转储 替换为”name
“作为 getter。 -
错误修正: 修复了将堆栈附加到 Error 对象的问题。
-
错误修正: 固定
String.prototype.replace()
带替换 包含 “”、“”、“”。$'
$`
njs 0.7.10 的更改
发布日期: 07 二月 2023
nginx 模块:
-
特征: 添加
Request
,Response
, 和Headers
ctors 在 Fetch API 中。 -
错误修正: 修复了主进程中调用的 nginx 记录器回调。
核心:
-
特征: 在 CLI 中添加了 signal 支持。
-
特征: 添加
xml
模块。 -
特征: 扩展了对 WebCrypto 中对称密钥和非对称密钥的支持。 尤其是
JWK
格式importKey()
已添加。 -
特征: 扩展了对 WebCrypto API 中对称和非对称密钥的支持。 尤其是
JWK
格式importKey()
已添加。generateKey()
和exportKey()
也实施了。 -
特征: 添加
String.prototype.replaceAll()
. -
错误修正: 固定
for(expr1;
条件语法错误处理。 -
错误修正:
Object.values()
和Object.entries()
与外部对象。 -
错误修正: 固定
RegExp.prototype[@@replace]()
.
njs 0.7.9 的更改
发布日期: 17 十一月 2022
nginx 模块:
-
错误修正: 固定
Fetch
响应原型重新初始化。 当至少一个js_import
指令在 HTTP 和 Stream 中声明,ngx.fetch()
在 Stream 中返回了不适当的响应。 该错误是在 0.7.7 中引入的。
核心:
-
错误修正: 固定
String.prototype.replace(re)
如果re.exec()
返回非平面数组。 -
错误修正: 固定
Array.prototype.fill()
什么时候start
对象更改this
. -
错误修正: 修复了 的描述
fs.mkdir()
和fs.rmdir()
方法。 -
错误修正: 固定
%TypedArray%.prototype.set(s)
什么时候s
元素更改this
. -
错误修正: 固定
Array.prototype.splice(s,d)
什么时候d
调整this
在 EVAL 期间。 -
错误修正: 固定
for-in
循环。
njs 0.7.8 的变化
发布日期: 25 十月 2022
nginx 模块:
-
特征: 添加了 js_preload_object 指令。
-
特征: 添加
ngx.conf_prefix
财产。
-
特征: 添加
s.sendUpstream()
和s.sendDownstream()
in stream 模块。 -
特征: 添加了对
HEAD
方法。
核心:
-
特征: 添加
name
function 对象的 instance 属性。 -
特征: 添加
njs.memoryStats
对象。 -
错误修正: 固定
String.prototype.trimEnd()
使用 Unicode 字符串。 -
错误修正: 固定
Object.freeze()
使用快速数组。 -
错误修正: 固定
Object.defineProperty()
使用快速数组。 -
错误修正: 固定
async
token 作为对象的属性名称。 -
错误修正: 修复了 key 修改 base binding 时的属性 set 指令。
-
错误修正: 固定的复杂赋值。
-
错误修正: 修复了对未处理的 Promise 拒绝的处理。
-
错误修正: 修复 process.env 当存在重复的环境变量时。
-
错误修正: 修复了模块中的双重声明检测。
-
错误修正: 根据规范修复了 Bound 函数调用。
-
错误修正: 固定 的 break 标签
if
陈述。 -
错误修正: 修复了带标签的空语句。
njs 0.7.7 的更改
发布日期: 30 八月 2022
nginx 模块:
-
特征: nginx 配置上下文的数量,其中 js 指令可以指定是扩展的。
-
HTTP协议: js_import、js_path、js_set 和 js_var 指令 允许进入
server
和location
上下文。 js_content、js_body_filter 和 js_header_filter 在 if 上下文中是允许的。
-
-
特征: 添加
r.internal
财产。 -
错误修正: 修复了在 Fetch API 中读取响应正文的问题。
-
错误修正: 修复了 Stream 中的 js_fetch_timeout。
-
错误修正: 修复了插座泄漏
0
fetch 超时。
核心:
-
特征: 扩展
fs
模块。 添加fs.openSync()
,fs.promises.open()
,fs.fstatSync()
,fs.readSync()
,fs.writeSync()
.的以下属性
FileHandle
实现:fd
,read()
,stat()
,write()
,close()
. -
错误修正: 固定
parseInt()
,parseFloat()
,Symbol.for()
没有参数。
njs 0.7.6 的更改
发布日期: 19 七月 2022
nginx 模块:
-
特征: 改进
r.args{}
对象。 添加了对具有相同键的多个参数的支持。 添加了键的区分大小写。 键和值现在是百分比解码的。 -
错误修正: 固定
r.headersOut{}
setter 用于特殊标头。
核心:
-
特征: 添加
Symbol.for()
和Symbol.keyfor()
. -
错误修正: 修复了较大的非十进制文本。
-
错误修正: 修复了 Unicode 参数修剪
parseInt()
. -
错误修正: 固定
break
指令 在try-catch
块。 -
错误修正: 固定
async
CLI 中的 function 声明。
njs 0.7.5 的更改
发布日期: 21 六月 2022
nginx 模块:
-
改变: 适应 nginx 标头结构的变化。
-
错误修正: 固定
r.headersOut{}
value 不存在时的特殊 getter。 -
改变: 返回 的 undefined 值而不是空字符串
Content-Type
当标头不存在时。
核心:
-
错误修正: 修复了捕获从 awaited 函数引发的异常。
-
错误修正: fixed function value 初始化。
-
错误修正: 修复了 await 失败时的解释器。
-
错误修正: 修复了在迭代时更改源数组时的 typed-array 构造函数。
-
修正:修复
String.prototype.replace()
使用字节字符串。 -
错误修正: 修复了生成字节字符串的模板文本。
-
错误修正: 修复了具有稀疏数组的数组迭代器。
-
错误修正: 修复了将平面数组转换为慢速数组时的内存释放问题。
-
错误修正: 正确处理
NJS_DECLINE
在promise
本机函数。 -
错误修正: 修复了在 中处理类似数组的对象
Promise.all()
和朋友。
njs 0.7.4 的变化
发布日期: 24 五月 2022
nginx 模块:
-
特征: 添加了用于配置 Fetch API 的扩展指令。 为 http 和 stream 添加了以下指令:
-
改变:
r.internalRedirect()
现在接受转义的 URI。
核心:
-
特征: 添加
njs.version_number
财产。 -
特征: 添加了与 WebCrypto API 的 BoringSSL 的兼容性。
-
错误修正: 固定
Array.prototype.sort()
当 arr 大小在 Comparator 中发生变化时。 -
错误修正: 固定
Array.prototype.slice()
用慢this
论点。 -
错误修正: 的固定聚合方法
Promise
ctor 替换为类似数组的对象。 -
错误修正: 固定
String.prototype.lastIndexOf()
其中 Unicode 字符串为this
. -
错误修正: 固定
JSON.parse()
什么时候reviver
函数。 -
错误修正: 固定
Object.defineProperty()
当提供递归描述符时。 -
错误修正: 固定
Array.prototype.fill()
对于类型化数组。 -
错误修正: 根据规范使函数表达式绑定不可变。
-
错误修正: 修复了
Object.defineProperty()
.
njs 0.7.3 的更改
发布日期: 12 四月 2022
核心:
-
特征: 添加了对模块解析回调的支持。 此功能允许主机环境控制 导入的模块的加载方式。
-
错误修正: 修复了遍历导入的用户模块时的回溯。
-
错误修正: 固定
Array.prototype.concat()
什么时候this
是一个慢速数组。 -
错误修正: 从 awaited 帧中固定帧分配。
-
错误修正: 修复了大型数组文本的分配。
-
错误修正: 固定 interpreter when
toString
转换失败。
njs 0.7.2 的更改
发布日期: 25 一月 2022
核心:
-
错误修正: 固定
Array.prototype.join()
当 array 在迭代时被更改时。 -
错误修正: 固定
Array.prototype.slice()
当 array 在迭代时被更改时。 -
错误修正: 固定
Array.prototype.concat()
当 array 在迭代时被更改时。 -
错误修正: 固定
Array.prototype.reverse()
当 array 在迭代时被更改时。 -
错误修正: 固定
Buffer.concat()
替换为子数组。 感谢 Sylvain Etienne。 -
错误修正: 固定 在 resolve promise 时键入 confusion bug。
-
错误修正: 固定
Function.prototype.apply()
具有大型数组参数。 -
错误修正: 固定递归
async
函数调用。 -
错误修正: 修复了函数重新声明。 该 bug 是在 0.7.0 中引入的。
njs 0.7.1 的更改
发布日期: 28 十二月 2021
nginx 模块:
-
改变: js_include 指令 自 0.4.0 已删除以来已废弃。
-
改变: PCRE/PCRE2 特定代码已移至模块。 这可确保 njs 使用与 nginx 相同的 RegExp 库。
核心:
-
错误修正: 固定
decodeURI()
和decodeURIComponent()
字节字符串无效。 该错误是在 0.4.3 中引入的。 -
错误修正: 修复了 heap-use-after-free
await
框架。 该 bug 是在 0.7.0 中引入的。 -
错误修正: 固定 WebCrypto
sign()
和verify()
方法。 -
错误修正: 修复了 RegExp 匹配失败时引发的异常。 该错误是在 0.1.15 中引入的。
-
错误修正: 修复了捕获引发的异常
try
块 之async
功能。 该 bug 是在 0.7.0 中引入的。 -
错误修正: 固定执行
async
函数。 该 bug 是在 0.7.0 中引入的。 -
错误修正: 修复了交互模式开启时 CLI 中的函数重新声明。 该错误是在 0.6.2 中引入的。
-
错误修正: 固定
typeof
运算符替换为DataView
对象。 -
Bugfix: 消除了
Buffer.from()
.
njs 0.7.0 的更改
发布日期: 19 10月 2021
nginx 模块:
核心:
-
特征: 介绍
Async/Await
实现。 -
特征: 添加了 WebCrypto API 实现。
-
错误修正: 修复了对已声明函数的闭包的复制。 该错误是在 0.6.0 中引入的。
-
错误修正: 固定未处理
promise
handle 事件中的 rejection。 -
错误修正: 修复了 Fetch API 中的 Response.headers getter。
njs 0.6.2 的更改
发布日期: 31 八月 2021
nginx 模块:
-
错误修正: 修复了 CPU 占用问题
js_filter
在两个方向上都注册。
核心:
-
特征: 介绍
AggregateError
实现。 -
特征: 添加剩余
Promise
constructor 方法。 添加了以下方法:Promise.all()
,Promise.allSettled()
,Promise.any()
,Promise.race()
. -
起色: 从 Code generator 中删除了递归。
-
错误修正: 修复了没有绑定标识符的 REST 参数解析问题。
-
错误修正: 修复了 的 resolve/reject 回调
Promise.prototype.finally()
. -
错误修正: 固定
%TypedArray%.prototype.join()
带有分离的缓冲区。 -
错误修正: 修复了交互式 shell 中的内存泄漏。
njs 0.6.1 的更改
发布日期: 29 六月 2021
-
错误修正: 固定
RegExpBuiltinExec()
仅使用 UTF-8 正则表达式。 该错误是在 0.4.2 中引入的。 -
错误修正: 修复了使用非赋值表达式解析 export default 声明的问题。 感谢 Artem S. Povalyukhin。
njs 0.6.0 的更改
发布日期: 15 六月 2021
核心:
-
特征: 添加
let
和const
声明支持。 -
特征: 添加
RegExp.prototype[Symbol.split]
. -
特征: 添加了对 RegExp 的粘性标志支持。
-
错误修正: 修复了 中的 heap-buffer-overflow
String.prototype.lastIndexOf()
. -
错误修正: 固定
RegExp.prototype.test()
根据规范。 -
错误修正: 固定
String.prototype.split()
根据规范。 -
错误修正: 修复了在跟踪被拒绝的 Promise 时 use-of-uninitialized-value。
-
错误修正: 固定
njs.dump()
对于具有循环引用的对象。
njs 0.5.3 的更改
发布日期: 30 三月 2021
nginx 模块:
njs 0.5.2 的变化
发布日期: 09 三月 2021
nginx 模块:
-
特征: 添加了
js_body_filter
命令。
核心:
-
特征: 添加
njs.on
(exit
) 回调支持。 -
错误修正: 修复了 Not Extensible 对象的属性描述符重用问题。 感谢 Artem S. Povalyukhin。
-
错误修正: 固定
Object.freeze()
和朋友 根据规范。 感谢 Artem S. Povalyukhin。 -
错误修正: 固定
Function()
在 CLI 模式下。 -
错误修正: 固定
for-in
类型化数组值的迭代。 感谢 Artem S. Povalyukhin。
njs 0.5.1 的更改
发布日期: 16 二月 2021
nginx 模块:
-
特征: 介绍
ngx.fetch()
方法实现 Fetch API。的以下属性和方法
Response
对象实现:arrayBuffer()
,bodyUsed
,json()
,headers
,ok
,redirect
,status
,statusText
,text()
,type
,url
.显著限制: 只有
http://
方案, 不处理重定向。与 洪志道 (Hong Zhi Dao) 合作。
-
特征: 添加了
js_header_filter
命令。 -
错误修正: 修复了 Stream 模块中 body filter 中的缓冲数据处理问题。
核心:
-
错误修正: 修复了安全模式旁路
Function
构造 函数。 -
错误修正: 固定
Date.prototype.toISOString()
日期值无效。
njs 0.5.0 的变化
发布日期: 01 十二月 2020
nginx 模块:
-
特征: 引入全球
ngx
对象。添加了以下方法:
添加了以下属性:
-
ngx.INFO
,ngx.WARN
,ngx.ERR
.
-
-
特征: 添加了对
Buffer
需要 String 的对象。 -
特征: 添加了现有属性的 Buffer 版本。
添加了以下属性:
-
r.requestBuffer
(r.requestBody
),r.responseBuffer
(r.responseBody
),r.rawVariables
(r.variables
),s.rawVariables
(s.variables
).
在 stream 模块中添加了以下事件:
-
upstream
(上传)、downstream
(下载)。
-
-
起色: 向现有属性添加了别名。
添加了以下属性:
-
起色: 在 中引发异常
r.internalRedirect()
对于子请求。 -
错误修正: 固定 Promise
r.subrequest()
跟error_page
重定向。 -
错误修正: 固定
promise
事件处理。
核心:
-
特征: 添加
TypeScript
内置模块的定义。 感谢 Jakub Jirutka。 -
特征: 跟踪未处理
promise
拒绝。 -
特征: 添加了初始迭代器支持。 感谢 Artem S. Povalyukhin。
-
起色:
TypeScript
定义被重构。 感谢 Jakub Jirutka。 -
起色: 添加了对
Object.prototype.valueOf()
在Buffer.from()
. -
错误修正: 修复了 heap-use-after-free
JSON.parse()
. -
错误修正: 修复了 heap-use-after-free
JSON.stringify()
. -
错误修正: 固定
JSON.stringify()
对于通过 getter 调整大小的数组。 -
错误修正: 修复了 的 heap-buffer-overflow
RegExp.prototype[Symbol.replace]
. -
错误修正: 的固定返回值
Buffer.prototype.write*
功能。 -
错误修正: 固定
querystring.stringify()
. 感谢 Artem S. Povalyukhin。 -
错误修正: 修复了 的 catch 处理程序
Promise.prototype.finally()
. -
错误修正: 固定
querystring.parse()
.
njs 0.4.4 的变化
发布日期: 29 九月 2020
nginx 模块:
-
错误修正: 固定位置合并。
-
错误修正: 固定
r.httpVersion
对于 HTTP/2。
核心:
-
特征: 添加了对数字分隔符 (ES12) 的支持。
-
特征: 添加了
%TypedArray%.prototype
. 添加了以下方法:every()
,filter()
,find()
,findIndex()
,forEach()
,includes()
,indexOf()
,lastIndexOf()
,map()
,reduce()
,reduceRight()
,reverse()
,some()
. -
特征: 添加
%TypedArray%
其余方法。 添加了以下方法:from()
,of()
. -
特征: 添加
DataView
对象。 -
特征: 添加
Buffer
对象实现。 -
特征: 添加了对
ArrayBuffer
在TextDecoder.prototype.decode()
-
特征: 添加了对
Buffer
对象在crypto
方法。 -
特征: 添加了对
Buffer
对象在fs
方法。 -
改变:
Hash.prototype.digest()
和Hmac.prototype.digest()
现在返回一个Buffer
实例而不是字节字符串 不提供编码。 -
改变:
fs.readFile()
和朋友现在返回一个Buffer
实例 而不是字节字符串(如果未提供编码)。 -
错误修正: 固定功能
prototype
property 处理程序。 -
错误修正: 固定功能
constructor
property 处理程序。 -
错误修正: 固定
String.prototype.indexOf()
对于字节字符串。 -
错误修正: 固定
RegExpBuiltinExec()
使用全局标志和字节字符串。 -
错误修正: 固定
RegExp.prototype[Symbol.replace]
When replacement 值是一个函数。 -
错误修正: 固定
TextDecoder.prototype.decode()
使用非零TypedArray
抵消。
njs 0.4.3 的变化
发布日期: 11 八月 2020
核心:
-
特征: 添加
Query String
模块。 -
特征: 改进
fs.mkdir()
以支持递归目录创建。 感谢 Artem S. Povalyukhin。 -
特征: 改进
fs.rmdir()
以支持递归目录删除。 感谢 Artem S. Povalyukhin。 -
特征: 根据 WHATWG 编码规范引入了 UTF-8 解码器。
-
特征: 添加
TextDecoder()
和TextEncoder()
实现。 -
错误修正: 修复了解析不带分号的 return 语句。
-
错误修正: 固定
njs_number_to_int32()
适用于 big-endian 平台。 -
错误修正: 修复了 big-endian 平台上的单元测试。
-
错误修正: 修复了使用 “” 字符解析的 regexp 文本。
=
-
错误修正: 修复了赋值作中的 pre/post 递增/递减。
njs 0.4.2 的更改
发布日期: 07 七月 2020
核心:
-
特征: 添加
RegExp.prototype[Symbol.replace]
. -
特征: 引入了 Line Level Backtrace。
-
特征: 添加
%TypedArray%.prototype.sort()
. -
起色: 解析器重构。
-
错误修正: 修复了 HTTP 标头的 TypedScript API 描述。
-
错误修正: 修复了 的 TypedScript API 描述
NjsByteString
类型。 -
错误修正: 固定
String.prototype.repeat()
根据规范。 -
错误修正: 固定
String.prototype.replace()
根据规范。 -
错误修正: 修复了 regexp 文字的标志解析。
-
错误修正: 修复了 generator 中全局对象的索引生成。
-
错误修正: 固定
%TypedArray%.prototype.copyWithin()
具有非零字节偏移量。 -
错误修正: 固定
Array.prototype.splice()
对于稀疏数组。 -
错误修正: 固定
Array.prototype.reverse()
对于稀疏数组。 -
错误修正: 固定
Array.prototype.sort()
对于稀疏数组。
njs 0.4.1 的变化
发布日期: 19 五月 2020
nginx 模块:
-
特征: 在
r.headersIn{}
. -
特征: 介绍
raw headers
应用程序接口:r.rawHeadersIn[]
和r.rawHeadersOut[]
. -
特征: 新增 TypeScript API 说明。
核心:
-
错误修正: 固定
Array.prototype.slice()
对于稀疏数组。
njs 0.4.0 的更改
发布日期: 23 四月 2020
nginx 模块:
-
特征: 在
r.headersOut{}
. -
起色: 改进的迭代
r.headersOut{}
带有特殊标头。 -
起色: 改进的迭代
r.headersOut{}
与重复项。 -
改变:
r.responseBody
property 处理程序现在返回undefined
而不是在响应正文不可用时引发异常。
核心:
-
特征: 在 CLI 中添加了脚本参数支持。
-
特征: 将 externals 值转换为原生 js 对象。
-
错误修正: 修复了 NULL 指针取消引用 在
__proto__
property 处理程序。 -
错误修正: 修复了脚本末尾对 no-newline 的处理。
-
错误修正: 固定
RegExp()
构造 函数 具有空模式和非空标志。 -
错误修正: 固定
String.prototype.replace()
when 函数返回 non-string。 -
错误修正: 修复了 中伪文件的读取
fs
.
njs 0.3.9 的变化
发布日期: 03 三月 2020
nginx 模块:
-
特征: 添加了 detached 模式
r.subrequest()
. 对分离的子请求的响应将被忽略。 与普通子请求不同, 可以在变量处理程序中创建分离的子请求。
核心:
-
特征: 添加
promises
API 用于fs
模块。 感谢 Artem S. Povalyukhin。 -
特征: 扩展
fs
模块。 添加access()
,symlink()
,unlink()
,realpath()
, 和朋友。 感谢 Artem S. Povalyukhin。 -
起色: 引入了节省内存的普通数组。
-
起色: 词法分析器重构。
-
错误修正: 修复了回溯跟踪中原生函数的匹配。
-
错误修正: 修复了 中的回调调用
fs
模块。 感谢 Artem S. Povalyukhin。 -
错误修正: 固定
Object.getOwnPropertySymbols()
. -
错误修正: 修复了 中的 heap-buffer-overflow
njs_json_append_string()
. -
错误修正: 固定
encodeURI()
和decodeURI()
根据规范。 -
错误修正: 固定
Number.prototype.toPrecision()
. -
错误修正: 修复了 space 参数的处理
JSON.stringify()
. -
错误修正: 固定
JSON.stringify()
跟Number()
和String()
对象。 -
错误修正: 修复了 Unicode 转义
JSON.stringify()
根据规格。 -
错误修正: 修复了非原生模块导入问题。 感谢洪志道 (Hong Zhi Dao)。
-
错误修正: 固定
njs.dump()
使用Date()
实例。
njs 0.3.8 的变化
发布日期: 21 一月 2020
nginx 模块:
-
特征: 添加
Promise
支持r.subrequest()
. 如果未提供回调,r.subrequest()
返回一个普通的Promise
对象 解析为 SubRequest 响应对象。 -
改变:
r.parent
property 处理程序现在返回undefined
而不是在父对象不可用时引发异常。
核心:
-
特征: 添加
Promise
支持。 根据规范实施,没有:Promise.all()
,Promise.allSettled()
,Promise.race()
. -
特征: 添加了初始类型化数组支持。 感谢 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。 -
特征: 引入了 Nullish 合并运算符。
-
错误修正: 固定
Object.getPrototypeOf()
根据规范。 -
错误修正: 固定
Object.prototype.valueOf()
根据规范。 -
错误修正: 固定
JSON.stringify()
具有 unprintable values 和 replacer 功能。 -
错误修正: 固定运算符
in
根据规范。 -
错误修正: 固定
Object.defineProperties()
根据规范。 -
错误修正: 固定
Object.create()
根据规范。 感谢 Artem S. Povalyukhin。 -
错误修正: 固定
Number.prototype.toString(radix)
启用 fast-math 时。 -
错误修正: 固定
RegExp()
实例属性。 -
错误修正: 修复 Import SegFault。 感谢洪志道 (Hong Zhi Dao)。
njs 0.3.7 的更改
发布日期: 19 十一月 2019
nginx 模块:
-
起色: 重构了外部对象的迭代。
核心:
-
特征: 添加
Object.assign()
. -
特征: 添加
Array.prototype.copyWithin()
. -
特征: 在
console.time()
. -
改变: 删除
console.help()
从 CLI。 -
起色: 将构造函数和顶级对象移动到 Global Object 中。
-
起色: configure 脚本的参数验证。
-
起色: 重构了 JSON 方法。
-
错误修正: 修复了 中的 heap-buffer-overflow
njs_array_reverse_iterator()
功能。 以下功能受到影响:Array.prototype.lastIndexOf()
,Array.prototype.reduceRight()
. -
错误修正: 固定
[[Prototype]]
slot 的NativeErrors
. -
错误修正: 固定
NativeError.prototype.message
性能。 -
错误修正: 添加了
this
值 (value to object in)Array.prototype functions
. -
错误修正: 修复了 的迭代器
Array.prototype.find()
和Array.prototype.findIndex()
功能。 -
错误修正: 固定
Array.prototype.includes()
和Array.prototype.join()
跟undefined
论点。 -
错误修正: 固定
constructor
的属性Hash
和Hmac
对象。 -
错误修正: 固定
__proto__
getter 和 setter 的属性。 -
错误修正: 固定
Date
对象字符串格式。 -
错误修正: 固定处理
NaN
和-0
中的 argumentsMath.min()
和Math.max()
. -
错误修正: 固定
Math.round()
根据规范。 -
错误修正: 重新实施
bound
功能 根据规范。
njs 0.3.6 的变化
发布日期: 22 十月 2019
nginx 模块:
-
起色: 从
r.headersIn{}
.
核心:
-
特征: 新增
Function()
支持。 -
特征: 添加
Number.prototype.toFixed()
. -
特征: 添加
Number.prototype.toPrecision()
. -
特征: 添加
Number.prototype.toExponential()
. -
起色: 制作
prototype
函数实例的属性可写。 -
起色: 在编译时限制递归深度。
-
起色: 将全局函数移动到全局对象。
-
错误修正: 修复了对象字面量的原型更改。
-
错误修正: 修复了解析 regexp 文字时的 heap-buffer-overflow。
-
错误修正: 修复了解析数字 Literals 指数时的整数溢出问题。
-
错误修正: 固定
parseFloat()
. -
错误修正: 固定
Array.prototype
功能 根据规范。 修复了以下功能:every
,includes
,indexOf
,filter
,find
,findIndex
,forEach
,lastIndexOf
,map
,pop
,push
,reduce
,reduceRight
,shift
,some
,unshift
. -
错误修正: 修复了
Object.freeze()
. -
错误修正: 固定
String.prototype.replace()
当第一个参数不是字符串时。 -
错误修正: 修复了 stack-use-after-scope
Array.prototype.map()
. -
错误修正:
Date.prototype.toUTCString()
格式与 ES9 保持一致。 -
错误修正: 修复了 中的缓冲区溢出
Number.prototype.toString(radix)
. -
错误修正: 固定
Regexp.prototype.test()
对于带有反向引用的 regexp。 -
错误修正: 固定
Array.prototype.map()
对于值不存在的对象。 -
错误修正: 固定
Array.prototype.pop()
和shift()
对于稀疏对象。 -
错误修正: 固定
Date.UTC()
根据规范。 -
错误修正: 固定
Date()
构造 函数 根据规范。 -
错误修正: 固定类型
Date.prototype
. 感谢 Artem S. Povalyukhin。 -
错误修正: 固定
Date.prototype.setTime()
. 感谢 Artem S. Povalyukhin。 -
错误修正: 修复了内置函数所需的默认参数数。
-
错误修正: 固定
caller
和arguments
属性。 感谢 Artem S. Povalyukhin。
njs 0.3.5 的更改
发布日期: 15 八月 2019
核心:
-
错误修正: 修复了使用
require()
. 该错误是在 0.3.4 中引入的。 -
错误修正: 固定
[[SetPrototypeOf]]
.
njs 0.3.4 的变化
发布日期: 13 八月 2019
核心:
-
特征: 添加
Object
速记方法和计算属性名称。 感谢洪志道 (Hong Zhi Dao) 和 Artem S. Povalyukhin。 -
特征: 添加了 getter/setter 文字支持。 感谢洪志道 (Hong Zhi Dao) 和 Artem S. Povalyukhin。
-
特征: 添加
fs.renameSync()
. -
特征: 添加
String.prototype.trimEnd()
和String.prototype.trimStart()
. -
起色: 添加了 memory-sanitizer 支持。
-
起色: Unicode 事例表已更新至版本 12.1。
-
起色: 添加了字符串文本的 UTF8 验证。
-
错误修正: 修复了读取 中大小为零的文件
fs.readFileSync()
. -
错误修正: 扩展了
String.prototype.trim()
. -
错误修正: 修复了 中使用 中未初始化的值的问题
String.prototype.padStart()
. -
错误修正: 固定
String.prototype.replace()
为$0
和替换字符串。$&
-
错误修正: 固定
String.prototype.replace()
对于带有 regex 参数的字节字符串。 -
错误修正: 修复了
String.prototype.replace()
with regexp 参数。 -
错误修正: 固定
Array.prototype.slice()
对于基元类型。 -
错误修正: 修复了导入 module 时的 heap-buffer-overflow。
-
错误修正: 修复了 UTF-8 字符转义。
-
错误修正: 固定
Object.values()
和Object.entries()
对于共享对象。 -
错误修正: 修复了 中未初始化的内存访问
String.prototype.match()
. -
错误修正: 固定
String.prototype.match()
对于带有 regex 参数的字节字符串。 -
错误修正: 固定
Array.prototype.lastIndexOf()
替换为 undefined 参数。 -
错误修正: 固定
String.prototype.substring()
子字符串为空。 -
错误修正: 修复了 中的无效内存访问
String.prototype.substring()
. -
错误修正: 固定
String.fromCharCode()
对于码位大于65535
和NaN
. -
错误修正: 固定
String.prototype.toLowerCase()
和String.prototype.toUpperCase()
. -
错误修正: 固定
Error()
constructor 的 Constructor 的 API 中。 -
错误修正: 固定
in
运算符,用于具有访问器描述符的值。 -
错误修正: 固定
Object.defineProperty()
对于非布尔 Descriptor 属性。 -
错误修正: 固定
Error.prototype.toString()
具有 UTF8 字符串属性。 -
错误修正: 固定
Error.prototype.toString()
替换为 的非字符串值name
和message
.
njs 0.3.3 的变化
发布日期: 25 六月 2019
nginx 模块:
-
起色: 获取 特殊响应标头
r.headersOut{}
. -
起色: 在 中使用未知方法
r.subrequest()
. -
起色: 添加了对 null 作为
r.subrequest()
. -
错误修正: 修复了在 Stream Body Filter 中处理空输出链的问题。
核心:
-
特征: 添加了对属性 getter/setter 的运行时支持。 感谢洪志道 (Hong Zhi Dao) 和 Artem S. Povalyukhin。
-
特征: 添加
process
global 对象。 -
特征: writable 大多数内置属性和方法。
-
特征: 添加了
Array.prototype.fill()
. -
错误修正: 修复了 中的整数溢出
String.prototype.concat()
. -
错误修正: 修复了对象属性的设置。
-
错误修正: 固定
Array.prototype.toString()
. -
错误修正: 固定
Date.prototype.toJSON()
. -
错误修正: 修复了覆盖内置原型的 “constructor” 属性的问题。
-
错误修正: 修复了字符串中无效代理对的处理。
-
错误修正: 修复了 JSON 字符串中无效代理对的处理。
-
错误修正: 修复了 中的 heap-buffer-overflow
toUpperCase()
和toLowerCase()
. -
错误修正: 修复了 中转义的单独右方括号
RegExp()
构造 函数。 -
错误修正: 修复了处理 RegExp 模式字符串中的零字节字符的问题。
-
错误修正: 固定
String.prototype.toBytes()
对于 ASCII 字符串。 -
错误修正: 修复了 JSON 数字的真值
JSON.parse()
. -
错误修正: 修复了 中的未初始化值的使用
njs_string_replace_join()
. -
错误修正: 固定
parseInt('-0')
. 感谢 Artem S. Povalyukhin。
njs 0.3.2 的变化
发布日期: 21 五月 2019
核心:
-
特征: 添加了对模板文本的支持。 感谢洪志道 (Hong Zhi Dao) 和 Artem S. Povalyukhin。
-
特征: 从命令行参数执行命令。
-
特征: 添加了对 RegExp 的支持
groups
对象 (ES9)。 -
特征: 添加了块范围的函数定义支持。
-
特征: 添加了对使用 GNU Readline 库构建的支持。
-
特征: 可配置
length
,name
, 以及大多数内置方法。 -
特征: 使所有构造函数属性都可配置。
-
错误修正: 固定
Regexp.prototype.exec()
对于仅限 Unicode 的 regexp。 -
错误修正: 固定
njs_vm_value_dump()
表示空字符串值。 -
错误修正: 修复了 regexp 值参数的 RegExp 构造函数。
-
错误修正: 修复了在迭代对象期间在原型链上行走的问题。
-
错误修正: 修复了 中的溢出
Array.prototype.concat()
. -
错误修正: 带转义字符的 UTF-8 字符串的固定长度计算。
-
错误修正: 修复了解析代理项对显示为 UTF-16 转义序列的问题。
-
错误修正: 修复了处理 “*” 量词的问题
String.prototype.match()
. -
错误修正: 固定
Date()
constructor 中。 -
错误修正: fixed 数组扩展。
-
错误修正: 修复了 中的 heap-buffer-overflow
String.prototype.replace()
. -
错误修正: 修复了 中的 heap-buffer-overflow
String.prototype.lastIndexOf()
. -
错误修正: 修复了使用转义反斜杠解析的 regexp 文本 和方括号中的反斜杠。
-
错误修正: 修复了带有单独右括号的 regexp 文字。
-
错误修正: 修复了 uninitialized-memory-access
Object.defineProperties()
. -
错误修正: 修复了处理 “*” 量词的问题
String.prototype.replace()
. -
错误修正: 固定
Array.prototype.slice()
对于 UTF8 无效的字节字符串。 -
错误修正: 固定
String.prototype.split()
对于 UTF8 无效的字节字符串。 -
错误修正: 修复了空块语句的处理。
njs 0.3.1 的变化
发布日期: 16 四月 2019
核心:
-
特征: 添加了箭头函数支持。 感谢洪志道 (Hong Zhi Dao) 和 Artem S. Povalyukhin。
-
特征: 添加
Object.getOwnPropertyNames()
. 感谢 Artem S. Povalyukhin。 -
特征: 添加
Object.getOwnPropertyDescriptors()
. 感谢 Artem S. Povalyukhin。 -
特征: 制作
__proto__
访问器描述符 之Object
实例可变的。 -
特征: 在 CLI 中添加了 shebang 支持。
-
特征: 添加了对 CLI 中模块模式执行的支持。 在 module mode global 中,这是不可用的。
-
错误修正: 修复了 EditLine 检测。
-
错误修正: 固定
Function.prototype.bind()
. 感谢洪志道 (Hong Zhi Dao)。 -
错误修正: 修复了函数参数重复的检查。 感谢洪志道 (Hong Zhi Dao)。
-
错误修正: fixed 函数声明。 感谢洪志道 (Hong Zhi Dao)。
-
起色: 与对象、变量和 函数。 感谢洪志道 (Hong Zhi Dao)。
-
起色: 大值输出改进
console.log()
. -
起色: 字符串输出在
console.log()
以合规的方式(没有转义和引号)。 -
起色: 使用 ES6 版本的
ToInt32()
,ToUint32()
,ToLength()
.
njs 0.3.0 的更改
发布日期: 26 三月 2019
nginx 模块:
-
改变: 返回 undefined 值而不是空字符串 对于以下对象中不存在的属性:
r.args{}
,r.headersIn{}
,r.headersOut{}
,r.variables{}
,s.variables{}
. -
改变: 返回 undefined 值,而不是引发
r.requestBody
当请求正文不可用时。 -
错误修正: 修复了迭代时发生的崩溃
r.args{}
当键值对中缺少值时。
核心:
-
特征: 添加了初始 ES6 模块支持。 支持 default import 和 default export 语句。 感谢洪志道 (Hong Zhi Dao)。
-
特征: 添加
Object.prototype.propertyIsEnumerable()
. -
特征: 在 Disassembler 输出中报告 File Name 和 Function Name。
-
错误修正: 修复了交互式 shell 中的函数重新声明。 感谢洪志道 (Hong Zhi Dao)。
-
错误修正: 修复了 RegExp 文本解析。
-
错误修正: 固定 UTF8 字符串的设置长度
fs.readFileSync()
. -
错误修正: 固定
nxt_file_dirname()
对于没有 dir 组件的路径。
njs 0.2.8 的变化
发布日期: 26 二月 2019
nginx 模块:
-
改变: 删除了 0.2.2 中废弃的 HTTP 请求的属性。
-
特征: 在 中添加了对 DELETE作的支持
r.headersOut{}
. -
特征: 添加了对设置 nginx 变量的支持。
-
错误修正: 固定
r.subrequest()
对于空正文值。 -
起色: 在 中设置特殊响应标头
r.headersOut{}
.
核心:
-
特征: 添加了标签支持。
-
特征: 添加
setImmediate()
方法。 -
特征: 添加了对 Object 字面量的简写属性名称的支持。
-
错误修正: 固定
Function.prototype.bind()
. -
错误修正: 修复了包含换行符的字符串文本的解析。
-
错误修正: 修复了报告变量引用错误中的行号。
-
错误修正: 修复了长 UTF8 字符串的创建。
-
错误修正: 固定 在 中设置特殊响应标头
String.prototype.split()
对于 Unicode 字符串。 -
错误修正: 修复了 中的 heap-buffer-overflow
String.prototype.split()
. -
错误修正: 固定
Array.prototype.fill()
. 感谢 Artem S. Povalyukhin。 -
起色: 重构了函数调用相关的代码。 感谢洪志道 (Hong Zhi Dao)。
-
起色: 重构了与变量相关的代码。 感谢洪志道 (Hong Zhi Dao)。
-
改进:解析器被重构。 感谢洪志道 (Hong Zhi Dao)。
-
起色: 在 Exceptions 中报告 filenames。
njs 0.2.7 的变化
发布日期: 25 十二月 2018
核心:
-
特征: REST 参数语法(不支持解构)。 感谢 Alexander Pyshchev。
-
特征: 添加
Object.entries()
方法。 -
特征: 添加
Object.values()
方法。 -
起色: 代码生成器重构和简化。
-
错误修正: 修复了自动分号插入。
-
错误修正: 修复了 Compound Assignment 中的 assignment 表达式。
-
错误修正: 修复了 Byte 和 UTF8 字符串的比较。
-
错误修正: 修复了 中的迭代变量类型
for-in
替换为数组值。 -
错误修正: 修复了在没有 librt 的平台上建造的问题。
-
错误修正: 其他错误已修复。
njs 0.2.6 的变化
发布日期: 27 十一月 2018
核心:
-
特征: 使内置原型可变。
-
特征: 使全局对象可变。
-
特征: 允许重新声明变量和函数。
-
特征: 扩展
Object.defineProperty()
规范一致性。 -
特征: 为 CLI 引入了安静模式,以处理来自 stdin 的简单表达式。
-
特征: 引入了 Compact 形式的回溯跟踪来处理堆栈溢出。
-
起色: 改进了各种例外情况的措辞。
-
错误修正: 修复了 Closure 值处理。
-
错误修正: 修复了各种值类型的相等运算符。
-
错误修正: 固定处理
this
keyword 的 intent 调用。 -
错误修正: 修复了 中的非对象值处理
Object.keys()
. -
错误修正: 修复了内部 throw 语句的解析
if
陈述。 -
错误修正: 修复了 throw 语句后换行符的解析。
-
错误修正: 修复了 if 语句中不带换行符的语句解析。
-
错误修正: 固定大小
uint32_t
溢出 在njs_array_expand()
. -
错误修正: 固定
typeof
算子 为object_value
类型。 -
错误修正: 其他错误已修复。
njs 0.2.5 的变化
发布日期: 30 十月 2018
nginx 模块:
-
错误修正: 修复了 Stream 模块中待处理事件的计数问题。
-
错误修正: 固定
s.off()
in stream 模块。 -
错误修正: 修复了 中数据块的处理
js_filter
in stream 模块。 -
错误修正: 固定 HTTP
status
和contentType
getter 的 HTTP 模块。 -
错误修正: 修复了 HTTP 模块中的 HTTP 响应和父 getter。
核心:
-
特征: arguments 对象支持。
-
特征: 非整数分数支持。
-
起色: 处理 中的非数组值
Array.prototype.slice()
. -
错误修正: 固定
Array.prototype.length
setter -
错误修正: 固定
njs_array_alloc()
长度> 2**31。 -
错误修正: 处理 int 溢出
njs_array_alloc()
在 32 位拱门上。 -
错误修正: 修复了 Code Size Mismatch 错误消息。
-
错误修正: 修复了循环中的 delete 运算符。
-
错误修正: 固定
Object.getOwnPropertyDescriptor()
对于复杂对象(继承自Array
和string
值)。 -
错误修正: 固定
Object.prototype.hasOwnProperty()
对于非对象属性 -
错误修正: 其他错误已修复。
njs 0.2.4 的变化
发布日期: 18 九月 2018
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
(用于读取,替换为 data 参数 对应的回调,用于编写s.send()
).s.fromUpstream
(替换为相应事件的回调)。s.eof
(替换为flags.last
).
核心:
-
特征: 添加
Function.prototype.length
. -
特征: 引入了沙盒模式。
-
起色: 在适当的地方添加了异常字符串。
-
起色: 改进了 Primitive Type Conversion 异常的措辞。
-
错误修正: 扔
TypeError
用于尝试更改冻结属性。 -
错误修正: 固定
Object.defineProperty()
对于现有属性。 -
错误修正: 尊重 enumerable 属性,同时通过 for in 进行迭代。
-
错误修正: respect writable 属性。
-
错误修正: 修复了函数参数中的异常处理。
-
错误修正: 固定
Object.prototype.toString
对于不同的值类型。 -
错误修正: 固定
Object()
constructor 的 Array 参数。 -
错误修正: 修复了对象和字符串的比较。
-
错误修正: 固定
String.slice()
for undefined 参数。 -
错误修正: 其他错误已修复。
njs 0.2.3 的更改
发布日期: 31 七月 2018
nginx 模块:
-
错误修正: 从
Reply
对象导致分段错误。 -
错误修正: 获取主 HTTP Request 对象的 parent 属性会导致分段错误。
核心:
-
特征: 添加了 Values 的 Pretty String 表示形式。
-
特征: 正确打印浮点数。
-
特征: 正确解析浮点数。
-
特征:
String.bytesFrom()
方法 (解码hex
,base64
,base64url
转换为字节字符串)。 -
特征:
String.padStart()
和String.padEnd()
方法。 -
特征: 添加了对二进制文本的支持。
-
起色: 添加了 Number 解析中有关 Illegal Token 的信息。
-
起色: 允许大写
O
以八进制文本值为单位。 -
起色: 在
console.log()
. -
错误修正: 固定应用
call()
到外部值的方法。 -
错误修正: 修复了应用于对象的加法运算符。
-
错误修正: 修复了 中的异常处理
njs_vm_value_to_ext_string()
. -
错误修正: 固定
Number()
带有 boolean、null 和 undefined 参数。 -
错误修正: 修复了设置非数字的错误处理
Array.length
. -
错误修正: 修复了全局对象的自动完成。
-
错误修正: 其他错误已修复。
njs 0.2.2 的变化
发布日期: 19 六月 2018
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() 方法。
核心:
-
错误修正: 修复了 中的 heap-buffer-overflow
crypto.createHmac()
.
njs 0.2.1 的变化
发布日期: 31 五月 2018
nginx 模块:
-
特征: HTTP 请求体 getter 中。
-
起色: 将 NJS VM 移动到
main
配置。 -
起色: 改进了 js_set 和 js_content 指令的日志记录。
-
起色: 在 js_content 处理程序中将 Status Code 默认设置为 500
-
起色: 在 js_content 处理程序中添加了返回状态代码的调试
-
修正:修复了 js_include 中的错误日志记录。
核心:
-
特征: 添加了数组长度 setter。
-
起色: 公共标头
cleanup. njscript.h
已重命名为njs.h
. -
错误修正: 固定加密
update()
method 之后digest()
被调用。 -
错误修正: 固定
crypto.createHmac()
对于大小为 <= ALG 大小的键 > 64 人。 -
错误修正: 固定
JSON.stringify()
对于具有空单元格的数组。 -
错误修正: 修复了 中不支持类型的异常类型
JSON.stringify()
. -
错误修正: 修复了对函数的未定义参数的处理。
-
错误修正: 修复了缺失的处理
arg
之Object.getOwnPropertyDescriptor()
. -
错误修正: 修复了 中的属性处理
Object.getOwnPropertyDescriptor()
. -
错误修正: 修复了
Array.length
财产。 -
修正:修复返回值类型
clearTimeout()
. -
错误修正: 固定
njs_vm_external_bind()
. -
错误修正: 其他错误已修复。
njs 0.2.0 的更改
发布日期: 03 四月 2018
-
特征: 通过 CLI 报告 njs 版本。
-
特征: 类型转换异常的文本描述。
- 特征:
setTimeout()
和clearTimeout()
方法。 -
特征: Byte string 设置为
hex
,base64
,base64url
编码。 -
特点:Node.js风格
Crypto
方法。 -
特征: HTTP 和流
warn()
和error()
方法。 -
特征: HTTP 协议
subrequest()
方法。 -
特征: HTTP 协议
return()
方法。 -
错误修正: 其他错误已在核心和 交互式 shell。
njs 0.1.15 的更改
发布日期: 20 十一月 2017
-
特征:
Error
,EvalError
,InternalError
,RangeError
,ReferenceError
,SyntaxError
,TypeError
,URIError
对象。 -
特征: 八进制字面量支持。
-
特点:Node.js风格
File system
访问方法:fs.readFile()
,fs.readFileSync()
,fs.appendFile()
,fs.appendFileSync()
,fs.writeFile()
,fs.writeFileSync()
. -
特征: nginx 模块在异常时打印 backtrace。
-
错误修正: 其他错误已修复。
njs 0.1.14 的更改
发布日期: 09 十月 2017
-
特征: JSON 对象。
-
特征: 交互式 shell 中的对象级完成。
-
特征: 各种配置改进。
-
错误修正: 其他错误已在核心和 交互式 shell。
njs 0.1.13 的变化
发布日期: 31 八月 2017
-
特征:
console.log()
和console.help()
交互式 shell 中的方法。 -
特征: 交互式 shell 在异常时打印 Backtrace。
-
特征: 默认为 interactive shell 如果
libedit
可用。 -
错误修正: 处理大文件
stdin
在命令行模式下。 -
错误修正: 改进
editline
检波。
njs 0.1.12 的变化
发布日期: 08 八月 2017
-
特征: 交互式 shell。
-
错误修正: 在
Object.isSealed()
.
njs 0.1.11 的变化
发布日期: 27 六月 2017
-
特征:
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 的变化
发布日期: 04 四月 2017
-
特征: 嵌套函数和函数闭包。
-
特征:
Array.of()
,Array.prototype.fill()
,Array.prototype.find()
,Array.prototype.findIndex()
方法。 -
错误修正: 其他错误和分段错误已修复。
njs 0.1.9 的更改
发布日期: 01 二月 2017
-
错误修正: 使用 njs 时未初始化全局变量 在 nginx 中。
njs 0.1.8 的变化
发布日期: 24 一月 2017
-
改变: 这
strict
mode 被强制执行, 变量必须显式声明。 -
特征:
for
和for-in
Loop 支持变量声明。 -
错误修正: global 和 function 范围已修复。
-
错误修正: 现在
for-in
loop 不会丢弃最后一个值 of 属性变量。 -
错误修正: 其他错误和分段错误已修复。
njs 0.1.7 的变化
发布日期: 27 十二月 2016
-
改变: js_include 指令 已在 Server 和 Location 级别禁用。
-
特征: 幂运算符。
-
错误修正: 其他错误和分段错误已修复。
njs 0.1.6 的更改
发布日期: 13 十二月 2016
-
改变: js_set 指令 已在 Server 和 Location 级别禁用。
-
特征: ES6 系列
Math
方法。 -
错误修正: 其他错误和分段错误已修复。