阿里、蚂蚁、晟腾、中科加禾精彩分享 AI 基础设施洞见,现购票可享受 9 折优惠 |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:002463

评论

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

音视频开发学习:HLS 协议详解

赖猫

c++ 音视频 ffmpeg HLS 音视频开发

Linux之cal命令

入门小站

🏆【Alibaba中间件技术系列】「RocketMQ技术专题」系统服务底层原理以及高性能存储设计分析

洛神灬殇

RocketMQ 阿里巴巴‘ Alibaba技术 Apache RocketMQ 1月日更

用Java实现线段树

CRMEB

明道云帮助外贸行业实现数字化管理

明道云

构建多架构镜像的最佳实践

xcbeyond

Docker arm docker image xcbeyond 1月月更

《腾讯云原生在线技术工坊》实践体会

穿过生命散发芬芳

腾讯云 云原生 1月月更 实践体会

微信业务架构分析 & 学生管理系统架构选型

AragornYang

架构训练营 架构实战营

C/C++开发方向如何选择?坚持C++还有意义吗?

赖猫

c++ Linux 服务器

【网络安全】详细记录一道简单面试题的思路和方法

H

网络安全

PDF 文件如何转成 markdown 格式

Jerry Wang

markdown PDF pdf.js 1月日更 1月月更

ReactNative进阶(二十八):ES6 Symbol 用法

No Silver Bullet

React Native symbol 1月月更

ReactNative进阶(三十):Component、PureComponent 解析

No Silver Bullet

​React Native 1月月更 Component

电商秒杀系统架构设计

AHUI

「架构实战营」

kali权限提升之本地提权

喀拉峻

网络安全 信息安全 提权

第七周作业

lv

零代码平台——业务人员的知识变现工具

明道云

用明道云落地高校业务之优秀网站评选

明道云

微信业务架构图 & 学生管理系统架构设计

阿卷

架构实战营

冬奥探秘:那些隐匿在冬奥中的“绿科技”

脑极体

(1-18/18)推播式营销vs.集客式营销

mtfelix

300天创作 2022Y300P

使用 React 和 Next.js 构建博客

devpoint

React nextjs 1月月更

在线XML转CSV工具

入门小站

工具

22 Prometheus之Docker监控简述

穿过生命散发芬芳

Prometheus 1月月更

ShardingSphere JDBC 分库实现多数据库源

Java 数据库 分库分表 Apache ShardingSphere

JavaScript 基本数据类型转换

编程三昧

JavaScript 前端 1月月更

大白话讲解JDK源码系列:从头到尾再讲一遍ThreadLocal

慕枫技术笔记

后端 1月月更

Go len() 函数是如何计算长度的?

宇宙之一粟

Go Go 语言 1月月更

测试工程师的职场发展二三谈

老张

自动化测试 解决方案 职场发展

低代码实现探索(二十九)混合式低代码

零道云-混合式低代码平台

(1-19/19)市场和销售分别该怎么干

mtfelix

300天创作 2022Y300P

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