njs 0.7.5 已发布,njs 以 nginx 插件的方式存在,它是 JavaScript/ECMAscript 的子集,实现了大部分的 JavaScript 语言功能,没有完全遵从 ECMAScript 标准,同时抛弃了 JavaScript 比较难懂的部分。njs 不通过 V8 引擎实现,而是通过一个更小、能耗更低、更符合 nginx 应用场景的小虚拟机实现,可以理解成 nginx 为其实现了一套自己的词法解析。
作为 nginx 的插件,njs 的安装方式是重新编译 nginx。
新版本下载地址:http://nginx.org/en/docs/njs/install.html
主要变化
nginx modules:
- Change: 遵循 nginx header 结构的变化
- Bugfix: 修复当缺少值时,
r.headersOut{}
出现的特殊 getter - Change: 当 header 不存在时,为
Content-Type
返回未定义的值而不是空字符串。
Core:
- Bugfix: 修复对 awaited 函数抛出异常的捕获
- Bugfix: 修复函数值初始化
- Bugfix: 修复当 await 无效时解释器出现的问题
- Bugfix: 在迭代期间,当更改 source array 时修复类型化数组构造函数
- Bugfix:使用字节字符串修复
String.prototype.replace()
- Bugfix: 修复生成字节字符串的模板字面量
- Bugfix: 修复稀疏数组的数组迭代器
- Bugfix: 在将平面数组转换为 slow 数组时修复可用内存
- Bugfix: properly handling
NJS_DECLINE
inpromise
native functions. - 在
promise
原生函数中正确处理NJS_DECLINE
Changelog