QCon 演讲火热征集中,快来分享技术实践与洞见! 了解详情
写点什么

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:002600

评论

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

进大厂的iOS程序员,原来是这样“跳槽”的!

iOS猿_员

打破思维定式(十一)

Changing Lin

15年云原生实践,在关键节点我们做对了什么? | 云原生大咖说

阿里巴巴中间件

Python--TKinter

若尘

Python编程 5月日更

浅入浅出 MySQL 索引

leonsh

MySQL 索引

云小课 | 一个三分钟快速定制OCR应用的神器,要不?

华为云开发者联盟

AI modelarts OCR ModelArts Pro 开发套件

全链路压测二十问干货汇总(上)

TakinTalks稳定性社区

重磅成果 | 《数据安全治理白皮书3.0》正式对外发布!

DT极客

有无社保缴纳识别接口

ALone

JavaScript实现:如何写出漂亮的条件表达式

华为云开发者联盟

代码 JavaScrip 条件表达式 多条件语句 多属性对象

网络攻防学习笔记 Day17

穿过生命散发芬芳

5月日更 网络攻防

2021 iOS 进阶学习视频推荐

程序员 ios开发

Keycloak 13 自定义用户身份认证流程(User Storage SPI)

Zhang

MySQL spi keycloak 13.0.0 user storage spi

基于Agora Web SDK自定义直播画面

dajyaretakuya

WebRTC 声网 Agora 数字合成

由一张精益MVP图所浮想联翩

Man

敏捷开发 研发管理

长夜漫漫,聊聊synchronized锁的打怪升级路

码农参上

synchronized 签约计划第二季

☕️【Java技术之旅】带你看透Lambda表达式的本质

洛神灬殇

Java Lambda java8 Lambda函数 5月日更

上手 WebRTC DTLS 遇到很多 BUG?浅谈 DTLS Fragment

阿里云CloudImagine

阿里云 音视频 WebRTC SRS流媒体服务器 视频云

玩转直播系列之RTMP协议和源码解析(2)

vivo互联网技术

RTMP 直播技术

对比解读《2020年CNCF中国云原生调查报告》

阿里巴巴中间件

针对 Restful 协议下的接口测试平台设计

GrowingIO技术专栏

RESTful

极光开发者周刊【No.0514】

极光JIGUANG

开发者

人工智能基础1 - DAY8

Qien Z.

人工智能 5月日更

看见技术的价值 | 音视频技术有奖征文来啦~

InfoQ写作社区官方

音视频 声网 热门活动

Dubbo Stub与Mock

青年IT男

dubbo

SpringCloud微服务架构实战:Feign+Hystrix实现RPC调用保护

小Q

Java 学习 面试 微服务 spring cloud alibaba

如何让研发新同学快速 Onboarding

GrowingIO技术专栏

研发管理

Rust从0到1-集合-字符串

rust string 集合 字符串 Collections

ElasticSearch架构剖析

五分钟学大数据

大数据 elasticsearch 5月日更

做个开发喜欢的产品

MavenTalker

产品经理 产品设计 系统开发

开发者测试:你必须知道7件事

华为云开发者联盟

软件工程 测试 工程师 代码 开发者测试

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