写点什么

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

评论

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

架构杂谈——也谈互联网系统架构演进

老农小江

Java 架构

Spring @Transactional 注解事务

Rubble

springboot 8月日更

跟我读论文丨ACL2021 NER 模块化交互网络用于命名实体识别

华为云开发者联盟

自然语言处理 机器学习 ACL2021 NER 模块化交互网络 实体识别

FastApi-10-Example

Python研究所

FastApi 8月日更

3 条掏心掏肺的建议,新手学习编程必备,快上车!

沉默王二

编程

netty系列之:文本聊天室

程序那些事

Java Netty nio 程序那些事

手撸二叉树之二叉树的最近公共祖先

HelloWorld杰少

数据结构与算法 8月日更

4种基于像素分割的文本检测算法

华为云开发者联盟

目标检测算法 文本检测 像素分割 文本检测算法 文本

Go 学习笔记之 反射

架构精进之路

Go 语言 8月日更

Discourse 用户的邮件无法投递的时候如何处理

HoneyMoose

毕业设计:设计电商秒杀系统

9527

#架构实战营

如何评价《Java 并发编程艺术》这本书?

苹果看辽宁体育

书籍推荐 java 并发

LeetCode题解:783. 二叉搜索树节点最小距离,递归,JavaScript,详细注释

Lee Chen

算法 大前端 LeetCode

【Vue2.x 源码学习】第三十四篇 - 组件部分-Vue组件与初始化流程简介

Brave

源码 vue2 8月日更

oeasy教您玩转vim - 15 - # 行内查找

o

【Flutter 专题】69 图解基本 Stepper 步进器

阿策小和尚

Flutter 小菜 0 基础学习 Flutter Android 小菜鸟 8月日更

Apache Pulsar 里程碑简史:打造统一消息流平台与生态

Apache Pulsar

Apache Pulsar StreamNative

【LeetCode】二叉树的镜像Java题解

Albert

算法 LeetCode 8月日更

三分钟看完单例模式的八个例子

4ye

Java 后端 设计模式 单例模式 8月日更

「免费开源」基于Vue和Quasar的前端SPA项目crudapi后台管理系统实战之EXCEL数据导出(十三)

crudapi

Vue crud crudapi qusar 数据导出

“互联网+”大赛之智慧校园赛题攻略:你的智慧校园,WeLink帮你来建

华为云开发者联盟

小程序 华为云 welink 智慧校园 “互联网+”大赛

源码级深挖AQS队列同步器

码农参上

AQS 锁机制 8月日更

大厂offer?拿来吧你!网易有道笔试编程题特辑

有道技术团队

招聘 笔试 #技术干货# 网易有道

Compose 中的 ConstraintLayout

Changing Lin

8月日更

iOS开发:苹果开发者账号第一次新建APP ID以及创建App的步骤

三掌柜

8月日更 8月

Vue进阶(二十八):浅析 Vue 中 computed 与 method 区别

No Silver Bullet

Vue 8月日更 computed

从0开始的TypeScriptの六:webpack5热更新打包TS

空城机

JavaScript typescript 大前端 8月日更

Go协程并发之百万级并发「让我们一起Golang」

Regan Yue

高并发 协程 Go 语言 8月日更

API纠错+翻译,就等您大展身手!

Geek_6cdeb6

云小课 | 网络知识一箩筐——NAT网关,让IP地址华丽变身,轻松实现内外网互通

华为云开发者联盟

私网NAT网关 NAT网关 公网NAT网关

Java Array 和 String 的转换

HoneyMoose

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