From 5a917b5003e585a19eab2fd009915687fad00199 Mon Sep 17 00:00:00 2001 From: Gregory Brail Date: Thu, 6 Jan 2022 12:45:54 -0800 Subject: [PATCH] Prepare for 1.7.14 release --- README.md | 3 + RELEASE-NOTES.md | 6 +- RELEASE-STEPS.md | 76 + docs/compat/engines.html | 3839 ++++++++++++-------------------------- gradle.properties | 2 +- release-steps.txt | 33 - 6 files changed, 1321 insertions(+), 2638 deletions(-) create mode 100644 RELEASE-STEPS.md delete mode 100644 release-steps.txt diff --git a/README.md b/README.md index 832133bafa..59c2d203d1 100644 --- a/README.md +++ b/README.md @@ -22,6 +22,7 @@ Rhino is licensed under the [MPL 2.0](./LICENSE.txt). Rhino 1.7.11May 30, 2019 Rhino 1.7.12January 13, 2020 Rhino 1.7.13September 2, 2020 +Rhino 1.7.14January 6, 2022 [Release Notes](./RELEASE-NOTES.md) for recent releases. @@ -29,6 +30,8 @@ Rhino is licensed under the [MPL 2.0](./LICENSE.txt). [Compatibility table](https://mozilla.github.io/rhino/compat/engines.html) which shows which advanced JavaScript features from ES6, and ES2016+ are implemented in Rhino. +[![GitHub Action Status](https://github.com/mozilla/rhino/actions/workflows/gradle.yml/badge.svg)](https://github.com/mozilla/rhino/actions/workflows/gradle.yml) + [![Mozilla](https://circleci.com/gh/mozilla/rhino.svg?style=shield)](https://app.circleci.com/pipelines/github/mozilla/rhino) ## Documentation diff --git a/RELEASE-NOTES.md b/RELEASE-NOTES.md index a95fba921e..f433682175 100644 --- a/RELEASE-NOTES.md +++ b/RELEASE-NOTES.md @@ -1,5 +1,5 @@ -# Rhino 1.7.14 RC 1 -## November 1, 2021 +# Rhino 1.7.14 +## January 6, 2022 # Highlights ## Features @@ -73,7 +73,7 @@ ## Thanks! -This release contains more than 300 commits from 21 contributors. Thanks to everyone who helped! +This release contains more than 350 commits from 23 contributors. Thanks to everyone who helped! # Rhino 1.7.13 ## September 2, 2020 diff --git a/RELEASE-STEPS.md b/RELEASE-STEPS.md new file mode 100644 index 0000000000..b1d6ab402d --- /dev/null +++ b/RELEASE-STEPS.md @@ -0,0 +1,76 @@ +# Rhino Release Process + +## Prepare the repository + +Update the version in gradle.properties to the new release version. + +Update RELEASE_NOTES.md to include at least a summary of the major features +of the release. (This is historical, but many find it helpful to have a single +file in the repo that lists the major changes.) + +Update README.md to add a row to the table of releases that points to the +GitHub release that we'll create in the next step (just follow the pattern +that's there). + +Now might be a good time to run "./gradlew publishToMavenLocal" and use the +published JARs as a sanity check. + +## Update Compatibility Table + +The offial Kangax "compat table" now supports Rhino, but it's convenient +to have our own that shows progress across all releases. Here's how to +update it: + + git clone -b gh-pages https://github.com/gbrail/node-compat-table.git + cd node-compat-table + +Now, edit "rhinoall.sh" to include the new release -- it includes a series +of lines that fetch old releases, and use your local build of the new one. +Then, update the table: + + ./rhinoall.sh + +The resulting "index.html" can be copied into "docs/compat/engines.html" in +this repo. + +## Push the Release to GitHub + +At this point, the current contents of your directory correspond to the +new release. Prepare a pull request containing the changes, submit it, +and merge it -- the result will be that the head of the "master" branch +will build your new release. + +Update to that branch and create a tag for the release, where XX is a number +like "1_7_14": + + git pull origin master + git tag Rhino_XX_Release + git push origin Rhino_XX_Release + +Now, on the Rhino "Releases" tab in GitHub, create a release that corresponds +to the new tag. Include the following: + +* A cut and paste of the part of RELEASE_NOTES.md added for the release +* The three JARs created by "./gradlew.jar" +* The ZIP file created by "./gradlew distZip" +* A ZIP of the source will be included automatically by GitHub + +## Push the release to Maven Central + +The "Publish to Maven Central" action on GitHub Actions will automatically +build the release, sign the JARs, and push it to oss.sonatype.org in the +"org.mozilla" area. Log in to oss.sonatype.org, verify that all the checks +that happen there were successful, and "close" the release. It will appear +on Maven Central a few hours later. + +## Update Homebrew + +The Homebrew team for Mac does not necessarily pick up Rhino releases +automatically. It may be necessary to submit a PR to the "homebrew/homebrew" +repo in GitHub for a change to the file "Library/Formula/rhino.rb". + +## Prepare for Next Release + +Now it's time to move to the next "SNAPSHOT" release. Update gradle.properties, +create a PR, and push the new PR. Now development can proceeed anew! + diff --git a/docs/compat/engines.html b/docs/compat/engines.html index 38fa43aea8..97cd40e02e 100644 --- a/docs/compat/engines.html +++ b/docs/compat/engines.html @@ -91,6 +91,16 @@

Rhino ES2015 Support

38% complete14% complete + 1.7.14 +
(these versions have identical results) + + + + + +
+
42% complete15% complete + @@ -101,7 +111,7 @@

- +

proper tail calls (tail call optimisation)

@@ -129,6 +139,7 @@

Yes
Yes
Yes
Yes
Yes
Yes
+
Yes
Yes
@@ -159,6 +170,7 @@

Yes
Yes
Yes
Yes
Yes
Yes
+
Yes
Yes
@@ -168,7 +180,7 @@

- + + + + + + + - + + + + + - + + + + + + + + + + + + + + + - + + + + + + - + + + + + + + + + - + + + + - + + + + + + + - + + + + + + - + + + + + + + + + + + + + + + + + + + + + + - + + + + + + + + + + + + + + + + + + + + + + + + - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - + + + + - + +
+

default function parameters

@@ -190,6 +202,7 @@

Error
Error
Error
Error
Error
Error
Error
Error
@@ -207,6 +220,7 @@

Error
Error
Error
Error
Error
Error
Error
Error
@@ -224,6 +238,7 @@

Error
Error
Error
Error
Error
Error
Error
Error
@@ -248,6 +263,7 @@

Error
Error
Error
Error
Error
Error
Error
Error
@@ -275,6 +291,7 @@

Error
Error
Error
Error
Error
Error
Error
Error
@@ -297,6 +314,7 @@

Error
Error
Error
Error
Error
Error
Error
Error
@@ -316,9 +334,10 @@

Error
Error
Error
Error
Error
Error
Error
Error
+

rest parameters

@@ -342,6 +361,7 @@

Error
Error
Error
Error
Error
Error
Error
Error
@@ -359,6 +379,7 @@

Error
Error
Error
Error
Error
Error
Error
Error
@@ -384,6 +405,7 @@

Error
Error
Error
Error
Error
Error
Error
Error
@@ -407,6 +429,7 @@

Error
Error
Error
Error
Error
Error
Error
Error
@@ -426,9 +449,10 @@

Error
Error
Error
Error
Error
Error
Error
Error
+

spread syntax for iterable objects

@@ -450,6 +474,7 @@

Error
Error
Error
Error
Error
Error
Error
Error
@@ -467,6 +492,7 @@

Error
Error
Error
Error
Error
Error
Error
Error
@@ -485,6 +511,7 @@

Error
Error
Error
Error
Error
Error
Error
Error
@@ -503,6 +530,7 @@

Error
Error
Error
Error
Error
Error
Error
Error
@@ -520,6 +548,7 @@

Error
Error
Error
Error
Error
Error
Error
Error
@@ -537,6 +566,7 @@

Error
Error
Error
Error
Error
Error
Error
Error
@@ -554,6 +584,7 @@

Error
Error
Error
Error
Error
Error
Error
Error
@@ -571,6 +602,7 @@

Error
Error
Error
Error
Error
Error
Error
Error
@@ -589,6 +621,7 @@

Error
Error
Error
Error
Error
Error
Error
Error
@@ -607,6 +640,7 @@

Error
Error
Error
Error
Error
Error
Error
Error
@@ -625,6 +659,7 @@

Error
Error
Error
Error
Error
Error
Error
Error
@@ -643,6 +678,7 @@

Error
Error
Error
Error
Error
Error
Error
Error
@@ -661,6 +697,7 @@

Error
Error
Error
Error
Error
Error
Error
Error
@@ -679,6 +716,7 @@

Error
Error
Error
Error
Error
Error
Error
Error
@@ -700,9 +738,10 @@

Error
Error
Error
Error
Error
Error
Error
Error
+

object literal extensions

@@ -725,6 +764,7 @@

Error
Error
Error
Error
Error
Error
Error
Error
@@ -743,6 +783,7 @@

Error
Error
Error
Error
Error
Error
Error
Flag
@@ -760,6 +801,7 @@

Yes
Yes
Yes
Yes
Yes
Yes
Yes
Yes
@@ -777,6 +819,7 @@

Yes
Yes
Yes
Yes
Yes
Yes
Yes
Yes
@@ -795,6 +838,7 @@

Error
Error
Error
Error
Error
Error
Error
Error
@@ -819,9 +863,10 @@

Error
Error
Error
Error
Error
Error
Error
Error
+

for..of loops

@@ -845,6 +890,7 @@

Error
Flag
Error
Flag
Error
Flag
Error
Flag
@@ -866,6 +912,7 @@

Error
Flag
Error
Flag
Error
Flag
Error
Flag
@@ -886,6 +933,7 @@

Error
Flag
Error
Flag
Error
Flag
Error
Flag
@@ -906,6 +954,7 @@

Error
Flag
Error
Flag
Error
Flag
Error
Flag
@@ -928,6 +977,7 @@

Error
Error
Error
Error
Error
Flag
Error
Flag
@@ -950,6 +1000,7 @@

Error
Flag
Error
Flag
Error
Flag
Error
Flag
@@ -972,6 +1023,7 @@

Error
Flag
Error
Flag
Error
Flag
Error
Flag
@@ -994,6 +1046,7 @@

Error
No
Error
No
Error
No
Error
No
@@ -1018,9 +1071,10 @@

Error
No
Error
No
Error
No
Error
No
+

octal and binary literals

@@ -1042,6 +1096,7 @@

Error
Flag
Error
Flag
Error
Flag
Error
Flag
@@ -1059,6 +1114,7 @@

Error
Flag
Error
Flag
Error
Flag
Error
Flag
@@ -1076,6 +1132,7 @@

No
Flag
No
Flag
No
Flag
No
Flag
@@ -1093,9 +1150,10 @@

No
Flag
No
Flag
No
Flag
No
Flag
+

template literals

@@ -1119,6 +1177,7 @@

Error
Error
Error
Error
Error
Error
Yes
Yes
@@ -1127,7 +1186,7 @@

function(){
var a = { toString: function() { return "foo"; }, - valueOf: function() { return "bar"; }, + valueOf: function() { return "bar"; } }; return `${a}` === "foo";
}
@@ -1140,6 +1199,7 @@

No
No
No
No
No
No
No
No
@@ -1168,6 +1228,7 @@

Error
Error
Error
Error
Error
Error
Yes
Yes
@@ -1187,6 +1248,7 @@

Error
Error
Error
Error
Error
Error
Yes
Yes
@@ -1209,6 +1271,7 @@

Error
Error
Error
Error
Error
Error
Yes
Yes
@@ -1237,6 +1300,7 @@

Error
Error
Error
Error
Error
Error
Yes
Yes
@@ -1262,9 +1326,10 @@

Error
Error
Error
Error
Error
Error
Yes
Yes
+

RegExp "y" and "u" flags

@@ -1288,6 +1353,7 @@

Error
Error
Error
Error
Error
Error
Error
Error
@@ -1308,6 +1374,7 @@

Error
Error
Error
Error
Error
Error
Error
Error
@@ -1325,6 +1392,7 @@

Error
Error
Error
Error
Error
Error
Error
Error
@@ -1342,6 +1410,7 @@

Error
Error
Error
Error
Error
Error
Error
Error
@@ -1359,6 +1428,7 @@

Error
Error
Error
Error
Error
Error
Error
Error
@@ -1376,9 +1446,10 @@

Error
Error
Error
Error
Error
Error
Error
Error
+

destructuring, declarations

@@ -1401,6 +1472,7 @@

Yes
Yes
Yes
Yes
Yes
Yes
Yes
Yes
@@ -1419,6 +1491,7 @@

Yes
Yes
Yes
Yes
Yes
Yes
Yes
Yes
@@ -1437,6 +1510,7 @@

Yes
Yes
Yes
Yes
Yes
Yes
Yes
Yes
@@ -1455,6 +1529,7 @@

No
No
No
No
No
No
No
No
@@ -1473,6 +1548,7 @@

Error
Error
Error
Error
Error
No
Error
No
@@ -1491,6 +1567,7 @@

No
No
No
No
No
No
No
No
@@ -1509,6 +1586,7 @@

No
No
No
No
No
No
No
No
@@ -1531,6 +1609,7 @@

No
No
No
No
No
No
No
No
@@ -1549,6 +1628,7 @@

Yes
Yes
Yes
Yes
Yes
Yes
Yes
Yes
@@ -1567,6 +1647,7 @@

Error
Flag
Error
Flag
Error
Flag
Error
Flag
@@ -1587,6 +1668,7 @@

Error
Flag
Error
Flag
Error
Flag
Error
Flag
@@ -1605,6 +1687,7 @@

Error
Flag
Error
Flag
Error
Flag
Error
Flag
@@ -1636,6 +1719,7 @@

Error
Flag
Error
Flag
Error
Flag
Error
Flag
@@ -1655,6 +1739,7 @@

Error
Error
Error
Error
Error
Error
Error
Error
@@ -1673,6 +1758,7 @@

Error
Flag
Error
Flag
Error
Flag
Error
Flag
@@ -1693,6 +1779,7 @@

Error
Flag
Error
Flag
Error
Flag
Error
Flag
@@ -1712,6 +1799,7 @@

Error
Error
Error
Error
Error
Error
Error
Error
@@ -1731,6 +1819,7 @@

Error
Flag
Error
Flag
Error
Flag
Error
Flag
@@ -1756,6 +1845,7 @@

Error
Error
Error
Error
Error
Error
Error
Error
@@ -1776,6 +1866,7 @@

Error
Error
Error
Error
Error
Error
Error
Error
@@ -1796,6 +1887,7 @@

Error
Error
Error
Error
Error
Error
Error
Error
@@ -1822,9 +1914,10 @@

Error
Error
Error
Error
Error
Error
Error
Error
+

destructuring, assignment

@@ -1848,6 +1941,7 @@

Yes
Yes
Yes
Yes
Yes
Yes
Yes
Yes
@@ -1867,6 +1961,7 @@

Yes
Yes
Yes
Yes
Yes
Yes
Yes
Yes
@@ -1886,6 +1981,7 @@

Yes
Yes
Yes
Yes
Yes
Yes
Yes
Yes
@@ -1905,6 +2001,7 @@

No
No
No
No
No
No
No
No
@@ -1924,6 +2021,7 @@

Error
Error
Error
Error
Error
No
Error
No
@@ -1943,6 +2041,7 @@

No
No
No
No
No
No
No
No
@@ -1962,6 +2061,7 @@

No
No
No
No
No
No
No
No
@@ -1985,6 +2085,7 @@

No
No
No
No
No
No
No
No
@@ -2003,6 +2104,7 @@

Yes
Yes
Yes
Yes
Yes
Yes
Yes
Yes
@@ -2022,6 +2124,7 @@

Yes
Yes
Yes
Yes
Yes
Yes
Yes
Yes
@@ -2041,6 +2144,7 @@

Yes
Yes
Yes
Yes
Yes
Yes
Yes
Yes
@@ -2060,6 +2164,7 @@

Error
Error
Error
Error
Error
Error
Error
Flag
@@ -2081,6 +2186,7 @@

Error
Error
Error
Error
Error
Error
Error
Flag
@@ -2100,6 +2206,7 @@

Error
Error
Error
Error
Error
Error
Error
Flag
@@ -2118,6 +2225,7 @@

Error
Error
Error
Error
Error
Error
Error
Flag
@@ -2142,6 +2250,7 @@

Error
Error
Error
Error
Error
Error
Error
No
@@ -2161,6 +2270,7 @@

Error
Error
Error
Error
Error
Error
Error
Flag
@@ -2193,6 +2303,7 @@

Error
Error
Error
Error
Error
Error
Error
Flag
@@ -2212,6 +2323,7 @@

Error
Error
Error
Error
Error
Error
Error
Error
@@ -2233,6 +2345,7 @@

Error
Error
Error
Error
Error
Error
Error
Flag
@@ -2254,6 +2367,7 @@

Error
Error
Error
Error
Error
Error
Error
Error
@@ -2273,6 +2387,7 @@

Error
Error
Error
Error
Error
Error
Error
Error
@@ -2292,6 +2407,7 @@

Yes
Yes
Yes
Yes
Yes
Yes
Yes
Yes
@@ -2313,9 +2429,10 @@

Error
Error
Error
Error
Error
Error
Error
Error
+

destructuring, parameters

@@ -2339,6 +2456,7 @@

Yes
Yes
Yes
Yes
Yes
Yes
Yes
Yes
@@ -2358,6 +2476,7 @@

Yes
Yes
Yes
Yes
Yes
Yes
Yes
Yes
@@ -2377,6 +2496,7 @@

Yes
Yes
Yes
Yes
Yes
Yes
Yes
Yes
@@ -2396,6 +2516,7 @@

No
No
No
No
No
No
No
No
@@ -2415,6 +2536,7 @@

Error
Error
Error
Error
Error
No
Error
No
@@ -2434,6 +2556,7 @@

No
No
No
No
No
No
No
No
@@ -2453,6 +2576,7 @@

No
No
No
No
No
No
No
No
@@ -2475,6 +2599,7 @@

No
No
No
No
No
No
No
No
@@ -2494,6 +2619,7 @@

Yes
Yes
Yes
Yes
Yes
Yes
Yes
Yes
@@ -2513,6 +2639,7 @@

Error
Flag
Error
Flag
Error
Flag
Error
Flag
@@ -2533,6 +2660,7 @@

Error
Flag
Error
Flag
Error
Flag
Error
Flag
@@ -2552,6 +2680,7 @@

Error
Flag
Error
Flag
Error
Flag
Error
Flag
@@ -2577,6 +2706,7 @@

Error
Flag
Error
Flag
Error
Flag
Error
Flag
@@ -2597,6 +2727,7 @@

Error
Error
Error
Error
Error
Error
Error
Error
@@ -2617,6 +2748,7 @@

Error
Flag
Error
Flag
Error
Flag
Error
Flag
@@ -2637,6 +2769,7 @@

Error
Flag
Error
Flag
Error
Flag
Error
Flag
@@ -2657,6 +2790,7 @@

Error
Flag
Error
Flag
Error
Flag
Error
Flag
@@ -2674,6 +2808,7 @@

Error
Flag
Error
Flag
Error
Flag
Error
Flag
@@ -2694,6 +2829,7 @@

Error
Error
Error
Error
Error
Error
Error
Error
@@ -2713,6 +2849,7 @@

Yes
Yes
Yes
Yes
Yes
Yes
Yes
Yes
@@ -2734,6 +2871,7 @@

Error
Error
Error
Error
Error
Error
Error
Error
@@ -2756,6 +2894,7 @@

Error
Error
Error
Error
Error
Error
Error
Error
@@ -2775,6 +2914,7 @@

Error
Error
Error
Error
Error
Error
Error
Error
@@ -2794,6 +2934,7 @@

Error
Error
Error
Error
Error
Error
Error
Error
@@ -2813,9 +2954,36 @@

Error
Error
Error
Error
Error
Error
Error
Error
+
duplicate identifier +
? +
function(){ +
var d = function d([d]) { return d }; +if (d([true]) !== true) return false; + +try { + eval('var f = function f([id, id]) { return id }'); + return false; +} catch (e) { + return e instanceof SyntaxError; +}
} +
+
+
No
No
No
No
No
No
No
No
No
No
No
No
No
No
No
No
+

Unicode code point escapes

@@ -2837,6 +3005,7 @@

No
No
No
No
No
No
No
No
@@ -2855,6 +3024,7 @@

Error
Error
Error
Error
Error
Error
Error
Error
@@ -2873,6 +3043,7 @@

Error
Error
Error
Error
Error
Error
Error
Error
@@ -2891,9 +3062,10 @@

Error
Error
Error
Error
Error
Error
Error
Error
+

new.target

@@ -2922,6 +3094,7 @@

Error
Error
Error
Error
Error
Error
Error
Error
@@ -2948,6 +3121,7 @@

Error
Error
Error
Error
Error
Error
Error
Error
@@ -2957,7 +3131,7 @@

- + + + + + + + + + + + + + + + + + + - + + + + + + + + + + + + + + + + - +
+

const

@@ -2980,6 +3154,7 @@

Yes
Yes
Yes
Yes
Yes
Yes
Yes
Yes
@@ -2999,6 +3174,7 @@

Error
Error
Error
Error
Error
Error
Error
Error
@@ -3022,6 +3198,7 @@

Error
Error
Error
Error
Error
Error
Error
Error
@@ -3044,6 +3221,7 @@

No
No
No
No
No
No
No
No
@@ -3066,6 +3244,7 @@

No
No
No
No
No
No
No
No
@@ -3085,6 +3264,7 @@

Error
Error
Error
Error
Error
Error
Error
Error
@@ -3106,6 +3286,7 @@

Error
Error
Error
Error
Error
Error
Error
Error
@@ -3127,6 +3308,7 @@

Error
Error
Error
Error
Error
Error
Error
Error
@@ -3148,6 +3330,7 @@

No
No
No
No
No
No
No
No
@@ -3167,6 +3350,7 @@

Yes
Yes
Yes
Yes
Yes
Yes
Yes
Yes
@@ -3187,6 +3371,7 @@

Error
Error
Error
Error
Error
Error
Error
Error
@@ -3211,6 +3396,7 @@

Error
Error
Error
Error
Error
Error
Error
Error
@@ -3234,6 +3420,7 @@

No
No
No
No
No
No
No
No
@@ -3257,6 +3444,7 @@

No
No
No
No
No
No
No
No
@@ -3277,6 +3465,7 @@

Error
Error
Error
Error
Error
Error
Error
Error
@@ -3299,6 +3488,7 @@

Error
Error
Error
Error
Error
Error
Error
Error
@@ -3321,6 +3511,7 @@

Error
Error
Error
Error
Error
Error
Error
Error
@@ -3343,9 +3534,10 @@

No
No
No
No
No
No
No
No
+

let

@@ -3368,6 +3560,7 @@

Error
Flag
Error
Flag
Error
Flag
Error
Flag
@@ -3387,6 +3580,7 @@

Error
Flag
Error
Flag
Error
Flag
Error
Flag
@@ -3410,6 +3604,7 @@

Error
Flag
Error
Flag
Error
Flag
Error
Flag
@@ -3432,6 +3627,7 @@

Error
No
Error
No
Error
No
Error
No
@@ -3451,6 +3647,7 @@

Error
Flag
Error
Flag
Error
Flag
Error
Flag
@@ -3472,6 +3669,7 @@

Error
No
Error
No
Error
No
Error
No
@@ -3500,6 +3698,7 @@

Error
No
Error
No
Error
No
Error
No
@@ -3522,6 +3721,7 @@

No
Flag
No
Flag
No
Flag
No
Flag
@@ -3541,6 +3741,7 @@

Error
Flag
Error
Flag
Error
Flag
Error
Flag
@@ -3561,6 +3762,7 @@

Error
Flag
Error
Flag
Error
Flag
Error
Flag
@@ -3585,6 +3787,7 @@

Error
Flag
Error
Flag
Error
Flag
Error
Flag
@@ -3608,6 +3811,7 @@

Error
No
Error
No
Error
No
Error
No
@@ -3628,6 +3832,7 @@

Error
Flag
Error
Flag
Error
Flag
Error
Flag
@@ -3650,6 +3855,7 @@

Error
No
Error
No
Error
No
Error
No
@@ -3679,6 +3885,7 @@

Error
No
Error
No
Error
No
Error
No
@@ -3701,9 +3908,10 @@

No
Flag
No
Flag
No
Flag
No
Flag
+

@@ -3734,6 +3942,7 @@

No
No
No
No
No
No
No
No
@@ -3743,7 +3952,7 @@

- + + + + + + + + + + + + + - + + + + + + + + + + + + + + + + + + + + + + + + - + + + + + + + + - + + + + + + + + + + + + + + + + + + + + + + + + + + +
+

arrow functions

@@ -3765,6 +3974,7 @@

Yes
Yes
Yes
Yes
Yes
Yes
Yes
Yes
@@ -3783,6 +3993,7 @@

Yes
Yes
Yes
Yes
Yes
Yes
Yes
Yes
@@ -3801,6 +4012,7 @@

Yes
Yes
Yes
Yes
Yes
Yes
Yes
Yes
@@ -3820,6 +4032,7 @@

Yes
Yes
Yes
Yes
Yes
Yes
Yes
Yes
@@ -3839,6 +4052,7 @@

Yes
Yes
Yes
Yes
Yes
Yes
Yes
Yes
@@ -3858,6 +4072,7 @@

Yes
Yes
Yes
Yes
Yes
Yes
Yes
Yes
@@ -3876,6 +4091,7 @@

Yes
Yes
Yes
Yes
Yes
Yes
Yes
Yes
@@ -3895,6 +4111,7 @@

Yes
Yes
Yes
Yes
Yes
Yes
Yes
Yes
@@ -3914,6 +4131,7 @@

Yes
Yes
Yes
Yes
Yes
Yes
Yes
Yes
@@ -3932,6 +4150,7 @@

Yes
Yes
Yes
Yes
Yes
Yes
Yes
Yes
@@ -3962,6 +4181,7 @@

Error
Error
Error
Error
Error
Error
Error
Error
@@ -3990,6 +4210,7 @@

Error
Error
Error
Error
Error
Error
Error
Error
@@ -4010,9 +4231,10 @@

Error
Error
Error
Error
Error
Error
Error
Error
+

class

@@ -4035,6 +4257,7 @@

Error
Error
Error
Error
Error
Error
Error
Error
@@ -4058,6 +4281,7 @@

Error
Error
Error
Error
Error
Error
Error
Error
@@ -4075,6 +4299,7 @@

Error
Error
Error
Error
Error
Error
Error
Error
@@ -4092,6 +4317,7 @@

Error
Error
Error
Error
Error
Error
Error
Error
@@ -4113,6 +4339,7 @@

Error
Error
Error
Error
Error
Error
Error
Error
@@ -4134,6 +4361,7 @@

Error
Error
Error
Error
Error
Error
Error
Error
@@ -4155,6 +4383,7 @@

Error
Error
Error
Error
Error
Error
Error
Error
@@ -4177,6 +4406,7 @@

Error
Error
Error
Error
Error
Error
Error
Error
@@ -4202,6 +4432,7 @@

Error
Error
Error
Error
Error
Error
Error
Error
@@ -4223,6 +4454,7 @@

Error
Error
Error
Error
Error
Error
Error
Error
@@ -4245,6 +4477,7 @@

Error
Error
Error
Error
Error
Error
Error
Error
@@ -4268,6 +4501,7 @@

Error
Error
Error
Error
Error
Error
Error
Error
@@ -4291,6 +4525,7 @@

Error
Error
Error
Error
Error
Error
Error
Error
@@ -4314,6 +4549,7 @@

Error
Error
Error
Error
Error
Error
Error
Error
@@ -4337,6 +4573,7 @@

Error
Error
Error
Error
Error
Error
Error
Error
@@ -4359,6 +4596,7 @@

Error
Error
Error
Error
Error
Error
Error
Error
@@ -4382,6 +4620,7 @@

Error
Error
Error
Error
Error
Error
Error
Error
@@ -4403,6 +4642,7 @@

Error
Error
Error
Error
Error
Error
Error
Error
@@ -4423,6 +4663,7 @@

Error
Error
Error
Error
Error
Error
Error
Error
@@ -4446,6 +4687,7 @@

Error
Error
Error
Error
Error
Error
Error
Error
@@ -4466,6 +4708,7 @@

Error
Error
Error
Error
Error
Error
Error
Error
@@ -4486,6 +4729,7 @@

Error
Error
Error
Error
Error
Error
Error
Error
@@ -4507,6 +4751,7 @@

Error
Error
Error
Error
Error
Error
Error
Error
@@ -4536,9 +4781,10 @@

Error
Error
Error
Error
Error
Error
Error
Error
+

super

@@ -4568,6 +4814,7 @@

Error
Error
Error
Error
Error
Error
Error
Error
@@ -4591,6 +4838,7 @@

Error
Error
Error
Error
Error
Error
Error
Error
@@ -4615,6 +4863,7 @@

Error
Error
Error
Error
Error
Error
Error
Error
@@ -4638,6 +4887,7 @@

Error
Error
Error
Error
Error
Error
Error
Error
@@ -4663,6 +4913,7 @@

Error
Error
Error
Error
Error
Error
Error
Error
@@ -4688,6 +4939,7 @@

Error
Error
Error
Error
Error
Error
Error
Error
@@ -4715,6 +4967,7 @@

Error
Error
Error
Error
Error
Error
Error
Error
@@ -4744,9 +4997,10 @@

Error
Error
Error
Error
Error
Error
Error
Error
+

generators

@@ -4778,6 +5032,7 @@

Error
Error
Error
Error
Error
Flag
Error
Flag
@@ -4805,6 +5060,7 @@

Error
Error
Error
Error
Error
Flag
Error
Flag
@@ -4832,6 +5088,7 @@

Error
Error
Error
Error
Error
Flag
Error
Flag
@@ -4857,6 +5114,7 @@

Error
Error
Error
Error
Error
No
Error
No
@@ -4882,6 +5140,7 @@

Error
Error
Error
Error
Error
Error
Error
Error
@@ -4908,6 +5167,7 @@

Error
Error
Error
Error
Error
No
Error
No
@@ -4938,6 +5198,7 @@

Error
Error
Error
Error
Error
Error
Error
Error
@@ -4967,6 +5228,7 @@

Error
Error
Error
Error
Error
Flag
Error
Flag
@@ -4995,6 +5257,7 @@

Error
Error
Error
Error
Error
Flag
Error
Flag
@@ -5022,6 +5285,7 @@

Error
Error
Error
Error
Error
No
Error
No
@@ -5046,6 +5310,7 @@

Error
Error
Error
Error
Error
Flag
Error
Flag
@@ -5072,6 +5337,7 @@

Error
Error
Error
Error
Error
Flag
Error
Flag
@@ -5098,6 +5364,7 @@

Error
Error
Error
Error
Error
Flag
Error
Flag
@@ -5124,6 +5391,7 @@

Error
Error
Error
Error
Error
Flag
Error
Flag
@@ -5150,6 +5418,7 @@

Error
Error
Error
Error
Error
Flag
Error
Flag
@@ -5178,6 +5447,7 @@

Error
Error
Error
Error
Error
Flag
Error
Flag
@@ -5206,6 +5476,7 @@

Error
Error
Error
Error
Error
Flag
Error
Flag
@@ -5234,6 +5505,7 @@

Error
Error
Error
Error
Error
Flag
Error
Flag
@@ -5263,6 +5535,7 @@

Error
Error
Error
Error
Error
Flag
Error
Flag
@@ -5296,6 +5569,7 @@

Error
Error
Error
Error
Error
Flag
Error
Flag
@@ -5328,6 +5602,7 @@

Error
Error
Error
Error
Error
Flag
Error
Flag
@@ -5337,7 +5612,7 @@

var o = { * generator() { yield 5; yield 6; - }, + } }; var iterator = o.generator(); var item = iterator.next(); @@ -5357,6 +5632,7 @@

Error
Error
Error
Error
Error
Error
Error
Error
@@ -5366,7 +5642,7 @@

var o = { * "foo bar"() { yield 5; yield 6; - }, + } }; var iterator = o["foo bar"](); var item = iterator.next(); @@ -5386,6 +5662,7 @@

Error
Error
Error
Error
Error
Error
Error
Error
@@ -5396,7 +5673,7 @@

var o = { * [garply] () { yield 5; yield 6; - }, + } }; var iterator = o.generator(); var item = iterator.next(); @@ -5416,6 +5693,7 @@

Error
Error
Error
Error
Error
Error
Error
Error
@@ -5445,6 +5723,7 @@

Error
Error
Error
Error
Error
Error
Error
Error
@@ -5475,6 +5754,7 @@

Error
Error
Error
Error
Error
Error
Error
Error
@@ -5501,6 +5781,7 @@

Error
Error
Error
Error
Error
Error
Error
Error
@@ -5510,7 +5791,7 @@

- + + + + + + + + + + + + + + + + + + + - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - + + + + + + + + + + + + + + + + + + + - + + + + + + + + + + + + + + + + + + + - + + + + + + + + + + + + - + + + + + + + + + + + - + + + + + + + + + + + + + + + + + + + + @@ -8580,6 +8989,7 @@

+ + + + + + + + + + + + + + - + + + + + + + + + + + + + + + + + + + + - + + + + + + + + - + + + + + + + + + + + + - + + + + + + + + + + + + + + + + + + + + + + + + + +
+

typed arrays

@@ -5534,6 +5815,7 @@

Error
Flag
Error
Flag
Error
Flag
Error
Flag
@@ -5553,6 +5835,7 @@

Error
Flag
Error
Flag
Error
Flag
Error
Flag
@@ -5572,6 +5855,7 @@

Error
Flag
Error
Flag
Error
Flag
Error
Flag
@@ -5591,6 +5875,7 @@

Error
Flag
Error
Flag
Error
Flag
Error
Flag
@@ -5610,6 +5895,7 @@

Error
Flag
Error
Flag
Error
Flag
Error
Flag
@@ -5629,6 +5915,7 @@

Error
Flag
Error
Flag
Error
Flag
Error
Flag
@@ -5648,6 +5935,7 @@

Error
Flag
Error
Flag
Error
Flag
Error
Flag
@@ -5667,6 +5955,7 @@

Error
Flag
Error
Flag
Error
Flag
Error
Flag
@@ -5686,6 +5975,7 @@

Error
Flag
Error
Flag
Error
Flag
Error
Flag
@@ -5706,6 +5996,7 @@

Error
Flag
Error
Flag
Error
Flag
Error
Flag
@@ -5726,6 +6017,7 @@

Error
Flag
Error
Flag
Error
Flag
Error
Flag
@@ -5746,6 +6038,7 @@

Error
Flag
Error
Flag
Error
Flag
Error
Flag
@@ -5766,6 +6059,7 @@

Error
Flag
Error
Flag
Error
Flag
Error
Flag
@@ -5786,6 +6080,7 @@

Error
Flag
Error
Flag
Error
Flag
Error
Flag
@@ -5806,6 +6101,7 @@

Error
Flag
Error
Flag
Error
Flag
Error
Flag
@@ -5826,6 +6122,7 @@

Error
Flag
Error
Flag
Error
Flag
Error
Flag
@@ -5846,6 +6143,7 @@

Error
Flag
Error
Flag
Error
Flag
Error
Flag
@@ -5863,6 +6161,7 @@

Error
No
Error
No
Error
No
Error
No
@@ -5903,6 +6202,7 @@

Error
No
Error
No
Error
No
Error
No
@@ -5928,13 +6228,14 @@

Error
Error
Error
Error
Error
Error
Error
Error
Error
Error
Error
Error
Error
Error
Error
Error
Error
Error
Error
Error
@@ -5975,6 +6276,7 @@

Error
No
Error
No
Error
No
Error
No
@@ -6000,6 +6302,7 @@

Error
No
Error
No
Error
No
Error
No
@@ -6025,6 +6328,7 @@

Error
No
Error
No
Error
No
Error
No
@@ -6050,6 +6354,7 @@

Error
Flag
Error
Flag
Error
Flag
Error
Flag
@@ -6075,6 +6380,7 @@

Error
No
Error
No
Error
No
Error
No
@@ -6100,6 +6406,7 @@

Error
No
Error
No
Error
No
Error
No
@@ -6125,6 +6432,7 @@

Error
No
Error
No
Error
No
Error
No
@@ -6150,6 +6458,7 @@

Error
No
Error
No
Error
No
Error
No
@@ -6175,6 +6484,7 @@

Error
No
Error
No
Error
No
Error
No
@@ -6200,6 +6510,7 @@

Error
No
Error
No
Error
No
Error
No
@@ -6225,6 +6536,7 @@

Error
No
Error
No
Error
No
Error
No
@@ -6250,6 +6562,7 @@

Error
No
Error
No
Error
No
Error
No
@@ -6275,6 +6588,7 @@

Error
No
Error
No
Error
No
Error
No
@@ -6300,6 +6614,7 @@

Error
No
Error
No
Error
No
Error
No
@@ -6325,6 +6640,7 @@

Error
No
Error
No
Error
No
Error
No
@@ -6350,6 +6666,7 @@

Error
No
Error
No
Error
No
Error
No
@@ -6375,6 +6692,7 @@

Error
No
Error
No
Error
No
Error
No
@@ -6400,6 +6718,7 @@

Error
No
Error
No
Error
No
Error
No
@@ -6425,6 +6744,7 @@

Error
No
Error
No
Error
No
Error
No
@@ -6450,6 +6770,7 @@

Error
No
Error
No
Error
No
Error
No
@@ -6475,6 +6796,7 @@

Error
No
Error
No
Error
No
Error
No
@@ -6500,6 +6822,7 @@

Error
No
Error
No
Error
No
Error
No
@@ -6525,6 +6848,7 @@

Error
No
Error
No
Error
No
Error
No
@@ -6550,6 +6874,7 @@

Error
No
Error
No
Error
No
Error
No
@@ -6575,6 +6900,7 @@

Error
Flag
Error
Flag
Error
Flag
Error
Flag
@@ -6600,9 +6926,10 @@

Error
No
Error
No
Error
No
Error
No
+

Map

@@ -6629,6 +6956,7 @@

Error
Flag
Error
Flag
Error
Flag
Error
Flag
@@ -6651,6 +6979,7 @@

Error
Flag
Error
Flag
Error
Flag
Error
Flag
@@ -6674,6 +7003,7 @@

Error
Flag
Error
Flag
Error
Flag
Error
Flag
@@ -6692,6 +7022,7 @@

Error
Flag
Error
Flag
Error
Flag
Error
Flag
@@ -6719,6 +7050,7 @@

Error
Flag
Error
Flag
Error
Flag
Error
Flag
@@ -6743,6 +7075,7 @@

No
Flag
No
Flag
No
Flag
No
Flag
@@ -6761,6 +7094,7 @@

Error
Flag
Error
Flag
Error
Flag
Error
Flag
@@ -6784,6 +7118,7 @@

Error
Flag
Error
Flag
Error
Flag
Error
Flag
@@ -6806,6 +7141,7 @@

Error
Flag
Error
Flag
Error
Flag
Error
Flag
@@ -6823,6 +7159,7 @@

Error
Flag
Error
Flag
Error
Flag
Error
Flag
@@ -6840,6 +7177,7 @@

Error
Flag
Error
Flag
Error
Flag
Error
Flag
@@ -6857,6 +7195,7 @@

Error
Flag
Error
Flag
Error
Flag
Error
Flag
@@ -6874,6 +7213,7 @@

Error
Flag
Error
Flag
Error
Flag
Error
Flag
@@ -6891,6 +7231,7 @@

Error
Flag
Error
Flag
Error
Flag
Error
Flag
@@ -6908,6 +7249,7 @@

Error
Flag
Error
Flag
Error
Flag
Error
Flag
@@ -6925,6 +7267,7 @@

Error
Flag
Error
Flag
Error
Flag
Error
Flag
@@ -6949,6 +7292,7 @@

Error
Flag
Error
Flag
Error
Flag
Error
Flag
@@ -6976,6 +7320,7 @@

Error
No
Error
No
Error
No
Error
No
@@ -6994,9 +7339,10 @@

Error
Error
Error
Error
Error
Error
Error
Error
+

Set

@@ -7024,6 +7370,7 @@

Error
Flag
Error
Flag
Error
Flag
Error
Flag
@@ -7045,6 +7392,7 @@

Error
Flag
Error
Flag
Error
Flag
Error
Flag
@@ -7068,6 +7416,7 @@

Error
Flag
Error
Flag
Error
Flag
Error
Flag
@@ -7086,6 +7435,7 @@

Error
Flag
Error
Flag
Error
Flag
Error
Flag
@@ -7113,6 +7463,7 @@

Error
Flag
Error
Flag
Error
Flag
Error
Flag
@@ -7140,6 +7491,7 @@

Error
Flag
Error
Flag
Error
Flag
Error
Flag
@@ -7158,6 +7510,7 @@

Error
Flag
Error
Flag
Error
Flag
Error
Flag
@@ -7181,6 +7534,7 @@

Error
Flag
Error
Flag
Error
Flag
Error
Flag
@@ -7205,6 +7559,7 @@

Error
Flag
Error
Flag
Error
Flag
Error
Flag
@@ -7222,6 +7577,7 @@

Error
Flag
Error
Flag
Error
Flag
Error
Flag
@@ -7239,6 +7595,7 @@

Error
Flag
Error
Flag
Error
Flag
Error
Flag
@@ -7256,6 +7613,7 @@

Error
Flag
Error
Flag
Error
Flag
Error
Flag
@@ -7273,6 +7631,7 @@

Error
Flag
Error
Flag
Error
Flag
Error
Flag
@@ -7290,6 +7649,7 @@

Error
Flag
Error
Flag
Error
Flag
Error
Flag
@@ -7307,6 +7667,7 @@

Error
Flag
Error
Flag
Error
Flag
Error
Flag
@@ -7324,6 +7685,7 @@

Error
Flag
Error
Flag
Error
Flag
Error
Flag
@@ -7348,6 +7710,7 @@

Error
Flag
Error
Flag
Error
Flag
Error
Flag
@@ -7375,6 +7738,7 @@

Error
No
Error
No
Error
No
Error
No
@@ -7393,9 +7757,10 @@

Error
Error
Error
Error
Error
Error
Error
Error
+

WeakMap

@@ -7422,6 +7787,7 @@

Error
Flag
Error
Flag
Error
Flag
Error
Flag
@@ -7444,6 +7810,7 @@

Error
Flag
Error
Flag
Error
Flag
Error
Flag
@@ -7467,6 +7834,7 @@

Error
Flag
Error
Flag
Error
Flag
Error
Flag
@@ -7485,6 +7853,7 @@

Error
Flag
Error
Flag
Error
Flag
Error
Flag
@@ -7512,6 +7881,7 @@

Error
Flag
Error
Flag
Error
Flag
Error
Flag
@@ -7532,6 +7902,7 @@

Error
Flag
Error
Flag
Error
Flag
Error
Flag
@@ -7556,6 +7927,7 @@

No
Flag
No
Flag
No
Flag
No
Flag
@@ -7575,6 +7947,7 @@

Error
Flag
Error
Flag
Error
Flag
Error
Flag
@@ -7592,6 +7965,7 @@

Error
Flag
Error
Flag
Error
Flag
Error
Flag
@@ -7616,6 +7990,7 @@

Error
Flag
Error
Flag
Error
Flag
Error
Flag
@@ -7636,6 +8011,7 @@

Error
Flag
Error
Flag
Error
Flag
Error
Flag
@@ -7660,9 +8036,10 @@

Error
Flag
Error
Flag
Error
Flag
Error
Flag
+

WeakSet

@@ -7690,6 +8067,7 @@

Error
Flag
Error
Flag
Error
Flag
Error
Flag
@@ -7710,6 +8088,7 @@

Error
Flag
Error
Flag
Error
Flag
Error
Flag
@@ -7733,6 +8112,7 @@

Error
Flag
Error
Flag
Error
Flag
Error
Flag
@@ -7751,6 +8131,7 @@

Error
Flag
Error
Flag
Error
Flag
Error
Flag
@@ -7778,6 +8159,7 @@

Error
Flag
Error
Flag
Error
Flag
Error
Flag
@@ -7802,6 +8184,7 @@

No
Flag
No
Flag
No
Flag
No
Flag
@@ -7821,6 +8204,7 @@

Error
Flag
Error
Flag
Error
Flag
Error
Flag
@@ -7838,6 +8222,7 @@

Error
Flag
Error
Flag
Error
Flag
Error
Flag
@@ -7862,6 +8247,7 @@

Error
Flag
Error
Flag
Error
Flag
Error
Flag
@@ -7881,6 +8267,7 @@

Error
Flag
Error
Flag
Error
Flag
Error
Flag
@@ -7905,9 +8292,10 @@

Error
Flag
Error
Flag
Error
Flag
Error
Flag
+

Proxy

@@ -7935,6 +8323,7 @@

Error
Error
Error
Error
Error
Error
Error
Error
@@ -7953,6 +8342,7 @@

Error
Error
Error
Error
Error
Error
Error
Error
@@ -7976,6 +8366,7 @@

Error
Error
Error
Error
Error
Error
Error
Error
@@ -7999,6 +8390,7 @@

Error
Error
Error
Error
Error
Error
Error
Error
@@ -8043,6 +8435,7 @@

Error
Error
Error
Error
Error
Error
Error
Error
@@ -8068,6 +8461,7 @@

Error
Error
Error
Error
Error
Error
Error
Error
@@ -8093,6 +8487,7 @@

Error
Error
Error
Error
Error
Error
Error
Error
@@ -8137,6 +8532,7 @@

Error
Error
Error
Error
Error
Error
Error
Error
@@ -8161,6 +8557,7 @@

Error
Error
Error
Error
Error
Error
Error
Error
@@ -8185,6 +8582,7 @@

Error
Error
Error
Error
Error
Error
Error
Error
@@ -8226,6 +8624,7 @@

Error
Error
Error
Error
Error
Error
Error
Error
@@ -8250,6 +8649,7 @@

Error
Error
Error
Error
Error
Error
Error
Error
@@ -8282,6 +8682,7 @@

Error
Error
Error
Error
Error
Error
Error
Error
@@ -8312,6 +8713,7 @@

Error
Error
Error
Error
Error
Error
Error
Error
@@ -8379,6 +8781,7 @@

Error
Error
Error
Error
Error
Error
Error
Error
@@ -8408,6 +8811,7 @@

Error
Error
Error
Error
Error
Error
Error
Error
@@ -8453,6 +8857,7 @@

Error
Error
Error
Error
Error
Error
Error
Error
@@ -8477,6 +8882,7 @@

Error
Error
Error
Error
Error
Error
Error
Error
@@ -8507,6 +8913,7 @@

Error
Error
Error
Error
Error
Error
Error
Error
@@ -8547,6 +8954,8 @@

Error
Error
Error
Error
Error
Error
Error
Error
Error
Error
Error
Error
Error
Error
@@ -8606,6 +9016,7 @@

Error
Error
Error
Error
Error
Error
Error
Error
@@ -8644,6 +9055,7 @@

Error
Error
Error
Error
Error
Error
Error
Error
@@ -8671,6 +9083,7 @@

Error
Error
Error
Error
Error
Error
Error
Error
@@ -8701,6 +9114,7 @@

Error
Error
Error
Error
Error
Error
Error
Error
@@ -8727,6 +9141,7 @@

Error
Error
Error
Error
Error
Error
Error
Error
@@ -8774,6 +9189,7 @@

Error
Error
Error
Error
Error
Error
Error
Error
@@ -8801,6 +9217,7 @@

Error
Error
Error
Error
Error
Error
Error
Error
@@ -8831,6 +9248,7 @@

Error
Error
Error
Error
Error
Error
Error
Error
@@ -8856,6 +9274,7 @@

Error
Error
Error
Error
Error
Error
Error
Error
@@ -8896,6 +9315,7 @@

Error
Error
Error
Error
Error
Error
Error
Error
@@ -8921,6 +9341,7 @@

Error
Error
Error
Error
Error
Error
Error
Error
@@ -8938,6 +9359,7 @@

Error
Error
Error
Error
Error
Error
Error
Error
@@ -8955,9 +9377,10 @@

Error
Error
Error
Error
Error
Error
Error
Error
+

Reflect

@@ -8979,6 +9402,7 @@

Error
Error
Error
Error
Error
Error
Error
Error
@@ -8998,6 +9422,7 @@

Error
Error
Error
Error
Error
Error
Error
Error
@@ -9015,6 +9440,7 @@

Error
Error
Error
Error
Error
Error
Error
Error
@@ -9034,6 +9460,7 @@

Error
Error
Error
Error
Error
Error
Error
Error
@@ -9054,6 +9481,7 @@

Error
Error
Error
Error
Error
Error
Error
Error
@@ -9074,6 +9502,7 @@

Error
Error
Error
Error
Error
Error
Error
Error
@@ -9091,6 +9520,7 @@

Error
Error
Error
Error
Error
Error
Error
Error
@@ -9110,6 +9540,7 @@

Error
Error
Error
Error
Error
Error
Error
Error
@@ -9128,6 +9559,7 @@

Error
Error
Error
Error
Error
Error
Error
Error
@@ -9147,6 +9579,7 @@

Error
Error
Error
Error
Error
Error
Error
Error
@@ -9168,6 +9601,7 @@

Error
Error
Error
Error
Error
Error
Error
Error
@@ -9193,6 +9627,7 @@

Error
Error
Error
Error
Error
Error
Error
Error
@@ -9210,6 +9645,7 @@

Error
Error
Error
Error
Error
Error
Error
Error
@@ -9229,6 +9665,7 @@

Error
Error
Error
Error
Error
Error
Error
Error
@@ -9250,6 +9687,7 @@

Error
Error
Error
Error
Error
Error
Error
Error
@@ -9269,6 +9707,7 @@

Error
Error
Error
Error
Error
Error
Error
Error
@@ -9289,6 +9728,7 @@

Error
Error
Error
Error
Error
Error
Error
Error
@@ -9309,6 +9749,7 @@

Error
Error
Error
Error
Error
Error
Error
Error
@@ -9328,6 +9769,7 @@

Error
Error
Error
Error
Error
Error
Error
Error
@@ -9364,9 +9806,10 @@

Error
Error
Error
Error
Error
Error
Error
Error
+

Promise

@@ -9409,6 +9852,7 @@

Error
Error
Error
Error
Error
Error
Error
Flag
@@ -9432,6 +9876,7 @@

Error
Error
Error
Error
Error
Error
Error
Flag
@@ -9454,6 +9899,7 @@

Error
Error
Error
Error
Error
Error
Error
Flag
@@ -9462,11 +9908,11 @@

function(){
var fulfills = Promise.all([ new Promise(function(resolve) { setTimeout(resolve,2000,"foo"); }), - new Promise(function(resolve) { setTimeout(resolve,1000,"bar"); }), + new Promise(function(resolve) { setTimeout(resolve,1000,"bar"); }) ]); var rejects = Promise.all([ new Promise(function(_, reject) { setTimeout(reject, 2000,"baz"); }), - new Promise(function(_, reject) { setTimeout(reject, 1000,"qux"); }), + new Promise(function(_, reject) { setTimeout(reject, 1000,"qux"); }) ]); var score = 0; fulfills.then(function(result) { score += (result + "" === "foo,bar"); check(); }); @@ -9485,6 +9931,7 @@

Error
Error
Error
Error
Error
Error
Error
Flag
@@ -9493,11 +9940,11 @@

function(){
var fulfills = Promise.all(global.__createIterableObject([ new Promise(function(resolve) { setTimeout(resolve,2000,"foo"); }), - new Promise(function(resolve) { setTimeout(resolve,1000,"bar"); }), + new Promise(function(resolve) { setTimeout(resolve,1000,"bar"); }) ])); var rejects = Promise.all(global.__createIterableObject([ new Promise(function(_, reject) { setTimeout(reject, 2000,"baz"); }), - new Promise(function(_, reject) { setTimeout(reject, 1000,"qux"); }), + new Promise(function(_, reject) { setTimeout(reject, 1000,"qux"); }) ])); var score = 0; fulfills.then(function(result) { score += (result + "" === "foo,bar"); check(); }); @@ -9516,6 +9963,7 @@

Error
Error
Error
Error
Error
Error
Error
Flag
@@ -9524,11 +9972,11 @@

function(){
var fulfills = Promise.race([ new Promise(function(resolve) { setTimeout(resolve,1000,"foo"); }), - new Promise(function(_, reject) { setTimeout(reject, 2000,"bar"); }), + new Promise(function(_, reject) { setTimeout(reject, 2000,"bar"); }) ]); var rejects = Promise.race([ new Promise(function(_, reject) { setTimeout(reject, 1000,"baz"); }), - new Promise(function(resolve) { setTimeout(resolve,2000,"qux"); }), + new Promise(function(resolve) { setTimeout(resolve,2000,"qux"); }) ]); var score = 0; fulfills.then(function(result) { score += (result === "foo"); check(); }); @@ -9547,6 +9995,7 @@

Error
Error
Error
Error
Error
Error
Error
Flag
@@ -9555,11 +10004,11 @@

function(){
var fulfills = Promise.race(global.__createIterableObject([ new Promise(function(resolve) { setTimeout(resolve,1000,"foo"); }), - new Promise(function(_, reject) { setTimeout(reject, 2000,"bar"); }), + new Promise(function(_, reject) { setTimeout(reject, 2000,"bar"); }) ])); var rejects = Promise.race(global.__createIterableObject([ new Promise(function(_, reject) { setTimeout(reject, 1000,"baz"); }), - new Promise(function(resolve) { setTimeout(resolve,2000,"qux"); }), + new Promise(function(resolve) { setTimeout(resolve,2000,"qux"); }) ])); var score = 0; fulfills.then(function(result) { score += (result === "foo"); check(); }); @@ -9578,6 +10027,7 @@

Error
Error
Error
Error
Error
Error
Error
Flag
@@ -9596,9 +10046,10 @@

Error
Error
Error
Error
Error
Error
Error
Flag
+

Symbol

@@ -9624,6 +10075,7 @@

Error
Flag
Error
Flag
Error
Flag
Error
Flag
@@ -9641,6 +10093,7 @@

Error
Flag
Error
Flag
Error
Flag
Error
Flag
@@ -9670,6 +10123,7 @@

Error
Flag
Error
Flag
Error
Flag
Error
Flag
@@ -9696,6 +10150,7 @@

Error
Flag
Error
Flag
Error
Flag
Error
Flag
@@ -9718,6 +10173,7 @@

Error
Flag
Error
Flag
Error
Flag
Error
Flag
@@ -9748,6 +10204,7 @@

Error
Flag
Error
Flag
Error
Flag
Error
Flag
@@ -9765,6 +10222,7 @@

Error
Flag
Error
Flag
Error
Flag
Error
Flag
@@ -9787,6 +10245,7 @@

Error
Flag
Error
Flag
Error
Flag
Error
Flag
@@ -9811,6 +10270,7 @@

Error
No
Error
No
Error
No
Error
No
@@ -9831,6 +10291,7 @@

Error
No
Error
No
Error
No
Error
No
@@ -9861,6 +10322,7 @@

Error
Flag
Error
Flag
Error
Flag
Error
Flag
@@ -9880,9 +10342,10 @@

Error
Flag
Error
Flag
Error
Flag
Error
Flag
+

well-known symbols

@@ -9911,6 +10374,7 @@

Error
No
Error
No
Error
No
Error
No
@@ -9931,6 +10395,7 @@

Error
Flag
Error
Flag
Error
Flag
Error
Flag
@@ -9948,6 +10413,7 @@

Error
Flag
Error
Flag
Error
Flag
Error
Flag
@@ -9968,6 +10434,7 @@

Error
Flag
Error
Flag
Error
Flag
Error
Flag
@@ -9985,6 +10452,7 @@

Error
Flag
Error
Flag
Error
Flag
Error
Flag
@@ -10007,6 +10475,7 @@

Error
No
Error
No
Error
No
Error
No
@@ -10029,6 +10498,7 @@

Error
No
Error
No
Error
No
Error
No
@@ -10051,6 +10521,7 @@

Error
No
Error
No
Error
No
Error
No
@@ -10073,6 +10544,7 @@

Error
No
Error
No
Error
No
Error
No
@@ -10095,6 +10567,7 @@

Error
No
Error
No
Error
No
Error
No
@@ -10120,6 +10593,7 @@

Error
No
Error
No
Error
No
Error
No
@@ -10141,6 +10615,7 @@

Error
Error
Error
Error
Error
Error
Error
Flag
@@ -10162,6 +10637,7 @@

Error
No
Error
No
Error
No
Error
No
@@ -10183,6 +10659,7 @@

Error
No
Error
No
Error
No
Error
No
@@ -10204,6 +10681,7 @@

Error
No
Error
No
Error
No
Error
No
@@ -10225,6 +10703,7 @@

Error
No
Error
No
Error
No
Error
No
@@ -10246,6 +10725,7 @@

Error
No
Error
No
Error
No
Error
No
@@ -10269,6 +10749,7 @@

Error
Error
Error
Error
Error
Error
Error
Error
@@ -10292,6 +10773,7 @@

Error
Error
Error
Error
Error
Error
Error
Error
@@ -10315,6 +10797,7 @@

Error
Error
Error
Error
Error
Error
Error
Error
@@ -10341,6 +10824,7 @@

Error
No
Error
No
Error
No
Error
No
@@ -10360,6 +10844,7 @@

Error
No
Error
No
Error
No
Error
No
@@ -10394,6 +10879,7 @@

Error
No
Error
No
Error
No
Error
No
@@ -10435,6 +10921,7 @@

Error
Error
Error
Error
Error
No
Error
No
@@ -10454,6 +10941,7 @@

Error
No
Error
No
Error
No
Error
No
@@ -10475,6 +10963,7 @@

Error
No
Error
No
Error
No
Error
No
@@ -10484,7 +10973,7 @@

- + + + + - + + + + + + + + + + + + + + + + + - + + - + + + + + + + + + + - + + + + + + - + + + + + + + + + + + - + + + + + + + + + + - + + + + + + + + + - + + + + + + + + + + + + + + + + + - +
+

Object static methods

@@ -10511,6 +11000,7 @@

Yes
Yes
Yes
Yes
Yes
Yes
Yes
Yes
@@ -10530,6 +11020,7 @@

Yes
Yes
Yes
Yes
Yes
Yes
Yes
Yes
@@ -10555,6 +11046,7 @@

Error
Flag
Error
Flag
Error
Flag
Error
Flag
@@ -10583,10 +11075,12 @@

Error
Flag
Error
Flag
Error
Flag
+

function "name" property

@@ -10610,6 +11104,7 @@

Yes
Yes
Yes
Yes
Yes
Yes
Yes
Yes
@@ -10628,6 +11123,7 @@

Yes
Yes
Yes
Yes
Yes
Yes
Yes
Yes
@@ -10645,6 +11141,7 @@

Yes
Yes
Yes
Yes
Yes
Yes
Yes
Yes
@@ -10664,6 +11161,7 @@

No
No
No
No
No
No
No
No
@@ -10683,6 +11181,7 @@

No
No
No
No
No
No
No
No
@@ -10704,6 +11203,7 @@

No
No
No
No
No
No
No
No
@@ -10724,6 +11224,7 @@

No
No
No
No
No
No
No
No
@@ -10742,6 +11243,7 @@

No
No
No
No
No
No
No
No
@@ -10760,6 +11262,7 @@

Yes
Yes
Yes
Yes
Yes
Yes
Yes
Yes
@@ -10785,6 +11288,7 @@

Error
Error
Error
Error
Error
Error
Error
Error
@@ -10805,6 +11309,7 @@

Error
Error
Error
Error
Error
Error
Error
Error
@@ -10823,6 +11328,7 @@

Error
Error
Error
Error
Error
Error
Error
Error
@@ -10845,6 +11351,7 @@

Error
Error
Error
Error
Error
Error
Error
Error
@@ -10866,6 +11373,7 @@

Error
Error
Error
Error
Error
Error
Error
Error
@@ -10884,6 +11392,7 @@

Error
Error
Error
Error
Error
Error
Error
Error
@@ -10902,6 +11411,7 @@

Error
Error
Error
Error
Error
Error
Error
Error
@@ -10922,9 +11432,10 @@

No
No
No
No
No
No
No
No
+

String static methods

@@ -10946,6 +11457,7 @@

No
No
No
No
No
No
Yes
Yes
@@ -10963,9 +11475,10 @@

No
No
No
No
Yes
Yes
Yes
Yes
+

String.prototype methods

@@ -10987,6 +11500,7 @@

Yes
Yes
Yes
Yes
Yes
Yes
Yes
Yes
@@ -11006,6 +11520,7 @@

Yes
Yes
Yes
Yes
Yes
Yes
Yes
Yes
@@ -11024,6 +11539,7 @@

Yes
Yes
Yes
Yes
Yes
Yes
Yes
Yes
@@ -11042,6 +11558,7 @@

Yes
Yes
Yes
Yes
Yes
Yes
Yes
Yes
@@ -11063,6 +11580,7 @@

Yes
Yes
Yes
Yes
Yes
Yes
Yes
Yes
@@ -11081,6 +11599,7 @@

Yes
Yes
Yes
Yes
Yes
Yes
Yes
Yes
@@ -11102,6 +11621,7 @@

Yes
Yes
Yes
Yes
Yes
Yes
Yes
Yes
@@ -11120,6 +11640,7 @@

Yes
Yes
Yes
Yes
Yes
Yes
Yes
Yes
@@ -11137,6 +11658,7 @@

Error
Flag
Error
Flag
Error
Flag
Error
Flag
@@ -11164,9 +11686,10 @@

Error
No
Error
No
Error
No
Error
No
+

RegExp.prototype properties

@@ -11188,6 +11711,7 @@

No
No
No
No
No
No
No
No
@@ -11205,6 +11729,7 @@

Error
No
Error
No
Error
Flag
Error
Flag
@@ -11222,6 +11747,7 @@

Error
No
Error
No
Error
No
Error
No
@@ -11239,6 +11765,7 @@

Error
No
Error
No
Error
No
Error
No
@@ -11256,6 +11783,7 @@

Error
No
Error
No
Error
Flag
Error
Flag
@@ -11274,9 +11802,10 @@

Error
Error
Error
Error
Error
Error
Error
Error
+

Array static methods

@@ -11306,6 +11835,7 @@

Yes
Yes
Yes
Yes
Yes
Yes
Yes
Yes
@@ -11324,6 +11854,7 @@

Error
Error
Error
Error
Error
Flag
Error
Flag
@@ -11350,6 +11881,7 @@

No
Error
No
Flag
No
Flag
No
Flag
@@ -11376,6 +11908,7 @@

No
Error
No
Flag
No
Flag
No
Flag
@@ -11403,6 +11936,7 @@

Yes
Yes
Yes
Yes
Yes
Yes
Yes
Yes
@@ -11423,6 +11957,7 @@

Error
Error
Error
Error
Error
Flag
Error
Flag
@@ -11451,6 +11986,7 @@

No
Error
No
Flag
No
Flag
No
Flag
@@ -11479,6 +12015,7 @@

No
Error
No
Flag
No
Flag
No
Flag
@@ -11503,6 +12040,7 @@

No
Flag
No
Flag
No
Flag
No
Flag
@@ -11521,6 +12059,7 @@

Yes
Yes
Yes
Yes
Yes
Yes
Yes
Yes
@@ -11539,9 +12078,10 @@

Error
Error
Error
Error
Error
Error
Error
Error
+

Array.prototype methods

@@ -11563,6 +12103,7 @@

Yes
Yes
Yes
Yes
Yes
Yes
Yes
Yes
@@ -11580,6 +12121,7 @@

Yes
Yes
Yes
Yes
Yes
Yes
Yes
Yes
@@ -11597,6 +12139,7 @@

Yes
Yes
Yes
Yes
Yes
Yes
Yes
Yes
@@ -11614,6 +12157,7 @@

Yes
Yes
Yes
Yes
Yes
Yes
Yes
Yes
@@ -11631,6 +12175,7 @@

Yes
Yes
Yes
Yes
Yes
Yes
Yes
Yes
@@ -11648,6 +12193,7 @@

Yes
Yes
Yes
Yes
Yes
Yes
Yes
Yes
@@ -11665,6 +12211,7 @@

Yes
Yes
Yes
Yes
Yes
Yes
Yes
Yes
@@ -11682,6 +12229,7 @@

Error
Flag
Error
Flag
Error
Flag
Error
Flag
@@ -11709,6 +12257,7 @@

Error
No
Error
No
Error
No
Error
No
@@ -11734,9 +12283,10 @@

Error
No
Error
No
Error
No
Error
No
+

Number properties

@@ -11758,6 +12308,7 @@

Yes
Yes
Yes
Yes
Yes
Yes
Yes
Yes
@@ -11775,6 +12326,7 @@

Yes
Yes
Yes
Yes
Yes
Yes
Yes
Yes
@@ -11792,6 +12344,7 @@

Yes
Yes
Yes
Yes
Yes
Yes
Yes
Yes
@@ -11809,6 +12362,7 @@

Yes
Yes
Yes
Yes
Yes
Yes
Yes
Yes
@@ -11828,6 +12382,7 @@

No
No
No
No
No
No
Yes
Yes
@@ -11847,6 +12402,7 @@

No
No
No
No
No
No
Yes
Yes
@@ -11864,6 +12420,7 @@

No
No
No
No
No
No
Yes
Yes
@@ -11881,6 +12438,7 @@

Yes
Yes
Yes
Yes
Yes
Yes
Yes
Yes
@@ -11898,9 +12456,10 @@

Yes
Yes
Yes
Yes
Yes
Yes
Yes
Yes
+

Math methods

@@ -11922,6 +12481,7 @@

Yes
Yes
Yes
Yes
Yes
Yes
Yes
Yes
@@ -11939,6 +12499,7 @@

Yes
Yes
Yes
Yes
Yes
Yes
Yes
Yes
@@ -11956,6 +12517,7 @@

Yes
Yes
Yes
Yes
Yes
Yes
Yes
Yes
@@ -11973,6 +12535,7 @@

Yes
Yes
Yes
Yes
Yes
Yes
Yes
Yes
@@ -11990,6 +12553,7 @@

Yes
Yes
Yes
Yes
Yes
Yes
Yes
Yes
@@ -12007,6 +12571,7 @@

Yes
Yes
Yes
Yes
Yes
Yes
Yes
Yes
@@ -12024,6 +12589,7 @@

Yes
Yes
Yes
Yes
Yes
Yes
Yes
Yes
@@ -12041,6 +12607,7 @@

Yes
Yes
Yes
Yes
Yes
Yes
Yes
Yes
@@ -12058,6 +12625,7 @@

Yes
Yes
Yes
Yes
Yes
Yes
Yes
Yes
@@ -12075,6 +12643,7 @@

Yes
Yes
Yes
Yes
Yes
Yes
Yes
Yes
@@ -12092,6 +12661,7 @@

Yes
Yes
Yes
Yes
Yes
Yes
Yes
Yes
@@ -12109,6 +12679,7 @@

Yes
Yes
Yes
Yes
Yes
Yes
Yes
Yes
@@ -12126,6 +12697,7 @@

Yes
Yes
Yes
Yes
Yes
Yes
Yes
Yes
@@ -12143,6 +12715,7 @@

Yes
Yes
Yes
Yes
Yes
Yes
Yes
Yes
@@ -12160,6 +12733,7 @@

Yes
Yes
Yes
Yes
Yes
Yes
Yes
Yes
@@ -12177,6 +12751,7 @@

Yes
Yes
Yes
Yes
Yes
Yes
Yes
Yes
@@ -12197,9 +12772,10 @@

Yes
Yes
Yes
Yes
Yes
Yes
Yes
Yes
+

@@ -12224,6 +12800,7 @@

Error
Error
Error
Error
Error
Error
Error
Error
@@ -12233,7 +12810,7 @@

- + + + + + + + + + + + - + + + + - + + + + + + - + + + + - + + + + + +
+

Array is subclassable

@@ -12260,6 +12837,7 @@

Error
Error
Error
Error
Error
Error
Error
Error
@@ -12281,6 +12859,7 @@

Error
Error
Error
Error
Error
Error
Error
Error
@@ -12300,6 +12879,7 @@

Error
Error
Error
Error
Error
Error
Error
Error
@@ -12318,6 +12898,7 @@

Error
Error
Error
Error
Error
Error
Error
Error
@@ -12337,6 +12918,7 @@

Error
Error
Error
Error
Error
Error
Error
Error
@@ -12356,6 +12938,7 @@

Error
Error
Error
Error
Error
Error
Error
Error
@@ -12375,6 +12958,7 @@

Error
Error
Error
Error
Error
Error
Error
Error
@@ -12395,6 +12979,7 @@

Error
Error
Error
Error
Error
Error
Error
Error
@@ -12415,6 +13000,7 @@

Error
Error
Error
Error
Error
Error
Error
Error
@@ -12433,6 +13019,7 @@

Error
Error
Error
Error
Error
Error
Error
Error
@@ -12451,9 +13038,10 @@

Error
Error
Error
Error
Error
Error
Error
Error
+

RegExp is subclassable

@@ -12477,6 +13065,7 @@

Error
Error
Error
Error
Error
Error
Error
Error
@@ -12496,6 +13085,7 @@

Error
Error
Error
Error
Error
Error
Error
Error
@@ -12515,6 +13105,7 @@

Error
Error
Error
Error
Error
Error
Error
Error
@@ -12534,9 +13125,10 @@

Error
Error
Error
Error
Error
Error
Error
Error
+

Function is subclassable

@@ -12560,6 +13152,7 @@

Error
Error
Error
Error
Error
Error
Error
Error
@@ -12579,6 +13172,7 @@

Error
Error
Error
Error
Error
Error
Error
Error
@@ -12599,6 +13193,7 @@

Error
Error
Error
Error
Error
Error
Error
Error
@@ -12618,6 +13213,7 @@

Error
Error
Error
Error
Error
Error
Error
Error
@@ -12637,6 +13233,7 @@

Error
Error
Error
Error
Error
Error
Error
Error
@@ -12656,9 +13253,10 @@

Error
Error
Error
Error
Error
Error
Error
Error
+

Promise is subclassable

@@ -12702,6 +13300,7 @@

Error
Error
Error
Error
Error
Error
Error
Error
@@ -12721,6 +13320,7 @@

Error
Error
Error
Error
Error
Error
Error
Error
@@ -12730,11 +13330,11 @@

class P extends Promise {} var fulfills = P.all([ new Promise(function(resolve) { setTimeout(resolve,2000,"foo"); }), - new Promise(function(resolve) { setTimeout(resolve,1000,"bar"); }), + new Promise(function(resolve) { setTimeout(resolve,1000,"bar"); }) ]); var rejects = P.all([ new Promise(function(_, reject) { setTimeout(reject, 2000,"baz"); }), - new Promise(function(_, reject) { setTimeout(reject, 1000,"qux"); }), + new Promise(function(_, reject) { setTimeout(reject, 1000,"qux"); }) ]); var score = +(fulfills instanceof P); fulfills.then(function(result) { score += (result + "" === "foo,bar"); check(); }); @@ -12753,6 +13353,7 @@

Error
Error
Error
Error
Error
Error
Error
Error
@@ -12762,11 +13363,11 @@

class P extends Promise {} var fulfills = P.race([ new Promise(function(resolve) { setTimeout(resolve,1000,"foo"); }), - new Promise(function(_, reject) { setTimeout(reject, 2000,"bar"); }), + new Promise(function(_, reject) { setTimeout(reject, 2000,"bar"); }) ]); var rejects = P.race([ new Promise(function(_, reject) { setTimeout(reject, 1000,"baz"); }), - new Promise(function(resolve) { setTimeout(resolve,2000,"qux"); }), + new Promise(function(resolve) { setTimeout(resolve,2000,"qux"); }) ]); var score = +(fulfills instanceof P); fulfills.then(function(result) { score += (result === "foo"); check(); }); @@ -12785,9 +13386,10 @@

Error
Error
Error
Error
Error
Error
Error
Error
+

miscellaneous subclassables

@@ -12813,6 +13415,7 @@

Error
Error
Error
Error
Error
Error
Error
Error
@@ -12834,6 +13437,7 @@

Error
Error
Error
Error
Error
Error
Error
Error
@@ -12857,6 +13461,7 @@

Error
Error
Error
Error
Error
Error
Error
Error
@@ -12878,6 +13483,7 @@

Error
Error
Error
Error
Error
Error
Error
Error
@@ -12901,6 +13507,7 @@

Error
Error
Error
Error
Error
Error
Error
Error
@@ -12925,6 +13532,7 @@

Error
Error
Error
Error
Error
Error
Error
Error
@@ -12934,7 +13542,7 @@

- + + + + + - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - + + + + + + + + + + + - + + - + + + + + + - + + + + - + + + - + + + + + + + + + + - + + + + + + + - + + + - + + + + + + + + +
+

prototype of bound functions

@@ -12968,6 +13576,7 @@

No
No
No
No
No
No
No
No
@@ -12997,6 +13606,7 @@

Error
Error
Error
Error
No
No
No
No
@@ -13026,6 +13636,7 @@

No
No
No
No
No
No
No
No
@@ -13055,6 +13666,7 @@

Error
Error
Error
Error
Error
Error
Error
Error
@@ -13083,9 +13695,10 @@

Error
Error
Error
Error
Error
Error
Error
Error
+

Proxy, internal 'get' calls

@@ -13111,6 +13724,7 @@

Error
Error
Error
Error
Error
Error
Error
Error
@@ -13132,6 +13746,7 @@

Error
Error
Error
Error
Error
Error
Error
Error
@@ -13154,6 +13769,7 @@

Error
Error
Error
Error
Error
Error
Error
Error
@@ -13178,6 +13794,7 @@

Error
Error
Error
Error
Error
Error
Error
Error
@@ -13199,6 +13816,7 @@

Error
Error
Error
Error
Error
Error
Error
Error
@@ -13220,6 +13838,7 @@

Error
Error
Error
Error
Error
Error
Error
Error
@@ -13252,6 +13871,7 @@

Error
Error
Error
Error
Error
Error
Error
Error
@@ -13281,6 +13901,7 @@

Error
Error
Error
Error
Error
Error
Error
Error
@@ -13302,6 +13923,7 @@

Error
Error
Error
Error
Error
Error
Error
Error
@@ -13323,6 +13945,7 @@

Error
Error
Error
Error
Error
Error
Error
Error
@@ -13344,6 +13967,7 @@

Error
Error
Error
Error
Error
Error
Error
Error
@@ -13365,6 +13989,7 @@

Error
Error
Error
Error
Error
Error
Error
Error
@@ -13387,6 +14012,7 @@

Error
Error
Error
Error
Error
Error
Error
Error
@@ -13410,6 +14036,7 @@

Error
Error
Error
Error
Error
Error
Error
Error
@@ -13443,6 +14070,7 @@

Error
Error
Error
Error
Error
Error
Error
Error
@@ -13464,6 +14092,7 @@

Error
Error
Error
Error
Error
Error
Error
Error
@@ -13485,6 +14114,7 @@

Error
Error
Error
Error
Error
Error
Error
Error
@@ -13508,6 +14138,7 @@

Error
Error
Error
Error
Error
Error
Error
Error
@@ -13531,6 +14162,7 @@

Error
Error
Error
Error
Error
Error
Error
Error
@@ -13552,6 +14184,7 @@

Error
Error
Error
Error
Error
Error
Error
Error
@@ -13575,6 +14208,7 @@

Error
Error
Error
Error
Error
Error
Error
Error
@@ -13596,6 +14230,7 @@

Error
Error
Error
Error
Error
Error
Error
Error
@@ -13624,6 +14259,7 @@

Error
Error
Error
Error
Error
Error
Error
Error
@@ -13658,6 +14294,7 @@

Error
Error
Error
Error
Error
Error
Error
Error
@@ -13679,6 +14316,7 @@

Error
Error
Error
Error
Error
Error
Error
Error
@@ -13700,6 +14338,7 @@

Error
Error
Error
Error
Error
Error
Error
Error
@@ -13721,6 +14360,7 @@

Error
Error
Error
Error
Error
Error
Error
Error
@@ -13743,6 +14383,7 @@

Error
Error
Error
Error
Error
Error
Error
Error
@@ -13764,6 +14405,7 @@

Error
Error
Error
Error
Error
Error
Error
Error
@@ -13785,6 +14427,7 @@

Error
Error
Error
Error
Error
Error
Error
Error
@@ -13806,6 +14449,7 @@

Error
Error
Error
Error
Error
Error
Error
Error
@@ -13829,6 +14473,7 @@

Error
Error
Error
Error
Error
Error
Error
Error
@@ -13852,6 +14497,7 @@

Error
Error
Error
Error
Error
Error
Error
Error
@@ -13875,6 +14521,7 @@

Error
Error
Error
Error
Error
Error
Error
Error
@@ -13898,6 +14545,7 @@

Error
Error
Error
Error
Error
Error
Error
Error
@@ -13920,9 +14568,10 @@

Error
Error
Error
Error
Error
Error
Error
Error
+

Proxy, internal 'set' calls

@@ -13948,6 +14597,7 @@

Error
Error
Error
Error
Error
Error
Error
Error
@@ -13969,6 +14619,7 @@

Error
Error
Error
Error
Error
Error
Error
Error
@@ -13990,6 +14641,7 @@

Error
Error
Error
Error
Error
Error
Error
Error
@@ -14011,6 +14663,7 @@

Error
Error
Error
Error
Error
Error
Error
Error
@@ -14032,6 +14685,7 @@

Error
Error
Error
Error
Error
Error
Error
Error
@@ -14053,6 +14707,7 @@

Error
Error
Error
Error
Error
Error
Error
Error
@@ -14074,6 +14729,7 @@

Error
Error
Error
Error
Error
Error
Error
Error
@@ -14095,6 +14751,7 @@

Error
Error
Error
Error
Error
Error
Error
Error
@@ -14116,6 +14773,7 @@

Error
Error
Error
Error
Error
Error
Error
Error
@@ -14137,6 +14795,7 @@

Error
Error
Error
Error
Error
Error
Error
Error
@@ -14158,9 +14817,10 @@

Error
Error
Error
Error
Error
Error
Error
Error
+

Proxy, internal 'defineProperty' calls

@@ -14186,6 +14846,7 @@

Error
Error
Error
Error
Error
Error
Error
Error
@@ -14207,9 +14868,10 @@

Error
Error
Error
Error
Error
Error
Error
Error
+

Proxy, internal 'deleteProperty' calls

@@ -14235,6 +14897,7 @@

Error
Error
Error
Error
Error
Error
Error
Error
@@ -14256,6 +14919,7 @@

Error
Error
Error
Error
Error
Error
Error
Error
@@ -14277,6 +14941,7 @@

Error
Error
Error
Error
Error
Error
Error
Error
@@ -14298,6 +14963,7 @@

Error
Error
Error
Error
Error
Error
Error
Error
@@ -14319,6 +14985,7 @@

Error
Error
Error
Error
Error
Error
Error
Error
@@ -14340,9 +15007,10 @@

Error
Error
Error
Error
Error
Error
Error
Error
+

Proxy, internal 'getOwnPropertyDescriptor' calls

@@ -14369,6 +15037,7 @@

Error
Error
Error
Error
Error
Error
Error
Error
@@ -14391,6 +15060,7 @@

Error
Error
Error
Error
Error
Error
Error
Error
@@ -14413,6 +15083,7 @@

Error
Error
Error
Error
Error
Error
Error
Error
@@ -14435,9 +15106,10 @@

Error
Error
Error
Error
Error
Error
Error
Error
+

Proxy, internal 'ownKeys' calls

@@ -14463,6 +15135,7 @@

Error
Error
Error
Error
Error
Error
Error
Error
@@ -14484,6 +15157,7 @@

Error
Error
Error
Error
Error
Error
Error
Error
@@ -14505,9 +15179,10 @@

Error
Error
Error
Error
Error
Error
Error
Error
+

Object static methods accept primitives

@@ -14529,6 +15204,7 @@

Error
Flag
Error
Flag
Error
Flag
Error
Flag
@@ -14546,6 +15222,7 @@

Error
Flag
Error
Flag
Error
Flag
Error
Flag
@@ -14565,6 +15242,7 @@

Error
Flag
Error
Flag
Error
Flag
Error
Flag
@@ -14582,6 +15260,7 @@

Error
Flag
Error
Flag
Error
Flag
Error
Flag
@@ -14599,6 +15278,7 @@

Error
Flag
Error
Flag
Error
Flag
Error
Flag
@@ -14616,6 +15296,7 @@

Error
Flag
Error
Flag
Error
Flag
Error
Flag
@@ -14633,6 +15314,7 @@

Error
Flag
Error
Flag
Error
Flag
Error
Flag
@@ -14650,6 +15332,7 @@

Error
Flag
Error
Flag
Error
Flag
Error
Flag
@@ -14667,6 +15350,7 @@

Error
Flag
Error
Flag
Error
Flag
Error
Flag
@@ -14685,9 +15369,10 @@

Error
Flag
Error
Flag
Error
Flag
Error
Flag
+

own property order

@@ -14710,7 +15395,7 @@

D: true, B: true, // Negative integers are treated as other names - '-1': true, + '-1': true }; // Other string names are added in order of creation obj.A = true; @@ -14741,6 +15426,7 @@

Yes
Yes
Yes
Yes
Yes
Yes
Yes
Yes
@@ -14778,6 +15464,7 @@

No
No
No
No
No
No
No
No
@@ -14824,6 +15511,7 @@

No
No
No
No
No
No
No
No
@@ -14862,6 +15550,7 @@

No
No
No
No
No
No
No
No
@@ -14887,6 +15576,7 @@

Yes
No
Yes
No
Yes
No
Yes
No
@@ -14924,6 +15614,7 @@

Error
Error
Error
Error
Error
Error
Error
Error
@@ -14933,7 +15624,7 @@

var sym1 = Symbol(), sym2 = Symbol(), sym3 = Symbol(); var obj = { 1: true, - A: true, + A: true }; obj.B = true; obj[sym1] = true; @@ -14956,9 +15647,10 @@

Error
Error
Error
Error
Error
Error
Error
Error
+

Updated identifier syntax

@@ -14984,6 +15676,7 @@

No
No
No
No
No
No
No
No
@@ -15002,6 +15695,7 @@

Error
Error
Error
Error
Error
Error
Error
Error
@@ -15024,9 +15718,10 @@

No
No
No
No
No
No
No
No
+

miscellaneous

@@ -15049,6 +15744,7 @@

Error
Error
Error
Error
Error
Error
Error
Error
@@ -15066,6 +15762,7 @@

Yes
Yes
Yes
Yes
Yes
Yes
Yes
Yes
@@ -15089,6 +15786,7 @@

No
No
No
No
No
No
No
No
@@ -15111,6 +15809,7 @@

No
No
No
No
No
No
No
No
@@ -15128,6 +15827,7 @@

Yes
Yes
Yes
Yes
Yes
Yes
Yes
Yes
@@ -15145,6 +15845,7 @@

Error
Error
Error
Error
Error
Error
Error
Error
@@ -15162,6 +15863,7 @@

Error
Error
Error
Error
Error
Error
Error
Error
@@ -15192,6 +15894,7 @@

No
No
No
No
No
No
No
No
@@ -15217,6 +15920,7 @@

No
No
No
No
No
No
No
No
@@ -15226,7 +15930,7 @@

- + + + - + + + + + - + + + + + + - + + + - + + - + + + + + + + + - +
+

non-strict function semantics

@@ -15262,6 +15966,7 @@

Yes
Yes
Yes
Yes
Yes
Yes
Yes
Yes
@@ -15283,6 +15988,7 @@

Yes
Yes
Yes
Yes
Yes
Yes
Yes
Yes
@@ -15307,9 +16013,10 @@

Yes
Yes
Yes
Yes
Yes
Yes
Yes
Yes
+

__proto__ in object literals

@@ -15332,6 +16039,7 @@

Yes
Yes
Yes
Yes
Yes
Yes
Yes
Yes
@@ -15354,6 +16062,7 @@

No
No
No
No
No
No
No
No
@@ -15375,6 +16084,7 @@

Error
Error
Error
Error
Error
Error
Error
Error
@@ -15396,6 +16106,7 @@

Error
Error
Error
Error
Error
Error
Error
No
@@ -15416,9 +16127,10 @@

No
No
No
No
No
Flag
No
Flag
+

Object.prototype.__proto__

@@ -15441,6 +16153,7 @@

Yes
Yes
Yes
Yes
Yes
Yes
Yes
Yes
@@ -15460,6 +16173,7 @@

Yes
Yes
Yes
Yes
Yes
Yes
Yes
Yes
@@ -15479,6 +16193,7 @@

No
No
No
No
No
No
No
No
@@ -15496,6 +16211,7 @@

No
No
No
No
No
No
No
No
@@ -15520,6 +16236,7 @@

No
No
No
No
No
No
No
No
@@ -15537,9 +16254,10 @@

No
No
No
No
No
No
No
No
+

String.prototype HTML methods

@@ -15568,6 +16286,7 @@

Yes
Yes
Yes
Yes
Yes
Yes
Yes
Yes
@@ -15592,6 +16311,7 @@

Yes
Yes
Yes
Yes
Yes
Yes
Yes
Yes
@@ -15615,9 +16335,10 @@

No
No
No
No
No
No
Yes
Yes
+

RegExp.prototype.compile

@@ -15643,6 +16364,7 @@

Yes
Yes
Yes
Yes
Yes
Yes
Yes
Yes
@@ -15661,9 +16383,10 @@

Yes
Yes
Yes
Yes
Yes
Yes
Yes
Yes
+

RegExp syntax extensions

@@ -15685,6 +16408,7 @@

Yes
Yes
Yes
Yes
Yes
Yes
Yes
Yes
@@ -15703,6 +16427,7 @@

Yes
Yes
Yes
Yes
Yes
Yes
Yes
Yes
@@ -15720,6 +16445,7 @@

Yes
Yes
Yes
Yes
Yes
Yes
Yes
Yes
@@ -15738,6 +16464,7 @@

Error
Error
Error
Error
Error
Error
Error
Error
@@ -15756,6 +16483,7 @@

Error
Error
Error
Error
Error
Error
Error
Error
@@ -15774,6 +16502,7 @@

Yes
Yes
Yes
Yes
Yes
Yes
Yes
Yes
@@ -15792,6 +16521,7 @@

Yes
Yes
Yes
Yes
Yes
Yes
Yes
Yes
@@ -15810,9 +16540,10 @@

Yes
Yes
Yes
Yes
Yes
Yes
Yes
Yes
+

@@ -15837,6 +16568,7 @@

Error
Error
Error
Error
Error
Error
Error
Error
@@ -15915,6 +16647,16 @@

Rhino ES2016 Support

15% complete7% complete + 1.7.14 +
(these versions have identical results) + + + + + +
+
46% complete15% complete + @@ -15925,7 +16667,7 @@

- +

exponentiation (**) operator

@@ -15947,6 +16689,7 @@

Error
Error
Error
Error
Error
Error
+
Error
Flag
@@ -15964,6 +16707,7 @@

Error
Error
Error
Error
Error
Error
+
Error
Flag
@@ -15986,9 +16730,10 @@

Error
Error
Error
Error
Error
Error
+
Error
Flag
- +

Array.prototype.includes

@@ -16014,6 +16759,7 @@

No
No
Yes
Yes
Yes
Yes
+
Yes
Yes
@@ -16053,6 +16799,7 @@

No
No
No
No
No
No
+
Yes
Yes
@@ -16075,6 +16822,7 @@

Error
Error
Error
Error
Error
Error
+
Error
Error
@@ -16084,7 +16832,7 @@

- + + + + + + +
+

@@ -16113,6 +16861,7 @@

Error
Error
Error
Error
Error
No
Error
No
@@ -16143,6 +16892,7 @@

Error
Error
Error
Error
Error
Flag
Error
Flag
@@ -16165,6 +16915,7 @@

Error
Error
Error
Error
Error
Error
Error
Error
@@ -16183,6 +16934,7 @@

Error
Error
Error
Error
Error
Error
Error
Error
@@ -16202,6 +16954,7 @@

Error
Error
Error
Error
Error
Error
Error
Error
@@ -16226,6 +16979,7 @@

Error
Error
Error
Error
Error
Error
Error
Error
@@ -16252,6 +17006,7 @@

Error
Error
Error
Error
Error
Error
Error
Error
@@ -16330,6 +17085,16 @@

Rhino ES2017 Support

21% complete18% complete + 1.7.14 +
(these versions have identical results) + + + + + +
+
25% complete18% complete + @@ -16340,7 +17105,7 @@

- +

Object static methods

@@ -16379,6 +17144,8 @@

Error
Error
+
Error
Flag
@@ -16417,6 +17184,8 @@

Error
Error
+
Error
Flag
@@ -16455,6 +17224,9 @@

.">Error
Error
Error
+
Error
Error
@@ -16476,9 +17248,10 @@

Error
Error
Error
Error
Error
Error
+
Error
Error
- +

String padding

@@ -16505,6 +17278,7 @@

Yes
Yes
Yes
Yes
Yes
Yes
+
Yes
Yes
@@ -16527,9 +17301,10 @@

Yes
Yes
Yes
Yes
Yes
Yes
+
Yes
Yes
- +

trailing commas in function syntax

@@ -16551,6 +17326,7 @@

Error
Error
Error
Error
Error
Error
+
Error
Error
@@ -16568,9 +17344,10 @@

Yes
Yes
Yes
Yes
Yes
Yes
+
Yes
Yes
- +

async functions

@@ -16603,6 +17380,7 @@

Error
Error
Error
Error
Error
Error
+
Error
Error
@@ -16631,6 +17409,7 @@

Error
Error
Error
Error
Error
Error
+
Error
Error
@@ -16649,6 +17428,7 @@

Error
Error
Error
Error
Error
Error
+
Error
Error
@@ -16667,6 +17447,7 @@

Error
Error
Error
Error
Error
Error
+
Error
Error
@@ -16691,6 +17472,7 @@

Error
Error
Error
Error
Error
Error
+
Error
Error
@@ -16717,6 +17499,7 @@

Error
Error
Error
Error
Error
Error
+
Error
Error
@@ -16735,6 +17518,7 @@

Error
Error
Error
Error
Error
Error
+
Error
Error
@@ -16758,6 +17542,7 @@

Error
Error
Error
Error
Error
Error
+
Error
Error
@@ -16776,6 +17561,7 @@

Error
Error
Error
Error
Error
Error
+
Error
Error
@@ -16804,6 +17590,7 @@

Error
Error
Error
Error
Error
Error
+
Error
Error
@@ -16832,6 +17619,7 @@

Error
Error
Error
Error
Error
Error
+
Error
Error
@@ -16860,6 +17648,7 @@

Error
Error
Error
Error
Error
Error
+
Error
Error
@@ -16886,6 +17675,7 @@

Error
Error
Error
Error
Error
Error
+
Error
Error
@@ -16905,6 +17695,7 @@

Error
Error
Error
Error
Error
Error
+
Error
Error
@@ -16922,6 +17713,7 @@

Error
Error
Error
Error
Error
Error
+
Error
Error
@@ -16948,9 +17740,10 @@

Error
Error
Error
Error
Error
Error
+
Error
Error
- +

shared memory and atomics

@@ -16972,6 +17765,7 @@

No
No
No
No
No
No
+
No
No
@@ -16989,6 +17783,7 @@

Error
Error
Error
Error
Error
Error
+
Error
Error
@@ -17006,6 +17801,7 @@

Error
Error
Error
Error
Error
Error
+
Error
Error
@@ -17023,6 +17819,7 @@

Error
Error
Error
Error
Error
Error
+
Error
Error
@@ -17040,6 +17837,7 @@

Error
Error
Error
Error
Error
Error
+
Error
Error
@@ -17057,6 +17855,7 @@

Error
Error
Error
Error
Error
Error
+
Error
Error
@@ -17074,6 +17873,7 @@

Error
Error
Error
Error
Error
Error
+
Error
Error
@@ -17091,6 +17891,7 @@

Error
Error
Error
Error
Error
Error
+
Error
Error
@@ -17108,6 +17909,7 @@

Error
Error
Error
Error
Error
Error
+
Error
Error
@@ -17125,6 +17927,7 @@

Error
Error
Error
Error
Error
Error
+
Error
Error
@@ -17142,6 +17945,7 @@

Error
Error
Error
Error
Error
Error
+
Error
Error
@@ -17159,6 +17963,7 @@

Error
Error
Error
Error
Error
Error
+
Error
Error
@@ -17176,6 +17981,7 @@

Error
Error
Error
Error
Error
Error
+
Error
Error
@@ -17193,6 +17999,7 @@

Error
Error
Error
Error
Error
Error
+
Error
Error
@@ -17210,6 +18017,7 @@

Error
Error
Error
Error
Error
Error
+
Error
Error
@@ -17227,6 +18035,7 @@

Error
Error
Error
Error
Error
Error
+
Error
Error
@@ -17244,6 +18053,7 @@

Error
Error
Error
Error
Error
Error
+
Error
Error
@@ -17253,7 +18063,7 @@

- + +
+

@@ -17278,6 +18088,7 @@

Error
Error
Error
Error
Error
Error
Error
Error
@@ -17298,6 +18109,7 @@

No
No
No
No
No
No
No
No
@@ -17307,7 +18119,7 @@

- + + + + + + + + + + + + + + + + - + + + + - +
+

Object.prototype getter/setter methods

@@ -17334,6 +18146,7 @@

Yes
Yes
Yes
Yes
Yes
Yes
Yes
Yes
@@ -17357,6 +18170,7 @@

Error
Error
Error
Error
Error
Error
Error
Error
@@ -17380,6 +18194,7 @@

No
Flag
No
Flag
No
Flag
No
Flag
@@ -17402,6 +18217,7 @@

Yes
Yes
Yes
Yes
Yes
Yes
Yes
Yes
@@ -17425,6 +18241,7 @@

Error
Error
Error
Error
Error
Error
Error
Error
@@ -17448,6 +18265,7 @@

No
Flag
No
Flag
No
Flag
No
Flag
@@ -17472,6 +18290,7 @@

Yes
Yes
Yes
Yes
Yes
Yes
Yes
Yes
@@ -17496,6 +18315,7 @@

Yes
Yes
Yes
Yes
Yes
Yes
Yes
Yes
@@ -17521,6 +18341,7 @@

Error
Error
Error
Error
Error
Error
Error
Error
@@ -17543,6 +18364,7 @@

No
No
No
No
No
No
No
No
@@ -17564,6 +18386,7 @@

Yes
Yes
Yes
Yes
Yes
Yes
Yes
Yes
@@ -17588,6 +18411,7 @@

Yes
Yes
Yes
Yes
Yes
Yes
Yes
Yes
@@ -17612,6 +18436,7 @@

Yes
Yes
Yes
Yes
Yes
Yes
Yes
Yes
@@ -17637,6 +18462,7 @@

Error
Error
Error
Error
Error
Error
Error
Error
@@ -17659,6 +18485,7 @@

No
No
No
No
No
No
No
No
@@ -17680,9 +18507,10 @@

Yes
Yes
Yes
Yes
Yes
Yes
Yes
Yes
+

Proxy internal calls, getter/setter methods

@@ -17708,6 +18536,7 @@

Error
Error
Error
Error
Error
Error
Error
Error
@@ -17729,6 +18558,7 @@

Error
Error
Error
Error
Error
Error
Error
Error
@@ -17755,6 +18585,7 @@

Error
Error
Error
Error
Error
Error
Error
Error
@@ -17781,9 +18612,10 @@

Error
Error
Error
Error
Error
Error
Error
Error
+

@@ -17806,6 +18638,7 @@

Yes
Yes
Yes
Yes
Yes
Yes
Yes
Yes
@@ -17884,6 +18717,16 @@

Rhino ES2018 Support

0% complete0% complete + 1.7.14 +
(these versions have identical results) + + + + + +
+
30% complete7% complete + @@ -17894,7 +18737,7 @@

- +

object rest/spread properties

@@ -17917,6 +18760,7 @@

Error
Error
Error
Error
Error
Error
+
Error
Error
@@ -17936,9 +18780,10 @@

Error
Error
Error
Error
Error
Error
+
Error
Error
- +

Promise.prototype.finally

@@ -17986,6 +18831,7 @@

Error
Error
Error
Error
Error
Error
+
Error
Flag
@@ -18021,6 +18867,7 @@

Error
Error
Error
Error
Error
Error
+
Error
Flag
@@ -18058,9 +18905,10 @@

Error
Error
Error
Error
Error
Error
+
Error
Flag
- +

@@ -18083,6 +18931,7 @@

Error
Error
Error
Error
Error
Error
+
Error
Error
@@ -18107,6 +18956,7 @@

Error
Error
Error
Error
Error
Error
+
Error
Error
@@ -18125,6 +18975,7 @@

Error
Error
Error
Error
Error
Error
+
Error
Error
@@ -18143,9 +18994,10 @@

Error
Error
Error
Error
Error
Error
+
Error
Error
- +

Asynchronous Iterators

@@ -18174,6 +19026,7 @@

Error
Error
Error
Error
Error
Error
+
Error
Error
@@ -18208,6 +19061,7 @@

Error
Error
Error
Error
Error
Error
+
Error
Error
@@ -18217,7 +19071,7 @@

- + +
+

@@ -18249,6 +19103,7 @@

Error
Error
Error
Error
Error
Error
Error
Error
@@ -18273,6 +19128,7 @@

Error
Error
Error
Error
Error
Error
Yes
Yes
@@ -18289,7 +19145,7 @@

Rhino ESNEXT Support

- 1% complete1% complete + 3% complete3% complete 1.7R5
(these versions have identical results) @@ -18299,7 +19155,7 @@

Rhino ESNEXT Support

-
1% complete1% complete + 3% complete3% complete 1.7.7.2
(these versions have identical results) @@ -18309,7 +19165,7 @@

Rhino ESNEXT Support

-
1% complete1% complete + 3% complete3% complete 1.7.10
(these versions have identical results) @@ -18319,7 +19175,7 @@

Rhino ESNEXT Support

-
1% complete1% complete + 3% complete3% complete 1.7.11
(these versions have identical results) @@ -18329,7 +19185,7 @@

Rhino ESNEXT Support

-
1% complete1% complete + 3% complete3% complete 1.7.12
(these versions have identical results) @@ -18339,7 +19195,7 @@

Rhino ESNEXT Support

-
1% complete1% complete + 3% complete3% complete 1.7.13
(these versions have identical results) @@ -18349,7 +19205,17 @@

Rhino ESNEXT Support

-
1% complete1% complete + 3% complete3% complete + + 1.7.14 +
(these versions have identical results) + + + + + +
+
3% complete3% complete @@ -18357,210 +19223,232 @@

Rhino ESNEXT Support

- - - - - - - - + + + + + + + + - - - - - - - + + + + + + + + + + + - - - - - - - + + + + + + + + - - - - - - - + + + + + + + + + + + - - - - - - - + + + + + + + + - - - - - - - + + + + + + + + +

-
candidate (stage 3) +
Stage 3

+

-
instance class fields +

-
public instance class fields +
Realms
?
function(){ -
class C { - x = 'x'; -} -return new C().x === 'x';
} +
return typeof Realm === "function" + && ["eval", "global", "intrinsics", "stdlib", "directEval", "indirectEval", "initGlobal", "nonEval"].every(function(key){ + return key in Realm.prototype; + });
}
Error
Error
Error
Error
Error
Error
Error
Error
Error
Error
Error
Error
Error
Error
No
No
No
No
No
No
No
No
No
No
No
No
No
No
No
No
-
private instance class fields basic support +
Hashbang Grammar
?
function(){ -
class C { - #x; - constructor(x){ - this.#x = x; - } - x(){ - return this.#x; - } -} -return new C(42).x() === 42;
} +
try { + return !eval('#!/wash/your/hands'); +} catch (e) { + return false +}
}
Error
Error
Error
Error
Error
Error
Error
Error
Error
Error
Error
Error
Error
Error
No
No
No
No
No
No
No
No
No
No
No
No
No
No
No
No
+

+
Legacy RegExp features in JavaScript +

+
-
private instance class fields initializers +
RegExp "lastMatch"
?
function(){ -
class C { - #x = 42; - x(){ - return this.#x; - } -} -return new C().x() === 42;
} +
var re = /\w/; +re.exec('x'); +return RegExp.lastMatch === 'x';
}
Error
Error
Error
Error
Error
Error
Error
Error
Error
Error
Error
Error
Error
Error
Yes
Yes
Yes
Yes
Yes
Yes
Yes
Yes
Yes
Yes
Yes
Yes
Yes
Yes
Yes
Yes
-
optional private instance class fields access +
RegExp.$1-$9
?
function(){ -
class C { - #x = 42; - x(o = this){ - return o?.#x; - } +
for (var i = 1; i < 10; i++) { + if (!(('$' + i) in RegExp)) return false; } -return new C().x() === 42 && new C().x(null) === void 0;
} +return true;
}
Error
Error
Error
Error
Error
Error
Error
Error
Error
Error
Error
Error
Error
Error
Yes
Yes
Yes
Yes
Yes
Yes
Yes
Yes
Yes
Yes
Yes
Yes
Yes
Yes
Yes
Yes
+

+
Array find from last +

+
-
optional deep private instance class fields access +
Array.prototype.findLast
?
function(){ -
class C { - #x = 42; - x(o = {p: this}){ - return o?.p.#x; - } -} -return new C().x() === 42 && new C().x(null) === void 0;
} +
var arr = [{ x: 1 }, { x: 2 }, { x: 1 }, { x: 2 }]; +return arr.findLast(function (o) { return o.x === 1; }) === arr[2];
}
Error
Error
Error
Error
Error
Error
Error
Error
Error
Error
Error
Error
Error
Error
Error
Error
Error
Error
Error
Error
Error
Error
Error
Error
Error
Error
Error
Error
Error
Error
-
computed instance class fields +
Array.prototype.findLastIndex
?
function(){ -
class C { - ['x'] = 42; -} -return new C().x === 42;
} +
var arr = [{ x: 1 }, { x: 2 }, { x: 1 }, { x: 2 }]; +return arr.findLastIndex(function (o) { return o.x === 1; }) === 2;
}
Error
Error
Error
Error
Error
Error
Error
Error
Error
Error
Error
Error
Error
Error
Error
Error
Error
Error
Error
Error
Error
Error
Error
Error
Error
Error
Error
Error
Error
Error
+ + - - - - - - - - + + + + + + + + - - - - - - - + + + + + + + + + + + @@ -18571,316 +19459,32 @@

+ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
+

+
Stage 2 +

+
+

-
static class fields +

-
public static class fields +
Generator function.sent Meta Property
?
function(){ -
class C { - static x = 'x'; +
var result; +function* generator() { + result = function.sent; } -return C.x === 'x';
} +var iter = generator(); +iter.next('tromple'); +return result === 'tromple';
}
Error
Error
Error
Error
Error
Error
Error
Error
Error
Error
Error
Error
Error
Error
Error
Error
Error
Error
Error
Error
Error
Error
Error
Error
Error
Error
Error
Error
Error
Error
-
private static class fields +
Array.isTemplateObject
?
function(){ -
class C { - static #x = 42; - x(){ - return C.#x; - } -} -return new C().x() === 42;
} +
return !Array.isTemplateObject([]) + && Array.isTemplateObject((it => it)`a{1}c`);
}
Error
Error
Error
Error
Error
Error
Error
Error
Error
Error
Error
Error
Error
Error
Error
Error
Error
Error
Error
Error
Error
Error
Error
Error
Error
Error
Error
Error
Error
Error
+

+
Class and Property Decorators +

+
-
computed static class fields +
class decorators
?
function(){ -
class C { - static ['x'] = 42; +
class A { + @nonconf + get B() {} +} +function nonconf(target, name, descriptor) { + descriptor.configurable = false; + return descriptor; } -return C.x === 42;
} +return Object.getOwnPropertyDescriptor(A.prototype, "B").configurable === false;
}
Error
Error
Error
Error
Error
Error
Error
Error
+

-
private class methods +
throw expressions

-
private instance methods +
logical
?
function(){ -
class C { - #x() { return 42; } - x() { - return this.#x(); - } -} -return new C().x() === 42;
} -
-
-
Error
Error
Error
Error
Error
Error
Error
Error
Error
Error
Error
Error
Error
Error
-
private static methods -
? -
function(){ -
class C { - static #x() { return 42; } - x() { - return C.#x(); - } -} -return new C().x() === 42;
} -
-
-
Error
Error
Error
Error
Error
Error
Error
Error
Error
Error
Error
Error
Error
Error
-
private accessor properties -
? -
function(){ -
var y = false; -class C { - get #x() { return 42; } - set #x(x) { y = x; } - x() { - this.#x = true; - return this.#x; - } -} -return new C().x() === 42 && y;
} -
-
-
Error
Error
Error
Error
Error
Error
Error
Error
Error
Error
Error
Error
Error
Error
-
private static accessor properties -
? -
function(){ -
var y = false; -class C { - static get #x() { return 42; } - static set #x(x) { y = x; } - x() { - C.#x = true; - return C.#x; - } -} -return new C().x() === 42 && y;
} -
-
-
Error
Error
Error
Error
Error
Error
Error
Error
Error
Error
Error
Error
Error
Error
-

-
Legacy RegExp features in JavaScript -

-
-
RegExp "lastMatch" -
? -
function(){ -
var re = /\w/; -re.exec('x'); -return RegExp.lastMatch === 'x';
} -
-
-
Yes
Yes
Yes
Yes
Yes
Yes
Yes
Yes
Yes
Yes
Yes
Yes
Yes
Yes
-
RegExp.$1-$9 -
? -
function(){ -
for (var i = 1; i < 10; i++) { - if (!(('$' + i) in RegExp)) return false; -} -return true;
} -
-
-
Yes
Yes
Yes
Yes
Yes
Yes
Yes
Yes
Yes
Yes
Yes
Yes
Yes
Yes
-

-
-

-
-
Hashbang Grammar -
? -
function(){ -
try { - return !eval('#!/wash/your/hands'); -} catch (e) { - return false -}
} -
-
-
No
No
No
No
No
No
No
No
No
No
No
No
No
No
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - @@ -18890,7 +19494,7 @@

+ + + - + + + + + + + - + + - + + - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-

-
draft (stage 2) -

-
-

-
-

-
-
Generator function.sent Meta Property -
? -
function(){ -
var result; -function* generator() { - result = function.sent; -} -var iter = generator(); -iter.next('tromple'); -return result === 'tromple';
} -
-
-
Error
Error
Error
Error
Error
Error
Error
Error
Error
Error
Error
Error
Error
Error
-
Realms -
? -
function(){ -
return typeof Realm === "function" - && ["eval", "global", "intrinsics", "stdlib", "directEval", "indirectEval", "initGlobal", "nonEval"].every(function(key){ - return key in Realm.prototype; - });
} -
-
-
No
No
No
No
No
No
No
No
No
No
No
No
No
No
-
Array.isTemplateObject -
? -
function(){ -
return !Array.isTemplateObject([]) - && Array.isTemplateObject((it => it)`a{1}c`);
} +
var a, b; +try { + a = 19 || throw 77; + b = 88 && throw 23; +} catch (e) { + return a + e === 42; +}
}
Error
Error
Error
Error
Error
Error
Error
Error
Error
Error
Error
Error
Error
Error
-

-
Class and Property Decorators -

-
-
class decorators -
? -
function(){ -
class A { - @nonconf - get B() {} -} -function nonconf(target, name, descriptor) { - descriptor.configurable = false; - return descriptor; -} -return Object.getOwnPropertyDescriptor(A.prototype, "B").configurable === false;
} -
-
-
Error
Error
Error
Error
Error
Error
Error
Error
Error
Error
Error
Error
Error
Error
-

-
throw expressions -

-
-
logical -
? -
function(){ -
var a, b; -try { - a = 19 || throw 77; - b = 88 && throw 23; -} catch (e) { - return a + e === 42; -}
} -
-
-
Error
Error
Error
Error
Error
Error
Error
Error
-
parameter initializers +
parameter initializers
?
function(){
function fn (arg = throw 42) { @@ -18914,10 +19518,11 @@

Error
Error
Error
Error
Error
Error
Error
Error
-
arrow function bodies +
arrow function bodies
?
function(){
var fn = () => throw 42; @@ -18936,10 +19541,11 @@

Error
Error
Error
Error
Error
Error
Error
Error
-
conditionals +
conditionals
?
function(){
true ? 42 : throw 21; @@ -18958,17 +19564,18 @@

Error
Error
Error
Error
Error
Error
Error
Error
+

-
Set methods +
Set methods

-
Set.prototype.intersection +
Set.prototype.intersection
?
function(){
var set = new Set([1, 2, 3]).intersection(new Set([2, 3, 4])); @@ -18985,10 +19592,11 @@

Error
Error
Error
Error
Error
Error
Error
Error
-
Set.prototype.union +
Set.prototype.union
?
function(){
var set = new Set([1, 2]).union(new Set([2, 3])); @@ -19006,10 +19614,11 @@

Error
Error
Error
Error
Error
Error
Error
Error
-
Set.prototype.difference +
Set.prototype.difference
?
function(){
var set = new Set([1, 2, 3]).difference(new Set([3, 4])); @@ -19026,10 +19635,11 @@

Error
Error
Error
Error
Error
Error
Error
Error
-
Set.prototype.symmetricDifference +
Set.prototype.symmetricDifference
?
function(){
var set = new Set([1, 2]).symmetricDifference(new Set([2, 3])); @@ -19046,10 +19656,11 @@

Error
Error
Error
Error
Error
Error
Error
Error
-
Set.prototype.isDisjointFrom +
Set.prototype.isDisjointFrom
?
function(){
return new Set([1, 2, 3]).isDisjointFrom([4, 5, 6]);
} @@ -19063,10 +19674,11 @@

Error
Error
Error
Error
Error
Error
Error
Error
-
Set.prototype.isSubsetOf +
Set.prototype.isSubsetOf
?
function(){
return new Set([1, 2, 3]).isSubsetOf([5, 4, 3, 2, 1]);
} @@ -19080,10 +19692,11 @@

Error
Error
Error
Error
Error
Error
Error
Error
-
Set.prototype.isSupersetOf +
Set.prototype.isSupersetOf
?
function(){
return new Set([5, 4, 3, 2, 1]).isSupersetOf([1, 2, 3]);
} @@ -19097,17 +19710,18 @@

Error
Error
Error
Error
Error
Error
Error
Error
+

-
ArrayBuffer.prototype.transfer +
ArrayBuffer.prototype.transfer

-
ArrayBuffer.prototype.transfer() +
ArrayBuffer.prototype.transfer()
?
function(){
const buffer1 = new Uint8Array([1, 2]).buffer; @@ -19124,10 +19738,11 @@

Error
Error
Error
Error
Error
Error
Error
Error
-
ArrayBuffer.prototype.realloc() +
ArrayBuffer.prototype.realloc()
?
function(){
const buffer1 = new ArrayBuffer(1024); @@ -19144,17 +19759,18 @@

Error
Error
Error
Error
Error
Error
Error
Error
+

-
Map.prototype.upsert +
Map.prototype.upsert

-
Map.prototype.upsert +
Map.prototype.upsert
?
function(){
const map = new Map([['a', 1]]); @@ -19171,10 +19787,11 @@

Error
Error
Error
Error
Error
Error
Error
Error
-
WeakMap.prototype.upsert +
WeakMap.prototype.upsert
?
function(){
const a = {}, b = {}; @@ -19192,17 +19809,18 @@

Error
Error
Error
Error
Error
Error
Error
Error
+

-
Iterator Helpers +
Iterator Helpers

-
instanceof Iterator +
instanceof Iterator
?
function(){
return [1, 2, 3].values() instanceof Iterator;
} @@ -19216,10 +19834,11 @@

No
No
No
No
No
No
No
No
-
extends Iterator +
extends Iterator
?
function(){
class Class extends Iterator { } @@ -19235,10 +19854,11 @@

Error
Error
Error
Error
Error
Error
Error
Error
-
Iterator.from, iterable +
Iterator.from, iterable
?
function(){
const iterator = Iterator.from([1, 2, 3]); @@ -19268,11 +19888,14 @@

.">Error

Error
Error
Error
Error
-
Iterator.from, iterator +
Iterator.from, iterator
?
function(){
const iterator = Iterator.from({ @@ -19303,11 +19926,14 @@

.">Error

Error
Error
Error
Error
-
Iterator.prototype.asIndexedPairs +
Iterator.prototype.asIndexedPairs
?
function(){
return Array.from([1, 2, 3].values().asIndexedPairs()).join() === '0,1,1,2,2,3';
} @@ -19329,10 +19955,11 @@

Error
Error
Error
Error
Error
Error
Error
Error
-
Iterator.prototype.drop +
Iterator.prototype.drop
?
function(){
return Array.from([1, 2, 3].values().drop(1)).join() === '2,3';
} @@ -19354,10 +19981,11 @@

Error
Error
Error
Error
Error
Error
Error
Error
-
Iterator.prototype.every +
Iterator.prototype.every
?
function(){
return [1, 2, 3].values().every(it => typeof it === 'number');
} @@ -19371,10 +19999,11 @@

Error
Error
Error
Error
Error
Error
Error
Error
-
Iterator.prototype.filter +
Iterator.prototype.filter
?
function(){
return Array.from([1, 2, 3].values().filter(it => it % 2)).join() === '1,3';
} @@ -19392,10 +20021,11 @@

Error
Error
Error
Error
Error
Error
Error
Error
-
Iterator.prototype.find +
Iterator.prototype.find
?
function(){
return [1, 2, 3].values().find(it => it % 2) === 1;
} @@ -19409,10 +20039,11 @@

Error
Error
Error
Error
Error
Error
Error
Error
-
Iterator.prototype.flatMap +
Iterator.prototype.flatMap
?
function(){
return Array.from([1, 2, 3].values().flatMap(it => [it, 0])).join() === '1,0,2,0,3,0';
} @@ -19430,10 +20061,11 @@

Error
Error
Error
Error
Error
Error
Error
Error
-
Iterator.prototype.forEach +
Iterator.prototype.forEach
?
function(){
let result = ''; @@ -19449,10 +20081,11 @@

Error
Error
Error
Error
Error
Error
Error
Error
-
Iterator.prototype.map +
Iterator.prototype.map
?
function(){
return Array.from([1, 2, 3].values().map(it => it * it)).join() === '1,4,9';
} @@ -19470,10 +20103,11 @@

Error
Error
Error
Error
Error
Error
Error
Error
-
Iterator.prototype.reduce +
Iterator.prototype.reduce
?
function(){
return [1, 2, 3].values().reduce((a, b) => a + b) === 6;
} @@ -19487,10 +20121,11 @@

Error
Error
Error
Error
Error
Error
Error
Error
-
Iterator.prototype.some +
Iterator.prototype.some
?
function(){
return [1, 2, 3].values().some(it => typeof it === 'number');
} @@ -19504,10 +20139,11 @@

Error
Error
Error
Error
Error
Error
Error
Error
-
Iterator.prototype.take +
Iterator.prototype.take
?
function(){
return Array.from([1, 2, 3].values().take(2)).join() === '1,2';
} @@ -19529,10 +20165,11 @@

Error
Error
Error
Error
Error
Error
Error
Error
-
Iterator.prototype.toArray +
Iterator.prototype.toArray
?
function(){
const array = [1, 2, 3].values().toArray(); @@ -19547,10 +20184,11 @@

Error
Error
Error
Error
Error
Error
Error
Error
-
Iterator.prototype[@@toStringTag] +
Iterator.prototype[@@toStringTag]
?
function(){
return Iterator.prototype[Symbol.toStringTag] === 'Iterator';
} @@ -19564,10 +20202,11 @@

Error
No
Error
No
Error
No
Error
No
-
instanceof AsyncIterator +
instanceof AsyncIterator
?
function(){
return (async function*() {})() instanceof AsyncIterator;
} @@ -19581,10 +20220,11 @@

Error
Error
Error
Error
Error
Error
Error
Error
-
extends AsyncIterator +
extends AsyncIterator
?
function(){
class Class extends AsyncIterator { } @@ -19600,10 +20240,11 @@

Error
Error
Error
Error
Error
Error
Error
Error
-
AsyncIterator.from, async iterable +
AsyncIterator.from, async iterable
?
function(){
async function toArray(iterator) { @@ -19629,10 +20270,11 @@

Error
Error
Error
Error
Error
Error
Error
Error
-
AsyncIterator.from, iterable +
AsyncIterator.from, iterable
?
function(){
async function toArray(iterator) { @@ -19658,10 +20300,11 @@

Error
Error
Error
Error
Error
Error
Error
Error
-
AsyncIterator.from, iterator +
AsyncIterator.from, iterator
?
function(){
async function toArray(iterator) { @@ -19687,10 +20330,11 @@

Error
Error
Error
Error
Error
Error
Error
Error
-
AsyncIterator.prototype.asIndexedPairs +
AsyncIterator.prototype.asIndexedPairs
?
function(){
async function toArray(iterator) { @@ -19712,10 +20356,11 @@

Error
Error
Error
Error
Error
Error
Error
Error
-
AsyncIterator.prototype.drop +
AsyncIterator.prototype.drop
?
function(){
async function toArray(iterator) { @@ -19737,10 +20382,11 @@

Error
Error
Error
Error
Error
Error
Error
Error
-
AsyncIterator.prototype.every +
AsyncIterator.prototype.every
?
function(){
(async function*() { yield * [1, 2, 3] })().every(it => typeof it === 'number').then(it => { @@ -19756,10 +20402,11 @@

Error
Error
Error
Error
Error
Error
Error
Error
-
AsyncIterator.prototype.filter +
AsyncIterator.prototype.filter
?
function(){
async function toArray(iterator) { @@ -19781,10 +20428,11 @@

Error
Error
Error
Error
Error
Error
Error
Error
-
AsyncIterator.prototype.find +
AsyncIterator.prototype.find
?
function(){
(async function*() { yield * [1, 2, 3] })().find(it => it % 2).then(it => { @@ -19800,10 +20448,11 @@

Error
Error
Error
Error
Error
Error
Error
Error
-
AsyncIterator.prototype.flatMap +
AsyncIterator.prototype.flatMap
?
function(){
async function toArray(iterator) { @@ -19825,10 +20474,11 @@

Error
Error
Error
Error
Error
Error
Error
Error
-
AsyncIterator.prototype.forEach +
AsyncIterator.prototype.forEach
?
function(){
let result = ''; @@ -19845,10 +20495,11 @@

Error
Error
Error
Error
Error
Error
Error
Error
-
AsyncIterator.prototype.map +
AsyncIterator.prototype.map
?
function(){
async function toArray(iterator) { @@ -19870,10 +20521,11 @@

Error
Error
Error
Error
Error
Error
Error
Error
-
AsyncIterator.prototype.reduce +
AsyncIterator.prototype.reduce
?
function(){
(async function*() { yield * [1, 2, 3] })().reduce((a, b) => a + b).then(it => { @@ -19889,10 +20541,11 @@

Error
Error
Error
Error
Error
Error
Error
Error
-
AsyncIterator.prototype.some +
AsyncIterator.prototype.some
?
function(){
(async function*() { yield * [1, 2, 3] })().some(it => typeof it === 'number').then(it => { @@ -19908,10 +20561,11 @@

Error
Error
Error
Error
Error
Error
Error
Error
-
AsyncIterator.prototype.take +
AsyncIterator.prototype.take
?
function(){
async function toArray(iterator) { @@ -19933,10 +20587,11 @@

Error
Error
Error
Error
Error
Error
Error
Error
-
AsyncIterator.prototype.toArray +
AsyncIterator.prototype.toArray
?
function(){
(async function*() { yield * [1, 2, 3] })().toArray().then(it => { @@ -19952,10 +20607,11 @@

Error
Error
Error
Error
Error
Error
Error
Error
-
AsyncIterator.prototype[@@toStringTag] +
AsyncIterator.prototype[@@toStringTag]
?
function(){
return AsyncIterator.prototype[Symbol.toStringTag] === 'AsyncIterator';
} @@ -19969,2026 +20625,7 @@

Error
Error
Error
Error
Error
Error
-

-
`.item` method -

-
-
Array.prototype.item -
? -
function(){ -
var arr = [1, 2, 3]; -return arr.item(0) === 1 - && arr.item(-3) === 1 - && arr.item(1) === 2 - && arr.item(-2) === 2 - && arr.item(2) === 3 - && arr.item(-1) === 3 - && arr.item(3) === undefined - && arr.item(-4) === undefined;
} -
-
-
Error
Error
Error
Error
Error
Error
Error
Error
Error
Error
Error
Error
Error
Error
-
String.prototype.item -
? -
function(){ -
var str = 'abc'; -return str.item(0) === 'a' - && str.item(-3) === 'a' - && str.item(1) === 'b' - && str.item(-2) === 'b' - && str.item(2) === 'c' - && str.item(-1) === 'c' - && str.item(3) === undefined - && str.item(-4) === undefined;
} -
-
-
Error
Error
Error
Error
Error
Error
Error
Error
Error
Error
Error
Error
Error
Error
-
%TypedArray%.prototype.item -
? -
function(){ -
return [ - 'Int8Array', - 'Uint8Array', - 'Uint8ClampedArray', - 'Int16Array', - 'Uint16Array', - 'Int32Array', - 'Uint32Array', - 'Float32Array', - 'Float64Array', - 'BigInt64Array', - 'BigUint64Array' -].every(function (TypedArray) { - var Constructor = globalThis[TypedArray]; - if (typeof Constructor !== 'function') { - return true; - } - var arr = new Constructor([1, 2, 3]); - return arr.item(0) === 1 - && arr.item(-3) === 1 - && arr.item(1) === 2 - && arr.item(-2) === 2 - && arr.item(2) === 3 - && arr.item(-1) === 3 - && arr.item(3) === undefined - && arr.item(-4) === undefined; -});
} -
-
-
Error
Error
Error
Error
Error
Error
Error
Error
Error
Error
Error
Error
Error
Error
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - +
-

-
proposal (stage 1) -

-
-

-
-

-
-
do expressions -
? -
function(){ -
return do { - let x = 23; - x + 19; -} === 42;
} -
-
-
Error
Error
Error
Error
Error
Error
Error
Error
Error
Error
Error
Error
Error
Error
-
Frozen Realms API -
? -
function(){ -
return typeof Reflect.Realm.immutableRoot === 'function' - && typeof Reflect.Realm.prototype.spawn === 'function';
} -
-
-
Error
Error
Error
Error
Error
Error
Error
Error
Error
Error
Error
Error
Error
Error
-
Math.signbit -
? -
function(){ -
return Math.signbit(NaN) === false - && Math.signbit(-0) === true - && Math.signbit(0) === false - && Math.signbit(-42) === true - && Math.signbit(42) === false;
} -
-
-
Error
Error
Error
Error
Error
Error
Error
Error
Error
Error
Error
Error
Error
Error
-
the pipeline operator -
? -
function(){ -
function doubleSay (str) { - return str + ', ' + str; -} -function capitalize (str) { - return str[0].toUpperCase() + str.slice(1); -} - -var result = 'hello' - |> doubleSay - |> capitalize - |> _ => _ + '!'; - -return result === 'Hello, hello!';
} -
-
-
Error
Error
Error
Error
Error
Error
Error
Error
Error
Error
Error
Error
Error
Error
-
extensible numeric literals -
? -
function(){ -
function i (str, num) { - return typeof str + str + typeof num + num; -} - -return 123i === 'string123number123';
} -
-
-
Error
Error
Error
Error
Error
Error
Error
Error
Error
Error
Error
Error
Error
Error
-
String.prototype.codePoints -
? -
function(){ -
var results = []; -for (let code of 'að ®·b'.codePoints()) results.push(code); -return results.length === 3 - && results[0].codePoint === 97 && results[0].position === 0 - && results[1].codePoint === 134071 && results[1].position === 1 - && results[2].codePoint === 98 && results[2].position === 3;
} -
-
-
Error
Error
Error
Error
Error
Error
Error
Error
Error
Error
Error
Error
Error
Error
-
Math.seededPRNG -
? -
function(){ -
var gen1 = Math.seededPRNG({ seed: 42 }); -var gen2 = Math.seededPRNG({ seed: 42 }); -if (!gen1.next || !gen1[Symbol.iterator]) return false; -var first = gen1.next().value; -if (first < 0 || first > 1) return false; -if (first !== gen2.next().value) return false; -var second = gen1.next().value; -if (first === second) return false; -return second === gen2.next().value;
} -
-
-
Error
Error
Error
Error
Error
Error
Error
Error
Error
Error
Error
Error
Error
Error
-

-
Observable -

-
-
basic support -
? -
function(){ -
return typeof Observable !== 'undefined';
} -
-
-
No
No
No
No
No
No
No
No
No
No
No
No
No
No
-
Symbol.observable well known symbol -
? -
function(){ -
return typeof Symbol.observable === 'symbol';
} -
-
-
Error
Error
Error
Error
Error
No
Error
No
Error
No
Error
No
Error
No
-
Observable.prototype.subscribe -
? -
function(){ -
return 'subscribe' in Observable.prototype;
} -
-
-
Error
Error
Error
Error
Error
Error
Error
Error
Error
Error
Error
Error
Error
Error
-
Observable constructor behavior -
? -
function(){ -
if(!(new Observable(function(){}) instanceof Observable))return false; - -var nonCallableCheckPassed, - primitiveCheckPassed, - newCheckPassed; - -try { new Observable({ }) } catch(e) { nonCallableCheckPassed = true } -try { new Observable(false) } catch(e) { primitiveCheckPassed = true } -try { Observable(function() { }) } catch(e) { newCheckPassed = true } - -return nonCallableCheckPassed && primitiveCheckPassed && newCheckPassed;
} -
-
-
Error
Error
Error
Error
Error
Error
Error
Error
Error
Error
Error
Error
Error
Error
-
Observable.prototype[Symbol.observable] -
? -
function(){ -
var o = new Observable(function() { }); -return Symbol.observable in Observable.prototype && o[Symbol.observable]() === o;
} -
-
-
Error
Error
Error
Error
Error
Error
Error
Error
Error
Error
Error
Error
Error
Error
-
Observable.of -
? -
function(){ -
return Observable.of(1, 2, 3) instanceof Observable;
} -
-
-
Error
Error
Error
Error
Error
Error
Error
Error
Error
Error
Error
Error
Error
Error
-
Observable.from -
? -
function(){ -
return (Observable.from([1,2,3,4]) instanceof Observable) && (Observable.from(new Set([1, 2, 3])) instanceof Observable);
} -
-
-
Error
Error
Error
Error
Error
Error
Error
Error
Error
Error
Error
Error
Error
Error
-

-
Math extensions proposal -

-
-
Math.clamp -
? -
function(){ -
return Math.clamp(2, 4, 6) === 4 - && Math.clamp(4, 2, 6) === 4 - && Math.clamp(6, 2, 4) === 4;
} -
-
-
Error
Error
Error
Error
Error
Error
Error
Error
Error
Error
Error
Error
Error
Error
-
Math.DEG_PER_RAD -
? -
function(){ -
return Math.DEG_PER_RAD === Math.PI / 180;
} -
-
-
No
No
No
No
No
No
No
No
No
No
No
No
No
No
-
Math.degrees -
? -
function(){ -
return Math.degrees(Math.PI / 2) === 90 - && Math.degrees(Math.PI) === 180;
} -
-
-
Error
Error
Error
Error
Error
Error
Error
Error
Error
Error
Error
Error
Error
Error
-
Math.fscale -
? -
function(){ -
return Math.fscale(3, 1, 2, 1, Math.PI) === Math.fround((3 - 1) * (Math.PI - 1) / (2 - 1) + 1);
} -
-
-
Error
Error
Error
Error
Error
Error
Error
Error
Error
Error
Error
Error
Error
Error
-
Math.RAD_PER_DEG -
? -
function(){ -
return Math.RAD_PER_DEG === 180 / Math.PI;
} -
-
-
No
No
No
No
No
No
No
No
No
No
No
No
No
No
-
Math.radians -
? -
function(){ -
return Math.radians(90) === Math.PI / 2 - && Math.radians(180) === Math.PI;
} -
-
-
Error
Error
Error
Error
Error
Error
Error
Error
Error
Error
Error
Error
Error
Error
-
Math.scale -
? -
function(){ -
return Math.scale(0, 3, 5, 8, 10) === 5;
} -
-
-
Error
Error
Error
Error
Error
Error
Error
Error
Error
Error
Error
Error
Error
Error
-

-
Promise.try -

-
-
basic support -
? -
function(){ -
return typeof Promise.try === 'function';
} -
-
-
Error
Error
Error
Error
Error
Error
Error
Error
Error
Error
Error
Error
Error
Error
-
returns instance of Promise -
? -
function(){ -
return Promise.try(function () {}) instanceof Promise;
} -
-
-
Error
Error
Error
Error
Error
Error
Error
Error
Error
Error
Error
Error
Error
Error
-
call function synchronously -
? -
function(){ -
var score = 0; -Promise.try(function () { score++ }); -return score === 1;
} -
-
-
Error
Error
Error
Error
Error
Error
Error
Error
Error
Error
Error
Error
Error
Error
-
function returns value -
? -
function(){ -
var score = 0; -Promise.try(function() { - score++; - return 'foo'; -}).then(function(val) { - score += (val === 'foo'); - if (score === 2) asyncTestPassed(); -});
} -
-
-
Error
Error
Error
Error
Error
Error
Error
Error
Error
Error
Error
Error
Error
Error
-
function throws exception -
? -
function(){ -
var score = 0; -Promise.try(function() { - score++; - throw 'bar'; -}).catch(function(err) { - score += (err === 'bar'); - if (score === 2) asyncTestPassed(); -});
} -
-
-
Error
Error
Error
Error
Error
Error
Error
Error
Error
Error
Error
Error
Error
Error
-
function returns fulfilled Promise -
? -
function(){ -
var score = 0; -Promise.try(function() { - score++; - return Promise.resolve('foo'); -}).then(function(val) { - score += (val === 'foo'); - if (score === 2) asyncTestPassed(); -});
} -
-
-
Error
Error
Error
Error
Error
Error
Error
Error
Error
Error
Error
Error
Error
Error
-
function returns rejected Promise -
? -
function(){ -
var score = 0; -Promise.try(function() { - score++; - return Promise.reject('bar'); -}).catch(function(err) { - score += (err === 'bar'); - if (score === 2) asyncTestPassed(); -});
} -
-
-
Error
Error
Error
Error
Error
Error
Error
Error
Error
Error
Error
Error
Error
Error
-

-
`.of` and `.from` on collection constructors -

-
-
Map.of -
? -
function(){ -
var A = {}; -var B = {}; -var C = Map.of([A, 1], [B, 2]); -return C.get(A) + C.get(B) === 3;
} -
-
-
Error
Error
Error
Error
Error
Error
Error
Error
Error
Error
Error
Error
Error
Error
-
Map.from -
? -
function(){ -
var A = {}; -var B = {}; -var C = Map.from([[A, 1], [B, 2]], function (it) { - return [it[0], it[1] + 1]; -}); -return C.get(A) + C.get(B) === 5;
} -
-
-
Error
Error
Error
Error
Error
Error
Error
Error
Error
Error
Error
Error
Error
Error
-
Set.of -
? -
function(){ -
var A = {}; -var B = {}; -var C = Set.of(A, B); -return C.has(A) + C.has(B);
} -
-
-
Error
Error
Error
Error
Error
Error
Error
Error
Error
Error
Error
Error
Error
Error
-
Set.from -
? -
function(){ -
var C = Set.from([1, 2], function (it) { - return it + 2; -}); -return C.has(3) + C.has(4);
} -
-
-
Error
Error
Error
Error
Error
Error
Error
Error
Error
Error
Error
Error
Error
Error
-
WeakMap.of -
? -
function(){ -
var A = {}; -var B = {}; -var C = WeakMap.of([A, 1], [B, 2]); -return C.get(A) + C.get(B) === 3;
} -
-
-
Error
Error
Error
Error
Error
Error
Error
Error
Error
Error
Error
Error
Error
Error
-
WeakMap.from -
? -
function(){ -
var A = {}; -var B = {}; -var C = WeakMap.from([[A, 1], [B, 2]], function (it) { - return [it[0], it[1] + 1]; -}); -return C.get(A) + C.get(B) === 5;
} -
-
-
Error
Error
Error
Error
Error
Error
Error
Error
Error
Error
Error
Error
Error
Error
-
WeakSet.of -
? -
function(){ -
var A = {}; -var B = {}; -var C = WeakSet.of(A, B); -return C.has(A) + C.has(B);
} -
-
-
Error
Error
Error
Error
Error
Error
Error
Error
Error
Error
Error
Error
Error
Error
-
WeakSet.from -
? -
function(){ -
var A = {}; -var B = {}; -var C = WeakSet.from([A, B]); -return C.has(A) + C.has(B);
} -
-
-
Error
Error
Error
Error
Error
Error
Error
Error
Error
Error
Error
Error
Error
Error
-

-
partial application syntax -

-
-
partial application from left -
? -
function(){ -
function f(a, b) { - return a + b; -}; -var p = f('a', ?); -return p('b') === 'ab';
} -
-
-
Error
Error
Error
Error
Error
Error
Error
Error
Error
Error
Error
Error
Error
Error
-
partial application from right -
? -
function(){ -
function f(a, b) { - return a + b; -}; -var p = f(?, 'b'); -return p('a') === 'ab';
} -
-
-
Error
Error
Error
Error
Error
Error
Error
Error
Error
Error
Error
Error
Error
Error
-
partial application for any arg -
? -
function(){ -
function f(a, b, c) { - return a + b + c; -}; -var p = f(?, 'b', ?); -return p('a', 'c') === 'abc';
} -
-
-
Error
Error
Error
Error
Error
Error
Error
Error
Error
Error
Error
Error
Error
Error
-
partial application from left with rest -
? -
function(){ -
function f(a, b, c) { - return a + b + c; -}; -var p = f('a', ...); -return p('b', 'c') === 'abc';
} -
-
-
Error
Error
Error
Error
Error
Error
Error
Error
Error
Error
Error
Error
Error
Error
-
partial application from right with rest -
? -
function(){ -
function f(a, b, c) { - return a + b + c; -}; -var p = f(..., 'c'); -return p('a', 'b') === 'abc';
} -
-
-
Error
Error
Error
Error
Error
Error
Error
Error
Error
Error
Error
Error
Error
Error
-
partial application for any arg with rest -
? -
function(){ -
function f(a, b, c, d, e) { - return a + b + c + d + e; -}; -var p = f(..., 'c', ...); -return p('a', 'b') === 'abcab';
} -
-
-
Error
Error
Error
Error
Error
Error
Error
Error
Error
Error
Error
Error
Error
Error
-
mixed partial application -
? -
function(){ -
function f(a, b, c, d) { - return a + b + c; -}; -var p = f(?, 'b', ...); -return p('a', 'c', 'd') === 'abcd';
} -
-
-
Error
Error
Error
Error
Error
Error
Error
Error
Error
Error
Error
Error
Error
Error
-
runtime evaluation -
? -
function(){ -
var f = function() { - throw new Error(); -}; -var p = f(?, 'b'); -f = function(a, b) { - return a + b; -}; -return p('a') === 'ab';
} -
-
-
Error
Error
Error
Error
Error
Error
Error
Error
Error
Error
Error
Error
Error
Error
-
runtime evaluation of property access -
? -
function(){ -
var o = {}; -var p = o.f(?, 'b'); -o = { x: 'c', f: function(a, b) { - return a + b + this.x; -} }; -return p('a') === 'abc';
} -
-
-
Error
Error
Error
Error
Error
Error
Error
Error
Error
Error
Error
Error
Error
Error
-
lexical `this` -
? -
function(){ -
function f(a, b) { - return a + b + (this === o); -} -var o = { f: f(?, 'b') }; -return o.f('a') === 'abfalse';
} -
-
-
Error
Error
Error
Error
Error
Error
Error
Error
Error
Error
Error
Error
Error
Error
-
constructor partial application -
? -
function(){ -
function F(a, b) { - this.x = a + b; -} -var p = new F(?, 'b'); -return p('a').x === 'ab';
} -
-
-
Error
Error
Error
Error
Error
Error
Error
Error
Error
Error
Error
Error
Error
Error
-
constructor partial application with rest -
? -
function(){ -
function F(a, b, c) { - this.x = a + b + c; -} -var p = new F('a', ...); -return p('b', 'c').x === 'abc';
} -
-
-
Error
Error
Error
Error
Error
Error
Error
Error
Error
Error
Error
Error
Error
Error
-

-
Object.freeze and Object.seal syntax -

-
-
Object.freeze syntax -
? -
function(){ -
return Object.isFrozen({# foo: 42 #});
} -
-
-
Error
Error
Error
Error
Error
Error
Error
Error
Error
Error
Error
Error
Error
Error
-
Object.freeze syntax with array literal -
? -
function(){ -
return Object.isFrozen([# 42 #]);
} -
-
-
Error
Error
Error
Error
Error
Error
Error
Error
Error
Error
Error
Error
Error
Error
-
Object.seal syntax -
? -
function(){ -
return Object.isSealed({| foo: 42 |});
} -
-
-
Error
Error
Error
Error
Error
Error
Error
Error
Error
Error
Error
Error
Error
Error
-
Object.seal syntax with array literal -
? -
function(){ -
return Object.isSealed([| 42 |]);
} -
-
-
Error
Error
Error
Error
Error
Error
Error
Error
Error
Error
Error
Error
Error
Error
-
Sealing, function destructuring -
? -
function(){ -
function foo({| bar, baz |}) { - return bar + baz; -} -if (foo({ bar: 1, baz: 2 }) !== 3) return; -try { - foo({ bar: 1, fuz: 2 }); -} catch (e) { - return true; -}
} -
-
-
Error
Error
Error
Error
Error
Error
Error
Error
Error
Error
Error
Error
Error
Error
-
Freezing, function destructuring -
? -
function(){ -
function foo({# bar, baz #}) { - if (baz === 42) bar = 27; - return bar + baz; -} -if (foo({ bar: 1, baz: 2 }) !== 3) return; -try { - foo({ bar: 1, baz: 42 }); -} catch (e) { - return true; -}
} -
-
-
Error
Error
Error
Error
Error
Error
Error
Error
Error
Error
Error
Error
Error
Error
-
Sealing, function arguments -
? -
function(){ -
function foo(| bar, baz |) { - return bar + baz; -} -if (foo(1, 2) !== 3) return; -try { - foo(1, 2, 3); -} catch (e) { - return true; -}
} -
-
-
Error
Error
Error
Error
Error
Error
Error
Error
Error
Error
Error
Error
Error
Error
-
Freezing, function arguments -
? -
function(){ -
function foo(# bar, baz #) { - if (baz === 42) bar = 27; - return bar + baz; -} -if (foo(1, 2) !== 3) return; -try { - foo(1, 42); -} catch (e) { - return true; -}
} -
-
-
Error
Error
Error
Error
Error
Error
Error
Error
Error
Error
Error
Error
Error
Error
-

-
Getting last item from array -

-
-
Array.prototype.lastItem -
? -
function(){ -
return [1, 2, 3].lastItem === 3;
} -
-
-
No
No
No
No
No
No
No
No
No
No
No
No
No
No
-
Array.prototype.lastIndex -
? -
function(){ -
return [1, 2, 3].lastIndex === 2;
} -
-
-
No
No
No
No
No
No
No
No
No
No
No
No
No
No
-

-
Collections methods -

-
-
Map.groupBy -
? -
function(){ -
var map = Map.groupBy(new Set([1, 2, 3, 4]), it => it % 2) -return map.size === 2 - && map.get(0)[0] === 2 - && map.get(0)[1] === 4 - && map.get(1)[0] === 1 - && map.get(1)[1] === 3;
} -
-
-
Error
Error
Error
Error
Error
Error
Error
Error
Error
Error
Error
Error
Error
Error
-
Map.keyBy -
? -
function(){ -
var map = Map.keyBy(new Set([{ id: 101 }, { id: 102 }]), it => it.id) -return map.size === 2 - && map.get(101).id === 101 - && map.get(102).id === 102;
} -
-
-
Error
Error
Error
Error
Error
Error
Error
Error
Error
Error
Error
Error
Error
Error
-
Map.prototype.deleteAll -
? -
function(){ -
var map = new Map([[1, 2], [3, 4], [5, 6], [7, 8]]); -map.deleteAll(1, 5) -return map.size === 2 - && map.get(3) === 4 - && map.get(7) === 8;
} -
-
-
Error
Error
Error
Error
Error
Error
Error
Error
Error
Error
Error
Error
Error
Error
-
Map.prototype.every -
? -
function(){ -
return new Map([[1, 4], [2, 5], [3, 6]]).every(it => typeof it === 'number');
} -
-
-
Error
Error
Error
Error
Error
Error
Error
Error
Error
Error
Error
Error
Error
Error
-
Map.prototype.filter -
? -
function(){ -
var map = new Map([[1, 4], [2, 5], [3, 6]]).filter(it => !(it % 2)); -return map.size === 2 - && map.get(1) === 4 - && map.get(3) === 6;
} -
-
-
Error
Error
Error
Error
Error
Error
Error
Error
Error
Error
Error
Error
Error
Error
-
Map.prototype.find -
? -
function(){ -
return new Map([[1, 2], [2, 3], [3, 4]]).find(it => it % 2) === 3;
} -
-
-
Error
Error
Error
Error
Error
Error
Error
Error
Error
Error
Error
Error
Error
Error
-
Map.prototype.findKey -
? -
function(){ -
return new Map([[1, 2], [2, 3], [3, 4]]).findKey(it => it % 2) === 2;
} -
-
-
Error
Error
Error
Error
Error
Error
Error
Error
Error
Error
Error
Error
Error
Error
-
Map.prototype.includes -
? -
function(){ -
return new Map([[1, 2], [2, NaN]]).includes(2) - && new Map([[1, 2], [2, NaN]]).includes(NaN);
} -
-
-
Error
Error
Error
Error
Error
Error
Error
Error
Error
Error
Error
Error
Error
Error
-
Map.prototype.keyOf -
? -
function(){ -
return new Map([[1, 2], [2, NaN]]).keyOf(2) === 1 - && new Map([[1, 2], [2, NaN]]).keyOf(NaN) === void undefined;
} -
-
-
Error
Error
Error
Error
Error
Error
Error
Error
Error
Error
Error
Error
Error
Error
-
Map.prototype.mapKeys -
? -
function(){ -
var map = new Map([[1, 4], [2, 5], [3, 6]]).mapKeys((value, key) => key * key); -return map.size === 3 - && map.get(1) === 4 - && map.get(4) === 5 - && map.get(9) === 6;
} -
-
-
Error
Error
Error
Error
Error
Error
Error
Error
Error
Error
Error
Error
Error
Error
-
Map.prototype.mapValues -
? -
function(){ -
var map = new Map([[1, 4], [2, 5], [3, 6]]).mapValues((value, key) => value * value); -return map.size === 3 - && map.get(1) === 16 - && map.get(2) === 25 - && map.get(3) === 36;
} -
-
-
Error
Error
Error
Error
Error
Error
Error
Error
Error
Error
Error
Error
Error
Error
-
Map.prototype.merge -
? -
function(){ -
var map = new Map([[1, 4], [2, 5]]).merge(new Map([[2, 7], [3, 6]])); -return map.size === 3 - && map.get(1) === 4 - && map.get(2) === 7 - && map.get(3) === 6;
} -
-
-
Error
Error
Error
Error
Error
Error
Error
Error
Error
Error
Error
Error
Error
Error
-
Map.prototype.reduce -
? -
function(){ -
return new Map([['a', 1], ['b', 2], ['c', 3], ]).reduce(((a, b) => a + b), 1) === 7;
} -
-
-
Error
Error
Error
Error
Error
Error
Error
Error
Error
Error
Error
Error
Error
Error
-
Map.prototype.some -
? -
function(){ -
return new Map([[1, 4], [2, 5], [3, 6]]).some(it => it % 2);
} -
-
-
Error
Error
Error
Error
Error
Error
Error
Error
Error
Error
Error
Error
Error
Error
-
Set.prototype.addAll -
? -
function(){ -
var set = new Set([1, 2]).addAll(2, 3); -return set.size === 3 - && set.has(1) - && set.has(2) - && set.has(3);
} -
-
-
Error
Error
Error
Error
Error
Error
Error
Error
Error
Error
Error
Error
Error
Error
-
Set.prototype.deleteAll -
? -
function(){ -
var set = new Set([1, 2, 3, 4]); -return set.deleteAll(2, 3) === true - && set.size === 2 - && set.has(1) - && set.has(4);
} -
-
-
Error
Error
Error
Error
Error
Error
Error
Error
Error
Error
Error
Error
Error
Error
-
Set.prototype.every -
? -
function(){ -
return new Set([1, 2, 3]).every(it => typeof it === 'number');
} -
-
-
Error
Error
Error
Error
Error
Error
Error
Error
Error
Error
Error
Error
Error
Error
-
Set.prototype.filter -
? -
function(){ -
var set = new Set([1, 2, 3]).filter(it => it % 2); -return set.size === 2 - && set.has(1) - && set.has(3);
} -
-
-
Error
Error
Error
Error
Error
Error
Error
Error
Error
Error
Error
Error
Error
Error
-
Set.prototype.find -
? -
function(){ -
return new Set([1, 2, 3]).find(it => !(it % 2)) === 2;
} -
-
-
Error
Error
Error
Error
Error
Error
Error
Error
Error
Error
Error
Error
Error
Error
-
Set.prototype.join -
? -
function(){ -
return new Set([1, 2, 3]).join('|') === '1|2|3';
} -
-
-
Error
Error
Error
Error
Error
Error
Error
Error
Error
Error
Error
Error
Error
Error
-
Set.prototype.map -
? -
function(){ -
var set = new Set([1, 2, 3]).map(it => it * it); -return set.size === 3 - && set.has(1) - && set.has(4) - && set.has(9);
} -
-
-
Error
Error
Error
Error
Error
Error
Error
Error
Error
Error
Error
Error
Error
Error
-
Set.prototype.reduce -
? -
function(){ -
return new Set([1, 2, 3]).reduce((memo, it) => memo + it) === 6;
} -
-
-
Error
Error
Error
Error
Error
Error
Error
Error
Error
Error
Error
Error
Error
Error
-
Set.prototype.some -
? -
function(){ -
return new Set([1, 2, 3]).some(it => it % 2);
} -
-
-
Error
Error
Error
Error
Error
Error
Error
Error
Error
Error
Error
Error
Error
Error
-
WeakMap.prototype.deleteAll -
? -
function(){ -
var a = {}; -var b = {}; -var c = {}; -var d = {}; -var map = new WeakMap([[a, 1], [b, 2], [c, 3], [d, 4]]); -map.deleteAll(a, c) -return !map.has(a) - && map.get(b) === 2 - && !map.has(c) - && map.get(d) === 4;
} -
-
-
Error
Error
Error
Error
Error
Error
Error
Error
Error
Error
Error
Error
Error
Error
-
WeakSet.prototype.addAll -
? -
function(){ -
var a = {}; -var b = {}; -var c = {}; -var d = {}; -var set = new WeakSet([a, b]); -set.addAll(c, d) -return set.has(a) - && set.has(b) - && set.has(c) - && set.has(d);
} -
-
-
Error
Error
Error
Error
Error
Error
Error
Error
Error
Error
Error
Error
Error
Error
-
WeakSet.prototype.deleteAll -
? -
function(){ -
var a = {}; -var b = {}; -var c = {}; -var d = {}; -var set = new WeakSet([a, b, c, d]); -set.deleteAll(a, c) -return !set.has(a) - && set.has(b) - && !set.has(c) - && set.has(d);
} -
-
-
Error
Error
Error
Error
Error
Error
Error
Error
Error
Error
Error
Error
Error
Error
-

-
{ BigInt, Number }.fromString -

-
-
Number.fromString -
? -
function(){ -
return Number.fromString('42') === 42;
} -
-
-
Error
Error
Error
Error
Error
Error
Error
Error
Error
Error
Error
Error
Error
Error
-
BigInt.fromString -
? -
function(){ -
return BigInt.fromString('42') === 42n;
} -
-
-
Error
Error
Error
Error
Error
Error
Error
Error
Error
Error
Error
Error
Error
Error
-

-
Object iteration -

-
-
Object.iterateKeys -
? -
function(){ -
const object = { a: 1, b: 2, c: 3 }; -const iterator = Object.iterateKeys(object); -if (typeof iterator[Symbol.iterator] !== 'function' || typeof iterator.next !== 'function') return false; -delete object.b; -return [...iterator].join() === 'a,c';
} -
-
-
Error
Error
Error
Error
Error
Error
Error
Error
Error
Error
Error
Error
Error
Error
-
Object.iterateValues -
? -
function(){ -
const object = { a: 1, b: 2, c: 3 }; -const iterator = Object.iterateValues(object); -if (typeof iterator[Symbol.iterator] !== 'function' || typeof iterator.next !== 'function') return false; -delete object.b; -return [...iterator].join() === '1,3';
} -
-
-
Error
Error
Error
Error
Error
Error
Error
Error
Error
Error
Error
Error
Error
Error
-
Object.iterateEntries -
? -
function(){ -
const object = { a: 1, b: 2, c: 3 }; -const iterator = Object.iterateEntries(object); -if (typeof iterator[Symbol.iterator] !== 'function' || typeof iterator.next !== 'function') return false; -delete object.b; -return [...iterator].join() === 'a,1,c,3';
} -
-
-
Error
Error
Error
Error
Error
Error
Error
Error
Error
Error
Error
Error
Error
Error
Error
Error
diff --git a/gradle.properties b/gradle.properties index 22a431019f..94e9ebbb87 100644 --- a/gradle.properties +++ b/gradle.properties @@ -1,6 +1,6 @@ rootProject.name=rhino group=org.mozilla -version=1.7.14-SNAPSHOT +version=1.7.14 buildDir=buildGradle mavenSnapshotRepo=https://oss.sonatype.org/content/repositories/snapshots mavenReleaseRepo=https://oss.sonatype.org/service/local/staging/deploy/maven2/ diff --git a/release-steps.txt b/release-steps.txt deleted file mode 100644 index 89cd478815..0000000000 --- a/release-steps.txt +++ /dev/null @@ -1,33 +0,0 @@ -Update version in: - src/manifest - gradle.properties - -Paste release notes into RELEASE_NOTES.md: - git shortlog LAST_TAG.. | sed 's/^ /*/' - -Paste release info into README.md - Copy README into gh-pages - -Re-run compat-table "rhinoall.sh" - Copy HTML to gh-pages/compat - -./gradlew -Dgradle.user.home=$HOME publish - -Go to oss.sonatype.org - Find "org.mozilla" staging repo, close, release, and drop. - -./gradlew distZip - Publish that to the GitHub release page - -git tag for new release - -Update release in GitHub - Paste release notes, upload "rhinoXXX.zip" and "js.jar" - -Update to new snapshot version in: - src/manifest - gradle.properties - -Update the Homebrew formula. Submit a PR for: - Homebrew/homebrew - Library/Formula/rhino.rb