|
V8 V6.6 beta版侧重于JavaScript语言特性和代码缓存功能
监控软件
Google V8 JavaScript引擎的新测试版现已推出。
V8是Chrome浏览器和Node.js JavaScript运行库中的主要组件。 WebAsembly在Mozilla Firefox,Apple Safari和Microsoft Edge中也受支持,但这些浏览器不使用V8。
下一个版本:V8版本6.6测试版中的功能
Google的V8 JavaScript引擎测试版6.6重点关注JavaScript语言功能和代码缓存功能。
对于JavaScript,Function.prototype.toString()返回源代码文本的精确切片,包括空格和注释。 V8版本6.6还实现了String.prototype.trimStart()和String.prototype.trimEnd()。此功能已通过非标准trimLeft()和trimRight()方法提供,该方法仍作为新方法的别名,以实现向后兼容性。
此外,行和段落分隔符可用于字符串文字,因此与JSON匹配。以前,这些被视为字符串文本中的行终止符,并且它们的用法导致了SyntaxError异常。
Array.prototype.values方法为ECMAScript 2015 Map和Set集合提供了与数组相同的迭代接口。这些可以通过调用相同名称的方法通过键,值或条目进行交互。此更改可能与现有的JavaScript代码不兼容;在网站上发现奇怪或破损行为的开发人员可以尝试通过chrome:// flags /#enable-array-prototype-values禁用此功能。
在另一个JavaScript编程改进中,try语句的catch子句可以在没有参数的情况下使用,如果在处理异常的代码中不需要异常对象,这非常有用。
除了JavaScript之外,版本6.6中的执行后代码缓存还允许在缓存中包含更多功能,并且功能不再需要在将来页面加载时编译。在热负载情况下编译和解析时间 - Chrome浏览器第三次访问页面并提供先前缓存的代码 - 会减少。结果,加载更快更顺畅。
V8版本6.6中的其他功能包括:
防止信息泄漏到不可信的JavaScript和WebAssembly代码的更多缓解措施。
通过移除或弃用与AST编号相关的其余功能,编译时间得到了改善。之前的编译过程需要一个称为AST编号的后解析阶段,在该编译阶段,语法树中的节点被编号,因此使用它的编译器将具有共同的参考点。但是这个后处理过程已经扩展到包含其他功能。去年推出的新管道消除了编号的需要,但编号通过一直保持到6.6版本。
异步和阵列性能得到了改善。
在哪里下载V8版本6.6测试版
具有活动V8签出功能的开发人员可以使用git checkout -b 6.6 -t branch-heads / 6.6来试用V8 6.6版中的功能。您还可以订阅Google Chrome测试版频道以尝试新功能。
当前版本:V8版本6.5中的新功能
在2018年2月发布的V8版本6.5的流式编译中,编译WebAssembly模块时模块字节仍在下载。当单个函数的所有字节都被下载后,函数就被传递到后台线程进行编译。因此,Chrome 65中的WebAssembly编译功能可以在高端机器上保持50Mbps的下载速度,这意味着如果以这种速度下载WebAssembly,只要下载完成,编译就会结束。
6.5分支计划的其他改进包括:
一种不可信的代码模式,是针对specualative side-channel Spectre攻击而开发的。此模式适用于处理用户生成的不可信代码的应用程序,并且默认情况下处于启用状态。
一种检测和防止去最佳化循环的机制。当优化的代码去优化并且没有办法找出哪里出了问题时,就会出现此循环。 V8开发人员还内嵌了许多JavaScript内置函数,这些内置函数由于调用函数的负载和调用本身之间的副作用
|
|