变化
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.codepointUTF-8 解码中的初始化。 -
错误修正: 固定
length初始化Array.prototype.pop(). -
错误修正: 固定处理
encodearg 在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变量。 -
错误修正: 固定请求
Hostheader(如果端口为非标准端口)。 -
错误修正: 修复了 中零长度请求正文的处理
ngx.fetch()和r.subrequest(). -
错误修正: 修复了 中的 heap-buffer-overflow
Headers.get(). -
错误修正: 固定
r.subrequest()错误处理。
核心:
-
特征: 添加
zlibmodule 的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 模块:
-
特征: 这
Serverheader for outgoing header 可以设置。 -
起色: 验证 URI 和 args 参数
r.subrequest(). -
起色: 检查重复的 js_set 变量。
-
错误修正: 固定
r.send()没有超时的共享字典的方法 跟Buffer论点。
核心:
-
特征: 添加
QuickJSCLI 中的 engine 支持。 -
错误修正: 固定
atob()带非衬垫base64字符串。
njs 0.8.3 的变化
发布日期: 07 二月 2024
nginx 模块:
-
错误修正: 固定
Headers.set(). -
错误修正: 固定js_set
Buffer值。 -
错误修正: 固定
clear()方法。 -
错误修正: 修复了启用 js_periodic 时stub_status统计信息。
核心:
-
错误修正: 使用 libxml2 2.12 修复构建 以及后来。
-
错误修正: 固定
Dateoverflows 的构造函数 和NaN值。 -
错误修正: 固定下溢
querystring.parse(). -
错误修正: 修复了潜在的缓冲区过读
String.prototype.match(). -
错误修正: 固定解析
for-in循环。 -
错误修正: 固定解析 没有数字的十六进制、八进制和二进制文本。
njs 0.8.2 的变化
发布日期: 24 10月 2023
nginx 模块:
-
特征: 引入了 console 对象。 引入了以下方法:
error(),info(),log(),time(),timeEnd(),warn(). -
错误修正: 固定
HEADFetch 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_zoneHTTP 和 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 文档中存在的外部实体。 -
错误修正: 修复了
awaitin 参数。 -
错误修正: 固定
Error()实例转储 当”name“ prop 不是原始的。 -
错误修正: fixed 数组实例替换为
getterproperty dumping (属性转储)。 -
错误修正: 固定
njs_object_property()跟NJS_WHITEOUT性能。 -
错误修正: 固定
func实例转储 替换为”name“作为 getter。 -
错误修正: 修复了将堆栈附加到 Error 对象的问题。
-
错误修正: 固定
String.prototype.replace()带替换 包含 “”、“”、“”。$'$`
njs 0.7.10 的更改
发布日期: 07 二月 2023
nginx 模块:
-
特征: 添加
Request,Response, 和Headersctors 在 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方法。
核心:
-
特征: 添加
namefunction 对象的 instance 属性。 -
特征: 添加
njs.memoryStats对象。 -
错误修正: 固定
String.prototype.trimEnd()使用 Unicode 字符串。 -
错误修正: 固定
Object.freeze()使用快速数组。 -
错误修正: 固定
Object.defineProperty()使用快速数组。 -
错误修正: 固定
asynctoken 作为对象的属性名称。 -
错误修正: 修复了 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。
-
错误修正: 修复了插座泄漏
0fetch 超时。
核心:
-
特征: 扩展
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块。 -
错误修正: 固定
asyncCLI 中的 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论点。 -
错误修正: 的固定聚合方法
Promisector 替换为类似数组的对象。 -
错误修正: 固定
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 中引入的。
-
错误修正: 固定未处理
promisehandle 事件中的 rejection。 -
错误修正: 修复了 Fetch API 中的 Response.headers getter。
njs 0.6.2 的更改
发布日期: 31 八月 2021
nginx 模块:
-
错误修正: 修复了 CPU 占用问题
js_filter在两个方向上都注册。
核心:
-
特征: 介绍
AggregateError实现。 -
特征: 添加剩余
Promiseconstructor 方法。 添加了以下方法: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实例 而不是字节字符串(如果未提供编码)。 -
错误修正: 固定功能
prototypeproperty 处理程序。 -
错误修正: 固定功能
constructorproperty 处理程序。 -
错误修正: 固定
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.responseBodyproperty 处理程序现在返回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(). 对分离的子请求的响应将被忽略。 与普通子请求不同, 可以在变量处理程序中创建分离的子请求。
核心:
-
特征: 添加
promisesAPI 用于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.parentproperty 处理程序现在返回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。
-
特征: 添加
processglobal 对象。 -
特征: 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 值处理。
-
错误修正: 修复了各种值类型的相等运算符。
-
错误修正: 固定处理
thiskeyword 的 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_filterin stream 模块。 -
错误修正: 固定 HTTP
status和contentTypegetter 的 HTTP 模块。 -
错误修正: 修复了 HTTP 模块中的 HTTP 响应和父 getter。
核心:
-
特征: arguments 对象支持。
-
特征: 非整数分数支持。
-
起色: 处理 中的非数组值
Array.prototype.slice(). -
错误修正: 固定
Array.prototype.lengthsetter -
错误修正: 固定
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
-
改变: 这
strictmode 被强制执行, 变量必须显式声明。 -
特征:
for和for-inLoop 支持变量声明。 -
错误修正: global 和 function 范围已修复。
-
错误修正: 现在
for-inloop 不会丢弃最后一个值 of 属性变量。 -
错误修正: 其他错误和分段错误已修复。
njs 0.1.7 的变化
发布日期: 27 十二月 2016
-
改变: js_include 指令 已在 Server 和 Location 级别禁用。
-
特征: 幂运算符。
-
错误修正: 其他错误和分段错误已修复。
njs 0.1.6 的更改
发布日期: 13 十二月 2016
-
改变: js_set 指令 已在 Server 和 Location 级别禁用。
-
特征: ES6 系列
Math方法。 -
错误修正: 其他错误和分段错误已修复。