njs 0.7.9 已发布。njs 以 nginx 插件的方式存在,它是 JavaScript/ECMAscript 的子集,实现了大部分的 JavaScript 语言功能,没有完全遵从 ECMAScript 标准,同时抛弃了 JavaScript 比较难懂的部分。njs 不通过 V8 引擎实现,而是通过一个更小、能耗更低、更符合 nginx 应用场景的小虚拟机实现,可以理解成 nginx 为其实现了一套自己的词法解析。
作为 nginx 的插件,njs 的安装方式是重新编译 nginx。
新版本下载地址:http://nginx.org/en/docs/njs/install.html
主要变化
nginx modules:
- Bugfix:修复
Fetch
Response 原型的重新初始化问题。当在 HTTP 和 Stream 中都声明了至少一个js_import
指令时,ngx.fetch()
在 Stream 中会返回不正确的响应。该错误在 0.7.7 版本中被引入。
Core:
- 如果
re.exec()
返回 non-flat 类型数组,修复String.prototype.replace(re)
出现的问题 - 当
start
对象变更this
时,修复Array.prototype.fill()
- 修复对
fs.mkdir()
和fs.rmdir()
方法的描述 - 当
s
元素变更this
时,修复%TypedArray%.prototype.set(s)
出现的问题 - 在 eval 期间,当
d
调整this
的大小时,修复Array.prototype.splice(s,d)
出现的问题 - 修复包含左右表达式的
for-in
循环