nginx / current / reference / njs-changes.html

Changes

njs 0.4.2 的更改

发行日期:2020 年 7 月 7 日

Core:

  • 功能:已添加RegExp.prototype[Symbol.replace]

  • 功能:引入了线路电平回溯。

  • 功能:已添加%TypedArray%.prototype.sort()

  • 功能:扩展的fs模块。添加了mkdir()readdir()rmdir()和朋友。

  • 改进:解析器重构。

  • 错误修正:修复了 HTTPHeaders 的 TypedScript API 描述。

  • 错误修正:修复了NjsByteString类型的 TypedScript API 描述。

  • 错误修正:根据规范修复了String.prototype.repeat()

  • 错误修正:根据规范修复了String.prototype.replace()

  • 错误修正:修复了正则表达式文字标志的解析。

  • 错误修正:修复了生成器中全局对象的索引生成。

  • 错误修正:修正了%TypedArray%.prototype.copyWithin()的字节偏移量非零。

  • 错误修正:修复了稀疏数组的Array.prototype.splice()

  • 错误修正:修复了稀疏数组的Array.prototype.reverse()

  • 错误修正:修复了稀疏数组的Array.prototype.sort()

njs 0.4.1 的更改

发行日期:2020 年 5 月 19 日

nginx modules:

Core:

  • 错误修正:修复了稀疏数组的Array.prototype.slice()

njs 0.4.0 的更改

发布日期:2020 年 4 月 23 日

nginx modules:

  • 功能:在r.headersOut{}中增加了对多值 Headers 的支持。

  • 功能:为httpstream添加了js_import指令。

  • 改进:改进了带有特殊 Headers 的r.headersOut{}的迭代。

  • 改进:改进了与r.headersOut{}重复的迭代。

  • 更改:如果响应正文不可用,r.responseBody属性处理程序现在将返回undefined而不是引发异常。

Core:

  • 功能:在 CLI 中添加了脚本参数支持。

  • 功能:将外部值转换为本地 js 对象。

  • 错误修正:修复了__proto__属性处理程序中的 NULL 指针取消引用。

  • 错误修正:修复了脚本末尾无换行符的处理。

  • 错误修正:使用空模式和非空标志修复了RegExp()构造函数。

  • 错误修正:修复了函数返回非字符串时的String.prototype.replace()的问题。

  • 错误修正:修复了fs中伪文件的读取。

njs 0.3.9 的更改

发行日期:2020 年 3 月 3 日

nginx modules:

  • 功能:为r.subrequest()添加了分离模式。对分离的子请求的响应将被忽略。与普通的子请求不同,可以在变量处理程序内部创建分离的子请求。

Core:

  • 功能:为fs模块添加了promises API。感谢 Artem S. Povalyukhin。

  • 功能:扩展的fs模块。添加了access()symlink()unlink()realpath()和朋友。感谢 Artem S. Povalyukhin。

  • 改进:引入了内存有效的普通数组。

  • 改进:词法分析器重构。

  • 错误修正:修复了回溯中本机函数的匹配问题。

  • 错误修正:修复了fs模块中的回调调用。感谢 Artem S. Povalyukhin。

  • 错误修正:修复了Object.getOwnPropertySymbols()

  • 错误修正:修复了njs_json_append_string()中的 heap-buffer-overflow。

  • 错误修正:根据规范修复了encodeURI()decodeURI()

  • 错误修正:修复了Number.prototype.toPrecision()

  • 错误修正:修复了JSON.stringify()中的 space 参数的处理。

  • 错误修正:修复了JSON.stringify()Number()String()对象。

  • 错误修正:根据规范,修复了JSON.stringify()中的 Unicode 转义。

  • 错误修正:修复了 nonlocal 模块的导入。感谢洪志道。

  • 错误修正:使用容器中的Date()实例修复了njs.dump()

njs 0.3.8 的更改

发布日期:2020 年 1 月 21 日

nginx modules:

  • 功能:增加了对r.subrequest()Promise支持。如果未提供回调,则r.subrequest()返回解析为子请求响应对象的普通Promise对象。

  • 更改:r.parent属性处理程序现在返回undefined,而不是在父对象不可用时引发异常。

Core:

  • 功能:添加了Promise支持。根据规范实现,不包含Promise.all()Promise.allSettled()Promise.race()

  • 功能:添加了初始的 Typed-arrays 支持。感谢 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。

  • 功能:引入了无效的合并运算符。

  • 错误修正:根据规范修复了Object.getPrototypeOf()

  • 错误修正:根据规范修复了Object.prototype.valueOf()

  • 错误修正:使用无法打印的值和替换功能修复了JSON.stringify()

  • 错误修正:根据规范修复了运算符in

  • 错误修正:根据规范修复了Object.defineProperties()

  • 错误修正:根据规范修复了Object.create()。感谢 Artem S. Povalyukhin。

  • 错误修正:启用快速 math 时,修复了Number.prototype.toString(radix)

  • 错误修正:修复了RegExp()个实例属性。

  • 错误修正:修复了导入段错误。感谢洪志道。

njs 0.3.7 的更改

发行日期:2019 年 11 月 19 日

nginx modules:

  • 改进:在外部对象上重构迭代。

Core:

  • 功能:已添加Object.assign()

  • 功能:已添加Array.prototype.copyWithin()

  • 功能:在console.time()中增加了对标签的支持。

  • 更改:从 CLI 中删除了console.help()

  • 改进:将构造函数和顶级对象移至全局对象。

  • 改进:配置脚本的参数验证。

  • 改进:重构 JSON 方法。

  • 错误修正:修复了njs_array_reverse_iterator()函数中的堆缓冲区溢出。以下功能受到影响:Array.prototype.lastIndexOf()Array.prototype.reduceRight()

  • 错误修正:修复了[[Prototype]]插槽NativeErrors

  • 错误修正:修复了NativeError.prototype.message个属性。

  • 错误修正:已将this值转换为Array.prototype functions中的对象。

  • 错误修正:修复了Array.prototype.find()Array.prototype.findIndex()函数的迭代器。

  • 错误修正:使用undefined参数修复了Array.prototype.includes()Array.prototype.join()

  • 错误修正:修复了HashHmac对象的constructor属性。

  • 错误修正:修复了获取器和设置器的__proto__属性。

  • 错误修正:修复了Date对象字符串格式。

  • 错误修正:修复了Math.min()Math.max()中的NaN-0参数的处理。

  • 错误修正:根据规范修复了Math.round()

  • 错误修正:根据规范重新实现了bound功能。

njs 0.3.6 的更改

发行日期:2019 年 10 月 22 日

nginx modules:

Core:

  • 功能:添加了新的Function()支持。

  • 功能:已添加Number.prototype.toFixed()

  • 功能:已添加Number.prototype.toPrecision()

  • 功能:已添加Number.prototype.toExponential()

  • 改进:使函数实例的prototype属性可写。

  • 改进:在编译时限制递归深度。

  • 改进:将全局功能移到全局对象。

  • 错误修正:修复了对象文字的原型变异。

  • 错误修正:修复了解析正则表达式文字时的堆缓冲区溢出问题。

  • 错误修正:修复了数字文字指数解析时的整数溢出问题。

  • 错误修正:修复了parseFloat()

  • 错误修正:根据规范修复了Array.prototype个功能。固定了以下功能:everyincludesindexOffilterfindfindIndexforEachlastIndexOfmappoppushreducereduceRightshiftsomeunshift

  • 错误修正:修复了Object.freeze()中访问 Descriptors 的处理。

  • 错误修正:修复了第一个参数不是字符串时String.prototype.replace()的问题。

  • 错误修正:修复了Array.prototype.map()中的 stack-use-after-scope。

  • 错误修正:Date.prototype.toUTCString()格式已与 ES9 对齐。

  • 错误修正:修复了Number.prototype.toString(radix)中的缓冲区溢出。

  • 错误修正:修复了带有反向引用的正则表达式的Regexp.prototype.test()

  • 错误修正:修复了Array.prototype.map()值不存在的对象。

  • 错误修正:修复了稀疏对象的Array.prototype.pop()shift()

  • 错误修正:根据规范修复了Date.UTC()

  • 错误修正:根据规范修复了Date()构造函数。

  • 错误修正:固定类型为Date.prototype。感谢 Artem S. Povalyukhin。

  • 错误修正:修复了Date.prototype.setTime()。感谢 Artem S. Povalyukhin。

  • 错误修正:修复了内置函数期望的默认参数个数。

  • 错误修正:修复了功能实例的callerarguments属性。感谢 Artem S. Povalyukhin。

njs 0.3.5 的更改

发行日期:2019 年 8 月 15 日

Core:

  • 错误修正:修复了使用require()导入模块的问题。该错误是在0.3.4中引入的。

  • 错误修正:修复了[[SetPrototypeOf]]

njs 0.3.4 的更改

发行日期:2019 年 8 月 13 日

Core:

  • 功能:添加了Object个速记方法和计算出的属性名称。感谢洪志道(洪志道)和 Artem S. Povalyukhin。

  • 功能:添加了 getter/setter 文字支持。感谢洪志道(洪志道)和 Artem S. Povalyukhin。

  • 功能:已添加fs.renameSync()

  • 功能:添加了String.prototype.trimEnd()String.prototype.trimStart()

  • 改进:添加了内存清理程序支持。

  • 改进:Unicode 案例表已更新至版本 12.1.

  • 改进:为字符串文字添加了 UTF8 验证。

  • 错误修正:修复了读取fs.readFileSync()中大小为零的文件。

  • 错误修正:扩展了String.prototype.trim()中的空格分隔符列表。

  • 错误修正:修复了String.prototype.padStart()中未初始化值的使用。

  • 错误修正:已将String.prototype.replace()替换为$0$&替换字符串。

  • 错误修正:使用正则表达式参数修复了字节串的String.prototype.replace()

  • 错误修正:使用 regexp 参数修复了String.prototype.replace()中的全局匹配。

  • 错误修正:修正了Array.prototype.slice()的原始类型。

  • 错误修正:修复了导入模块时堆缓冲区溢出的问题。

  • 错误修正:修正了 UTF-8 字符转义的问题。

  • 错误修正:修复了共享对象的Object.values()Object.entries()

  • 错误修正:修复了String.prototype.match()中未初始化的内存访问。

  • 错误修正:使用正则表达式参数修复了字节串的String.prototype.match()

  • 错误修正:使用未定义的参数修复了Array.prototype.lastIndexOf()

  • 错误修正:修正了String.prototype.substring()的子字符串为空。

  • 错误修正:修复了String.prototype.substring()中无效的内存访问。

  • 错误修正:修复了String.fromCharCode()的代码点超过65535NaN的问题。

  • 错误修正:修复了String.prototype.toLowerCase()String.prototype.toUpperCase()

  • 错误修正:修复了没有参数的Error()构造函数。

  • 错误修正:修复了带有访问 Descriptors 的值的in运算符。

  • 错误修正:修复了非 BooleanDescriptors 道具的Object.defineProperty()

  • 错误修正:使用 UTF8 字符串属性修复了Error.prototype.toString()

  • 错误修正:使用非字符串值namemessage修复了Error.prototype.toString()

njs 0.3.3 的更改

发行日期:2019 年 6 月 25 日

nginx modules:

  • 改进:在r.headersOut{}中获得特殊的响应头。

  • 改进:使用r.subrequest()中的未知方法。

  • 改进:添加了对 null 的支持,作为r.subrequest()的第二个参数。

  • 错误修正:修复了在流主体过滤器中处理空输出链的问题。

Core:

  • 功能:添加了对属性获取器/设置器的运行时支持。感谢洪志道(洪志道)和 Artem S. Povalyukhin。

  • 功能:添加了process全局对象。

  • 功能:可写的大多数内置属性和方法。

  • 功能:添加了Array.prototype.fill()的通用实现。

  • 错误修正:修复了String.prototype.concat()中的整数溢出。

  • 错误修正:修复了对象属性的设置。

  • 错误修正:修复了Array.prototype.toString()

  • 错误修正:修复了Date.prototype.toJSON()

  • 错误修正:修复了覆盖内置原型的“构造函数”属性的问题。

  • 错误修正:修复了字符串中无效代理对的处理。

  • 错误修正:修复了 JSON 字符串中无效代理对的处理。

  • 错误修正:修复了toUpperCase()toLowerCase()中的堆缓冲区溢出。

  • 错误修正:修复了在RegExp()构造函数中转义单独的右方括号。

  • 错误修正:修复了处理 RegExp 模式字符串中的零字节字符的问题。

  • 错误修正:已将String.prototype.toBytes()固定为 ASCII 字符串。

  • 错误修正:修复了JSON.parse()中 JSON 数字的真值。

  • 错误修正:修复了njs_string_replace_join()中的未初始化值的使用。

  • 错误修正:修复了parseInt('-0')。感谢 Artem S. Povalyukhin。

njs 0.3.2 的更改

发行日期:2019 年 5 月 21 日

Core:

  • 功能:增加了对模板文字的支持。感谢洪志道(洪志道)和 Artem S. Povalyukhin。

  • 功能:从命令行参数执行命令。

  • 功能:添加了对 RegExp groups对象(ES9)的支持。

  • 功能:添加了块作用域函数定义支持。

  • 功能:增加了对使用 GNU Readline 库进行构建的支持。

  • 功能:可配置lengthname和大多数内置方法。

  • 功能:使所有构造函数属性均可配置。

  • 错误修正:固定Regexp.prototype.exec()仅用于 Unicode 正则表达式。

  • 错误修正:修复了njs_vm_value_dump()的空字符串值。

  • 错误修正:修复了 Regexp 值参数的 RegExp 构造函数。

  • 错误修正:修复了对象迭代期间遍历原型链的问题。

  • 错误修正:修复了Array.prototype.concat()中的溢出。

  • 错误修正:带有转义字符的 UTF-8 字符串的固定长度计算。

  • 错误修正:固定解析代理对以 UTF-16 转义序列形式出现。

  • 错误修正:修复了String.prototype.match()的“ *”量词的处理。

  • 错误修正:修复了带有一个参数的Date()构造函数。

  • 错误修正:固定阵列扩展。

  • 错误修正:修复了String.prototype.replace()中的 heap-buffer-overflow。

  • 错误修正:修复了String.prototype.lastIndexOf()中的 heap-buffer-overflow。

  • 错误修正:修正了正则表达式文字解析,并在方括号中使用了转义的反斜杠和反斜杠。

  • 错误修正:修复了带有正括号的正则表达式文字。

  • 错误修正:修复了Object.defineProperties()中的未初始化内存访问。

  • 错误修正:修复了String.prototype.replace()的“ *”量词的处理。

  • 错误修正:修正了Array.prototype.slice()的 UTF8 无效字节字符串。

  • 错误修正:修正了String.prototype.split()的 UTF8 无效字节字符串。

  • 错误修正:修复了空块语句的处理。

njs 0.3.1 的更改

发行日期:2019 年 4 月 16 日

Core:

  • 功能:添加了箭头功能支持。感谢洪志道(洪志道)和 Artem S. Povalyukhin。

  • 功能:已添加Object.getOwnPropertyNames()。感谢 Artem S. Povalyukhin。

  • 功能:已添加Object.getOwnPropertyDescriptors()。感谢 Artem S. Povalyukhin。

  • 功能:使Object个实例的__proto__访问者 Descriptors 可变。

  • 功能:在 CLI 中添加了 shebang 支持。

  • 功能:增加了对 CLI 中模块模式执行的支持。在全局模块模式下,此功能不可用。

  • 错误修正:修复了 editline 检测。

  • 错误修正:修复了Function.prototype.bind()。感谢洪志道。

  • 错误修正:修复了功能参数重复检查。感谢洪志道。

  • 错误修正:修复了与变量同名的函数声明。感谢洪志道。

  • 改进:与对象,变量和函数的解析有关的代码被重构。感谢洪志道。

  • 改进:console.log()中改进了大价值输出。

  • 改进:字符串输出以console.log()的方式得到了改进(没有转义和引号)。

  • 改进:使用ToInt32()ToUint32()ToLength()的 ES6 版本。

njs 0.3.0 的更改

发行日期:2019 年 3 月 26 日

nginx modules:

Core:

  • 功能:添加了最初的 ES6 模块支持。支持默认导入和默认导出语句。感谢洪志道。

  • 功能:已添加Object.prototype.propertyIsEnumerable()

  • 功能:在反汇编输出中报告文件名和函数名。

  • 错误修正:修复了交互式 shell 中的函数重新声明。感谢洪志道。

  • 错误修正:修正了 RegExp 文字解析。

  • 错误修正:修复了fs.readFileSync()中 UTF8 字符串的设置长度。

  • 错误修正:修复了nxt_file_dirname()的路径,其中没有 dir 组件。

njs 0.2.8 的更改

发行日期:2019 年 2 月 26 日

nginx modules:

  • 更改:0.2.2中弃用的 HTTP 请求的属性已删除。

  • 功能:在r.headersOut{}中添加了对删除操作的支持。

  • 功能:增加了对设置 nginx 变量的支持。

  • 错误修正:修正了r.subrequest()的空值。

  • 改进:在r.headersOut{}中设置特殊的响应头。

Core:

  • 功能:添加了标签支持。

  • 功能:添加了setImmediate()方法。

  • 功能:增加了对对象文字的简写属性名称的支持。

  • 错误修正:修复了Function.prototype.bind()

  • 错误修正:修复了包含换行符的字符串文字的解析。

  • 错误修正:报告变量参考错误中的固定行号。

  • 错误修正:修复了创建长 UTF8 字符串的问题。

  • 错误修正:修复了在String.prototype.split()中为 Unicode 字符串设置特殊响应 Headers。

  • 错误修正:修复了String.prototype.split()中的 heap-buffer-overflow。

  • 错误修正:修复了Array.prototype.fill()。感谢 Artem S. Povalyukhin。

  • 改进:与函数调用有关的代码被重构。感谢洪志道。

  • 改进:与变量相关的代码被重构。感谢洪志道。

  • 改进:解析器被重构。感谢洪志道。

  • 改进:报告异常中的文件名。

njs 0.2.7 的更改

发布日期:2018 年 12 月 25 日

Core:

  • 功能:其余参数语法(不支持解构)。感谢 Alexander Pyshchev。

  • 功能:添加了Object.entries()方法。

  • 功能:添加了Object.values()方法。

  • 改进:代码生成器重构和简化。

  • 错误修正:修复了自动分号插入问题。

  • 错误修正:修复了复合分配中的分配表达式。

  • 错误修正:修复了 Byte 和 UTF8 字符串的比较。

  • 错误修正:固定的迭代变量类型为数组形式。

  • 错误修正:修复了没有 librt 的平台上的构建。

  • 错误修正:已修复其他错误。

njs 0.2.6 的更改

发行日期:2018 年 11 月 27 日

Core:

  • 特点:使内置原型可变。

  • 特点:使全局对象可变。

  • 功能:console.time()console.timeEnd()方法。

  • 功能:允许重新声明变量和函数。

  • 功能:扩展Object.defineProperty()规范一致性。

  • 功能:为 CLI 引入了安静模式,以处理来自 stdin 的简单表达式。

  • 功能:引入了紧凑的回溯形式来处理堆栈溢出。

  • 改进:改进了各种 exceptions 的措词。

  • 错误修正:修正了关闭值的处理。

  • 错误修正:修复了各种值类型的相等运算符。

  • 错误修正:修正了在各种范围内对“ this”关键字的处理。

  • 错误修正:修复了处理Object.keys()中的非对象值。

  • 错误修正:修复了if语句中 throw 语句的解析。

  • 错误修正:修复了 throw 语句后解析换行符的问题。

  • 错误修正:修复了 if 语句中不带换行符的语句解析。

  • 错误修正:固定大小uint32_tnjs_array_expand()中溢出。

  • 错误修正:已将typeof运算符固定为object_value类型。

  • 错误修正:已修复其他错误。

njs 0.2.5 的更改

发行日期:2018 年 10 月 30 日

nginx modules:

  • 错误修正:修正了流模块中未决事件的计数。

  • 错误修正:修复了流模块中的s.off()

  • 错误修正:修复了流模块中js_filter中数据块的处理。

  • 错误修正:修复了 http 模块中的 http statuscontentType getter。

  • 错误修正:修复了 http 模块中的 http 响应和父获取器。

Core:

  • 功能:参数对象支持。

  • 功能:非整数分数支持。

  • 改进:处理Array.prototype.slice()中的非数组值。

  • 错误修正:修复了Array.prototype.length个设置器

  • 错误修正:固定njs_array_alloc()的长度> 2 ** 31.

  • 错误修正:在 32 位拱门上处理njs_array_alloc()中的 int 溢出。

  • 错误修正:修复了代码大小不匹配的错误消息。

  • 错误修正:修复了循环中的删除运算符。

  • 错误修正:修复了Object.getOwnPropertyDescriptor()的复杂对象(从Arraystring值继承)。

  • 错误修正:修复了Object.prototype.hasOwnProperty()的非对象属性

  • 错误修正:已修复其他错误。

njs 0.2.4 的更改

发行日期:2018 年 9 月 18 日

nginx modules:

  • 更改:流模块处理程序已重构。

新方法和属性:s.on()s.off()s.allow()s.done()s.decline()s.deny()

Stream对象的已删除属性:s.OKs.ABORTs.AGAINs.DECLINEDs.ERROR(替换为s.allow()s.done()s.deny())。

s.buffer(用于将读取的内容替换为相应回调的 data 参数,用于写入,则使用s.send())。

s.fromUpstream(替换为对应事件的回调)。

s.eof(替换为``flags.last'')。

Core:

  • 功能:已添加Function.prototype.length

  • 功能:引入了沙箱模式。

  • 改进:在适当的地方添加了异常字符串。

  • 改进:改进了原始类型转换异常的措辞。

  • 错误修正:抛出TypeError以尝试更改冻结的属性。

  • 错误修正:修复了Object.defineProperty()的现有属性。

  • 错误修正:在 for 中进行迭代时要尊重可枚举属性。

  • 错误修正:尊重属性处理程序的可写属性。

  • 错误修正:修复了函数参数中的异常处理。

  • 错误修正:修复了Object.prototype.toString的不同值类型。

  • 错误修正:修复了对象类型参数的Object()构造函数。

  • 错误修正:修复了对象和字符串的比较。

  • 错误修正:修复了String.slice()的未定义参数。

  • 错误修正:已修复其他错误。

njs 0.2.3 的更改

发布日期:2018 年 7 月 31 日

nginx modules:

  • 错误修正:从Reply对象发出子请求会导致分段错误。

  • 错误修正:获取主要HTTP Request对象的 parent 属性会导致分段错误。

Core:

  • 功能:添加了漂亮的字符串表示形式。

  • 功能:正确打印浮点数。

  • 功能:正确解析浮点数。

  • 功能:String.bytesFrom()方法(将hexbase64base64url解码为字节字符串)。

  • 功能:String.padStart()String.padEnd()方法。

  • 功能:增加了对二进制文字的支持。

  • 改进:在数字解析中添加了有关非法令牌的信息。

  • 改进:八进制文字值允许大写的O

  • 改进:在console.log()中添加了对多个参数的支持。

  • 错误修正:修复了将call()应用于外部值的方法。

  • 错误修正:固定加法运算符应用于一个对象。

  • 错误修正:修复了njs_vm_value_to_ext_string()中的异常处理。

  • 错误修正:修正了Number()的布尔值,空值和未定义的参数。

  • 错误修正:修复了设置非数字Array.length的错误处理。

  • 错误修正:修复了全局对象的自动补全。

  • 错误修正:已修复其他错误。

njs 0.2.2 的更改

发行日期:2018 年 6 月 19 日

nginx modules:

  • 更改:将 HTTP ResponseReply合并为HTTP RequestRequest的新成员:

  • 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.requestBodyreq.responseBody)

    • req.headers(使用req.headersInreq.headersOut)

    • req.response

Response弃用的成员:

不推荐使用的属性将在next版本中删除。

Core:

  • 错误修正:修复了crypto.createHmac()中的 heap-buffer-overflow。

njs 0.2.1 的更改

发行日期:2018 年 5 月 31 日

nginx modules:

  • 功能:HTTP 请求正文获取器。

  • 改进:将 njs vm 移至main配置。

  • 改进:改进了js_setjs_content指令的日志记录。

  • 改进:默认情况下,在js_content处理程序中将状态代码设置为 500

  • 改进:在js_content处理程序中为返回的状态代码添加了调试功能

  • 错误修正:修复了js_include中的错误记录。

Core:

  • 功能:增加了数组长度设置器。

  • 改进:公共 Headerscleanup. njscript.h重命名为njs.h

  • 错误修正:修复了调用digest()之后的加密update()方法。

  • 错误修正:修复了crypto.createHmac()大小为\ <= alg size and > 64 的密钥。

  • 错误修正:修复了具有空单元格的数组的JSON.stringify()

  • 错误修正:修复了JSON.stringify()中不受支持的类型的异常类型。

  • 错误修正:修复了函数未定义参数的处理。

  • 错误修正:修复了Object.getOwnPropertyDescriptor()缺失的arg的处理。

  • 错误修正:修复了Object.getOwnPropertyDescriptor()中属性的处理。

  • 错误修正:修复了Array.length属性的可写标记。

  • 错误修正:固定返回值为clearTimeout()

  • 错误修正:修复了njs_vm_external_bind()

  • 错误修正:已修复其他错误。

njs 0.2.0 的更改

发行日期:2018 年 4 月 3 日

  • 功能:通过 CLI 报告 njs 版本。

  • 功能:用于类型转换异常的文本描述。

  • 功能:setTimeout()clearTimeout()方法。

  • 功能:字节字符串为hexbase64base64url编码。

  • 功能:Node.js style Crypto个方法。

  • 功能:HTTP 和流warn()error()方法。

  • 功能:HTTP subrequest()方法。

  • 功能:HTTP return()方法。

  • 错误修正:已在核心和交互式 Shell 中修复了其他错误。

njs 0.1.15 的更改

发行日期:2017 年 11 月 20 日

  • 功能:ErrorEvalErrorInternalErrorRangeErrorReferenceErrorSyntaxErrorTypeErrorURIError对象。

  • 功能:八进制文字支持。

  • 功能:Node.js style File system访问方法:fs.readFile()fs.readFileSync()fs.appendFile()fs.appendFileSync()fs.writeFile()fs.writeFileSync()

  • 功能:nginx 模块在异常时显示回溯。

  • 错误修正:已修复其他错误。

njs 0.1.14 的更改

发行日期:2017 年 10 月 9 日

  • 功能:JSON 对象。

  • 功能:交互式 Shell 中的对象级完成。

  • 功能:各种配置方面的改进。

  • 错误修正:已在核心和交互式 Shell 中修复了其他错误。

njs 0.1.13 的更改

发行日期:2017 年 8 月 31 日

  • 功能:交互式 Shell 中的console.log()console.help()方法。

  • 功能:交互式 Shell 在异常时打印回溯。

  • 功能:默认情况下,如果libedit可用,则为交互式 Shell。

  • 错误修正:在命令行模式下处理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模式,必须显式声明变量。

  • 功能:forfor-in循环支持变量声明。

  • 错误修正:全局和功能范围已得到修复。

  • 错误修正:现在for-in循环不会丢弃属性变量的最后一个值。

  • 错误修正:修正了其他错误和分段错误。

njs 0.1.7 的更改

发行日期:2016 年 12 月 27 日

  • 更改:js_include指令已在服务器和位置级别禁用。

  • 功能:求幂运算符。

  • 错误修正:修正了其他错误和分段错误。

njs 0.1.6 的更改

发行日期:2016 年 12 月 13 日

  • 更改:js_set指令已在服务器和位置级别禁用。

  • 功能:ES6 Math方法。

  • 错误修正:修正了其他错误和分段错误。