速来报名!AICon北京站鸿蒙专场~ 了解详情
写点什么

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

评论

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

事件分发源码,Android事件分发机制收藏这一篇就够了,威力加强版

欢喜学安卓

android 程序员 面试 移动开发

软件测试——教育机构课程顾问常见黑话大全

程序员阿沐

程序员 软件测试 教育 机构 教育培训

三步法助你快速定位网站性能问题

华为云开发者联盟

html 网站 网站优化 Performance面板 瀑布图

手把手教你从数据预处理开始体验图数据库

NebulaGraph

数据库 数据预处理

一入爬虫深似海,从此早睡是路人

Thrash

2020年12月的面试经历:美团4面+字节4面(均已拿offer),面试真题分享

Java架构师迁哥

重磅来袭:Spring之RequestBody的使用姿势小结

学Java关注我

Java 编程 架构 技术 程序人生

云管平台如何纳管多云资源?

嘉为蓝鲸

云计算 运维自动化 cmp 混合云 多云管理平台

什么是Selenium?使用Selenium进行自动化测试

码语者

DevOps selenium

前端规范之路

白玉兰开源

大前端 开发规范

【转载】图形化系统开发组件X-Series(一)——XrossUnit介绍

赫杰辉

0门槛成为“技术牛人”!星环科技线上分享课“星课堂”开播,快来报名,一探究竟

星环科技

人工智能 数据库 云计算 大数据 直播技术

阿里巴巴的“双11”高并发秒杀终极版教程!(Java语言设计)

Java架构追梦

Java 阿里巴巴 架构 面试 秒杀架构设计

前端⼤规模构建演进实践

白玉兰开源

架构 大前端

从源码分析 MySQL 死锁问题入门

比伯

Java 编程 程序员 架构 计算机

Flink + Hudi 在 Linkflow 构建实时数据湖的生产实践

Apache Flink

flink

4行指令解决pip下载Python第三方库太慢问题(pip更换国内下载源)

不脱发的程序猿

Python pip 4月日更 Python库安装

https如何使用python+flask来实现

华为云开发者联盟

Python flask https ssl HTTP协议

知识分享:SQL注入的流程和步骤

Thrash

sql

事件分发机制Android,熬夜整理Android面试笔试题,精心整理

欢喜学安卓

android 程序员 面试 移动开发

GitHub开源:17M超轻量级中文OCR模型、支持NCNN推理

不脱发的程序猿

人工智能 GitHub 开源 OCR 4月日更

【转载】提高系统开发效率的“银弹”——X-series可视化大规模应用开发工具集

赫杰辉

Redis的适用场景简单剖析

大数据技术指南

redis 4月日更

华云大咖说 | 华云数据与数科网维携手共建国产云生态

华云数据

5个超好用的Instagram图片下载工具推荐

科技猫

分享 下载 教程 图片 Instagram

分布式锁之Redis实现

Sakura

4月日更

轻松带你学习java-agent

华为云开发者联盟

Java Trace Java虚拟机 java-agent 挂载

前端DDD总结与思考

白玉兰开源

大前端 DDD

实践案例丨Pt-osc工具连接rds for mysql 数据库失败

华为云开发者联盟

MySQL 数据库 pt-osc工具 rds for mysql

Golang 对象池

escray

学习 极客时间 Go 语言 4月日更

智汇华云 | ArSDN打通软件定义数据中心的“任督二脉”

华云数据

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