變更
njs 0.8.7 的變更
發佈日期:2024 年 10 月 22 日
nginx 模組
-
錯誤修復:消除了不必要的 VM 建立。先前,njs 的記憶體消耗與 nginx 位置的數量成正比。此問題在0.8.6中引入。
-
改進:為 js_body_filter 新增了嚴格的語法驗證。
-
改進:改進了模組載入失敗的錯誤訊息。
核心
-
功能:實作了
fs.readlinkSync()
。 -
改進:實作了延遲堆疊符號化。
-
錯誤修復:修正了
Buffer.prototype.indexOf()
中的堆積緩衝區溢位。此問題在0.8.6中引入。 -
錯誤修復:修正了當提供 `from` 時的
Buffer.prototype.lastIndexOf()
。
njs 0.8.6 的變更
發佈日期:2024 年 10 月 02 日
nginx 模組
-
功能:引入了 QuickJS 引擎。
-
功能:為 http 和 stream 的
js_set
指令新增了可選的nocache
旗標。感謝 Thomas P. -
功能:在 HTTP 模組中公開了捕獲群組變數。感謝 Thomas P.
核心
-
功能:為 QuickJS 引擎新增了
Buffer
模組。 -
錯誤修復:修正了函式中空標籤陳述式的處理。
-
錯誤修復:修正了在沒有引數的情況下呼叫時的
Function
建構函式處理。 -
錯誤修復:修正了
Buffer.prototype.writeInt8()
和相關方法。 -
錯誤修復:修正了
Buffer.prototype.writeFloat()
和相關方法。 -
錯誤修復:修正了
Buffer.prototype.lastIndexOf()
。 -
錯誤修復:修正了
Buffer.prototype.write()
。 -
錯誤修復:修正了錯誤建立中可能未初始化的警告。
-
錯誤修復:修正了 UTF-8 解碼中的
ctx.codepoint
初始化。 -
錯誤修復:修正了
Array.prototype.pop()
中的length
初始化。 -
錯誤修復:修正了
fs.readdir()
和fs.realpath()
中encode
引數的處理。
njs 0.8.5 的變更
發佈日期:2024 年 6 月 25 日
nginx 模組
-
變更:在 UTF-8 編碼中無效的位元組會轉換為替換字元,位於
-
r.variables.var
、r.requestText
、r.responseText
、s.variables.var
中, -
以及具有
upload
或download
事件類型的s.on()
回呼的data
引數中, -
以及
js_body_filter
指令的data
引數中。
使用二進位資料時,請使用
-
r.rawVariables.var
、r.requestBuffer
、r.responseBuffer
、s.rawVariables.var
中, -
以及
s.on()
的upstream
或downstream
事件類型, -
以及
js_body_filter
的buffer_type
=buffer
。
-
-
錯誤修復:修正了重複的
js_set
變數的檢查。 -
錯誤修復:修正了當埠號為非標準時的請求
Host
標頭。 -
錯誤修復:修正了在
ngx.fetch()
和r.subrequest()
中處理零長度請求主體的問題。 -
錯誤修復:修正了
Headers.get()
中的堆積緩衝區溢位。 -
錯誤修復:修正了
r.subrequest()
的錯誤處理。
核心
-
功能:為
QuickJS
引擎新增了zlib
模組。 -
錯誤修復:修正了
zlib.inflate()
。 -
錯誤修復:修正了具有零長度引數的
String.prototype.replaceAll()
。 -
錯誤修復:修正了在
Array.prototype.toSpliced()
、Array.prototype.toReversed()
、Array.prototype.toSorted()
中發生例外後的retval
處理。 -
錯誤修復:修正了含有
$'
、$`
和 Unicode 字元的替換的RegExp.prototype[@@replace]()
。 -
錯誤修復:修正了
decodeURI()
和decodeURIComponent()
中的一字元組過度讀取。 -
錯誤修復:修正了引數範圍的追蹤。
-
錯誤修復:修正了
Date.parse()
中的整數溢位。
njs 0.8.4 的變更
發佈日期:2024 年 4 月 16 日
nginx 模組
-
功能:可以設定傳出標頭的
Server
標頭。 -
改進:驗證
r.subrequest()
中的 URI 和 args 引數。 -
改進:檢查重複的 js_set 變數。
-
錯誤修復:修正了沒有逾時,且具有
Buffer
引數的共用字典的r.send()
方法。
核心
-
功能:在 CLI 中新增了
QuickJS
引擎支援。 -
錯誤修復:修正了具有非填補
base64
字串的atob()
。
njs 0.8.3 的變更
發佈日期:2024 年 2 月 7 日
nginx 模組
-
錯誤修復:修正了
Headers.set()
。 -
錯誤修復:修正了具有
Buffer
值的 js_set。 -
錯誤修復:修正了未指定逾時時的共用字典的
clear()
方法。 -
錯誤修復:修正了啟用 js_periodic 時的 stub_status 統計資料。
核心
-
錯誤修復:修正了使用 libxml2 2.12 和更高版本的建置。
-
錯誤修復:修正了溢位和具有
NaN
值的Date
建構函式。 -
錯誤修復:修正了
querystring.parse()
中的下溢。 -
錯誤修復:修正了
String.prototype.match()
中潛在的緩衝區過度讀取。 -
錯誤修復:修正了
for-in
迴圈的剖析。 -
錯誤修復:修正了沒有數字的十六進位、八進位和二進位文字的剖析。
njs 0.8.2 的變更
發佈日期:2023 年 10 月 24 日
nginx 模組
-
功能:引入了 console 物件。引入了以下方法:
error()
、info()
、log()
、time()
、timeEnd()
、warn()
。 -
錯誤修復:修正了 Fetch API 中具有大型 Content-Length 的
HEAD
回應處理。 -
錯誤修復:修正了共用字典的
items()
方法。 -
錯誤修復:修正了共用字典的
delete()
方法。
核心
-
功能:擴充了
fs
模組。新增了fs.existsSync()
。 -
錯誤修復:修正了
xml
模組。修正了xml.parse()
方法中損壞的 XML 例外處理。 -
錯誤修復:修正了具有全域 regexp 和 Unicode 輸入的
Regexp.prototype.exec()
。
njs 0.8.1 的變更
發佈日期:2023 年 9 月 12 日
nginx 模組
-
錯誤修復:修正了 0.8.0 中引入的
r.internalRedirect()
中的錯誤例外。
核心
-
錯誤修復:修正了
Object.getOwnPropertyNames()
中不正確的鍵順序。
njs 0.8.0 的變更
發佈日期:2023 年 7 月 6 日
nginx 模組
-
變更:移除了在 0.5.0 中已棄用,位於
http
模組的r.requestBody
和r.responseBody
。 -
變更:在
http
模組中篩選時,會在r.internalRedirect()
中擲回例外。 -
功能:引入了更多全域
nginx
屬性:ngx.build
、ngx.conf_file_path
、ngx.error_log_path
、ngx.prefix
、ngx.version
、ngx.version_number
和ngx.worker_id
。 -
功能:為 http 和 stream 引入了
js_shared_dict_zone
指令,該指令允許宣告在背景工作處理程序之間共用的字典。 -
功能:引入了全域
nginx.shared
方法和屬性,以處理共用字典。 -
改進:新增了編譯時選項以停用 njs 模組。例如,若要停用 libxslt 相關程式碼
NJS_LIBXSLT=NO ./configure .. --add-module=/path/to/njs/module
-
錯誤修復:修正了在
http
模組中 Location 標頭的設定。
核心
-
變更:為原生方法提供了
retval
引數。此變更會破壞 njs C 擴充功能的相容性,需要修改程式碼。 -
變更:移除了不相容的已棄用字串方法。移除了以下方法:
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()
。 -
功能:在 WebCrypto API 中新增了
CryptoKey
屬性。新增了以下屬性:algorithm
、extractable
、type
、usages
。 -
錯誤修復:修正了
сrypto.getRandomValues()
的retval
。 -
錯誤修復:修正了使用函式運算式計算的屬性名稱的評估。
-
錯誤修復:修正了在陣列中宣告的函式運算式的隱式名稱。
-
錯誤修復:修正了
for-in
迴圈的剖析。 -
錯誤修復:修正了具有 ISO-8601 格式和 UTC 時間偏移量的
Date.parse()
。
njs 0.7.12 的變更
發佈日期:2023 年 4 月 10 日
nginx 模組
-
錯誤修復:修正了 Fetch API 中的
Headers()
建構函式。
核心
-
功能:在 crypto 模組中新增了
Hash.copy()
方法。 -
功能:新增了 zlib 模組。
-
改進:新增了
export {name as default}
陳述式的支援。 -
錯誤修復:根據規格修正了
Number
建構函式。
njs 0.7.11 的變更
發佈日期:2023 年 3 月 9 日
nginx 模組
核心
-
功能:新增了 XMLNode API 來修改 XML 文件。
-
變更:由於安全性隱患,在解析 XML 文件時移除了
XML_PARSE_DTDVALID
。此問題是在 0.7.10 中引入的。當啟用XML_PARSE_DTDVALID
時,libxml2 會解析並執行 XML 文件中存在的外部實體。 -
錯誤修正:修正了參數中
await
的偵測。 -
錯誤修正:修正了當 "
name
" 屬性不是原始型別時Error()
實例的傾印。 -
錯誤修正:修正了具有
getter
屬性的陣列實例的傾印。 -
錯誤修正:修正了具有
NJS_WHITEOUT
屬性的njs_object_property()
。 -
錯誤修正:修正了具有 "
name
" 作為 getter 的func
實例的傾印。 -
錯誤修正:修正了將堆疊附加到錯誤物件。
-
錯誤修正:修正了包含 "
$'
"、"$`
" 的替換項的String.prototype.replace()
。
njs 0.7.10 的變更
發佈日期:2023 年 2 月 7 日
nginx 模組
核心
-
功能:在 CLI 中新增了訊號支援。
-
功能:新增了用於處理 XML 文件的
xml
模組。 -
功能:擴展了 WebCrypto 中對稱和非對稱金鑰的支援。最值得注意的是,新增了用於
importKey()
的JWK
格式。 -
功能:擴展了 WebCrypto API 中對稱和非對稱金鑰的支援。最值得注意的是,新增了用於
importKey()
的JWK
格式。還實作了generateKey()
和exportKey()
。 -
功能:新增了
String.prototype.replaceAll()
。 -
錯誤修正:修正了
for(expr1;
條件語法錯誤處理。 -
錯誤修正:
Object.values()
和Object.entries()
使用外部物件。 -
錯誤修正:修正了
RegExp.prototype[@@replace]()
。
njs 0.7.9 的變更
發佈日期:2022 年 11 月 17 日
nginx 模組
-
錯誤修正:修正了
Fetch
Response 原型的重新初始化。當在 HTTP 和 Stream 中至少宣告了一個js_import
指令時,ngx.fetch()
在 Stream 中傳回不正確的回應。此錯誤是在 0.7.7 中引入的。
核心
-
錯誤修正:修正了如果
re.exec()
傳回非扁平陣列的String.prototype.replace(re)
。 -
錯誤修正:修正了當
start
物件更改this
時的Array.prototype.fill()
。 -
錯誤修正:修正了
fs.mkdir()
和fs.rmdir()
方法的說明。 -
錯誤修正:修正了當
s
元素更改this
時的%TypedArray%.prototype.set(s)
。 -
錯誤修正:修正了當
d
在評估期間調整this
大小時的Array.prototype.splice(s,d)
。 -
錯誤修正:修正了帶有左側和右側表達式的
for-in
迴圈。
njs 0.7.8 的變更
發佈日期:2022 年 10 月 25 日
nginx 模組
-
功能:新增了 js_preload_object 指令。
-
功能:新增了
ngx.conf_prefix
屬性。 -
功能:在 stream 模組中新增了
s.sendUpstream()
和s.sendDownstream()
。 -
功能:在 Fetch API 中新增了對
HEAD
方法的支援。
核心
-
功能:為函數物件新增了
name
實例屬性。 -
功能:新增了
njs.memoryStats
物件。 -
錯誤修正:修正了具有 Unicode 字串的
String.prototype.trimEnd()
。 -
錯誤修正:修正了快速陣列的
Object.freeze()
。 -
錯誤修正:修正了快速陣列的
Object.defineProperty()
。 -
錯誤修正:修正了作為物件屬性名稱的
async
標記。 -
錯誤修正:修正了當鍵修改基本繫結時的屬性設定指令。
-
錯誤修正:修正了複雜的賦值。
-
錯誤修正:修正了對未處理的 promise 拒絕的處理。
-
錯誤修正:修正了當存在重複的環境變數時的 process.env。
-
錯誤修正:修正了模組中的重複宣告偵測。
-
錯誤修正:根據規格修正了繫結函數呼叫。
-
錯誤修正:修正了
if
語句的中斷標籤。 -
錯誤修正:修正了標記的空語句。
njs 0.7.7 的變更
發佈日期:2022 年 8 月 30 日
nginx 模組
-
功能:擴展了可以指定 js 指令的 nginx 設定上下文的數量。
-
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。
-
錯誤修正:修正了 fetch 超時為
0
時的 socket 洩漏。
核心
-
功能:擴展了
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 的變更
發佈日期:2022 年 7 月 19 日
nginx 模組
-
功能:改進了
r.args{}
物件。新增了對具有相同鍵的多個參數的支援。新增了對鍵的區分大小寫。鍵和值現在會進行百分比解碼。 -
錯誤修正:修正了特殊標頭的
r.headersOut{}
設定器。
核心
-
功能:新增了
Symbol.for()
和Symbol.keyfor()
。 -
錯誤修正:修正了大型非十進位字面值。
-
錯誤修正:修正了
parseInt()
中的 Unicode 參數修剪。 -
錯誤修正:修正了
try-catch
區塊中的break
指令。 -
錯誤修正:修正了 CLI 中的
async
函數宣告。
njs 0.7.5 的變更
發佈日期:2022 年 6 月 21 日
nginx 模組
-
變更:適應 nginx 標頭結構中的變更。
-
錯誤修正:修正了當值不存在時
r.headersOut{}
的特殊 getter。 -
變更:當標頭不存在時,針對
Content-Type
回傳未定義的值而不是空字串。
核心
-
錯誤修正:修正了從 await 函數拋出的例外狀況的捕捉。
-
錯誤修正:修正了函數值初始化。
-
錯誤修正:修正了 await 失敗時的直譯器。
-
錯誤修正:修正了當在反覆運算時變更來源陣列時的類型陣列建構子。
-
錯誤修正:修正了使用位元組字串的
String.prototype.replace()
。 -
錯誤修正:修正了範本文字會產生位元組字串。
-
錯誤修正:修正了具有稀疏陣列的陣列迭代器。
-
錯誤修正:修正了將扁平陣列轉換為慢速陣列時的記憶體釋放。
-
錯誤修正:正確處理
promise
原生函數中的NJS_DECLINE
。 -
錯誤修正:修正了在
Promise.all()
及其同類中處理類似陣列的物件。
njs 0.7.4 的變更
發佈日期:2022 年 5 月 24 日
nginx 模組
-
功能:為設定 Fetch API 新增了擴充指令。為 http 和 stream 新增了下列指令
-
變更:
r.internalRedirect()
現在接受逸出的 URI。
核心
-
功能:新增了
njs.version_number
屬性。 -
功能:新增了 WebCrypto API 的 BoringSSL 相容性。
-
錯誤修正:修正了當比較器中陣列大小變更時的
Array.prototype.sort()
。 -
錯誤修正:修正了具有慢速
this
參數的Array.prototype.slice()
。 -
錯誤修正:修正了具有類似陣列物件的
Promise
建構子的聚合方法。 -
錯誤修正:修正了使用 Unicode 字串作為
this
的String.prototype.lastIndexOf()
。 -
錯誤修正:修正了當提供
reviver
函數時的JSON.parse()
。 -
錯誤修正:修正了當提供遞迴描述元時的
Object.defineProperty()
。 -
錯誤修正:修正了類型陣列的
Array.prototype.fill()
。 -
錯誤修正:根據規格使函數表達式繫結不可變。
-
錯誤修正:修正了
Object.defineProperty()
中特殊屬性的重新定義。
njs 0.7.3 的變更
發佈日期:2022 年 4 月 12 日
核心
-
功能:新增了模組解析回呼支援。此功能允許主機環境控制如何載入匯入的模組。
-
錯誤修正:修正了在遍歷匯入的使用者模組時的回溯。
-
錯誤修正:修正了當
this
為慢速陣列時的Array.prototype.concat()
。 -
錯誤修正:修正了從 await 框架配置框架。
-
錯誤修正:修正了大型陣列字面值的配置。
-
錯誤修正:修正了當
toString
轉換失敗時的直譯器。
njs 0.7.2 的變更
發佈日期:2022 年 1 月 25 日
核心
-
錯誤修正:修正了當陣列在反覆運算時變更時的
Array.prototype.join()
。 -
錯誤修正:修正了當陣列在反覆運算時變更時的
Array.prototype.slice()
。 -
錯誤修正:修正了當陣列在反覆運算時變更時的
Array.prototype.concat()
。 -
錯誤修正:修正了當陣列在反覆運算時變更時的
Array.prototype.reverse()
。 -
錯誤修正:修正了使用子陣列時的
Buffer.concat()
問題。感謝 Sylvain Etienne。 -
錯誤修正:修正了解析 Promise 時的型別混淆錯誤。
-
錯誤修正:修正了使用大型陣列參數時的
Function.prototype.apply()
問題。 -
錯誤修正:修正了遞迴的
async
函式呼叫問題。 -
錯誤修正:修正了函式重複宣告的問題。此錯誤是在 0.7.0 版本中引入的。
njs 0.7.1 的變更
發佈日期:2021 年 12 月 28 日
nginx 模組
-
變更:自 0.4.0 版本起已棄用的 js_include 指令已移除。
-
變更:PCRE/PCRE2 特定程式碼已移至模組中。這可確保 njs 使用與 nginx 相同的 RegExp 函式庫。
核心
-
錯誤修正:修正了使用無效位元組字串時的
decodeURI()
和decodeURIComponent()
問題。此錯誤是在 0.4.3 版本中引入的。 -
錯誤修正:修正了
await
框架中的 heap-use-after-free 問題。此錯誤是在 0.7.0 版本中引入的。 -
錯誤修正:修正了 OpenSSL 3.0 中 WebCrypto 的
sign()
和verify()
方法。 -
錯誤修正:修正了當 RegExp 比對失敗時拋出例外的情況。此錯誤是在 0.1.15 版本中引入的。
-
錯誤修正:修正了在
async
函式的try
區塊中捕捉到的例外。此錯誤是在 0.7.0 版本中引入的。 -
錯誤修正:修正了在同步環境中執行
async
函式的問題。此錯誤是在 0.7.0 版本中引入的。 -
錯誤修正:修正了當互動模式開啟時,在 CLI 中重複宣告函式的問題。此錯誤是在 0.6.2 版本中引入的。
-
錯誤修正:修正了使用
DataView
物件時的typeof
運算子。 -
錯誤修正:消除了
Buffer.from()
中的資訊洩漏。
njs 0.7.0 的變更
發佈日期:2021 年 10 月 19 日
nginx 模組
核心
-
功能:引入了
Async/Await
實作。 -
功能:新增了 WebCrypto API 實作。
-
錯誤修正:修正了宣告函式的閉包複製問題。此錯誤是在 0.6.0 版本中引入的。
-
錯誤修正:修正了在處理事件中未處理的
promise
拒絕。 -
錯誤修正:修正了 Fetch API 中的 Response.headers getter。
njs 0.6.2 的變更
發佈日期:2021 年 8 月 31 日
nginx 模組
-
錯誤修正:修正了當
js_filter
在兩個方向都註冊時,CPU 使用率過高的問題。
核心
-
功能:引入了
AggregateError
實作。 -
功能:新增了剩餘的
Promise
建構子方法。新增了以下方法:Promise.all()
、Promise.allSettled()
、Promise.any()
、Promise.race()
。 -
改進:從程式碼產生器中移除了遞迴。
-
錯誤修正:修正了在沒有綁定識別符的情況下剖析剩餘參數的問題。
-
錯誤修正:修正了
Promise.prototype.finally()
的 resolve/reject 回呼。 -
錯誤修正:修正了分離緩衝區的
%TypedArray%.prototype.join()
問題。 -
錯誤修正:修正了互動式 Shell 中的記憶體洩漏問題。
njs 0.6.1 的變更
發佈日期:2021 年 6 月 29 日
-
錯誤修正:修正了僅使用 UTF-8 正規表示式的
RegExpBuiltinExec()
問題。此錯誤是在 0.4.2 版本中引入的。 -
錯誤修正:修正了使用非賦值運算式剖析 export default 宣告的問題。感謝 Artem S. Povalyukhin。
njs 0.6.0 的變更
發佈日期:2021 年 6 月 15 日
核心
-
功能:新增了
let
和const
宣告支援。 -
功能:新增了
RegExp.prototype[Symbol.split]
。 -
功能:新增了 RegExp 的 sticky 旗標支援。
-
錯誤修正:修正了
String.prototype.lastIndexOf()
中的 heap-buffer-overflow 問題。 -
錯誤修正:根據規格修正了
RegExp.prototype.test()
。 -
錯誤修正:根據規格修正了
String.prototype.split()
。 -
錯誤修正:修正了追蹤已拒絕 Promise 時使用未初始化值的問題。
-
錯誤修正:修正了具有循環參照的物件的
njs.dump()
問題。
njs 0.5.3 的變更
發佈日期:2021 年 3 月 30 日
nginx 模組
njs 0.5.2 的變更
發佈日期:2021 年 3 月 9 日
nginx 模組
-
功能:新增了
js_body_filter
指令。
核心
-
功能:新增了
njs.on
(exit
) 回呼支援。 -
錯誤修正:修正了不可擴展物件的屬性描述子重複使用問題。感謝 Artem S. Povalyukhin。
-
錯誤修正:根據規格修正了
Object.freeze()
和相關方法。感謝 Artem S. Povalyukhin。 -
錯誤修正:修正了 CLI 模式中的
Function()
。 -
錯誤修正:修正了型別陣列值的
for-in
迭代問題。感謝 Artem S. Povalyukhin。
njs 0.5.1 的變更
發佈日期:2021 年 2 月 16 日
nginx 模組
-
功能:引入了實作 Fetch API 的
ngx.fetch()
方法。實作了
Response
物件的下列屬性和方法:arrayBuffer()
、bodyUsed
、json()
、headers
、ok
、redirect
、status
、statusText
、text()
、type
、url
。值得注意的限制:僅支援
http://
配置,不處理重新導向。與洪志道 (Hong Zhi Dao) 合作。
-
功能:新增了
js_header_filter
指令。 -
錯誤修正:修正了在 串流模組的 body 篩選器中處理緩衝資料的問題。
核心
-
錯誤修正:修正了
Function
建構子中的安全模式繞過問題。 -
錯誤修正:修正了具有無效日期值的
Date.prototype.toISOString()
問題。
njs 0.5.0 的變更
發佈日期:2020 年 12 月 1 日
nginx 模組
-
功能:引入了全域
ngx
物件。新增了以下方法
新增了以下屬性
-
ngx.INFO
、ngx.WARN
、ngx.ERR
。
-
-
功能:新增了在預期字串時支援
Buffer
物件。 -
功能:新增了現有屬性的緩衝區版本。
新增了以下屬性
-
r.requestBuffer
(r.requestBody
)、r.responseBuffer
(r.responseBody
)、r.rawVariables
(r.variables
)、s.rawVariables
(s.variables
)。
在串流模組中新增了以下事件
-
upstream
(上傳)、downstream
(下載)。
-
-
改進:為現有屬性新增了別名。
新增了以下屬性
-
改進:在子要求的
r.internalRedirect()
中拋出例外。 -
錯誤修正:修正了具有
error_page
重新導向的 promiser.subrequest()
問題。 -
錯誤修正:修正了
promise
事件處理問題。
核心
-
功能:新增了內建模組的
TypeScript
定義。感謝 Jakub Jirutka。 -
功能:追蹤未處理的
promise
拒絕。 -
功能:新增了初始迭代器支援。感謝 Artem S. Povalyukhin。
-
改進:重新建構了
TypeScript
定義。感謝 Jakub Jirutka。 -
改進:在
Buffer.from()
中新增了遺忘的Object.prototype.valueOf()
支援。 -
錯誤修正:修正了
JSON.parse()
中的 heap-use-after-free 問題。 -
錯誤修正:修正了
JSON.stringify()
中的 heap-use-after-free 問題。 -
錯誤修正:修正了透過 getter 可調整大小的陣列的
JSON.stringify()
問題。 -
錯誤修正:修正了
RegExp.prototype[Symbol.replace]
的 heap-buffer-overflow 問題。 -
錯誤修正:修正了
Buffer.prototype.write*
函式的傳回值。 -
錯誤修正:修正了
querystring.stringify()
。感謝 Artem S. Povalyukhin。 -
錯誤修正:修正了
Promise.prototype.finally()
的 catch 處理常式。 -
錯誤修正:修正了
querystring.parse()
。
njs 0.4.4 的變更
發佈日期:2020 年 9 月 29 日
nginx 模組
-
錯誤修正:修正了位置合併問題。
-
錯誤修正:修正了 HTTP/2 的
r.httpVersion
問題。
核心
-
功能:新增了對數字分隔符號 (ES12) 的支援。
-
功能:為
%TypedArray%.prototype
新增了剩餘的方法。新增了以下方法:every()
、filter()
、find()
、findIndex()
、forEach()
、includes()
、indexOf()
、lastIndexOf()
、map()
、reduce()
、reduceRight()
、reverse()
、some()
。 -
功能:新增了
%TypedArray%
剩餘的方法。新增了以下方法:from()
、of()
。 -
功能:新增了
DataView
物件。 -
功能:新增了
Buffer
物件實作。 -
功能:在
TextDecoder.prototype.decode()
中新增了對ArrayBuffer
的支援。 -
功能:在
crypto
方法中新增了對Buffer
物件的支援。 -
功能:在
fs
方法中新增了對Buffer
物件的支援。 -
變更:當未提供編碼時,
Hash.prototype.digest()
和Hmac.prototype.digest()
現在傳回Buffer
執行個體,而不是位元組字串。 -
變更:當未提供編碼時,
fs.readFile()
和相關方法現在傳回Buffer
執行個體,而不是位元組字串。 -
錯誤修正:修正了設定時的函式
prototype
屬性處理常式。 -
錯誤修正:修正了設定時的函式
constructor
屬性處理常式。 -
錯誤修正:修正了位元組字串的
String.prototype.indexOf()
問題。 -
錯誤修正:修正了具有全域旗標和位元組字串的
RegExpBuiltinExec()
問題。 -
錯誤修正:當取代值是函式時,修正了
RegExp.prototype[Symbol.replace]
問題。 -
錯誤修正:修正了具有非零
TypedArray
偏移量的TextDecoder.prototype.decode()
問題。
njs 0.4.3 的變更
發佈日期:2020 年 8 月 11 日
核心
-
功能:新增了
Query String
模組。 -
功能:改進了
fs.mkdir()
,支援遞迴建立目錄。感謝 Artem S. Povalyukhin。 -
功能:改進了
fs.rmdir()
,支援遞迴刪除目錄。感謝 Artem S. Povalyukhin。 -
功能:根據 WHATWG 編碼規範引入 UTF-8 解碼器。
-
功能:新增
TextDecoder()
和TextEncoder()
的實作。 -
錯誤修正:修正了剖析不帶分號的 return 陳述式。
-
錯誤修正:修正了 big-endian 平台上的
njs_number_to_int32()
。 -
錯誤修正:修正了 big-endian 平台上的單元測試。
-
錯誤修正:修正了使用「
=
」字元的 regexp-literals 剖析。 -
錯誤修正:修正了賦值運算中的前/後遞增/遞減。
njs 0.4.2 的變更
發佈日期:2020 年 7 月 7 日
核心
-
功能:新增
RegExp.prototype[Symbol.replace]
。 -
功能:引入行級回溯追蹤。
-
功能:新增
%TypedArray%.prototype.sort()
。 -
改進:解析器重構。
-
錯誤修正:修正了 HTTP 標頭的 TypedScript API 描述。
-
錯誤修正:修正了
NjsByteString
類型的 TypedScript API 描述。 -
錯誤修正:根據規範修正了
String.prototype.repeat()
。 -
錯誤修正:根據規範修正了
String.prototype.replace()
。 -
錯誤修正:修正了 regexp literals 的 flags 剖析。
-
錯誤修正:修正了產生器中全域物件的索引產生。
-
錯誤修正:修正了帶有非零位元組偏移的
%TypedArray%.prototype.copyWithin()
。 -
錯誤修正:修正了稀疏陣列的
Array.prototype.splice()
。 -
錯誤修正:修正了稀疏陣列的
Array.prototype.reverse()
。 -
錯誤修正:修正了稀疏陣列的
Array.prototype.sort()
。
njs 0.4.1 的變更
發佈日期:2020 年 5 月 19 日
nginx 模組
-
功能:在
r.headersIn{}
中新增了對多值標頭的支援。 -
功能:引入了
raw headers
API:r.rawHeadersIn[]
和r.rawHeadersOut[]
。 -
功能:新增了 TypeScript API 描述。
核心
-
錯誤修正:修正了稀疏陣列的
Array.prototype.slice()
。
njs 0.4.0 的變更
發佈日期:2020 年 4 月 23 日
nginx 模組
-
功能:在
r.headersOut{}
中新增了對多值標頭的支援。 -
改進:改進了使用特殊標頭對
r.headersOut{}
的迭代。 -
改進:改進了使用重複項對
r.headersOut{}
的迭代。 -
變更:如果回應主體不可用,
r.responseBody
屬性處理常式現在會返回undefined
,而不是擲回例外。
核心
-
功能:在 CLI 中新增了腳本引數支援。
-
功能:將外部值轉換為原生 js 物件。
-
錯誤修正:修正了
__proto__
屬性處理常式中的 NULL 指標取值。 -
錯誤修正:修正了腳本結尾處沒有換行的處理。
-
錯誤修正:修正了帶有空模式和非空標誌的
RegExp()
建構函式。 -
錯誤修正:修正了函數返回非字串時的
String.prototype.replace()
。 -
錯誤修正:修正了在
fs
中讀取偽檔案。
njs 0.3.9 的變更
發佈日期:2020 年 3 月 3 日
nginx 模組
-
功能:為
r.subrequest()
新增了分離模式。分離的子請求的回應會被忽略。與一般的子請求不同,可以在變數處理常式內部建立分離的子請求。
核心
-
功能:為
fs
模組新增了promises
API。感謝 Artem S. Povalyukhin。 -
功能:擴充了
fs
模組。新增了access()
、symlink()
、unlink()
、realpath()
和相關功能。感謝 Artem S. Povalyukhin。 -
改進:引入了記憶體效率高的普通陣列。
-
改進:詞法分析器重構。
-
錯誤修正:修正了回溯追蹤中原生函數的匹配。
-
錯誤修正:修正了
fs
模組中的回呼叫用。感謝 Artem S. Povalyukhin。 -
錯誤修正:修正了
Object.getOwnPropertySymbols()
。 -
錯誤修正:修正了
njs_json_append_string()
中的堆疊緩衝區溢位。 -
錯誤修正:根據規範修正了
encodeURI()
和decodeURI()
。 -
錯誤修正:修正了
Number.prototype.toPrecision()
。 -
錯誤修正:修正了
JSON.stringify()
中空格引數的處理。 -
錯誤修正:修正了帶有
Number()
和String()
物件的JSON.stringify()
。 -
錯誤修正:根據規範修正了
JSON.stringify()
中的 Unicode 跳脫。 -
錯誤修正:修正了非原生模組的匯入。感謝洪志道。
-
錯誤修正:修正了容器中有
Date()
執行個體的njs.dump()
。
njs 0.3.8 的變更
發佈日期:2020 年 1 月 21 日
nginx 模組
-
功能:為
r.subrequest()
新增了Promise
支援。如果未提供回呼,r.subrequest()
會傳回一個普通的Promise
物件,該物件會解析為子請求回應物件。 -
變更:如果父物件不可用,
r.parent
屬性處理常式現在會返回undefined
,而不是擲回例外。
核心
-
功能:新增了
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。 -
功能:引入了 Nullish coalescing 運算子。
-
錯誤修正:根據規範修正了
Object.getPrototypeOf()
。 -
錯誤修正:根據規範修正了
Object.prototype.valueOf()
。 -
錯誤修正:修正了帶有不可列印值和取代函數的
JSON.stringify()
。 -
錯誤修正:根據規範修正了運算子
in
。 -
錯誤修正:根據規範修正了
Object.defineProperties()
。 -
錯誤修正:根據規範修正了
Object.create()
。感謝 Artem S. Povalyukhin。 -
錯誤修正:修正了啟用快速數學時的
Number.prototype.toString(radix)
。 -
錯誤修正:修正了
RegExp()
執行個體屬性。 -
錯誤修正:修正了匯入時的區段錯誤。感謝洪志道。
njs 0.3.7 的變更
發佈日期:2019 年 11 月 19 日
nginx 模組
-
改進:重構了外部物件的迭代。
核心
-
功能:新增了
Object.assign()
。 -
功能:新增了
Array.prototype.copyWithin()
。 -
功能:在
console.time()
中新增了對標籤的支援。 -
變更:從 CLI 中移除
console.help()
。 -
改進:將建構函式和最上層物件移至全域物件。
-
改進:組態指令碼的引數驗證。
-
改進:重構了 JSON 方法。
-
錯誤修正:修正了
njs_array_reverse_iterator()
函數中的堆疊緩衝區溢位。以下函數受到影響:Array.prototype.lastIndexOf()
、Array.prototype.reduceRight()
。 -
錯誤修正:修正了
NativeErrors
的[[Prototype]]
槽。 -
錯誤修正:修正了
NativeError.prototype.message
屬性。 -
錯誤修正:在
Array.prototype functions
中新增了將this
值轉換為物件的功能。 -
錯誤修正:修正了
Array.prototype.find()
和Array.prototype.findIndex()
函數的迭代器。 -
錯誤修正:修正了帶有
undefined
引數的Array.prototype.includes()
和Array.prototype.join()
。 -
錯誤修正:修正了
Hash
和Hmac
物件的constructor
屬性。 -
錯誤修正:修正了 getter 和 setter 的
__proto__
屬性。 -
錯誤修正:修正了
Date
物件的字串格式。 -
錯誤修正:修正了
Math.min()
和Math.max()
中對NaN
和-0
引數的處理。 -
錯誤修正:根據規範修正了
Math.round()
。 -
錯誤修正:根據規範重新實作了
bound
函數。
njs 0.3.6 的變更
發佈日期:2019 年 10 月 22 日
nginx 模組
-
改進:從
r.headersIn{}
取得特殊標頭。
核心
-
功能:新增了新的
Function()
支援。 -
功能:新增了
Number.prototype.toFixed()
。 -
功能:新增了
Number.prototype.toPrecision()
。 -
功能:新增了
Number.prototype.toExponential()
。 -
改進:使函數執行個體的
prototype
屬性可寫入。 -
改進:在編譯時限制遞迴深度。
-
改進:將全域函數移至全域物件。
-
錯誤修正:修正了物件常值的原型突變。
-
錯誤修正:修正了剖析 regexp 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()
。 -
錯誤修正:修正了
Array.prototype.map()
中的範圍後堆疊使用。 -
錯誤修正:
Date.prototype.toUTCString()
格式已與 ES9 對齊。 -
錯誤修正:修正了
Number.prototype.toString(radix)
中的緩衝區溢位。 -
錯誤修正:修正了帶有反向參考的 regexps 的
Regexp.prototype.test()
。 -
錯誤修正:修正了
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 的變更
發佈日期:2019 年 8 月 15 日
核心
-
錯誤修正:修正了使用
require()
的模組匯入。此錯誤是在 0.3.4 中引入的。 -
錯誤修正:修正了
[[SetPrototypeOf]]
。
njs 0.3.4 版本變更
發布日期:2019 年 8 月 13 日
核心
-
新功能:新增
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()
使用 regexp 引數時的全域比對問題。 -
錯誤修正:修正
Array.prototype.slice()
對於基本型別的問題。 -
錯誤修正:修正匯入模組時的堆積緩衝區溢位問題。
-
錯誤修正:修正 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()
建構子不帶引數的問題。 -
錯誤修正:修正
in
運算子對於具有存取描述器的值的問題。 -
錯誤修正:修正
Object.defineProperty()
對於非布林描述器屬性的問題。 -
錯誤修正:修正
Error.prototype.toString()
使用 UTF8 字串屬性的問題。 -
錯誤修正:修正
Error.prototype.toString()
對於name
和message
使用非字串值的問題。
njs 0.3.3 版本變更
發布日期:2019 年 6 月 25 日
nginx 模組
-
改進:在
r.headersOut{}
中取得特殊回應標頭。 -
改進:在
r.subrequest()
中使用未知方法。 -
改進:新增對
r.subrequest()
的第二個引數使用 null 的支援。 -
錯誤修正:修正串流主體篩選器中處理空輸出鏈的問題。
核心
-
新功能:新增屬性 getter/setter 的執行階段支援。感謝 洪志道 (Hong Zhi Dao) 和 Artem S. Povalyukhin 的貢獻。
-
新功能:新增
process
全域物件。 -
新功能:內建屬性和方法大多為可寫入。
-
新功能:新增
Array.prototype.fill()
的通用實作。 -
錯誤修正:修正
String.prototype.concat()
中的整數溢位問題。 -
錯誤修正:修正設定物件屬性的問題。
-
錯誤修正:修正
Array.prototype.toString()
的問題。 -
錯誤修正:修正
Date.prototype.toJSON()
的問題。 -
錯誤修正:修正覆寫內建原型之「constructor」屬性的問題。
-
錯誤修正:修正字串中處理無效代理配對的問題。
-
錯誤修正:修正 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 日
核心
-
新功能:新增範本字面值支援。感謝 洪志道 (Hong Zhi Dao) 和 Artem S. Povalyukhin 的貢獻。
-
新功能:從命令列引數執行命令。
-
新功能:新增 RegExp
groups
物件 (ES9) 的支援。 -
新功能:新增區塊範圍函數定義支援。
-
新功能:新增使用 GNU Readline 函式庫建置的支援。
-
新功能:使
length
、name
和大多數內建方法可設定。 -
新功能:使所有建構子屬性可設定。
-
錯誤修正:修正
Regexp.prototype.exec()
對於僅限 Unicode 的 regexps 的問題。 -
錯誤修正:修正
njs_vm_value_dump()
對於空字串值的問題。 -
錯誤修正:修正 regexp 值引數的 RegExp 建構子。
-
錯誤修正:修正在疊代物件時走訪原型鏈的問題。
-
錯誤修正:修正
Array.prototype.concat()
中的溢位問題。 -
錯誤修正:修正具有跳脫字元的 UTF-8 字串長度計算。
-
錯誤修正:修正將代理配對剖析為 UTF-16 跳脫序列的問題。
-
錯誤修正:修正
String.prototype.match()
處理「*」量詞的問題。 -
錯誤修正:修正
Date()
建構子帶一個引數的問題。 -
錯誤修正:修正陣列擴展的問題。
-
錯誤修正:修正
String.prototype.replace()
中的堆積緩衝區溢位問題。 -
錯誤修正:修正了
String.prototype.lastIndexOf()
中的 heap-buffer-overflow 問題。 -
錯誤修正:修正使用跳脫反斜線和方括號中反斜線剖析 regexp 字面值的問題。
-
錯誤修正:修正具有單個右方括號的 regexp 字面值。
-
錯誤修正:修正
Object.defineProperties()
中未初始化的記憶體存取問題。 -
錯誤修正:修正
String.prototype.replace()
處理「*」量詞的問題。 -
錯誤修正:修正
Array.prototype.slice()
對於 UTF8 無效位元組字串的問題。 -
錯誤修正:修正
String.prototype.split()
對於 UTF8 無效位元組字串的問題。 -
錯誤修正:修正處理空區塊陳述式的問題。
njs 0.3.1 版本變更
發布日期:2019 年 4 月 16 日
核心
-
新功能:新增箭頭函式支援。感謝 洪志道 (Hong Zhi Dao) 和 Artem S. Povalyukhin 的貢獻。
-
新功能:新增
Object.getOwnPropertyNames()
。感謝 Artem S. Povalyukhin 的貢獻。 -
新功能:新增
Object.getOwnPropertyDescriptors()
。感謝 Artem S. Povalyukhin 的貢獻。 -
新功能:使
Object
執行個體的__proto__
存取描述器可變。 -
新功能:新增 CLI 中的 shebang 支援。
-
新功能:新增 CLI 中模組模式執行的支援。在模組模式中,全域物件不可用。
-
錯誤修正:修正 editline 偵測的問題。
-
錯誤修正:修正
Function.prototype.bind()
的問題。感謝 洪志道 (Hong Zhi Dao) 的貢獻。 -
錯誤修正:修正檢查函數參數重複的問題。感謝 洪志道 (Hong Zhi Dao) 的貢獻。
-
錯誤修正:修正與變數同名的函數宣告問題。感謝 洪志道 (Hong Zhi Dao) 的貢獻。
-
改進:重構與剖析物件、變數和函數相關的程式碼。感謝 洪志道 (Hong Zhi Dao) 的貢獻。
-
改進:
console.log()
中大型數值輸出已改進。 -
改進:
console.log()
中字串輸出已改進,符合規範 (無跳脫符號和引號)。 -
改進:使用 ES6 版本的
ToInt32()
、ToUint32()
、ToLength()
。
njs 0.3.0 版本變更
發布日期:2019 年 3 月 26 日
nginx 模組
-
變更:針對以下物件中不存在的屬性,傳回 undefined 值而非空字串:
r.args{}
、r.headersIn{}
、r.headersOut{}
、r.variables{}
、s.variables{}
。 -
變更:當請求主體不可用時,針對
r.requestBody
傳回 undefined 值而非擲回例外狀況。 -
錯誤修正:修正當鍵值組中缺少值時,疊代
r.args{}
時發生當機的問題。
核心
-
新功能:新增初始 ES6 模組支援。支援預設匯入和預設匯出陳述式。感謝 洪志道 (Hong Zhi Dao) 的貢獻。
-
新功能:新增
Object.prototype.propertyIsEnumerable()
。 -
新功能:在反組譯器輸出中報告檔案名稱和函數名稱。
-
錯誤修正:修正在互動式 shell 中重新宣告函數的問題。感謝 洪志道 (Hong Zhi Dao) 的貢獻。
-
錯誤修正:修正 RegExp 字面值剖析的問題。
-
錯誤修正:修正
fs.readFileSync()
中設定 UTF8 字串長度的問題。 -
錯誤修正:修正沒有目錄元件的路徑的
nxt_file_dirname()
問題。
njs 0.2.8 版本變更
發布日期:2019 年 2 月 26 日
nginx 模組
-
變更:在 0.2.2 中已棄用的 HTTP 請求屬性已移除。
-
新功能:新增
r.headersOut{}
中刪除操作的支援。 -
新功能:新增設定 nginx 變數的支援。
-
錯誤修正:修正
r.subrequest()
對於空主體值的問題。 -
改進:在
r.headersOut{}
中設定特殊回應標頭。
核心
-
新功能:新增標籤支援。
-
新功能:新增
setImmediate()
方法。 -
新功能:新增物件字面值的簡寫屬性名稱支援。
-
錯誤修正:修正
Function.prototype.bind()
的問題。 -
錯誤修正:修正剖析包含換行符號的字串字面值的問題。
-
錯誤修正:修正在報告變數參考錯誤中的行號。
-
錯誤修正:修正建立長 UTF8 字串的問題。
-
錯誤修正:修正
String.prototype.split()
針對 Unicode 字串設定特殊回應標頭的問題。 -
錯誤修正:修正
String.prototype.split()
中的堆積緩衝區溢位問題。 -
錯誤修正:修正
Array.prototype.fill()
的問題。感謝 Artem S. Povalyukhin 的貢獻。 -
改進:重構與函數調用相關的程式碼。感謝 洪志道 (Hong Zhi Dao) 的貢獻。
-
改進:重構與變數相關的程式碼。感謝 洪志道 (Hong Zhi Dao) 的貢獻。
-
改進:重構剖析器。感謝 洪志道 (Hong Zhi Dao) 的貢獻。
-
改進:在例外狀況中報告檔案名稱。
njs 0.2.7 版本變更
發布日期:2018 年 12 月 25 日
核心
-
新功能:rest 參數語法 (不支援解構)。感謝 Alexander Pyshchev 的貢獻。
-
新功能:新增
Object.entries()
方法。 -
新功能:新增
Object.values()
方法。 -
改進:重構和簡化程式碼產生器。
-
錯誤修正:修正自動分號插入的問題。
-
錯誤修正:修正複合指派的指派運算式。
-
錯誤修正:修正 Byte 和 UTF8 字串的比較。
-
錯誤修正:修正具有陣列值的
for-in
中疊代變數的類型。 -
錯誤修正:修正在沒有 librt 的平台上建置的問題。
-
錯誤修正:已修正各種錯誤。
njs 0.2.6 版本變更
發布日期:2018 年 11 月 27 日
核心
-
新功能:使內建原型可變。
-
新功能:使全域物件可變。
-
新功能:新增
console.time()
和console.timeEnd()
方法。 -
新功能:允許重新宣告變數和函數。
-
新功能:擴展
Object.defineProperty()
規格一致性。 -
新功能:針對 CLI 導入靜音模式,以處理來自 stdin 的簡單運算式。
-
新功能:導入簡潔的回溯格式,以處理堆疊溢位。
-
改進:改進各種例外狀況的措辭。
-
錯誤修正:修正閉包值處理。
-
錯誤修正:修正各種值類型的等號運算子。
-
錯誤修正:修正各種範圍中
this
關鍵字的處理。 -
錯誤修正:修正
Object.keys()
中處理非物件值的問題。 -
錯誤修正:修正剖析
if
陳述式中的 throw 陳述式。 -
錯誤修復:修正了在 throw 語句後解析換行符的問題。
-
錯誤修復:修正了在 if 語句中解析沒有換行符的語句的問題。
-
錯誤修復:修正了
njs_array_expand()
中uint32_t
大小的溢位問題。 -
錯誤修復:修正了
object_value
類型的typeof
運算子。 -
錯誤修正:已修正各種錯誤。
njs 0.2.5 的變更
發佈日期:2018 年 10 月 30 日
nginx 模組
-
錯誤修復:修正了 stream 模組中計算待處理事件的問題。
-
錯誤修復:修正了 stream 模組中的
s.off()
。 -
錯誤修復:修正了 stream 模組中
js_filter
處理資料區塊的問題。 -
錯誤修復:修正了 http 模組中的 http
status
和contentType
getter。 -
錯誤修復:修正了 http 模組中的 http 回應和父級 getter。
核心
-
功能:支援 arguments 物件。
-
功能:支援非整數小數。
-
改進:處理
Array.prototype.slice()
中的非陣列值。 -
錯誤修復:修正了
Array.prototype.length
setter。 -
錯誤修復:修正了長度 > 2**31 時的
njs_array_alloc()
。 -
錯誤修復:修正了 32 位元架構中
njs_array_alloc()
的整數溢位處理。 -
錯誤修復:修正了程式碼大小不符的錯誤訊息。
-
錯誤修復:修正了迴圈中的 delete 運算子。
-
錯誤修復:修正了複雜物件(繼承自
Array
和string
值)的Object.getOwnPropertyDescriptor()
。 -
錯誤修復:修正了非物件屬性的
Object.prototype.hasOwnProperty()
。 -
錯誤修正:已修正各種錯誤。
njs 0.2.4 的變更
發佈日期:2018 年 9 月 18 日
nginx 模組
-
變更:重構了 stream 模組處理器。
新方法和屬性:
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
(讀取時替換為對應回呼的資料參數,寫入時使用s.send()
)。s.fromUpstream
(替換為對應事件的回呼)。s.eof
(替換為flags.last
)。
核心
-
功能:新增
Function.prototype.length
。 -
功能:引入沙箱模式。
-
改進:在適當的地方新增了例外字串。
-
改進:改進了基本類型轉換例外的措辭。
-
錯誤修復:嘗試變更凍結屬性時會拋出
TypeError
。 -
錯誤修復:修正了現有屬性的
Object.defineProperty()
。 -
錯誤修復:在 for in 迭代時遵循可列舉屬性。
-
錯誤修復:針對屬性處理器遵循可寫屬性。
-
錯誤修復:修正了函式引數中的例外處理。
-
錯誤修復:修正了不同值類型的
Object.prototype.toString
。 -
錯誤修復:修正了物件類型引數的
Object()
建構函式。 -
錯誤修復:修正了物件和字串的比較。
-
錯誤修復:修正了未定義引數的
String.slice()
。 -
錯誤修正:已修正各種錯誤。
njs 0.2.3 的變更
發佈日期:2018 年 7 月 31 日
nginx 模組
-
錯誤修復:從
Reply
物件建立子請求會導致分段錯誤。 -
錯誤修復:取得主要 HTTP 請求 物件的父屬性會導致分段錯誤。
核心
-
功能:新增了值的精美字串表示法。
-
功能:正確列印浮點數。
-
功能:正確解析浮點數。
-
功能:
String.bytesFrom()
方法(將hex
、base64
、base64url
解碼為位元組字串)。 -
功能:
String.padStart()
和String.padEnd()
方法。 -
功能:新增對二進位文字的支援。
-
改進:在數字解析中新增了有關非法 token 的資訊。
-
改進:允許在八進位文字值中使用大寫
O
。 -
改進:新增對
console.log()
中多個引數的支援。 -
錯誤修復:修正了將
call()
套用到外部值方法的問題。 -
錯誤修復:修正了套用到物件的加法運算子。
-
錯誤修復:修正了
njs_vm_value_to_ext_string()
中的例外處理。 -
錯誤修復:修正了使用布林值、null 和未定義引數的
Number()
。 -
錯誤修復:修正了設定非數值
Array.length
的錯誤處理。 -
錯誤修復:修正了全域物件的自動完成功能。
-
錯誤修正:已修正各種錯誤。
njs 0.2.2 的變更
發佈日期:2018 年 6 月 19 日
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() 方法。
核心
-
錯誤修復:修正了
crypto.createHmac()
中的堆積緩衝區溢位。
njs 0.2.1 的變更
發佈日期:2018 年 5 月 31 日
nginx 模組
-
功能:HTTP 請求主體 getter。
-
改進:將 njs vm 移至
main
設定。 -
改進:改進了 js_set 和 js_content 指令的記錄。
-
改進:在 js_content 處理器中預設將狀態碼設定為 500。
-
改進:在 js_content 處理器中新增了傳回狀態碼的偵錯。
-
錯誤修復:修正了 js_include 中的錯誤記錄。
核心
-
功能:新增了陣列長度 setter。
-
改進:公用標頭
cleanup. njscript.h
已重新命名為njs.h
。 -
錯誤修復:修正了在呼叫
digest()
之後的 cryptoupdate()
方法。 -
錯誤修復:修正了金鑰大小 <= 演算法大小且 > 64 時的
crypto.createHmac()
。 -
錯誤修復:修正了具有空單元的陣列的
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()
方法。 -
功能:位元組字串到
hex
、base64
、base64url
編碼。 -
功能:Node.js 樣式
Crypto
方法。 -
功能:HTTP 和 stream
warn()
和error()
方法。 -
功能:HTTP
subrequest()
方法。 -
功能:HTTP
return()
方法。 -
錯誤修復:核心和互動式 Shell 中已修正各種錯誤。
njs 0.1.15 的變更
發佈日期:2017 年 11 月 20 日
-
功能:
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 模組在例外時列印回溯。
-
錯誤修正:已修正各種錯誤。
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
模式,變數必須明確宣告。 -
功能:
for
和for-in
迴圈支援變數宣告。 -
錯誤修復:已修正全域和函式範圍。
-
錯誤修復:現在
for-in
迴圈不會丟棄屬性變數的最後一個值了。 -
錯誤修復:已修正各種錯誤和分段錯誤。
njs 0.1.7 的變更
發佈日期:2016 年 12 月 27 日
-
變更:js_include 指令已在 server 和 location 層級停用。
-
新功能:指數運算子。
-
錯誤修復:已修正各種錯誤和分段錯誤。
njs 0.1.6 的變更
發佈日期:2016 年 12 月 13 日
-
變更:js_set 指令已在 server 和 location 層級停用。
-
新功能:ES6
Math
方法。 -
錯誤修復:已修正各種錯誤和分段錯誤。