写点什么

JavaScript 引擎 V8 5.1 遵循了更多的 ECMAScript 规范并支持 WASM

  • 2016-05-04
  • 本文字数:806 字

    阅读完需:约 3 分钟

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组合使用时,就会返回指定的类构造器:

    `class MyArray extends Array {
    // 将它的类型重写为父 Array 的构造器
    static get Symbol.species { return Array; }
    }
    var a = new MyArray(1,2,3);
    var mapped = a.map(x => x * x);

    console.log(mapped instanceof MyArray); // false
    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-05-04 19:003048

评论

发布
暂无评论
发现更多内容

让理性思维走进我们的生活,帮助我们做出更好的决策。

叶小鍵

心理学 基思. 斯坦诺维奇 超越智商 认知科学

不想做经理的程序员

escray

学习 面试

视频码控:CBR、VBR和ABR

潇湘落木

直播 SRS 视频编码 码控

介绍一款API敏捷开发工具

棒锤🐮

敏捷开发 Rocket API API敏捷开发

一个快捷方便的油煎鸡胸肉,懒人标配香喷喷好吃看得见

小霸王其乐无穷

美食 鸡胸肉 懒人

Redis 之父关于 CRC64 的神秘往事!

yes

redis CRC

SQL查询语句执行顺序详解

书旅

MySQL SQL语法 sql查询

完了,这个硬件成精了,它竟然绕过了 CPU

简爱W

LeetCode题解:26. 删除排序数组中的重复项,双指针,JavaScript,详细注释

Lee Chen

大前端 LeetCode

十一周作业

olderwei

极客大学架构师训练营

POI 之 策略游戏

zhoo299

随笔杂谈

你可能不知道的计算机基础

书旅

c 常量 计算机 基础

你可能需要一个脱机状态

非著名程序员

学习 程序员 个人成长 工作方式

「零代码」搭建简易招聘管理系统

Tony Wu

效率工具 SaaS 招聘管理 HRIS

Spring Boot 集成 Sharding-JDBC + Mybatis-Plus 实现分库分表

简爱W

战斗还是逃避,或许可以考虑一下合作?

escray

学习 面试

大数据技术思想入门(四):分布式文件的元数据是怎么存储的

cristal

Java 大数据 hadoop 分布式

数据库是咋工作的?

简爱W

前端分页组件实现逻辑

书旅

php 大前端 分页

week 11

Geek_2e7dd7

Docker 最常用的镜像命令和容器命令

哈喽沃德先生

Docker 容器 微服务

week 11学习总结

Geek_2e7dd7

Postman生成接口文档

书旅

Postman 接口文档

Docker搭建项目环境实战

书旅

Docker Dockerfile Docker-compose

【解Bug之路】——Nginx 502 Bad Gateway

简爱W

Flink水位线和时间戳理解-7

小知识点

scala 大数据 flink 模块化流程

Linux系统监控工具推荐

wangkx

监控 工具软件

融云 X- Meetup 技术沙龙广州站:全球通信云技术实践分享

InfoQ_967a83c6d0d7

Netty之旅二:口口相传的高性能Netty到底是什么?

一枝花算不算浪漫

请不要随便修改基类

架构师修行之路

图解javascript——基础篇(以思维导图总结js中关键技术点,为面试及工作助力)

执鸢者

Java 大前端

JavaScript引擎V8 5.1遵循了更多的ECMAScript规范并支持WASM_JavaScript_Sergio De Simone_InfoQ精选文章