Kangax 的 ES7 兼容性表格
Kangax 的 ES7 兼容性表格
https://kangax.github.io/compat-table/es2016plus/
Engine types
Features
Flagged features
Show obsolete platforms Show unstable platforms
⬤ Minor difference (1 point) ⬤ Small feature (2 points) ⬤ Medium feature (4 points) ⬤ Large feature (8 points)
| Compilers/polyfills | Desktop browsers | Servers/runtimes | Mobile | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| Feature name | Current browser | Traceur | Babel 6 + core-js |
Closure 2018.11 | Type- Script + core-js |
es7-shim | IE 11 | Edge 17 | Edge 18 | FF 60 ESR | FF 63 | FF 64 | CH 70, OP 57 |
CH 71, OP 58 |
SF 11.1 | SF 12 | Node >=6.5 <7[2] | Node >=8.10 <9[2] | Node >=10.13 <11[2] | DUK 2.2 | GraalVM 1.0[3] | iOS 11.3 | iOS 12 | Samsung 8.2 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 2016 features | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
§exponentiation (**) operator |
2/3 | 3/3 | 3/3 | 2/3 | 0/3 | 0/3 | 3/3 | 3/3 | 3/3 | 3/3 | 3/3 | 3/3 | 3/3 | 3/3 | 3/3 | 0/3 | 3/3 | 3/3 | 2/3 | 3/3 | 3/3 | 3/3 | 3/3 | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
§Array.prototype.includes |
0/3 | 3/3 | 2/3 | 3/3 | 2/3 | 0/3 | 3/3 | 3/3 | 3/3 | 3/3 | 3/3 | 3/3 | 3/3 | 3/3 | 3/3 | 3/3 | 3/3 | 3/3 | 0/3 | 3/3 | 3/3 | 3/3 | 3/3 | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 2016 misc | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
§generator functions can't be used with "new" [7] |
Yes | No | No | No | No | No | No | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | No | Yes | Yes | Yes | Yes | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
§generator throw() caught by inner generator [8] |
Yes | No | No | Yes | Yes[9] | No | No | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | No | Yes | Yes | Yes | Yes | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| §strict fn w/ non-strict non-simple params is error[10] | Yes | No | No | No | No | No | No | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | No | Yes | Yes | Yes | Yes | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
§nested rest destructuring, declarations [11] |
Yes | No | Yes | Yes | Yes | No | No | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | No | Yes | Yes | Yes | Yes | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| §nested rest destructuring, parameters[12] | Yes | No | Yes | Yes | Yes | No | No | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | No | Yes | Yes | Yes | Yes | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
§Proxy, "enumerate" handler removed [13] |
Yes | No | No | No | No | No | No | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| §Proxy internal calls, Array.prototype.includes | Yes | No | No | No | No | No | No | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | No | Yes | Yes | Yes | Yes | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 2017 features | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| §Object static methods | 0/4 | 4/4 | 3/4 | 4/4 | 3/4 | 0/4 | 4/4 | 4/4 | 4/4 | 4/4 | 4/4 | 4/4 | 4/4 | 4/4 | 4/4 | 0/4 | 4/4 | 4/4 | 0/4 | 4/4 | 4/4 | 4/4 | 4/4 | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| §String padding | 0/2 | 2/2 | 2/2 | 2/2 | 2/2 | 0/2 | 2/2 | 2/2 | 2/2 | 2/2 | 2/2 | 2/2 | 2/2 | 2/2 | 2/2 | 0/2 | 2/2 | 2/2 | 0/2 | 2/2 | 2/2 | 2/2 | 2/2 | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
§trailing commas in function syntax |
0/2 | 2/2 | 2/2 | 2/2 | 0/2 | 0/2 | 2/2 | 2/2 | 2/2 | 2/2 | 2/2 | 2/2 | 2/2 | 2/2 | 2/2 | 0/2 | 2/2 | 2/2 | 0/2 | 2/2 | 2/2 | 2/2 | 2/2 | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
§async functions |
3/15 | 3/15 | 9/15 | 8/15 | 0/15 | 0/15 | 15/15 | 15/15 | 15/15 | 15/15 | 15/15 | 15/15 | 15/15 | 15/15 | 15/15 | 0/15 | 15/15 | 15/15 | 0/15 | 13/15 | 15/15 | 15/15 | 15/15 | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| §shared memory and atomics | 0/17 | 0/17 | 0/17 | 0/17 | 0/17 | 0/17 | 0/17 | 0/17 | 0/17 | 0/17 | 0/17 | 17/17 | 17/17 | 0/17 | 0/17 | 0/17 | 17/17 | 17/17 | 0/17 | 17/17 | 0/17 | 0/17 | 0/17 | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 2017 misc | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
§Proxy "ownKeys" handler, duplicate keys for non-extensible targets (ES 2017 semantics) [22] |
Yes | No | No | No | No | No | No | Yes | Yes | No | No | No | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| §RegExp "u" flag, case folding | Yes | No | No | No | No | No | No | No | No | Yes | Yes | Yes | Yes | Yes | Yes | Yes | No | Yes | Yes | No | Yes | Yes | Yes | Yes | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
§arguments.caller removed |
Yes | No | No | No | No | No | No | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | No | Yes | Yes | No | Yes | Yes | Yes | Yes | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 2017 annex b | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| §Object.prototype getter/setter methods | 0/16 | 16/16 | 0/16 | 16/16 | 0/16 | 8/16 | 14/16 | 14/16 | 16/16 | 16/16 | 16/16 | 16/16 | 16/16 | 16/16 | 16/16 | 10/16 | 16/16 | 16/16 | 16/16 | 16/16 | 16/16 | 16/16 | 16/16 | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| §Proxy internal calls, getter/setter methods | 0/4 | 0/4 | 0/4 | 0/4 | 0/4 | 0/4 | 4/4 | 4/4 | 4/4 | 4/4 | 4/4 | 4/4 | 4/4 | 4/4 | 4/4 | 0/4 | 4/4 | 4/4 | 0/4 | 4/4 | 4/4 | 4/4 | 4/4 | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
§assignments allowed in for-in head in non-strict mode |
Yes | Yes | No | No | No | No | No | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 2018 features | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| §object rest/spread properties | 0/2 | 2/2 | 1/2 | 2/2 | 0/2 | 0/2 | 0/2 | 0/2 | 2/2 | 2/2 | 2/2 | 2/2 | 2/2 | 2/2 | 2/2 | 0/2 | 2/2 | 2/2 | 0/2 | 2/2 | 2/2 | 2/2 | 2/2 | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
§Promise.prototype.finally |
0/3 | 3/3 | 3/3 | 3/3 | 0/3 | 0/3 | 0/3 | 3/3 | 3/3 | 3/3 | 3/3 | 3/3 | 3/3 | 3/3 | 3/3 | 0/3 | 0/3 | 3/3 | 0/3 | 3/3 | 3/3 | 3/3 | 3/3 | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| §s (dotAll) flag for regular expressions | Yes | ? | Yes | No | ? | No | No | No | No | No | No | No | Yes | Yes | Yes | Yes | ? | Yes | Yes | No | Yes | Yes | Yes | Yes | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| §RegExp named capture groups | Yes | No | Yes | No | No | No | No | No | No | No | No | No | Yes | Yes | Yes | Yes | No | Flag[23] | Yes | No | Yes | Yes | Yes | Flag[23] | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| §RegExp Lookbehind Assertions | Yes | No | No | No | No | No | No | No | No | No | No | No | Yes | Yes | No | No | Flag[23] | Yes | Yes | No | Yes | No | No | Yes | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| §RegExp Unicode Property Escapes | Yes | No | Yes | No | No | No | No | No | No | No | No | No | Yes | Yes | Yes | Yes | No | Flag[23] | Yes | No | Yes | Yes | Yes | Flag[23] | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| §Asynchronous Iterators | 0/2 | 2/2 | 2/2 | 2/2 | 0/2 | 0/2 | 0/2 | 0/2 | 2/2 | 2/2 | 2/2 | 2/2 | 2/2 | 0/2 | 2/2 | 0/2 | 0/2 | 2/2 | 0/2 | 2/2 | 0/2 | 2/2 | 2/2 | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 2018 misc | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| §template literal revision | Yes | No | No | Yes | No | No | No | No | No | Yes | Yes | Yes | Yes | Yes | Yes | Yes | No | Yes | Yes | No | Yes | Yes | Yes | Yes | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 2019 misc | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| §optional catch binding | 0/3 | 0/3 | 0/3 | 3/3 | 0/3 | 0/3 | 0/3 | 0/3 | 3/3 | 3/3 | 3/3 | 3/3 | 3/3 | 3/3 | 3/3 | 0/3 | 0/3 | 3/3 | 0/3 | 0/3 | 3/3 | 3/3 | 0/3 | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
§Symbol.prototype.description |
Yes | No | No | No | No | No | No | No | No | No | Yes | Yes | Yes | Yes | No | Yes | No | No | No | No | No | No | Yes | No | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
§Function.prototype.toString revision |
0/7 | 0/7 | 0/7 | 0/7 | 0/7 | 1/7 | 4/7 | 4/7 | 7/7 | 7/7 | 7/7 | 7/7 | 7/7 | 4/7 | 4/7 | 4/7 | 4/7 | 7/7 | 1/7 | 7/7 | 4/7 | 4/7 | 4/7 | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
[1] Flagged features have to be enabled via --harmony flag
[2] Flagged features have to be enabled via --harmony or --es_staging flag
[3] Executed in Node.js/JVM mode via graalvm/bin/node --jvm.
[4] The feature have to be enabled via "Experimental Javascript features" setting under about:flags
[5] This feature is supported when using Babel with core-js.
[6] This feature is supported when using TypeScript with core-js.
[7] TC39 meeting notes from July 28, 2015.
[8] 'Semantics of yield* in throw case' GitHub issue in ECMA-262 repo.
[9] Requires the downlevelIteration compile option.
[10] TC39 meeting notes from July 29, 2015.
[11] TC39 meeting notes from July 28, 2015.
[12] TC39 meeting notes from July 28, 2015.
[14] This feature requires native generators or regenerator-runtime, it's a part of babel-polyfill or babel-runtime.
[15] Flagged features have to be enabled via "Enable experimental Javascript features" setting under about:flags
[16] The feature was temporarily disabled to mitigate the Meltdown and Spectre CPU bugs.
[17] The feature is available only in Firefox Developer Edition and Firefox Nightly builds.
[18] The feature was temporarily disabled to mitigate the Meltdown and Spectre CPU bugs. It can be enabled via javascript.options.shared_memory setting under about:config
[19] The feature was temporarily disabled to mitigate the Meltdown and Spectre CPU bugs.
[20] The feature was temporarily disabled to mitigate the Meltdown and Spectre CPU bugs.
[21] The feature have to be enabled via "Experimental enabled SharedArrayBuffer support in JavaScript." setting under about:flags
[22] The behaviour of the Proxy “ownKeys” handler in presence of duplicate keys has been modified later.
[23] The feature have to be enabled via --js-flags="--harmony" flag
[24] The feature is considered unstable, but can be enabled via --js-flags="--harmony-promise-finally" flag
============== End
Kangax 的 ES7 兼容性表格的更多相关文章
- ES6 有什么新东西
ES6 有什么新东西? 你可能已经听说过 ECMAScript 6 (简称 ES6)了.ES6 是 Javascript 的下一个版本,它有很多很棒的新特性.这些特性复杂程度各不相同,但对于简单的脚本 ...
- ES6相关新特性介绍
你可能已经听说过 ECMAScript 6 (简称 ES6)了.ES6 是 Javascript 的下一个版本,它有很多很棒的新特性.这些特性复杂程度各不相同,但对于简单的脚本和复杂的应用都很有用.在 ...
- CSS3 nth 伪类选择器
考察下面的 HTML 代码片段: <div> <section>section 1</section> <section>section 2</s ...
- arguments 对象的老历史
引题:为什么 JavaScript 中的 arguments 对象不是数组 http://www.zhihu.com/question/50803453 JavaScript 1.0 1995 年, ...
- 第十一章:WEB浏览器中的javascript
客户端javascript涵盖在本系列的第二部分第10章,主要讲解javascript是如何在web浏览器中实现的,这些章节介绍了大量的脚本宿主对象,这些对象可以表示浏览器窗口.文档树的内容.这些章节 ...
- ES6:JavaScript 新特性
我相信,在ECMAScript.next到来的时候,我们现在每天都在写的JavaScript代码将会发生巨大的变化.接下来的一年将会是令JavaScript开发者们兴奋的一年,越来越多的特性提案将被最 ...
- JavaScript 风格指导(Airbnb版)
JavaScript 风格指导(Airbnb版) 用更合理的方式写 JavaScript 原文 翻译自 Airbnb JavaScript Style Guide . 目录 类型 引用 对象 数组 解 ...
- 三种情形容易引起Azure虚拟机重新启动
与虚拟机或云服务角色中运行的代码有关的问题可能会导致重新启动.但是,Microsoft 在以下情况下也会重新启动您的角色: 来宾操作系统更新 – 仅影响云服务 Web 和辅助角色.有关如何限制这些 ...
- 语音控制的tab选项卡
前端开发whqet,csdn,王海庆,whqet,前端开发专家 ladies and 乡亲们,程序猿同志们,周末仍然坚守工作岗位,或者学习不辍的童鞋们,福音来了. 语音识别高不高端.难不难? 今天给大 ...
随机推荐
- Bat 参数去引号(各种去引号的奇葩方式,三种变量互转),普通变量不能直接去掉外层引号
很多情况下,我们需要脱除一个字符串中可能会存在的引号,然后在加上自己的引 号使其中的特殊字符(命令连接符& .| .&&.||,命令行参数界定符Space .tab . ; . ...
- MSP430F5438A的串口
设置串口,最关键的是波特率的设置,推荐一个网站,很方便地计算波特率,http://software-dl.ti.com/msp430/msp430_public_sw/mcu/msp430/MSP43 ...
- Python实现随机读取文本N行数据
工作中需要判断某个文本中的URL是否能正常访问,并且随机获取其中N行能正常访问的URL数据,我的思路是:读取文本每一行数据,用urlopen访问,将返回状态码为200的URL保存到一个列表,获得列表长 ...
- 2017-2018-2 20155333 《网络对抗技术》 Exp1 PC平台逆向破解
2017-2018-2 20155333 <网络对抗技术> Exp1 PC平台逆向破解 1. 逆向及Bof基础实践说明 1.1 实践目标 本次实践的对象是一个名为pwn1的linux可执行 ...
- 20155334 《网络攻防》Exp5 MSF基础应用
一.基础问题回答 解释exploit,payload,encode是什么: 项目 作用 exploit 是负载有用代码的交通工具,让代码到达目的地,并作用 payload 是有具体功能的代码,能够完成 ...
- python sorted三个例子
# 例1. 按照元素出现的次数来排序 seq = [2,4,3,1,2,2,3] # 按次数排序 seq2 = sorted(seq, key=lambda x:seq.count(x)) print ...
- 牛客OI周赛4-提高组-C-战争[并查集]
题意 一个长度为 \(n\) 的序列,每个权值互不相同,给出形如 \(l,r,p\) 的信息表示 \([l,r]\) 区间中最小的数是 \(p\) ,问第几个信息开始出现矛盾. \(n\leq 5 \ ...
- R实战 第六篇:数据变换(aggregate+dplyr)
数据分析的工作,80%的时间耗费在处理数据上,而数据处理的主要过程可以分为:分离-操作-结合(Split-Apply-Combine),也就是说,首先,把数据根据特定的字段分组,每个分组都是独立的:然 ...
- github协同开发
看官请移步GitHub团队项目合作流程 本文是上述链接的截图,担心哪天作者不小心删除了,备一份在自己这里,仅为自己看着方便.侵权请告知
- EOS开发基础之一:源代码下载与开发环境搭建
区块链最近挺火的,我又是个非常缺钱的人,所以紧跟了潮流一头扎进区块链的研究中. 这EOS项目是目前比较火的一个项目,相信很多朋友拿到这份EOS的源代码后都会一脸懵逼,因为……这代码写得太高级了,老纸看 ...