|
V8 V6.6 beta版?zhèn)戎赜贘avaScript語(yǔ)言特性和代碼緩存功能
1.jpg (35.48 KB, 下載次數(shù): 629)
下載附件
監(jiān)控軟件
2018-3-29 09:42 上傳
Google V8 JavaScript引擎的新測(cè)試版現(xiàn)已推出。
V8是Chrome瀏覽器和Node.js JavaScript運(yùn)行庫(kù)中的主要組件。 WebAsembly在Mozilla Firefox,Apple Safari和Microsoft Edge中也受支持,但這些瀏覽器不使用V8。
下一個(gè)版本:V8版本6.6測(cè)試版中的功能
Google的V8 JavaScript引擎測(cè)試版6.6重點(diǎn)關(guān)注JavaScript語(yǔ)言功能和代碼緩存功能。
對(duì)于JavaScript,F(xiàn)unction.prototype.toString()返回源代碼文本的精確切片,包括空格和注釋。 V8版本6.6還實(shí)現(xiàn)了String.prototype.trimStart()和String.prototype.trimEnd()。此功能已通過(guò)非標(biāo)準(zhǔn)trimLeft()和trimRight()方法提供,該方法仍作為新方法的別名,以實(shí)現(xiàn)向后兼容性。
此外,行和段落分隔符可用于字符串文字,因此與JSON匹配。以前,這些被視為字符串文本中的行終止符,并且它們的用法導(dǎo)致了SyntaxError異常。
Array.prototype.values方法為ECMAScript 2015 Map和Set集合提供了與數(shù)組相同的迭代接口。這些可以通過(guò)調(diào)用相同名稱(chēng)的方法通過(guò)鍵,值或條目進(jìn)行交互。此更改可能與現(xiàn)有的JavaScript代碼不兼容;在網(wǎng)站上發(fā)現(xiàn)奇怪或破損行為的開(kāi)發(fā)人員可以嘗試通過(guò)chrome:// flags /#enable-array-prototype-values禁用此功能。
在另一個(gè)JavaScript編程改進(jìn)中,try語(yǔ)句的catch子句可以在沒(méi)有參數(shù)的情況下使用,如果在處理異常的代碼中不需要異常對(duì)象,這非常有用。
除了JavaScript之外,版本6.6中的執(zhí)行后代碼緩存還允許在緩存中包含更多功能,并且功能不再需要在將來(lái)頁(yè)面加載時(shí)編譯。在熱負(fù)載情況下編譯和解析時(shí)間 - Chrome瀏覽器第三次訪問(wèn)頁(yè)面并提供先前緩存的代碼 - 會(huì)減少。結(jié)果,加載更快更順暢。
V8版本6.6中的其他功能包括:
防止信息泄漏到不可信的JavaScript和WebAssembly代碼的更多緩解措施。
通過(guò)移除或棄用與AST編號(hào)相關(guān)的其余功能,編譯時(shí)間得到了改善。之前的編譯過(guò)程需要一個(gè)稱(chēng)為AST編號(hào)的后解析階段,在該編譯階段,語(yǔ)法樹(shù)中的節(jié)點(diǎn)被編號(hào),因此使用它的編譯器將具有共同的參考點(diǎn)。但是這個(gè)后處理過(guò)程已經(jīng)擴(kuò)展到包含其他功能。去年推出的新管道消除了編號(hào)的需要,但編號(hào)通過(guò)一直保持到6.6版本。
異步和陣列性能得到了改善。
在哪里下載V8版本6.6測(cè)試版
具有活動(dòng)V8簽出功能的開(kāi)發(fā)人員可以使用git checkout -b 6.6 -t branch-heads / 6.6來(lái)試用V8 6.6版中的功能。您還可以訂閱Google Chrome測(cè)試版頻道以嘗試新功能。
當(dāng)前版本:V8版本6.5中的新功能
在2018年2月發(fā)布的V8版本6.5的流式編譯中,編譯WebAssembly模塊時(shí)模塊字節(jié)仍在下載。當(dāng)單個(gè)函數(shù)的所有字節(jié)都被下載后,函數(shù)就被傳遞到后臺(tái)線程進(jìn)行編譯。因此,Chrome 65中的WebAssembly編譯功能可以在高端機(jī)器上保持50Mbps的下載速度,這意味著如果以這種速度下載WebAssembly,只要下載完成,編譯就會(huì)結(jié)束。
6.5分支計(jì)劃的其他改進(jìn)包括:
一種不可信的代碼模式,是針對(duì)specualative side-channel Spectre攻擊而開(kāi)發(fā)的。此模式適用于處理用戶生成的不可信代碼的應(yīng)用程序,并且默認(rèn)情況下處于啟用狀態(tài)。
一種檢測(cè)和防止去最佳化循環(huán)的機(jī)制。當(dāng)優(yōu)化的代碼去優(yōu)化并且沒(méi)有辦法找出哪里出了問(wèn)題時(shí),就會(huì)出現(xiàn)此循環(huán)。 V8開(kāi)發(fā)人員還內(nèi)嵌了許多JavaScript內(nèi)置函數(shù),這些內(nèi)置函數(shù)由于調(diào)用函數(shù)的負(fù)載和調(diào)用本身之間的副作用
|
|