UDN-企业互联网技术人气社区

板块导航

浏览  : 446
回复  : 1

[技术讨论] JavaScript引擎V8 5.1遵循了更多的ECMAScript规范并支持WASM

[复制链接]
我爱吃咸菜的头像 楼主
发表于 2016-5-6 14:05:39 | 显示全部楼层 |阅读模式
  来源:Sergio De Simone  infoQ

  Google宣布了其5.1版本的V8 JavaScript引擎,这个版本提升了对ECMAScript 2017草案规范的支持,并为WASM提供了初步的支持,WASM是一个低层级的、轻便式的字节码,它致力于实现接近原生的执行速度。

  与往常一样,V8的发布流程是与Chrome结合在一起的,所以V8 5.1会在Chrome 51稳定版释放的时候才会发布。

  这个发布版本的最终目标是将对ECMAScript 2015的支持提升至97%。为了实现这一目标,V8 5.1包含了如下功能:

  Symbol.species,它允许子类重写默认的构造器,这个构造器可以用在像Array.prototype.map这样的方法所使用的对象中。例如,我们可以定义一个MyArray类,它与map组合使用时,就会返回指定的类构造器:
 
  1.  `class MyArray extends Array {

  2.   //将它的类型重写为父Array的构造器

  3.   static get [Symbol.species]() { return Array; }

  4.   }

  5.   var a = new MyArray(1,2,3);

  6.   var mapped = a.map(x => x * x);

  7.   console.log(mapped instanceof MyArray); // false

  8.   console.log(mapped instanceof Array);   // true`
复制代码

  Symbol.hasInstance,可以进行重写,用来决定某个构造器是否会将某个对象视为其实例。

  Iterator现在支持close方法,如果循环提前终止的话,它会被调用。

  RegExp子类可以定义自己的exec方法,从而修改所使用的正则表达式算法。

  推断函数的名称可以通过name属性来获取。

  V8 5.1还对WebAssembly(WASM)提供了初步的支持。如前所述,WebAssembly是一个低层级的、轻便式的字节码,它致力于实现接近原生的执行速度,WebAssembly依赖于通用硬件的处理能力(common hardware capabilities),这在很多的平台上都是可用的。除此之外,WASM AST设计为启用压缩和高效的二进制格式,这意味着它会在一个沙箱环境中执行。

  最后,V8 5.1提升了很多JavaScript特性的性能,包括执行像for-in这样的循环、promise与RegExp初始化、Math操作等等。

  英文原文:V8 JavaScript Engine 5.1 Brings More ECMAScript Compliance, WASM Support
发表于 2016-5-6 16:23:12 | 显示全部楼层
赞一个
使用道具 举报

回复

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

关于我们
联系我们
  • 电话:010-86393388
  • 邮件:udn@yonyou.com
  • 地址:北京市海淀区北清路68号
移动客户端下载
关注我们
  • 微信公众号:yonyouudn
  • 扫描右侧二维码关注我们
  • 专注企业互联网的技术社区
版权所有:用友网络科技股份有限公司82041 京ICP备05007539号-11 京公网网备安1101080209224 Powered by Discuz!
快速回复 返回列表 返回顶部