报名参加CloudWeGo黑客松,奖金直推双丰收! 了解详情
写点什么

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

评论

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

小程序容器可以发挥的价值

Geek_99967b

小程序容器

Java类与对象,万物皆对象

未见花闻

6月月更

Disruptor 高性能堆内队列 系列二

Nick

Java Disruptor false sharing 6月月更 高性能堆内队列

Django API 开发:身份认证原理

宇宙之一粟

django 6月月更

服务管理与通信,基础原理分析

Java 架构 微服务 nacos Feign

一二三线互联网公司划分标准和榜单

laofo

研发效能 互联网公司 一线大厂 二线互联网 一线互联网

ArrayList的底层?

源字节1号

软件开发 前端开发 后端开发 小程序开发

在 Flutter 中以编程方式截取任何 Widget

坚果

6月月更

深入浅出Spring事务的实现原理

清风

spring 原理 事务 源码学习 深入浅出

SpringBoot官方支持任务调度框架,轻量级用起来也挺香!

沉默王二

Java springboot

架构训练营模块三作业

融冰

C#入门系列(八) -- 方法定义

陈言必行

C# 6月月更

基于 spring-cloud-k8s 跨NS坑续集

Damon

微服务架构 云原生 6月月更

协同办公市场暴增背后:融云通信能力是需求重点

融云 RongCloud

谈在代码中嵌入标记生成模版

原创 6月月更

Fabric.js 元素被选中时保持原有层级🥁

德育处主任

web前端 前端可视化 FabricJS Fabric.js 6月月更

聚焦中国算力大会 | 浪潮集团肖雪: 数字化转型新场景激发算力需求

云计算

Linux驱动开发_倒车影像项目介绍

DS小龙哥

6月月更

【愚公系列】2022年06月 面向对象设计原则(二)-开放闭合原则

愚公搬代码

6月月更

leetcode 934. Shortest Bridge 最短的桥(中等)

okokabcd

LeetCode 搜索 算法与数据结构

spring4.1.8初始化源码学习三部曲之二:setConfigLocations方法

程序员欣宸

Java spring 6月月更

Web Service进阶(七)浅谈SOAP Webservice和RESTful Webservice

No Silver Bullet

6月月更 SOAP Webservice RESTful Webservice

聊聊我接触到的语言

卢卡多多

技术 语言 & 开发 6月月更

OKALEIDO的NFT聚合交易,打造面向艺术家的Web3商业生态

BlockChain先知

Apache.commons.lang3 的 isNumber 将会在 lang 4 的时候丢弃

HoneyMoose

【LeetCode】爱吃香蕉的珂珂Java题解

Albert

LeetCode 6月月更

JavaScript原型链继承与盗用构造函数继承

大熊G

JavaScript 前端 6月月更

如何搭建短视频app源码,实现短视频内容的播放优化

开源直播系统源码

APP开发 短视频源码

抖音测试小说频道:抖音早已不再是短视频平台

石头IT视角

物联网低代码平台如何快捷管理资产?

AIRIOT

重载(overLoad)与重写(override)的区别与详解(详解+对比+代码示例)

写代码两年半

javase 多态 重载 6月月更

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